192 0

Advanced Binary Code Dynamic Analysis Techniques

Title
Advanced Binary Code Dynamic Analysis Techniques
Author
강병호
Alternative Author(s)
강병호
Advisor(s)
임을규
Issue Date
2015-02
Publisher
한양대학교
Degree
Master
Abstract
As binary code of the computer software has become more complex and bigger, the past static analysis techniques undergo several limitations. In the face of this situation, various efforts have been made to develop binary code dynamic analysis techniques, such as scenario based software testing and dynamic taint analysis. However, the research of such dynamic analysis techniques is challenging for several reasons. Most of all, dynamic analysis only analyzes on execution path, which causes code coverage problem. Another challenge to analyze arises from the inaccuracy of information flow tracking, which leads to under-tainting problem. We propose advanced binary code dynamic analysis techniques mitigate the challenges in real world environments. We present practical methods for addressing two categories of dynamic analysis techniques: code coverage, and under-tainting. To improve code coverage during dynamic analysis, we propose basic block size considering approach to reduce testing iterations. To track information flow more accurately, we propose control flow based dynamic taint analysis. We demonstrate the effectiveness of our techniques by implementing and evaluating them with several real world samples.|바이너리 코드의 규모가 점차 커지고 행위가 복잡해지고 있으며, 다양한 컴포넌트를 이용하여 개발되고 있다. 정적 분석으로는 바이너리 코드의 행위 분석에 한계가 발생하며, 소프트웨어에서 사용하는 모든 컴포넌트에 대한 소스 코드를 구하기 어렵기 때문에 소스 코드 기반의 분석에도 한계가 있다. 이러한 문제점을 해결하기 위해 바이너리 코드의 행위를 분석하기 위해 동적 분석이 널리 사용되고 있다. 대표적인 동적 분석 기법으로는 시나리오 기반의 소프트웨어 테스팅과 테인트 분석 등이 있다. 하지만 동적 분석은 바이너리 코드가 실행되는 경로만을 분석하기 때문에 커버리지 문제가 발생할 수 있으며, 동적 테인트 분석에서는 데이터 플로우를 올바르게 추적하지 못해 발생하는 언더테인팅 문제 또한 유발할 수 있다. 이 논문에서는 바이너리 코드의 동적 분석 과정에서 발생할 수 있는 두 가지 문제, 즉 코드 커버리지 문제와 언더테인팅 문제를 해결하기 위한 바이너리 코드 동적 분석 고급 기술을 제안한다. 코드 커버리지 문제를 경감시키기 위한 방안으로는 베이직 블록의 크기를 고려하여 실행 경로를 변경하는 Size-First Search 방안을 제안하였으며, 언더테인팅 문제를 경감시키기 위한 방안으로는 데이터 의존성을 가진 분기문을 추적하는 방법을 제안하였다. 또한 바이너리 코드의 실행 빈도 토플로지를 작성하여, 동적 분석 과정에서 실행 경로 탐색을 위한 전략 수립에 도움을 주었다. 각 제안 방안에 대한 실험은 널리 사용되고 있는 소프트웨어를 대상으로 실험을 진행하여 제안하는 방안의 효용성을 평가하였다.; As binary code of the computer software has become more complex and bigger, the past static analysis techniques undergo several limitations. In the face of this situation, various efforts have been made to develop binary code dynamic analysis techniques, such as scenario based software testing and dynamic taint analysis. However, the research of such dynamic analysis techniques is challenging for several reasons. Most of all, dynamic analysis only analyzes on execution path, which causes code coverage problem. Another challenge to analyze arises from the inaccuracy of information flow tracking, which leads to under-tainting problem. We propose advanced binary code dynamic analysis techniques mitigate the challenges in real world environments. We present practical methods for addressing two categories of dynamic analysis techniques: code coverage, and under-tainting. To improve code coverage during dynamic analysis, we propose basic block size considering approach to reduce testing iterations. To track information flow more accurately, we propose control flow based dynamic taint analysis. We demonstrate the effectiveness of our techniques by implementing and evaluating them with several real world samples.
URI
https://repository.hanyang.ac.kr/handle/20.500.11754/128648http://hanyang.dcollection.net/common/orgView/200000425636
Appears in Collections:
GRADUATE SCHOOL[S](대학원) > COMPUTER SCIENCE(컴퓨터·소프트웨어학과) > 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