随着云和虚拟技术发展,docker容器的使用越来越流行和方便。有很多企业已经把基础架构由传统实体机转移到了虚拟机化架构,基于公有云、私有云以及容器云构建在线服务。与容器相关的安全性对变得越来越重要。与传统的安全性方法相比,虚拟化架构架构上的差异完全需要不同的安全性方法,必须要在服务构建过程的早期阶段了解并执行特定的容器安全性扫描。为了应对虚拟化容器云架构下的安全需求,本文介绍虫虫给大家介绍一些在虚拟化云架构和容器环境下一些开源安全工具。
Sysdig Falco
Falco是由Sysdig创建,支持K8S的开源安全审计工具。Falco是Cloud Native Computing Foundation(CNCF)组成部分,它提供了对容器、网络和主机活动的行为监视。
Falco最开始是设计用于Linux的主机入侵检测系统,但是其对于容器系统的container.id、container.image或其规则的命名空间也适用,所以可以用于对docker容器的行为探测,基于一个容器探测器,可以实现对容器行为的深入洞察,检测恶意或未知行为,并通过日志记录和通知向用户发送警报。
Falco可以跟踪和分析容器内部发生的动作的行为,包括Linux系统调用。Falco跟踪基于容器的事件,包括:
- 容器内运行的shellcode;
- 在特权模式下运行的任何容器
- 从主机装入任何敏感目录路径(例如/ proc);
- 意外读取敏感文件的尝试(例如/etc/shadow);
- 使用任何标准系统二进制文件进行出站网络连接。
一旦检测到任何恶意行为,例如使用特定的系统调用,特定的参数或调用过程的属性,它便可以向管理员发送警报。
当前版本:0.21.0
项目地址:https://falco.org/
源码仓库:https://github.com/falcosecurity/falco
OpenSCAP
OpenSCAP是一个命令行审核工具,可以扫描,加载,编辑,验证和导出SCAP文档。SCAP(安全内容自动化协议)是用于企业级Linux基础结构的合规性检查的解决方案,由NIST维护。它使用可扩展配置清单描述格式(XCCDF)显示清单内容并概述Linux安全情况总结合规性情况。
OpenSCAP提供了一组用于合规性管理和扫描的工具,借助oscap-docker等工具支持对容器镜像的扫描。OpenSCAP还可以帮助用户扫描XCCDF之类的合规性。该软件包还具有其他一些工具/组件:
- OpenSCAP Base 用于执行配置和漏洞扫描;
- OpenSCAP Daemon在后台运行的服务;
- SCAP Workbench 一种提供执行常见oscap任务的简便方法图形界面;
- SCAPtimony 存储用于用户基础结构的SCAP结果的中间件。
当前版本:1.3.2
项目地址:http://www.open-scap.org/
源码仓库:https://github.com/OpenSCAP/openscap
Clair
Clair是一个开源漏洞扫描程序和静态分析工具,用于分析appc和docker容器中的漏洞。
Clair会定期从多个来源收集漏洞信息,并将其存储在数据库中。它提供了公开API供客户端执行和扫描调用,用户可以使用Clair API列出其容器镜像,创建镜像中功能的列表并在数据库中保存。当发生漏洞元数据更新时,可以通过Webhook触发送警报/通知将漏洞的先前状态和新状态以及受影响镜像发送到配置的用户。作为部署脚本的一部分,Clair支持多种第三方工具来从终端扫描镜像。比如Klar,就是是很好的选择之一
该工具的安装详细信息在GitHub上可用,可以以Docker容器的方式运行。它还提供Docker Compose文件和Helm Chart,以简化安装过程,也可以从源代码进行编译。
Clair项目的目标是促进以透明的方式了解基于容器的基础架构的安全性。所以,项目以法语单词命名,法语单词具有明亮,清晰和透明的英语含义
当前版本:2.0.2
项目地址:https://coreos.com/clair/docs/latest/
源码仓库:https://github.com/quay/clair
Dagda
Dagda是一种开源的静态分析工具,用于对Docker镜像或容器中的已知漏洞,恶意软件,病毒,特洛伊木马和其他恶意威胁执行静态分析。Dagda可以监控Docker守护程序并运行Docker容器以发现违规或不常见的活动。该工具支持常见的Linux基本镜像,例如Red Hat,CentOS,Fedora,Debian,Ubuntu,OpenSUSE和Alpine等。
Dagda附带一个Docker Compose文件,可以轻松运行评估。Dagda虽然支持对容器的监视,但是必须与Sysdig Falco集成。Dagda不支持对容器注册表或存储库扫描,更适于手动按需扫描。
Dagda部署后,可以从CVS数据库下载已知漏洞和其利用POC并保存到MongoDB中。然后,它会收集有Docker镜像中的软件的详细信息,并和MongoDB中先前存储的详细信息进行比对验证每个产品及其版本是否没有漏洞。
Dagda可以将ClamAV作为防病毒引擎,用于识别Docker容器/镜像中包含的木马,恶意软件,病毒和其他恶意威胁。
Dagda主要目标用户是系统管理员,开发人员和安全专业人员。
当前版本:0.7.0
源码仓库:https://github.com/eliasgranderubio/dagda
Anchore Engine
Anchore Engine是一个开放源码的DevSecOps全栈安全工具,旨在分析和扫描容器镜像中的漏洞。该工具可以作为Docker容器镜像使用,可以作为独立安装或在业务流程平台中运行。Anchore Engine可让用户能够识别、测试和解决创建应用程序的Docker镜像中的漏洞。其企业版OSS提供了策略管理,摘要仪表板,用户管理,安全和策略评估报告,图形客户端控件以及其他后端模块和功能。
Anchore Engine提供Docker compose文件,可以一键构建docker容器安装。它支持后端/服务器端组件,可以通过CLI工具(例如Anchore CLI或Jenkins插件)的形式进行扫描。它还可以对仓库中的添标签,添加后,它将定期轮询容器注册表,其进行分析。用户还可以使用添加新查询,策略和图像分析的插件来扩展Anchore Engine。可以通过RESTful API或Anchore CLI直接访问。
当前版本:0.7.0
项目地址:https://anchore.com/
源码仓库:https://github.com/anchore/anchore-engine
总结
开源安全工具在保护基于容器的基础结构中起着重要作用。我们可以根据业务需求和优先级选择适宜的工具(组合)进行云架构下安全保障:比如使用OpenSCAP和Clair进行合规性分析,使用Falco进行安全审计,使用Dagda可以用于对已知漏洞进行静态分析,用Anchore之进行组合安全保障。