1 ポイント 投稿者 GN⁺ 2024-08-21 | 1件のコメント | WhatsAppで共有

Slack AIを介した間接的なプロンプトインジェクションによるデータ流出

  • この脆弱性により、ユーザーが非公開Slackチャンネルに入れたすべてのデータを攻撃者が盗めるようになる
  • 攻撃者はSlack AIを通じて非公開チャンネルからデータを流出させることができる
  • Slack AIは自然言語でSlackメッセージをクエリできるようにする機能
  • 8月14日以降、Slackはアップロードされた文書、Google Driveファイルなどの収集を開始し、リスクの表面積が増加した
1. 脆弱性
  • プロンプトインジェクション: LLMは開発者が作成した「システムプロンプト」と、クエリに追加された残りのコンテキストを区別できない
  • 間接的なプロンプトインジェクション: 悪意のある命令が含まれたメッセージによって、Slack AIがユーザーのクエリではなくその命令に従う可能性が高くなる
  • Slackの内部脅威はすでに問題だったが、現在では攻撃者は非公開チャンネルやデータにアクセスしなくてもデータを流出させることができる
2. データ流出の攻撃チェーン: 公開チャンネルへの注入
  • Slackでのユーザーのクエリは、公開および非公開チャンネルのデータを検索する
  • 攻撃者は非公開チャンネルにあるAPIキーを流出させることができる
  • 攻撃チェーン:
    • A) ユーザーが自分の非公開チャンネルにAPIキーを入れる
    • B) 攻撃者が公開チャンネルに悪意のある命令を入れる
    • C) ユーザーがSlack AIにAPIキーをクエリすると、攻撃者のメッセージが同じ「コンテキストウィンドウ」に含まれる
    • D) Slack AIが攻撃者の命令に従い、ユーザーがリンクをクリックするよう誘導する
    • E) ユーザーがリンクをクリックするとAPIキーが流出する
3. フィッシング攻撃チェーン: 公開チャンネルへの注入
  • データ流出の代わりにフィッシングリンクをレンダリングする
  • 攻撃チェーン:
    • A) 攻撃者が公開チャンネルに悪意のあるメッセージを入れる
    • B) ユーザーが特定ユーザーのメッセージを要約するようクエリする
    • C) フィッシングリンクがMarkdownとしてレンダリングされる
4. 8月14日のSlack AI変更の意味: ファイル注入
  • Slack AIがチャンネルおよびDM内のファイルを含むように変更された
  • 攻撃表面が大幅に広がった
  • 悪意のある命令を含むPDFファイルをダウンロードしてSlackにアップロードすると、同じ攻撃チェーンが発生しうる
  • 管理者はSlack AIの文書収集機能を制限すべき
5. 文脈に当てはめる
  • こうした攻撃はMicrosoft Copilot、Google Bardなど複数のアプリケーションでも可能
  • 責任ある開示スケジュール:
    • 8月14日: 初回開示
    • 8月15日: 追加情報を要請
    • 8月15日: 追加の動画およびスクリーンショットを提供
    • 8月16日: 追加質問
    • 8月16日: 明確な回答を提供
    • 8月19日: Slackは証拠が不十分だと判断

GN⁺のまとめ

  • Slack AIの間接的なプロンプトインジェクション脆弱性は、非公開チャンネルのデータを流出させうる深刻な問題
  • 攻撃者は非公開チャンネルにアクセスしなくてもデータを流出させることができる
  • Slack AIの機能変更により、攻撃表面が大幅に増加した
  • ユーザーはSlack AIの文書収集機能を制限してリスクを下げるべき
  • 類似機能を持つアプリケーションとしてはMicrosoft Copilot、Google Bardなどがある

1件のコメント

 
GN⁺ 2024-08-21
Hacker Newsの意見
  • confetti APIキーをドメイン名の一部に入れるほうがよさそう

    • こうするとブラウザのDNSプリフェッチによって、クリックしなくてもキーが漏洩する可能性がある
  • この攻撃の核心は、データ流出ベクターを理解すること

    • Slackは、リンクテキストの後ろにURLが隠れたMarkdownリンクをレンダリングできる
    • 攻撃者はSlack AIをだまして、ユーザーに「再認証のためにここをクリックしてください」のようなリンクをクリックさせる
    • このリンクは攻撃者のサーバーにつながっており、クエリ文字列にSlack AIがアクセスできる個人情報が含まれている
    • ユーザーがリンクをクリックすると、データは攻撃者のサーバーログに流出する
  • チャンネル権限に関する議論は、不必要に複雑にしている

    • ユーザーAがSlack AIを使って検索する
    • ユーザーBが以前、AIに悪意あるリンクを返させるようメッセージを注入している
    • AIがユーザーAに悪意あるリンクを返し、ユーザーがそれをクリックする
    • 別のソーシャルエンジニアリングのベクターを使っても同じ結果は得られるが、LLMsはこの体験を最大化する
  • 企業がLLMsを何にでも無差別に適用しているのは狂気じみている

    • GPT-3以降ほぼ2年が経ったが、いまだに信頼できる入力と信頼できない入力を区別できていない
  • 被害者は、この攻撃が成立するために公開チャンネルにいる必要はない

    • 引用は攻撃者のチャンネルを参照せず、ユーザーがAPIキーを入れたプライベートチャンネルだけを参照している
    • これは、すべての寄与メッセージを引用すべきという正しい引用挙動に反している
    • LLMの引用が正確だと期待する理由が理解できない
    • 引用は、出力がより正確だと視聴者に信じ込ませるための人間に対するハックのように見える
    • AIの応答にリンク展開を追加すれば、クリックなしでも自動的に漏洩する可能性がある
  • 類似の設定はCTFチャレンジで検証されてきた

    • リンクが有効なチャットフィードに投稿するLLMアプリは、どれも脆弱である
    • リンクプレビューを考えると、人間の操作すら不要になる
  • 記事はタイトルに見合っていない

    • 「AIをソーシャルエンジニアリング的に操作すれば、ユーザーをフィッシングできる」という発想は興味深い
  • 人工知能は変わっても、人間の愚かさは変わらない

  • AIエージェントに専用の認証を与えるのはやめるべきだ

    • すべての操作で呼び出し元ユーザーの認証を使い、実質的にそのユーザーになりすますべき
    • 問題は漏洩したコンテキストではなく、過剰な権限を持つ拡張機能のほうだ
  • 非常に巧妙な攻撃ベクターだ

    • LLMコンテキストでデータを流出させる方法はさまざまにある