vlambda博客
学习文章列表

云原生安全开源项目汇总


概览

云原生安全开源项目汇总


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

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

云原生安全开源项目汇总

CNCF项目成熟度等级划分

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


项目名称 成熟度
关注点
详情链接

OPA:Open Policy Agent

毕业

通用策略引擎

https://www.openpolicyagent.org

TUF: The 

Update 

Framework

毕业

安全更新框架

https://theupdateframework.io

Falco

孵化

系统调用行为监控

https://falco.org

Notary

孵化

数据权限控制

https://github.com/notaryproject/notary

CERT 

MANAGER

沙盒

证书管理

https://www.jetstack.io/open-source/

Curiefense

沙盒

WebAPI防护

https://www.curiefense.io

Dex

沙盒

身份认证

https://github.com/dexidp/dex

In-toto

沙盒

软件供应链完整性

https://in-toto.io

Keylime

沙盒

远程启动认证

https://keylime.dev

Kyverno


沙盒

Kubernetes原生策略管理

https://kyverno.io

Parsec

沙盒

可信计算

https://github.com/parallaxsecond/parsec


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

项目名称

关注点

详情链接

Anchore

容器镜像扫描

https://github.com/anchore/anchore-engine

CHEF INSEPC

基础设施合规

https://github.com/inspec/inspec

Clair

容器镜像扫描

https://github.com/quay/clair

FOSSA

代码依赖与授权分析

https://github.com/fossas/fossa-cli

Goldilocks

资源控制

https://github.com/FairwindsOps/goldilocks

Grafeas

软件供应链

https://github.com/grafeas/grafeas

Kube-bench

集群合规检查

https://github.com/aquasecurity/kube-bench

Kube-hunter

集群安全检查

https://github.com/aquasecurity/kube-hunter

OpenSCAP

集群合规与安全评估

https://github.com/OpenSCAP/openscap

Pluto

APIVersion审计

https://github.com/FairwindsOps/pluto

Polaris

集群配置检查

https://github.com/FairwindsOps/polaris

RBACLookup

身份认证

https://github.com/FairwindsOps/rbac-lookup

RBACmanager

身份认证

https://github.com/FairwindsOps/rbac-manager

Sonobuoy

集群一致性检查

https://github.com/vmware-tanzu/sonobuoy

Terrascan

编排文件检查

https://github.com/accurics/terrascan

Trivy

各类漏洞扫描

https://github.com/aquasecurity/trivy


项目举例

云原生安全开源项目汇总


我们抽取部分典型的项目如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。

云原生安全开源项目汇总

OPA在Kubernetes中的使用场景

TUF:The Update Framework

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

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部署在集群内特定主机运作,直接在本地环境检测、扫描。

  • 使用Pod作为部署单位,执行Kube-hunter。


Trivy

Trivy是一个简单而且功能完整的容器漏洞扫描工具,特别适用于持续集成。与其他几款开源的镜像扫描工具相比,Trivy在准确性、方便性和对CI的支持等方面都有优势:

  • 检测面很全,能检测全面的漏洞

  • 扫描速度快,通常在10秒内完成(取决于网络和镜像大小)

  • Trivy是无状态的,不需要维护或准备

  • 易于安装,使用简单,仅仅只需要指定镜像名称


总结


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

文章来源: 小佑科技, 。


Kubernetes管理员(CKA)培训


本次培训在 北京开班, 基于最新考纲,通过 线下授课、考题解读、模拟演练等方式,帮助学员快速掌握Kubernetes的理论知识和专业技能,并针对考试做特别强化训练,让学员能从容面对CKA认证考试,使学员既能掌握Kubernetes相关知识,又能通过CKA认证考试, 学员可多次参加培训,直到通过认证。点击下方图片或者阅读原文链接查看详情。