共计 1298 个字符,预计需要花费 4 分钟才能阅读完成。
- 💜 前言
💙 容器 / 镜像破绽扫描的利用场景
- 💘 应急检测
- 💘 云平安建设:CI/CD
- 💛 veinmind-vuln 的应用
- 💚 如何解决镜像的破绽事件?
1、前言
在镜像平安的建设中,镜像破绽扫描是保障镜像利用依赖(Dependencies)平安的重要形式之一,也帮忙用户辨认镜像中的软件破绽。
依据 snyk 公布的 2022 年开源平安报告显示,均匀每个利用中会呈现 5.1 个重大等级的破绽,利用依赖导致的破绽占据了总数的近 40%。
而镜像之间的依赖关系,会进一步的放大这个比例: 当一个存在破绽的镜像作为了另一个镜像的根底镜像,很大概率该镜像也会存在这个破绽,减少了平安危险。 因而,利用破绽是镜像平安的一个重要局部。
2、容器 / 镜像破绽扫描的利用场景
应急检测
在云原生环境或生产环境中,当软件 0day 破绽暴发时,仅通过白盒代码审计(SAST)的形式来排查利用是否应用了 0day 组件,并不可能百分之百的保障线上业务的安全性,因为咱们并不分明整个容器在启动或运行的过程中,是否做了其余操作,或引入了其余依赖。因而,对生产容器进行平安扫描能够清晰、明确的获取到容器软件信息,并精准的与 0day 信息进行匹配。
云平安建设:CI/CD
在云平安建设的过程中,咱们仍旧心愿可能尽早的、在开发构建阶段发现平安问题,并阻断自动化测试 / 部署流程,通过平安前移的形式来疏导开发者在开发阶段提前解决平安危险。咱们能够通过 设定破绽的阈值,对事件进行解析,从而判断是否要进行阻断,并推送给开发者进行修复。
3、veinmind-vuln 的应用
veinmind-vuln
插件是由 veinmind-asset
插件降级而来,在资产信息扫描的根底上,对所有的资产信息进行了 CVE 破绽匹配。能最大水平上发现并检测镜像利用破绽信息。能够通过下方命令 疾速对主机上的镜像进行扫描,并将列出所有组件以及他们对应的破绽 ID:
./veinmind-vuln scan image
如果心愿获取到破绽更加 具体的信息,能够应用 -v
进行展现:
./veinmind-vuln scan image -v
如果只须要获取镜像的资产信息,能够通过 --only-asset
参数仅对镜像的资产进行扫描:
./veinmind-vuln scan image --only-asset
4、如何解决镜像破绽信息
对于扫描出的破绽信息,咱们能够次要分为两大类:
- 通过降级镜像版本进行修复。
- 通过降级利用本身的组件版本或配置进行修复。
举两个例子,如,同样是发现 CVE-2019-10129 (PostgreSQL 缓冲区谬误破绽),如果该破绽呈现在 alpine:3.9
的镜像中,你须要手动降级 postgresql 的版本;而如果破绽呈现于 postgres:xxx
的镜像中,你只须要尝试将镜像降级为最新的 tag 进行修复即可(如果官网更新了该问题)。除此之外,对于镜像扫描呈现的 CVE 信息,咱们也能够依据软件起源来进行粗略的优先级辨别,如:来自应用层的破绽往往会比零碎 os 利用的破绽问题更加重大,因而举荐先关注利用组件产出的破绽,最初再关注零碎组件产出的利用。