실행 분기 그래프(Execution Divergence Graphs): 실행 트레이스에서 제어 흐름(Control-Flows)을 효과적으로
요약
블랙박스 장치나 난독화된 바이너리처럼 실행 피드백 수집이 어려운 환경에서 퍼징 효율을 높이는 새로운 접근 방식을 제안합니다. 실행 트레이스에서 유도된 실행 분기 그래프(EDG)를 활용하여 제어 흐름을 파악하고 퍼저를 안내하는 연구입니다.
핵심 포인트
- 실행 피드백 수집이 불가능한 블랙박스/난독화 환경을 위한 연구
- 실행 분기 그래프(EDG)를 통한 효과적인 제어 흐름 분석
- 기존 블라인드 퍼저 대비 향상된 퍼징 성능 입증
- 루프 내 반복 실행 등 복잡한 코드 구조 처리 능력 확인
퍼징 테스트(Fuzz testing)는 독점 소프트웨어의 보안 테스트를 위한 대중적인 접근 방식입니다. 효율적인 테스트 전략은 입력 생성 과정을 안내하기 위해 실행 피드백(execution feedback)에 의존하며, 특히 바이너리의 기본 블록(basic blocks)을 직접 관찰하고 계측(instrumentation)할 수 있는 경우에 그러합니다. 불행히도, 블랙박스 장치의 인시투(in-situ) 퍼징이나 난독화된 컴파일 바이너리의 퍼징과 같은 시나리오에서는 이러한 피드백을 수집하는 것이 불가능합니다. 본 연구에서는 런타임 실행으로부터 구축된 제어 흐름 그래프 유사(CFG-like) 구조에서 유도된 피드백을 사용하여 퍼저(fuzzer)를 안내하는 접근 방식에 대해 논의합니다. 먼저 고유한 실행 트레이스(execution traces)를 식별하는 간단한 분기 탐지(divergence-detection) 접근 방식을 개괄한 다음, 실행 분기 그래프(Execution Divergence Graph, EDG)를 기반으로 개선된 접근 방식을 제시합니다. 우리는 두 가지 접근 방식을 모두 구현하였으며, 이들이 베이스라인 블라인드 퍼저(blind fuzzer)보다 성능이 뛰어남을 입증합니다. 또한, 루프 내의 반복적인 코드 실행과 같은 특정한 과제들을 논의하고, EDG 기반 접근 방식이 이를 효과적으로 처리함을 보여줍니다. 이어서 우리의 접근 방식이 다수의 난독화된 타겟에 대해 효과적인 퍼징을 가능하게 함을 입증하고, 정적 계측(static instrumentation)이 불가능한 시나리오에서의 성능을 비교합니다. 우리는 공격자가 전체 명령어 트레이스(instruction traces)를 직접 관찰할 수 있는 시나리오에 집중하고 있지만, 우리의 방식은 전력 소비와 같은 다른 피드백 채널이 있는 시나리오에도 적용될 수 있습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 arXiv Codex (cs.SE)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기