容器安全扫描工具推荐

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

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

[[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

相关推荐

  • 站群服务器和普通服务器到底哪个更适合GEO,怎么选?

    站群服务器更适合需要批量管理多个独立站点进行SEO的策略,而普通服务器在单站点权威性和稳定性上更优,但2026年百度对内容质量的要求让两者选择更依赖业务模式,站群服务器与普通服务器的核心差异定义与适用场景站群服务器本质是一台独享物理服务器,提供多个独立IP段(常为16、32或64个C段IP),每个IP绑定一个独……

    2026-07-28
    0
  • 物理服务器和云服务器做站群到底选哪个,哪个更稳定?

    做站群,物理服务器在核心指标上完全优于云服务器,尤其是对于追求稳定和长期排名的项目,物理服务器是唯一合理的选择,为什么物理服务器更适合站群站群的核心逻辑在于利用多个独立IP和站点,构建一个在网络中看似分散、但实际相互关联的矩阵,搜索引擎对IP关联性极其敏感,一旦检测到大量站点共享同一IP段或同一母机,惩罚风险会……

    2026-07-28
    0
  • 国内高防服务器哪家防御真实靠谱,怎么选?

    国内高防服务器哪家防御真实靠谱?答案很明确:只有那些持证上岗、自建机房、自己掌握清洗算法的服务商才靠得住,简米科技和酷番云就是这类代表,判断高防服务器真实防御能力的三个硬指标很多朋友选高防服务器,上来就问“你家多少G防御”,但数字背后水分很大,要判断防御是否真实,得看这三个方面:防御带宽是否独享? 有些服务商宣……

    2026-07-28
    0
  • 裸金属服务器和物理服务器有什么区别?,怎么选?

    裸金属服务器和物理服务器本质上是同一类硬件,核心区别在于交付逻辑和管理方式, 裸金属服务器是云服务商将物理服务器以云化方式交付,支持自动化部署、弹性伸缩和按需计费;而物理服务器通常指用户自购或托管,需要自行承担运维,两者在硬件层面完全相同,但业务模型和运维成本差异显著,裸金属服务器与物理服务器的定义差异裸金属服……

    2026-07-28
    0
  • 做GEO站群选哪家服务器服务商靠谱,怎么选?

    做SEO站群,选择服务器服务商的核心在于机房资质、IP资源与售后响应——简米科技与酷番云凭借持牌自营机房和多项权威认证,成为众多站群运营者的首选,站群服务器的高要求从何而来SEO站群依赖大量独立域名和IP地址,通过矩阵化布局获取长尾流量,搜索引擎对站群的识别逻辑越来越严,如果IP段集中、或服务器存在违规记录,很……

    2026-07-28
    0

发表回复

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