LLM10:2025 無制限の消費 (Unbounded Consumption)

説明

無制限の消費は、大規模言語モデル (Large Language Model, LLM) が入力クエリまたはプロンプトに基づいて出力を生成するプロセスを指します。推論は LLM の重要な機能であり、学習したパターンや知識を適用して、関連するレスポンスや予測を生成します。

サービスを妨害したり、ターゲットの経済的リソースを枯渇させたり、モデルの動作を複製して知的財産を窃取することを目的とした攻撃はすべて、成功するために共通のセキュリティ脆弱性に依存しています。無制限の消費は、大規模言語モデル (Large Language Model, LLM) アプリケーションによってユーザーが過剰で制御されていない推論を実行できる際に発生し、サービス拒否 (DoS)、経済的損失、モデル窃取、サービス低下などのリスクにつながります。特にクラウド環境では、LLM の計算要求が高いため、リソースの悪用や不正使用に対して脆弱となります。

脆弱性の一般的な例

1. 可変長入力フラッド

攻撃者は、処理の非効率性を悪用して、さまざまな長さの多数の入力で LLM に過負荷をかけることができます。これはリソースを枯渇し、システムが応答しなくなる可能性があり、サービスの可用性に重大な影響を及ぼす可能性があります。

2. ウォレット拒否 (Denial of Wallet, DoW)

大量のオペレーションを開始することで、攻撃者はクラウドベースの AI サービスの従量課金モデルを悪用し、プロバイダに持続不可能な経済的負担をもたらし、財政破綻のリスクをもたらします。

3. 連続的な入力オーバーフロー

LLM のコンテキストウィンドウを超える入力を連続的に送信すると、計算リソースを過剰に使用し、サービス低下や運用中断につながる可能性があります。

4. リソース集約型クエリ

複雑なシーケンスや入り組んだ言語パターンを含む、異常に負荷の高いクエリを送信すると、システムリソースを消費し、処理時間が長引いたり、システム障害が発生する可能性があります。

5. API 経由のモデル抽出

攻撃者は、注意深く細工した入力とプロンプトインジェクション技法を使用してモデル API をクエリし、部分的なモデルを複製したり、シャドウモデルを作成するのに十分な出力を収集する可能性があります。これは知的財産の盗難リスクをもたらすだけでなく、元のモデルの完全性を損なうことにもなります。

6. 機能モデルの複製

ターゲットモデルを使用して、模造トレーニングデータを生成することで、攻撃者は他の機能モデルをファインチューンして、機能的に等価なものを作成できます。これは従来のクエリベースの抽出手法を巧みに迂回して、プロプライエタリモデルやテクノロジに重大なリスクをもたらします。

7. サイドチャネル攻撃

悪意のある攻撃者は、LLM の入力フィルタリング技法を悪用して、サイドチャネル攻撃を実行し、モデルの重みやアーキテクチャ情報を採取する可能性があります。これはモデルのセキュリティを侵害し、さらなる悪用につながる可能性があります。

予防および緩和戦略

1. 入力バリデーション

厳密な入力バリデーションを実装して、入力が適切なサイズ制限を超えないようにします。

2. Logits と Logprobs の開示制限

API レスポンスでの logit_biaslogprobs の開示を制限するか難読化します。詳細な確率を明らかにせず、必要な情報のみを提供します。

3. レート制限

レート制限とユーザークォータを適用して、単一ソースエンティティが一定期間内に実行できるリクエスト数を制限します。

4. リソース割り当て管理

リソース割り当てを動的に監視および管理して、過剰なリソースを消費する単一のユーザーやリクエストを防ぎます。

5. タイムアウトとスロットル

リソース集約型操作に対してタイムアウトとスロットルを設定して、リソース消費が長引くのを防ぎます。

6. サンドボックス技法

LLM のネットワークリソース、内部サービス、API へのアクセスを制限します。

  • これは内部のリスクと脅威を包含するため、すべての一般的なシナリオで特に重要です。さらに、LLM アプリケーションがデータやリソースにアクセスできる範囲を管理して、サイドチャネル攻撃を緩和ないし防御するための重要な制御メカニズムとして機能します。

7. 包括的なログ記録、監視、異常検出

リソースの使用状況を継続的に監視し、ログ記録を実装して、リソース消費の異常なパターンを検出して対応します。

8. 電子透かし

電子透かしフレームワークを導入して、埋め込みを行い、LLM 出力の不正使用を検出します。

9. 段階的な劣化

高負荷時にシステムが段階的に劣化するように設計し、完全な障害ではなく部分的に機能を維持します。

10. キューに入れられるアクションの制限と堅牢なスケール

キューに入れられるアクションの数とアクションの総数に制限を設けて、動的スケーリングと負荷分散を組み込むことで、さまざまな需要に対応し、一貫したシステムパフォーマンスを確保します。

11. 敵対的堅牢性トレーニング

モデルをトレーニングして、敵対的なクエリや抽出の試みを検出して緩和します。

12. グリッチトークンのフィルタリング

既知のグリッチトークンのリストを作成して、モデルのコンテキストウィンドウに追加する前に出力をスキャンします。

13. アクセス制御

ロールベースのアクセス制御 (RBAC) や最小権限の原則などの強力なアクセス制御を実装して、LLM モデルリポジトリやトレーニング環境への不正アクセスを制限します。

14. ML モデルインベントリの一元化

本番環境で使用されるモデルには一元化された ML モデルインベントリやレジストリを使用して、適切なガバナンスとアクセス制御を確保します。

15. MLOps デプロイメントの自動化

ガバナンス、追跡、承認ワークフローを備えた自動化された MLOps デプロイメントを実装して、インフラストラクチャ内のアクセスとデプロイメントの制御を強化します。

攻撃シナリオの例

シナリオ #1: 制御されていない入力サイズ

攻撃者はテキストデータを処理する LLM アプリケーションに異常に大きな入力を送信することで、メモリ使用量と CPU 負荷が過剰になり、システムがクラッシュしたり、サービスが大幅に遅くなる可能性があります。

シナリオ #2: 繰り返されるリクエスト

攻撃者は LLM API に大量のリクエストを送信することで、計算リソースを過剰に消費して、正当なユーザーがサービスを利用できなくなります。

シナリオ #3: リソース集約型クエリ

攻撃者は LLM の最も計算負荷の高いプロセスをトリガーするように設計された特定の入力を作成することで、CPU 使用を長引かせてシステム障害を引き起こす可能性があります。

シナリオ #4: ウォレット拒否 (Denial of Wallet, DoW)

攻撃者は大量のオペレーションを生成して、クラウドベースの AI サービスの従量課金モデルを悪用し、サービスプロバイダに持続不可能なコストをもたらします。

シナリオ #5: 機能モデルの複製

攻撃者は LLM の API を使用して、模造トレーニングデータを生成し、別のモデルをファインチューンすることで、機能的に等価なものを作成し、従来のモデル抽出の制限を回避します。

シナリオ #6: システム入力フィルタリングのバイパス

悪意のある攻撃者は LLM の入力フィルタリング技法とプリアンブルをバイパスしてサイドチャネル攻撃を実行し、制御下にあるリモート制御リソースにモデル情報を取得します。

参考情報リンク

  1. Proof Pudding (CVE-2019-20634) AVID (moohax & monoxgas)

  2. Alpaca: A Strong, Replicable Instruction-Following Model: Stanford Center on Research for Foundation Models (CRFM)

関連するフレームワークと分類

インフラストラクチャデプロイメント、適用される環境制御、その他のベストプラクティスに関する包括的な情報、シナリオ戦略については、このセクションを参照してください。

Last updated