2022년 고품질 SW개발 컨설팅 및 테스팅 지원 사업 테스팅 사례 공유 합니다.
(재)전주정보문화산업진흥원의 SW품질역량센터에서는
2011년 부터 전라북도 ICT/SW기업을 대상으로 품질 향상을 위한 컨설팅 및 테스팅을 지원하고 있습니다.
본 테스팅은 000대학교에 납품되는 시스템을 웹 취약점 진단(주요정보통신기반시설 웹 취약점 진단 28개 항목)을 진행한 테스팅 사례입니다.
목차
1. 테스팅 개요
- 기업명 : 000 시스템
- 기업주소 : 전라북도 전주시 ***
- 테스팅 내용 : 000대학교 시스템
- 테스팅 목적 : 기업 개발한 제품을 대상으로 주요정보통신기반시설 웹 취약점 진단 28개 항목에 대한 보안성 기반 테스트를 통해서 고객에게 보안이 강화된 고품질 제품을 전달하기 위한 테스팅을 목표
2. 테스팅 일정
수 행 일 정 | 컨설팅 내용 | 담 당 자 |
2022년 5월 4일(수) | 신청서 제출 | 기업 담당자 |
2022년 5월 9일(월) | 신청서 접수 완료 | 컨설턴트(JICA) |
2022년 5월 12일(목) ~ 2022년 5월 27일(금) |
주요정보통신기반시설 웹 취약점 진단 28개 항목 시험 (SW시험실) |
컨설턴트(JICA) |
2022년 5월 27일(금) | 테스팅 보고서 작성 및 기업 제공 | 컨설턴트(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 외 다수
'테스팅' 카테고리의 다른 글
2022년 테스팅 사례 공유 - VR 0000 제품 성능효율성 테스팅 (0) | 2023.04.14 |
---|---|
2022년 테스팅 사례 공유 - VR 0000 제품 기능적합성 테스팅 (0) | 2023.04.14 |
2022년 테스팅 사례 공유 - 농업0000시스템 GS인증평가모듈 기반 테스팅(보안성) (0) | 2023.04.14 |
2022년 테스팅 사례 공유 - 00스마트팜 GS인증평가모듈 기반 테스팅(성능효율성) (0) | 2023.04.14 |
2022년 테스팅 사례 공유 - 00스마트팜 GS인증평가모듈 기반 테스팅(기능적합성) (1) | 2023.04.14 |