之前释出开源漏洞扫描器 OSV- 的时候,我这简单介绍了一下:

时隔差不多半年,再来看看OSV-的进展。当前版本是1.3,下载地址是:

也可以通过其它方式下载安装,比如scoop,,,apk等等。

了解这个扫描器的开发者都应该知道了,OSV-是OSV.DEV数据库的前端工具,对软件项目的依赖项列表检查关联的漏洞并给出警示。

由于OSV.dev数据库是开源的和分布式的,与其它闭源的漏洞数据库和扫描工具相比scanner,有如下优势:

具体到软件的版本更新方面,现在的1.3版新功能特性包括有

扫描方面的新特性包括:

输出方面的新特性包括:

API 函数库方面的新特性包括:

文档方面,所有的文档都进行了更新:

接下来看看具体使用情况。笔者从扒拉了一些代码,为了能让osv-扫描出漏洞还故意clone了些旧版本。

首先是对单个仓库进行扫描,例子是zxing的代码,可见osv-会先确认代码仓库的当前,然后基于找到的所有pom.xml进行软件包检查,最后输出了3个漏洞信息:

如果是对多个仓库进行扫描,osv-的扫描过程也相差无几,最后合并输出扫描发现的结果。用输出结果重定向到文本文件的方式留存输出结果如下:

╭─────────────────────────────────────┬───────────┬──────────────────────────────────────────┬──────────────────────────────────────────┬──────────────────────────────── ≈
│ OSV URL (ID IN BOLD)                │ ECOSYSTEM │ PACKAGE                                  │ VERSION                                  │ SOURCE                          ≈
├─────────────────────────────────────┼───────────┼──────────────────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────── ≈
│ https://osv.dev/GHSA-4jrv-ppp4-jm57 │ Maven     │ com.google.code.gson:gson                │ 2.5                                      │ !toolbox4minecraftamidstpom.x ≈
│ https://osv.dev/GHSA-269g-pwp5-87pp │ Maven     │ junit:junit                              │ 4.11                                     │ !toolbox4minecraftamidstpom.x ≈
│ https://osv.dev/OSV-2022-1068       │ GIT       │                       6eebecc3034a630b105437fc63c0b8bbd95ec191                       │ clamav                         ≈
│ https://osv.dev/OSV-2022-636        │ GIT       │                       6eebecc3034a630b105437fc63c0b8bbd95ec191                       │ clamav                         ≈
│ https://osv.dev/OSV-2022-94         │ GIT       │                       6eebecc3034a630b105437fc63c0b8bbd95ec191                       │ clamav                         ≈
│ https://osv.dev/OSV-2023-164        │ GIT       │                       6eebecc3034a630b105437fc63c0b8bbd95ec191                       │ clamav                         ≈
│ https://osv.dev/OSV-2023-350        │ GIT       │                       6eebecc3034a630b105437fc63c0b8bbd95ec191                       │ clamav                         ≈
│ https://osv.dev/GHSA-jppv-gw3r-w3q8 │ RubyGems  │ rake                                     │ 10.1.0                                   │ syslog-client-for-windowsGemfi ≈
│ https://osv.dev/GHSA-5mg8-w23w-74h3 │ Maven     │ com.google.guava:guava                   │ 18.0                                     │ zxingpom.xml                   ≈
│ https://osv.dev/GHSA-mvr2-9pj6-7w5j │ Maven     │ com.google.guava:guava                   │ 18.0                                     │ zxingpom.xml                   ≈
│ https://osv.dev/GHSA-269g-pwp5-87pp │ Maven     │ junit:junit                              │ 4.12                                     │ zxingpom.xml                   ≈
╰─────────────────────────────────────┴───────────┴──────────────────────────────────────────┴──────────────────────────────────────────┴──────────────────────────────── ≈

这输出内容的格式还有点不太对,不过不碍事。

由于OSV-是OSV.dev的前端,所以我们用扫描结果在OSV.dev上检索一下看看,上面列出的那些就选的OSV-2022-1068吧,反正我这长期关注(比如)。

在OSV.dev界面搜索OSV-2022-1068,得到如下结果:

从截图可见scanner,OSV.dev总漏洞数已经达到4万7千多个。最前面的ID是可以点开查看详细信息的,漏洞的URL是:

内容如下:

漏洞细节很详细,给出了影响范围、软件的版本、严重程度等关键信息,还有很多外源链接可以进一步发掘漏洞信息。注意第一个URL是这个漏洞的OSV描述格式(YAML语法)。

使用这个工具的正确态度

“程序员不检查”是个无可奈何的梗,但既然扫描出漏洞,开发者就应该在更新软件包后才继续开发。

从项目的角度,可以利用该扫描器作为强制的代码检查工具,比如设置当开发人员提交代码也就是git 时在服务器端自动启动扫描(即GIT 钩子);又或者没那么占资源地用定时任务每天扫描一次代码仓库,把扫描结果通知项目管理人员或直接通知到开发人员。通过这些方法,确保软件代码获得持续的漏洞监控。

尤其是在释出新版本前,应通过osv-检查确认不存在已知的漏洞,这样做可以提前避免各种本来是可预见的问题,从而有效地实现的循环,提升软件工程项目的交付质量。

还可以看看这些内容:

看完别忘了点个“在看”哦↓


限时特惠:
本站持续每日更新海量各大内部创业课程,一年会员仅需要98元,全站资源免费下载
点击查看详情

站长微信:Jiucxh

发表回复

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