HTML5 기반 드라이브바이 다운로드 악성코드 은폐 기법
초록
본 논문은 HTML5에서 새롭게 도입된 기능들을 악용해 드라이브‑바이‑다운로드 형태의 웹 악성코드를 기존 정적·반정적 탐지 시스템으로부터 회피시키는 여러 오브fuscation 기법을 제안한다. 제안 기법을 적용한 악성코드 샘플을 다양한 상용·오픈소스 탐지 엔진에 테스트한 결과, 원본 형태에서는 탐지되었으나 변형 후에는 대부분 탐지되지 않음을 확인하였다. 또한 논문은 이러한 회피 기법에 대응하기 위한 탐지 로직 개선 방안을 제시한다.
상세 분석
논문은 먼저 드라이브‑바이‑다운로드 악성코드의 전형적인 흐름을 네 단계(리다이렉션·클로킹, 디오브fuscation, 환경 준비, 익스플로잇)로 정리하고, 기존 탐지 기술이 정적 시그니처 매칭, 동적 eval‑기반 실행, 하이/로우 인터랙션 하니클라이언트 등으로 구분된다는 점을 강조한다. 이때 기존 탐지기의 약점은 자바스크립트의 동적 특성과 실행 시점에만 드러나는 페이로드를 사전에 식별하지 못한다는 것이다.
HTML5에서 도입된 주요 기능으로는 Web Storage(localStorage, sessionStorage), IndexedDB, Web Workers, 그리고 Blob/ArrayBuffer 기반 바이너리 처리, 그리고 HTML5 비디오/오디오 캔버스 API가 있다. 논문은 이러한 API들을 악용해 악성코드 코드를 여러 조각으로 분산 저장하고, 런타임에 Web Worker를 통해 비동기적으로 조합·디코딩함으로써 정적 분석기가 전체 코드를 한 번에 파악하지 못하도록 만든다. 특히, Blob 객체에 악성 바이너리를 UTF‑8 문자열 형태로 삽입하고, URL.createObjectURL을 이용해 가상 파일 시스템에 매핑한 뒤, 동적으로 생성된