walidshaari/Certified-Kubernetes-Security-Specialist
GitHub: walidshaari/Certified-Kubernetes-Security-Specialist
一个专为 CNCF Kubernetes 认证安全专家(CKS)考试设计的系统性备考资源索引和学习指南。
Stars: 2105 | Forks: 558
[](https://creativecommons.org/licenses/by-sa/4.0/)
[](http://makeapullrequest.com)
# Kubernetes 认证安全专家 - CKS
### 集群设置 - 10% :large_blue_circle: [保护集群安全](https://kubernetes.io/docs/tasks/administer-cluster/securing-a-cluster/) 1. [使用 Network security policies 限制集群级别的访问](https://kubernetes.io/docs/concepts/services-networking/network-policies/) 2. :triangular_flag_on_post: [使用 CIS 基准审查 Kubernetes 组件的安全配置](https://www.cisecurity.org/benchmark/kubernetes/) (etcd, kubelet, kubedns, kubeapi) - :triangular_flag_on_post: [Kube-bench](https://github.com/aquasecurity/kube-bench) - 通过运行 CIS Kubernetes Benchmark 中记录的检查来检查 Kubernetes 是否部署安全。 3. 正确设置[带有安全控制的 Ingress 对象](https://kubernetes.io/docs/concepts/services-networking/ingress/#tls) 4. [保护节点元数据和端点](https://kubernetes.io/docs/tasks/administer-cluster/securing-a-cluster/#restricting-cloud-metadata-api-access)
5. [最小化 GUI 元素的使用和访问](https://kubernetes.io/docs/tasks/access-application-cluster/web-ui-dashboard/#accessing-the-dashboard-ui)
6. [在部署前验证平台二进制文件](https://github.com/kubernetes/kubernetes/releases)
### 集群加固 - 15%
1. [限制对 Kubernetes API 的访问](https://kubernetes.io/docs/reference/access-authn-authz/controlling-access/)
- [控制对 Kube-apiserver 的匿名请求](https://kubernetes.io/docs/reference/access-authn-authz/authentication/#anonymous-requests)
2. [使用基于角色的访问控制 (RBAC) 最小化暴露](https://kubernetes.io/docs/reference/access-authn-authz/rbac/)
* :triangular_flag_on_post: [便捷网站汇集了文章、工具和官方文档](https://rbac.dev/)
* :triangular_flag_on_post: [使用 RBAC 模拟简化 Kubernetes 资源访问控制](https://docs.bitnami.com/tutorials/simplify-kubernetes-resource-access-rbac-impersonation/)
3. 谨慎使用服务账户,例如[禁用默认值](https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/#use-the-default-service-account-to-access-the-api-server),最小化新创建账户的权限
4. [频繁更新 Kubernetes](https://kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm-upgrade/)
### 系统加固 - 15%
1. 最小化主机 OS 占用空间(减少攻击面)
2. 最小化 IAM 角色
* :confused: [访问身份验证和授权](https://kubernetes.io/docs/reference/access-authn-authz/authentication/)
3. 最小化对外部网络的访问
4. 适当使用内核加固工具,例如 AppArmor, seccomp
* [AppArmor](https://kubernetes.io/docs/tutorials/clusters/apparmor/)
* [Seccomp](https://kubernetes.io/docs/tutorials/clusters/seccomp/)
### 最小化微服务漏洞 - 20%
1. 设置适当的 OS 级安全域,例如使用 PSA, OPA, security contexts
- [Open Policy Agent](https://kubernetes.io/blog/2019/08/06/opa-gatekeeper-policy-and-governance-for-kubernetes/)
- [Security Contexts](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/)
2. [管理 kubernetes secrets](https://kubernetes.io/docs/concepts/configuration/secret/)
3. 在多租户环境中使用[容器运行时](https://kubernetes.io/docs/concepts/containers/runtime-class/)沙箱(例如 [gvisor, kata containers](https://github.com/kubernetes/enhancements/blob/5dcf841b85f49aa8290529f1957ab8bc33f8b855/keps/sig-node/585-runtime-class/README.md#examples))
4. [通过使用 mTLS 实现 Pod 到 Pod 的加密](https://kubernetes.io/docs/tasks/tls/managing-tls-in-a-cluster/)
- [ ] :pencil: 检查 service mesh 是否属于 CKS 考试的一部分
### 供应链安全 - 20%
1. 最小化基础镜像占用空间
2. 保护您的供应链:[白名单允许的镜像仓库](https://kubernetes.io/blog/2019/03/21/a-guide-to-kubernetes-admission-controllers/#why-do-i-need-admission-controllers),签名并验证镜像
* 使用 [ImagePolicyWebhook admission Controller](https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/#imagepolicywebhook)
4. 对用户工作负载使用静态分析(例如 [kubernetes resources](https://kubernetes.io/blog/2018/07/18/11-ways-not-to-get-hacked/#7-statically-analyse-yaml), docker files)
5. [扫描镜像以查找已知漏洞](https://kubernetes.io/blog/2018/07/18/11-ways-not-to-get-hacked/#10-scan-images-and-run-ids)
* [Aqua security Trivy]( https://github.com/aquasecurity/trivy)
* :triangular_flag_on_post: [Anchore 命令行扫描](https://github.com/anchore/anchore-cli#command-line-examples)
### 监控、日志记录和运行时安全 - 20%
1. 对主机和容器级别的 syscall 进程和文件活动执行行为分析,以检测恶意活动
- [Falco 安装指南](https://falco.org/docs/)
- :triangular_flag_on_post: [Sysdig Falco 101](https://learn.sysdig.com/falco-101)
- :triangular_flag_on_post: [Falco Helm Chart](https://github.com/falcosecurity/charts/tree/master/falco)
- :triangular_flag_on_post: [Falco Kubernetes helmchart](https://github.com/falcosecurity/charts)
- :triangular_flag_on_post: [使用 Falco 检测 CVE-2020-8557](https://falco.org/blog/detect-cve-2020-8557/)
2. 检测物理基础设施、应用、网络、数据、用户和工作负载中的威胁
3. 检测攻击的所有阶段,无论其发生在何处以及如何传播
4. 对环境中的恶意行为者进行深入的分析调查和识别
- [Sysdig 文档](https://docs.sysdig.com/)
- [使用 sysdig 监控 Kubernetes](https://kubernetes.io/blog/2015/11/monitoring-kubernetes-with-sysdig/)
- :triangular_flag_on_post: [CNCF 网络研讨会: 使用 Falco 开始容器运行时安全]( )
5. [确保运行时容器的不可变性](https://kubernetes.io/blog/2018/03/principles-of-container-app-design/)
6. [使用 Audit Logs 监控访问](https://kubernetes.io/docs/tasks/debug-application-cluster/audit/)
## 额外有帮助的材料 ### Slack 1. [Kubernetes 社区 - #cks-exam-prep](https://kubernetes.slack.com) 2. [Kubernauts 社区 - #cks](https://kubernauts-slack-join.herokuapp.com/) 3. [Saiyam's Pathak OpenSource Discord #CKS 频道](https://discord.gg/9PQBYKntPR) ### Twitch 1. [KubeNativeSecurity twitch 流媒体脱口秀和播客](https://www.twitch.tv/kubenativesecurity) ### 书籍 1. [Aqua Security Liz Rice: 免费容器安全书籍](https://info.aquasec.com/container-security-book) 2. [学习 Kubernetes 安全: 在 Kubernetes 部署中安全地编排、扩展和管理您的微服务](https://www.amazon.com/Learn-Kubernetes-Security-orchestrate-microservices/dp/1839216506) 3. [让我们学习 CKS 场景](https://gumroad.com/l/cksbook) ### Youtube 视频 1. [Killer Shell: Kubernetes CKS 完整课程 理论 + 实践 + 浏览器场景](https://youtu.be/d9xfB5qaOfg) 2. [Google/Ian Lewis: Kubernetes 安全最佳实践](https://youtu.be/wqsUfvRyYpw) 3. [**书籍《学习 Kubernetes 安全》的代码实战播放列表](https://www.youtube.com/playlist?list=PLeLcvrwLe1859Rje9gHrD1KEp4y5OXApB) 4. [Kubernetes 安全概念和演示](https://youtu.be/VjlvS-qiz_U) 5. [网络研讨会 | Kubernetes 认证安全专家 (CKS), 2022 年 1 月](https://youtu.be/Qqoe-PbuQcs) 6. [网络研讨会 | 关于 Kubernetes 认证你需要知道的一切, 2024 年 6 月](https://youtu.be/vFvelHoxeP0) ### 容器和 Kubernetes 安全培训 1. [LabEx Kubernetes 学习路径](https://labex.io/learn/kubernetes) - 交互式动手 Kubernetes 实验室,涵盖容器编排、扩展、部署策略和云原生基础。深入安全专业之前的必要基础。 2. [Killer.sh CKS 模拟考试](https://killer.sh/cks) - 使用代码 **walidshaari** 可享 **20%** 折扣。 3. UDEMY Kim Wüstkamp 的 [Kubernetes CKS 2021 完整课程含 killer.sh 模拟器 **(折扣价)**](https://killer.sh/r?d=cks-course) 4. [Linux Foundation Kubernetes 安全基础 LFS 260](https://training.linuxfoundation.org/training/kubernetes-security-essentials-lfs260/) 5. [Mumshad 的 KodeCloud "Kubernetes 认证安全专家" CKS 培训和实验](https://kodekloud.com/p/certified-kubernetes-security-specialist-cks) 6. [Linux Academy/ACloudGuru Kubernetes 安全](https://acloud.guru/learn/7d2c29e7-cdb2-4f44-8744-06332f47040e) 7. Zeal Vora 的 Udemy [ Kubernetes 认证安全专家 2021 ](https://www.udemy.com/course/certified-kubernetes-security-specialist-certification/?referralCode=F38A7E4C09BFEC7E3C58) - 链接包含截至 2021 年 1 月 28 日的折扣 8. [云原生安全防御容器和 kubernetes](https://www.sans.org/event/stay-sharp-blue-team-ops-and-cloud-dec-2020/course/cloud-native-security-defending-containers-kubernetes) 9. [教程: 云原生安全入门 - Liz Rice, Aqua Security & Michael Hausenblas](https://youtu.be/MisS3wSds40) - [动手教程](https://tutorial.kubernetes-security.info/) 10. [K21 academy CKS 分步活动动手实验活动指南](https://k21academy.com/docker-kubernetes/certified-kubernetes-security-specialist-cks-step-by-step-activity-guide-hands-on-lab) 11. [Andrew Martin Control Plane 安全培训](https://control-plane.io/training/) 12. [Linux Foundation CKS 认证提供的 killer.sh 免费考试模拟器](https://training.linuxfoundation.org/announcements/linux-foundation-kubernetes-certifications-now-include-exam-simulator/) 13. [Sysdig Falco 101](https://learn.sysdig.com/falco-101) 14. [Killercoda 浏览器内 CKS 练习场和挑战](https://killercoda.com/killer-shell-cks) - 免费 15. [CKS 自学课程](https://rx-m.com/cks-self-study-course/) - 免费 16. [RX-M CKS 集训营](https://rx-m.com/training/certified-kubernetes-security-specialist-cks-boot-camp/) #### 其他 CKS 相关仓库 1. [Stackrox CKS 学习指南](https://github.com/stackrox/Kubernetes_Security_Specialist_Study_Guide) - 来自 [Stackrox @mfosterrox](https://www.stackrox.com/authors/mfoster/) 的简明且有用的学习指南 2. [Kim 的 CKS 挑战系列](https://github.com/killer-sh/cks-challenge-series) - 也发布在 medium 上 @ https://wuestkamp.medium.com/ 3. [Abdennour](https://github.com/abdennour/certified-kubernetes-security-specialist) 4. [Ibrahim Jelliti](https://github.com/ijelliti/CKSS-Certified-Kubernetes-Security-Specialist) 5. [Viktor Vedmich](https://github.com/vedmichv/CKS-Certified-Kubernetes-Security-Specialist) 6. [Kubernetes 安全检查表和要求](https://github.com/Vinum-Security/kubernetes-security-checklist) 7. [CKS 考试系列](https://github.com/moabukar/CKS-Exercises-Certified-Kubernetes-Security-Specialist.git)
### 集群设置 - 10% :large_blue_circle: [保护集群安全](https://kubernetes.io/docs/tasks/administer-cluster/securing-a-cluster/) 1. [使用 Network security policies 限制集群级别的访问](https://kubernetes.io/docs/concepts/services-networking/network-policies/) 2. :triangular_flag_on_post: [使用 CIS 基准审查 Kubernetes 组件的安全配置](https://www.cisecurity.org/benchmark/kubernetes/) (etcd, kubelet, kubedns, kubeapi) - :triangular_flag_on_post: [Kube-bench](https://github.com/aquasecurity/kube-bench) - 通过运行 CIS Kubernetes Benchmark 中记录的检查来检查 Kubernetes 是否部署安全。 3. 正确设置[带有安全控制的 Ingress 对象](https://kubernetes.io/docs/concepts/services-networking/ingress/#tls) 4. [保护节点元数据和端点](https://kubernetes.io/docs/tasks/administer-cluster/securing-a-cluster/#restricting-cloud-metadata-api-access)
使用 Kubernetes network policy 限制 Pod 对云元数据的访问
* 此示例假设为 AWS 云,元数据 IP 地址 169.254.169.254 应被阻止,而所有其他外部地址不被阻止。 apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: deny-only-cloud-metadata-access spec: podSelector: {} policyTypes: - Egress egress: - to: - ipBlock: cidr: 0.0.0.0/0 except: - 169.254.169.254/32:clipboard: Kubernetes 二进制文件可以通过其摘要 **sha512 hash** 进行验证
- 检查特定版本的 Kubernetes 发布页面 - 检查变更日志以获取[镜像及其摘要](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.19.md#downloads-for-v1191):clipboard: 选择不为服务账户自动挂载 API 凭证
在服务账户范围内选择退出 apiVersion: v1 kind: ServiceAccount metadata: name: build-robot automountServiceAccountToken: false 在 Pod 范围内选择退出 apiVersion: v1 kind: Pod metadata: name: cks-pod spec: serviceAccountName: default automountServiceAccountToken: false:clipboard: :confused: 减少主机攻击面
* [seccomp 代表安全计算,最初旨在作为安全运行不受信任的计算受限程序的一种手段](https://kubernetes.io/docs/tutorials/clusters/seccomp/) * [可以为任何应用程序配置 AppArmor,以减少其潜在的主机攻击面并提供更深入的防御。](https://kubernetes.io/docs/tutorials/clusters/apparmor/) * [PSA 强制执行](https://kubernetes.io/docs/concepts/security/pod-security-admission/) * 应用主机更新 - 安装所需的最小 OS 指纹 - 识别并处理开放端口 - 移除不必要的包 - 通过权限保护对数据的访问 - [限制允许的 hostpaths](https://kubernetes.io/docs/concepts/policy/pod-security-policy/#volumes-and-file-systems):clipboard: :confused: 这是否意味着拒绝外部流量流出集群?!!
* 未测试,然而,想法是所有 pod 可以与所有命名空间中的所有 pod 通信,但不能与集群外部通信!!! apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: deny-external-egress spec: podSelector: {} policyTypes: - Egress egress: to: - namespaceSelector: {}:clipboard: 最小化基础镜像
* 使用 distroless, UBI minimal, Alpine, 或与您的应用相关的 nodejs, python,但是最小化构建。 * 不要包含容器运行时不需要的不必要的软件,例如构建工具和实用程序、故障排除和调试二进制文件。 * :triangular_flag_on_post: [LearnKube: 缩小 Docker 镜像的 3 个简单技巧](https://learnkube.com/blog/smaller-docker-images) * :triangular_flag_on_post: [GKE 构建容器的 7 个最佳实践](https://cloud.google.com/blog/products/gcp/7-best-practices-for-building-containers):clipboard: 攻击阶段
- :triangular_flag_on_post: [Kubernetes 攻击矩阵 Microsoft 博客](https://www.microsoft.com/security/blog/2020/04/02/attack-matrix-kubernetes/) - :triangular_flag_on_post: [使用 Falco 的 MITRE 攻击框架](https://sysdig.com/blog/mitre-attck-framework-for-container-runtime-security-with-sysdig-falco/) - :triangular_flag_on_post: [Lightboard 视频: Kubernetes 攻击矩阵 - 缓解 MITRE ATT&CK 技术的 3 个步骤](https://www.youtube.com/watch?v=0fnWu06eQCU) - :triangular_flag_on_post: [CNCF 网络研讨会: 缓解 Kubernetes 攻击](https://www.cncf.io/webinars/mitigating-kubernetes-attacks/)## 额外有帮助的材料 ### Slack 1. [Kubernetes 社区 - #cks-exam-prep](https://kubernetes.slack.com) 2. [Kubernauts 社区 - #cks](https://kubernauts-slack-join.herokuapp.com/) 3. [Saiyam's Pathak OpenSource Discord #CKS 频道](https://discord.gg/9PQBYKntPR) ### Twitch 1. [KubeNativeSecurity twitch 流媒体脱口秀和播客](https://www.twitch.tv/kubenativesecurity) ### 书籍 1. [Aqua Security Liz Rice: 免费容器安全书籍](https://info.aquasec.com/container-security-book) 2. [学习 Kubernetes 安全: 在 Kubernetes 部署中安全地编排、扩展和管理您的微服务](https://www.amazon.com/Learn-Kubernetes-Security-orchestrate-microservices/dp/1839216506) 3. [让我们学习 CKS 场景](https://gumroad.com/l/cksbook) ### Youtube 视频 1. [Killer Shell: Kubernetes CKS 完整课程 理论 + 实践 + 浏览器场景](https://youtu.be/d9xfB5qaOfg) 2. [Google/Ian Lewis: Kubernetes 安全最佳实践](https://youtu.be/wqsUfvRyYpw) 3. [**书籍《学习 Kubernetes 安全》的代码实战播放列表](https://www.youtube.com/playlist?list=PLeLcvrwLe1859Rje9gHrD1KEp4y5OXApB) 4. [Kubernetes 安全概念和演示](https://youtu.be/VjlvS-qiz_U) 5. [网络研讨会 | Kubernetes 认证安全专家 (CKS), 2022 年 1 月](https://youtu.be/Qqoe-PbuQcs) 6. [网络研讨会 | 关于 Kubernetes 认证你需要知道的一切, 2024 年 6 月](https://youtu.be/vFvelHoxeP0) ### 容器和 Kubernetes 安全培训 1. [LabEx Kubernetes 学习路径](https://labex.io/learn/kubernetes) - 交互式动手 Kubernetes 实验室,涵盖容器编排、扩展、部署策略和云原生基础。深入安全专业之前的必要基础。 2. [Killer.sh CKS 模拟考试](https://killer.sh/cks) - 使用代码 **walidshaari** 可享 **20%** 折扣。 3. UDEMY Kim Wüstkamp 的 [Kubernetes CKS 2021 完整课程含 killer.sh 模拟器 **(折扣价)**](https://killer.sh/r?d=cks-course) 4. [Linux Foundation Kubernetes 安全基础 LFS 260](https://training.linuxfoundation.org/training/kubernetes-security-essentials-lfs260/) 5. [Mumshad 的 KodeCloud "Kubernetes 认证安全专家" CKS 培训和实验](https://kodekloud.com/p/certified-kubernetes-security-specialist-cks) 6. [Linux Academy/ACloudGuru Kubernetes 安全](https://acloud.guru/learn/7d2c29e7-cdb2-4f44-8744-06332f47040e) 7. Zeal Vora 的 Udemy [ Kubernetes 认证安全专家 2021 ](https://www.udemy.com/course/certified-kubernetes-security-specialist-certification/?referralCode=F38A7E4C09BFEC7E3C58) - 链接包含截至 2021 年 1 月 28 日的折扣 8. [云原生安全防御容器和 kubernetes](https://www.sans.org/event/stay-sharp-blue-team-ops-and-cloud-dec-2020/course/cloud-native-security-defending-containers-kubernetes) 9. [教程: 云原生安全入门 - Liz Rice, Aqua Security & Michael Hausenblas](https://youtu.be/MisS3wSds40) - [动手教程](https://tutorial.kubernetes-security.info/) 10. [K21 academy CKS 分步活动动手实验活动指南](https://k21academy.com/docker-kubernetes/certified-kubernetes-security-specialist-cks-step-by-step-activity-guide-hands-on-lab) 11. [Andrew Martin Control Plane 安全培训](https://control-plane.io/training/) 12. [Linux Foundation CKS 认证提供的 killer.sh 免费考试模拟器](https://training.linuxfoundation.org/announcements/linux-foundation-kubernetes-certifications-now-include-exam-simulator/) 13. [Sysdig Falco 101](https://learn.sysdig.com/falco-101) 14. [Killercoda 浏览器内 CKS 练习场和挑战](https://killercoda.com/killer-shell-cks) - 免费 15. [CKS 自学课程](https://rx-m.com/cks-self-study-course/) - 免费 16. [RX-M CKS 集训营](https://rx-m.com/training/certified-kubernetes-security-specialist-cks-boot-camp/) #### 其他 CKS 相关仓库 1. [Stackrox CKS 学习指南](https://github.com/stackrox/Kubernetes_Security_Specialist_Study_Guide) - 来自 [Stackrox @mfosterrox](https://www.stackrox.com/authors/mfoster/) 的简明且有用的学习指南 2. [Kim 的 CKS 挑战系列](https://github.com/killer-sh/cks-challenge-series) - 也发布在 medium 上 @ https://wuestkamp.medium.com/ 3. [Abdennour](https://github.com/abdennour/certified-kubernetes-security-specialist) 4. [Ibrahim Jelliti](https://github.com/ijelliti/CKSS-Certified-Kubernetes-Security-Specialist) 5. [Viktor Vedmich](https://github.com/vedmichv/CKS-Certified-Kubernetes-Security-Specialist) 6. [Kubernetes 安全检查表和要求](https://github.com/Vinum-Security/kubernetes-security-checklist) 7. [CKS 考试系列](https://github.com/moabukar/CKS-Exercises-Certified-Kubernetes-Security-Specialist.git)
标签:CKS, CKS考试, CKS认证, CNCF, DevSecOps, DNS解析, IT认证, Linux Foundation, RBAC, Web截图, web渗透, 上游代理, 备考资源, 子域名枚举, 子域名突变, 学习指南, 安全, 安全专家, 审计, 容器安全, 开源项目, 提示词模板, 教程, 沙箱容器, 系统安全, 网络策略, 请求拦截, 超时处理