llm-security について
llm-securityは、OWASP Top 10 for LLM Applications 2025に基づくセキュリティガイドのスキルです。LLMアプリを構築・レビューする開発者向けに、用途別の優先リスクとコード例を含むルールを示します。
主な機能
- 01用途別の優先リスクの特定
- 02OWASPのLLMリスク10分類を網羅
- 03セキュリティ対策とリスク確認
- 04MITRE ATLASとNISTを参照
活用シーン
- 01チャットボットやLLM APIのレビュー
- 02ツールを使うAIエージェントの評価
- 03RAGシステムと埋め込みの保護
- 04学習データとモデル供給網の確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ semgrep/ skills --skill llm-securityインストール後、Claude Code で/llm-securityを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
AGENTS.mdREADME.mdrules/_sections.mddata-poisoning.mdexcessive-agency.mdmisinformation.mdoutput-handling.mdprompt-injection.mdsensitive-disclosure.mdsupply-chain.mdsystem-prompt-leakage.mdunbounded-consumption.mdvector-embedding.md詳細
LLM セキュリティガイドライン(OWASP Top 10 for LLM 2025)
OWASP Top 10 for LLM Applications 2025 に基づいた、安全な LLM アプリケーションを構築するためのセキュリティルールです。
このスキルの使い方
プロアクティブモード — LLM アプリケーションを構築またはレビューする際、アプリケーションのパターンに基づいて関連するセキュリティリスクを自動的に確認します。ユーザーが LLM セキュリティについて質問するのを待つ必要はありません。
リアクティブモード — ユーザーから LLM セキュリティについて質問された場合は、以下の対応表を使って、脆弱なコードと安全なコードの詳細な例を含む関連ルールファイルを探します。
ワークフロー
- ユーザーが何を構築しているかを特定します(以下の「何を構築していますか?」を参照)
- そのパターンに関する優先ルールを確認します
- コード例について、
rules/内の該当するルールファイルを読みます - 安全なパターンを適用するか、脆弱なパターンを指摘します
何を構築していますか?
ユーザーのタスクで最も重要なルールをすばやく特定するには、以下を使用します。
| 構築するもの... | 優先ルール |
|---|---|
| チャットボット/会話型 AI | プロンプトインジェクション(LLM01)、システムプロンプトの漏えい(LLM07)、出力処理(LLM05)、無制限の消費(LLM10) |
| RAG システム | ベクトル/埋め込みの弱点(LLM08)、プロンプトインジェクション(LLM01)、機密情報の開示(LLM02)、誤情報(LLM09) |
| ツールを使う AI エージェント | 過剰な自律性(LLM06)、プロンプトインジェクション(LLM01)、出力処理(LLM05)、機密情報の開示(LLM02) |
| ファインチューニング/トレーニング | データポイズニング(LLM04)、サプライチェーン(LLM03)、機密情報の開示(LLM02) |
| LLM を活用した API | 無制限の消費(LLM10)、プロンプトインジェクション(LLM01)、出力処理(LLM05)、機密情報の開示(LLM02) |
| コンテンツ生成 | 誤情報(LLM09)、出力処理(LLM05)、プロンプトインジェクション(LLM01) |
カテゴリ
重大な影響
- LLM01:プロンプトインジェクション(
rules/prompt-injection.md)- 直接的および間接的なプロンプト操作を防止します - LLM02:機密情報の開示(
rules/sensitive-disclosure.md)- PII、認証情報、専有データを保護します - LLM03:サプライチェーン(
rules/supply-chain.md)- モデルのソース、トレーニングデータ、依存関係を保護します - LLM04:データおよびモデルのポイズニング(
rules/data-poisoning.md)- トレーニングデータの操作やバックドアを防止します - LLM05:不適切な出力処理(
rules/output-handling.md)- 後続処理で使用する前に LLM の出力をサニタイズします
高い影響
- LLM06:過剰な自律性(
rules/excessive-agency.md)- LLM の権限、機能、自律性を制限します - LLM07:システムプロンプトの漏えい(
rules/system-prompt-leakage.md)- システムプロンプトが開示されないよう保護します - LLM08:ベクトルと埋め込みの弱点(
rules/vector-embedding.md)- RAG システムと埋め込みを保護します - LLM09:誤情報(
rules/misinformation.md)- ハルシネーションや誤った出力を軽減します - LLM10:無制限の消費(
rules/unbounded-consumption.md)- DoS、コスト攻撃、モデルの窃取を防止します
OWASP/MITRE の参照情報を含む完全な索引については、rules/_sections.md を参照してください。
クイックリファレンス
| 脆弱性 | 主な予防策 |
|---|---|
| プロンプトインジェクション | 入力の検証、出力のフィルタリング、権限の分離 |
| 機密情報の開示 | データのサニタイズ、アクセス制御、暗号化 |
| サプライチェーン | モデルの検証、SBOM、信頼できるソースのみを使用 |
| データポイズニング | データの検証、異常検知、サンドボックス化 |
| 出力処理 | LLM を信頼できないものとして扱う、出力のエンコード、クエリのパラメーター化 |
| 過剰な自律性 | 最小権限、人間による介在、拡張機能の最小化 |
| システムプロンプトの漏えい | プロンプトに秘密情報を含めない、外部ガードレール |
| ベクトル/埋め込み | アクセス制御、データの検証、モニタリング |
| 誤情報 | RAG、ファインチューニング、人間による監視、相互検証 |
| 無制限の消費 | レート制限、入力の検証、リソースのモニタリング |
主要原則
- LLM の出力を決して信用しない - 使用前にすべての出力を検証し、サニタイズします
- 最小権限 - LLM システムに必要最小限の権限を付与します
- 多層防御 - 複数のセキュリティ対策を重ねます
- 人間による監視 - 影響の大きい操作には承認を必須とします
- 監視とログ記録 - 異常を検出するため、すべての LLM とのやり取りを追跡します
参考資料
コメント
Markdown 対応