DockerとKubernetesの設定ミスを悪用してホストを侵害する攻撃者たち

攻撃者は、設定ミス・脆弱な分離境界・安全でないAPIを悪用することで、DockerおよびKubernetes環境を標的にし、ホストシステムやクラスタ全体を侵害するケースが増加しています。

コンテナ化が現代のクラウドインフラを支える基盤として定着するにつれ、脅威アクターは従来のエンドポイントからコンテナエコシステムへと攻撃の焦点を移しています。この環境では、一つの脆弱点が大規模な重要サービスの露出につながりかねません。

APTグループ「TeamPCP」に関連するとされる最近のキャンペーンは、こうした攻撃の巧妙化を如実に示しています。同グループはCheckmarx KICSが使用するDocker Hubリポジトリを汚染し、セキュリティスキャン実行中に起動するスティーラー(情報窃取マルウェア)を仕込んでいました。

このサプライチェーン侵害によって、攻撃者はKubernetesのシークレットやKubernetes secretsと機密認証情報を窃取することに成功しており、信頼された正規ツールが企業環境への侵入口として悪用される実態を示しています。

コンテナはホストのカーネルを共有しており、名前空間(namespace)やcgroupといたLinuxの機能を利用して分離を実現しています。しかしこのアーキテクチャにはリスクも伴います。コンテナが侵害された場合、攻撃者はカーネルの脆弱性やランタイムの欠陥を突いて分離を突破し、ホストシステムの制御を奪える可能性があります。

実際の攻撃において、いくつかの著名な脆弱性が引き続き悪用されています。runCに存在するCVE-2019-5736では、コンテナへのアクセス権を持つ攻撃者がランタイムバイナリを上書きし、ホスト上でコードを実行することが可能でした。

SecurelistによるとCVE-2022-0492はcgroupの不適切な処理を介したコンテナエスケープを可能にし、CVE-2024-21626はファイルディスクリプタ管理の欠陥によってホストのファイルシステムを露出させました。これらの脆弱性は、コンテナセキュリティがホストOSと密接に結びついていることを浮き彫りにしています。

脆弱性を直接悪用しなくても、過剰な権限を乱用することで攻撃が成立するケースも多くあります。特権モードで動作するコンテナや、CAP_SYS_ADMINといった危険なLinuxケーパビリティを持つコンテナは、分離を事実上回避できてしまいます。

Image

よく見られる攻撃シナリオとして、侵害されたコンテナ内にホストのファイルシステムをマウントし、重要なファイルを改ざんすることで永続的な足がかりを築き、システム全体を掌握するという手口があります。

DockerとKubernetesへの攻撃手法

設定が不適切なAPIは、コンテナ環境への最も容易な侵入経路の一つであり続けています。適切な認証なしにDockerやKubernetesのAPIを外部に公開すると、攻撃者は悪意あるコンテナをリモートでデプロイしたり、コマンドを実行したり、機密データにアクセスしたりすることが可能になります。

CAP_SYS_PTRACEの主なリスクは、このケーパビリティを持つプロセスが他のプロセスのメモリの読み書き、実行の制御、コードインジェクション、そしてメモリからの機密データの直接窃取を行えることです。

Image

たとえば、Kubernetes APIトークンへのアクセス権を持つ攻撃者は、権限を列挙したうえで、コンテナエスケープを目的とした特権Podをデプロイできます。

シンプルなAPIリクエスト一つで、ホストリソースをマウントするコンテナを起動し、ノード全体の完全な侵害に至ることができます。同様に、コンテナ内にDockerソケットをマウントされた場合、攻撃者はホスト全体を制御下に置くことができ、一つの侵害されたコンテナがクラスタ全体に及ぶ被害をもたらします。

サプライチェーン攻撃は、この脅威をさらに深刻なものにしています。公開リポジトリに置かれた悪意ある画像は、しばしば正規のツールを装っています。デプロイされた後は、認証情報の窃取、バックドアの埋め込み、持続的なアクセスの確立といった悪意ある活動を行います。

CI/CDパイプラインも格好の攻撃対象です。アプリケーションのロジックを変更せずにビルドプロセス中に悪意あるコードを注入できるため、検出が著しく困難になります。

現代のコンテナ攻撃は、単発の事象であることはほとんどありません。初期アクセス、認証情報の収集、横断的移動、そして最終的なホストやクラスタの乗っ取りを組み合わせた多段階のチェーンとして展開されるのが一般的です。

侵害されたコンテナにはすでにAPIキーやサービストークン、環境変数として設定されたシークレットが含まれている場合があり、攻撃者はそれを足がかりに即座に被害を拡大できます。

多くのケースでは、コンテナからエスケープすること自体が攻撃者の目的ではありません。コンテナ内のデータや接続されたサービスから機密情報にアクセスするだけで、クラウドインフラの侵害、サービスのなりすまし、価値ある情報の窃取といった目的が十分に達成できてしまいます。

組織がコンテナファーストなアーキテクチャの採用を進めるにつれ、攻撃対象領域も同じペースで拡大しています。設定ミス、過剰な権限を持つコンテナ、脆弱なAPIセキュリティは、依然として最も一般的かつ最も悪用されやすい侵入経路です。

これらの脅威から防御するには、厳格なアクセス制御、ランタイム監視、セキュアなイメージパイプライン、そしてDockerおよびKubernetes環境全体を対象とした継続的な設定監査を組み合わせた包括的なアプローチが求められます。

翻訳元: https://gbhackers.com/attackers-exploit-docker-kubernetes/

ソース: gbhackers.com