위키득계정 ↗
기술

Honggfuzz Rust

Honggfuzz Rust기술
분야
Rust 퍼징 연결
명령 체계
Cargo hfuzz
입력
바이트 또는 구조화된 자료
실행 구성
계측 빌드와 목표 루프
Honggfuzz Rust는 Rust 프로그램에 Honggfuzz의 피드백 기반 퍼징을 연결하는 도구다. Cargo 명령으로 계측 빌드와 목표 실행을 구성하고 발견한 충돌을 다시 실행할 수 있다.

목표 코드의 반복 실행

검사할 코드로 입력을 전달하는 매크로를 반복 호출하는 방식으로 목표를 구성한다. 초기화와 인자 처리는 목표 프로그램에서 제어할 수 있다. 매 실행의 결과가 이전 입력이나 현재 시각에 과도하게 의존하면 원인 파악과 재현이 어려워지므로 입력에 대응하는 동작을 일정하게 유지한다.

도구 체계와 탐색 선택

공식 안내는 안정 Rust와 beta 및 nightly를 포함한 호환 구성을 설명하지만 운영체제와 아키텍처 및 보조 라이브러리의 조건도 확인해야 한다. sanitizer나 하드웨어 피드백 등 선택한 방식은 환경별 요구가 다르다. 기본 실행이 가능하다는 사실과 모든 계측 옵션이 사용 가능하다는 사실을 구분한다.

실패 재현과 검사 보존

충돌한 입력을 디버그 환경에서 다시 실행하는 명령을 제공한다. 빌드 인자와 퍼저 실행 인자 및 작업 디렉터리 구성을 구분하면 재현 조건을 관리하기 쉽다. 전역 상태나 스레드 경쟁이 결과에 영향을 주는지도 조사한다. 장시간 탐색에서 실패가 없었던 결과를 안전성의 증명으로 해석하지 않고 발견한 입력은 회귀 검사로 보존한다.

관련 문서

AFL Rust / Cargo-fuzz / Bolero Rust 검사 도구 / Arbitrary Rust