[논문 리뷰] Combining Static and Dynamic Analysis for Vulnerability Detection
이 논문은 정적 타인트 분석과 동적 유전 알고리즘 기반 입력 생성을 결합한 하이브리드 취약성 탐지 방법을 제시한다. 이는 C 프로그램의 버퍼 오버플로우 취약성을 탐지하기 위한 것이다. 타인트 의존성 시퀀스(TDS)를 사용해 입력 생성을 유도하고, 런타임 문장 빈도 스펙트럼을 기반으로 한 적합도 함수를 통해 공격 가능한 경로에 효율적으로 대응함으로써, 기존의 패치 퍼징이나 기호 실행보다 더 빠르고 정확한 크래시 재현을 달성한다.
In this paper, we present a hybrid approach for buffer overflow detection in C code. The approach makes use of static and dynamic analysis of the application under investigation. The static part consists in calculating taint dependency sequences (TDS) between user controlled inputs and vulnerable statements. This process is akin to program slice of interest to calculate tainted data- and control-flow path which exhibits the dependence between tainted program inputs and vulnerable statements in the code. The dynamic part consists of executing the program along TDSs to trigger the vulnerability by generating suitable inputs. We use genetic algorithm to generate inputs. We propose a fitness function that approximates the program behavior (control flow) based on the frequencies of the statements along TDSs. This runtime aspect makes the approach faster and accurate. We provide experimental results on the Verisec benchmark to validate our approach.
연구 동기 및 목표
- 순수하게 정적 또는 동적 취약성 탐지의 한계를 해결하기 위해 두 접근 방식을 통합한다.
- 타인트 의존성 시퀀스(TDS)를 사용해 정적 분석의 오진을 줄이고 동적 분석의 경로 커버리지를 향상시킨다.
- 버퍼 오버플로우 취약성을 유발하는 악성 입력을 자동으로 생성한다.
- 성공적인 공격 시의 크래시 행동과 스택 내용 분석을 통해 공격 가능성에 대한 통찰을 제공한다.
제안 방법
- 정적 분석(STAC)은 타인트 데이터 플로우 분석을 수행하여 TDS—사용자 입력에서 취약 문장까지의 경로—를 식별한다.
- TDS는 동적 입력 생성을 유도하여 관련 프로그램 경로에 집중한 검색을 가능하게 한다.
- 유전 알고리즘(TAGA)은 런타임 문장 빈도 스펙트럼을 기반으로 한 적합도를 최대화하도록 입력을 진화시킨다.
- 적합도 함수는 실행 트레이스를 목표 TDS와 비교하여 동일한 제어 흐름 패턴을 따르는 입력에 보상을 부여한다.
- 런타임 트레이스 수집을 위해 프로그램 실행이 인스트루멘테이션된다. 이는 빈도 스펙트럼 분석을 위해 사용된다.
- 크래시 감지 시 디버깅이 트리거되어 스택 내용을 분석하고 공격 가능성 여부를 평가한다.
실험 결과
연구 질문
- RQ1타인트 의존성 시퀀스(TDS)는 동적 분석에서 취약성 유발 입력의 검색 공간을 효과적으로 줄일 수 있는가?
- RQ2런타임 문장 빈도 스펙트럼을 기반으로 한 적합도 함수는 유전 알고리즘 기반 입력 생성의 효율성과 정확도를 어떻게 향상시키는가?
- RQ3정적 및 동적 분석을 통합한 방법은 기호 실행 또는 무작위 패치 퍼징에 비해 공격 가능한 버퍼 오버플로우 탐지에서 얼마나 뛰어난가?
- RQ4크래시 관련 런타임 데이터 분석을 통해 이 방법은 공격 가능성에 대한 실질적인 통찰을 제공할 수 있는가?
- RQ5이 방법은 입력 생성 과정에서 중첩되거나 복합적인 IF 조건과 같은 복잡한 제어 구조를 어떻게 다루는가?
주요 결과
- 하이브리드 접근 방식은 Verisec 벤치마크 세트에서 버퍼 오버플로우 취약성을 성공적으로 탐지하였으며, 기존의 패치 퍼징에 비해 효율성이 향상됨을 보였다.
- TDS의 사용은 실제로 타인트가 취약 문장으로 전파되는 경로에 집중함으로써 검색 공간을 크게 줄였다.
- 빈도 스펙트럼 기반 적합도 함수는 제어 흐름 행동을 근사화함으로써 유전 알고리즘의 수렴 속도를 빠르게 했다.
- 성공적인 공격 시도는 스택 내용을 상세히 분석할 수 있는 크래시를 유도하였으며, 이는 공격 가능성에 대한 직접적인 단서를 제공했다.
- 경로 가이드와 동적 피드백을 결합함으로써 순수하게 커버리지 중심 또는 제약 조건 해결 기반 방법보다 뛰어난 성능을 보였다.
- 이 방법은 복잡한 제어 구조 처리에 잠재력을 보였지만, 소스 코드 내 복합적인 IF 조건 처리에 있어서 여전히 과제가 남아 있다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.