1-Click-Fuzz:シンボリック実行を用いたWindowsカーネルドライバーの体系的ファジング
DAY 2
13:00-
13:40
Windows OSは、個人ユーザーから産業用アプリケーションまで幅広いデスクトップ環境で使用されており、信頼性の高いドライバー動作に依存している。本講演では、Windowsドライバーの脆弱性を体系的に発見するために、シンボリック実行とカーネルファジングを活用した高度なツール「MS-Fuzzer」を紹介する。
Windowsドライバーは、一般的にInBufferLengthやOutBufferLengthのような特定の制約を持つIOCTL(Input Output Control)コードを通してユーザーとやりとりする。これらの多くのIOCTLコードを分析することは、その数と複雑さゆえに非常に細心の注意を要する作業である。われわれは、Angrベースのシンボリック実行を使用して、各IOCTLコードの制約を自動的に解析し、この自動化により手作業の労力を大幅に削減し、ファジング中のコードカバレッジを向上させている。
さらに、組み込みドライバーにはカスタムファジングハーネスが必要である。効率的なハーネスの作成方法についても議論し、これらが脆弱性発見に果たす役割を紹介する。1ヵ月の分析期間中に、例えば「usbprint」などの複数のドライバーで脆弱性が発見された。これらの脆弱性を発見した手法を紹介するケーススタディを発表する。
100日間にわたる取り組みの結果、100件の脆弱性を発見し、Microsoft、AMD、Siemens、MSI、三菱、Sophosなどの主要ベンダーに関連する21件のCVEおよび10件のKVE(韓国のCVE)をカタログ化した。セキュリティ研究コミュニティにとって重要なケースのいくつかも紹介する。
また、継続的なセキュリティ研究の支援として、使用したツールや主要な脆弱性のPoC(概念実証)例(NDAに準拠したもの)、ファジングハーネス用のサンプルコードをすべてオープンソースとしてhttps://github.com/0dayResearchLab/msFuzz で公開する予定である。
このセッションは、Windowsカーネルドライバーの動作原理を解明し、Windowsドライバーにおける脆弱性を発見するための包括的なガイドをセキュリティ研究コミュニティに提供することを目指している。
-
Location :
-
Track 2(HALL A)
-
-
Category :
-
U25
-
-
Share :
Speakers
-
Sangjun Park
サンジュン・パク
KAIST(韓国科学技術院)修士課程
サンジュン・パクは、KAIST(韓国科学技術院)でサイバーセキュリティとソフトウェア工学を専攻する修士課程の学生である。彼の研究は、プログラムを分析し、自動化された手法を用いてそのセキュリティを評価することに焦点を当てている。彼は2024年にスンシル大学でコンピューターサイエンスと工学の学士号を取得している。現在、彼はKAISTのソフトウェアセキュリティ研究室のメンバーである。 -
Yunjin Park
ユンジン・パク
ユンジン・パクは、韓国のソウル女子大学で情報セキュリティを専攻する学士課程の学生である。彼女は、さまざまな企業のペネトレーションテストプロジェクトや研究開発の取り組みに技術ライターとして参加してきた。また、KITRI(韓国情報技術研究院)および韓国政府が主催する「Best of the Best」次世代セキュリティリーダー育成プログラムでトップ10に選ばれたことがある。さらに、BoBの「Windowsドライバー0-dayリサーチ」プロジェクトではプロジェクトマネージャーおよびコンサルタントとして活動している。最近では、企業のセキュリティ、特にレッドチームに対して新たな情熱を抱いている。
-
Jongseong Kim
ジョンソン・キム
亜洲大学校(Ajou University)、ENKI WhiteHat セキュリティ・リサーチャー
ジョンソン・キムは現在、亜洲大学校の学生であり、ENKI WhiteHatでセキュリティ・リサーチャーとして働いている。彼はWindowsの攻撃的セキュリティに強い関心を持っており、現在はWindowsカーネルおよびHyper-Vに関する研究に取り組んでいる。