跳转至

安全扫描类型

在Kubernetes(简称K8s)环境中,安全扫描是确保集群安全性的关键措施之一。其中,合规性扫描(基于CIS Benchmark)、权限扫描(基于kube-audit审计功能)、漏洞扫描(基于 kube-hunter)是三种常见且重要的安全扫描手段:

  • 合规性扫描:基于 CIS Benchmark 对集群节点进行安全扫描。CIS Benchmark 是一套全球公认的最佳实践标准,为 Kubernetes 集群提供了详细的安全配置指南和自动化检查工具(如Kube-Bench),帮助组织确保其K8s集群符合安全基线要求,保护系统和数据免受威胁。

  • 权限扫描:基于kube-audit审计功能。权限扫描主要解决集群访问控制和操作透明度的问题。通过审计日志,集群管理员能够追溯集群资源的访问历史,识别异常行为,如未经授权的访问、敏感数据的泄露、有安全漏洞的操作记录等。这对于故障排查、安全事件响应以及满足合规性要求至关重要。此外,权限扫描还可以帮助组织发现潜在的权限滥用问题,及时采取措施防止安全事件的发生。

  • 漏洞扫描:基于 kube-hunter,主要解决 Kubernetes 集群中存在的已知漏洞和配置错误问题。kube-hunter 通过模拟攻击行为,能够识别集群中可被恶意利用的漏洞,如未授权访问、暴露的服务和API端点、配置错误的角色和绑定策略等。特别地,kube-hunter能够识别并报告 CVE 漏洞,这些漏洞如果被恶意利用,可能导致数据泄露、服务中断等严重后果。CVE 漏洞是由国际知名的安全组织如MITRE所定义和维护的,CVE数据库为软件和固件中的已知漏洞提供了唯一标识符,成为全球安全社区共同遵循的标准。kube-hunter 通过利用 CVE 数据库中的信息,能够帮助用户快速识别并响应Kubernetes集群中的安全威胁。

合规性扫描

合规性扫描的对象是集群节点。扫描结果中会列出扫描项以及扫描结果,并针对未通过的扫描项给出修复建议。有关扫描时用到的具体安全规则,可参考 CIS Kubernetes Benchmark

检查不同类型的节点时,扫描的侧重点有所不同。

  • 扫描控制平面节点(Controller)

    • 关注 API Servercontroller-managerschedulerkubelet 等系统组件的安全性
    • 检查 Etcd 数据库的安全配置
    • 检查集群身份验证机制、授权策略和网络安全配置是否符合安全标准
  • 扫描工作节点(Worker)

    • 检查 kubelet、Docker等容器运行时的配置否符合安全标准
    • 检查容器镜像是否经过信任验证
    • 检查节点的网络安全配置否符合安全标准

Tip

使用合规性扫描时,需要先创建扫描配置,然后基于该配置创建扫描策略。执行扫描策略之后,可以查看扫描报告

权限扫描

权限扫描侧重于权限问题引发的安全漏洞。权限扫描可以帮助用户识别 Kubernetes 集群中的安全威胁,标识哪些资源需要进行进一步的审查和保护措施。通过执行这些检查项,用户可以更清楚、更全面地了解自己的 Kubernetes 环境,确保集群环境符合 Kubernetes 的最佳实践和安全标准。

具体而言,权限扫描支持以下操作:

  • 扫描集群中的所有节点的健康状态。

  • 扫描集群组件的运行状况,如 kube-apiserverkube-controller-managerkube-scheduler 等。

  • 扫描安全配置:检查 Kubernetes 的安全配置

    • API 安全:启用了不安全的 API 版本,是否设置了适当的 RBAC 角色和权限限制等
    • 容器安全:是否使用了不安全的 Image、是否开放了特权模式,是否设置了合适的安全上下文等
    • 网络安全:是否启用了合适的网络策略来限制流量,是否使用了 TLS 加密等
    • 存储安全:是否启用了适当的加密、访问控制等。
    • 应用程序安全:是否设置了必要的安全措施,例如密码管理、跨站脚本攻击防御等。
  • 提供警告和建议:建议集群管理员执行的安全最佳实践,例如定期轮换证书、使用强密码、限制网络访问等。

Tip

使用合规性扫描时,需要先创建扫描策略。执行扫描策略之后,可以查看扫描报告。详情可参考安全扫描

漏洞扫描

漏洞扫描侧重于扫描潜在的恶意攻击和安全漏洞,例如远程代码执行、SQL 注入、XSS 攻击等,以及一些针对 Kubernetes 特定的攻击。最终的扫描报告会列出集群中存在的安全漏洞,并提出修复建议。

Tip

使用合规性扫描时,需要先创建扫描策略。执行扫描策略之后,可以查看扫描报告。详情可参考漏洞扫描