プロファイル適用性: レベル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
