ビュー:
プロファイル適用性: レベル1
Kubernetesでコンテナのシステムコールを監査する方法の一つは、seccompツールを使用することです。このツールはデフォルトでは無効になっていますが、コンテナのシステムコールの能力を制限するために使用でき、カーネルの攻撃領域を減らします。seccompは、監査プロファイルを使用して行われているコールをログに記録することもできます。
カスタムseccompプロファイルは、許可、拒否、またはログ記録されるシステムコールと、指定されていないコールに対するデフォルトアクションを定義します。
すべてのシステムコールをログに記録することで、管理者は標準操作に必要なシステムコールを把握し、システム機能を損なうことなくseccompプロファイルをさらに制限することができます。また、管理者がPodの標準操作パターンのベースラインを確立するのにも役立ち、このパターンからの大きなずれを特定することで、悪意のある活動の兆候を見つけることができます。

監査

次のコマンドを実行し、ポッドとコンテナにseccompが構成されていることを確認してください:
kubectl get pods --all-namespaces
ポッドとコンテナがその仕様でseccompを構成していることを確認してください:
  • spec.securityContext.seccompProfile.typeRuntimeDefault です
アノテーション値を確認してください:
  • 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: LocalhostlocalhostProfile: myseccomppolicy.jsonの2つのフィールドも含める必要があります。
ポッドおよびコンテナの構成では、spec.securityContext.seccompProfile.typespec.containers[*].securityContext.seccompProfile、およびspec.initContainers[*].securityContext.seccompProfileRuntimeDefaultに設定します。
以下は、seccompProfileをRuntimeDefaultに設定するポッドとそのコンテナの例です。
...
spec:
  securityContext:
    seccompProfile:
      type: RuntimeDefault 
  template:
    spec:
      containers:
      - ...
        securityContext:
          seccompProfile: RuntimeDefault