Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Leaky Vessels/CVE-2024-21626から分かるコンテナセキュリティ

Avatar for hayama hayama
August 02, 2024
160

Leaky Vessels/CVE-2024-21626から分かるコンテナセキュリティ

Avatar for hayama

hayama

August 02, 2024
Tweet

Transcript

  1. ©2024 Supership Inc. Confidential プロフィール 好きなもの / 趣味 #楽器(ドラム、ギター) #Cloud

    Native Dayの運営・参加 #ゲーム 羽山 公平(ハヤマ コウヘイ) • 2001 年 1 月 7 日 :23年入社 • システム統括本部インフラ基盤統括室
  2. ©2024 Supership Inc. Confidential Leaky Vessels(CVE-2024-21626)をご存知ですか? 
 コンテナランタイム「runc」の脆弱性により、 4 コンテナから

    ホストOSのファイルシステムにアクセスできる脆弱性 悪意のあるDockerfile 悪意のあるDocker cmd
  3. ©2024 Supership Inc. Confidential 影響範囲や危険性
 対象ソフトウェア • runcを採用しているコンテナエンジン ◦ Docker、Kubelet(Kubernetes)など

    ◦ version: 1.0.0-rc93 <= runc < 1.1.12 ホストOSのファイルシステムにアクセスできる危険性 5 コンテナ ホストOS 公開鍵の登録 SSHアクセス 公開鍵の登録 実行ファイルの上書き コンテナ ホストOS /usr/bin/xxxを上書き
  4. ©2024 Supership Inc. Confidential runcとは?
 • 高レベルランタイム(Daemonとして常駐) ◦ イメージの管理 ◦

    低レベルランタイムを使いコンテナを作成する • 低レベルランタイム(バイナリ) ◦ コンテナを作成の実装部分 ◦ 実際にSystemCallを送っている 6 runc 高レベルランタイム 低レベルランタイム
  5. ©2024 Supership Inc. Confidential 脆弱性の再現方法
 WORKDIRに/proc/self/fd/8(コンテナプロセスのFD)を指定する 8 CLI docker run

    -it -w /proc/self/fd/8 \ ubuntu bash Dockerfile たった1行、1オプションで脆弱性が再現できてしまう危険性
  6. ©2024 Supership Inc. Confidential 対応策
 脆弱性の確認 • runcのversionを確認する ◦ docker

    version ◦ runc --version 脆弱性解消するために • 今年の2月には修正verが配布されており、yumやaptからアップデート可能です 注意 アップデートが出来ない場合 • 公式の検証済のDocker imageを利用する • 第三者が作成したDocker imageを利用しない ◦ 足りない機能は公式のDocker imageを元に自作する 10
  7. ©2024 Supership Inc. Confidential 今回の事例から分かるコンテナセキュリティ 
 • コンテナエンジンの脆弱性はコンテナやホストOS全てに波及してしまう ◦ VMと違って完全に隔離されているわけでない

    ◦ 脆弱性1つや権限1つで簡単にホストOSにアクセスできてしまう ◦ 過激に言えばコンテナは「高度なchroot」 12 VM ハイパーバイザ ゲストOS ゲストOS VM コンテナ OS APP APP コンテナ VM コンテナ
  8. ©2024 Supership Inc. Confidential 今回の事例から分かるコンテナセキュリティ 
 • 不用意に第三者が作成したコンテナイメージを利用しない ◦ 公式のイメージやベンダー公式のイメージを利用する

    ◦ コンテナイメージはユーザ側で検証や脆弱性をスキャンを利用する 13 脆弱性スキャンサービス例 Docker • Docker Scout AWS • Amazon ECR GCP • Artifact Registry