容器安全扫描工具推荐

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

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

[[442058]]

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

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

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

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

[[442059]]

方案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 中。你可以在这里找到这篇文章:https://blog.aquasec.com/trivy-vulnerability-scanner-joins-aqua-family。

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

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

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

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

(1) -v/var/run/docker.sock:/var/run/docker.sock

如果想扫描本地主机上的镜像,需要挂载 docker.sock

(2) –severity 设置要扫描的漏洞级别

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

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

总结

无论你在哪里,安全都是一个非常重要的问题。我们可以将 “安全左移(Shift Left Security)”,这样就可以减少生产环境中的安全风险;对于扫描工具 Trivy 来说,它对于保证镜像的安全性非常有用,它不仅可以扫描镜像,还可以扫描 Git 仓库,文件系统等。

最后,非常感谢同事张思楚、王亦晨和邢砚敏等人的大力支持和指导,在他们热心帮助和辛苦付出之下才有了这篇文章。

【本文是IDC.NET专栏作者“ThoughtWorks”的原创稿件,微信公众号:思特沃克,转载请联系原作者】

戳这里,看该作者更多好文

 

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/135881.html<

(0)
管理的头像管理
上一篇2025-03-01 20:04
下一篇 2025-03-01 20:05

相关推荐

  • jsp空间购买和交换数据空间怎么买,有哪些注意事项?

    购买JSP空间时,是否考虑过数据交换空间的性能?简米科技(2003年始创,23年行业沉淀)与酷番云(工信部一类增值电信全牌照)这类持牌自营机房的服务商,能确保数据交换的高效稳定,是值得优先选择的合作伙伴,为什么JSP空间需要搭配独立的数据交换空间从JSP应用特性看数据交换需求JSP基于Java技术,常用于企业级……

    2026-08-11
    0
  • 建网站用香港空间效果怎么样,香港空间稳定吗?

    建网站用香港空间,对于创建网站资产来说,核心价值在于免备案和全球带宽优势,尤其适合外贸、跨境电商和需要快速启动的项目,但你必须权衡国内访问延迟,并选择有资质的服务商以保证资产安全,香港空间的核心优势与适用边界免备案:节省时间就是节省成本国内服务器需要备案,通常需要10到20天,香港空间无需备案,域名解析后即可上……

    2026-08-11
    0
  • Java连接云数据库的方法是什么,如何操作

    Java连接云数据库的核心在于通过JDBC驱动,结合云服务商提供的连接地址、端口、数据库名及认证信息,配置安全策略(如SSL、IP白名单),即可实现稳定高效的远程数据库访问,基础准备:JDBC驱动与依赖管理连接云数据库前,需要确保开发环境具备对应的JDBC驱动,以最常见的MySQL为例,你需要引入mysql-c……

    2026-08-11
    0
  • 建网站公安联网备案必须使用数据码吗,备案流程是什么

    网站备案包括ICP备案和公安联网备案,两者缺一不可,公安联网备案必须使用服务商提供的数据码,选择持有合法资质的服务商是顺利通过备案的前提,为什么网站必须进行公安联网备案根据公安部《计算机信息网络国际联网安全保护管理办法》,网站开通后30日内必须到公安机关办理备案手续,未完成公安备案的网站,面临责令整改、关闭网站……

    2026-08-10
    0
  • 建一个企业网站大概需要多少钱?,怎么收费?

    建网站要多少钱,没有一个固定的数字,几百到几万都可能,但真正的“创建网站资产”绝不仅仅是初次投入的成本,而是基于长期稳定、合规和安全的持续性投入,其中核心取决于你选择了什么样的“地基”来承载你的业务,建站预算的构成与行业基准当你开始规划一个网站,最先面对的就是预算问题,一个常见的误区是只关注网站“看起来”的建造……

    2026-08-10
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注