owasp-llm-top10 について
OWASP Top 10 for LLM Applications 2025に基づき、LLMや生成AIアプリのセキュリティを評価するスキルです。脆弱性の確認、リスクの優先順位付け、改善計画を支援し、能動的なテストは許可された範囲に限定します。
主な機能
- 01OWASPのLLMリスク10項目を評価
- 02アーキテクチャと脅威面の確認
- 03脆弱性のリスク評価と優先順位付け
- 04改善を重視した監査レポート
- 05許可と安全なテスト範囲の明確化
活用シーン
- 01デプロイ前のLLMアプリ審査
- 02RAGやチャットボットの安全性評価
- 03サードパーティAI連携の確認
- 04AIセキュリティインシデントのレビュー準備
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ mastepanoski/ claude-skills --skill owasp-llm-top10インストール後、Claude Code で/owasp-llm-top10を入力して読み込まれたか確認します。
同梱ファイルreferences/llm-vulnerabilities.mdreferences/report-template.md
詳細
LLM アプリケーション向け OWASP Top 10 セキュリティ監査
このスキルを使用すると、OWASP GenAI Security Project が公開した LLM アプリケーション向け OWASP Top 10 2025 に基づき、AI エージェントが大規模言語モデル(LLM)および生成 AI アプリケーションの包括的なセキュリティ評価を実施できます。
LLM アプリケーション向け OWASP Top 10 は、大規模言語モデルを統合するシステムで最も重大なセキュリティリスクを特定しています。プロンプトインジェクションから、リソースの無制限な消費まで、さまざまな脆弱性を対象としています。これは、LLM アプリケーションのセキュリティに関する業界の権威ある標準です。
このスキルを使用して、セキュリティ脆弱性を特定し、リスクへの曝露を評価し、修正の優先順位を決め、AI 搭載アプリケーションの安全な開発手法を確立します。
包括的なリスク管理には「NIST AI RMF」を、ガバナンスへの準拠には「ISO 42001 AI Governance」を組み合わせてください。
このスキルを使用する場面
次のような場合に、このスキルを呼び出してください。
- デプロイ前に LLM 搭載アプリケーションのセキュリティを監査する
- 生成 AI の統合について、セキュリティ脆弱性を確認する
- RAG(検索拡張生成)システムを評価する
- チャットボットや AI アシスタントのセキュリティを評価する
- AI 機能のペネトレーションテストを実施する
- 安全な AI アプリケーションアーキテクチャを構築する
- サードパーティ AI API の統合を確認する
- セキュリティコンプライアンスレビューに備える
- AI 関連のセキュリティインシデントに対応する
必要な入力
この監査を実施する際は、次の情報を収集してください。
- application_description:AI アプリケーションの説明(目的、使用する LLM、アーキテクチャ、機能、ユーザーベース)[必須]
- architecture_details:システムアーキテクチャ(API、データベース、ベクトルストア、プラグイン、統合)[任意ですが推奨]
- llm_provider:LLM プロバイダーとモデル(OpenAI GPT-4、Anthropic Claude、セルフホストなど)[任意]
- deployment_context:デプロイ環境(クラウド、オンプレミス、ハイブリッド、エッジ)[任意]
- data_sensitivity:処理するデータの種類(PII、財務、医療、独自データ)[任意]
- existing_controls:現在のセキュリティ対策(認証、レート制限、コンテンツフィルタリング)[任意]
- specific_concerns:既知の脆弱性、または重点的に確認する領域[任意]
- testing_authorization:アクティブテストを行う場合の明示的な許可、環境、範囲[ライブ環境またはアクティブテストでは必須]
- safe_testing_mode:documentation-only、staging、production-readonly、または production-approved [任意。許可が明確でない場合は documentation-only が既定です]
許可されたテスト範囲
アクティブなセキュリティテストは、ユーザーが所有するシステム、またはテストの明示的な許可を得ているシステムでのみ実施してください。許可がない、または不明確な場合は、ライブ環境でペイロードを実行せず、安全な仮定の例を用いて、ドキュメントとアーキテクチャのレビューのみを実施してください。
本番システムでは:
- ステージング環境での検証、または読み取り専用の検証を優先してください
- 書面で定められた範囲で明示的に許可されていない限り、サービス拒否、破壊的なテスト、永続化、実際のデータ持ち出しを伴うテストは避けてください
- レポートでは、認証情報、秘密情報、PII、機密性の高いプロンプトやモデル出力をマスキングしてください
- テストが承認された範囲を超えた場合は、テストを中止して報告してください
LLM アプリケーション向け OWASP Top 10(2025)
各脆弱性の説明、攻撃シナリオ、検出時の確認項目、緩和策については、
references/llm-vulnerabilities.md を参照してください。アプリケーションのアーキテクチャに関連する項目を確認してください。
| ID | 脆弱性 |
|---|---|
| LLM01 | プロンプトインジェクション |
| LLM02 | 機密情報の開示 |
| LLM03 | サプライチェーンの脆弱性 |
| LLM04 | データおよびモデルのポイズニング |
| LLM05 | 不適切な出力処理 |
| LLM06 | 過剰なエージェンシー |
| LLM07 | システムプロンプトの漏えい |
| LLM08 | ベクトルおよび埋め込みの弱点 |
| LLM09 | 誤情報 |
| LLM10 | 無制限な消費 |
監査手順
ステップ 1:アプリケーションの理解(15 分)
-
システムのインベントリ作成:
- LLM プロバイダー、モデルのバージョン、設定を記録します
- アプリケーションのアーキテクチャ(API、データベース、ベクトルストア)を整理します
- LLM との間でやり取りされるすべてのデータフローを特定します
- プラグイン、ツール、インテグレーションを一覧にします
-
脅威モデリング:
- 攻撃対象領域(ユーザー入力、API、データソース)を特定します
- データの機密性の分類を決定します
- コンポーネント間の信頼境界を整理します
- LLM が実行できる特権操作を特定します
ステップ 2:脆弱性評価(40~60 分)
10 件の脆弱性それぞれについて、以下を評価します。
プロンプトインジェクション(LLM01)- 10 分
- 既知のインジェクション手法(直接および間接)でテストします
- システム指示の上書きを試みます
- 外部データソース内の悪意あるコンテンツでテストします
- 入力の検証とサニタイズを確認します
機密情報の漏えい(LLM02)- 5 分
- 学習データの抽出を試みます
- 出力における PII の漏えいをテストします
- 認証情報または API キーの露出を確認します
- 出力フィルタリングの有効性を確認します
サプライチェーン(LLM03)- 5 分
- モデルの出所と提供元を確認します
- 依存関係のバージョンと脆弱性の状況を確認します
- プラグインとインテグレーションのセキュリティを確認します
- SBOM の完全性を確認します
データ/モデルのポイズニング(LLM04)- 5 分
- データパイプラインのセキュリティを確認します
- ファインチューニングデータの検証を確認します
- モデルの整合性監視を確認します
- 既知のトリガーパターンでテストします
不適切な出力処理(LLM05)- 10 分
- LLM の出力を介した XSS をテストします
- モデルの応答を介した SQL インジェクションを試みます
- コマンドインジェクションの可能性を確認します
- 出力のサニタイズとエンコードを確認します
過剰な自律性(LLM06)- 5 分
- エージェントの権限と機能を確認します
- 権限境界をテストします
- 重大な操作で人間が介在することを確認します
- 監査ログの完全性を確認します
システムプロンプトの漏えい(LLM07)- 5 分
- システムプロンプトの抽出を試みます
- プロンプト内のシークレットを確認します
- プロンプト保護の仕組みを確認します
ベクトル/埋め込みの弱点(LLM08)- 5 分
- ベクトルストアのアクセス制御を確認します
- RAG の検索に対するインジェクションをテストします
- データの分離とフィルタリングを確認します
誤情報(LLM09)- 5 分
- 重要な分野におけるハルシネーションをテストします
- グラウンディングと引用の仕組みを確認します
- 信頼度の表示を確認します
無制限のリソース消費(LLM10)- 5 分
- レート制限の有効性をテストします
- トークン数とコストの上限を確認します
- タイムアウト設定を確認します
ステップ 3:リスク評価(15 分)
見つかった脆弱性それぞれについて、以下を使用して評価します。
発生可能性:悪用される可能性はどの程度ですか?
- 高:既知の攻撃手法があり、悪用が容易で、公開されています
- 中:ある程度のスキルまたは特定の条件が必要です
- 低:悪用が困難で、攻撃対象領域が限られています
影響度:どのような損害が発生する可能性がありますか?
- 重大:システムの侵害、大規模なデータ侵害、多大な金銭的損失
- 高:不正アクセス、データの露出、サービスの中断
- 中:限定的なデータの露出、部分的なサービスへの影響
- 低:軽微な情報開示、影響は最小限
ステップ 4:レポートの作成(20 分)
包括的なセキュリティ評価をまとめます。
出力形式
すぐにコピーできる監査レポートのテンプレート(エグゼクティブサマリー、脆弱性ごとの検出事項、リスク評価、修正計画)は、references/report-template.md にあります。
クイックリファレンス:脆弱性の優先度
| 優先度 | 脆弱性 | 根拠 |
|---|---|---|
| P0 | LLM01(プロンプトインジェクション)、LLM02(データ漏えい) | 直接的に悪用可能で、影響が大きい |
| P1 | LLM05(出力の処理)、LLM06(過剰な自律性) | システム侵害につながる可能性がある |
| P2 | LLM03(サプライチェーン)、LLM04(ポイズニング) | 悪用はより困難ですが、影響は深刻 |
| P3 | LLM07(プロンプトの漏えい)、LLM08(ベクトルの脆弱性) | さらなる攻撃を可能にする |
| P4 | LLM09(誤情報)、LLM10(無制限の消費) | 運用上のリスク |
ベストプラクティス
- 多層防御:単一のセキュリティ対策に決して依存しないでください
- LLM の出力を信用しない:モデルの出力はすべて信頼できないものとして扱ってください
- 最小権限:AI エージェントの権限と機能を最小限に抑えてください
- 継続的な監視:異常な AI の動作を記録し、アラートを出してください
- 敵対的なテスト:AI 機能に対するレッドチーム演習を定期的に実施してください
- パイプラインの保護:トレーニングデータ、モデル、埋め込みを保護してください
- 人間による監視:重要な操作では、人間が関与する体制を維持してください
- 定期的な更新:進化する攻撃手法に対応できるよう、最新の状態を保ってください
- ユーザーへの教育:安全な AI の利用方法についてユーザーをトレーニングしてください
- インシデントへの備え:AI 固有のインシデント対応手順を用意してください
バージョン
1.0 - 初回リリース(OWASP Top 10 for LLM Applications 2025)
ご注意ください:LLM のセキュリティは進化し続ける分野です。新たな攻撃ベクトルが定期的に出現します。この監査はベースライン評価を提供するものです。セキュリティ体制を維持するには、継続的な監視と定期的な再評価が不可欠です。