LLMアプリケーション向け OWASP Top 10

LLMアプリケーション向け OWASP Top 10

LLMにおけるOWASP Top 10とは

OWASP Top 10リスト は、OWASPアプリケーションセキュリティプロジェクト コミュニティによって策定されたセキュリティフレームワークであり、大規模言語モデル(LLM) システムにおける最も重大なリスクを特定するものです。これは、AIを活用したアプリケーションにおける一般的な攻撃パターンやセキュリティ上の弱点を定義し、組織がより安全な生成AIシステムを構築するための指針となります。これらのリスクをより深く理解するには、それぞれを個別に確認することが重要です。

プロンプトインジェクション

プロンプトインジェクション攻撃は、攻撃者が システムプロンプトやユーザー入力を操作 して、LLMの指示を上書きする際に発生します。攻撃者は、機密データを漏洩させたり、ポリシーを無視させたり、有害なLLM出力を生成させたりするようモデルを誘導する可能性があります。プロンプトインジェクションを防ぐには、入力の検証とレスポンスの継続的な監視が不可欠です。

安全でない出力処理

安全でない出力処理は、アプリケーションが 検証なしでLLMの出力を直接信頼する 場合に発生します。コード、SQL、またはマークアップとして使用される出力は危険となる可能性があります。攻撃者はこれを悪用し、リモートコード実行、クロスサイトスクリプティング、または不正操作を引き起こすことがあります。

学習データ汚染

学習データ汚染とは、悪意のあるデータや偏ったデータを 学習済みモデルやトレーニングデータセットに注入することを指します。これにより、隠れたバックドア、偏った出力、またはモデル利用全体にわたって持続する不整合な動作が生じる可能性があります。

モデルのサービス拒否

モデルの サービス拒否(DoS) とは、高コストまたは反復的なプロンプトでLLMシステムを過負荷状態にする 攻撃を指します。これらの攻撃は計算コストを増大させ、パフォーマンスを低下させ、レート制限を超過させることで、正当なユーザーへのサービス提供を妨害する可能性があります。

サプライチェーン脆弱性

サプライチェーン脆弱性は、サードパーティ製のオープンソースモデル、API、データセット、またはプラグインを通じて持ち込まれるリスク から生じます。侵害された依存関係や未検証のコンポーネントは、LLMアプリケーションに隠れたセキュリティ欠陥を持ち込む可能性があります。

機密情報漏洩

機密情報漏洩は、LLMが APIキー、内部文書、その他の機密データなどを意図せず公開してしまう 場合に発生します。これは多くの場合、不適切なデータ処理、安全でないプロンプト、または十分に検証されていない統合によって引き起こされます。

安全でないプラグイン設計

安全でないプラグイン設計とは、LLM と外部ツール間の セキュリティが不十分な統合 を指します。不適切なアクセス制御、過剰な権限、または安全でないAPIによって、攻撃者がモデル経由で不正な操作を実行できる可能性があります。

過剰な自律性

過剰な自律性は、LLMに 人間の監督なしで現実世界の操作を実行する過度な権限 が与えられている場合に発生します。これにより、金融、通信、インフラなどのシステムで意図しない操作が行われるリスクが高まります。

過信

過信とは、ユーザーが 検証なしに大規模言語モデル(LLM)の出力を全面的に信頼してしまう 状況を指します。モデルはハルシネーションを起こしたり、不正確な情報を生成したりする可能性があるため、盲目的な信頼はセキュリティ、運用、またはコンプライアンス上の問題につながる可能性があります。

モデル窃取

モデル窃取とは、独自LLMの 不正な抽出または複製 を指します。攻撃者は API悪用、クエリベースの再構築、またはリバースエンジニアリングを利用して、学習済みモデルやモデルの挙動を盗み出す可能性があります。

組織はどのようにLLMを保護できるのか?

入力検証と出力制御

組織は、プロンプトインジェクション攻撃のリスクを低減し、LLMの出力が実行または表示される前に安全であることを確認するために、すべてのユーザー入力を検証する必要があります。LLMは入力を予測不可能な形で解釈する可能性があるため、その応答は常に信頼されていないものとして扱い、慎重に確認するべきです。これは特に、出力がコード、データベース、またはシステムコマンドと連携する場合に重要であり、未検証の応答がセキュリティ脆弱性や意図しない操作を引き起こす可能性があります。

アクセス制御と最小権限

LLMに接続されたツール、API、およびプラグインには、最小権限の原則に従い、その機能に必要最小限の権限のみを付与する必要があります。権限を制限することで、プロンプトが侵害された場合や統合が悪用された場合の被害を最小限に抑えることができます。強力なアクセス制御を実装することで、各ユーザーまたはコンポーネントが明示的に許可された操作のみを実行できるようになり、セキュリティリスクをさらに軽減できます。

データ分離とプライバシー保護

機密データは一般的なLLMプロンプトから分離する必要があります。組織は、モデルのコンテキストウィンドウ内に機密情報を含めることを避け、暗号化および厳格なデータガバナンスポリシーを適用するべきです。これらの対策により、機密情報漏洩のリスクを軽減し、規制遵守を維持し、ユーザーおよび企業データを意図しない漏洩から保護できます。

モニタリングと異常検知

継続的なログ収集とモニタリングによって、異常な利用状況を検出できます。たとえば、高コストクエリの繰り返し、不審なプロンプト動作、または異常なAPIスパイクなどが検知可能です。早期発見により、サービス拒否(DoS)攻撃や悪用行為の影響を軽減できます。

AIシステム向けの安全な開発ライフサイクル

AIアプリケーションは、レッドチーミング、敵対的プロンプトテスト、依存関係レビューを含む、体系的なセキュリティテストプロセスに従うべきです。学習データ汚染、LLMセキュリティ、および統合の定期監査は、新たなリスクの特定に役立ちます。

WAF による保護

LLM APIおよびAIゲートウェイの前段には、悪意のあるトラフィックをフィルタリングするために WAF を導入するべきです。WAFは、プロンプトインジェクション攻撃のブロック、レート制限の適用、自動化された悪用やLLMエンドポイントを狙ったサービス拒否攻撃の軽減に役立ちます。

FAQ

なぜLLM アプリケーション向けOWASP Top 10は重要なのですか?

LLMアプリケーション向け OWASP Top 10 は、組織が重要なAIセキュリティリスクを特定・優先順位付けし、安全な開発プラクティスを改善し、大規模言語モデルシステム、API、プラグイン、およびサードパーティ統合における脆弱性を低減するのに役立ちます。

LLMのセキュリティ脆弱性は、従来のアプリケーション脆弱性とどう異なりますか?

LLMのセキュリティ脆弱性は、予測不可能な言語挙動、プロンプト操作、および潜在的なデータ漏洩から生じます。一方、従来の脆弱性は、通常、特定のコードエラー、設定ミス、またはネットワークの弱点を標的とします。

LLMアプリケーションにおける最も一般的なセキュリティリスクは何ですか?

プロンプトインジェクション、安全でない出力処理、学習データ汚染、機密情報漏洩、過剰な自律性、およびサプライチェーン脆弱性は、大規模言語モデルアプリケーションに影響を与える最も一般的なセキュリティリスクの一部です。

プロンプトインジェクションとは何ですか?

プロンプトインジェクションは、細工されたユーザー入力によってLLMを操作する攻撃手法です。このような攻撃により、モデルがシステムプロンプトを無視したり、自然言語命令の解釈を悪用して機密情報を漏洩したりする可能性があります。