Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help


title: “Linux 権限昇格とコンテナセキュリティ” part: “Part 6” chapter: “6-4”

Linux 権限昇格とコンテナセキュリティ

本章では、サーバ側で一般ユーザ権限を取得した後の Linux privilege escalation(権限昇格)と、Docker / Podman を中心としたコンテナ環境の典型的なリスクを整理する。

本章のゴール

  • 前提:Linux の基本コマンドで情報収集でき、Web / API 侵害後の横展開シナリオとして位置づけて評価できる。
  • 到達目標:権限昇格の代表的パターン(SUID/SGID、sudo、権限、カーネル)と、コンテナ設定ミスによるホスト侵害リスクを説明し、優先度付けできる。
  • 対応演習:模擬・検証環境で sudo -l や権限確認を実施し、コンテナ設定(--privilegeddocker.sock 等)のリスク要因を洗い出して記録する。

Linux 権限昇格の代表的パターン

Linux 権限昇格の代表的な攻撃パターンには次のようなものがある。

  • SUID/SGID バイナリの悪用
    • root 所有かつ SUID ビットが立っているバイナリを利用し、任意コマンド実行やシェル取得を行う
  • 不適切な sudo 設定
    • パスワードなしで実行可能なコマンドや、任意のエディタ/インタプリタを介した権限昇格
  • 権限の緩いファイル/ディレクトリ
    • /etc/passwd やサービス設定ファイルへの書き込み権限が一般ユーザに付与されている
  • 古いカーネルや特権昇格脆弱性
    • 既知のローカル権限昇格脆弱性(例:Dirty COW 等)が適用されていないカーネル

Pentest では、sudo -lfindls -launame -a などの基本コマンドを通じて情報を収集し、既知のテクニック集(GTFOBins 等)と照らし合わせながらアタックサーフェスを特定する。

コンテナ環境のリスク

Docker / Podman 等のコンテナ環境では、ホストとコンテナ間の隔離が前提となる一方で、設定ミスによりホスト侵害に繋がるケースがある。

代表的なリスクには次のようなものがある。

  • 特権コンテナ(--privileged
    • ホストのデバイスやカーネル機能に広範なアクセスを持ち、コンテナからホストへのエスケープリスクが高まる
  • /var/run/docker.sock のマウント
    • コンテナ内から Docker デーモンにアクセスできる場合、任意コンテナの起動を通じてホスト権限取得が可能となる
  • ホストファイルシステムの過剰なマウント
    • //etc を読み書き可能なボリュームとしてマウントしている

図6-4: コンテナ環境のレイヤ構造

flowchart TB
    HW[ハードウェア] --> HostOS[ホスト OS]
    HostOS --> Engine[Docker / Podman エンジン]
    Engine --> C1[コンテナ1\nWeb]
    Engine --> C2[コンテナ2\nAPI]
    Engine --> C3[コンテナ3\nDB]

図6-4 のように、ホスト OS / コンテナエンジン / 各コンテナのレイヤを分け、設定ミスがどの境界を弱めるかを意識しながら構成を確認することが重要である。

これらは「設計上の便利さ」を優先した結果として導入されることが多く、Pentest では構成ファイルや実行中コンテナの設定を確認することで発見できる。

Pentest におけるアプローチ

Linux / コンテナ環境の Pentest では、次のようなアプローチが現実的である。

  • Web / API レイヤから侵入後の「横展開シナリオ」として位置づける
    • 例:Web アプリから OS コマンドインジェクション → コンテナ内シェル取得 → ホストへのエスケープ可否を評価
  • メタデータやクラウドロールとの組み合わせを評価する
    • コンテナ内から IMDS へのアクセス可否、AWS SDK の利用状況を確認
  • 最小権限と分離の観点で設計をレビューする
    • root コンテナの利用有無、ユーザ名前空間・ネットワーク名前空間の設定など

図6-5 は、初期侵入後に評価しやすい観点(Linux 権限昇格、コンテナ設定、クラウド到達性)を整理し、どの方向に横展開し得るかを俯瞰したものである。個別の手法ではなく「どの境界の前提が崩れると、何が起きうるか」を切り分けて整理すると、報告時の説明が明確になる。

図6-5: 侵入後の横展開シナリオ(Linux / コンテナ / クラウド)(概要)

flowchart LR
    Entry[初期侵入\n(Web / API)] --> Shell[サーバ/コンテナ内の実行環境\n(シェル取得・実行権限)]
    Shell --> LPE[Linux 権限昇格の観点\n(sudo / SUID / 権限 / カーネル)]
    Shell --> Cfg[コンテナ設定の観点\n(特権 / 過剰マウント / docker.sock 等)]
    Shell --> IMDS[クラウド到達性の観点\n(IMDS / 付与ロール)]

    Cfg --> Host[ホスト影響の評価\n(隔離の破綻)]
    IMDS --> Cloud[クラウド API 操作の評価\n(横展開 / 権限拡大)]
    Host --> Cloud

将来的な本書の演習環境では、意図的に脆弱な Linux / コンテナ構成を準備し、Web レイヤの侵害からクラウド/ホスト権限昇格までの流れを体験できるようにする想定である。

次に読む Part

本章のポイント

  • Linux 権限昇格では、SUID/SGID、sudo 設定、ファイル権限、カーネル脆弱性の観点で情報収集し、成立条件を絞り込む。
  • コンテナは隔離が前提だが、特権コンテナ、docker.sock マウント、過剰なホストマウントなどの設定ミスでホスト侵害に繋がりうる。
  • Web / API 侵害後の横展開シナリオとして、IMDS への到達やクラウドロールとの組み合わせも含めて評価し、最小権限と分離の観点で改善提案へ繋げる。