コンテナエスケープ
コンテナエスケープ とは何ですか?
コンテナエスケープコンテナとホスト間の分離境界を破る攻撃で、攻撃者が基盤ノードまたはカーネル上でコードを実行できるようにする。
コンテナエスケープは、コンテナランタイム、カーネル、または誤設定された名前空間の弱点を悪用し、隔離されたコンテナから抜け出してホスト OS 上で権限を取得する攻撃です。代表的な例として、runC の CVE-2019-5736 では悪意あるコンテナが runC バイナリを上書きしてホストの root 権限を取得でき、その他にも特権コンテナの濫用、マウントされた Docker ソケット、共有された PID 名前空間などが悪用されます。エスケープ後、攻撃者はクラスタ内を横移動し、kubelet 認証情報を窃取して他のワークロードへアクセスします。対策としては rootless コンテナ、seccomp および AppArmor プロファイル、読み取り専用ファイルシステム、gVisor や Kata サンドボックス、そして迅速なパッチ適用が挙げられます。
● 例
- 01
CVE-2019-5736 を悪用して /usr/bin/runc を上書きし、ホスト上で root としてコードを実行する。
- 02
特権コンテナが /var/run/docker.sock をマウントし、ホストのファイルシステムを共有する新しいコンテナを作成する。
● よくある質問
コンテナエスケープ とは何ですか?
コンテナとホスト間の分離境界を破る攻撃で、攻撃者が基盤ノードまたはカーネル上でコードを実行できるようにする。 サイバーセキュリティの クラウドセキュリティ カテゴリに属します。
コンテナエスケープ とはどういう意味ですか?
コンテナとホスト間の分離境界を破る攻撃で、攻撃者が基盤ノードまたはカーネル上でコードを実行できるようにする。
コンテナエスケープ はどのように機能しますか?
コンテナエスケープは、コンテナランタイム、カーネル、または誤設定された名前空間の弱点を悪用し、隔離されたコンテナから抜け出してホスト OS 上で権限を取得する攻撃です。代表的な例として、runC の CVE-2019-5736 では悪意あるコンテナが runC バイナリを上書きしてホストの root 権限を取得でき、その他にも特権コンテナの濫用、マウントされた Docker ソケット、共有された PID 名前空間などが悪用されます。エスケープ後、攻撃者はクラスタ内を横移動し、kubelet 認証情報を窃取して他のワークロードへアクセスします。対策としては rootless コンテナ、seccomp および AppArmor プロファイル、読み取り専用ファイルシステム、gVisor や Kata サンドボックス、そして迅速なパッチ適用が挙げられます。
コンテナエスケープ からどのように防御しますか?
コンテナエスケープ に対する防御は通常、上記の定義で述べたとおり、技術的統制と運用上の実践を組み合わせます。
コンテナエスケープ の別名は何ですか?
一般的な別名: コンテナブレイクアウト, Docker エスケープ。
● 関連用語
- cloud-security№ 598
Kubernetes クラスター攻撃
公開された API、弱い RBAC、脆弱なワークロードを悪用して Kubernetes(K8s)クラスターのコントロールプレーンやワーカーノードを掌握する攻撃。
- cloud-security№ 505
IAM 権限昇格
既存のクラウド IAM 権限を悪用し、ポリシーの編集、ロールの引き受け、または自身への管理者権限付与によってより高い権限を獲得する手法。
- cloud-security№ 187
クラウドメタデータ SSRF
脆弱なアプリを介してクラウド事業者のインスタンスメタデータサービスを問い合わせさせ、一時的な資格情報を盗むサーバーサイドリクエストフォージェリ攻撃。
- cloud-security№ 183
クラウドデータ流出
クラウドアカウントから無許可でデータを複製・転送する行為で、オブジェクトストレージ API、スナップショット、レプリケーション、攻撃者のアカウントなどが利用される。
- vulnerabilities№ 860
権限昇格
本来付与された権限を超える権限を攻撃者が取得できる脆弱性の総称。例として一般ユーザーから管理者への昇格がある。
● 関連項目
- № 182クラウドクリプトジャッキング
- № 964サンドボックスエスケープ
- № 346Docker ソケット攻撃