当前位置: 首页 > 科技观察

Docker安全值得推荐的开源工具

时间:2023-03-15 13:09:45 科技观察

在容器安全方面,有很多使用开源工具预防安全灾难的故事,比如前不久发生的TeslaKubernetes集群入侵事件。容器的安全一直是一件很棘手的事情,那么如何熟练使用开源工具就成了一件重要的事情。如果您花费大量精力寻找最好的应用程序安全测试工具并确保您的应用程序尽可能安全,那么您当然不希望它运行的容器安全性较低。幸运的是,除了可供选择的商业容器安全产品外,还有一些不错的开源项目。其中许多项目侧重于审计、跟踪公共漏洞和共同暴露数据库(CVE),以及由CIS网络安全情报系统、国家漏洞数据库等建立的安全基准。这些工具扫描容器镜像并将扫描结果与这些已知漏洞列表交叉引用。通过使用自动化容器审计或容器安全流程,您可以帮助团队在项目早期发现问题,从而为企业带来巨大收益。市场上有很多开源容器安全工具,这里列出了一些最受推荐、最成熟且拥有大量用户群的工具。1Docker安全工作台(DockerSecurityWorkbench)DockerBench是一个基于安全基准审计Docker容器的脚本。该工具面向使用DockerCommunityEdition进行容器管理的开发人员,而DockerBenchforSecurity是根据通用安全最佳实践设计的开源脚本,用于对Docker容器进行安全审计。DockerBench的测试基于业界的CIS基准测试,将手动漏洞测试的繁琐过程自动化。Docker安全负责人DiogoMónica将其描述为“测试容器的容器”。您可以按如下方式初始化容器:dockerrun-it--nethost--pidhost--usernshost--cap-addaudit_control-eDOCKER_CONTENT_TRUST=$DOCKER_CONTENT_TRUST-v/var/lib:/var/lib-v/var/run/docker.sock:/var/run/docker.sock-v/usr/lib/systemd:/usr/lib/systemd-v/etc:/etc--labeldocker_bench_securitydocker/docker-bench-security运行的结果会是每个security配置基线的日志分为一般信息、警告信息和通过信息。您可以直接在Docker容器中运行此工具,通过DockerCompose克隆它或直接在您的Docker主机上运行脚本。这个工具的一个缺点是它的输出不是机器可读的。社区中有很多工具包实现了对DockerBench的改进,例如DockerBenchTest、drydock和Actuary。2ClairClair是一款基于庞大的CVE数据库的API驱动的静态容器安全分析工具。Clair是CoreOS开发的静态容器漏洞分析工具。该工具也可在Quay.io上使用,它是一个公共容器注册中心,也是DockerHub的替代品。Clair从许多漏洞数据源中获取信息,例如Debian安全漏洞跟踪器、UbuntuCVE跟踪器和RedHat安全数据库。由于Clair涵盖了一个大型CVE数据库,因此其审核非常全面。Clair首先索引容器镜像中的特征列表。通过ClairAPI,开发人员随后可以查询与特定图像相关的漏洞数据库。您可以通过Clair入门文档开始使用Clair。在Kubernetes集群上部署也很简单:gitclonehttps://github.com/coreos/claircdclair/contrib/helmcpclair/values.yaml~/my_custom_values.yamlvi~/my_custom_values.yamlhelmdependencyupdateclairhelminstallclair-f~/my_custom_values.yamlClair的一大特色这是它的灵活性。它允许您为某些行为添加自己的驱动程序。此外,通过单个API调用审计特定容器镜像是一种漂亮的、机器驱动的替代方法,可以替代通过大量日志报告进行搜索。3CiliumCilium是一种内核级API感知网络和安全工具。Cilium专注于解决安全的网络连接,与Docker、Kubernetes等Linux容器平台具有良好的兼容性。它增加了安全可视化和控制逻辑。它基于Linux内核技术BPF(以前称为Berkeley数据包过滤器)。在幕后实现的功能的有趣之处在于,您可以直接应用和更新Cilium安全策略,而无需更改应用程序代码或容器配置。CoreOS开发了Cilium,以应对现代微服务开发和快速容器部署的多变生命周期。可以直接与Kubernetes集成,可以使用如下命令部署:$kubectlcreate-f./cilium.yamlclusterrole"cilium"createdserviceaccount"cilium"createdclusterrolebinding"cilium"createdconfigmap"cilium-config"createdsecret"cilium-etcd-secrets"createddaemonset"cilium"created$kubectlgetds--namespacekube-systemNAMEDESIREDCURRENTREADYNODE-SELECTORAGEcilium1112mCilium周围的支持和开发社区非常棒。您会发现大量指南和文档、Slack频道,甚至每周与项目维护者的聚会。4AnchoreAnchhore是一种使用CVE数据库和用户定义的策略来检查容器安全性的工具。AnchoreEngine是一个分析容器镜像的工具。除了添加CVE安全漏洞报告外,Anchore引擎还可以使用自定义策略来评估Docker镜像。不同的策略会导致通过或失败的结果。策略可以基于白名单/黑名单、安全凭证、文件内容、配置类型或其他用户提示。Anchore被打包成Docker容器镜像后,可以独立运行,也可以运行在Kubernetes等容器编排平台上。它还可以集成Jenkins和GitLab用于CI/CD。使用Anchore命令行工具(CLI)是操作Anchore引擎的好方法。例如,您可以使用以下命令查看镜像内容的详细信息:anchor-cliimagecontentINPUT_IMAGECONTENT_TYPE例如,您可以使用以下命令对镜像进行漏洞扫描:anchor-cliimagevulndocker.io/library/debian:latestosAnchore可以输出漏洞详细信息、威胁级别列表、CVE标识符和其他相关信息。由于用户定义的规则是通过Anchore云服务图形用户界面(GUI)创建的,因此它的操作类似于SaaS。5OpenSCAPWorkbenchOpenSCAPWorkbench是一个用于为各种平台创建和维护安全策略的环境。OpenSCAP是一个面向IT管理员和安全审计员的生态系统,其中包括许多开放的安全基线指南、安全配置基线和开源工具。Fedora、RedHatEnterpriseLinux、CentOS或ScientificLinux的用户可以将OpenSCAPWorkbench安装为GUI,以在虚拟机、容器和容器映像上运行扫描。您可以使用以下命令安装OpenSCAPWorkbench:#yuminstallscap-workbench如果您想根据SCAP策略指南和CVE评估容器,请使用OpenSCAP附带的oscap-docker程序。OpenSCAP围绕其核心的NIST认证安全内容自动化协议(SCAP)提供了许多机器可读的安全策略。OpenSCAP安全指南声明该项目的目标是允许多个组织通过避免冗余来有效地开发安全内容。由于OpenSCAP比此列表中的其他工具具有更广泛的范围,因此对于希望为整个平台创建安全策略的团队来说,它是一个不错的选择。6DagdaDagda是一种扫描Docker容器中漏洞、特洛伊木马、病毒和恶意软件的工具。Dagda是另一个容器安全静态分析工具。它的CVE来源包括OWASP依赖性检查、RedHatOval和OffensiveSecurity数据库。要使用Dagda扫描Docker容器,首先要设置一个包含漏洞数据的Mongo数据库。然后,执行此命令来分析单个Docker映像:python3dagda.pycheck--docker_imagejboss/wildfly您可以远程运行它,或连续调用它来监视活动的Docker容器。生成的输出可以显示漏洞数量、严重级别和其他可以帮助开发人员进行安全修复的详细信息。Dagda的优势之一是其对各种漏洞数据的广泛覆盖。这意味着您可以直接访问大量最新、全面的漏洞数据。同时它也非常灵活,你可以通过CLI命令行工具以及RESTAPI来控制它。7NotaryNotary是一个增强容器安全性的框架。Notary实际上是一个Docker镜像签名框架,现在已经开源用于其他实现。Docker开发了它,然后在2017年捐赠给了CloudNativeComputingFoundation。Notary主要用于职责分离。使用Notary,开发人员可以在容器之间委派角色并定义职责。该工具提供了服务器端工具和客户端工具,并提供了一种加密且安全的发布和验证内容的方法。如果要在本地部署Notary,需要先在本地克隆代码仓库。然后使用DockerCompose部署一个本地配置项:$docker-composebuild$docker-composeup-d$mkdir-p~/.notary&&cpcmd/notary/config.jsoncmd/notary/root-ca.crt~/.notary它依赖于UpdateFramework与Go语言一起可以验证容器应用程序映像的加密完整性。8GrafaesGrafaes是一种元数据API,用于帮助管理内部安全策略。Grafaes可以帮助您创建自己的容器安全扫描项目。容器安全工具由IBM和Google于2017年底发布。开发人员可以使用GrafaesComponentMetadataAPI来定义虚拟机和容器的元数据。IBM的VulnerabilityAdvisor也被集成到该项目中。有关可靠的案例研究,请参阅Shopify如何使用Grafaes管理500,000个容器映像的元数据。该团队与Kritis合作,使用Grafeas元数据为Kubernetes集群实施安全策略管理。Grafaes可以快速获取容器元数据,有助于加快安全问题的修复,减少漏洞被暴露和利用的窗口期。虽然Grafaes是开源的,但它由大型软件供应商维护,这有利于该工具的长期支持。9SysdigFalcoSysdigFalco是一种行为活动监控工具,可提供深入的容器可见性。Falco是Sysdig开发的Kubernetes感知安全审计工具,强调对容器、主机和网络活动的行为监控。使用Falco,开发人员可以对其基础设施进行持续检查、异常检测,并为任何类型的Linux系统调用设置警报通知。Falco文档建议用户将Falco作为Docker容器运行。您可以使用这些命令安装它。安装完成后,Falcoalert标准输出是这样的:stdout_output:enabled:true10:20:05.408091526:WarningSensitivefileopenedforreadingbynon-trustedprogram通过Falco可以监控shell在容器中运行的时间,容器挂载的位置,以及意外读取敏感文件、出站网络尝试和其他可疑呼叫。Sysdig提供了更多容器故障排除材料。10BanyanopsCollectorBanyanopsCollector是一个Docker容器镜像的静态分析框架。Collector是由Banyanops提供支持的开源实用程序,可用于查看Docker容器中的图像文件。开发人员可以使用Collector收集容器数据、执行安全策略等。首先,Banyanops支持私有容器注册表并在DockerHub上作为容器运行。Banyanops还提供可提供更深入数据分析的SaaS产品,因此如果您体验到的功能有限,您可能想要购买他们的服务。11其他优秀的开源工具Dockerscan:一个几乎没有Git提交的安全漏洞扫描器。Batten:类似于DockerBench的审计工具包,但他们的支持并不活跃。BlackDuckDocker安全:作为Web服务构建的容器镜像安全扫描工具。不幸的是,目前不推荐在网络上使用该产品。Inspec:具有Docker容器测试功能的审计、测试框架。12具体情况,具体分析随着容器化成为一种流行的部署方法,最重要的是需要通过适当的安全控制来强化这些容器。值得庆幸的是,您会发现一个强大的开源安全解决方案生态系统,这些解决方案针对许多不同的环境进行了定制。这些工具的整体强度取决于检查的深度。有效性还取决于CVE数据库和基准本身是否及时更新漏洞并发布新的最佳实践。值得庆幸的是,现在各种工具都在努力减少零日漏洞的利用和容器漏洞被利用的窗口。开发人员也被具有更好体验的工具所吸引,这些工具可以减少无效日志和重复数据。这种类型的偏好只能通过反复试验来确定,具体取决于您的构建活动和个人偏好。