표제지
국문초록
목차
I. 서론 9
II. 관련연구 및 보안취약점 현황 11
1. 취약점과 진단 11
1) 취약점의 개요 11
2) 취약점 진단의 필요성 11
3) 취약점 진단 컴플라이언스 12
4) 취약점 진단 방식 14
2. 현 취약점 진단의 문제점 17
1) 넓은 진단 범위 17
2) 상시 관리체계의 부재 17
3) 비싼 정보보호 솔루션 가격 18
3. 최근 해킹사고 동향 19
1) 홈페이지 변조 19
2) 침해사고 접수 19
3) 악성코드 은닉사이트 탐지 현황 20
4. 보안담당자 설문조사 21
1) 조사 개요 21
2) 분석 결과 21
III. 보안취약점 진단 및 대응방법 24
1. 보안취약점 진단 프로세스 24
1) SW 보안약점(소스코드) 취약점 진단 프로세스 24
2) 웹 취약점 진단 프로세스 25
2. 검색사이트를 이용한 보안취약점 진단 방안 26
1) 구글(Google) 26
2) 쇼단(Shodan.io) 및 센시스(Censys.io) 29
3) CVE(보안 취약점에 대한 고유 번호(식별자)) 33
3. 오픈소스 점검도구를 이용한 취약점 진단 방안 34
1) OWASP ZAP 소개 34
2) OWASP ZAP 주요 기능 35
3) OWASP ZAP 점검 방법 35
4. 웹 어플리케이션 보안진단 및 대응방안 37
1) SQL(Structured Query Language) 삽입 37
2) 파일 업로드 39
3) 파일 다운로드 41
4) 크로스 사이트 스크립트(XSS) 42
5) 인증 및 세션 관리 44
6) 디렉터리 목록 공개 46
7) 정보노출 48
8) 접근통제 51
9) 안전하지 않은 역직렬화 53
10) 데이터 평문전송 취약점 54
IV. 개선방안 분석 및 검증 56
1. 취약점 개선율을 통한 실효성 검증 56
1) 점검 개요 56
2) 분석 결과 56
2. 취약점 검출 비교를 통한 실효성 검증 61
1) 취약점 검출 환경 61
2) 취약점 검출 상세 비교 63
V. 결론 73
참고문헌 74
Abstract 75
〈표 2-1〉 외부 컨설팅과 자동화 점검도구, 소스코드 진단의 장단점 비교 14
〈표 2-2〉 자동화 점검도구 기능 및 설명 14
〈표 2-3〉 각 메뉴별 발생 가능한 취약점 종류 예시 15
〈표 2-4〉 소프트웨어 보안약점 진단원의 자격 기준 16
〈표 2-5〉 정보시스템의 정의 17
〈표 2-6〉 설문조사 설계 21
〈표 2-7〉 보안사고 발생 이유 22
〈표 2-8〉 보안강화를 위한 방법 22
〈표 2-9〉 추후 필요한 교육 내용(분야) 23
〈표 2-10〉 원하는 교육 수준 23
〈표 2-11〉 해당기관의 부족한 관리·기술·물리적 보호조치 23
〈표 3-1〉 구글 검색 키워드 27
〈표 3-2〉 쇼단(Shodan) 검색키워드 목록 30
〈표 3-3〉 네트워크 스캔 방식 비교 30
〈표 3-4〉 CVE-ID 발급 방식의 변화 33
〈표 3-5〉 OWASP ZAP 주요 기능 35
〈표 3-6〉 SQL 삽입 취약점 진단 예시 37
〈표 3-7〉 업로드 취약점 우회 예시 40
〈표 3-8〉 다운로드 점검 필요 주요 시스템 파일 42
〈표 3-9〉 다운로드 취약점 필터링 대상 42
〈표 3-10〉 크로스 사이트 스크립트 취약점 진단 예시 43
〈표 3-11〉 치환이 필요한 특수문자 44
〈표 3-12〉 인증 및 세션관리 취약점 진단 예시 45
〈표 3-13〉 디렉터리 목록 공개 취약점 진단 예시 46
〈표 3-14〉 디렉터리 목록 공개 대웅 방법 예시 48
〈표 3-15〉 정보 노출 취약점 진단 예시 48
〈표 3-16〉 정보노출 대응 방법 예시 50
〈표 3-17〉 접근통제 취약점 진단 예시 51
〈표 4-1〉 점검 상세내용 56
〈표 4-2〉 전자정부서비스 웹 취약점 표준 점검항목(21개) 57
〈표 4-3〉 기관별 취약점 개선율 59
〈표 4-4〉 CC인증 자동화 점검도구 VS 검색사이트 및 오픈소스 점검도구 결과 비교 62
〈그림 2-1〉 취약점 악용 사례 11
〈그림 2-2〉 CC(Common Criteria)인증 대상 취약점 진단도구 목록 16
〈그림 2-3〉 해킹사고 건수 그래프 19
〈그림 2-4〉 악성코드 종류 및 연도별 유형 20
〈그림 3-1〉 SW보안약점(소스코드) 취약점 진단 프로세스 24
〈그림 3-2〉 웹 취약점 진단 프로세스 25
〈그림 3-3〉 구글 검색 가능 키워드 범위 26
〈그림 3-4〉 본문 키워드 검색을 이용한 SQL Error 검색 예시 27
〈그림 3-5〉 URL 키워드 검색을 이용한 관리자페이지 검색 예시 27
〈그림 3-6〉 site:*.go.kr inurl:admin 검색 예시 28
〈그림 3-7〉 site:gg.go.kr intext:test 검색 예시 28
〈그림 3-8〉 site:gg.go.kr intitle:login 검색 예시 29
〈그림 3-9〉 '경기도' 라는 단어를 입력한 검색 예시(한글 검색 가능) 31
〈그림 3-10〉 (경기도) AND protocols : '21/ftp' 검색 예시 31
〈그림 3-11〉 쇼단(Shodan) 사이트 검색 예시 32
〈그림 3-12〉 쇼단(Shodan)으로 확인한 CVE 취약점 정보 32
〈그림 3-13〉 OWASP ZAP 다운로드 홈페이지 (https://www.zaproxy.org) 34
〈그림 3-14〉 OWASP ZAP 점검결과 예시 36
〈그림 3-15〉 URL 검색폼 쿼리문 입력에 의한 DB 에러문구 발생 예시 37
〈그림 3-16〉 로그인 폼 쿼리문 입력으로 로그인 성공 예시 38
〈그림 3-17〉 파일 업로드 보안취약점 예시 40
〈그림 3-18〉 파라미터 변조를 통한 파일다운로드 보안취약점 예시 41
〈그림 3-19〉 URL 입력폼의 스크립트를 입력을 통해 실행된 팝업 43
〈그림 3-20〉 사용자 입력폼의 스크립트를 입력을 통해 실행된 팝업 43
〈그림 3-21〉 웹 프록시 도구를 사용한 파라미터 변조 예시 45
〈그림 3-22〉 파라미터 변조를 통한 정상적인 사용자 회원정보 관리 페이지 접근 45
〈그림 3-23〉 구글 검색엔진을 이용한 디렉터리 목록 공개 점검 예시 47
〈그림 3-24〉 디렉터리 목록 공개 취약점 예시 47
〈그림 3-25〉 서버정보 노출 취약점 예시 49
〈그림 3-26〉 구글 검색엔진을 이용한 정보노출 점검 예시 49
〈그림 3-27〉 bak 파일을 통한 중요정보 노출 취약점 예시 49
〈그림 3-28〉 관리자 페이지 접근통제 취약점 예시 51
〈그림 3-29〉 구글 검색엔진을 이용한 접근통제 점검 예시 52
〈그림 3-30〉 와이어샤크를 이용한 데이터 평문전송 점검방법 예시 54
〈그림 3-31〉 데이터 평문 전송 취약점 예시 55
〈그림 4-1〉 기관별 웹 취약점 개수 변경 수치(개선율) 58
〈그림 4-2〉 웹 취약점별 개수 변경 수치(개선율) 58
〈그림 4-3〉 기관별 서버·DB 포트노출 개수 변경 수치(개선율) 60
〈그림 4-4〉 서버·DB포트 노출 개수 변경 수치(개선율) 60
〈그림 4-5〉 OWASP ZAP 자동화 점검도구 진단결과 61
〈그림 4-6〉 CC인증 자동화 점검도구 진단결과 62
〈그림 4-7〉 XSS 보안취약점 점검결과 비교 63
〈그림 4-8〉 SQL삽입 보안취약점 점검결과 비교 64
〈그림 4-9〉 파일 다운로드 취약점 점검결과 비교 65
〈그림 4-10〉 중요정보 평문전송 점검결과 비교 66
〈그림 4-11〉 디렉터리 인덱싱 취약점에 대한 점검결과 비교 67
〈그림 4-12〉 접근통제(관리자 로그인 노출) 취약점에 대한 점검결과 비교 68
〈그림 4-13〉 정보노출 취약점에 대한 점검결과 비교 69
〈그림 4-14〉 서버 오류 노출 취약점에 대한 점검결과 비교 70
〈그림 4-15〉 Nslookup 명령어를 이용한 서버IP 확인 71
〈그림 4-16〉 쇼단(Shodan) 검색을 통해 확인된 노출 포트정보 및 CVE 취약점 71
〈그림 4-17〉 CVE 홈페이지(cve.mitre.org)에서 확인한 취약점 결과 72