502 0

정적 분석 기반 Out-of-Bounds Read 취약점 유형 탐지 연구

Title
정적 분석 기반 Out-of-Bounds Read 취약점 유형 탐지 연구
Other Titles
A Out-of-Bounds Read Vulnerability Dtection Method Based on Binary Static Analysi
Author
유동민
Alternative Author(s)
DongMin Yoo
Advisor(s)
오희국
Issue Date
2022. 2
Publisher
한양대학교
Degree
Master
Abstract
일반적으로 프로그램에서 취약점이 발생하면 그에 대한 정보가 문서화되어 공개된 다. 그러나 일부 취약점의 경우 발생한 원인과 그 소스코드를 공개하지 않는다. 이러 한 정보가 없는 상황에서 취약점을 찾기 위해서는 바이너리 수준에서 코드를 분석해 야 한다. 바이너리에서 취약점을 탐지하는 방법은 동적 분석과 정적분석으로 구분할 수 있다. 동적 분석 방법은 프로그램 실행 정보를 바탕으로 탐지하는 방법이다. 실제 프로그램의 실행정보를 바탕으로 취약점을 정확하게 탐지할 수 있지만, 실행파일의 크기가 커질수록 모든 코드 경로를 탐색하지 못할 가능성이 존재한다. 그와 반대로 정적 분석 방법의 경우 코드를 기반으로 탐지하기 때문에 모든 경로에 대한 분석이 가능하지만, 동적인 실행 정보가 없기 때문에 오탐 가능성이 높다. 따라서 동적, 정적 분석 방법이 모두 적절하게 활용되어야 한다. 본 논문에서는 매우 빈번하게 발생하는 취약점인 Out-of-bounds Read 취약점 유형을 바이너리 수준에서 찾는 것을 목표로 한다. 그러나 바이너리에서 Out-of-bounds Read를 탐지하는 기존의 연구는 주로 동 적 분석을 이용한 도구로 발표되었으며, 정적 도구의 경우 모두 소스코드 기반의 도 구들이며 바이너리 수준의 정적 탐지 도구는 찾기 어렵다. 바이너리에서는 컴파일 과 정에서 소스코드의 일부 정보가 누락되기 때문에 소스코드 기반의 탐지 방법을 적용 해서는 바이너리에서 취약점을 탐지하기 어렵다. 또한 Out-of-bounds Read가 발생할 수 있는 메모리 영역은 Heap, Stack, Global 세 영역에서 모두 발생할 수 있다. 퍼징 을 제외한 Out-of-bounds Read를 탐지하는 기존의 동적 도구의 경우 Heap영역에 있 는 취약점만을 탐지하고 있어 개선이 필요하며, 퍼징의 경우 무작위 입력값을 기반으 로 취약점을 탐지하는 방식이기 때문에 시멘틱한 취약점의 경우 찾을 수 없는 경우가 존재한다. 본 논문에서는 동적 분석이 아닌 바이너리 정적 분석을 통해 취약점을 탐 지하는 것을 목표로 하며, 바이너리 코드의 메모리정보와 주변정보를 이용하여 메모 리 구조를 모델링하는 방법으로 Heap, Stack, Global 영역에서 Out-of-bounds Read 가 발생하는지 탐지한다. 또한 바이너리는 다양한 아키텍처가 존재하기 때문에 이를 위해 본 논문에서는 이기종의 아키텍처에도 적용할 수 있는 중간언어 기반의 분석기 술을 사용한다. 실험 결과 기존의 Heap영역만을 탐지하는 기호실행 탐지도구인 BAP_toolkit과 비교하였을 때 패턴분석을 기반으로 모든 메모리 영역을 분석하는 본 논문의 도구가 탐지 정확도 및 분석 시간에서 의미 있는 결과를 얻었다.
URI
http://hanyang.dcollection.net/common/orgView/200000589807https://repository.hanyang.ac.kr/handle/20.500.11754/167533
Appears in Collections:
GRADUATE SCHOOL[S](대학원) > COMPUTER SCIENCE & ENGINEERING(컴퓨터공학과) > Theses (Master)
Files in This Item:
There are no files associated with this item.
Export
RIS (EndNote)
XLS (Excel)
XML


qrcode

Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.

BROWSE