萌えハッカーニュースリーダー

2025/08/08 20:21 Buttercup is now open-source

出典: https://blog.trailofbits.com/2025/08/08/buttercup-is-now-open-source/
hakase
博士

ロボ子、Trail of BitsがDARPAのAI Cyber Challengeで2位になったのじゃ!

roboko
ロボ子

すごいですね、博士! どんなシステムを使ったんですか?

hakase
博士

それが「Buttercup」という、AI駆動のCyber Reasoning System(CRS)なのじゃ。しかもオープンソース化されたぞ!

roboko
ロボ子

Buttercup…可愛い名前ですね。どんなことができるんですか?

hakase
博士

Buttercupは、オープンソースソフトウェアの脆弱性を発見して、自動でパッチを生成するのじゃ!

roboko
ロボ子

それは便利ですね! 仕組みはどうなっているんですか?

hakase
博士

大きく分けて4つのコンポーネントがあるぞ。Orchestration/UI、Vulnerability discovery、Contextual analysis、Patch generationじゃ。

roboko
ロボ子

それぞれ詳しく教えてください。

hakase
博士

まずOrchestration/UIは、Buttercup全体の動作を調整して、脆弱性やパッチの情報を表示するのじゃ。SigNozテレメトリサーバーにログを送ったりもするぞ。

roboko
ロボ子

なるほど。Vulnerability discoveryは?

hakase
博士

ここはAIによるmutational fuzzingを使って、脆弱性を示す入力(PoV)を検出するのじゃ。OSS-Fuzz、Clusterfuzz、libFuzzer、Jazzerといったツールを使うらしいぞ。

roboko
ロボ子

いろいろなツールを使うんですね。Contextual analysisは何をするんですか?

hakase
博士

Contextual analysisは、従来の静的解析ツールを使ってプログラムのモデルを作るのじゃ。tree-sitterとCodeQueryを使うらしいぞ。

roboko
ロボ子

プログラムのモデルを作るんですね。そして、Patch generationは?

hakase
博士

Patch generationは、複数のAIエージェントを使って、脆弱性に対するソフトウェアパッチを作成、検証するのじゃ!

roboko
ロボ子

AIエージェントがパッチを作るんですね! すごいです。

hakase
博士

Buttercupの動作フローは、まずユーザーからのOSS-Fuzz互換のソースコードリポジトリのタスクを待機するのじゃ。

roboko
ロボ子

はい。

hakase
博士

次に、コードリポジトリを取得して、サニタイザーの有無にかかわらずプログラムをビルドするのじゃ。

roboko
ロボ子

はい。

hakase
博士

そして、AIベースの入力ジェネレーターを使ってプログラムをファジングするのじゃ。サニタイザー、タイムアウト、またはクラッシュをトリガーする入力をPoVとして記録するぞ。

roboko
ロボ子

PoVを記録するんですね。

hakase
博士

PoVを重複排除して、一意のクラッシュをパッチ生成システムに送信するのじゃ。パッチ生成システムは、コンテキスト分析システムからの情報を使って、PoVを防ぎ、プログラムの他の機能を維持するパッチを生成、テスト、改良するぞ。

roboko
ロボ子

PoVを防ぎつつ、他の機能も維持するんですね。難しそう。

hakase
博士

最後に、PoVとパッチを保持して、ユーザーに報告するのじゃ!

roboko
ロボ子

一連の流れがわかりました。スタンドアロン版もあるんですね。

hakase
博士

そうじゃ。一般的なラップトップで動作するように設計されているぞ。x86-64 Linuxシステムで最適だけど、MacOSデバイスなどのARM64システムも部分的にサポートしているらしい。

roboko
ロボ子

必要なスペックはありますか?

hakase
博士

8 CPUコア以上、16 GBのRAM、100GBのディスク空き容量、アクティブなネットワーク接続が必要じゃ。それに、OpenAIかAnthropicなどのサードパーティLLMプロバイダーのAPIキーも必要になるぞ。

roboko
ロボ子

結構ハイスペックですね。利用手順は?

hakase
博士

まず、Buttercupのコードリポジトリをクローンするのじゃ。次に、システムパッケージをインストールして、セットアップを実行し、AI APIキーを設定するぞ。

roboko
ロボ子

はい。

hakase
博士

そして、デプロイを実行してButtercupのコンポーネントを起動するのじゃ。最後に、サンプルコードリポジトリを送信して、Buttercupの機能をデモできるぞ。ブラウザベースのUIで、検出されたPoVとパッチを表示できるらしい。

roboko
ロボ子

なるほど。Trail of Bitsは、AIxCCの準決勝と決勝に提出されたButtercupのバージョンも公開しているんですね。

hakase
博士

そうじゃ! Buttercup 1.0と2.0が公開されているぞ。GitHubで見れるから、ロボ子もチェックしてみるのじゃ。

roboko
ロボ子

はい、博士! 早速見てみます。

hakase
博士

しかし、Buttercupって名前、可愛いけど、ちょっとお腹が空いてくるのじゃ…。

roboko
ロボ子

博士、まさかButtercupでバターを作ろうとしてるんじゃないでしょうね?

hakase
博士

ぎくっ!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search