퍼징 트리아지의 관찰
[essay] 1 min read
Abstract
퍼징에서 원하는 버그가 유발되었는지 검사하는 것을 트리아지라고 한다.
본문
무지향성 퍼징에서는 단순히 버그를 많이 찾으면 좋다고 판단하곤 했다. 그러나, 고장입력 중복 제거 (crash deduplication)가 없으면 결과는 애매해지고 만다. 따라서, 이를 엄밀하게 할 겸 코드에 직접 버그의 위치와 유발조건을 정의하는 것이다. 이 경우 버그 위치 도달시간과 유발시간을 따로 검사 가능하다는 장점이다. Magma 벤치마크는 코드 안전벨트처럼 코드 안에 심어 놓는다.1
이전 FishFuzz 팀과 연락을 취할 때, FishFuzz는 고장입력의 실행 기록을 토대로 눈으로 비교해 유발조건을 찾는다고 했다. 확실히 보안에 익은 사람의 감이 우선할지도 모른다. 그러나, 아티팩트로 내고 정당한 기여를 위해서는 자동화된 스크립트가 필요하지 않을까?
DAFL은 이 트리아지를 파이썬으로 직접 만들어 낸 도구이다. 이는 xxxx의 뛰어난 반응을 얻었다.
-
Ahmad Hazimeh et al., “Magma: A Ground-Truth Fuzzing Benchmark”, 2020. ↩︎