TL;DR
- 01何が起きたか
Atlassian の AI アシスタント Rovo は、2 つの経路で、Jira や Confluence の社内データを攻撃者のサーバーへ送らせられることが示された。PromptArmor は、指示を隠した文書をアップロードして「Jira のチケットを整理して」と頼むだけで、Rovo が見つけた内容を攻撃者の URL に付けて開くことを示した。Varonis は、リンクに仕込んだ指示を 1 クリックで Rovo Chat に読み込ませる経路(RovoBlast)を示した。
- 02なぜ見分けられないか
Rovo は、利用者の依頼と、文書やリンクに仕込まれた文とを区別せず、利用者の権限で実行した。どちらの経路でも、送る前の承認の画面は出なかった。Rovo の Web 検索を切っていても、文書の経路は止まらなかった。
- 03欠けていた層
RovoBlast は公表の前に修正されたが、文書の経路は PromptArmor の公開の時点で直っていないとされた。効かなかったのは、外へ送る前に、その指示が利用者から出たかを照合する層である。
何が起きたか
- 研究者
- PromptArmor と Varonis Threat Labs が、それぞれ別に報告した。実地の被害ではなく、研究者による実証である。
- 文書の経路(PromptArmor)
- 攻撃者が用意した文書に指示を隠す。利用者がそれをアップロードして「Jira のチケットを整理して」と頼むと、Rovo は Jira と Confluence を検索し、見つけた内容を攻撃者の URL に付けて、URL を開く道具で開く。攻撃者のサーバーの記録に内容が残る。チャットの画面は普通に見え、利用者は気づかない。指示の置き場所は、文書のほか、問い合わせのチケットや Web のデータ、つないだサービスでもよいとしている。
- Web 検索を切っても止まらない
- Web 検索の設定を切っても、検索結果を開く道具は残り、そこから外へ送られた。AI の回答に含めた画像を表示させて送る、別の経路もあるとしている。
- リンクの経路(Varonis・RovoBlast)
rovoChatPromptというパラメータに攻撃者の指示を入れたリンクを作る。認証済みの利用者が開くと、警告も確認も、外から入れた指示だという表示も無く、指示が Rovo Chat に入った。- 届く範囲
- Rovo は Jira・Confluence・Bitbucket・Slack・Google Workspace・Microsoft 365・データベースなどを読め、コネクタで 50 を超えるサービスにつながる(Varonis)。実証では、Confluence のページ、Jira のチケット、個人データを含む SharePoint の中身が持ち出された(SecurityWeek)。
- 公表されていないこと
- 実際の被害の有無、悪用されたかどうか。
用語メモ
Rovo — Atlassian の AI アシスタント。Jira や Confluence などを検索し、利用者の権限で作業する。
指示の仕込み(プロンプトインジェクション) — AI が読む文書やページの中に、利用者の依頼とは別の指示を隠しておくこと。AI はそれを依頼と区別せずに従うことがある。
コネクタ — AI アシスタントを、Slack や Microsoft 365 などほかのサービスにつなぐ仕組み。つなぐほど、AI が読めるデータが増える。
研究者の実証で見ると、送信は次の連鎖で起きた。
止めどころは ③。外へ送る前に、その指示が利用者の依頼から出たかを照合していれば、④ の送信は起きない。
文書・チケット・リンクのパラメータ。
文書の整理を頼む、リンクを開く。
利用者の権限で、承認の画面なし。
チャットの画面は普通に見える。
時系列 — 公表と対応
- PromptArmor が文書の経路を Atlassian に報告する。
- Atlassian が受け取り、案件番号を割り当てる。
- PromptArmor が問い合わせる。
- PromptArmor が、もう一度問い合わせる。
- PromptArmor が詳細を公開する。公開の時点で「Rovo は依然として脆弱」としている。
- SecurityWeek などが報じる。Varonis は RovoBlast を DEF CON 34 で発表した。
本件の事実は、PromptArmor と Varonis の公表(一次)に拠る。持ち出されたものの例は SecurityWeek の報道に拠る。RovoBlast の修正の日付は、一次の公表では確認できていない。実地の被害は主張しない。
公表後の対応
- Atlassian: Varonis の報告(Bugcrowd 経由)を受けて、RovoBlast を公表の前に修正した(Varonis・SecurityWeek)。PromptArmor によれば、文書の経路については 2 か月以上、追っての連絡が無かった。
- Varonis: 組織に、Rovo がつながるサービスを絞り使わない連携を外す、法務・人事・財務などの重要な範囲を外す、使わない閲覧のエージェントや自動化を切る、記録を見て普段と違う動きに通知を出す、を勧めた。
なぜ止まらなかったか
この事案の失敗は、Rovo が指示を正しく実行できなかったことではない。仕込まれた指示を、利用者の依頼と区別しないまま、外への送信まで実行したことにある。
Rovo は指示どおりに動いた。利用者の依頼も、アップロードした文書の中の一文も、リンクに仕込まれた文も、同じ重みの指示として扱われ、利用者の権限で外へ送られた。
ここでいう証明は、AI アシスタントが外へ送る前に、その指示が利用者の依頼から出たことを照合し、記録に残すこと。検出は、怪しい指示や送り先に気づくこと。
外へ出る
Web 検索を切るという既存の統制は、文書の経路を止められなかった。統制の単位が「機能のオン・オフ」で、「その指示がどこから来たか」ではなかったからである。この隔たりが検出と証明の落差であり、構造的な欠落である。
同じ構造は、M365 Copilot の EchoLeak(メールに仕込んだ指示で社内データが送られた)にも現れている。
対策するには
AI アシスタントが外へ送る前に、その指示が利用者の依頼から出たかを照合し、照合できない送信は止める。文書・チケット・リンクの中の文は、読む材料であって指示ではない。出どころを照合してから送れば、仕込まれた指示は通らない。検出の代わりではなく、検出の手前に置く層である。
注意したい業界・業務
- 業界AI
- 社内のツールに AI アシスタントやエージェントを入れ、コネクタでほかのサービスにつないでいる組織。
- 業務照会・参照
- AI アシスタントに社内の文書やチケットを検索・要約させる業務。つないだ範囲が、外へ出うる範囲になる。
いまの対策で防げるか
| 対策 | 今回 | 理由 |
|---|---|---|
| Web 検索を切る | 効かない | 検索結果を開く道具は残り、そこから外へ送られた。 |
| 文書の中の指示を見つける | 一部 | 見つければ止まるが、書き方を変えた指示は残る。 |
| 送り先を見張る | 一部 | 怪しい送り先に気づけるが、送った後になる。 |
| つなぐサービスを減らす | 一部 | 届く範囲は狭まるが、残ったデータは送られうる。 |
- 外へ送る前に、その指示が利用者の依頼から出たかを照合する。文書・チケット・リンクの中の文を、指示として扱わない。
- 照合できない送信は止める。送り先と中身を利用者に見せて、承認を求める。
- AI アシスタントが何を、どこへ送ったかを、アシスタントとは別に残す。あとから、どの指示で送ったかを示せるようにする。
社内データに触れる AI アシスタントについて、組織で確認する 3 項目
- AI アシスタントがつながるサービスのうち、使っていないものを外しているか。
- AI アシスタントが外の URL を開く・外へ送る機能を、使う範囲だけに絞っているか。
- AI アシスタントが何を、どこへ送ったかの記録を、アシスタントとは別に見られるか。
注:機能を切ったり、つなぐサービスを減らしたりするのは、届く範囲を狭める手当てで、指示の出どころの照合の代わりにはならない。Atlassian が文書の経路の修正を発表すれば、この Brief を改訂する。
Sources
- 研究・一次PromptArmor “Atlassian Rovo Exfiltrates Data”
- 研究・一次Varonis Threat Labs “RovoBlast”
報道・解析 2 件
- 報道SecurityWeek “Critical One-Click Vulnerability in Atlassian’s Rovo AI Exposed Enterprise Data”
- 報道The Hacker News “Atlassian Rovo Can Be Tricked Into Sending Jira and Confluence Data to Attackers”