performing-container-escape-detection について
セキュリティ評価担当者やインシデント対応者向けの、コンテナセキュリティ監査スキルです。Kubernetes Pod でコンテナエスケープにつながる設定を確認します。
主な機能
- 01特権コンテナの確認
- 02危険なケイパビリティの確認
- 03ホスト名前空間共有の確認
- 04書き込み可能な hostPath の確認
- 05Docker socket マウントの確認
活用シーン
- 01Kubernetes Pod 設定の監査
- 02コンテナセキュリティ事案の調査
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ mukul975/ anthropic-cybersecurity-skills --skill performing-container-escape-detectionインストール後、Claude Code で/performing-container-escape-detectionを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
LICENSEreferences/api-reference.mdscripts/agent.py詳細
コンテナーエスケープの検出
使用する場面
- コンテナーエスケープの検出を伴うセキュリティ評価を実施する場合
- 関連するセキュリティインシデントのインシデント対応手順に従う場合
- 定期的なセキュリティテストや監査を実施する場合
- 実地テストを通じてセキュリティ制御を検証する場合
前提条件
- コンテナーセキュリティの概念とツールに精通していること
- 安全に実行できるテスト環境またはラボ環境にアクセスできること
- Python 3.8+ と必要な依存関係がインストールされていること
- テスト活動に対する適切な許可を得ていること
手順
Kubernetes ポッドを監査し、特権モード、危険なケイパビリティ、ホスト名前空間の共有、書き込み可能な hostPath マウントなど、コンテナーエスケープにつながる要因を確認します。
from kubernetes import client, config
config.load_kube_config()
v1 = client.CoreV1Api()
pods = v1.list_pod_for_all_namespaces()
for pod in pods.items:
for container in pod.spec.containers:
sc = container.security_context
if sc and sc.privileged:
print(f"PRIVILEGED: {pod.metadata.namespace}/{pod.metadata.name}")
主なエスケープ要因:
- 特権コンテナー(ホストへの完全なアクセス)
- CAP_SYS_ADMIN ケイパビリティ
- ホストの PID/ネットワーク/IPC 名前空間の共有
- / または /etc への書き込み可能な hostPath マウント
- Docker ソケットのマウント(/var/run/docker.sock)
例
# Check for docker socket mounts
for vol in pod.spec.volumes or []:
if vol.host_path and "docker.sock" in (vol.host_path.path or ""):
print(f"Docker socket exposed: {pod.metadata.name}")
コメント
Markdown 対応