OWASP Top 10 for LLM Applications 2026 の十項目
OWASP Top 10 for LLM Applications 2026 の十項目を、設計を確かめる四つの問いに対応づけ、2025 年版からの変更と、権限分離・出力の検証・人の承認・監視と上限の四つの対策の水準を整理します。
要点
LLM アプリケーションのセキュリティは、モデルへの入力と出力を信頼できないものとして扱う設計が基本です。OWASP Top 10 for LLM Applications 2026 の十項目は、プロンプトの入口、学習と検索のデータ、出力の扱い、権限と自律性、資源の上限に整理できます。2026 年版は十項目の顔ぶれを 2025 年版から変えず、順位の変動と、System Prompt Leakage から Hidden Context Exposure への改名と範囲の拡大があります。設計の確認は、何を読めるか、何を実行できるか、出力がどこへ届くか、どこで止められるかの四つの問いで進めます。対策は権限分離、出力の検証、人の承認、監視と上限の四つの水準を重ねます。
このページで分かること
- 設計を確かめる四つの問い(何を読むか、何ができるか、出力はどこへ行くか、上限はあるか)とその順番
- 2026 年版の十項目を設計のどこで確かめるかに対応づけた一覧と、2025 年版からの変更(順位、改名、吸収)
- 四つの対策の水準と、それぞれでよくある詰まりと避け方
対象と前提
LLM アプリケーションとは、大規模言語モデル(LLM)を組み込み、利用者の入力や外部のデータをもとに応答や処理を行うソフトウェアです。モデルは自然言語の入力で挙動が変わり、「運用者の指示」と「処理対象のデータ」を構造的に区別しません。そのため、モデルへの入力も出力も信頼しない前提で設計します。リスクの分類には OWASP Top 10 for LLM Applications 2026 を使います。この節は第 1 章の三つの層とプロンプトインジェクションの仕組みを前提にし、十項目を設計のどこで確かめるかに対応づけます。
設計を確かめる四つの問い
設計を見るときは、次の四つの問いに順に答えます。前の問いの答えが、後の問いで決まる被害の上限を左右します。
- 何を読むか。 利用者の入力のほかに、Web ページ、文書、メール、ツールの戻り値、画像・音声などの多様式の入力、永続メモリ、検索コーパスなど、運用者が管理していない内容をモデルが読む経路を一覧にします。1 つでもあれば、間接的なプロンプトインジェクションの入口として扱います。
- 何ができるか。 モデルの出力を起点に呼び出される機能(検索、書き込み、送信、決済)と、それぞれに与えた権限を一覧にします。読み取りだけの機能と、取り消せない操作を分けます。
- 出力はどこへ行くか。 応答が画面に表示されるだけか、HTML、SQL、シェル、他の API、端末やログ、外部参照を自動で取得する描画器へ渡るかを確かめます。渡る先ごとに、検証とエンコードの責任はアプリケーション側にあります。
- 上限はあるか。 入力の大きさ、呼び出し回数に加えて、トークン量と費用の上限、タイムアウト、利用者ごとのクォータの有無を確かめます。
十項目と確かめる場所
| ID | 名称 | 主に確かめる問い |
|---|---|---|
| LLM01:2026 | Prompt Injection | 何を読むか |
| LLM02:2026 | Sensitive Information Disclosure | 何を読むか、出力はどこへ行くか |
| LLM03:2026 | Excessive Agency | 何ができるか |
| LLM04:2026 | Supply Chain | 何を読むか(モデル、データ、パッケージ、成果物の出所) |
| LLM05:2026 | Data and Model Poisoning | 何を読むか(学習・微調整と埋め込みのデータ) |
| LLM06:2026 | Unbounded Consumption | 上限はあるか |
| LLM07:2026 | Misinformation | 出力はどこへ行くか(根拠付けと行動前の確認) |
| LLM08:2026 | Hidden Context Exposure | 何ができるか(隠れた文脈に秘密や認可を置かない) |
| LLM09:2026 | Vector and Embedding Weaknesses | 何を読むか(テナント間の検索範囲の分離) |
| LLM10:2026 | Improper Output Handling | 出力はどこへ行くか |
2025 年版からの変更
十項目の顔ぶれは 2025 年版と同じで、新設と廃止はありません。順位は、Excessive Agency が 6 位から 3 位へ、Unbounded Consumption が 10 位から 6 位へ、Misinformation が 9 位から 7 位へ上がり、Supply Chain が 3 位から 4 位へ、Data and Model Poisoning が 4 位から 5 位へ、Vector and Embedding Weaknesses が 8 位から 9 位へ、Improper Output Handling が 5 位から 10 位へ下がりました。Prompt Injection と Sensitive Information Disclosure は 1 位と 2 位のままです。
名称の変更は 1 件で、LLM07:2025 System Prompt Leakage が LLM08:2026 Hidden Context Exposure になり、システムプロンプトに限らず、開発者の指示、取得した方針文、ツールや関数のスキーマなど、利用者に見せない制御用の文脈の全体へ範囲が広がりました。新しい主題は項目を立てずに既存の項目へ吸収されています(画像や音声を介した注入は LLM01、モデル成果物のすり替えは LLM04、微調整による改変は LLM05、生成コードの安全性は LLM10)。順位は実務者の投票を主、公開された事故記録の分類を従として決めたと説明されています。2025 年版の項目ごとのページは Web で読める参照先として残っていますが、本書は 2026 年版を軸にします。
対策の四つの水準
対策は四つの水準に分かれます。どれか 1 つで防ぐのではなく、すべてを置いたうえで、発生時の被害を権限と承認の設計で抑えます。
権限分離
モデルと、モデルが呼び出す機能やデータの権限を分けます。認証情報はアプリケーション側に置いてモデルに渡さず、認可はモデルに委ねずに下流のシステムで行います(完全仲介。OWASP LLM03:2026)。よくある詰まりは、運用者の権限をそのままエージェントに与えることです。機能ごとに最小の権限の資格情報を用意し、既定を読み取り専用にすると、権限を広げる判断が記録に残ります。
出力の検証
モデルの出力は、見知らぬ利用者の入力と同じ扱いにします。出力形式を定めて機械的に確かめ、渡す先に応じてエンコードし、データベース操作はパラメータ化します(OWASP LLM10:2026)。渡す先には HTML や SQL のほか、制御文字をそのまま解釈する端末やログ、画像や外部参照を自動で取得する描画器も含めます。形式だけの検証は、形式どおりの危険な値を通します。渡す先ごとに許可する値の範囲を先に決めます。
人の承認
送金、削除、外部への送信など、取り消せない操作や影響が外に及ぶ操作は、モデルの出力だけで実行せず人の承認を挟みます(OWASP LLM01:2026、LLM03:2026)。承認を細かく求めすぎると、確認せずに承認する習慣がつきます。操作の種類ごとに承認の要否を決め、承認画面には何が起きるかを具体的に示します。
監視と上限
入力の大きさ、呼び出し回数、トークン量と費用、タイムアウトに上限を置き、利用者ごとのクォータを設けます(OWASP LLM06:2026)。記録は最終の応答だけでなく、どの入力からどのツール呼び出しが生じたかをたどれる形にします。上限と記録は発生を防ぎませんが、被害の程度と原因の特定に効きます。
リスク管理の枠組みとの関係
組織としてのリスク管理には NIST AI RMF 1.0(Govern、Map、Measure、Manage の四機能)と、生成 AI プロファイル(NIST AI 600-1)があります。本書では、上の十項目を Map と Measure でリスクを洗い出す材料、四つの水準を Manage で対処を決める材料として位置づけます。2026 年版の付録 A には、各項目を AI RMF と AI 600-1 に版を固定して対応づけた表があります。