情報処理学会 コンピュータセキュリティ(CSEC)研究会

KLEEとLibfuzzerを組み合わせたハイブリッド型KleeFuzeerに関する提案

発表者:三嶋秀宗、中沢 実、西川幸延

概要:現在,ソフトウェア開発は大規模であるため,リリース前にすべてのバグを手動で検出をすることが困難である.そこで,自動でバグを検出する手法として,fuzzing,symbolic execution が用いられている.しかし,fuzzing は,良い結果を得るために洗練された初期値が必要である.一方,symbolic execution では,ソフトウェアを検査するのに余計な時間がかかる問題やメモリと CPU のリソースを余分に消費してしまう問題がある.そこで,fuzzing 側で必要になる初期値に symbolic execution から生成される結果を用いることが考えられた.しかし,連携のシステムとして用いられている fuzzing のソフトウェアである American Fuzzy Lop (AFL) では,実行ファイル形式ではない単一のライブラリファイルに対して fuzzing を行うことが困難である.そこで,libfuzzer を AFL の代わりに用いることで実行ファイル形式ではない単一のライブラリファイルに対しても fuzzing を行うことが容易にできるようになる.本研究では,fuzzing のソフトウェアである libfuzzer と symbolic execution のソフトウェアである KLEE を組み合わせた新たなハイブリッドシステム KleeFuzzer を提案する.