PkgFuzzプロジェクト: オープンソースソフトウェアのための新たな継続的ファジング
DAY 2
9:50-
10:30
Googleが2016年に開始したOSS-Fuzzプロジェクトは2023年8月時点でさまざまなソフトウェアのバグを3万6000件以上見つけている。このプロジェクトでは「ファジング」という自動的にソフトウェアのバグを検出する技術が中核として使われている。ファジングは、自動的なバグ検出技術と言われるが、実際にファジングを実施するためにはハーネス(検査対象ソフトウェアを呼び出すプログラム)の作成、ファジング用バイナリの生成、コマンドライン引数の調整、初期シードの準備、などの人手による作業が必要である。特に、異なる複数のソフトウェアをファジングする場合、これらの作業が障害(自動化阻害要因)となり、ファジングワークフロー全体を自動化できない。このため、効率的に多種多様なソフトウェアのファジングを行うことが難しい。
われわれは、これら自動化阻害要因を解消し、ファジング・ワークフロー全体を自動化するシステム、PkgFuzzを開発した。PkzFuzzでは、ソフトウェア・パッケージのビルドプロセスを監視し、ファジング可能なパッケージを選び出す。また、同時にファジングに必要な情報を収集する。このPkgFuzzを利用したファジングキャンペーン、PkgFuzz Projectについて発表する。PkgFuzz Projectでは、多種多様なソフトウェアが含まれるUbuntu 23.10のDebianパッケージに対するファジングキャンペーンを実施したところ、人間の介在なしに、265のパッケージから、6万4658件のクラッシュを得た。これらを精査したところ、攻撃に利用可能な4件の脆弱性を発見した。これらをIPAへ報告し、3件のアドバイザリとCVEの発行へとつなげた。
PkgFuzzがファジングを自動実行した265のパッケージのうち、OSS-Fuzzでもファジングが実施されていたOSSプロジェクトはわずか32件(12%程度)であった。これは、PkgFuzz Projectが、OSS-Fuzzが今までファジング対象としていなかったOSSをファジングできていることを示している。PkgFuzz Projectではファジングの準備を自動化できる。つまり、OSS-Fuzzとは異なり、ハーネスの作成やコマンドライン引数の調整など、OSS開発者によるファジングのためだけの開発コストを要求しないため、ファジング導入のハードルが低い。そのため、今までファジングによるセキュリティテストを導入できていなかったOSSプロジェクト(特に今までOSS-Fuzzの恩恵をあまり受けていない小規模なOSS)に対してもファジングキャンペーンを実施することができる。PkgFuzz Projectにより、バグを発見、修正していくことで、より多くのOSSプロジェクトに対してセキュリティレベルの向上を促進し、安心なソフトウェア基盤の実現を可能にすると考える。
-
Location :
-
Track 1(HALL B)
-
-
Category :
-
Technical
-
-
Share :
Speakers
-
Yuhei Kawakoya
川古谷 裕平
川古谷祐平は、NTTセキュリティホールディングス株式会社の特別研究員である。2005年にNTTに入社して以来、コンピューターセキュリティに関する研究開発に従事している。彼の研究分野は、リバースエンジニアリング、マルウェア解析、脆弱性発見に関心がある。
-
Eitaro Shioji
塩治 榮太朗
塩治榮太朗は、NTT社会情報研究所の主任研究員である。2010年にNTTに入社して以来、コンピューターセキュリティに関する研究開発に従事している。ソフトウェアセキュリティ、脆弱性対策、ウェブセキュリティなどの研究分野に関心がある。
-
Yuto Otsuki
大月 勇人
Yuto Otsukiはセキュリティ・リサーチャーである。彼の研究分野は、メモリ解析、リバースエンジニアリング、オペレーティングシステムのセキュリティである。立命館大学大学院情報理工学研究科で工学博士号を取得している。2016年から2019年まで、NTTセキュアプラットフォーム研究所にてマルウェア解析およびデジタルフォレンジックスの研究に従事していた。現在はNTTセキュリティホールディングス株式会社に所属し、主に脆弱性検出および悪用可能性解析の研究に取り組んでいる。