
はじめに
こんにちは!私はプラットフォーム・サービス部のステイサムです。
前回、OWASP Top 10 2025について触れましたが、その際にOWASPの関連資料を確認する中で目に留まったのが、OWASP Top 10 for LLM Applications 2025です。生成AIやLLMの活用が広がるにつれて、従来のWebアプリケーションとは異なるセキュリティリスクへの対応も求められるようになっており、本ガイドラインでは、LLMを組み込んだアプリケーションにおける主要なリスクが10のカテゴリにまとめられています。今回はその概要と、各カテゴリで取り上げられているリスク・予防法のポイントを整理します。
OWASPとは
OWASP(Open Worldwide Application Security Project)は非営利のコミュニティであり、セキュリティに関する啓発活動を行っています。代表的なプロジェクトが、OWASP Top 10です。
OWASP Top 10とOWASP Top 10 for LLM Applicationsの違い
まずは、OWASP Top 10とOWASP Top 10 for LLM Applicationsの違いを簡単に確認しておきます。OWASP Top 10がWebアプリケーションにおけるリスクを対象としているのに対し、OWASP Top 10 for LLM ApplicationsはLLMを組み込んだアプリケーション特有のリスクを対象としています。前者ではアクセス制御の不備や認証の欠陥、セキュリティ設定ミスなどがテーマとなりますが、後者では、プロンプトインジェクションや誤情報の生成といった生成AI・LLM特有のリスクが取り上げられています。
OWASP Top 10 for LLM Applications 2025

各カテゴリの日本語訳は 公式資料 を参考にしています。
LLM01: Prompt Injection/プロンプトインジェクション
ユーザーが入力した内容や、AIが参照した外部データに含まれる指示によって、開発者が意図した動作から逸脱させるリスクです。不正アクセスの許可、有害なコンテンツの生成などを引き起こす可能性があります。
リスク
- チャットボットをだまして、本来参照できない個人情報を取得してメール送信を実行する
- RAGで参照する文書に悪意のある指示を埋め込み、回答を操作する
- テキストや画像内に悪意のある指示を隠し、マルチモーダルAIの出力を操作する
予防法
- LLMから呼び出せる外部ツールやシステムの権限を必要最小限に制限する
- 信頼できない外部コンテンツを分離し、AIへの影響を制限する
- 入出力フィルタリングを実装し、不正な指示や出力を検知する
LLM02: Sensitive Information Disclosure/機密情報の開示
AIが本来開示すべきではない情報を外部に漏らすリスクです。不正なデータアクセスやプライバシー侵害、知的財産の漏洩の恐れがあります。
リスク
- ユーザーとの対話中に、他人の個人情報や機密情報が回答として出力される
- 独自のアルゴリズムや学習データが推測・抽出される
- 企業の機密情報や業務データが回答に含まれる
予防法
- ユーザーデータや機密情報が取り込まれないよう、事前にデータのサニタイズやマスキングを行う
- 最小特権の原則に基づいて、AIの機密データへのアクセスを必要最小限に制限する
- 機密情報を入力しないよう注意喚起を行い、安全な使用方法を教育する
LLM03: Supply Chain/サプライチェーン
LLMアプリケーションが利用する外部のモデルや学習データ、ライブラリなどを経由して、脆弱性や不正な機能が持ち込まれるリスクです。従来のソフトウェア開発ではOSSライブラリの脆弱性管理が主な課題でしたが、LLMではモデルやデータそのものも管理対象になります。信頼できないモデルやデータセットを利用した結果、回答内容が操作されたり、バックドアが埋め込まれたりするリスクを伴います。
リスク
- 脆弱なサードパーティ製コンポーネントを悪用され、システム全体が侵害される
- 導入した外部モデルに、悪意のあるバックドアやバイアスが仕込まれている
- 利用規約やプライバシーポリシーを十分に確認せず利用した結果、機密データがモデルの学習に利用される
予防法
- 脆弱性スキャンやパッチ適用を実施し、古いライブラリやコンポーネントを継続的に管理する
- 外部モデルを導入する際は、レッドチーム演習や評価を実施し、安全性を十分に検証する
- 利用規約やプライバシーポリシーを確認し、信頼できるサプライヤーのみを利用する
LLM04: Data and Model Poisoning/データとモデルポイズニング
事前学習やファインチューニングの過程で悪意のあるデータや改ざんされたモデルが取り込まれ、モデルの動作にバイアスやバックドアが埋め込まれる問題です。これにより、モデルの性能低下や誤った情報の生成、システムへの悪影響などを引き起こす可能性があります。
リスク
- 学習データに悪意のあるデータが混入し、偏った出力や誤情報が生成される
- 有害なデータの混入により、モデルの品質や信頼性が低下する
- モデルにバックドアが埋め込まれ、不正な動作を引き起こす
予防法
- データの出所や変更履歴を管理し、正当性を検証する
- 信頼できるデータソースのみを利用し、有害なデータを検出する
- モデルの挙動を継続的に監視し、異常を検知する
LLM05: Improper Output Handling/不適切な出力処理
LLMが生成した回答やコードを十分に検証せず、そのまま他のシステムやコンポーネントに渡してしまうリスクです。生成AIの出力はユーザー入力の影響を受けるため、内容を信用して処理すると、XSSやSQLインジェクション、リモートコード実行などの重大なセキュリティ事故につながります。
リスク
- LLMが生成したコードやコマンドを実行し、サーバーが不正に操作される
- LLMが生成したJavaScriptやHTMLがブラウザ上で実行され、XSSが発生する
- LLMが生成したSQL文が適切なパラメータ化なしに実行され、SQLインジェクションを引き起こす
予防法
- AIの出力を信用せず、バックエンドシステムへ渡す前に検証・サニタイズを実施する
- HTMLなどを出力する際は、利用する環境に応じた適切なエンコーディングを行う
- SQL文をそのまま実行せず、安全な方法でデータベースへアクセスする
LLM06: Excessive Agency/過剰なエージェンシー
LLMに必要以上の機能や権限、自律的な判断能力を与えてしまうことで、本来想定していない操作が実行されてしまうというリスクです。プロンプトインジェクションや誤った推論によって、AIエージェントが機密情報の取得、データの削除、メール送信などの重要な操作を勝手に実行してしまうおそれがあります。
リスク
- データ参照のみ必要なAIに、ドキュメントの編集や削除まで可能な拡張機能を与えてしまう
- AIが高い権限を持つ共通アカウントを使用し、アクセス権のない他ユーザーのファイルまで読み取る
- ファイルの削除やメールの送信など、影響の大きい操作をAIがユーザーの許可なく勝手に実行する
予防法
- AIが利用する拡張機能や機能を必要最小限に限定する
- システムやデータへのアクセス権限を最小限に制限する
- 重要な操作は、人間による承認を必須とする
LLM07: System Prompt Leakage/システムプロンプトの漏洩
モデルの動作を制御するためのシステムプロンプトに含まれる内部情報や設定内容が、悪意のあるユーザーとの対話を通じて、漏洩してしまうリスクです。システムプロンプト自体の漏洩が直接的な問題というわけではありませんが、そこに認証情報や権限情報、内部ルールなどを埋め込んでいる場合、不正アクセスやセキュリティ対策の回避を招くリスクがあります。
リスク
- システムプロンプトに含まれる認証情報やAPIキーが攻撃者に漏洩する
- 取引限度額や権限構造などの内部ルールが明らかになり、セキュリティ制御を回避する手掛かりを与える
- 禁止事項や制御ルールが把握され、プロンプトインジェクションなどによる回避を容易にする
予防法
- 認証情報やAPIキーなどの機密情報をシステムプロンプトに含めない
- 権限管理やアクセス制御は、LLMではなく外部システムで実施する
- 禁止事項やガードレールの実装をシステムプロンプトだけに依存しない
LLM08: Vector and Embedding Weaknesses/ベクトルと埋め込みの脆弱性
RAG(Retrieval-Augmented Generation)で利用されるベクトルデータベースや埋め込みデータの管理不備によって発生するリスクです。アクセス制御の不備やデータ汚染により、機密情報の漏洩や回答内容の改ざん、意図しないモデル動作を招きます。
リスク
- アクセス制御の不備により、他の組織や部署の機密情報が検索結果として表示される
- 悪意のある指示が埋め込まれたデータにより、AIの回答が操作される
- 埋め込みデータの解析により、元の文章や機密情報が復元される
予防法
- ベクトルデータベースに適切なアクセス制御を実装し、データを分離する
- 参照情報を登録する際にデータ検証を実施し、不正なデータの混入を防ぐ
- 検索履歴やデータ参照状況を記録し、不審なアクセスを監視する
LLM09: Misinformation/誤情報
AIが事実と異なる情報や根拠のない内容、偏った情報を、あたかも正しい情報であるかのように生成してしまうリスクです。ユーザーがその内容を過度に信頼すると、誤った意思決定や業務上の判断ミス、法的責任、セキュリティ事故などのトラブルにつながります。
リスク
- 誤った情報を生成し、利用者が誤った意思決定を行う
- 根拠のない情報や架空の情報を事実として回答する
- 安全でないコードや存在しないライブラリを提案し、セキュリティリスクを生じさせる
予防法
- RAGを活用し、信頼できる情報を参照して回答を生成する
- 重要な情報は人間や信頼できる情報源で確認する
- AIが生成したコードやライブラリをそのまま利用せず、レビュー・検証を実施する
LLM10: Unbounded Consumption/際限のない消費
LLMに対して過剰な入力や大量のリクエストが行われることで、計算リソースやコストが過度に消費されてしまうリスクです。サービス停止や運用コストの急増だけでなく、モデルの出力を大量に収集されることで知的財産の流出やモデル複製につながる可能性もあります。
リスク
- 大量のリクエストや巨大な入力により、サービス停止や性能低下が発生する
- 従量課金型サービスが悪用され、過大なコストが発生する
- API経由で大量のクエリを繰り返され、モデルの挙動が推測・複製される
予防法
- 入力サイズを制限し、異常に大きなリクエストを受け付けない
- レート制限や利用上限を設け、過剰な利用を防止する
- ログ監視や異常検知を実施し、不正利用を早期に発見する
まとめ
生成AIが登場して以降、プロンプトインジェクションやハルシネーションによる誤情報のリスクについてはよく耳にしていましたが、今回、資料を確認する中で、LLMを組み込んだアプリケーション特有のセキュリティ上の論点が多岐にわたることを改めて認識できました。
どのようなリスクが存在するのかを知ることは、それぞれの対策の必要性を理解することにもつながります。生成AIを安全に活用していくためにも、まずはリスクの全体像を把握することが大切であり、OWASP Top 10 for LLM Applicationsは、その第一歩として役立つガイドラインだと言えます。
OWASP Top 10と同様に、OWASP Top 10 for LLM Applicationsも定期的に更新されているため、生成AIを取り巻く環境の変化に応じて、どのようなリスクが追加・見直されていくのか、今後も注目していきたいと思います。