在构建和部署云原生应用程序的过程中,开发人员和安全团队的目标经常会相互矛盾。一是加快应用交付的力量,而后者有时被视为创新引擎的障碍。实际上,安全性和缺乏安全性都有可能减缓创新。
研究表明,如果不解决安全问题,会导致应用程序部署延迟。DevSecOps 作为一门学科,通过在开发和运营团队之间插入安全性来拒绝信息安全和开发团队之间的二分法。DevSecOps 将安全视为各个团队之间的共同责任,并且基于将安全工具和流程嵌入到现有的开发人员和运营(或 DevOps)工作流中,并尽可能实现自动化。
以下是开源 DevSecOps 工具的非全面列表,可帮助您开始在 Kubernetes 中构建、部署和运行更安全的容器化应用程序。
1、Anchore
Anchore是一个开源图像扫描器和漏洞管理工具,可检测 Docker 图像中的已知漏洞。Anchore Toolbox是一组独立的开源工具,包括Syft和Grype。Syft 可以通过查看您的镜像和文件系统来生成软件材料清单,而 Grype 可以扫描镜像中的漏洞。当与 Anchore Engine 结合并集成到您的 CI/CD 工具中时,用户可以在其现有工作流程中自动执行安全策略评估和实施。借助Kubernetes 准入控制器,Anchore 可以在您的构建和运行阶段扫描容器镜像。
Anchore的用例
- 镜像漏洞扫描
- 强制执行
- 容器镜像的软件材料清单
2、Checkov
Checkov是一种开源静态代码分析工具,可帮助实施 AWS、Azure 和 Google Cloud 的安全性和合规性策略。Checkov 有助于在 Terraform、Cloudformation、Kubernetes 和其他基础设施即代码系统的构建期间防止云配置错误。由于用户驱动的错误配置是主要的安全问题,Checkov 可以成为帮助降低工作负载风险的重要工具。
Checkov 的用例
- 基础设施即代码扫描
- 云配置管理
- Compliance
3、Clair
Clair是一个用于 Docker 容器的开源容器镜像漏洞扫描器和静态分析工具。Clair 用于开源项目Quay,一个独立的容器注册表。如果您希望避免商业选项的成本,Clair 是一个很好的起点,特别是因为 Clair 是许多商业容器扫描解决方案的开源构建块。
Clair的用例
- 镜像漏洞扫描
4、Falco
Falco是一个孵化中的 CNCF 开源项目,它通过消耗内核事件并将它们与来自 Kubernetes 的数据相结合来在 Linux 系统调用期间通知用户违反策略,从而提供运行时可见性和自省。Falco 是一个受欢迎的项目,在认证 Kubernetes 安全专家考试 (CKS)中用于评估应试者检查运行时事件的能力。
Falco 的用例
- 运行时容器分析
- 威胁检测
5、Kube-bench
Kube-bench是一个开源安全工具,它运行检查以确保 Kubernetes 的部署符合CIS Kubernetes Benchmark。Kube-bench 最适合用于本地环境中的合规性,因为托管 Kubernetes 集群保护控制平面组件以保证正常运行时间、高可用性和 SLA。Kube-bench 也出现在CKS 考试中。
kube-bench 的用例
- 配置管理
- 合规
6、Kube-hunter
kube-bench 扫描 Kubernetes 的部署方式,而 kube-hunter 查看部署在 Kubernetes 中的集群以检测可利用的错误配置,例如暴露的 Kubernetes Dashboard。有一堆主动和被动测试将显示您的错误配置所在。您可以从集群外部、集群机器上或作为集群中的 pod 运行 kube-hunter。每个场景都会让您对集群的安全状况有不同的看法。
kube-hunter 的用例
- 配置管理
- 风险和影响
7、KubeLinter
KubeLinter是 Kubernetes YAML 文件和 HELM 图表的静态分析工具,可帮助确保它们遵循生产准备和安全性的最佳实践。KubeLinter 附带了一些默认检查,也可以配置为运行自定义检查。KubeLinter 作为 Go 二进制文件开发,与 kubectl 具有相同的包,比其他策略工具更直接,并且专注于开发人员使用和 CI 集成。KubeLinter 利用配置文件允许团队在其 CI 应用程序中扩展他们的策略。
KubeLinter 的用例
- 配置管理
- YAML/Helm chart linting
8、开放策略代理(Open Policy Agent)
Open Policy Agent (OPA) 是一个毕业的 CNCF 开源项目,它使用户能够使用 OPA 的通用策略引擎来标准化他们的策略创建和执行。除了 Kubernetes,OPA 还可以在使用 Envoy、Terraform 和 Kafka 等云原生技术时强制执行策略。OPA 策略甚至可以转换为 SQL 以在您的数据库中强制执行规则。
- Policy enforcement
9、Terrascan
Terrascan是一个建立在 OPA 之上的新兴开源解决方案。Terrascan 拥有超过 500 多个安全最佳实践策略,适用于各种应用程序,包括 Terraform、Kubernetes (JSON/YAML)、AWS、Azure、GCP、Kubernetes 和 GitHub。Terrascan 显示了 OPA 引擎的价值,并通过推荐默认值而不是让用户使用Rego来扩展它。
Terrascan 的用例
- 配置管理
- YAML/Helm chart linting
总结
如果实施得当,DevSecOps 原则将在整个软件开发生命周期中持续集成,将安全责任进一步向左转移,以最大限度地减少后期安全控制的操作开销,并使开发人员和 DevOps 最终用户成为安全用户,允许他们独立地在其工作流程中实施安全控制。
随着 Kubernetes 等云原生技术的出现,作为在云和混合环境中管理应用程序的标准,安全团队需要充分了解这些技术以建立适当的护栏和控制。DevOps 团队必须在他们用于在 Kubernetes 环境中配置基础设施和构建软件应用程序的工作流和工具链中集成强大的安全保护。当与正确的人员和流程相结合时,这个开源安全工具列表可以帮助您的组织实现这些目标,并以新的更好的方式实现安全自动化。