新CKS
Kuberstronautへの道のラスボスとして君臨しているCKSですが、Certified Kubernetes Security Specialist (CKS) プログラムの変更 が2024年10月15日付けで実行されました。
主に変わった部分は「対象領域とコンピテンシー」かと思われます。
実質的にはCKSの試験範囲が変わっています。
旧CKSの試験範囲をちゃんと見ていませんでしたが、これを機に詳しくチェックしてみようと思います。
対象領域とコンピテンシー
公式サイトからそのまま持ってきました。
killer codaのシナリオに対応してるっぽいものがある場合は、それぞれ当ブログで書いた解説記事のリンクを付与しています。
2024/10/27追記
killer shellで対応してそうな問題を追記しました。
一対一対応してる感じじゃないのでざっくり書いています。
クラスター設定15%
- ネットワーク セキュリティ ポリシーを使用してクラスタ レベルのアクセスを制限する
- Question 8 | CiliumNetworkPolicy
- Question 13 | Restrict access to Metadata Server
- CISベンチマークを使用して、Kubernetesコンポーネントのセキュリティ構成を確認する(etcd、kubelet、kubedns、kubeapi)
- Question 5 | CIS Benchmark
- TLSを使用してIngressを適切に設定する
- Question 15 | Configure TLS on Ingress
- ノードのメタデータとエンドポイントを保護する
- Question 13 | Restrict access to Metadata Server
- デプロイ前にプラットフォーム バイナリを確認する
- Question 6 | Verify Platform Binaries
- Question 23 | ImagePolicyWebhook
「ノードのメタデータとエンドポイントを保護する」
に関してはNetworkPolicyのNetworkPolicy Metadata Protectionが対応してるのかな?
「デプロイ前にプラットフォーム バイナリを確認する」
は同じバージョンでも環境が違うとバイナリのハッシュが変わることが学べるVerify Platform Binariesかな。
あとはコンテナイメージのdigestを確認するのとかか?と思ったけどこれImagePolicyWebhook Setupか。そんな気がする
クラスター強化15%
- ロール ベース アクセス コントロールを使用して、露出を最小限に抑える
- Preview Question 1(RBAC)
- Question 1 | Contexts
- サービスアカウントを使用する際の注意事項を実践する(新しく作成したサービスアカウントについてのデフォルト禁止や権限の最小化など)
- Kubernetes APIへのアクセスを制限する
- Question 3 | Apiserver Security
- Question 4 | Pod Security Standard
- Question 9 | AppArmor Profile
- 脆弱性を回避するためにKubernetesをアップグレードする
- Question 7 | KubeletConfiguration
- Question 20 | Update Kubernetes
「Kubernetes APIへのアクセスを制限する」
はRBACかな?一つ目と被るけど。
「脆弱性を回避するためにKubernetesをアップグレードする」
はたぶんない。
んでこれ大変やから出てほしくないな~。
CKAやったんやから許してほしい。
システムの強化10%
- ホストOSのフットプリントを最小化する(攻撃対象を減らす)
- System Hardening Close Open PortsとかSystem Hardening Manage Packagesとか。
- Question 22 | Manual Static Security Analysis
- 最小権限のIDとアクセス管理の使用
- RBACか?あとはSAとか?
- ネットワークへの外部アクセスを最小限に抑える
- Question 3 | Apiserver Security
- AppArmor、seccompなどのカーネル強化ツールを適切に使用する
- Question 9 | AppArmor Profile
「AppArmor、seccompなどのカーネル強化ツールを適切に使用する」
について、Killer codaにはseccompをしっかり扱うシナリオはなかったです。
マイクロサービスの脆弱性を最小限に抑える20%
- 適切なポッドセキュリティ標準を使用する
- pod security standardとかpod security admissionとかかな。
- Question 4 | Pod Security Standard
- Kubernetesシークレットを管理する(1, 2, 3)
- Question 11 | Secrets in ETCD
- Question 12 | Hack Secrets
- Preview Question 1 (RBAC)
- 分離技術(マルチテナント、サンドボックスコンテナなど)を理解して実装する
- gVisorのみ。kata containerは未対応。
- Question 10 | Container Runtime Sandbox gVisor
- Ciliumを使用してPod間暗号化を実装する
- Ciliumはkiller codaでは一切出てこず。新CKSから出てきたのかな?
- Question 8 | CiliumNetworkPolicy(暗号化とは違う…??)
- Enforce Mutual Authenticationのことか?これならKiller shellでやったぞ!?
サプライチェーンのセキュリティ20%
- 基本画像(ベースイメージの誤訳と思われる)のフットプリントを最小化する
- Question 16 | Docker Image Attack Surface
- Question 22 | Manual Static Security Analysis
- サプライチェーンを理解する(例:SBOM、CI/CD、アーティファクトリポジトリ)
- 何が出てくるか想像つかない。DockerHubは出てきそう。Tektonとかも出てくるのか?
- Question 18 | SBOM
- サプライ チェーンのセキュリティを確保する (許可されたレジストリ、アーティファクトの署名と検証など)
- これもわからん。ImagePolicyWebhook Setupはありそう。
- ユーザーワークロードとコンテナイメージの静的分析を実行する(例:Kubesec、KubeLinter)
- Image Vulnerability Scanning Trivyドンピシャやけど例に出てきてないから試験には出なさそう……
モニタリング、ロギング、ランタイムセキュリティ20%
- 行動分析を実行して悪意のあるアクティビティを検出する
- Question 12 | Hack Secrets
- Question 2 | Runtime Security with Falco
- 物理インフラ、アプリ、ネットワーク、データ、ユーザー、およびワークロード内の脅威を検出する
- これKubernetes関係なさそう。Linuxコマンド使えるようになっとけよってことかな。
- Question 14 | Syscall Activity
- Preview Question 3 (port)
- 環境内の攻撃の段階と悪意のある行為者を調査して特定する
- ログ調査ってこと?Falcoも近い感じがするけど。
- Question 2 | Runtime Security with Falco
- 実行時のコンテナの不変性を確保する
- Question 19 | Immutable Root FileSystem
- Kubernetes監査ログを使用してアクセスを監視する
- Preview Question 2 (Audit Log)
まとめ
Killer coda以外で対策すべきなのは以下の項目です。
- ノードのメタデータとエンドポイントを保護する
- デプロイ前にプラットフォーム バイナリを確認する
- Kubernetes APIへのアクセスを制限する
- 脆弱性を回避するためにKubernetesをアップグレードする
- seccomp
- 適切なポッドセキュリティ標準を使用する
- Ciliumを使用してPod間暗号化を実装する
- サプライチェーンを理解する(例:SBOM、CI/CD、アーティファクトリポジトリ)
- サプライ チェーンのセキュリティを確保する (許可されたレジストリ、アーティファクトの署名と検証など)
- Kubesec、KubeLinter
- 物理インフラ、アプリ、ネットワーク、データ、ユーザー、およびワークロード内の脅威を検出する
- 環境内の攻撃の段階と悪意のある行為者を調査して特定する
逆に言うと、これ以外の項目はKiller codaで賄えます!
是非CKS対策にはKiller codaを使ってみてください。完全無料です。
おまけ
Killercodaで対応できていない項目について、
「リスクから学ぶ Kubernetesコンテナセキュリティ コンテナ開発者がおさえておくべき基礎知識」
が大いに参考になります。
ハンズオンや図が豊富でとてもわかりやすくて、おすすめです。
(なぜか自分のtwitterはセンシティブ表示されることが多いんですが、全くセンシティブではないので安心してください)
あとは参考になりそうなCKS対策記事を載せておきます。
いくつか記事を探してみましたが、やはりこの2記事が双璧をなしてますねえ。