Kubernetes镜像扫描
Anchore
主页:https://anchore.com/
许可证:免费(Apache)和商业服务
Anchore引擎分析容器镜像并应用用户定义的策略来实现自定义安全检查。
除了针对CVE数据库上已知漏洞的常规容器镜像扫描之外,还有许多附加条件可以配置为使用Anchore扫描策略的一部分:Dockerfile检查、凭证泄漏、特定于语言的包(npm、maven等)、软件许可证等等。
Clair
主页:https://coreos.com/clair
许可证:免费(Apache)
Clair是第一个开放源代码图像扫描项目之一,也因作为Docker镜像注册中心的安全扫描引擎而广为人知。Clair能够从大量的漏洞源中提取CVE信息,包括由Debian、RedHat或Ubuntu安全团队编写的特定于发行版的漏洞列表。
与Anchore不同,Clair主要关注漏洞扫描和CVE匹配部分,尽管它通过可插入驱动程序的实现为用户提供了一定的可扩展性。
Dagda
主页:https://github.com/eliasgranderubio/dagda
许可证:免费(Apache)
Dagda对已知的漏洞、木马、病毒、恶意软件和容器镜像中的其他恶意威胁进行静态分析。
有两个显著的特性使得Dagda不同于类似的Kubernetes安全工具:
- 它与ClamAV集成在一起,不仅可以作为一个容器镜像扫描器,还可以作为杀毒软件。
- Dagda还提供了运行时保护功能,从Docker守护进程收集实时事件,并与CNCF的Falco集成来收集运行时容器安全事件。
KubeXray
主页:https://github.com/jfrog/kubexray
许可证:免费(Apache),但需要从JFrog Xray(商业产品)中检索数据
KubeXray侦听Kubernetes API服务器事件,并利用来自JFrog Xray(商业产品)的元数据,以确保只有符合当前策略的pod才能在Kubernetes上运行。
KubeXray不仅审计新的或升级的容器部署(类似于Kubernetes许可控制器),还可以根据配置的新安全策略动态检查运行时容器,删除指向脆弱镜像的资源。
Snyk
主页:https://snyk.io/
许可证:免费(Apache)和商业服务
Snyk是一种特殊的漏洞扫描器,在某种意义上,它特别关注开发工作流,并将其自身宣传为开发人员优先的解决方案。
Snyk将直接连接到你的代码库,解析项目声明并分析导入的代码,以及它们的直接和间接库依赖关系。Snyk支持许多流行的编程语言,也可以发现隐含的许可风险。
Trivy
主页:https://github.com/knqyf263/trivy
许可证:免费(AGPL)
Trivy是一个简单而全面的容器漏洞扫描器,易于与你的CI/CD集成。一个显著的特点是安装和操作简单,只使用一个二进制文件,不需要安装数据库或其他库。
Trivy简单性的缺点是,你需要弄清楚如何解析和转发JSON输出,以便其他Kubernetes安全工具可以利用它。
Kubernetes运行时安全
Falco
主页:https://falco.org/
许可证:免费(Apache)
Falco是一个云原生运行时安全工具集,是CNCF家族的骄傲成员。
利用Sysdig的Linux内核检测和系统调用分析,Falco深入了解了系统行为。它的运行时规则引擎可以检测应用程序、容器、底层主机和Kubernetes协调器中的异常活动。
使用Falco,你将获得完整的运行时可视性和威胁检测,并为每个Kubernetes节点部署一个代理,不需要修改注入第三方代码的容器或堆积边车容器。
Linux运行时安全框架
这些本地Linux框架本身并不是Kubernetes安全工具,但是在这里值得一提,因为它们是运行时安全上下文的一部分,可以包含在Kubernetes Pod安全策略(PSP)中。
AppArmor将安全配置文件附加到容器中运行的进程,定义文件系统特权、网络访问规则、库链接等。它是一个强制访问控制(或MAC)系统,这意味着它将阻止禁止的操作发生。
安全增强Linux(SELinux)是一个Linux内核安全模块,在某些方面类似,并且经常与AppArmor相比较。SELinux比AppArmor更强大、更细粒度、更灵活,这是以学习曲线陡峭和复杂性增加为代价的。
Seccomp和seccomp -bpf允许过滤系统调用,阻止执行可能对底层主机OS有危险的系统调用,这些调用对于用户域二进制文件的常规操作是不需要的。它与Falco有一些细微的相似之处,尽管seccomp不知道容器的存在。
Sysdig
主页:https://sysdig.com/opensource/
许可证:免费(Apache)
Sysdig是一个针对Linux系统(也适用于Windows和Mac OSX,功能有限)的全系统探索、故障排除和调试工具,可用于获得托管OS和运行于其上的任何容器的细粒度可视性、检查和取证。
Sysdig还支持容器运行时和Kubernetes元数据,将这些额外的维度和标签添加到收集的任何系统活动中。有几种方法可以使用Sysdig探索Kubernetes集群:你可以使用kubectl capture创建一个时间点捕获,或者使用kubectl dig插件生成一个交互式ncurses接口。
Kubernetes网络安全
Aporeto
主页:https://www.aporeto.com/
许可证:商业
Aporeto提供“与网络和基础设施分离的安全性”。这意味着你的Kubernetes服务不仅会获得本地标识(即Kubernetes服务帐户),还会获得通用标识/指纹,可用于以安全且可相互验证的方式与任何其他服务进行通信,例如在OpenShift集群中。
Aporeto不仅可以为Kubernes/容器,还可以为主机、云功能和用户生成唯一的身份指纹。根据这些身份和运营商配置的一组网络安全规则,将允许或阻止通信。
Calico
主页:https://www.projectcalico.org/
许可证:免费(Apache)
Calico通常在容器编制器安装期间部署,以实现连接容器的虚拟网络。在这个基本的网络功能之上,Calico项目实现了Kubernetes网络策略规范和它自己的一组网络安全概要文件,这些概要文件实现了端点acl和基于注释的网络安全规则,用于入口和出口流量。
Cilium
主页:https://www.cilium.io/
许可证:免费(Apache)
Cilium提供容器防火墙和网络安全功能,本机适应于Kubernetes和微服务工作负载。Cilium利用一种名为BPF(Berkeley Packet Filter, Berkeley Packet Filter)的Linux内核新技术来执行核心数据路径过滤、篡改、监视和重定向。
Cilium可以使用Docker或Kubernetes标签和元数据基于容器标识部署网络访问策略。Cilium还可以理解和过滤几个第7层协议,比如HTTP或gRPC,允许您定义一组REST调用,这些调用将允许在两个给定Kubernetes部署之间进行。
Istio
主页:https://istio.io/
许可证:免费(Apache)
Istio以实现服务网格范式而闻名,它部署一个平台无关的控制平面,并通过动态配置的特使代理路由所有托管的服务流量。Istio将利用所有微服务和容器的这种优势视图来实现几种网络安全策略。
Istio网络安全功能包括:透明的TLS加密,自动将微服务通信升级到HTTPS,以及它自己的RBAC身份和授权框架,以接受或拒绝不同工作负载之间的通信。
Tigera
主页:https://www.tigera.io/
许可证:商业
Tigera Kubernetes防火墙技术强调对你的Kubernetes网络安全的零信任方法。
与其他Kubernetes本机网络解决方案类似,Tigera利用Kubernetes元数据来标识集群中的不同服务和实体,提供跨多云或混合的单一容器基础设施的运行时检测、持续的遵从性检查和网络可见性。
Trireme
主页:https://www.aporeto.com/opensource/
许可证:免费(Apache)
Trireme-Kubernetes是Kubernetes网络策略规范的简单、直接的实现。它最显著的特点之一是,与类似的Kubernetes网络安全解决方案不同,它不需要一个中央控制平面来协调网格,使得该解决方案的可扩展性非常低。Trireme实现了这一点,即每个节点安装一个代理,该代理将直接接入主机的TCP/IP堆栈。
镜像分发和密钥管理
Grafeas
主页:https://grafeas.io/
许可证:免费(Apache)
Grafeas是一个开源API,用于审计和管理您的软件供应链。在基本级别上,Grafeas是一个元数据和审计日志收集工具,你可以使用它来跟踪整个组织的安全最佳实践的遵从性。
这个集中的事实来源可以帮助你回答与安全性相关的问题,比如:
谁构建并签署了一个特定的容器?
它是否通过了所有的安全扫描和策略检查?什么时候?这个工具的输出是什么?
谁在生产中部署了它?用于部署的具体参数是什么?
Portieris
主页:https://github.com/IBM/portieris
许可证:免费(Apache)
Portieris是一个Kubernetes许可控制器,用于强制内容信任。它依赖Notary服务器作为可信和签名工件(即已批准的容器镜像)的真相来源。
无论何时创建或修改Kubernetes工作负载,Portieris都会为请求的容器镜像提取签名信息和内容信任策略,如果需要,还会动态修改API JSON对象,以运行这些镜像的签名版本。
Vault
主页:https://www.vaultproject.io/
许可证:免费(MPL)
Vault是针对密码、oauth令牌、PKI证书、访问凭证、Kubernetes秘密等机密的高安全性存储解决方案。它支持许多高级特性,比如临时安全令牌租约或编排的密钥滚转。
你可以将vault本身部署为Kubernetes集群中的新部署,使用Helm chart和领事作为其后端存储。它支持Kubernetes本地资源,比如serviceaccount令牌,甚至可以配置为默认的Kubernetes密钥存储。
Kubernetes安全审计
Kube-bench
主页:https://github.com/aquasecurity/kube-bench
许可证:免费(Apache)
kube-bench是一个Go应用程序,它通过运行CIS Kubernetes基准测试中记录的检查来检查Kubernetes是否安全部署。
Kube-bench将在你的Kubernetes集群组件(etcd、API、controller manager等)上查找不安全的配置参数、敏感的文件权限、不安全的帐户或公开端口、资源配额、保护你免受DoS攻击的API速率限制的配置,等等。
Kube-hunter
主页:https://github.com/aquasecurity/kube-hunter
许可证:免费(Apache)
Kube-hunter在你的Kubernetes集群中寻找安全弱点(比如远程代码执行或信息公开)。你可以将kube-hunter作为远程扫描器运行,它将提供外部攻击者的视角,或者作为Kubernetes集群中的一个Pod。
kube-hunter提供的一个独特特性是,它可以使用active hunting运行,这意味着不仅要报告,而且要实际利用目标Kubernetes中发现的漏洞,这些漏洞可能对集群的操作有害。小心处理:)。
Kubeaudit
主页:https://github.com/Shopify/kubeaudit
许可证:免费(MIT)
Kubeaudit是一个免费的命令行工具,最初是在Shopify上创建的,用于审计Kubernetes的配置,以解决各种不同的安全问题。你可以无限制地运行容器镜像、以root身份运行、使用特权功能或缺省serviceaccount等等。
Kubeaudit还有其他几个值得注意的特性,例如,它可以处理本地YAML文件来检测配置缺陷,这些缺陷将导致该工具所涵盖的任何安全问题,并自动为你修复它们。
Kubesec
主页:https://kubesec.io/
许可证:免费(Apache)
Kubesec是一个非常特殊的Kubernetes安全工具,因为它将直接扫描声明Kubernetes资源的YAML文件,以找到薄弱的安全参数。
例如,它可以检测授予pod的过多功能和权限,使用root作为默认容器用户,连接到主机网络命名空间,或者像host /proc或docker套接字这样的危险装载。Kubesec的另一个不错的特性是他们的在线演示链接,你可以在那里发布一个YAML并立即开始尝试。
Open策略代理
主页:https://www.openpolicyagent.org/
许可证:免费(Apache)
OPA(Open Policy Agent)的愿景是将你的安全策略和安全最佳实践与特定的运行时平台解耦:Docker、Kubernetes、Mesosphere、OpenShift或它们的任何组合。
例如,你可以将OPA部署为Kubernetes承认控制器的后端,委托安全决策,这样OPA代理就可以动态地验证、拒绝甚至修改请求,以强制执行定制的安全约束。OPA安全策略是使用其特定于域的语言Rego编写的。
端到端的Kubernetes安全商业产品
我们决定为商业Kubernetes安全平台创建一个单独的类别,因为它们通常覆盖几个安全领域。这里有一个表格可以看到一个整体的概况:
AquaSec
主页:https://www.aquasec.com/
许可证:商业
AquaSec是一款针对容器和云工作负载的商业安全工具,包括:
- 镜像扫描,与你的容器注册表或CI/CD集成;
- 检测容器修改或可疑活动的运行时保护;
- 容器本地应用防火墙;
- 云服务的无服务器安全性;
- 合规性和审计报告,与事件记录集成。
Capsule8
主页:https://capsule8.com/
许可证:商业
Capsule8与在on-prem或cloud Kubernetes集群上部署传感器的基础设施集成。该传感器将收集主机和网络遥测数据,根据不同的攻击模式匹配此活动。
Capsule8团队负责在他们设法通过你的系统之前检测和中断0-day的攻击。他们的安全操作团队可以向你的传感器推送有针对性的规则,作为对最近发现的软件漏洞威胁的响应。
Cavirin
主页:https://www.cavirin.com/
许可证:商业
Cavirin解决方案的重点是为不同的安全标准化机构提供一个企业对应方。除了镜像扫描功能,它还可以与你的CI/CD集成,在不符合要求的镜像被推送到你的私有存储库之前阻止它们。
Cavirin security suite使用机器学习来为你的网络安全状态提供一个类似于信用的评分,提供一些补救技巧来改进你的安全状态或安全标准遵从性。
谷歌云安全命令中心
主页:https://cloud.google.com/security-command-center/
许可证:商业
云安全指挥中心帮助安全团队收集数据,识别威胁,并在它们导致业务破坏或损失之前对其采取行动。
正如其名称所示,谷歌云SCC是一个统一的控制面板,你可以在其中集成不同的安全报告、资产清单和第三方安全引擎,所有这些都来自一个集中的仪表板。
谷歌Cloud SCC提供的可互操作API有助于集成来自不同来源的Kubernetes安全事件,比如:Sysdig Secure(云本地应用程序的容器安全)或Falco(开源运行时安全引擎)。
Qualys
主页:https://layeredinsight.com/
许可证:商业
分层洞察(现在是qualys的一部分)是围绕嵌入式安全的概念设计的。一旦使用静态分析技术扫描原始图像以发现漏洞,并通过CVE检查,分层洞察就会用注入二进制代理的仪表化图像替换它。
该二进制文件包括docker网络流量、输入/输出流和应用程序活动的运行时安全探测,以及基础设施运营商或开发团队提供的任何自定义安全检查。
Neuvector
主页:https://neuvector.com/
许可证:商业
NeuVector通过分析网络活动和应用程序行为来执行容器安全基线化和运行时保护,从而为每个镜像创建一个定制的安全概要文件。它还可以主动阻止威胁,通过修改本地网络防火墙隔离可疑活动。
NeuVector网络集成,标签为安全网格,能够执行深入包检查和过滤你的服务网格中的所有网络连接的第7层。
StackRox
主页:https://www.stackrox.com/
许可证:商业
StackRox容器安全平台的目标是覆盖集群中Kubernetes应用程序的整个生命周期。与此列表中的其他商业容器安全平台一样,它根据观察到的容器行为生成运行时概要文件,并将在任何异常时自动发出警报。
StackRox平台还将使用CIS Kubernetes基准和其他容器遵从性基准评估Kubernetes配置。
Sysdig
主页:https://sysdig.com/products/secure/
许可证:商业
Sysdig Secure在整个容器生命周期中保护你的云本地应用程序。它集成了容器镜像扫描、运行时保护和取证功能,以识别漏洞、阻止威胁、强制遵从性和跨微服务的审计活动。
它的一些相关的功能包括:
- 扫描注册表中的镜像或作为CI/CD流水线的一部分,以发现易受攻击的库、包和配置;
- 运行时检测通过行为特征保护生产中的容器;
- 通过微秒级粒度的系统调用记录攻击前和攻击后的活动;
- 250多项开箱即用合规性检查,确保你的配置安全。
Tenable Container Security
主页:https://www.tenable.com/products/tenable-io/container-security
许可证:商业
Tenable在容器出现之前,作为Nessus(一种流行的漏洞扫描和安全听觉工具)背后的公司,在安全行业广为人知。
“可维护的容器安全”利用他们在计算机安全领域的经验,将你的CI/CD流水线与漏洞数据库、专门的恶意软件检测引擎和安全威胁补救建议相集成。
Twistlock(Palo Alto Networks)
主页:https://www.twistlock.com/
许可证:商业
Twistlock宣称自己是云第一、容器第一的平台,提供与云提供商(AWS、Azure、GCP)、容器编排者(Kubernetes、Mesospehere、OpenShift、Docker)、无服务器运行时、网格框架和CI/CD工具的特定集成。
除了通常的容器安全企业特性,如CI/CD集成或镜像扫描,Twistlock使用机器学习技术来生成行为模式和容器感知网络规则。
Twistlock被同样拥有该公司的帕洛阿尔托网络公司(Palo Alto Networks)收购,io和Redlock安全解决方案。尚不清楚这三个平台如何集成到帕洛阿尔托的PRISMA的。