0x01 前景提要

在镜像安全的建设中,镜像漏洞扫描是保证镜像应用依赖(Dependencies)安全的重要方式之一。帮助用户识别镜像中的软件漏洞。

根据 snyk 发布的 2022 年开源安全报告显示,平均每个应用中会出现 5.1 个严重等级的漏洞,应用依赖导致的漏洞占据了总数的近 40%。

8e052dce-24c8-4152-a7ad-da00d72de31c

而镜像之间的依赖关系,会进一步的放大这个比例:当一个存在漏洞的镜像作为了另一个镜像的基础镜像,很大概率该镜像也会存在这个漏洞,增加了安全风险。 因此,应用漏洞是镜像安全的一个重要部分。

0x02 漏洞扫描的应用

应急检测

在云原生环境或生产环境中,当软件 0day 漏洞爆发时,仅通过白盒代码审计(SAST)的方式来排查应用是否使用了 0 day 组件,并不能够百分之百的保证线上业务的安全性,因为并不清楚整个容器在运行的过程或启动的过程中,是否做了其他操作,或引入了其他依赖。因此,对生产容器进行安全扫描可以清晰、明确的获取到容器软件信息,并精准的与 0day 信息进行匹配。

ee9e0a70-1e19-43bb-9c0d-9e9cba8bb13d

云安全建设:CI/CD

在云安全建设的过程中,我们依旧希望能够尽早的、在开发构建阶段发现安全问题,并阻断自动化测试/部署流程,通过安全前移的方式来引导开发者在开发阶段提前处理安全风险。

我们可以通过设定漏洞的阈值,对事件进行解析,从而判断是否要进行阻断,并推送给开发者进行修复。

8098cac9-fc70-4932-9bd4-9674e4b6198e

如果需要更方便地使用集成功能,可以尝试使用 牧云·云原生安全平台:

9827e583-2a8c-4f8c-9f76-8c078500acbc

0x03 Venimind-Vuln 的使用

Venimind-Vuln 插件是由 Venimind-Asset 插件升级而来,在资产信息扫描的基础上,对所有的资产信息进行了 cve 漏洞匹配。最大程度上发现并检测镜像应用漏洞信息。

可以通过下方命令快速对主机上的镜像进行扫描:

./veinmind-vuln scan image

image

这将列出所有组件以及他们对应的漏洞 ID。如果希望获取到漏洞更加详细的信息,可以使用-v进行展示:

./veinmind-vuln scan image -v

image

如果只需要获取镜像的资产信息,可以通过 --only-asset 参数仅对镜像的资产进行扫描:

./veinmind-vuln scan image --only-asset

image

0x04 如何处理镜像漏洞信息

对于扫描出的漏洞信息,我们可以主要分为两大类:

  • 通过升级镜像版本进行修复。
  • 通过升级应用自身的组件版本或配置进行修复。

举两个例子,如,同样是发现CVE-2019-10129(PostgreSQL 缓冲区错误漏洞),如果该漏洞出现在alpine:3.9的镜像中,你需要手动升级postgresql的版本;而如果漏洞出现于postgres:xxx的镜像中,你只需要尝试将镜像升级为最新的tag进行修复即可(如果官方更新了该问题)。

除此之外,对于镜像扫描出现的CVE信息,我们也可以根据软件来源来进行粗略的优先级区分,如:来自应用层的漏洞往往会比系统os应用的漏洞问题更加严重,因此推荐先关注应用组件产出的漏洞,最后再关注系统组件产出的应用。

results matching ""

    No results matching ""