You are on page 1of 5

퍼징 도구들의 비교 분석을 통한 효율적인 웹 브라우저 퍼징 전략

An Efficient Web Browser Fuzzing Strategy through Comparative Analysis of Fuzzers

저자 박영웅, 이준혁, 조성제


(Authors) Yeongung Park, Junhyuk Lee, Seongje Cho

출처 한국정보과학회 학술발표논문집 38(1A), 2011.6, 328-331(4 pages)


(Source)

한국정보과학회
발행처
The Korean Institute of Information Scientists and Engineers
(Publisher)

URL http://www.dbpia.co.kr/journal/articleDetail?nodeId=NODE01687924

APA Style 박영웅, 이준혁, 조성제 (2011). 퍼징 도구들의 비교 분석을 통한 효율적인 웹 브라우저 퍼징 전략. 한국정보과학회 학술발표논문집
, 38(1A), 328-331

이용정보 청주대학교
203.252.***.45
(Accessed) 2022/03/15 20:34 (KST)

저작권 안내
DBpia에서 제공되는 모든 저작물의 저작권은 원저작자에게 있으며, 누리미디어는 각 저작물의 내용을 보증하거나 책임을 지지 않습니다. 그리고 DBpia에서 제공되는 저작물은
DBpia와 구독계약을 체결한 기관소속 이용자 혹은 해당 저작물의 개별 구매자가 비영리적으로만 이용할 수 있습니다. 그러므로 이에 위반하여 DBpia에서 제공되는 저작물을 복제,
전송 등의 방법으로 무단 이용하는 경우 관련 법령에 따라 민, 형사상의 책임을 질 수 있습니다.

Copyright Information
Copyright of all literary works provided by DBpia belongs to the copyright holder(s)and Nurimedia does not guarantee contents of the literary work or assume
responsibility for the same. In addition, the literary works provided by DBpia may only be used by the users affiliated to the institutions which executed a
subscription agreement with DBpia or the individual purchasers of the literary work(s)for non-commercial purposes. Therefore, any person who illegally uses
the literary works provided by DBpia by means of reproduction or transmission shall assume civil and criminal responsibility according to applicable laws and
regulations.
2011 한국컴퓨터종합학술대회 논문집 Vol.38, No.1(A)

퍼징 도구들의 비교 분석을 통한 효율적인 웹 브라우저 퍼징


전략*
박영웅O, 이준혁, 조성제

단국대학교 컴퓨터과학과

santapark5@gmail.com, realaudioonland@gmail.com, seongjecho@gmail.com,

An Efficient Web Browser Fuzzing Strategy through Comparative Analysis of


Fuzzers
Yeongung ParkO, Junhyuk Lee, Seongje Cho

Department of Computer Science, Dankook University

요 약
최근 소프트웨어 결함이나 보안 취약점을 분석하고 발견하기 위해 퍼징(fuzzing)에 대한 연구가 활발하다. 퍼징은 무
작위 입력 데이터를 대상 프로그램에 주입하여 그 결과를 관찰하면서 결함을 탐지하는 테스팅 방법이다. 본 논문에서는
웹 브라우저를 대상으로 기존의 '변이 기반의 덤 퍼징'(Mutation based Dumb Fuzzing) 방식과 '생성 기반의 지능적 퍼
징‘(Generation based Smart Fuzzing) 방식을 비교 분석하였다. 그리고 실험을 통해 기존의 퍼징 도구들의 성능을 측정
하고 이를 바탕으로 브라우저 퍼징에서 ’변이 기반의 덤 퍼징‘이 웹 브라우저의 결함 및 취약점 탐지에 더 효율적이라
는 것을 보인다. 그리고 웹 브라우저를 대상으로 ’변이 기반의 덤 퍼징‘ 방식을 적용할 때, 코드 실행 커버리지를 고려
한 다수의 입력 템플릿 확보와 다수의 템플릿들에 대한 구성 요소들을 랜덤하게 섞어서 변이를 하는 효과적인 브라우
저 퍼징 전략을 제안한다.

1. 서 론 생성한 테스트케이스의 코드 커버리지(Code Coverage)를 측정하


였다. 이러한 실험 결과를 바탕으로 웹 브라우저의 취약점을 조기
인터넷과 웹이 보편화됨에 따라 수많은 사용자들이 웹 브라우 에 발견하기 위한 효율적인 퍼징 전략을 제안한다.
저 프로그램을 이용하여 소셜 네트워크 서비스(SNS)나 포털 사이
트, 온라인 뱅킹 서비스 등을 이용하고 있다. 이에 홈 페이지나 2. 관련 연구
웹 브라우저를 통해 전파되는 악성코드가 꾸준히 증가하고 있다
[1]. 최근에는 웹 2.0과 3.0, 그리고 모바일 웹 브라우저 등의 활 2.1 덤 퍼징과 지능적 퍼징
용이 더욱 더 일반화되자 웹 브라우저의 취약점(vulnerability)을 퍼징을 수행하는 방식은 덤 퍼징과 지능적 퍼징 등 두 가지
악용한 공격이 많아지고 있다. 로 분류할 수 있다. 덤 퍼징은 대상 소프트웨어가 정상적으로
HP가 발표한 ‘2010 사이버 보안 위협 보고서’에 따르면 처리할 수 있는 데이터(즉, 이미 알려진 입력 데이트)를 변이
2010년 초반만 해도 전체 공격 중 10%를 차지했던 웹 기반 공격 (mutation)시켜 테스트 케이스를 생성한다. 그리고 지능적 퍼징
이 2010년 후반에는 70%를 넘는다고 보고되었다. 시만텍이 2010 은 입력 데이터의 구조(포맷)에 대한 명세를 이용하여 그 구조
년 주요 사이버 범죄 및 보안 위협 동향을 조사‧분석한 최신 보고 를 반영한 입력 값을 생성하여 퍼징을 수행한다.
서인 ‘인터넷 보안 위협 보고서’(제16호)에서도 웹 브라우저에 이미지 뷰어 프로그램에 대해, 코드 커버리지 기준으로 덤
서 구동되는 자바 스크립트의 취약점을 노린 공격이 증가하고 있 퍼징과 지능적 퍼징 방식의 효율성을 비교한 기존의 연구결과
으며, 단축 URL을 SNS 상에 노출시켜 사용자들을 피싱이나 악성 에 따르면, 지능적 퍼징 방식이 덤 퍼징 방식보다 코드 커버리
코드 사이트로 유도한다고 한다. 지가 높고 성능이 좋다고 한다[3]. 이미지 뷰어 프로그램을 대
따라서 웹 브라우저 취약점이 크래커에 의해 악용되기 전에 소 상으로 실험한 논문 [3]에서와 달리, 본 논문에서는 웹 브라우
프트웨어 개발 과정이나 테스팅, 배포 단계에서 미리 발견하여 취 저를 대상으로 다양한 퍼징 기법을 분석하고 실험한다.
약점을 제거해야 한다. 웹 브라우저의 취약점을 찾기 위한 실행
기반의 동적 분석 방법으로는 퍼징(Fuzzing, Fuzz testing)이 있다. 2.2 기존의 브라우저 퍼징 도구
퍼징은 소프트웨어 테스팅 방법 중 하나로 난수를 발생시켜 대상 대표적인 브라우저 퍼징 도구에는 jsfunfuzz[4], iExploder[5],
소프트웨어에 주입하는 방법으로서 보안에 중점을 두어 테스트하 Browser Fuzzer 3[6], Cross fuzz[7] 등이 있다.
는 비기능적 테스팅(non-functional testing) 방식이다[2].
본 논문에서는 기존에 알려진 웹 브라우저 퍼징 도구들을 덤
(표 1) 웹 브라우저 퍼징 도구들
퍼징(Dumb fuzzing) 방식과 지능적 퍼징(Smart fuzzing) 방식으로
분류하여 성능을 비교‧분석하였다. 그리고 웹 브라우저들을 대상 퍼징 방식 퍼징 도구 특징
으로 '변이(mutation) 기반의 덤 퍼징'과 '생성(Generation) 기반의 Browser fuzzer META 태그 Refresh 속성을 이용
지능적 퍼징' 도구들의 효용성을 평가하는 실험을 수행하였다. 덤 3 Javascript 한 자동 테스트 케이스 입력
덤 퍼징
퍼징 도구인 Cross fuzz를 이용하여 Safari 및 Firefox 브라우저 Cross fuzz 템플릿 간의 태그 및 속성 값을 이
용한 변이
들에 대해 수십 개의 크래시를 발견하였다. 그리고 퍼징 도구들이
jsfunfuzz 생성된 테스트 케이스를 컴파일과
지능적 디컴파일 과정을 통한 검증
* 이 논문은 2010년도 정부(교육과학기술부)의 재원으로 한국연 퍼징 각 브라우저 고유의 태그 리스트를
iExploder 이용한 테스트 케이스 생성
구재단의 기초연구사업 지원을 받아 수행된 것임
(2010-0024495)

청주대학교 | IP:203.252.***.45 | Accessed 2022/03/15 20:34(KST)


2011 한국컴퓨터종합학술대회 논문집 Vol.38, No.1(A)

웹 브라우저를 대상으로 하는 퍼징 도구들은 테스팅 수행 방식 해서 반드시 취약점을 발견할 수 있는 것은 아니다.


에 따라서 (표 1)와 같이 두 가지로 분류할 수 있는데, 덤 퍼징
방식은 일정한 템플릿(template)의 변이를 이용한 퍼징 방식이 3. 웹 브라우저 대상의 퍼징 및 결과 분석
고, 지능적 퍼징 방식은 HTML, CSS, Javascript의 문법 구조나
예약어 목록을 이용해서 테스트 케이스를 생성하는 퍼징 방식 이 장에서는 덤 퍼징 방식의 도구 2개와 지능적 퍼징 방식의
이다. 도구 2개를 각각 선정하여, 웹 브라우저를 대상으로 실제 퍼징
대표적인 덤 퍼징도구인 Cross fuzz는 (그림 1)과 같은 과정 하여 두 퍼징 방식의 효율성을 실험한다.
을 수행된다.
3.1 실험 환경 및 실험 대상
본 실험은 Windows 7 Enterprise K가 설치된 Intel(R)
Core(TM)2 Duo CPU E7400 2.79GHz, 4.00GB RAM에서 수행하
였다.
퍼징 실험 대상으로는, 많이 알려진 웹 브라우저인 Mozilla
Firefox 3, 3.5, 3.6 버전들과 Apple Safari 3.2, 4.0.3, 5.0.5 버전
들을 선정하였다. 덤 퍼징을 위한 도구로는 Cross fuzz와
Browser Fuzzer 3을 선정하고 지능적 퍼징을 위한 도구로는
iExploder와 jsfunfuzz을 선정하였다.
위 실험 대상 및 도구들을 이용하여 각각 3시간씩 퍼징을 수
행하여 발생한 크래시 수를 측정하였다. 그리고 퍼징 도구가
생성한 테스트 케이스를 실험 대상에 입력하여, 처리가 완료될
때까지 수행되는 총 기계어 수(명령어 개수)에서 중복 실행된
기계어 수를 제외하여 코드 커버리지를 측정하였다. 이를 통해
(그림 1) Cross fuzz 퍼징 수행 과정
서 웹 브라우저에서 덤 퍼징 방식과 지능적 퍼징 방식의 효율
성을 비교분석한다.
Cross fuzz 방식의 핵심은 템플릿 파일의 요소들을 서로 랜덤
또한 기본으로 제공되는 페이지 기반의 템플릿 변이와 알려
하게 섞는 것이다. 이를 위해서 Cross fuzz는 HTML, XUL,
진 웹 사이트 페이지 기반의 템플릿 변이로 덤 퍼징을 수행한
SVG, XML과 같은 다양한 형식의 템플릿을 정의하고 있다. 주
다. 이를 통해 덤 퍼징에서 효율적인 템플릿의 구성에 대해서
어진 템플릿을 변이시키기 위해서 각 템플릿의 구성요소를 수
도 분석한다.
집하여 다른 템플릿의 변이에 이용한다. 변이를 통해 생성된
테스트 케이스를 입력하기 위해서는 DOM(Document Object
3.2 실험 및 분석
Model)을 사용한다. 이렇게 DOM에서 변이된 값은 웹 브라우저
넓은 의미의 취약점은 소프트웨어 개발 시에 설계 단계의 결
에 바로 반영되어 빠르게 테스트 케이스로 적용될 수 있다.
함(fault)과 구현 단계의 버그(bug)를 포함한다. 결함이나 버그를
Browser Fuzzer 3의 자바 스크립트(Javascript) 퍼징은 미리
가진 프로그램을 대상으로, 런타임 테스팅 시에 크래시(crash)
정의된 자바 스크립트 코드에 특정 함수의 인자 값을 수정하는
가 유발되었다면, 그 프로그램은 취약점을 가진 것으로 판단할
변이 방법을 통해서 퍼징을 수행한다.
수 있다. 다르게 말하면, 프로그램이 크래시된 경우, 취약점이
iExploder는 각 웹 브라우저들이 인식하는 고유 HTML과
존재함을 탐지한 것이라고 할 수 있다.
CSS 태그, 그리고 속성들에 대한 목록을 이용한다. 이를 통해,
웹 브라우저의 종류를 인식하고 대상 브라우저에 고유한 태그
목록을 이용하여 랜덤하게 테스트 케이스를 생성한다.
3.2.1 크래시 수 측정 및 분석
iExploder는 HTTP 헤더 퍼징, CSS 선택자(Selector) 퍼징, BMP, 퍼징 도구들을 실험 대상에 적용하여 유발된 크래시 수를 측
GIF, JPG 그리고 WAV와 같은 미디어 형식에 대한 기본적인 정한 결과, 기본으로 제공되는 페이지 기반의 템플릿 변이로
퍼징도 지원한다. 그리고 HTTP 헤더 퍼징을 위해서 자체적으 Cross fuzz는 Safari에서 총 191개 그리고 Firefox에서 197개의
로 웹 서버를 만들어서 퍼징을 수행할 수 있도록 지원한다. 크래시를 발견하였다.
jsfunfuzz는 자바 스크립트의 문법 구조를 미리 정의하고 있
다. 이를 이용해서 랜덤하게 자바 스크립트 사용자 정의 함수
로 구성된 테스트 케이스를 생성한다. 그리고 퍼징의 효율을
높이기 위해서 생성된 테스트 케이스를 컴파일(Compile)와 디컴
파일(Decompile) 과정을 통해 올바르게 수행될 수 있는지 검증
한다.

2.3 코드 커버리지
본 논문에서 코드 커버리지(Code Coverage)는 테스팅 과정에
서 실제 수행된 코드의 라인 수를 의미하며, 테스팅의 유효 범
위를 측정하는 기법으로 사용한다. 코드 커버리지는 공격자가
소프트웨어를 공격하는데 이용할 수 있는 자원인 공격 표면 (그림 2) Cross fuzz에 의한 퍼징 결과
(Attack Surface)을 측정하는데 사용되기도 한다[8]. (y축:크래시 수)
코드 커버리지와 소프트웨어의 결함 탐지 간의 관계를 연구
그러나 Browser Fuzzer 3, iExploder, jsfunfuzz 등 나머지 3개
한 기존의 다른 연구진도 코드 커버리지를 테스팅의 효율성을
측정하는 측정기준으로 활용하고 있다[9]. 퍼징에서는 퍼징 도 의 퍼징 도구는 실험 대상에서 아무런 크래시를 유발시키지 못
구가 발견할 수 있는 버그 수를 예측하거나 퍼징 도구의 효율 했다. 즉, Cross fuzz를 제외한 다른 3개의 퍼징 도구는 3 시간
의 실험 동안에 대상 브라우저에 존재하는 취약점을 탐지하지
성을 측정하는데 사용된다. 그러나 코드 커버리지가 100%라고
못 했다.

청주대학교 | IP:203.252.***.45 | Accessed 2022/03/15 20:34(KST)


2011 한국컴퓨터종합학술대회 논문집 Vol.38, No.1(A)

실험 결과에서, 덤 퍼징 도구인 Cross fuzz가 웹 브라우저 취 덤 퍼징 방식의 코드 커버리지에서 Browser Fuzzer 3


약점 발견에는 가장 효과적임을 알 수 있다. 이는 생성 기반의 Javascript가 Cross fuzz보다 수치가 높게 나타났다. Browser
지능적 퍼징이 이미지 뷰어의 취약점 발견에 효과적이라는 [3] Fuzzer 3 Javascript의 변이 방법은 (그림 5)와 같이 미리 정의
의 연구 결과와는 다르며, 이에 대한 설명은 3.2.2절에서 기술 된 하나의 템플릿에 alert()나 prompt() 함수의 인자에 대해서만
한다. 퍼징을 수행한다. 이는 alert(), prompt() 그리고 confirm() 함수
(그림 2)에서 Cross fuzz에 의해 발견된 크래시 수의 분포는 의 오류만을 검증하는 매우 단순한 변이 방법으로, 취약점 발
Firefox와 Safari 모두 최근에 공개된 버전일수록 크래시 수가 견에는 효과적이지 않았다. 즉, 퍼징 도구의 코드 커버리지가
감소하는 것을 볼 수 있다. 이는 Mozilla의 경우 Bugzilla라는 버 높다고 하여 더 많은 취약점을 발견할 수 있다는 뜻은 아니었
그 추적 시스템과 MFSA(Mozilla Foundation Security Advisories) 다.
를 이용해서 Firefox의 취약점을 관리하고 있고, Apple의 경우
Apple Product Security를 이용해서 Safari의 취약점을 관리하고
있기 때문이라고 추측딘다. 즉, 과거 버전을 개선하고 패치하여
새로운 버전을 배포하기 때문에, 최신 버전에 취약점의 수가
적다는 것을 유추할 수 있다.

3.2.2 코드 커버리지 측정 및 분석 (그림 5) Browser Fuzzer 3의 테스트 케이스


발생한 크래시 수에 대한 (그림 2)의 결과를 분석하기 위해,
각 퍼징 도구들에 대한 실행 시의 코드 커버리지를 측정하였
다. (표 2)에 그 결과가 나타나 있으며, 덤 퍼징 방식이 지능적
퍼징 방식보다 코드 커버리지가 더 높은 것을 알 수 있다.

(표 2) 퍼징 도구들의 코드 커버리지 측정 표 (그림 6) Cross fuzz의 테스트 케이스


(수행된 명령어 수)
Cross fuzz는 (그림 6)와 같이 여러 템플릿의 속성과 미리 정
코드 의된 비정상 값으로 랜덤하게 섞어서 변이를 수행하여 템플릿
퍼징 방식 퍼저
커버리지 이 많을수록 다양한 형태의 테스트 케이스를 생성할 수 있었
Cross fuzz 4,358,269 고, 이러한 퍼징을 통해서 최신 웹 브라우저들에서도 여러 크
덤 퍼징 Browser Fuzzer 래시를 발견할 수 있었다. 이는 효율적이고 다양한 형태의 테
11,087,044
3 Javascript 스트 케이스를 생성할 수 있는 퍼징 방식을 고려하는 것이 중
지능적 iExploder 3,785,883 요하다는 것을 의미한다.
퍼징 jsfunfuzz 3,585,753 지능적 퍼징 방식에 비해 덤 퍼징 방식의 코드 커버리지가
더 높은 것은, 지능적 퍼징이 문법 구조나 예약어들을 미리 알
iExploder의 코드 커버리지 수치가 덤 퍼징에 비해 낮다. (그 고 있다고 하더라도 코드 커버리지가 높고 문법 구조가 복잡한
림 3)에 있는 iExploder가 생성한 테스트 케이스의 샘플을 보 테스트 케이스를 자동으로 생성하는데 어려움이 있다는 것이
면, 태그가 문법적인 요소를 고려하지 않고 랜덤하게 구성되어 다. 오히려 덤 퍼징에서 기존의 템플릿을 활용하는 것이 코드
있는 것을 볼 수 있는데, 이러한 테스트 케이스는 브라우저에 커버리지를 더 높이고 문법 구조를 복잡하게 할 수 있다는 의
서 처리될 수 없는 요소들을 많이 포함하고 있다. 이로 인해 미이다.
코드 커버리지가 높지 않다고 판단된다. 3.2.1절과 3.2.2절의 결과를 통해서, 덤 퍼징 방식이 지능적
퍼징 방식보다 많은 크래시를 유발시켰고 코드 커버리지도 높
았음을 알 수 있다. 즉, 웹 브라우저 퍼징에서는 덤 퍼징 방식
이 지능적 퍼징 방식보다 더 효율적이다. 그러한, 덤 퍼징들 간
에는 코드 커버리지가 높다고 하여 더 많은 크래시를 유발시키
는 것은 아님을 파악할 수 있었다. 이는, 퍼징에서 높은 코드
커버리지 뿐만 아니라 퍼징 방법의 효용성도 고려하여야 한다
(그림 3) iExploder의 테스트 케이스 는 것을 의미한다.

jsfunfuzz의 코드 커버리지 수치가 4개의 퍼징 도구 중에서


3.2.3 템플릿 비교 분석
가장 낮다(표 2 참조). (그림 4)의 jsfunfuzz가 생성한 테스트 케
템플릿 변이에 의한 Cross fuzz를 통해 크래시가 발생하는
이스를 보면, 예약어 구성이 단순하고 문법적으로 복잡하지 않
경우가 많았다. 이에 어떤 템플릿을 이용하는 것이 더 효과적
다. 그러나 파서에서 해석하기 어려운 키워드를 다량 연속으로
인지를 파악하는 실험을 수행하였다.
사용하여 파서에서의 오류를 유발할 수 있는 테스트 케이스를
기본 템플릿과 네이버 메인 홈페이지를 템플릿으로 동일 시간
생성하였다. 실제 jsfunfuzz를 이용한 실험에서 Firefox 3.5 버
동안 Cross fuzz 퍼징을 수행했을 때, 네이버 메인 페이지를 템
전의 경우 jsfunfuzz에 의해 재시작되는 경우가 발생하였다. 재
플릿으로 이용하는 것이 기본 템플릿을 이용하는 것 보다
시작되는 경우에는 크래시로 산정하지 않았다. 최신 버전의
Firefox 3.6에서는 32개, Safari 5.0.3에서는 6개 더 많은 크래시
Firefox의 경우에는, jsfunfuzz에 의해 브라우저가 재시작 되는
를 발견하였다.
문제가 나타나지 않았다.
템플릿들 간의 차이로 인한 크래시 발생 수가 (그림 7)에 나
타나 있다. 이에, 두 템플릿의 구성 요소 분석을 위해서 각 페
이지에 사용된 태그의 수와 각 태그에 사용된 속성 수를 중복
을 배제하고 측정하였다.
(그림 4) jsfunfuzz의 테스트 케이스

청주대학교 | IP:203.252.***.45 | Accessed 2022/03/15 20:34(KST)


2011 한국컴퓨터종합학술대회 논문집 Vol.38, No.1(A)

시킬 수 있는 값들만을 이용하여 변이를 수행하였다. 이러한


방식은 다양한 테스트 케이스 생성에 한계가 존재한다. 따라서
본 논문에서는 효과적 변이 방법으로, 인터넷을 통해서 수집한
페이지 구성이 복잡하고 다양한 형식의 템플릿들에서 수집하고
누적한 구성요소들과 기존의 미리 정의된 비정상 값들을 랜덤
하게 조합하여 템플릿을 변이시키는 방법을 제안한다.
퍼징 사이클에서 수정된 태그와 해당 태그 변이에 사용된 변
이 요소들을 누적 저장하여 크래시가 발생했을 때, 크래시가
발생한 태그의 변이에 사용된 변이 요소들을 다른 템플릿의 다
른 태그에 동일하게 적용시키는 것이 바람직하다. 이러한 변이
방법을 이용해서 테스트 케이스를 생성한다면, 기존에 존재하
(그림 7) 템플릿 간 크래시 발생 수 는 다양한 템플릿에서 테스트 케이스 생성에 사용할 값들을 지
속적으로 수집함으로써, 변이에 사용될 요소들이 많아져 다양
그 결과, Cross fuzz의 기본 템플릿이 태그 수 24개, 속성 수 한 테스트 케이스를 생성할 수 있다. 또한 실제 크래시가 발생
9개이고, 네이버 메인 페이지 기반의 템플릿이 태그 수 90개, 했을 때 사용된 변이 요소들을 다음 퍼징 사이클의 템플릿에
속성 수 35개로 네이버 메인 페이지가 더 복잡하게 구성되어 우선 적용하여 다른 태그에서도 동일한 패턴의 속성 구성이 크
있었다. 코드 커버리지 또한 Cross fuzz의 기본 템플릿이 래시를 일으킬 수 있는지 확인할 수 있다. 또한 크래시가 발생
4,358,269 그리고 네이버 메인 페이지가 19,351,011로 네이버 메 한 태그와 태그에 사용된 속성 패턴들을 데이터베이스화 하여
인 페이지가 더 높았다. 이는 덤 퍼징 방식에서는 템플릿에 사 좀 더 유용한 변이 요소들을 생성할 수 있다.
용된 태그 수와 속성 수가 퍼징의 효율성에 영향을 미친다는
것을 의미하며 템플릿에 다양한 태그와 속성들을 다량 사용하 5. 결론 및 향후 연구
여 코드 커버리지를 높일 수 있음을 의미한다.
본 논문에서는 기존의 브라우저 퍼징 도구들에 대한 비교와
4. 웹 브라우저 퍼징 전략 실제 실험을 통해서 브라우저 퍼징에서는 생성 기반의 지능적
퍼징보다 변이 기반의 덤 퍼징이 효율적임을 보였다. 그리고
3장의 실험을 통해서, 웹 브라우저 퍼징에는 템플릿 변이를 브라우저 퍼징에서 변이 기반의 덤 퍼징 방식을 사용하여 코드
통한 덤 퍼징 방식이 효과적이며, 효율적 퍼징을 위해서는 테 커버리지가 높은 템플릿을 다량 확보하고, 템플릿에서 수집된
스트 케이스의 높은 코드 커버리지와 변이 방법의 효용성을 고 값으로 변이 하여 퍼징을 수행하는 전략을 제안하였다. 향후
려하여야 함을 알 수 있었다. 따라서 이러한 분석 결과들과 연구에서는 브라우저에 대한 퍼징에서 명세 기반의 지능적 퍼
Cross fuzz의 특성을 바탕으로, 본 논문에서는 (그림 6)과 같은 징과 변이 기반의 덤 퍼징 방식을 조합할 수 있는 방법을 연구
웹 브라우저 퍼징 전략을 제안한다. 할 예정이다.

[참고 문헌]
[1] 한국 인터넷 진흥원,“홈페이지 은닉형 악성코드 유포패턴
분석방법 연구, 광운대·단국대, 2010. 10
[2] 김동진, 조성제, “멀티미디어 플레이어에 대한 퍼징 기반
취약점 분석”, 정보과학회 논문지:컴퓨팅의 실제 및 레터,
17(2), pp. 98-107, 2011. 2
[3] Charlie Miller, Zachary, and N.J. Peterson, "Analysis of
Mutation and Generation-Based Fuzzing", Independent
Security Evaluators, March 1, 2007
[4] Indistinguishable from Jesse, Itroducing jsfunfuzz, http://ww
(그림 8) 전체 웹 브라우저 퍼징 전략 w.squarefree.com/2007/08/02/introducing-jsfunfuzz/
[5] iExploder, http://code.google.com/p/iexploder/
4.1 템플릿 수집 및 선정 [6] Darknet, Browser Fuzzer 3, http://www.darknet.org.uk/2010/
변이 기반의 퍼징에서는 템플릿 파일이 매우 중요하다. 이는 01/browser-fuzzer-3-bf3-comprehensive-web-browser-fuzzi
템플릿이 변이의 기본 형태로써, 템플릿의 코드 커버리지가 곧 ng-tool/
테스트 케이스의 최소 코드 커버리지가 되기 때문이다. [7] lcamtuf's blog, Announcing cross_fuzz, http://lcamtuf.blogsp
템플릿에서 사용되는 태그와 속성들을 처리하는 모듈이 웹 ot.com/2011/01/announcing-crossfuzz-potential-0-day-in.html
브라우저에 존재한다. 따라서 코드 커버리지를 높이기 위해서 [8] Justin Seitz, "Analyzing Attack Surface Code Coverage",
는 브라우저의 다양한 처리 모듈이 실행될 수 있도록 구성해야 SANS Institute(2007)
한다. 이를 위해서 템플릿 내에는 다양한 유형의 태그와 속성 [9] Xia Cai, an Michael R.Lyu, "The Effect of Coe Coverage
들을 분포시키는 것이 좋다. on Fault Detection under Different Testing Profiles", In
본 논문에서는 템플릿 수집 및 선정 방법으로서, 인터넷을 Workshop on Advances in Model Based Testing 2005
통해서 다양한 형식을 갖고 구성이 복잡한 페이지들을 다량 수
집하여 템플릿으로 활용하는 것을 제안한다. 이러한 방법을 사
용하는 것이 적은 비용으로 유효한 템플릿을 구성하여 높은 퍼
징 효율을 얻을 수 있다.

4.2 테스트 케이스 생성


기존의 변이 기반의 퍼징 도구들은 미리 정의된 오류를 발생

청주대학교 | IP:203.252.***.45 | Accessed 2022/03/15 20:34(KST)

You might also like