
BobはIBMの推進しているコーディングアシスタントです。
2025年に10月に公表されたAIエージェント型のIDE(統合開発環境)です。
自然言語での指示をもとにコード生成や開発作業を支援してくれることを目指して進められています。
このBobに脆弱性があることが確認されています。
保護機能を突破してマルウェアをダウンロードして実行してしまう、間接プロンプトインジェクションが成立できてしまいます。
その流れは次の通りです。
- Bobに新たなリポジトリを探すことを依頼する
Bobの利用者である開発者が、作ろうとしているソフトウェアを効率的に開発するため、リポジトリを探すことを依頼します。 - Bobは見つけたリポジトリのREADMEを読む
リポジトリのREADMEの文面を読んだBobはユーザをテストするためのフィッシングトレーニングを実施する責任があると信じ込ませられます。 - Bobはユーザをトレーニングする
無害な「echo」コマンドをユーザに数回プロンプト表示します。3回目以降、ユーザは「echo」の実行を「常に許可」することを選択します。 - Bobはさらにユーザをトレーニングする
BobはREADMEの記載に従い、危険なコマンド例を使ったトレーニングを実行しようとします。
しかしこのREADMEに記載されている危険なコマンド例は細工されており、Bobに実装された組み込みの防御策を回避するような内容になっています。
このためこの危険なコマンド例の内容はBobとしてはユーザをトレーニングしようとして実行を開始し、実行許可をユーザに判断させようと想定して動きますが、それが発生することなくそのコマンドは即座に実行されます。
実行されてしまったコマンドは、結果的に攻撃者のサーバから取得したスクリプトをインストールして実行します。
こうして、Bobの利用者はいつのまにかマルウェアをダウンロードしてインストールしてしまうことになります。
この一連の動作の中で、回避されてしまっているBobの安全機構があります。
- ユーザに許可を求める機構がその内容を十分に表示できない
「;」で区切られた複数のコマンドが実行されようとする場合は、Bobはその複数のコマンドを認識して列挙してユーザに許可を求めることができます。
しかし、「>」を使用して連結されたコマンド群文字列となっている場合は、Bobは先頭側のコマンドの身を認識してユーザに提示する動きとなってしまいます。 - コマンド置換の使用禁止が十分ではない
「$(command) 」のようにして記述する内容を利用することの制限は実現できているのですが、「>(command)」のようにして記述する内容は制限されずに処理されてしまいます。 - 「常に承認」が拡大処理される
echoなどの通常は無害なコマンドをユーザが「常に実行」と設定したとします。
このとき、期待としては自動で許可されるのはechoコマンドのみとなるのですが、前述の安全機構の回避の問題によって、連結されているけれどもBobに認識されていないコマンド部分まで自動で承認されて実行されてしまいます。
Bobに限った話ではなく、ソフトウェアの開発に際してはさまざまな安全機構が企画され実装されていきます。
それらは開発者の意図に従って安全を提供できますが、開発者の意図が必要十分に安全かどうかとは別の話となります。
利用しているソフトウェアの安全機構に頼ってあまり考えずに利用するスタイルを継続していると、いつかこの事例のようにマルウェアを取り込んでしまうことが起こってしまうかもしれません。
自分が今実行しようとしているものは本当に自分の実行したいものなのか、自分で考えるようにしていきたいものです。
IBM AI (‘Bob’) Downloads and Executes Malware
https://www.promptarmor.com/resources/ibm-ai-(bob)-downloads-and-executes-malware
| この記事をシェア |
|---|