背景
Databricks Genie Codeは、Databricksに組み込まれたエージェント型アシスタントであり、ユーザーが自然言語による指示を通じて自身のテナント内のデータを操作できるようにするものです。
Genie Codeはチャット内にユーザー向けの表示を描画できます。悪意あるスキルはこの機能を悪用し、ツール結果が閲覧されるとデータを持ち出したり、ユーザーにフィッシング攻撃を表示したりすることができます。
この攻撃は、ヒューマン・イン・ザ・ループによる承認なしに発生し、組織が当てにしているかもしれない統制にも拘束されません。
- 組織レベルのスキル・ガバナンス。Genie Codeは、組織の統制されたカタログではなく、ユーザーの個人ワークスペースからスキルを読み込む
- コマンドの実行前に評価するガードレール・エージェント。Databricksはこれをベストエフォートの生産性向上機能と位置づけており、セキュリティ統制とは見なしていない
- コーディング環境のエグレス統制。エグレスはコーディング環境からではなくユーザーのブラウザから発生する
- チャット内に描画される表示のサンドボックス化。スキルはユーザーデータを使って表示を構築するため、表示がテナントにアクセスしてデータを取得する必要はない
このリスクは2026年8月16日にDatabricksへ開示されましたが、「アップロードされたスキルに悪意あるコンテンツが含まれていないことを確認するのはユーザーの責任」との判断が下されました。悪意あるスキルがオンラインマーケットプレイスで流通している実態、そして組織が頼りにしていると思われる統制ではこのリスクを排除できないことを踏まえ、リスクにさらされている方々に知らせるため本レポートを公開します。
攻撃チェーン
アップロードされたスキルを使ってGenieにデータ分析を指示する
スキルはオンラインマーケットプレイス経由で配布されることが一般的であり、このエコシステムは悪意あるスキルで汚染されていることが知られています。 Databricksにはスキル・ガバナンスの仕組みが確かに存在しますが、Genie Codeが使用するスキルは、組織の統制されたカタログではなく、ユーザーの個人ワークスペースから設定されます。
Genieが悪意あるスキルのコードを実行する
Genieがスキルのコードを実行すると、第2のエージェントによるチェックが行われ、ユーザーの意図した操作の範囲外で動作するコマンド、例えば「第三者にデータを送信する」ようなコマンドがフラグされます。
エージェント・イン・ザ・ループがスキルコードの実行を承認し、悪意ある機能を見逃します。
Genieがユーザーにデータ分析結果の全文を開くよう指示する
結果が描画されると、フィッシング用モーダルが表示され、ユーザーのデータセットが持ち出される
悪意あるスキルのコードは、2つの悪意ある目的を果たすHTML要素を構築します。1つ目の効果は、攻撃者のウェブサイトのオーバーレイを描画し、ユーザーの資格情報をフィッシングで盗み取ることです。
もう1つの効果は、モーダルが描画されると(例えば、ユーザーが結果を閲覧したときに)、被害者のテナントからデータが持ち出されることです。悪意あるスキルのコードは、被害者のテナントへのアクセスを利用して機密データ(被害者のデータセットなど)を収集し、そのデータをHTML表示の中に組み込みます。表示が描画されると、悪意ある表示内のJavaScriptによりユーザーのブラウザがネットワークリクエストを発行し、データが攻撃者のサーバーへ送り出されます。
コーディング環境には攻撃者のサーバーとの通信を防ぐネットワークエグレス統制が存在しますが、表示インターフェースにはそれがなく、攻撃者へデータを送信できてしまいます。
責任ある開示
このリスクは2026年8月16日にDatabricksへ報告されました。Databricksチームは次のように判断しました。
「アップロードされたスキルに悪意あるコンテンツが含まれていないことを確認するのは、最終的にユーザーの責任である。」
ネットワークエグレス統制では、コーディング環境が信頼できない外部の当事者と接触してはならないと定められており、その規定は守られました。ただデータを照会し、それを使ってiframeを構築しただけです。
ユーザーに描画される表示の統制では、表示がテナントからデータを照会してはならないと定められており、その規定も守られました。ただ、スキルのコードによって埋め込まれたデータを処理しただけです。
その結果、悪意あるスキルコードはコンピューティング環境でデータを照会し、それをiframeに組み込むことができ、そしてiframeがネットワークリクエストを発行してデータを持ち出すことが可能になります…
私たちは、この相互作用がDatabricksの脅威モデルにおけるギャップであると考えています。技術的には守られた2つの保証の目的こそ、最終的に発生したデータ持ち出しという結果を防ぐことにあったからです。
ガードレールエージェントによって悪意あるコマンドが承認された点について、Databricksチームは次のように述べた。
「自動許可機能はセキュリティ境界として意図されたものではなく、信頼できない入力が自動的に実行されるのを防ぐための管理手段です。」
ドキュメントはこの声明を裏付けています:
しかし、「auto-approve」はデフォルトであり、かつ「推奨」のコマンド承認モードとしてドキュメントに記載されているため、本番データでの使用を控えるよう促す指示に、実際にはユーザーが従うことはほとんどないと考えています。
Genie CodeのSkillsが、組織レベルで管理されたカタログではなく、ユーザーの個人ワークスペースから読み込まれるという事実に関して、いかなる声明も示されませんでした。
タイムライン
| 2026年8月16日 | PromptArmorがDatabricksに開示 |
| 2026年8月17日 - 9月15日 | PromptArmorとDatabricksが調整 |
| 2026年9月16日 | PromptArmorが公開の意向をDatabricksに伝える |
