云原生安全开源项目汇总


概览

云原生的发展离不开CNCF(Cloud Native Computing Foundation)的推动和支持。在CNCF众多的孵化项目中,不仅仅包含编排调度、监控分析类型项目,还包括了一系列“安全与合规”类型的项目,从而使得云原生开源生态更完整,也可以帮助采用云原生技术的企业能够降低安全风险。在本篇文章中,我们对CNCF的安全开源项目进行一下梳理。

根据成熟度不同,CNCF项目分为Sandbox(沙盒)、Incubating(孵化)和Graduation(毕业)三个阶段。
1.png

CNCF项目成熟度等级划分

从图中可以看出,沙盒-孵化-毕业所代表的成熟度依次升高。其中,被CNCF接受并成为Sandbox项目需要至少2个TOC的Sponsor的支持。孵化项目必须提供至少三个独立的终端用户成功地使用在生产环境中的资料信息,在质量和范围方面都得到证明。而要达到毕业,则需要在孵化标准之上满足更严苛的要求,代表这是一个“跨越鸿沟”的项目。实际统计来说,目前毕业的安全开源项目也仅有两个。
2.jpg

此外还有其他开源项目,虽然没有直接托管在CNCF旗下,但也跟CNCF有密切的联系:
3.jpg

项目举例

我们抽取部分典型的项目如OPA、TUF、Falco、Kube-hunter、Trivy介绍,分别涉及云原生安全的不同领域,覆盖集群安全策略管理、安全更新框架、容器运行时安全检测、集群安全扫描以及镜像扫描。

OPA:Open Policy Agent

OPA是一个全场景通用的轻量策略引擎(Policy Engine),它提供了声明式表达的Rego语言来描述策略,并将策略的决策offload到OPA,从而将策略的决策过程从策略的执行中解耦。OPA可适用于多种场景,比如Kubernetes、Terraform、Envoy等,以前需要使用到Policy的场景理论上都可以用OPA来做一层抽象。

Kubernetes中可以使用OPA充当Kubernetes准入控制器。OPA拦截发送到API服务器的API调用,并验证和/或修改它们。与原生Pod安全策略不同,OPA可以应用于任何Kubernetes资源,用户可以配置统一的OPA策略,适用于系统的不同组件,而不仅仅是Pod。
4.png

OPA在Kubernetes中的使用场景

TUF:The Update Framework

The Update Framework(TUF)是一个安全更新框架,它是一种构建系统弹性的方法,可以抵御关键的入侵和其他可能传播恶意软件或危及存储库的攻击。TUF充分考虑到了各个环节可能出现的攻击,在提供更新功能的同时,也可以很好的保护现有程序或者是验证待更新版本的安全和可靠性。实现机制主要是提供了一套标准规范,并在各个环节中增加了更多的元数据和相关的检查,包括签名信息,文件hash,元数据签名和过期时间等。
5.png

TUF于2019年从CNCF正式毕业

TUF已成为保护软件更新系统安全的行业标准,包括亚马逊在内的领先的基于云的服务提供商都在使用它,其中包括最近发布了TUF的新实现的Amazon,还有Microsoft、Google、Cloudflare、Datadog、DigitalOcean、Docker、IBM、Red Hat与VMware等。

Falco

Falco最初是由Sysdig创建的,后来加入CNCF孵化器,成为首个加入CNCF的运行时安全项目。Falco可以对Linux系统调用行为进行监控。Falco的主要功能如下:
  • 从内核运行时采集Linux系统调用
  • 提供了一套强大的规则引擎,用于对Linux系统调用行为进行监控
  • 当系统调用违反规则时,会触发相应的告警


Falco提供了一组默认规则,可以监控内核态的异常行为。例如:
  • 使用setns等工具改变进程的namespace信息
  • 对于系统目录/etc,/usr/bin,/usr/sbin的读写行为
  • 文件Ownership、Mode的变更


但事实上Falco离上生产环境还有一段距离,需要安装内核驱动,侵入式较强,虽然已支持eBPF,但其稳定性和性能还待验证。

Kube-hunter

Kube-hunter是一个用于Kubernetes渗透测试的开源工具。只需提供Kubernetes集群的IP或者DNS名称,Kube-hunter就会探查集群中的安全漏洞——这个过程就像是自动化的渗透测试。它有被动、主动两种模式,默认为被动模式,可以用来探测企业用户Kubernetes环境内潜在的弱点。如果切换为主动模式,则会查找其他弱点,利用发现的弱点进行进一步探索,因此在使用主动模式时也需慎重。

部署方面,Kube-hunter总共有3种不同使用方式:
  • 将Kube-hunter容器部署在集群外,指定集群的DNS、IP地址后,就能进行渗透测试。
  • 将Kube-hunter部署在集群内特定主机运作,直接在本地环境检测、扫描。
  • 使用Pod作为部署单位,执行Kube-hunter。


Trivy

Trivy是一个简单而且功能完整的容器漏洞扫描工具,特别适用于持续集成。与其他几款开源的镜像扫描工具相比,Trivy在准确性、方便性和对CI的支持等方面都有优势:
  • 检测面很全,能检测全面的漏洞
  • 扫描速度快,通常在10秒内完成(取决于网络和镜像大小)
  • Trivy是无状态的,不需要维护或准备
  • 易于安装,使用简单,仅仅只需要指定镜像名称


总结

受限于篇幅,本文仅挑选了部分项目进行简要介绍。有兴趣的读者可以根据每个项目后面的详情链接进行深入的学习和研究。

原文链接:https://mp.weixin.qq.com/s/ayLmfANKqmtlLq5LzQhZnA

0 个评论

要回复文章请先登录注册