之前释出开源漏洞扫描器 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