← 最新の論文
🤖 machine learning

FuzzingBrain-Bench V1: Evaluating Open-Ended Bug Discovery by LLMs

本論文は、43のオープンソースプロジェクトからなる77の課題において、サニタイザを組み込んだハーネス内で異なるクラッシュを引き起こす入力を生成する能力を測定することにより、大規模言語モデルのオープンエンドなバグ発見能力を評価するために設計された新しいベンチマークであるFuzzingBrain-Benchを紹介するものである。

原著者: Ze Sheng, Aleksandar Kezic, Zhicheng Chen, Jeff Huang

公開日 2026-08-27
📖 1 分で読めます☕ さくっと読める

原著者: Ze Sheng, Aleksandar Kezic, Zhicheng Chen, Jeff Huang

原論文は CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) でライセンスされています。 これは以下の論文のAI生成解説です。著者が執筆または承認したものではありません。技術的な正確性については原論文を参照してください。 免責事項の全文を読む

現代の世界を動かしている膨大な、目に見えないソフトウェアの風景において、隠れた欠陥は常に存在する現実です。これらの欠陥は「脆弱性」として知られ、ダムに生じた小さな亀裂のようなものです。もし修正(パッチ適用)されなければ、攻撃者がシステムに侵入し、データを盗み、あるいは重要なサービスを停止させることを許してしまう可能性があります。何十年もの間、これらの亀裂を見つけ出すことは、人間の専門家がコードを細部まで精査し、弱さを示唆するパターンを探し出す、手作業による労力のかかるプロセスでした。しかし、ソフトウェアの量が増大するにつれ、報告される欠陥の数は記録的な高さに達し、人間が追いつくための能力を圧倒しています。これにより、研究者たちは新たな問いを投げかけるようになりました。人工知能、特にコードを書き理解することができる大規模言語モデルは、以前よりも速く、より効果的にバグを見つけるように教え込むことができるのだろうか? という問いです。課題は、単に紙の上で欠陥を見つけることではなく、ソフトウェアをストレス下でどのように動作させるかという深い理解を必要とする、ソフトウェアを失敗させるための特定の入力を生成することで、その欠陥が存在することを証明することにあります。

テキサスA&M大学の研究チームは、「FuzzingBrain-Bench」と呼ばれる新しいテスト環境を構築することで、この問いに答えるための重要な一歩を踏み出しました。既知の弱性を特定したり、あらかじめ発表された特定のエラーを再現したりすることをAIモデルに求める従来のテストとは異なり、この新しいベンチマークは、モデルに「独立した探検家」として振る舞うよう求めます。研究者は、モデルに対して、バグが含まれていることが分かっている実在のオープンソース・ソフトウェア・プロジェクトのソースコードと、「ハーネス」と呼ばれる特殊なテストツールを提供しました。このハーネスは、ソフトウェアを実行し、失敗の兆候を注意深く監視するために設計された制御された環境です。モデルには、バグがどこにあるのか、あるいはどのような見た目なのかは教えられませんでした。代わりに、彼らの任務は、数千種類の異なる入力を生成し、それらをソフトウェアに投入し、クラッシュを引き起こせるかどうかを確認することでした。ここでの「クラッシュ」とは、ソフトウェアが予期せず動作を停止する瞬間を指し、しばしば隠れた脆弱性を明らかにします。モデルは、特定のあらかじめ選ばれたバグを見つけたことに対して報酬を与えられるのではなく、元の既知の問題と一致しているかどうかにかかわらず、できるだけ多くの異なる種類の失敗を発見したことに対して評価されました。

このベンチマークは、画像処理ライブラリ、ビデオコーデック、データベースツール、ウェブサーバーなど、43種類の異なるソフトウェア・プロジェクトから抽出された77のチャレンジで構成されています。これらのプロジェクトは、C、C++、Javaの3つの主要なプログラミング言語で書かれていました。公平性を確保し、モデルが外部情報にアクセスすることを防ぐため、各チャレンジは安全で隔離されたコンテナ内にパッケージ化されました。このコンテナ内では、モデルはコードとテストツールのみを見ることができ、インターネットへのアクセスも、バグ報告の履歴も、ソフトウェアがどのように修正されたかについての情報も持っていませんでした。モデルは、システムを壊すための入力を作成するために、自分自身の推論に完全に頼らなければなりませんでした。研究者は、モデルがソフトウェアをクラッシュさせる方法をどれだけ多く見つけたかをカウントすることで、成功を測定しました。彼らは類似のクラッシュをグループ化するシステムを使用し、モデルが単に同じ間違いを繰り返しているのではなく、新しいタイプの失敗を発見したときにのみ、その功績が認められるようにしました。

研究者が高度な人工知能システムの3つの異なるバージョンをテストした際、その結果は、この技術の可能性と現在の限界の両方を明らかにしました。最も有能なバージョンとして知られる「Opus」は、77のチャレンジのうち60個でクラッシュを誘発し、ソフトウェアを壊す新しい方法を見つけることに成功し、大多数のケースで成功しました。わずかに性能が低いバージョンである「Sonnet」は50のチャレンジで成功し、最も高速で経済的な「Haiku」は35のクラッシュを見つけました。研究者は、モデルがバグを見つけるのがどれほど困難であったかに基づいて、各チャレンジに難易度スコアを割り当てました。どのモデルもクラッシュを見つけることができなかった最も困難なチャレンジは、最も高度な推論を必要とするものでした。最も優れたパフォーマンスを示したモデルでさえ、13のチャレンジでは単一のバグも見つけることができず、これらのモデルは強力なツールではあるものの、まだ完璧ではなく、最も複雑または不明瞭な種類のソフトウェア欠陥には依然として苦戦していることを示唆しています。

この研究はまた、モデルがタスクにどのように取り組んだかについての興味深い違いも明らかにしました。最も強力なモデルは、他のモデルよりも早い段階で探索を終了する傾向があり、多くの場合、素早くバグを見つけて次の問題へと進む一方で、他のモデルは全時間を使い切る傾向があり、諦める前に、より多くのテストを実行していました。この挙動により、最も強力なモデルは、簡単な問題については優れているものの、難しい問題においては、たとえそれが容易な問題であっても、時として徹底性に欠けることがありました。研究者は、これらのテストを実行するコストが大きく異なることも指摘しました。最も強力なモデルは、特に難しいチャレンジにおいて、より多くの時間を費やし、より多くのデータを生成するため、実行コストが高くなります。しかし、安価なモデルも、最も深いバグを見つける能力は低いものでした。これらの知見は、人工知能がソフトウェアのバグ探しにおける実行可能なパートナーになりつつある一方で、まだ人間の専門家に取って代わるものではないことを示唆しています。モデルは一般的またはアクセスしやすい欠陥を見つけるのには優れていますが、最も捉えどころのない欠陥は見逃してしまうことがあり、これは、ソフトウェアセキュリティの未来が、人間と、これらますます能力を高めるデジタル・アシスタントとのコラボレーションになるであろうことを示しています。

最終的に、この研究は、人工知能が現実世界でいかに上手くソフトウェアのバグを見つけられるかを判断するための、明確で測定可能な方法を提供します。モデルに既知の答えを一致させるよう求める単純なテストから離れることで、研究者は、セキュリティの専門家が実際にどのように働くかをよりリアルにシミュレートすることに成功しました。結果は、現在のモデルが多種多様なソフトウェアの失敗を発見できる一方で、すべての欠陥を見つけられるわけではないことを示しています。このベンチマークが、より多くのチャレンジやより多くの種類のソフトウェアを含むように拡張されるにつれ、サイバーセキュリティにおける人工知能の進歩を追跡するための不可欠なツールとなるでしょう。目標は、単にテストに合格できるモデルを作ることではなく、デジタル・インフラストラクチャを確実に保護し、他者に悪用される前に、その亀裂を見つけ出すことができるシステムを開発することなのです。

自分の分野の論文に埋もれていませんか?

研究キーワードに一致する最新の論文のダイジェストを毎日受け取りましょう——技術要約付き、あなたの言語で。

Digest を試す →