Park, Geon (re-st)

MODFuzz - 다른 관점의 지향성 퍼징

[essay] 2 min read

Abstract

MODFuzz는 지향성 퍼징의 이점을 USB 드라이버 검증 문제에 최초로 적용하고자 많은 발품을 팔고 휴리스틱을 동원한다. 휴리스틱과 연구 문제 간 관계를 명쾌하게 이해할 순 없지만, 이는 USB 드라이버에 대한 내 직관력 부족이 아닐까 생각한다. 동적 다중 지향성 퍼징이라는 같은 명칭을 공유하는 Topuzz와 다른 점이 많아 비교하는 재미가 있다.

본문

지향성 퍼징은 코드 지점들의 버그 의심 정도가 다를 때 효과적이다. 무지향성 퍼징은 버그 위치 정보가 없으므로 모든 실행 가능 경로를 탐색하고자 커버리지를 높이려는 반면, 지향성 퍼징은 정적분석 정보와 휴리스틱을 활용하여 목표를 정밀하게 조준한다. 오늘 세미나에서 태은 님이 무지향성/지향성 퍼징을 비유한 훌륭한 표현을 빌리자면, 무지향성 퍼징 (람보)은 버그가 어디 있는지 정보가 없으므로 (정글) 코드의 모든 실행 가능 경로를 탐색 (총 난사)해 보기 위해 보통 커버리지를 높이는 목표를 갖고, 지향성 퍼징 (저격수)은 정적분석 정보 (관찰)과 휴리스틱 (경험)을 써서 목표를 향한다.

소개할 도구는 정적분석 정보 활용에 있어서는 거리 점수를 쓰는 점이 익숙하지만, 목표 설정과 휴리스틱에 특별한 점이 있다. MODFuzz는 USB 드라이버에 지향성 퍼징을 적용하고자 하는 목표의식으로, 많은 도구 부족을 이겨냈다.

예를 들어, 안전벨트 (sanitizer) 작성위치를 목표로 사용하는 FishFuzz 등 타 연구와 달리, USB 드라이버의 예상 취약 지점은 찾아 주는 도구가 없다. 따라서 이 연구는 728개의 취약점 보고를 찾고, USB 기기의 실행 흔적 (execution trace)을 직접 기록하여 자주 등장하는 함수를 골라냈다.

도구 대신 사람이 만들어낸 레이블 벤치마크의 완성이다. 새로운 접근을 하려는 연구자에게 요구되는 노력의 필요성이 엿보였다.

MODFuzz가 퍼징 목표지점을 찾는 방식이 어떤 직관에서 나왔는지 알기는 어려웠지만, 논문의 전문성은 큰 흥미를 불어일으켰다. 이 연구는 연구 문제(R.Q.) 하나의 해결에 다양한 휴리스틱이 동원되고 있어, 각 아이디어가 왜 문제와 연결되는지 명쾌히 깨닫는 게 어려웠다. 한편으론 특정 분야 사람들이 암묵적으로 가지는 문제를 해결하는 전문성의 단편이라 생각되어 겸허해진다. MODFuzz는 스스로를 동적 다중 지향성 퍼징이라 부르고 있으나, 이가 Topuzz의 구상과는 많이 다른 점이 흥미로웠다. Topuzz의 중심 아이디어는 목표 지점별 점수를 어떻게 합치고, 이를 퍼징 진행상황에 따라 어떻게 조율할지인데 이는 MODFuzz의 쟁점이 아니고, 역으로 MODFuzz가 USB 드라이버의 문제를 풀기 위해 변수 이름을 걸러내거나 함수가 USB 관련인지 솎아내는 버그 타입 지향성은 Topuzz에 없다. 이미 적지 않은 `다중 지향성 퍼징’ 이 나와 있으나, 그 안에서 Topuzz가 찾을 독창성이 가져올 파급이 기다려지게 된다.

#Essay  #Weekly-Writing 

<< Previous Post

|

Next Post >>

← 뒤로