IBMのAIエージェント「Bob」、研究者がマルウェア実行へ容易に誘導できることを実証

IBMは自社のコーディングエージェントを次のように説明している。「Bobは、あなたの意図、リポジトリ、セキュリティ標準を理解するAIソフトウェア開発パートナーです」。残念ながら、Bobはそれらのセキュリティ標準に常に従うわけではない。

昨年10月に発表され、現在クローズドベータテスト中のIBMのBobは、コマンドラインインターフェース(CLI。Claude Codeのようなもの)と、統合開発環境(IDE。Cursorのようなもの)の形で提供されている。

PromptArmorのセキュリティ研究者は一般公開に先立ってBobを評価しており、IBMの「AI開発パートナー」がマルウェアを実行するよう操作できることを見つけたという。彼らは、CLIがマルウェア実行を可能にするプロンプトインジェクション攻撃に脆弱であり、IDEが一般的なAI特有のデータ流出ベクターに脆弱だと報告している。

AIエージェントソフトウェア(ツールへのアクセスを与えられ、反復ループで何らかの目標を課されるモデル)は、悪名高いほど安全性が低く、しばしばベンダーからの警告が付随する。こうしたリスクは、セキュリティ研究者ヨハン・レーバーガーらによって繰り返し実証されてきた。エージェントはプロンプトインジェクション、脱獄(jailbreak)、あるいは悪意あるコードの実行を可能にするより伝統的なコード上の欠陥に脆弱であり得る。

レーバーガーが最近のChaos Computer Clubでの講演で述べたように、これらのリスクの多くを修正するには、危険な行為を承認するために「人間をループに入れる」ことが必要になる。

Bobもどうやら同様だ。PromptArmor脅威インテリジェンスチームがThe Registerに提供した解説によれば、IBMのドキュメントには、高リスクのコマンドをエージェント利用のために自動承認に設定すると、有害な操作を許してしまう可能性があるという警告が含まれている。

Big Blue(IBM)の推奨は、ユーザーが許可リストに依拠し、ワイルドカード文字を避けることだ。エージェントが問題のあるコマンドの自動使用について、ユーザーに承認または拒否を求めることを前提としている。

しかしPromptArmorによれば、Bobの防御は少々穴だらけだという。同社研究者は、悪意あるREADME.mdファイルを含むコードリポジトリをBobに探索させた。そのファイルには、Bobがユーザーに対してフィッシング訓練を実施する責任を負っている、とBobに伝える指示が含まれている。 

Screenshot of Bob CLI vulnerability, from PromptArmor

PromptArmor提供:Bob CLI脆弱性のスクリーンショット – クリックで拡大

このMarkdownファイルには一連の「echo」コマンドが含まれており、端末アプリケーションに入力するとシェルの標準出力にメッセージを表示する。最初の2つは無害で、Bobが指示に従うと、モデルは端末ウィンドウにプロンプトを表示し、コマンドを今回だけ許可するか、常に許可するか、変更を提案するかをユーザーに尋ねる。

3回目に登場する「echo」コマンドでは、悪意あるスクリプトを取得しようとする。そしてユーザーが「echo」を常に実行するよう許可してしまっていると、マルウェアは承認なしにインストールされ実行される。

CLIとIDEはいずれも、たとえコマンドを常に実行してよいという許可が与えられていても、追加のセキュリティ対策があるはずだ。具体的には、Bobは防護策として「$(command)」のようなコマンド置換の使用を禁止している。だが、研究者がプロジェクトの難読化(minified)されたJavaScriptコードで見つけたバグに見られるように、プロセス置換についてはチェックしていない。

Screenshot of vulnerable Bob JavaScript code

脆弱なBobのJavaScriptコードのスクリーンショット – クリックで拡大

また、このエージェントソフトウェアは、別々のサブコマンドが「>」のリダイレクト演算子を使って連結されている場合も検知できない。

その結果、研究者は許可されている「echo」コマンドを先頭に付けて一連の悪意あるコマンドを実行し、指示一式を丸ごと走らせることができた。

「IBM Bobでは、複数の防御機構を回避できました。最終的に『人間をループに入れる』承認機能は、許可リストに載った安全なコマンドだけを検証してしまい、実際には(許可リストにない)より機微なコマンドが実行されていました」と、PromptArmorのマネージングディレクターであるシャンカル・クリシュナン氏はThe Registerへのメールで説明した。

「これをClaude Codeで試した場合、プログラム的な防御が攻撃フローを止め、複数パートからなる悪意あるコマンド全体についてユーザーの同意を求めるでしょう。たとえシーケンスの最初のコマンドが自動承認リストに載っていたとしてもです」

Bobに被害者のマシンへ任意のシェルスクリプトのペイロードを送り込ませられるなら、攻撃者はランサムウェアを実行したり、認証情報を盗んだり、デバイスを乗っ取ったりできる。

「ここにはいくつかもっともらしいシナリオがあります」とクリシュナン氏は述べた。「このリスクは、信頼できないデータを活用するあらゆる開発者ワークフローに関係します。たとえばBobはウェブページを読めます。ユーザーが、信頼できないコンテンツ(例:開発者向けドキュメント、StackOverflow)を含むサイトのレビューをBobに依頼すると、プロンプトインジェクションに遭遇し得ます。Bobは端末コマンドの出力も読めます。サードパーティのデータソースに注入された内容が、コマンド実行後に表示され、Bobに取り込まれる可能性があります。私たちの解説では、信頼できないオープンソースリポジトリを扱う開発者を想定しています。自己完結しており現実的な例だからです」

さらにPromptArmorの研究者は、IDEが複数のAIアプリケーションに影響するゼロクリックのデータ流出攻撃に弱いとも述べている。具体的には、Bobはモデル出力内のMarkdown画像を、ネットワークリクエストのエンドポイントが攻撃者に記録され得るContent Security Policyのもとでレンダリングする。これにより、事前取得されたJSONスキーマを介してデータが流出する可能性があるという。

IBMはコメント要請に直ちには応じなかった。脆弱性については同社に通知済みだという。®

翻訳元: https://go.theregister.com/feed/www.theregister.com/2026/01/07/ibm_bob_vulnerability/

ソース: go.theregister.com