LLM アプリケーション向けの OWASP トップ 10 とは?

SHARE:

この記事では、Kubernetes およびクラウドネイティブアーキテクチャの文脈において、OWASP が提供するリソース(有名な OWASP Top 10 リストを含む)について詳しく解説します。また、OWASP のセキュリティおよびガバナンスチェックリストを、LLM ワークロードのセキュリティ確保に効果的に適用する方法についても検討します。これは、LLM アプリケーション向けの OWASP Top 10 と言えます。

2022年末に広く利用可能になった事前トレーニング済みのチャットボットの登場をきっかけに、大規模言語モデル(LLM)への関心は急激に高まっています。LLMの力を活用したいと考える企業は、迅速にLLMを業務や顧客向けサービスに統合しています。しかし、LLMの急速な普及は、堅牢なセキュリティ対策の開発を凌駕しており、多くのアプリケーションが重大なリスクにさらされています。

学ぶ内容

  • OWASP とは - そしてそのセキュリティガイダンスをLLM に適用する方法

  • AI ワークロードのセキュリティを維持するためのセキュリティガバナンスのベストプラクティス

  • AIセキュリティに関する議論が進化しています - 参加する方法をご覧ください

OWASPとは何ですか、または誰ですか?

「Open Web Application Security Project®(OWASP)は、ソフトウェアのセキュリティ向上に取り組む非営利団体です。コミュニティ主導のオープンソースソフトウェアプロジェクト、世界中に数百ある支部、数万人の会員、そして最先端の教育・トレーニングカンファレンスを通じて、OWASP財団は開発者や技術者がウェブのセキュリティを確保するための情報源となっています。」

OWASP.org

OWASP の紹介で述べたように、OWASP の活動は 3 つのカテゴリーに分類されます。

  • ツールおよびリソース
  • コミュニティおよびネットワーク
  • 教育およびトレーニング

Kubernetes 向けの OWASP トップ 10

前回の投稿では、クラウドネイティブのコンテナオーケストレーションプラットフォームである Kubernetes 専用の OWASP トップ 10 の必要性について述べました。以下のコントロールは、Kubernetes を使用して本番環境で Web アプリケーションをデプロイおよびセキュリティ保護するオーケストレーションレベルに完全に焦点を当てています。

これは、クラウドプロバイダーのセキュリティ、関連するクラウドサービス、これらのサービス内の資産管理、およびアプリケーション層、クラウドイベント、またはクラウドサービスにおける潜在的なインジェクション脆弱性に関する拡張ユースケースを詳細に扱う、より広範な OWASP Top 10 for Cloud-Native Applications と混同しないでください。

2024 年にいくつかのマイナーアップデートが行われた Kubernetes OWASP Top 10 の最新バージョンには、以下の項目が含まれています。

K01: 安全でないワークロード構成

K02: サプライチェーンの脆弱性

K03: 過度に寛容な RBAC 構成

K04: 集中型ポリシーの実施の欠如

K05: 不十分なログ記録およびモニタリング

K06: 認証メカニズムの破損

K07: ネットワークセグメンテーション制御の欠如

K08: シークレット管理の失敗

K09: クラスタコンポーネントの誤設定

K10: 古い脆弱性のある Kubernetes コンポーネント

LLM ワークロードは、コンテナオーケストレーションのスケーラビリティのメリットを活用するために Kubernetes クラスタに導入されることが多いため、LLM ベースのワークロードに固有のベストプラクティスと、コンテナ、Kubernetes、クラウドなど、それらが実行されている環境との間に重複が生じることがよくあります。このことから、LLM 向けの OWASP トップ 10 を策定するのに適しています。

LLM に関する OWASP トップ 10

LLM(大規模言語モデル)に関する OWASP トップ 10 は、LLM ベースの AI テクノロジーを活用したアプリケーションやプラグインの設計および構築を担当する開発者、データサイエンティスト、セキュリティ専門家が対処すべき最も一般的な分野を優先付けしてまとめたリストです。以下では、これらの分野をリストアップし、それぞれについて簡単に説明します。

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

プロンプトインジェクションの脆弱性は、攻撃者が、システムプロンプトを直接上書きする(「ジェイルブレイク」と呼ばれる手法)か、ウェブサイトやファイルなどの外部ソースを介して間接的に、巧妙に作成された入力によって LLM を操作した場合に発生します。これにより、攻撃者は LLM の動作を制御することができ、データ漏洩、不正なプラグインの使用、またはソーシャルエンジニアリング攻撃につながる可能性があります。高度なケースでは、LLM は標準的なセキュリティ対策機能を回避して、ユーザーに警告したりセキュリティ対策を発動させたりすることなく、攻撃者の目的を助長する可能性があります。

LLM02: 不適切な出力処理

LLM によって生成された出力が、下流のシステムに渡される前に適切に検証またはサニタイズされていない場合、プログラムはビジネスに脆弱性をさらす可能性があります。プロンプト入力はLLMが生成するコンテンツを制御できるため、このリスクはユーザーに追加機能への間接的なアクセス権を与えることと類似しています。不適切な出力処理を悪用すると、XSS、CSRF、SSRF、権限昇格、リモートコード実行などの攻撃が発生する可能性があります。LLMが過剰な権限を付与されている場合、アプリケーションが間接的なプロンプトインジェクションに脆弱な場合、またはサードパーティプラグインが入力を適切に検証しない場合、影響はさらに拡大します。たとえば、LLM 出力がシステムシェルに直接入力されたり、exec や eval などの関数が実行されたりすると、リモートコード実行につながる可能性があります。

LLM03: トレーニングデータのポイズニング

ML におけるデータポイズニングとは、ファインチューニングや埋め込みプロセスで使用されるトレーニングデータまたはデータセットを改ざんし、モデルのセキュリティ、有効性、および倫理的な動作を損なうバックドアやバイアスを導入することを指します。汚染されたデータは、有害な出力、パフォーマンスの低下、または評判の失墜を引き起こす可能性があります。この攻撃は、モデルの正確な予測を生成する能力に影響を及ぼし、特に、偽造または偏ったコンテンツを含む可能性のある外部データソースがトレーニングに使用される場合、モデルの完全性に対する攻撃となります。

LLM04: モデル拒否サービス

攻撃者は、過大なリソースを消費し、ユーザーのサービス品質を低下させ、高額のコストを発生させることで、LLM を悪用する可能性があります。これは、他のウェブアプリケーションに対する DoS/DDoS 攻撃と何ら変わりません。LLM ベースのウェブアプリケーションの場合、セキュリティ上の懸念が高まっているのは、LLM が処理できるテキストの最大長である「コンテキストウィンドウ」の操作です。これにより、プログラムの予期せぬ動作が発生する可能性があります。LLM がリソース集約型アプリケーションでますます使用される中、多くの開発者はこの脆弱性に気づいていません。この脆弱性はモデルのアーキテクチャに起因し、モデルが一度に処理できる入力と出力の量を定義しています。

LLM05: サプライチェーンの脆弱性

LLMのサプライチェーンは、Kubernetesのサプライチェーンコンポーネントと同様の攻撃に対して脆弱です。悪用された古いサプライチェーンコンポーネントは、トレーニングモデルの完全性を損なう可能性があります。バイアスのかかった結果を引き起こすだけでなく、組織はこれらの脆弱性の悪用により、セキュリティ侵害やシステム障害を直接被る可能性があります。伝統的なソフトウェアの脆弱性と異なり、MLプログラムは事前トレーニングされたモデルや第三者データからのリスクを導入し、これらは改ざんや毒入り攻撃を受ける可能性があります。さらに、LLMプラグイン拡張機能は追加のリスクをもたらし、LLM07 – 不安全なプラグイン設計で指摘されているように、安全なプラグイン開発と第三者プラグインの徹底的な評価の必要性が強調されています。

LLM06:機密情報の開示

LLM アプリケーションは、その出力を通じて、機密情報、独自のアルゴリズム、または機密の詳細を不注意に公開し、セキュリティ侵害やプライバシー侵害につながる可能性があります。このリスクを軽減するには、機密性の高いユーザーデータがトレーニングモデルに入らないよう、適切なデータサニタイズを行う必要があります。データ処理およびオプトアウトの選択肢について、ユーザーに明確な利用規約で通知する必要があります。LLM の入力と出力は完全に信頼できないため、システムプロンプトに制限を追加することでデータ漏洩を削減できますが、LLM の予測不可能な性質により、これらの対策で機密情報の漏洩を常に防止できるとは限りません。

LLM07: プラグインのセキュリティ対策が不十分な設計

LLM プラグインは、ユーザーの操作時に自動的に起動する拡張機能で、特にサードパーティがホストする場合、アプリケーションの制御外で動作することがよくあります。これらのプラグインは、検証なしに自由形式の入力を受け入れるため、攻撃者が悪意のあるリクエストを送信し、データ漏洩、リモートコード実行、または権限昇格を引き起こす可能性があります。プラグインが十分なアクセス制御を欠き、認証を検証せずに他のプラグインやユーザーからの入力を盲信する場合、リスクはさらに高まります。この脆弱性は、第三者プラグインのリスクとは区別され、LLMプラグインの作成に特化した問題です。

LLM08: 過剰な自律性

これは、LLM ベースのシステムに過剰な機能、権限、または自律性が付与され、予期しないまたは曖昧な出力に対して損害を与える行動を実行できる場合に発生します。これは、幻覚、プロンプト注入、悪意のあるプラグイン、または適切に設計されていないプロンプトなどの問題によって引き起こされる可能性があります。LLM の出力を精査することに重点を置いた「安全でない出力処理」とは異なり、過度の主体性は、不十分な監視の下でシステムがアクションを実行する能力に起因します。その影響は、LLM が相互作用するシステムに応じて、機密性の侵害からシステムの整合性や可用性まで多岐にわたります。Sysdig は、実際の Web アプリケーションで過度の主体性を悪用する方法を文書化しています。

LLM09: 過度の依存

事前学習済みモデルへの過度の依存は、権威あるように聞こえるが不正確または安全でない情報を生成する際に重大な問題を引き起こす可能性があります。この問題は「confabulation」として知られています。例えば、事前学習済みモデルが欠陥のあるソースコードを生成し、適切なレビューなしに別のウェブアプリケーションに組み込まれた場合、重大なセキュリティ脆弱性が導入される可能性があります。このリスクは、厳格な監督、継続的な検証メカニズム、および潜在的な不正確さに関する明確な免責事項の必要性を浮き彫りにしています。

LLM10: モデルの盗難

悪意のある者による LLM モデルへの不正アクセスおよび盗難は、これらのモデルが貴重な知的財産であることから、深刻なセキュリティリスクとなります。LLM モデルが侵害されたり、コピーされたり、その重み付けやパラメータが抽出されたりすると、ブランドの評判に重大な損害を与えるだけでなく、攻撃者がモデルの機密データを公開する危険もあります。これらのリスクを軽減するため、組織はより厳格なアクセス制御を実施し、通信中のデータだけでなく、保管中のデータにも暗号化を適用する必要があります。OWASP Top 10 for LLMsでリストされた他の制御と同様に、LLMモデルのドリフトを適切に特定し、最終的に知的財産を保護するためには、継続的な監視が不可欠です。

セキュリティとガバナンスチェックリスト

OWASP チームは、最高情報セキュリティ責任者(CISO)およびその他のセキュリティリーダーが組織内で生成型 AI(Gen AI)技術を管理するのを支援するための「セキュリティとガバナンスチェックリスト」を導入しました。この新興技術への対応準備について懸念を抱く方が多い中、OWASP Top 10 for LLM Applications Checklist は、経営、技術、サイバーセキュリティ、プライバシー、コンプライアンス、法務の各分野にわたるガイダンスを提供しています。このリソースは、AI の急速な進歩に対応しながら、安全性の低い実装に伴うリスクを軽減したいと考えている方を対象としています。業界が、進化する脅威に対処するための「AIのガバナンスをめぐる競争」を繰り広げる中、リーダーやチームが LLM のリスクとメリットを理解し、防御を強化するための戦略を立てるのに役立ちます。

次のステップへ

OWASP Top 10 for LLM アプリケーションについて明確に理解すれば、AI ワークロードのセキュリティ対策をさらに進める準備が整います。次のステップとして、OWASP コミュニティへの参加をご検討ください。OWASP Slack ワーキンググループに登録し、#project-top10-for-llm チャンネルに参加して、最新情報を入手し、同分野の他のメンバーと協力してください。

また、当社の脅威リサーチチームが発見した LLM を標的とした攻撃「LLMjacking」に関するブログもぜひお読みください。この記事では、Kubernetes およびクラウドネイティブアーキテクチャのコンテキストで、OWASP が提供する、よく知られた OWASP Top 10 リストなどのリソースについて詳しく説明します。さらに、OWASPのセキュリティとガバナンスチェックリストをLLMワークロードのセキュリティ強化に効果的に適用する方法についても検討します。これは「OWASP Top 10 for LLM applications」と呼ぶことができます。

2022 年後半に、広く利用可能な事前トレーニング済みのチャットボットが発売されて以来、大規模言語モデル(LLM)への関心は飛躍的に高まっています。LLM の力を活用したいと考える企業は、LLM を業務や顧客対応サービスに迅速に導入しています。しかし、LLM の急速な普及は、堅牢なセキュリティ対策の開発を凌駕しており、多くのアプリケーションが重大なリスクにさらされています。当社の脅威リサーチチーム