심볼릭 라이브러리 해결을 통한 동적 로드 코드의 제어 흐름 그래프 (Control Flow Graph) 복구
요약
동적 코드 로딩을 사용하는 악성코드의 정적 분석 한계를 극복하기 위해 심볼릭 실행과 투기적 라이브러리 프리로딩을 결합한 새로운 CFG 복구 기술을 제안합니다. 이 방법론은 심볼릭 실행 중 동적 로딩을 가로채어 실제 라이브러리를 로드함으로써 정밀한 제어 흐름 그래프를 복구합니다.
핵심 포인트
- 심볼릭 실행과 투기적 라이브러리 프리로딩 결합
- 동적 로딩을 가로채는 커스텀 소프트웨어 후크 활용
- 악성코드 실행 위험 없이 안전한 분석 환경 제공
- 기존 정적 분석 대비 CFG 노드 29.8%, 에지 26.5% 추가 복구
- 라이브러리 탐지에서 정밀도 및 재현율 100% 달성
제어 흐름 그래프 (Control Flow Graph, CFG)는 동적 및 정적 소프트웨어 분석 방법을 사용하는 소프트웨어 분석의 주요 데이터 소스 중 하나입니다. 보호된 소프트웨어와 현대적인 악성코드 (Malware)는 정적 분석을 회피하기 위해 동적 코드 로딩 (Dynamic code loading) 기술에 점점 더 의존하고 있습니다. 런타임 동적 링크 (Runtime dynamic linking) 메커니즘의 사용은 정적 제어 흐름 그래프 (Control Flow Graph) 복구를 중단시키는 해결되지 않은 간접 호출 (Indirect calls)을 발생시킵니다. 이는 보안 분석을 방지하기 위해 사용될 수 있는 동적 라이브러리 (Dynamic library)를 숨기는 역할을 합니다. 이러한 한계를 해결하기 위해, 동적 로딩을 사용하여 바이너리로부터 제어 흐름 그래프 (Control Flow Graph)를 복구하기 위해 심볼릭 실행 (Symbolic execution)과 투기적 라이브러리 프리로딩 (Speculative library preloading)을 결합한 분석 기술이 제안되었습니다. 이 방법론은 심볼릭 실행 (Symbolic execution) 중에 동적 로딩 작업을 가로채고 분석 상태 (Analysis state)로 실제 라이브러리 로딩을 수행하는 커스텀 소프트웨어 후크 (Software hooks)를 사용합니다. 해당 모듈은 심볼릭 실행 (Symbolic execution) 환경 내에서 가로채기 함수 (Interception functions)와 명령어 추적 (Instruction tracking)을 동시에 저장하는 2단계 아키텍처를 기반으로 합니다. 동적 계측 (Dynamic instrumentation) 도구가 요구하는 잠재적으로 악성인 코드를 실행하는 것을 피하기 위해, 분석은 전적으로 심볼릭 실행 (Symbolic execution)을 통해 수행되었으며, 이를 통해 악성코드 분석에 안전하게 사용할 수 있도록 했습니다. 평가를 위해 암호화된 라이브러리 이름, 네트워크 트리거 로딩 (Network-triggered loading), 환경 유도 경로 (Environment-derived paths), 다단계 복호화 체인 (Multi-stage decryption chains), 파일리스 실행 (Fileless execution), 그리고 수동 실행 및 링크 가능 형식 파싱 (Manual executable and linkable format parsing)을 포함한 다양한 난독화 (Obfuscation) 기술을 사용하는 16개의 합성 벤치마크 세트가 사용되었습니다. 실험 결과, 이 모듈은 정적 분석 (Static analysis)만 사용했을 때와 비교하여 평균적으로 29.8%의 추가적인 제어 흐름 그래프 (Control Flow Graph) 노드와 26.5%의 추가적인 에지 (Edges)를 복구하였으며, 라이브러리 탐지에서 100%의 정밀도 (Precision)와 100%의 재현율 (Recall)을 달성하였고, 모든 발견 사항은 Frida 기반의 동적 계측 (Dynamic instrumentation)을 통해 검증되었습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 arXiv Codex (cs.SE)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기