# 安全扫描类型 在Kubernetes(简称K8s)环境中,安全扫描是确保集群安全性的关键措施之一。其中,合规性扫描(基于CIS Benchmark)、权限扫描(基于kube-audit审计功能)、漏洞扫描(基于 kube-hunter)是三种常见且重要的安全扫描手段: - 合规性扫描:基于 [CIS Benchmark](https://github.com/aquasecurity/kube-bench/tree/main/cfg) 对集群节点进行安全扫描。CIS Benchmark 是一套全球公认的最佳实践标准,为 Kubernetes 集群提供了详细的安全配置指南和自动化检查工具(如Kube-Bench),帮助组织确保其K8s集群符合安全基线要求,保护系统和数据免受威胁。 - 权限扫描:基于kube-audit审计功能。权限扫描主要解决集群访问控制和操作透明度的问题。通过审计日志,集群管理员能够追溯集群资源的访问历史,识别异常行为,如未经授权的访问、敏感数据的泄露、有安全漏洞的操作记录等。这对于故障排查、安全事件响应以及满足合规性要求至关重要。此外,权限扫描还可以帮助组织发现潜在的权限滥用问题,及时采取措施防止安全事件的发生。 - 漏洞扫描:基于 kube-hunter,主要解决 Kubernetes 集群中存在的已知漏洞和配置错误问题。kube-hunter 通过模拟攻击行为,能够识别集群中可被恶意利用的漏洞,如未授权访问、暴露的服务和API端点、配置错误的角色和绑定策略等。特别地,kube-hunter能够识别并报告 CVE 漏洞,这些漏洞如果被恶意利用,可能导致数据泄露、服务中断等严重后果。[CVE 漏洞](https://www.mitre.org/)是由国际知名的安全组织如MITRE所定义和维护的,CVE数据库为软件和固件中的已知漏洞提供了唯一标识符,成为全球安全社区共同遵循的标准。kube-hunter 通过利用 CVE 数据库中的信息,能够帮助用户快速识别并响应Kubernetes集群中的安全威胁。 ## 合规性扫描 合规性扫描的对象是集群节点。扫描结果中会列出扫描项以及扫描结果,并针对未通过的扫描项给出修复建议。有关扫描时用到的具体安全规则,可参考 [CIS Kubernetes Benchmark](https://www.cisecurity.org/benchmark/kubernetes) 检查不同类型的节点时,扫描的侧重点有所不同。 - 扫描控制平面节点(Controller) - 关注 __API Server__ 、 __controller-manager__ 、 __scheduler__ 、 __kubelet__ 等系统组件的安全性 - 检查 Etcd 数据库的安全配置 - 检查集群身份验证机制、授权策略和网络安全配置是否符合安全标准 - 扫描工作节点(Worker) - 检查 kubelet、Docker等容器运行时的配置否符合安全标准 - 检查容器镜像是否经过信任验证 - 检查节点的网络安全配置否符合安全标准 !!! tip 使用合规性扫描时,需要先创建[扫描配置](cis/config.md),然后基于该配置创建[扫描策略](cis/policy.md)。执行扫描策略之后,可以[查看扫描报告](cis/report.md)。 ## 权限扫描 权限扫描侧重于权限问题引发的安全漏洞。权限扫描可以帮助用户识别 Kubernetes 集群中的安全威胁,标识哪些资源需要进行进一步的审查和保护措施。通过执行这些检查项,用户可以更清楚、更全面地了解自己的 Kubernetes 环境,确保集群环境符合 Kubernetes 的最佳实践和安全标准。 具体而言,权限扫描支持以下操作: - 扫描集群中的所有节点的健康状态。 - 扫描集群组件的运行状况,如 __kube-apiserver__ 、 __kube-controller-manager__ 、 __kube-scheduler__ 等。 - 扫描安全配置:检查 Kubernetes 的安全配置 - API 安全:启用了不安全的 API 版本,是否设置了适当的 RBAC 角色和权限限制等 - 容器安全:是否使用了不安全的 Image、是否开放了特权模式,是否设置了合适的安全上下文等 - 网络安全:是否启用了合适的网络策略来限制流量,是否使用了 TLS 加密等 - 存储安全:是否启用了适当的加密、访问控制等。 - 应用程序安全:是否设置了必要的安全措施,例如密码管理、跨站脚本攻击防御等。 - 提供警告和建议:建议集群管理员执行的安全最佳实践,例如定期轮换证书、使用强密码、限制网络访问等。 !!! tip 使用合规性扫描时,需要先创建扫描策略。执行扫描策略之后,可以查看扫描报告。详情可参考[安全扫描](audit.md)。 ## 漏洞扫描 漏洞扫描侧重于扫描潜在的恶意攻击和安全漏洞,例如远程代码执行、SQL 注入、XSS 攻击等,以及一些针对 Kubernetes 特定的攻击。最终的扫描报告会列出集群中存在的安全漏洞,并提出修复建议。 !!! tip 使用合规性扫描时,需要先创建扫描策略。执行扫描策略之后,可以查看扫描报告。详情可参考[漏洞扫描](hunter.md)。