Adversaries may abuse a container administration service to execute commands within a container. A container administration service such as the Docker daemon, the Kubernetes API server, or the kubelet may allow remote management of containers within an environment.(Citation: Docker Daemon CLI)(Citation: Kubernetes API)(Citation: Kubernetes Kubelet)
In Docker, adversaries may specify an entrypoint during container deployment that executes a script or command, or they may use a command such as docker exec to execute a command within a running container.(Citation: Docker Entrypoint)(Citation: Docker Exec) In Kubernetes, if an adversary has sufficient permissions, they may gain remote execution in a container in the cluster via interaction with the Kubernetes API server, the kubelet, or by running a command such as kubectl exec.(Citation: Kubectl Exec Get Shell)
T1609「Container Administration Command」(コンテナ管理コマンド) は、攻撃者がKubernetesの kubectl やDockerの docker といった正規の管理ツールを悪用して、コンテナ内で悪意のあるコードを実行する手法です。
クラウドやコンテナ環境における「Living off the Land(自給自足型攻撃)」の一種といえます。
この手法で攻撃者は、「正規の管理経路を通じた、コンテナ内部への直接介入」を実現します。
攻撃者は、コンテナ管理プラットフォームの「実行機能(Exec機能)」を悪用します。
docker exec コマンドを使用して、起動中のコンテナ内で新しいプロセスを開始します。kubectl exec コマンドを使用して、特定のPod内のコンテナに対してコマンドを発行します。攻撃者は、まず管理ツールの実行権限や認証情報を入手する必要があります。
~/.kube/config や ~/.docker/config.json を盗み出す、あるいは設定不備(パスワードなしの公開ダッシュボードなど)を見つけます。kubectl get pods などのコマンドで、どのコンテナが動いているか、どれに機密情報がありそうかを調べます。kubectl exec -it [Pod名] -- /bin/bash「誰が、どのコンテナに対して、何を実行したか」を厳格に制御・監視することが重要です。
exec 権限を持つユーザーやサービスアカウントを必要最小限に制限します。PodSecurityPolicy や Kyverno などのツールを使い、特定のコンテナ(特に特権コンテナ)に対する exec 操作を制限します。exec サブリソースへのリクエストを常に記録・監視します。不審なIPアドレスからのアクセスがないかチェックします。Falco などのランタイム監視ツールを使用し、コンテナ内で「普段は実行されないシェル(bashやsh)」が起動した瞬間にアラートを上げるようにします。exec を使うのは日常茶飯事であるため、攻撃者による操作を「ノイズ」の中から見つけ出す必要があります。T1609が成立する背景には、コンテナオーケストレーター(Kubernetes等)やコンテナエンジン(Docker等)の設定ミスや設計上の不備が関わっています。
CWE-285: Improper Authorization(不適切な認可)
ユーザーに必要以上の権限(RBACの設定ミスなど)を与えてしまい、本来 exec コマンドを叩くべきでないユーザーがコンテナを操作できてしまうケース。
CWE-306: Missing Authentication for Critical Function(重要な機能に対する認証の欠如)
Docker APIやKubernetesダッシュボードが認証なしでインターネットに公開されている状態。攻撃者は認証なしで直接管理コマンドを発行できます。
CWE-912: Managed Service API with Insecure Functions(不安全な機能を持つ管理サービスAPI)
管理用APIが、システムの安全性を損なう可能性のある強力なコマンド(コンテナ内での任意コード実行など)を、不適切な保護状態で提供している場合。
コンテナ環境を運用する場合、「本番環境のコンテナにはシェル(bash/sh)を入れない(Distrolessイメージの使用)」という対策が非常に有効です。シェルがなければ、攻撃者が exec を使って対話的な操作を試みても失敗に終わります。
この攻撃手法に関連する CVE は登録されていません。