본문 바로가기

테스팅

2022년 테스팅 사례 공유 - 000대학교 웹사이트 웹 취약점 점검 보안성 테스팅

2022년 고품질 SW개발 컨설팅 및 테스팅 지원 사업 테스팅 사례 공유 합니다.

(재)전주정보문화산업진흥원의 SW품질역량센터에서는

2011년 부터 전라북도 ICT/SW기업을 대상으로 품질 향상을 위한 컨설팅 및 테스팅을 지원하고 있습니다.

본 테스팅은 000대학교에 납품되는 시스템을 웹 취약점 진단(주요정보통신기반시설 웹 취약점 진단 28개 항목)을 진행한 테스팅 사례입니다.

 

목차

     

    1. 테스팅 개요

    - 기업명 : 000 시스템

    - 기업주소 : 전라북도 전주시 ***

    - 테스팅 내용 :  000대학교 시스템

    - 테스팅 목적 : 기업 개발한 제품을 대상으로 주요정보통신기반시설 웹 취약점 진단 28개 항목에 대한 보안성 기반 테스트를 통해서 고객에게 보안이 강화된 고품질 제품을 전달하기 위한 테스팅을 목표

     

    2. 테스팅 일정

    수 행 일 정 컨설팅 내용 담 당 자
    202254() 신청서 제출 기업 담당자
    202259() 신청서 접수 완료 컨설턴트(JICA)
    2022512() ~
    2022527()
    주요정보통신기반시설 웹 취약점 진단
    28개 항목 시험 (SW시험실)
    컨설턴트(JICA)
    2022527() 테스팅 보고서 작성 및 기업 제공 컨설턴트(JICA)

     

    3. 테스팅 결과 요약

    본 테스팅의 지원 내용은 다음과 같습니다.

     

    1) 시험 환경

    테스트 시험 환경

    구 분 기본정보
    시험도구 OWASP ZAP 2.11.0 디렉토리 스캔, 디렉토리 인덱싱 취약점 진단을 위한 시험도구
    Wireshark v3.6.0 실시간 패킷 캡쳐한 데이터를 로그인 패스워드 암호화 여부를 확인하기 위한 시험도구
    editThisCookie v1.6.3 세션예측 취약점, 쿠키변조 점검을 위한 크롬웹브라우저 확장프로그램용 시험도구
    curl v7.55.1 웹 서비스 메소드 설정 취약점 진단을 위해 사용되는 시험도구
    Burp Suite Community Edition v2021.8.4 URL/파라미터 변조, 로그인 데이터 평문 전송, 크로스사이트 리퀘스트 변조(CSRF), 쿠키 변조, 자동화 공격 취약점 진단을 위해 사용되는 시험도구
    Chrome v101.0 전반적인 취약점 진단을 위해 사용되는 시험도구
    Watchy v1.0.0.0 세션이 발행된 후 일정 시간 후에 세션이 그대로 유지되는 불충분한 세션 만료 취약점을 진단하기 위해 사용되는 타이머 시험도구
    프로그래밍언어 Java, JSP, JavaScript
    시험서버 Linux (CentOS)
    시험PC1 OS Windows 10 Pro
    CPU Intel(R) Core(TM) i7-8700 CPU @ 3.20GHz 3.19 GHz
    Storage 250 GB, 2000 GB
    RAM 32 GB
    해상도 1920 x 1080
    그래픽 NVIDIA GeForce GTX 1050
    네트워크 Realtek PCIe GBE Family Controller
    시험PC2 OS Windows 10 Pro 64 bit
    CPU Intel(R) Core(TM) i7-8650U CPU @ 1.90 GHz 2.11 GHz
    Storage 500 GB
    RAM 16 GB

    [5] 테스트 환경 정보

     

    2) 시험 장소

    테스트 장소
    전주정보문화산업진흥원 SW시험실

     

    3) 점검 항목

    점검 항목은 주요정보통신기반시설 웹 취약점 진단 28개 항목을 기준으로 설정함

    순번 점검 항목 코드 점검 내용
    1 버퍼 오버플로우 BO 메모리나 버퍼의 블록 크기보다 더 많은 데이터를 넣음으로써 결함을 발생시키는 취약점
    2 포맷스트링 FS 스트링을 처리하는 부분에서 메모리 공간에 접근할 수 있는 문제를 이용하는 취약점
    3 LDAP 인젝션 LI LDAP(Lightweight Directory Access Protocol) 쿼리를 주입함으로서 개인정보 등의 내용이 유출될 수 있는 문제를 이용하는 취약점
    4 운영체제 명령
    실행
    OC 웹사이트의 인터페이스를 통해 웹서버를 운영하는 운영체제 명령을 실행하는 취약점
    5 SQL 인젝션 SI SQL문으로 해석될 수 있는 입력을 시도하여 데이터베이스에 접근할 수 있는 취약점
    6 SSI 인젝션 SS SSI(Server-side Include)“Last modified"와 같이 서버가 HTML 문서에 입력받은 변수 값으로, 웹서버 상에 있는 파일을 include 시키고, 명령문이 실행되게 하여 데이터에 접근할 수 있는 취약점
    7 XPath 인젝션 XI 조작된 XPath(XML Path Language) 쿼리를 보냄으로써 비정상적인 데이터를 쿼리해 올 수 있는 취약점
    8 디렉토리 인덱싱 DI 요청 파일이 존재하지 않을 때 자동적으로 디렉토리 리스트를 출력하는 취약점
    9 정보 누출 IL 웹 사이트 데이터가 노출되는 것으로 개발과정의 코멘트나 오류 메시지 등에서 중요한 정보가 노출되어 공격자에게 2차 공격을 하기 위한 중요한 정보를 제공할 수 있는 취약점
    10 악성 콘텐츠 CS 웹애플리케이션에 정상적인 컨텐츠 대신에 악성 컨텐츠를 주입하여 사용자에게 악의적인 영항을 미치는 취약점
    11 크로스사이트
    스크립팅
    XS 웹애플리케이션을 사용해서 다른 최종 사용자의 클라이언트에서 임의의 스크립트가 실행되는 취약점
    12 약한 문자열 강도 BF 사용자의 이름이나 패스워드, 신용카드 정보나 암호화 키 등을 자동으로 대입하여 여러 시행착오 후에 맞는 값이 발견되는 취약점
    13 불충분한 인증 IA 민감한 데이터에 접근할 수 있는 곳에 취약한 인증 메커니즘으로 구현된 취약점
    14 취약한 패스워드
    복구
    PR 취약한 패스워드 복구 메커니즘(패스워드 찾기 등)에 대해 공격자가 불법적으로 다른 사용자의 패스워드를 획득, 변경, 복구할 수 있는 취약점
    15 크로스사이트 리퀘스트 변조(CSRF) CF CSRF 공격은 로그온한 사용자 브라우저로 하여금 사용자의 세션 쿠키와 기타 인증 정보를 포함하는 위조된 HTTP 요청을 취약한 웹애플리케이션에 전송하는 취약점
    16 세션 예측 SE 단순히 숫자가 증가하는 방법 등의 취약한 특정 세션의 식별자(ID)를 예측하여 세션을 가로챌 수 있는 취약점
    17 불충분한 인가 IN 민감한 데이터 또는 기능에 대한 접근권한 제한을 두지 않은 취약점
    18 불충분한 세션 만료 SC 세션의 만료 기간을 정하지 않거나, 만료일자를 너무 길게 설정하여 공격자가 만료되지 않은 세션 활용이 가능하게 되는 취약점
    19 세션 고정 SF 세션값을 고정하여 명확한 세션 식별자(ID) 값으로 사용자가 로그인하여 정의된 세션 식별자(ID)가 사용 가능하게 되는 취약점
    20 자동화 공격 AU 웹애플리케이션에 정해진 프로세스에 자동화된 공격을 수행함으로써 자동으로 수많은 프로세스가 진행되는 취약점
    21 프로세스 검증
    누락
    PV 공격자가 응용의 계획된 플로우 통제를 우회하는 것을 허가하는 취약점
    22 파일 업로드 FU 파일을 업로드 할 수 있는 기능을 이용하여 시스템 명령어를 실행할 수 있는 웹 프로그램을 업로드 할 수 있는 취약점
    23 파일 다운로드 FD 파일 다운로드 스크립트를 이용하여 첨부된 주요 파일을 다운로드 할 수 있는 취약점
    24 관리자 페이지 노출 AE 단순한 관리자 페이지 이름(admin, manager )이나 설정, 프로그램 설계상의 오류로 인해 관리자 메뉴에 직접 접근할 수 있는 취약점
    25 경로 추적 PT 공격자에게 외부에서 디렉터리에 접근할 수 있는 것이 허가되는 문제점으로 웹 루트 디렉터리에서 외부의 파일까지 접근하고 실핼할 수 있는 취약점
    26 위치 공개 PL 예측 가능한 디렉토리나 파일명을 사용하여 해당 위치가 쉽게 노출되어 공격자가 이를 악용하여 대상에 대한 정보와 민감한 정보가 담긴 데이터에 접근이 가능하게 되는 취약점
    27 데이터 평문 전송 SN 서버와 클라이언트간 통신 시 암호화하여 전송을 하지 않아 중요 정보 등이 평문으로 전송되는 취약점
    28 쿠키 변조 CC 적절히 보호되지 않은 쿠키를 사용하여 쿠키 인젝션 등과 같은 쿠키 값 변조를 통한 다른 사용자로의 위장 및 권한 상승 등이 가능한 취약점

     

    [8] 점검 항목

     

     

    4) 결과 요약

    본 웹 취약점 진단은 000대학교 시스템을 대상으로 이루어졌음. 그 결과 총 4개의 취약점이 발견되었음.

    진단 결과는 다음 표와 같습니다.

    번호 취약점 요약 결과
    1 버퍼 오버플로우 사용자가 입력한 파라미터 값의 문자열 길이 제한 확인하였으며, 일부 페이지에서 다수의 입력 값에 대한 입력제한 사항이 적용되지 않았음 FAIL
    2 포맷스트링 웹 애플리케이션에 포맷 스트링 취약점 존재 여부 점검을 진행하였으나, 해당 취약점은 발견되지 않음 PASS
    3 LDAP 인젝션 로그인 페이지에서 LDAP 인젝션 공격 시도를 하였으며, 해당 취약점은 발견되지 않음. 다만 알림 팝업창에 메시지 출력이 안 되어서 사용자에게 문제에 대한 정보를 제공하지 않아서 불편함을 초래할 수 있는 가능성은 내재하고 있어서 오류 수정 권장함 PASS
    4 운영체제 명령 실행 URL 파라미터 값 부분에 운영체제 명령어를 이용하여 공격 시도하고, 입력 창을 통하여 공격 시도하여 진단을 하였으며, 해당 취약점은 발견되지 않음 PASS
    5 SQL 인젝션 로그인 페이지에서 SQL 인젝션 공격 시도를 하였으며, 해당 취약점은 발견되지 않음 PASS
    6 SSI 인젝션 로그인 페이지, 마이페이지, 커뮤니티 페이지에 입력 가능한 파라미터 값에 대해서 SSI 인젝션 공격 시도를 하였으며, 해당 취약점은 발견되지 않음 PASS
    7 XPath 인젝션 로그인 페이지에 입력 가능한 파라미터 값에 대해서 XPath 쿼리 공격을 시도를 하였으며, 해당 취약점은 발견되지 않음 PASS
    8 디렉토리 인덱싱 디렉터리 인덱싱이 되는지 시험을 진행하였으나 해당 취약점은 발견되지 않음 PASS
    9 정보 누출 크롬 웹브라우저에서 구글 검색창에서 추측 가능한 해당 취약점 공격 예시를 입력함으로 시험 진행하였으나 해당 취약점은 발견되지 않음 PASS
    10 악성 콘텐츠 콘텐츠 삽입 및 파일 업로드 제한 필터링 적용 여부 시험을 진행하였으며, 해당 취약점은 발견되지 않았으나, 일부 파일업로드 기능 알림 메시지 오류 발생 PASS
    11 크로스사이트
    스크립팅
    크롬 브라우저를 통하여 웹사이트에서 교원 아이디로 로그인을 한 다음 일부 게시판 등록 메뉴에서 크로스사이트 스크립팅 취약점이 발견되었음 FAIL
    12 약한 문자열 강도 약한 문자열 강도 취약점에 대한 시험결과 시험 아이디에 대해서 5회 이상 시험 시에 시험 아이디 잠금 기능이 있어서 일부 시험은 잠금 상태에서 비밀번호 시도를 하였으며, 해당 취약점은 발견되지 않았음 PASS
    13 불충분한 인증 중요 페이지(비밀번호 변경) 접근 시 추가 인증 요구 여부를 점검하였으며, 본인인증(등록된 휴대폰)을 위한 단계를 구현해 놓아서 해당 취약점은 발견되지 않음 PASS
    14 취약한 패스워드 복구 해당항목에 대한 시험결과 취약점 발견 안됨 PASS
    15 크로스사이트 리퀘스트 변조(CSRF) 해당항목에 대한 시험결과 취약점 발견 안됨 PASS
    16 세션 예측 발급받은 세션 ID에 일정한 패턴에 대한 시험결과 취약점이 발견되지 않음 PASS
    17 불충분한 인가 시험결과 취약점이 발견되지 않음 PASS
    18 불충분한 세션 만료 로그인 후 정상적으로 세션이 발행된 후 10분 경과 후 재 요청 했을 때 세션이 그대로 유지됨 FAIL
    19 세션 고정 1, 2차 로그인 후 세션 값을 확인 하여 예측가능한지 확인하였으나, 예측가능하지 않았음 PASS
    20 자동화 공격 Burp Suite 시험도구를 통하여 반복적인 요청 시험을 한 결과, 일부 기능(문자발송(SMS)에서 해당 취약점이 발생함 FAIL
    21 프로세스 검증 누락 해당 시스템은 고정url로 구현되어 있으므로, 해당 취약점은 발견되지 않음 PASS
    22 파일 업로드 해당항목에 대한 시험결과 취약점 발견 안됨 PASS
    23 파일 다운로드 해당항목에 대한 시험결과 취약점 발견 안됨 PASS
    24 관리자 페이지노출 해당항목에 대한 시험결과 취약점 발견 안됨 PASS
    25 경로 추적 해당항목에 대한 시험결과 취약점 발견 안됨 PASS
    26 위치 공개 해당항목에 대한 시험결과 취약점 발견 안됨 PASS
    27 데이터 평문 전송 해당항목에 대한 시험결과 취약점 발견 안됨 PASS
    28 쿠키 변조 해당항목에 대한 시험결과 취약점 발견 안됨 PASS

     

    [9] 점검 항목 요약 및 결과

     

    취약점에 대한 상세 요약 내용

    .....

     

     

    김영찬 (소프트웨어 품질 전문가)

    (재)전주정보문화산업진흥원(JICA)

    소프트웨어 개발자로 10년간 발로 코딩 하다가 한계를 느끼고, 

    2015년부터 소프트웨어 품질에 몸을 담고 기업을 돕고 있음

    email.  sweng@jica.or.kr  / tel. 063-281-4113

    주업무 : 소프트웨어 품질 컨설팅, 테스팅,  KOLAS 기술책임자, 개발자 네트워크 운영

    자격

      - SP, CMMI, VSE(ISO 29110), ISMS(ISO 27001) 인증 심사원

      - AIT, ISTQB FL, CSTS, 29119 외 다수