AIインフラを襲うRCEの脅威:GitLab AI GatewayおよびvLLMの脆弱性対策

Tech

{ “status”: “ready”, “task_type”: “security_advisory”, “priority”: “critical”, “target_audience”: “CSIRT, Security Engineers, DevOps” }

本記事はGeminiの出力をプロンプト工学で整理した業務ドラフト(未検証)です。

AIインフラを襲うRCEの脅威:GitLab AI GatewayおよびvLLMの脆弱性対策

【脅威の概要と背景】

GitLab AI Gatewayの未認証アクセス(CVE-2024-4835)と、vLLMのモデル読み込みに起因するRCE(CVE-2024-37032)が報告。2024年上半期、AI基盤の乗っ取りに直結する深刻なリスクとして特定されました。

【攻撃シナリオの可視化】

vLLMにおけるモデルインジェクションを通じたリモートコード実行(RCE)のプロセスを以下に示します。

graph TD
    A["攻撃者"] -->|1. 悪意あるモデルのアップロード| B("パブリックリポジトリ/HF")
    C["被害者のvLLMサーバ"] -->|2. モデルをプル/ロード| B
    B -->|3. Zip Slip/Path Traversal| C
    C -->|4. 任意ファイルの書き換え| D{"RCE実行"}
    D -->|例: .ssh/authorized_keys| E["永続的なバックドア確保"]
    F["GitLab AI Gateway"] -->|認証不備悪用| G["内部API/プロンプト操作"]

【安全な実装と設定】

特にvLLM等の推論エンジンにおいて、信頼できないソースからモデルを直接ロードすることは極めて危険です。

1. 誤用例:信頼できないソースからの自動ロード

# 脆弱な設定:外部の任意リポジトリからモデルを直接指定して起動

vllm serve "attacker-repo/malicious-model" --port 8000

2. 安全な代替案:ハッシュ検証と分離

モデルの整合性を検証し、インターネットから隔離された環境で実行します。

# 安全なロードプロセスの概念 (Python)

import hashlib

def verify_model_hash(file_path, expected_hash):
    sha256_hash = hashlib.sha256()
    with open(file_path, "rb") as f:
        for byte_block in iter(lambda: f.read(4096), b""):
            sha256_hash.update(byte_block)
    return sha256_hash.hexdigest() == expected_hash

# 1. 事前に検証済みのモデルのみをローカルストレージに配置


# 2. 実行環境の読み取り専用化 (Read-only Root FS)


# 3. HF_HUB_OFFLINE=1 の強制

3. 基盤保護策

  • 最小権限 (PoLP): vLLMプロセスを専用の非特権ユーザーで実行し、書き込み可能なディレクトリを厳格に制限する。

  • ネットワーク隔離: AI Gatewayは信頼されたIP範囲内でのみアクセスを許可し、mTLS(相互TLS)による認証を導入する。

【検出と緩和策】

検出ポイント

  • EDR/ログ解析: vLLMプロセスによる .ssh//etc/cron.d/ への不審な書き込み試行の検知。

  • SIEM: GitLab AI Gatewayの /v1/chat/agent 等のエンドポイントに対する、異常なソースIPからのリクエスト急増の監視。

緩和策 (Workaround)

  • vLLM: バージョン v0.4.1 以降へアップデート。困難な場合は、ネットワーク egress フィルタリングで外部リポジトリへのアクセスを遮断。

  • GitLab: GitLab AI Gateway を v1.1.1 以降へ、GitLab 本体を最新のセキュリティパッチ適用版(17.0.1+ 等)へ更新。

【実務上の落とし穴】

  • 可用性への影響: モデルスキャンや厳格なEgress制限を導入することで、動的なモデルロードが必要な開発環境の利便性が低下する。

  • 誤検知 (False Positive): AI学習や大規模なデータ転送に伴うトラフィックを、攻撃によるデータ侵害と誤認するリスクがある。事前にベースラインの策定が必要。

【まとめ】

組織のCSIRTおよびインフラ担当者は、直ちに以下の3点を確認してください。

  1. アセットの特定: 自社環境で稼働中の vLLM および GitLab AI Gateway のバージョンを確認する。

  2. 即時アップデート: vLLM v0.4.1+ および GitLab AI Gateway v1.1.1+ への更新を最優先で実施する。

  3. モデル供給網の制限: 推論エンジンがインターネットから直接モデルをダウンロードすることを禁止し、社内プロキシまたは検証済みレジストリ経由に制限する。


参考文献:

ライセンス:本記事のテキスト/コードは特記なき限り CC BY 4.0 です。引用の際は出典URL(本ページ)を明記してください。
利用ポリシー もご参照ください。

コメント

タイトルとURLをコピーしました