OWASP Top 10 for LLM Applications 2025 について: ⑩ Unbounded Consumption

説明:

無制限消費(Unbounded Consumption)は、大規模言語モデル(LLM)が入力クエリやプロンプトに基づいて出力を生成するプロセスを指します。
推論(Inference)はLLMの重要な機能であり、学習したパターンや知識を適用して適切な応答や予測を生成することを含みます。

サービスの妨害、ターゲットの財務資源の枯渇、さらにはモデルの振る舞いをクローン化して知的財産を盗むといった攻撃は、共通のセキュリティ脆弱性を利用することで成立します。

無制限消費(Unbounded Consumption)とは、LLMアプリケーションがユーザーに対して過剰かつ制御されていない推論を許可することで、サービス拒否(DoS)、経済的損失、モデルの窃盗、サービスの劣化といったリスクを引き起こす状態を指します。

特にクラウド環境におけるLLMの高い計算負荷は、リソースの悪用や不正使用を引き起こす脆弱性を持ちやすいという課題を抱えています。

 

脆弱性の一般的な例

  1. 可変長入力フラッド(Variable-Length Input Flood)
    攻撃者は、長さが異なる大量の入力をLLMに送信し、処理の非効率性を悪用します。
    これにより、リソースが枯渇し、システムが応答不能になる可能性があり、サービスの可用性に重大な影響を与えます。

  2. ウォレット拒否攻撃(Denial of Wallet, DoW)
    クラウドベースのAIサービスの従量課金モデルを悪用し、大量の処理を実行させることで、プロバイダーに過度な経済的負担をかけます。
    結果として、運営が持続不可能になり、財政的な破綻を引き起こすリスクがあります。

  3. 連続入力オーバーフロー(Continuous Input Overflow)
    LLMのコンテキストウィンドウを超える入力を継続的に送信することで、過剰な計算資源の消費を引き起こします。
    これにより、サービスの劣化や業務の混乱が発生する可能性があります。

  4. リソース集約型クエリ(Resource-Intensive Queries)
    極めて複雑な処理や高度な言語パターンを含むクエリを送信することで、システムのリソースを過剰に消費させます。
    その結果、処理時間の長期化やシステム障害が発生する恐れがあります。

  5. API経由のモデル抽出(Model Extraction via API
    攻撃者は、慎重に設計された入力やプロンプトインジェクションを用いてモデルAPIにクエリを送信し、十分な出力を収集することで、部分的なモデルの複製シャドウモデルの作成を試みます。
    これにより、知的財産の盗難が発生し、元のモデルの信頼性が損なわれるリスクがあります。

  6. 機能的モデルの複製(Functional Model Replication)
    標的となるLLMを利用して合成トレーニングデータを生成し、それを用いて別の基盤モデルを微調整(ファインチューニング)することで、機能的に同等なモデルを作成します。
    この手法は、従来のクエリベースの抽出方法を回避するため、独自モデルや技術の保護に深刻な脅威をもたらします。

  7. サイドチャネル攻撃(Side-Channel Attacks)
    攻撃者は、LLMの入力フィルタリング技術を逆手に取ることで、サイドチャネル攻撃を実行します。
    これにより、モデルの重み(Weights)やアーキテクチャ情報を取得し、システムのセキュリティを損なう可能性があります。
    最悪の場合、さらなる攻撃の足がかりとなる危険性があります。

 

防御と緩和策(Prevention and Mitigation Strategies)

  1. 入力バリデーション(Input Validation)

    • 厳格な入力バリデーションを実装し、入力が合理的なサイズ制限を超えないようにする。
  2. ロジット(Logits)と確率(Logprobs)の露出制限(Limit Exposure of Logits and Logprobs)

    • APIレスポンスで logit_biaslogprobs の公開を制限または難読化する。
    • 詳細な確率情報を提供せず、必要最低限の情報のみ開示する。
  3. レート制限(Rate Limiting)

    • レート制限やユーザーごとのクォータを適用し、単一のエンティティが一定時間内に送信できるリクエスト数を制限する。
  4. リソース割り当て管理(Resource Allocation Management)

    • リソースの使用状況を動的に監視・管理し、特定のユーザーやリクエストが過剰にリソースを消費しないようにする。
  5. タイムアウトとスロットリング(Timeouts and Throttling)

  6. サンドボックス技術(Sandbox Techniques)

    • LLMのネットワークリソース、内部サービス、およびAPIへのアクセスを制限する。
    • これは特に内部リスクサイドチャネル攻撃の防止に重要であり、LLMアプリケーションがデータやリソースにアクセスできる範囲を管理する重要な制御メカニズムとなる。
  7. 包括的なログ記録、監視、異常検知(Comprehensive Logging, Monitoring and Anomaly Detection)

    • リソース使用状況を継続的に監視し、異常なリソース消費パターンを検出・対応できるログシステムを実装する。
  8. ウォーターマーキング(Watermarking)

  9. 優雅な劣化(Graceful Degradation)

    • システムが高負荷時にも完全にダウンするのではなく、部分的な機能を維持できるように設計する。
  10. キューアクションの制限とスケーリング(Limit Queued Actions and Scale Robustly)

  • キューに入るアクション数や合計アクション数に制限を設ける。
  • 動的スケーリング負荷分散を導入し、需要の変動に対応しながらシステムの一貫性を保つ。
  1. 敵対的耐性トレーニング(Adversarial Robustness Training)
  • モデルをトレーニングして、敵対的なクエリやモデル抽出攻撃を検知・緩和できるようにする。
  1. グリッチトークンフィルタリング(Glitch Token Filtering)
  • 既知のグリッチトーク(異常なトークン)をリスト化し、モデルのコンテキストウィンドウに追加する前にスキャン・除外する。
  1. アクセス制御(Access Controls)
  1. 中央管理型MLモデルインベントリ(Centralized ML Model Inventory)
  • 本番環境で使用するモデルを中央管理型のMLモデルインベントリまたはレジストリで一元管理し、適切なガバナンスとアクセス制御を確保する。
  1. 自動化されたMLOpsデプロイメント(Automated MLOps Deployment)
  • ガバナンス、追跡、承認ワークフローを備えた自動MLOpsデプロイメントを実装し、インフラストラクチャ全体のアクセスとデプロイメント制御を強化する。

 

ほなほな。