作者:Fairwinds战略副总裁Joe Pelletier。客座文章之前在Fairwinds博客上发表。
https://www.fairwinds.com/blog/kubernetes-config-security-threats
保护Kubernetes中的工作负载是整个集群安全性的一个重要部分。总体目标应该是确保容器以尽可能少的特权运行。这包括避免特权升级、不以根(root)用户身份运行容器以及尽可能使用只读文件系统。
由于疏忽或缺乏经验,安全漏洞可能会进入生产。在团队试图平衡工程速度与安全的反动速度时,交付速度与关键的安全防护措施常常会产生分歧。这种平衡行为可能导致混乱的Kubernetes配置和不必要的风险。如果开发人员由于缺乏经验或疏忽而错误地配置工作负载,就会出现问题。
不幸的是,个别应用程序开发人员经常忽略每个工作负载的安全配置。例如,过度使用具有根访问权的部署以使某些东西正常工作通常更容易。强制每个贡献者设计他们自己的安全配置只会确保不一致性和错误。
导致脆弱部署的常见Kubernetes安全配置
那么,您如何快速和主动识别Kubernetes的安全错误配置,以防止破坏?根据我们的经验,常见的Kubernetes安全配置错误会导致部署脆弱。
不识别和解决这些配置可能会产生负面的业务后果。例如,如果容器以root身份运行,但不一定需要此级别的访问权限,则恶意容器可能拥有窃取数据或对系统造成其他损害的特权。
https://github.com/FairwindsOps/polaris/blob/master/checks/insecureCapabilities.yaml
https://github.com/FairwindsOps/polaris/blob/master/checks/dangerousCapabilities.yaml
为了解决这些常见的kubernetes安全威胁,团队需要一种方法来快速检查kubernetes pods和容器的securityContext属性中的配置。通过审计工作负载并验证弱点、容器漏洞和配置错误的部署配置,使用配置验证工具提供了对组织Kubernetes安全态势的可见性,这将有所帮助。
有一些开放源码工具和配置验证软件可以显示配置结果,保存所有集群结果的历史记录,并提供纠正指导。寻找一种可以让您跟踪并确定安全性、效率和可靠性问题的优先级,跨团队协作,以及在应用程序从开发转移到生产时应用最佳实践的方法。
了解更多关于Fairwinds Insights或可从GitHub免费下载的开放源码工具Polaris。
https://www.fairwinds.com/insights
https://github.com/FairwindsOps/polaris