2019년 4월 3일
웹 취약점 분석 기술
I. 최근 웹 취약점 주요 공격 기법
- 웹취약점 분석 결과 SQL Injection 공격과 XSS 공격이 다수이므로 면밀한 취약점 분석이 필요
II. 웹 취약점 발견을 위한 정적/동적 분석 기술
가. 정적 분석 기술
구분 | 설명 | |
---|---|---|
개념 | 소프트웨어가 실행되지 않는 환경에서 소스코드 의미 분석 기반 취약점 탐지 기법 | |
특징 | – 소프트웨어 미실행 기반 분석 – 실행 보다 구현에 초점 | |
주요 기법 | 소스코드 검증 | – 검증 가이드라인 기반 보안 조치 – 조치 내역 확인 |
코드 리뷰 | – 코드 개발자 외 다른 개발자 검토 – Peer Review, 동료 검토, 제3자 검토 | |
역공학 | – S/W 기술적 원리 기반 구조 분석 – 정적 역공학 분석툴(IDA Pro) 이용 | |
분석 도구 | Coverity Prevent | – 코딩/빌드 과정 중 버그, 취약점 탐지 – 품질분석, 보안 취약점 분석, 오류 분석 |
SSEn | – 국내 기술로 개발한 점검 도구 | |
Fortify | – 다양한 언어와 플랫폼 지원 – 개발 소스에 대한 취약점 탐지 |
- 정적 분석은 코드 입력 값의 유효성 측면에서 점검 수행하며 검증 통과 시 미탐의 위험 발생
나. 동적 분석 기술
구분 | 설명 | |
---|---|---|
개념 | 실행 과정에서 다양한 입출력 데이터와 변화, 사용자 상호 작용에 따라 변화 점검 | |
특징 | – 소프트웨어를 실행하며 분석 – 실행 과정 및 결과에 초점 | |
주요 기법 | 디버깅 | – 컴퓨터 프로그램 정확성 탐지 – 논리적 오류나 취약점 탐지 기법 |
모의 해킹 | – 실제 해킹 도구 사용 침투 가능성 진단 – 침투 가능성 진단 | |
역공학 | – S/W 기술적 원리 구조 분석 – 동적 역공학 분석톨(OllyDGB) 사용 | |
분석 도구 | App SCAN | – 웹 어플리케이션 분석 전문 – 보안 결함 스캔 밑 테스트 |
취약 스캐너 | – 다양한 취약점 자동 분석 – SQL Injection XSS 등 취약점 검사 |
- 웹 프레임워크, 정적/동적 혼용, 기계 학습 분석 방법 있음
III. 정적 분석, 동적 분석 관계 및 SQL Injection
가. 정적 분석과 동적 분석과의 관계
- 정적 분석의 결과를 통해 동적 분석 시 활용하면서 동적 분석 시 발견된 취약점에 대해 안전성 제고 가능
나. SQL Injection 사례
- 동적 분석 결과의 문제에 대해 실제 문제가 되는 취약점 스택 정보, 소스코드 위치 확인
- 하이브리드 분석 기법은 정적 / 동적 분석 기술과 유기적 결합 통해 오탐, 이탐 문제 개선
IV. 정적 분석의 단점 보완
정적 분석 시 단점 | 보완 방법 (하이브리드) | 설명 |
---|---|---|
– 컴포넌트간 취약점 관리 어려움 | – 런타임 동적 분석 연계 | – 컴포넌트 보안 취약점 보완 |
– 높은 오탐 및 미탐 | – 정/동적 결과와 매칭 | – 분석 결과에 대한 신뢰성 |
– 우선순위 부여 | – 동적 분석 결과와 연계 | – 수많은 취약점 우선순위 부여 |
– 취약점 분석 범위(Application) | – 데이터 플로우 영역 대상 취약점 | – 네트워크 구간 동적 분석 |