[2025 하계 모각코] 1회차

안우진·2025년 7월 14일
0

모각코

목록 보기
14/19

🐞 윈도우 소프트웨어 버그 헌팅: 퍼징(Fuzzing)과 오디팅(Auditing)

🎯 1. 퍼징 (Fuzzing)

▷ 개념

퍼징은 프로그램에 의도적으로 비정상적이거나 무작위의 입력을 넣어 충돌, 크래시, 예외 상황을 발생시키고, 이를 통해 보안 취약점을 찾는 자동화된 기법입니다.

▷ 윈도우에서 대표 퍼저: WinAFL

  • WinAFL은 AFL(American Fuzzy Lop)의 윈도우 포팅 버전입니다.
  • 커버리지 기반 퍼저로, 코드 커버리지(분기/조건문 실행 여부)를 기준으로 테스트 케이스를 진화시킵니다.
  • DynamoRIO라는 동적 바이너리 계측(DBI) 툴을 사용하여 커버리지를 수집합니다.

✦ 사용 도구

역할
WinAFLFuzzing 핵심 퍼저
DynamoRIO바이너리 계측기. WinAFL과 함께 작동
winafl-cmin중복 입력 제거, 최소 커버리지 확보
winafl-fuzz.exe퍼징 실행
DrMemory런타임 메모리 오류 탐지 (선택)

✦ 사용 예시

winafl-fuzz.exe -target_module target.dll -target_method fuzz_entry \
                -nargs 2 -coverage_module target.dll -fuzz_iterations 100000 \
                -input input_folder -output output_folder \
                -instrument_module target.dll -hooks hook.dll

🎯 2. 오디팅 (Auditing)

▷ 개념

오디팅은 소프트웨어의 코드를 직접 정적/동적 분석하여 보안 결함을 찾아내는 수동 기법입니다. 퍼징보다 속도는 느리지만, 특정 지점에서 논리적/구조적 문제를 정확히 짚어낼 수 있습니다.

▷ 사용 도구

역할
IDA Pro / Ghidra리버싱 및 정적 분석
WinDbg / x64dbg동적 분석
Procmon시스템 콜 모니터링
Process Hacker / Process Explorer런타임 정보 보기
PE-bear / CFF ExplorerPE 구조 보기
GFlags + AppVerifier힙 오버플로우, UAF 감지
BinDiff / Diaphora바이너리 비교 (패치 분석 등)

💡 퍼징 vs 오디팅 비교

항목퍼징오디팅
분석 대상실행 파일소스 코드 or 디스어셈블
속도빠름 (자동화)느림 (수작업)
발견 범위예외, 크래시 등논리적 취약점까지 가능
대표 툴WinAFL + DynamoRIOIDA, Ghidra, WinDbg 등
추천 상황블랙박스, 대량 분석화이트박스, 특정 취약점 분석

🔧 WinAFL과 DynamoRIO 관계 요약

  • WinAFL은 자체적으로 바이너리의 커버리지를 추적할 수 없습니다.
  • 그래서 DynamoRIO와 연동하여 동적으로 프로그램을 계측합니다.
  • DynamoRIO는 프로그램 실행 중 각 분기(branch), 함수 호출 등을 가로채고 로깅할 수 있도록 해줍니다.
  • WinAFL은 이 정보를 바탕으로 더 다양한 코드 경로를 탐색하도록 입력을 조작합니다.

📚 참고 자료

0개의 댓글