容器安全扫描工具推荐 (insights.thoughtworks.cn)

标签: jianshu | 发表时间:2022-01-04 00:00 | 作者:
出处:http://itindex.net/relian

在现代软件开发中, 我们会使用一些公共镜像作为基础镜像来快速构建我们的应用镜像,并将其部署到生产环境中。

随着越来越多的应用程序被容器化,容器安全也随之变得越来越重要。在项目的 流水线 中, 我们可以使用漏洞扫描器进行扫描并提前获得反馈,实现 “安全左移” ,也可以更好的实践敏捷。

基于容器的应用程序的安全痛点

现在,我们使用先进的技术来构建我们的应用程序,如 NodeJS、 Java 和 Kotlin 等,然后将代码库存储在托管的 Git 平台上,如 GitHub、Gitlab 等。代码库由我们的业务代码和依赖关系组成;对于依赖项,我们可以使用专业的扫描工具来确保安全,比如 NodeJS 的 npm audit , GitHub 的 Dependabot;至于我们的业务代码,可以使用其他的一些安全工具可以扫描,比如 SoneQube 等。

因此,对于依赖( Dependencies)和我们的业务代码,这些都在我们的控制之下,我们可以确保应用程序的安全性,并且在 Pipeline 上获得快速反馈;同时在我们将应用程序部署到生产环境之前可以通过使用各种工具建立信心。但是,通常情况下我们的应用程序运行的系统环境是不受我们控制的,可能存在潜在的安全漏洞。在这我们可以换位思考一下,如果我们不能保证我们的应用程序运行的系统的环境安全,就会导致各种各样意想不到的问题,如黑客攻击、用户信息泄露、财产损失,更会对公司的声誉造成损害。所以,确保我们产出物(Artifact)的安全是很重要的。

保持容器镜像安全的 两个方案

方案1: 在镜像注册表中定期扫描

通过这种方式,我们需要为镜像注册表添加一个安全扫描程序,扫描程序可以是一个定时任务(Cron Job) 作业,也可以是由特定的人触发的可执行操作。

如果是一个定时任务,它将在特定时刻由定时任务自动触发。例如,Docker Hub 会在特定的时间扫描他们的官方注册表,当有任何漏洞被扫描出来时,它会向镜像维护者发送报警信息。

方案2:将扫描工具集成到 Pipeline 中

另一种方法是在 Pipeline 上对镜像产物进行扫描,这样更加简单高效。当我们将代码推送到代码存储库时, Pipeline 将自动执行扫描镜像的命令。因为 Pipeline 每次都是无差别地执行,所以我们可以发现任何安全问题并及时报警修复。

现在,越来越多的团队或公司使用敏捷来开发他们的项目。如果我们能够尽早地发现任何安全问题或者漏洞,我们就可以在产品发布之前降低产品的安全风险。 Pipeline 是确保每一行代码和基础运行环境的安全性是的最好方法之一,因为它可以在提交代码时自动执行。

容器安全扫描工具对比

针对上述解决方案,我们调查了 Trivy、Claire、Anchore Engine、Quay、Docker hub 和 GCR 等几种扫描工具,从不同维度进行对比。

参考 Trivy 官网

首先,我们可以将这些扫描工具按照其执行的环境简单分类; 因为 Docker Hub、GCR 和 Quay 是需要在服务端也就是容器注册中心运行的, 所以适合方案1; Trivy、Clair 和 Anchor Engine 可以在 Pipeline 上工作,所以适合解决方案2。

对于第一个维度:OS Package,这些所有的扫描工具都可以做到,但是对于第二个维度:Application dependencies,只有 Trivy 和 Anchore Engine 可以做到,对于第五个维度: Suitable for CI, 只有前三个符合条件。

对于漏洞数据库的更新,Clair 会定期从一组配置的源中获取漏洞元数据库(Vulnnerability Database),并将数据存储在其数据库中,只要不获取最新的漏洞元数据,每次执行都用之前的漏洞数据库,漏洞数据库的时效性有点差。 Trivy 和 Anchore Engine 则是每次运行都将下载最新的漏洞数据库并将其缓存在本地文件中,当扫描工具再次运行时,它将检查并更新数据库以保持数据库为最新状态。

同时,对于 Trivy、Clair 和 Anchore Engine,这三者的社区非常活跃,所以我们不能用没有人来帮你解决你的问题来评判; 而且作为一种工具,它必须易于使用并且有良好的文档可供参考。经过调研,发现 Trivy 的文档非常详细,非常友好, 而且 Trivy 的使用方式更加友好,比如我们可以过滤掉(.trivyignore)你指定的漏洞,对于最新发现的漏洞,官方没有给出修复版本,这时候我们就可以忽略这个漏洞继续构建,但 Anchore Engine 做不到。

2020年3月16日,领先的云原生应用和基础设施安全平台供应商 Aqua Security 宣布,其开源的 Trivy 漏洞扫描器将作为一个集成选项添加到其使用的云原生平台、CNCF 的 Harbor 注册表和 Mirantis Docker Enterprise 中。你可以在这里找到 这篇文章

Trivy集成到流水线中的使用方法

Trivy 支持多种扫描方式,如扫描容器镜像、Git 仓库和文件系统等;下面,我们使用 GitHub Actions 以 Docker 运行 Trivy 扫描构建好的镜像产出物来展示 Trivy 的强大之处,下面是 GitHub Actions 的部分代码:

   - name: Trivy scanner
  run: |
         docker run --rm -v 
/var/run/docker.sock:/var/run/docker.sock \
           aquasec/trivy image --severity HIGH,CRITICAL 
--exit-code 1 dashboard:${{ github.sha }}

在这需要对以下几个参数做特别说明:

  • -v /var/run/docker.sock:/var/run/docker.sock 如果想扫描本地主机上的镜像,需要挂载 docker.sock

  • --severity 设置要扫描的漏洞级别

  • --exit-code 发现漏洞时 Trivy 的退出状态(默认值:0); 在 Pipeline 中,如果将该值设置为1,且有漏洞被发现,则 Pipeline 将退出,而不会继续运行。如果将其设置为0,则 Pipeline 将继续运行,但会报告结果。所以,如果你想在发现漏洞后阻止 Pipeline 继续执行,可以设置它为1。

想了解更多关于参数和使用方法的信息,请访问 Trivy 的官方网站: https://github.com/aquasecurity/trivy

总结

无论你在哪里,安全都是一个非常重要的问题。我们可以将 “安全左移(Shift Left Security)”,这样就可以减少生产环境中的安全风险;对于扫描工具 Trivy 来说,它对于保证镜像的安全性非常有用,它不仅可以扫描镜像,还可以扫描 Git 仓库,文件系统等。
最后,非常感谢同事张思楚、王亦晨和邢砚敏等人的大力支持和指导,在他们热心帮助和辛苦付出之下才有了这篇文章。

相关 [容器 安全 工具] 推荐:

容器安全扫描工具推荐 (insights.thoughtworks.cn)

- - IT瘾-jianshu
在现代软件开发中, 我们会使用一些公共镜像作为基础镜像来快速构建我们的应用镜像,并将其部署到生产环境中. 随着越来越多的应用程序被容器化,容器安全也随之变得越来越重要. 在项目的 流水线 中, 我们可以使用漏洞扫描器进行扫描并提前获得反馈,实现 “安全左移” ,也可以更好的实践敏捷. 基于容器的应用程序的安全痛点.

Terrier:一款功能强大的镜像&容器安全分析工具

- - FreeBuf互联网安全新媒体平台
Terrier是一款针对OCI镜像和容器的安全分析工具,Terrier可以帮助研究人员扫描OCI镜像和容器文件,并根据哈希来识别和验证特定文件是否存在. 如需了解源代码安装步骤,请参考项目的. 工具使用必须扫描镜像的OCI TAR,这个值需要通过cfg.yml文件提供给Terrier. 下列Docker命令可以用来将一个Docker镜像转换成一个TAR文件,并提供给Terrier扫描:.

Docker容器安全性分析

- - FreeBuf互联网安全新媒体平台
Docker是目前最具代表性的容器技术之一,对云计算及虚拟化技术产生了颠覆性的影响. 本文对Docker容器在应用中可能面临的安全问题和风险进行了研究,并将Docker容器应用环境中的安全机制与相关解决方案分为容器虚拟化安全、容器安全管理、容器网络安全三部分进行分析. 一、从虚拟化安全到容器安全 .

云原生之容器安全实践

- - IT瘾-tuicool
笔者主要负责美团内部操作系统安全、云原生安全、重大高危漏洞应急响应. 10+年安全行业经验,熟悉多个安全领域,涉及渗透测试、Web安全、二进制安全、Iot安全、Linux/Android内核安全等,6+年的时间到至今,长期专注于Linux内核安全及开源软件安全. 21岁时受邀在第一届中国互联网安全领袖峰会(CSS)演讲,知名Linux/Android内核远程漏洞CVE-2017-8890发现者.

初识容器安全项目 Falco

- - DockOne.io
容器化普及进行的如火如荼,但是无论是公有云环境还是企业内部的容器化环境,都有可能会面对部分异常的用户行为,有些是有意为之,有些可能是无意之失,但是都可能给容器底层的主机造成安全的隐患. 容器的工作模式是共享宿主机内核,从出道以来就面临着各种安全的问题,比如 Fork 炸弹会一直耗尽主机的进程资源、容器逃逸获取到主机各种资源等都可能带来安全隐患(部分安全隐患已经得到了有效的解决,但是仍然存在众多的情况会造成安全问题).

Safely,孩子安全新工具

- Shark - 爱范儿 · Beats of Bits
和 Foursquare、街旁一样,Location Labs 也为人提供地理位置服务,然而和前两者不同的是 Location Labs 的目标锁定在保护家庭成员,防止活泼好动的孩子走失、防止家庭成员在开车的时候发短信. 它和美国三大家运营商合作,推出不同名字,实质相同的服务,比如 Sprint 的 Family Locator、AT&T 的 FamilyMap,和 T-Mobile 的 FamilyWhere,成为服务背后的服务.

浅析 Docker 容器安全管控方法

- - IT瘾-dev
二、浅析Docker容器生命周期安全问题. 2.3 容器系统入侵检测与防护. 2.4 容器网络入侵检测与防护. 2.6 Docker及其配套软件漏洞. 三、浅谈Docker容器安全现状改善方法. 3.1 “镜像深度扫描”管控方法. 3.2 “容器系统入侵检测与防护”管控方法. 3.3 “容器网络入侵检测与防护”管控方法.

如何使用 Distroless 让你的容器更加安全

- - SegmentFault 最新的文章
使用 Distroless 镜像来保护 Kubernetes 上的容器. 容器改变了我们看待技术基础设施的方式. 这是我们运行应用程序方式的一次巨大飞跃. 容器编排和云服务一起为我们提供了一种近乎无限规模的无缝扩展能力. 根据定义,容器应该包含 应用程序 及其 运行时依赖项. 然而,在现实中,它们包含的远不止这些.

运维开发必知——容器诊断工具集合

- - SegmentFault 最新的文章
随着微服务架构和云计算的普及,越来越多企业的应用都上了云,不仅是云基础设施 IaaS ,如 kubernetes 等 PaaS 项目也是越来越热门. 但新的技术会带来新的架构复杂,同时也会使排查问题更加困难,因此很多运维和开发同学都觉得用平时用的顺手的工具和手段在容器里排查问题不好使了. 工欲善其事必先利其器,正是由于这样的情况,所以我们排查容器问题的时候,需要引入新的工具和手段.

QQ 侦探 – 打造更安全的 QQ 环境 | 小众软件 > 安全工具

- Winterth - 小众软件 - Appinn
QQ 侦探,是一款专门针为腾讯 IM 系列软件(QQ)打造的轻量级智能型安全工具,其主要功能是拦截 QQ(包括TM)的一些程序行为,让您的系统更加安全. 感谢 小众软件 Group 中的 tips 同学推荐. 江湖中经常传说着一些靠谱的、不靠谱的事情,比如某些软件会在没有通知的情况下扫描用户的私人文件,比如扫描后还会有上传行为,总之坊间的各种传说很邪乎.