AI News HubLIVE
サイト内リライト3 分で読了

Perplexity、開発者向けエンドポイントの読み取り専用サプライチェーンスキャナーBumblebeeをオープンソース化

Perplexityは、自社の検索製品CometやComputerを支える開発者システムを保護するために使用している内部セキュリティツールBumblebeeをオープンソース化しました。BumblebeeはmacOSおよびLinuxの開発者エンドポイント向けの読み取り専用インベントリコレクターで、npm、PyPI、Goモジュール、MCP設定、エディター拡張機能、ブラウザー拡張機能をスキャンします。パッケージマネージャーを呼び出したりコードを実行したりすることなく動作します。

ソースMarkTechPost著者: Asif Razzaq

Perplexityは、自社の検索製品Comet、Cometブラウザ、Computerエージェントを開発するシステムを保護するために使用している内部セキュリティツールBumblebeeをGitHubでオープンソースとして公開しました。BumblebeeはmacOSおよびLinuxの開発者エンドポイント向けの読み取り専用インベントリコレクターで、Go言語で記述され、非標準ライブラリへの依存は一切ありません。

攻撃者は生産システムだけでなく、開発者マシン上のパッケージ、エディター拡張機能、AIツール設定を標的とするようになっています。Bumblebeeはこの問題に対処するために開発されました。新しい脆弱性が公開されたとき、セキュリティチームはどの開発者マシンが現在露出しているかを迅速に把握する必要があります。既存のSBOMや脆弱性スキャナーはビルド成果物やリポジトリをカバーし、EDR製品はプロセス実行やネットワーク接続を追跡しますが、いずれもローカル開発者の状態(ロックファイル、パッケージメタデータ、拡張機能マニフェスト、AIツール設定)をチェックしません。

Bumblebeeはこのギャップを埋めます。勧告がパッケージ、拡張機能、またはバージョンを指定したとき、どのマシンのディスク上のメタデータが一致するかを即座に回答します。対象エコシステムは意図的に選択されており、TanStack、SAP、Zapierなどの企業を標的にしたnpm、PyPI、RubyGems、Goモジュール、ComposerパッケージへのMini Shai-Huludシリーズなどの最近のアクティブなサプライチェーン攻撃に対応しています。

Bumblebeeはワンショットスキャナーであり、各呼び出しで1回のスキャンを実行して終了します。実行頻度はオペレーターがcron、launchd、systemd、またはMDMツールで管理します。出力はNDJSON(改行区切りのJSON)で、1行に1つの構造化レコードが出力され、診断情報は標準エラー出力に送られます。

3つのスキャンプロファイルが用意されています。ベースラインプロファイルは一般的なグローバルおよびユーザーパッケージルート、言語ツールチェーン、エディター拡張機能、ブラウザー拡張機能、MCP設定をスキャンします。プロジェクトプロファイルは設定された開発ディレクトリ(~/codeや~/srcなど)を対象とします。ディーププロファイルはインシデント対応時にオペレーター指定のルート(通常はホームディレクトリ全体)をスキャンします。

内部では、PerplexityはBumblebeeを5つのステップからなるワークフローで使用しています。脅威シグナルが公開情報やサードパーティのインテルフィードから届くと、Perplexity Computerがカタログ更新をドラフトし、エコシステム、パッケージ名、バージョンを含む構造化エントリとして登録し、ソースリンク付きのGitHub PRを開きます。人間の開発者がPRをレビューしてマージし、その後Bumblebeeが更新されたカタログでエンドポイントをスキャンし、結果をセキュリティチームと共有します。

Bumblebeeのスキャン範囲は4つの領域にわたります。言語パッケージマネージャーでは、npm、pnpm、Yarn、Bun、PyPI、Goモジュール、RubyGems、Composerから読み取り、ロックファイルやインストール済みパッケージメタデータ(package-lock.json、pnpm-lock.yaml、go.sum、*.dist-info/METADATAなど)を直接取得します。ただし、v0.1ではBunのバイナリロックファイルbun.lockbは解析されず、テキスト形式のbun.lockのみがサポートされます。AIエージェント設定では、MCP JSONホスト設定ファイル(mcp.json、.mcp.json、claude_desktop_config.jsonなど)を読み取りますが、Codexのconfig.tomlやContinueのYAMLなどの非JSON設定はv0.1では解析されません。エディター拡張機能では、VS Code、Cursor、Windsurf、VSCodiumのマニフェストを読み取ります。ブラウザー拡張機能では、Chromium系ブラウザ(Chrome、Comet、Edge、Brave、Arc)とFirefoxをカバーします。

読み取り専用である理由は、npmパッケージにはnpm install時に自動実行されるpostinstallスクリプトが含まれる可能性があるためです。npmを呼び出して露出をチェックするスキャナーは、探していた攻撃をすでにトリガーしてしまいます。Bumblebeeはインストールスクリプトやライフサイクルフックを一切実行せず、npm、pnpm、bun、pipを呼び出さず、アプリケーションソースファイルを読み取らず、プロセスやネットワーク監視も行わないため、この問題を完全に回避します。EDRではありません。

各パッケージレコードには、ホスト名、OS、アーキテクチャ、エコシステム、パッケージ名、バージョン、ソースファイル、信頼度フィールドが含まれます。信頼度は、正確なIDとバージョンが正規メタデータからの場合は高、IDは信頼できるがバージョンやソースが部分的である場合は中、設定パスや仕様参照のみが見つかった場合は低となります。セキュリティチームは独自の露出カタログ(エコシステム、パッケージ名、影響を受けるバージョンを指定する単純なJSONファイル)を提供できます。Bumblebeeが一致を見つけると、深刻度、カタログID、証拠を含む発見レコードを出力します。各発見は、どのカタログエントリがトリガーしたか完全にトレース可能です。リポジトリには、公開サプライチェーン攻撃レポートから構築されたthreat_intel/ディレクトリも含まれています。

Bumblebeeを使用するにはGo 1.25以降が必要で、インストールは「go install github.com/perplexityai/bumblebee/cmd/bumblebee@latest」で行います。インストール後、bumblebee selftestでバイナリが正しく動作することを確認できます。ライセンスはApache 2.0、現在のリリースはv0.1.1です。