OWASPから学ぶLLM/生成AIのセキュリティモデルとソリューション
この記事は、Cyber-sec+ Advent Calendar 2024の3日目の記事です。
はじめに(この記事について)
2024年10月24日にOWASPから公開された「LLM and Generative AI Security Solutions Landscape」(Version Q4 2024)の和訳をもとに、大規模言語モデル(LLM)/生成AIアプリケーションに関するセキュリティモデルと、脅威に対するセキュリティソリューションの理解を深めることを目的とした記事になります。本章以降はドキュメントの和訳を記載しており、筆者の補足や感想を黄背景のinformation形式で追記しています。(特別LLMや生成AIに詳しいわけではないのでご容赦ください。)
ドキュメント中の図およびソリューション一覧(Landscape Solution Matrix)については省略をしているため、必要に応じて元のドキュメントと併せてご覧ください。なお、和訳は筆者が自己理解のために行ったものであり、誤訳や不正確な解釈が存在する可能性があることをご了承ください。
この記事は下記プロジェクトおよび資料に帰属しており、CC BY-SA 4.0(クリエイティブ・コモンズ 表示-継承 4.0 国際ライセンス)の元で公開します。
- OWASP Top 10 for LLMs ǀ LLMSecOps Solutions Landscape
- OWASP Top 10 for LLMs ǀ CyberSecurity Solution and LLMSecOps Landscape Guide
対象読者
大規模言語モデル(LLM)や生成AIアプリケーションの安全性確保に向けた戦略策定に注力している開発者、アプリケーションセキュリティの専門家、DevSecOpsチーム、MLSecOpsチーム、データエンジニア、データサイエンティスト、CISO、セキュリティリーダーなど、多様な読者を対象としている。本ドキュメントでは、LLMアプリケーションのセキュリティを確保するために利用可能なソリューションのリファレンスガイドを提供し、堅牢で安全なAIアプリケーションを構築するために必要な知識とツールを提供する。
目的
本ドキュメントは、「OWASP Top 10 for Large Language Model(LLM)Applications」及び 「CISO Cybersecurity & Governance Checklist」の補足資料となるものである。主な目的は、特定されたリスクを対処し、セキュリティプログラムを強化しようとする組織にリファレンスリソースを提供することである。すべてを網羅するリソースとして設計されているわけではないが、主要なセキュリティカテゴリーと新たな脅威領域に基づいて調査された視点を提供する。最も影響力のある既存のカテゴリーと新たなカテゴリーを捉える。適用可能なテクノロジーソリューション領域を分類、定義、調整し、新たなLLMおよび生成AIの脅威状況と一致させることで、調査作業を簡素化し、ソリューションのリファレンスガイドとして機能することを目的としている。
スコープ
本ドキュメントの範囲は、開発からデプロイ、使用まで、LLMと生成AIのライフサイクルのセキュリティに対処するソリューションカテゴリーの共通定義を作成することである。これは「OWASP Top 10 for LLM」と「CISO Cybersecurity and Governance Checklist」をサポートするものである。これを実現するために、本ドキュメントでは、最初のフレームワークとカテゴリーを定義する。オープンソースのソリューションとソリューションプロバイダが提供するソリューションの両方を利用し、各カテゴリーをサポートする例として、提供内容を具体的な対応領域に適合させる。
はじめに
生成AIの採用、利用、アプリケーション開発の拡大にともない、組織の戦略策定や投資に影響を与える新たなリスクが発生している。これらのリスクが進化するにつれて、そのリスクを軽減するソリューション、テクノロジー、フレームワーク、分類法も進化する。セキュリティリーダーの優先順位付けを支援するためには、新たなテクノロジーとソリューション領域に関する話を、AIセキュリティソリューションがビジネスにおいてどのような成果を残すかを明確に理解した上で、適切に整合させる必要がある。そのためセキュリティリーダーの予算編成を支援するためには、AIセキュリティソリューションのビジネス成果を適切に定義する必要がある。
多くの組織は、脆弱性管理システム、アイデンティティアクセス管理(IAM)ソリューション、エンドポイントセキュリティ、動的アプリケーションセキュリティテスト(DAST)、観測可能性プラットフォーム、安全なCI/CD(継続的インテグレーション/継続的デプロイメント)ツールなど、さまざまなセキュリティツールに既に多額の投資をしている。しかし、これらの従来のセキュリティツールは、AIアプリケーションの複雑性に完全に対応するには不十分である可能性があり、攻撃者が悪用できる保護のギャップが生じる可能性がある。例えば、従来のセキュリティツールは、LLMや生成AIアプリケーションに特有のデータセキュリティや機密情報の漏洩保護に十分対応できない可能性がある。これには、プロンプト、出力、およびモデルのトレーニングデータ内の機密データを保護する課題や、暗号化、再編集、アクセス制御メカニズムなどの特定の緩和戦略が含まれるが、これらに限定されない。
LLMファイアウォール、AI固有の脅威検出システム、セキュアなモデル展開プラットフォーム、AIガバナンスフレームワークなどの新たなソリューションは、AI/MLアプリケーション特有のセキュリティニーズに対応しようとしている。しかし、AI/MLテクノロジーとそのアプリケーションの急速な進化は、ソリューションのアプローチを爆発的に増加させ、組織がセキュリティ予算をどこに配分すべきかを判断する際に混乱が増すばかりである。
セキュリティソリューションの定義
LLMのツールとインフラストラクチャーのソリューションランドスケープを特徴付けるには、これまでに多くのアプローチがあった。LLMアプリケーションの計画、開発、デプロイ、運用のライフサイクル全体にわたるセキュリティに焦点を当てたソリューションランドスケープを作成するにあたり、大規模言語モデルにおけるDevSecOpsの定義と関連するソリューションランドスケープのカテゴリーを開発するため、4つの主要なインプット分野に焦点を当てた。
ランドスケープの考慮事項
- アプリケーションの種類と範囲 - アプリケーションとLLM環境(as-a-service、セルフホスト、カスタムビルド)の複雑さに基づき、必要な人材、プロセス、ツールに影響を与える。
- 新しいLLMSecOpsプロセス - これは現在進行中であるが、多くの組織は、既存のDevOpsとMLOps、および関連するセキュリティプラクティスを適用させ、採用しようとしている。LLMアプリケーションの開発プロセスが成熟し始めるにつれて、我々の定義も進化していくだろう。
- 脅威とリスクのモデリング - LLMシステムやアプリケーションの使用がもたらすリスクや、「OWASP Top 10 for LLMs and Generative AI Applications」で説明されているような悪用がもたらすリスクを理解することは、セキュリティ態勢を改善し、さまざまな攻撃に対抗するためにどのソリューションが最適かを理解するための鍵となる。
- 新たなソリューションの追跡 - 既存のセキュリティソリューションの多くは、LLM開発のワークフローやユースケースをサポートするように適応しているが、新たな脅威の性質と進化する技術やアーキテクチャを考慮すると、LLMに特化した新しいタイプのセキュリティソリューションが必要になる。
LLMアプリケーションのカテゴリーとセキュリティの課題
企業は何十年もの間、機械学習をアプリケーションに活用してきた。そのためには、データサイエンスの詳細な専門知識と、大規模なモデルトレーニングが必要とされることが多かったが、生成AIはこれを変えた。特に、大規模言語モデル(LLM)は、機械学習技術を広く身近なものにした。わかりやすい言葉で動的に対話できる能力は、新しいクラスのデータ駆動型アプリケーションやアプリケーション統合の作成が可能になった。さらに、従来の開発者やデータサイエンティストの高度なスキルに限定されることなく利用できるようになった。事前に訓練されたモデルによって、プログラミングやセキュリティに触れたことがあるかどうか関係なく、ほぼ誰でも複雑な計算タスクを実行できるようになった。自然言語処理(NLP)モデルは、データサイエンスの詳細な専門知識と大規模なモデルトレーニングを必要とすることが多かったからである。
ChatGPTやその他のas-a-serviceのような事前に訓練されたas-a-serviceモデルの利用が容易になり、生成機能を可能にするTransformer技術の出現により、LLMアプリケーションアーキテクチャの4つの主要なカテゴリーが出現した:
- プロンプト
- AIエージェント
- プラグイン/拡張機能
- 複雑なアプリケーション(LLMが重要な役割を果たす大きなアプリケーション)
プロンプトアプリケーション
特定の静的な自然言語入力を用いて、大規模言語モデル(LLM)の動作をガイドし、目的の出力を生成する。この技術は、LLMに与える言い回し、文脈、指示を微調整することで、ユーザーとモデル間のやり取りを最適化する。このようなアプリケーションにより、ユーザーは質問や指示の出し方を工夫するだけで、さまざまなタスクを達成できるようになる。
主な特徴
- 人間とモデル/モデルと人間の相互作用と反応
- 静的プロンプトの拡張性
- 柔軟性と創造性
- シンプルさとアクセシビリティ
- 高速なプロトタイプや実験
使用例
- 実験/高速なプロトタイプ
- コンテンツ生成ツール
- テキスト要約アプリケーション
- 質問応答システム
- 言語翻訳ツール
- チャットボットとバーチャルアシスタント
セキュリティの課題
プロンプトベースのアプリケーションは、プロンプトインジェクション攻撃や脆弱なプロンプトからのデータ漏洩などのセキュリティリスクに直面している。コンテキストまたは状態管理の考慮が不足していると、意図しない出力につながり、誤用の可能性が増大する。ユーザーが生成したプロンプトは、一貫性のない回答や偏った回答を引き起こす可能性があり、コンプライアンスや倫理に反するリスクがある。これらのリスクを軽減するためには、プロンプトの完全性、強固な入力の検証、およびLLM環境の安全性を確保することが極めて重要である。
エージェントアプリケーション
大規模言語モデル(LLM)を活用して、自律的または半自律的にタスクを実行し、意思決定を行い、ユーザーや他のシステムと対話する。エージェントは、ユーザーの代わりに行動し、多くの場合、複数のステップ、統合、リアルタイムの意思決定を含む複雑なプロセスを処理するように設計されている。これらのエージェントは、自律的なレベルで動作し、常に人間が介入することなくタスクを完了させることができる。
主な特徴
- 自律性と意思決定
- 外部システムとの相互作用
- 状態管理とメモリ
- 複雑なワークフローの自動化
- 人間とエージェントのコラボレーション
使用例
- バーチャルアシスタント
- カスタマーサポートボット
- プロセスオートメーションエージェント
- データ分析および報告エージェント
- インテリジェントパーソナライゼーションエージェント
- セキュリティおよびコンプライアンスエージェント
セキュリティの課題
エージェントアプリケーションは、自律性と様々なシステムへアクセスするため、悪用を防ぐために慎重にセキュリティを確保する必要がある。エージェントアプリケーションは、不正アクセス、複数のシステムとの相互作用による悪用リスクの増大、意思決定プロセスの脆弱性といったセキュリティ上の課題に直面している。もし何者かが自律型エージェントをコントロールするようになれば、特に重要なシステムにおいては深刻な結果を招きかねない。これを防ぐための強固なアクセス制御と暗号化方法の確保は不可欠である。エージェントは機密情報を扱うことが多いため、データの完全性と機密性を確保することは非常に重要であり、静止時、動作中、安全なAPIを介したアクセスなど、すべての段階でデータを保護することが重要である。また、エージェントの自律性は、意図しない、あるいは有害な決定を下すリスクをもたらす。これらのセキュリティリスクを軽減するためには、強固な認証、暗号化、モニタリング、フェイルセーフメカニズムが不可欠である。エージェントのライフサイクル全体(設計、開発、デプロイ、意思決定の可視化)を監視する可観測性とトレーサビリティのソリューションは、人間が関与してリアルタイムに修正できるようにする必要がある。
LLMプラグイン、拡張機能
LLMを既存のアプリケーションやプラットフォームに統合し、拡張性や新機能を提供できるようにする拡張機能やアドオンのことである。プラグインは通常、LLMとアプリケーションの橋渡しをし、シームレスな統合を促進する。例えば、言語モデルをワードプロセッサに追加して文法を修正したり、顧客関係管理(CRM)システムと統合してメールを自動で応答したりできる。エージェントアプリケーションと、より大きなアプリケーションのコンポーネントであることが多いプラグインや拡張機能を区別することは難しいかもしれないが、1つの尺度は、それがデプロイされ使用されるかどうかである。例えば、プラグインは、APIを通して明示的に呼び出されるか、LLMプラグインや拡張フレームワークの一部として呼び出される、再利用のために設計されたビルド済みのエージェントであり、定期的にバックグラウンドで実行されるカスタムコードとは異なる。
主な特徴
- モジュール性と柔軟性
- シームレスな統合
- 課題別にフォーカスされている
- デプロイと利用のしやすさ
- 迅速なアップデートとメンテナンス
使用例
- コンテンツ生成ツール
- テキスト要約アプリケーション
セキュリティの課題
機密データや重要なシステムとやり取りするプラグインは、セキュリティの脆弱性を注意深く検証する必要がある。設計が不十分なプラグインや悪意のあるプラグインは、データ漏洩や不正アクセスを引き起こす可能性がある。LLMプラグインは互換性の問題などの課題に直面している。アップデートによって脆弱性が混入する可能性があり、機密性の高いシステムとの統合はデータ漏洩のリスクを高める。セキュアなAPIとのやり取り、定期的なアップデート、強固なアクセス制御の確保は極めて重要である。リソースを大量に消費するプラグインはパフォーマンスを低下させ、悪用される危険性がある。
複雑なアプリケーション
高度な機能とソリューションを提供するために、中心的なコンポーネントとして大規模言語モデル(LLM)を深く統合した高度なソフトウェアシステムである。これらのアプリケーションは、包括的なスコープ、スケーラビリティ、複数のテクノロジーとコンポーネントの統合を特徴としている。これらのアプリケーションは通常、複雑な問題を解決するために設計され、多くの場合、企業環境において、大規模な開発、エンジニアリング、および継続的なメンテナンスを必要とする。
主な特徴
- マルチコンポーネントアーキテクチャは、人間以外のシステムからのプロンプトを処理するように設計されている
- 多くの場合、他のモデルを含む複数の統合を使用する
- マルチコンポーネントアーキテクチャ
- スケーラビリティとパフォーマンス
- 高度な機能とカスタマイズ性
- エンドツーエンドのワークフロー自動化
使用例
- 法務文書分析プラットフォーム
- 自動財務報告システム
- カスタマーサービスプラットフォーム
- ヘルスケア診断
セキュリティの課題
複雑なLLMアプリケーションは、複数のシステムとの統合や広範なデータの取り扱いにより、セキュリティ上の大きな課題に直面している。これには、APIの脆弱性、データ漏洩、敵対的攻撃などが含まれる。複雑さゆえに、設定ミスのリスクが高まり、不正アクセスやデータ漏洩につながる。コンポーネント間のコンプライアンス管理も難しい。これらのアプリケーションを高度な脅威から守り、データセキュリティを確保するためには、強固な暗号化、アクセス制御、定期的なセキュリティ監査、包括的なモニタリングが不可欠である。
LLMの開発と消費モデル
組織にとって最初に考慮すべきことの1つは、アプリケーションのタイプとプロジェクトの目標に基づいて、LLM機能を活用するアプローチを決定することである。現在、LLMベースのアプリケーションやシステムを実装する場合、開発者は主に2つのデプロイモデルから選択できる。
新しいモデルの作成
カスタムLLMのトレーニングプロセスは集中的で、多くの場合、ドメイン固有のデータセットと、望ましいパフォーマンスレベルを達成するための広範なファインチューニングをともなう。このアプローチは、詳細なデータ分析、コレクションのフォーマット、クリーニング、ラベリングなど、MLモデルを一から構築するMLOpsに似ている。このアプローチの利点の1つは、モデルが構築されたデータの系統とソースを知ることができ、その妥当性と適合性を直接証明できることである。しかし、大きな欠点は、プロジェクトの目的を満たすモデルを構築、訓練、検証するために必要なリソース、コスト、専門知識が必要となることである。カスタムLLMは、特定のタスクやドメインに最適化され、カスタマイズされたソリューションを提供し、より高い精度と組織の特定のニーズと合ったものを提供する。
既存モデルのカスタマイズ
あらかじめ訓練された「基礎」モデルは、セルフホストであれ、ChatGPTやBERTなどのサービスとして提供されるものであれ、組織にとってより利用しやすいエントリーポイントを提供する。これらのモデルはAPI経由で迅速に展開でき、ソリューションの検証や既存システムへの統合を迅速に行うことができる。このシナリオにおけるLLMOpsプロセスでは、特定のデータセットによるファインチューニングを通じたカスタマイズを重視し、モデルがアプリケーション固有の要件を満たすことを確認し、その後、堅牢なデプロイとモニタリングを行ってパフォーマンスとセキュリティを維持する。
LLMOpsとLLMSecOpsの定義
エージェント、モデル、LLM、MLアプリケーションスタックを含む、典型的な LLMアプリケーションアーキテクチャの共通見解を持つことは、アプリケーションスタックとセキュリティモデルを定義し、整合させるために極めて重要である。
クイックオペレーション入門 - LLMOpsの基盤
コラボレーション、自動化、継続的インテグレーションとデプロイメント(CI/CD)を重視するDevOpsは、効率的なソフトウェア開発と運用の基礎を築いた。ソフトウェア開発ライフサイクルを合理化することで、DevOpsはアプリケーションの迅速かつ信頼性の高いデリバリーを可能にし、開発チームと運用チーム間のコラボレーション文化を醸成する。
DataOpsはDevOpsの上に構築されており、データパイプラインはDevOpsと同様の自動化、バージョン管理、継続的モニタリングによって管理され、データライフサイクル全体にわたってデータの品質とコンプライアンスを確保する。MLOpsはまた、DevOpsの原則を機械学習にも適用し、モデル開発、トレーニング、デプロイ、モニタリングといった独自の課題に焦点を当てている。DevOpsを基盤として活用することで、DataOpsとMLOpsの両方が、データ駆動型アプリケーションと機械学習アプリケーションにおける効率性、スケーラビリティ、セキュリティ、および迅速なイノベーションを優先する堅牢なインフラストラクチャーを継承できる。
MLOpsとDataOpsは、大規模言語モデル(LLM)のライフサイクルを管理するために必要で、LLMOpsにとって重要なプロセスとインフラストラクチャーを確立するための基盤となっている。DataOpsは、データの収集、準備、保管、検索に至るまで、データパイプラインが効率的に管理されることを保証し、LLMが学習と推論に依存する高品質で一貫性のある安全なデータを提供する。MLOpsは、モデル開発、トレーニング、デプロイ、モニタリングなどの機械学習ライフサイクルを自動化し、オーケストレーションすることで、これらの原則をLLMOpsに適用する。
LLMOpsとMLOpsは、ライフサイクル管理という同じ基本原則に基づくが、大規模言語モデル(LLM)特有の要求により、その焦点と要件が大きく異なる。LLMOpsは、LLMのトレーニング、デプロイ、および管理の複雑性を含んでおり、LLMには膨大な計算リソースと洗練された処理が必要である。LLMOpsは、LLMが本番環境に効率的に統合され、パフォーマンスとバイアスが監視され、必要に応じて更新され、有効性が維持されることを保証する。この全体的なアプローチにより、LLMの導入と運用が合理化され、スケーラブルで安全であることが保証される。これには、LLMのトレーニングとファインチューニングに使用されるデータが信頼でき、改ざんされていないことを保証するための、データの検証と証明に関する考慮も含まれる。これには、データの監査と検証の技術が含まれる。
LLMOpsのライフサイクルステージ - 大規模言語モデルにおけるDevSecOpsの基盤
前述したように、LLMアプリケーションのセキュリティソリューションをソリューションガイドに整合させるために、LLMOpsプロセスを使用してソリューションカテゴリーを定義し、LLMベースのアプリケーションを開発・デプロイする際に開発者が直面している課題に整合させる。
LLMOpsのプロセスは、アプリケーション開発のために事前に訓練されたLLMモデルを使用する場合と、オープンソースやカスタムのデータセットを使用してゼロからカスタムのLLMモデルを作成する場合とで大きく異なる。まず、ライフサイクルの各フェーズにおけるステージ、典型的な開発者のタスク、およびセキュリティステップを定義する必要がある。
定義したこれらのフェーズには、スコープ/計画、モデルのファインチューニング/データ拡張、テスト/評価、リリース、デプロイ、運用、監視、ガバナンスが含まれる。これらはウォーターフォール、アジャイル、ハイブリッド、いずれのアプローチであっても、これらの各ステップを活用できる。
スコープ/計画
アプリケーションの目標を定義し、LLMが対応する特定のニーズを理解し、事前に訓練されたモデルをより大規模なシステムにどのように統合するかを決定する。このフェーズでは、要件の収集、潜在的な倫理・コンプライアンス上の考慮事項の評価、パフォーマンス、スケーラビリティ、ユーザーとのインタラクションに関する明確な目標の設定が行われる。その結果、LLMを搭載したアプリケーションを正常に実装するために必要なスコープ、リソース、スケジュールの概要を示す詳細なプロジェクト計画が作成される。
主なタスク
LLMOps | LLMSecOps |
---|---|
・データの適合性 ・モデルの選択 ・要件収集(ビジネス、技術、データ) ・タスクの特定 ・タスクの適性 |
・アクセスコントロールと認証の計画 ・コンプライアンスと規制の評価 ・データプライバシーと保護戦略 ・機密データの早期発見 ・サードパーティのリスク評価(モデル、提供者など) ・脅威のモデリング |
データ拡張とファインチューニング
特定のアプリケーションのニーズにより適合するように、事前トレーニング済みのモデルをカスタマイズする。これには、元のデータセットをドメイン固有の追加データで補強し、正確で文脈に沿った応答を生成するモデルの能力を強化することが含まれる。この強化されたデータセットでLLMを再トレーニングし、意図したユースケースに対するパフォーマンスを最適化することで、ファインチューニングが実施される。このフェーズは、LLMが対象となるドメイン特有の課題に効果的に適応し、回答精度とユーザーエクスペリエンスの両方を向上させ、ハルシネーションを少なくするために重要である。
主なタスク
LLMOps | LLMSecOps |
---|---|
・データ統合 ・Retrieval-Augmented Generation(RAG) ・ファインチューニング ・文脈内学習と埋め込み ・人間のフィードバックによる強化学習 |
・データソースの検証 ・安全なデータの取り扱い ・安全な出力処理 ・敵対的ロバスト性テスト ・モデルの整合性検証(例:シリアライズされた モデルへのマルウェアスキャン) ・脆弱性評価 |
アプリケーション開発/実験
ファインチューニングされたモデルをアプリケーションのアーキテクチャに統合する。このフェーズでは、LLMの機能を活用するために必要なインターフェイス、ユーザーインタラクション、ワークフローを構築する。開発者はさまざまな構成を試し、アプリケーション内でのモデルのパフォーマンスをテストし、ユーザーからのフィードバックや実際のシナリオに基づいて改良をしていく。この反復プロセスは、ユーザーエクスペリエンスを最適化し、アプリケーションでLLMが効果的に機能することを保証するために重要である。
主なタスク
LLMOps | LLMSecOps |
---|---|
・エージェント開発 ・実験、イテレーション(反復) ・プロンプトエンジニアリング |
・アクセス、認証、認可(MFA) ・実験のトラッキング ・LLMとアプリケーションの脆弱性スキャン ・モデルとアプリケーション間のやり取りにおけるセキュリティ ・SAST、DAST、IAST ・セキュアコーディングの実践 ・セキュアなライブラリ/コードのリポジトリ ・ソフトウェア構成分析 |
テスト/評価
アプリケーションのパフォーマンス、セキュリティ、信頼性を厳密に評価する。このフェーズでは、LLMがアプリケーションとシームレスに統合され、定義されたすべての要件を満たすことを確かめるために、機能テスト、セキュリティテスト、ユーザビリティテストなどの様々なテストを実施する。モデルの精度、応答時間、ユーザーインタラクションを、評価指標を使用して測定し、ファインチューニングと調整を実施する。このフェーズは、アプリケーションが本番環境にデプロイされる前に問題を特定して解決し、実環境で効果的かつ安全に動作することを保証するために重要である。
主なタスク
LLMOps | LLMSecOps |
---|---|
・検証データセットとテストデータセットによるモデルの評価 ・結合試験 ・バイアスと公平性のチェック ・負荷試験/パフォーマンステスト ・クロスバリデーション(交差検証)などによるロバスト性の確保 ・モデルの解釈可能性と説明可能性の検証 |
・敵対的テスト ・ASOC(アプリケーションセキュリティのオーケストレーションと相関) ・バイアスと公平性のテスト ・最終セキュリティ監査 ・インシデントのシミュレーション、レスポンスのテスト ・LLMのベンチマーク ・ペネトレーションテスト ・SAST、DAST、IAST ・脆弱性スキャン |
リリース
完成したアプリケーションを本番環境にデプロイする。このフェーズでは、デプロイ戦略の最終決定、スケーラビリティとセキュリティのためのインフラ構成、LLMを含むすべてのコンポーネントが統合され、意図したとおりに機能していることが確認される。重要なタスクとして、監視とアラートシステムの構築、最終的なセキュリティレビューの実施、ユーザーオンボーディングの準備などが挙げられる。目標は、開発環境から本番環境へスムーズかつ安全に移行し、最小限のリスクとダウンタイムでアプリケーションをユーザーに提供することである。
主なタスク
LLMOps | LLMSecOps |
---|---|
・モデルを継続的にアップデート可能とする ・パイプラインへのセキュリティチェックと自動 テストの組み込み ・(DockerやKubernetesなどを使用し)デプロイ 用にモデルのパッケージ化 ・アプリケーションやモデルのトレーニング、テ スト、デプロイを自動化するためのCI/CDパイ プラインのセットアップ |
・AI/ML部品表(BOM) ・モデルやデータセットへのデジタル署名 ・モデルのセキュリティ態勢評価 ・安全なCI/CDパイプライン ・安全なサプライチェーンの検証 ・静的コード解析と動的コード解析 ・ユーザーアクセス制御の検証 ・モデルのシリアル化に対する防御 |
デプロイ
LLMとその関連コンポーネントを本番環境で安全に立ち上げる。このフェーズでは、スケーラビリティと信頼性を確保するためのデプロイインフラを設定し、すべてのセキュリティ対策が実施されているか確認し、LLMと他のアプリケーションコンポーネントとの統合を検証する。主なタスクには、リアルタイム監視の設定、脆弱性を防ぐための最終チェック、継続的な運用を保証するためのフォールバック機構の実装などがある。目標は、開発から本番運用にスムーズに移行し、アプリケーションが実際に使用できるようにすることである。
主なタスク
LLMOps | LLMSecOps |
---|---|
・インフラのセットアップ ・既存のシステムやアプリケーションとの統合 ・モデルとアプリのデプロイ ・アクセス用のAPIまたはサービスの設定 ・ユーザーアクセスとロールの管理 |
・コンプライアンスの検証 ・デプロイの検証 ・モデルやデータセットのデジタル署名の検証 ・暗号化 ・LLM対応WAF ・多要素認証 ・ネットワークセキュリティの検証 ・シークレット管理 ・セキュアなAPIアクセス ・セキュアな設定 ・ユーザーとデータのプライバシー保護 |
運用
稼働中の運用環境におけるアプリケーションの管理と保守を行う。このフェーズでは、アプリケーションのパフォーマンス、セキュリティ、ユーザインタラクションを継続的に監視し、アプリケーションの円滑で安全な運用を保証する。主なタスクには、インシデントへの対応、アップデートやパッチの適用、実際のデータやフィードバックに基づくモデルの改良などがある。目標は、高可用性を維持し、パフォーマンスを最適化し、アプリケーションが長期にわたって安全で効果的であり続けるようにすることである。
主なタスク
LLMOps | LLMSecOps |
---|---|
・フィードバック収集 ・反復的な機能強化 ・モデルのメンテナンス ・パフォーマンス管理 ・スケーラビリティとインフラの管理 ・ユーザーサポートと問題解決 |
・敵対的攻撃からの保護 ・自動脆弱性スキャン ・データの完全性と暗号化 ・LLMガードレール ・LLMインシデントの検知と対応 ・パッチ管理 ・プライバシー、データ漏洩防止 ・プロンプトセキュリティ ・ランタイムアプリケーションの自己保護 ・安全な出力処理 |
監視
アプリケーションのパフォーマンス、セキュリティ、そしてユーザーインタラクションをリアルタイムで継続的に監視する。このフェーズでは、主要なメトリクスを追跡し、異常を検出し、LLMモデルとアプリケーションコンポーネントが期待通りに機能していることを確認する。監視には、継続的な改善のためのデータ収集、ユーザーに影響が及ぶ前の潜在的な問題の特定、セキュリティと運用基準の遵守の維持が含まれる。目標は、アプリケーションのライフサイクルを通じて、安定性、安全性、および効率性を維持することである。
主なタスク
LLMOps | LLMSecOps |
---|---|
・新しいデータに基づく再トレーニングプロセスの自動化 ・モデルのドリフトや劣化を検出して対応 ・モデルのバージョン管理と、必要に応じたロールバック ・モデルのパフォーマンス(レイテンシー、精度、ユーザ ーインタラクションなど)の監視 |
・敵対的入力の検知 ・モデルの行動分析 ・AI/LLMの安全な態勢管理 ・パッチとアップデートのアラート ・規制遵守の追跡 ・セキュリティアラート ・セキュリティメトリクスの収集 ・ユーザーアクティビティの監視 ・可観測性 ・データのプライバシーと保護 ・倫理的コンプライアンス |
ガバナンス
アプリケーションのライフサイクル全体を通じて安全かつ倫理的に動作するように、ポリシー、基準、ベストプラクティスを確立し、実施する。このフェーズでは、データの使用、モデルの管理、コンプライアンス、セキュリティ統制を監視するガバナンスフレームワークを設定する。主なタスクには、監査、リスク管理、アプリケーションの規制要件と組織ポリシーへの準拠確認などがある。
主なタスク
LLMOps | LLMSecOps |
---|---|
・コンプライアンス(GDPR、CCPAなど)のための定期的な監査 ・データガバナンス ・決定したモデル、使用データセット、モデルバージョンの文書化 ・モデルガバナンスのフレームワークの導入 |
・バイアスと公平性の監視 ・コンプライアンス管理 ・データセキュリティ態勢管理 ・インシデントガバナンス ・リスクアセスメントとリスク管理 ・ユーザー/機器のアクセス監査 |
LLM脅威モデルのOWASPトップ10へのマッピング
エージェント、モデル、LLM、MLアプリケーションスタックなどの一般的なLLMアプリケーションアーキテクチャについて共通の見解を持つことは、アプリケーションスタックとセキュリティモデルを定義し、整合させるために不可欠である。OWASPトップ10のアプリケーションアーキテクチャをLLMに活用することで、OWASPトップ10で特定された具体的なリスクや対策領域に適したセキュリティソリューションを整合させることができる。このように整合させることで、LLMアプリケーションがもたらす固有のセキュリティ課題に対処するための包括的で一括したアプローチが保証される。
アプリケーションサービス
LLMアプリケーションサービスは、チャットボット、翻訳、コンテンツ作成などのタスクのために、大規模な言語モデルを使用して人間のようなテキストを処理・生成する。データエージェント、API、セキュリティ対策と統合し、シームレスで安全かつ効率的なAI駆動型サービスを実現し、トレーニングからデプロイまでモデルのライフサイクルを管理する。
プロダクションサービス
プロダクションサービスでは、リアルタイムアプリケーション用の大規模な言語モデルをデプロイおよび管理し、高いパフォーマンス、スケーラビリティ、セキュリティを確保する。これらのサービスは、モデルのトレーニング、バージョン管理、監視を行い、APIやセキュリティフレームワークと統合して、本番環境でチャットボットや翻訳サービスのような信頼性の高いアプリケーションを提供する。
トレーニングデータセットと処理
トレーニングデータセットは、書籍、記事、ウェブコンテンツなど、多種多様なテキストソースで構成される。品質と一貫性を確保するため、これらのデータセットはトークン化、クリーニング、正規化などの前処理を行う。
ダウンストリームサービス
ダウンストリームサービスは、チャットボット、コンテンツ生成、感情分析、自動翻訳などのアプリケーションに言語モデルの出力を利用する。これらのサービスは、LLM機能を統合し、ユーザーインタラクションやデータ処理を強化する。
外部データソース
外部データソースには、検索エンジンAPIを通じたウェブクローリング、リモートデータストア、サードパーティAPIなどがある。これらのデータソースは、追加のコンテキストと最新情報を提供し、事前に訓練されたデータにリアルタイムでドメイン固有の見識を補完することで、モデルの精度と関連性を高める。
OWASP Top 10 for LLMs ソリューションランドスケープ
LLMセキュリティソリューションランドスケープは、LLMSecOpsフレームワークを活用し、LLMOpsプロセスとシームレスに統合される。これには、スコープ/計画、モデルのファインチューニング/データ拡張、テスト/評価、リリース、デプロイ、運用、監視、ガバナンスの各フェーズが含まれる。このフレームワークにより、LLMライフサイクルすべてのフェーズでセキュリティが確実に組み込まれ、プロンプトベースのインタフェース、自動化エージェント、LLM拡張機能、複雑なLLM駆動型アプリケーションなど、LLMアプリケーション固有の課題に対処できる。
このランドスケープには、LLMモデル、アプリケーション、ワークロードをサポートするために拡張された従来型のセキュリティ対策と、LLM環境向けに設計された特化型のセキュリティソリューションの両方が含まれる。このリストは包括的なものではないが、LLMアプリケーションと運用ライフサイクルの一環としてセキュリティ対策を統合し、LLMアプリケーションのトップ10のセキュリティリスクに対処しようとするセキュリティ専門家にとって、指針となるフレームワークを提供するものである。
新たな生成AI/LLM特化型セキュリティソリューション
LLMと生成AIアプリケーションのアーキテクチャとアプローチはまだ初期段階にあり、従来のセキュリティとDevSecOpsの実践範囲を超える新たな課題が生じている。多くの場合、予測不可能で動的な環境で動作しているため、従来のセキュリティ制御では、プロンプトインジェクション、敵対的操作、倫理的バイアスなどの特定のリスクに対処できない可能性がある。
このようなセキュリティギャップに対処する新しいソリューションが現れ始めているため、以下の表にまとめた。新しいソリューションが登場するたびに、このリストも更新していく予定である。これらのカテゴリーは、一般的に開発の初期段階にあるが、すぐに効果を得ることができる可能性がある。
セキュリティソリューション | 説明 |
---|---|
LLMファイアウォール | 大規模な言語モデル(LLM)を不正アクセス、悪意のある入力、有害となり得る出力から保護するために特別に設計されたセキュリティレイヤーである。このファイアウォールは、LLMとのやり取りを監視およびフィルタリングし、モデルの動作を操作する可能性のある疑わしい入力や敵対的な入力をブロックする。また、定義済みのルールとポリシーを適用し、LLMが定義された倫理的かつ機能の範囲内で正当な要求にのみ応答するようにする。さらに、LLMのファイアウォールは、モデルの内外へのデータの流れを制御することで、データの流出を防ぎ、機密情報を保護できる。 |
LLM自動ベンチマーク(脆弱性スキャンを含む) | 大規模言語モデル(LLM)特有のセキュリティ上の弱点を特定して評価するために設計された特殊なツールである。機能として、プロンプトインジェクション攻撃やデータ漏洩、敵対的入力、攻撃者が悪用し得るモデルの偏りなどを検知する。スキャナーはさまざまなシナリオにおけるモデルの応答と動作を評価し、従来のセキュリティツールでは見落とされる可能性のある脆弱性を発見する。 |
LLMガードレール | 大規模言語モデル(LLM)が定義された倫理的、法的、および機能の範囲内で動作することを保証するために設計された保護機構である。これらのガードレールは、やり取り中にルール、制約、およびコンテキストのガイドラインを適用することにより、モデルが有害、偏った、または不適切なコンテンツを生成するのを防止する。LLMのガードレールには、コンテンツフィルタリング、倫理的ガイドライン、敵対的入力の検知、ユーザーの意図の検証などが含まれ、LLMの出力が意図された使い方や組織のポリシーに沿ったものであることを保証する。 |
AIセキュリティ態勢管理(AI-SPM) | LLMや生成AIシステムを含むAIのセキュリティ態勢管理に対するプラットフォームアプローチの概念を表現するため、ベンダーやアナリストが推進する新しい業界用語として登場した。AI-SPMは、このような先進的なAIシステムに特有のセキュリティニーズに焦点を当てている。従来はモデル自体に焦点を当てていたが、このカテゴリーの目標は、訓練からデプロイに至るまで、AIのライフサイクル全体をカバーすることであり、モデルの回復力、信頼性、業界標準への準拠を確保することにある。AI-SPMは通常、データポイズニング、モデルのドリフト、敵対的攻撃、機密データの漏洩などの脆弱性を監視して対処する。 |
LLM & 生成AI セキュリティソリューション
以下のセキュリティソリューションマトリクスは、LLMSecOpsライフサイクルに基づいており、これを「OWASP Top 10 for Large Language Model(LLM)Applications」にマッピングすることで、セキュリティ対策を評価するためのターゲットを絞ったアプローチを提供する。このマトリックスは、敵対的攻撃やデータ漏洩など、各フェーズにおけるOWASPの主要なリスクとセキュリティツールを整合させることで、ギャップを特定するのに役立つ。
既存のセキュリティ対策をLLMや生成AIアプリケーション特有のニーズと相互参照することで、組織は開発プロセス全体にわたって、セキュリティ体制を強化できる。
オープンソースプロジェクトと独自提供のソリューションランドスケープは、四半期ごとにこのドキュメント内で更新され、コミュニティが適度に最新のリストを参照できるように維持される。また、プロジェクトのウェブサイト上のオンラインディレクトリにて、最新のリストを提供している。これらのリストは、コミュニティと研究によって作成されたものである。
ソリューションリストへは、企業、プロジェクト、または個人からオンラインで提出できる。提出された内容は、掲載前に正確性が確認される。
おわりに(この記事について)
LLMや生成AIアプリケーションに関して、現況やアプリケーションのカテゴリなどの前提知識に加えて、アプリケーション開発におけるセキュリティ課題については網羅的に書かれているということで、広い読者層にアプローチしていますし、内容的にもこれからの時代ますます重要性が高まっていくドキュメントなのではないかと感じました。
ドキュメントを読む前は、プロンプトアプリケーションに対する、生成AIに特化したDLPなどのソリューションも含まれているのかなと思い読み進めたのですが、LLM/生成AIアプリケーション向けのソリューションのみだったため、スコープの範囲でいうと、期待していたよりは狭かったなという感想を個人的には持ちました。ただ、ソリューションリストの中には、日本語の解説記事が存在しないようなオープンソースのものもあり、試しに検証してみるのも興味深そうだなとも感じました。
Discussion