プロファイル適用性: レベル1
Kubernetesでコンテナのシステムコールを監査する方法の一つは、seccompツールを使用することです。このツールはデフォルトでは無効になっていますが、コンテナのシステムコールの能力を制限するために使用でき、カーネルの攻撃領域を減らします。seccompは、監査プロファイルを使用して行われているコールをログに記録することもできます。
カスタムseccompプロファイルは、許可、拒否、またはログ記録されるシステムコールと、指定されていないコールに対するデフォルトアクションを定義します。
すべてのシステムコールをログに記録することで、管理者は標準操作に必要なシステムコールを把握し、システム機能を損なうことなくseccompプロファイルをさらに制限することができます。また、管理者がPodの標準操作パターンのベースラインを確立するのにも役立ち、このパターンからの大きなずれを特定することで、悪意のある活動の兆候を見つけることができます。
監査
次のコマンドを実行し、ポッドとコンテナにseccompが構成されていることを確認してください:
kubectl get pods --all-namespaces
ポッドとコンテナがその仕様でseccompを構成していることを確認してください:
spec.securityContext.seccompProfile.type
はRuntimeDefault
です
アノテーション値を確認してください:
seccomp.security.alpha.kubernetes.io/pod
はポッドのruntime/default
ですcontainer.seccomp.security.alpha.kubernetes.io/<container name>
はコンテナのruntime/default
です
修復
Pod内でカスタムseccompプロファイルを有効にするには、Kubernetes管理者はseccompプロファイルのJSONファイルを
/var/lib/kubelet/seccomp/
ディレクトリに書き込み、PodのsecurityContextにseccompProfile
を追加します。カスタム
seccompProfile
には、Type: Localhost
とlocalhostProfile: myseccomppolicy.json
の2つのフィールドも含める必要があります。ポッドおよびコンテナの構成では、
spec.securityContext.seccompProfile.type
、spec.containers[*].securityContext.seccompProfile
、およびspec.initContainers[*].securityContext.seccompProfile
をRuntimeDefault
に設定します。以下は、seccompProfileを
RuntimeDefault
に設定するポッドとそのコンテナの例です。... spec: securityContext: seccompProfile: type: RuntimeDefault template: spec: containers: - ... securityContext: seccompProfile: RuntimeDefault