最終更新日:2019年6月28日
近年IoTデバイスやスマートフォンの普及に伴い様々なチップセットが開発されている。中でもARMプロセッサシリーズは組み込みデバイス産業において支配的と言えるほど普及しており、多種多様なベンダがデバイスドライバやファームウェアを開発している。
本プロジェクトは、ファジングと呼ばれるランダムな入力を次々と生成し、それをプログラムに与えることでソフトウェアをテストする手法を用いることで、Androidを始めとする組み込みデバイスシステムソフトウェアのバグや脆弱性を高効率に検出するツールを開発する。
本システムはARMプロセッサの持つCoreSightと呼ばれる命令トレース機能とハイパーバイザ技術を組み合わせることで、ゲスト上で対象のシステムソフトウェアを動作させながら、カバレッジ情報を記録する。この情報をフィードバックとしてファザーが入力を生成することで、システムソフトウェアに対するカバレッジベースファジングを実現する。本システムはCPUの提供するハードウェアトレーサと仮想化支援機構を使用するため、エミュレーションやトレースによるオーバヘッドはほぼ無く、ネイティブ動作時と殆ど変わらない速度で高速なシステムソフトウェアファジングを行うことが可能となる。
プログラムのバグやセキュリティ的な問題を発見するツール、ファザー(fuzzer)を開発する。スマートフォンなどの組み込み機器で非常に多く使われているARMプロセッサを対象とする。開発目標は、対象のソースコードなしでも適用できること、OSに依存しないこと、OS自体(カーネル)も対象とできること、高速であること、また、カバレッジベースゆえより広範なバグを発見し得ること、である。
2015年、スマホのOS Androidに深刻なバグStagefrightが見つかり、ある企業は数カ月間Androidを使用禁止とした。こうしたことが起きているにも関わらず、いまだにARMプロセッサ上のAndroidを対象にできるファザーは入手可能となっていない。大塚君がこの状況に一石を投じてくれると確信している。
2019年6月28日
2019年度採択プロジェクト概要(大塚PJ)を掲載しました。