メインコンテンツまでスキップ

特権コンテナと機密マウント

このラボでは、EKSクラスタのdefaultネームスペースにroot権限を持つprivilegedセキュリティコンテキストを持つコンテナを作成します。この特権コンテナはホストからの機密ディレクトリをマウントし、コンテナ内でボリュームとしてアクセスできるようになります。

この演習では、2つの異なる検出結果が生成されます。PrivilegeEscalation:Kubernetes/PrivilegedContainerは特権権限でコンテナが起動されたことを示し、Persistence:Kubernetes/ContainerWithSensitiveMountはコンテナ内に機密性の高い外部ホストパスがマウントされていることを示します。

検出結果をシミュレーションするために、すでに特定のパラメータが設定された事前構成されたマニフェストを使用します:

~/environment/eks-workshop/modules/security/Guardduty/mount/privileged-pod-example.yaml
apiVersion: v1
kind: Pod
metadata:
name: ubuntu-privileged
spec:
containers:
- name: ubuntu-privileged
image: ubuntu
ports:
- containerPort: 22
securityContext:
privileged: true
volumeMounts:
- mountPath: /host-etc
name: host-etc
volumes:
- name: host-etc
hostPath:
path: /etc
restartPolicy: Never
A

SecurityContext: privileged: trueを設定することでPodに完全なroot権限を付与します

B

mountPath: /host-etcは、マップされたホストボリュームがコンテナ内で/host-etcでアクセス可能であることを指定します

C

path: /etcは、ホストシステムの/etcディレクトリがマウントのソースディレクトリになることを指定します

以下のコマンドで上記のマニフェストを適用します:

~$kubectl apply -f ~/environment/eks-workshop/modules/security/Guardduty/mount/privileged-pod-example.yaml
注記

このPodは一度だけ実行され、Completed状態に達するまで実行されます

数分以内に、GuardDuty検出結果コンソールPrivilegeEscalation:Kubernetes/PrivilegedContainerPersistence:Kubernetes/ContainerWithSensitiveMountの2つの検出結果が表示されます。

特権コンテナの検出結果

機密マウントの検出結果

ここでも、検出結果の詳細、アクション、Detective調査を分析する時間を取りましょう。

以下のコマンドを実行してPodをクリーンアップします:

~$kubectl delete -f ~/environment/eks-workshop/modules/security/Guardduty/mount/privileged-pod-example.yaml