谷歌一直在开发一个新的试验性工具Open Source Insights,帮助开发人员发现他们所使用的开源软件包/库的依赖关系以及已知的安全漏洞。
Open Source Insights
Open Source Insights是一个Google Cloud Platform托管的工具,用户可以通过一个网站访问该工具,用户可以在其中输入特定开源软件包的名称,并了解它们是如何组合在一起的。
它会显示:
——有关包的信息(说明、所有权、链接)
——依赖关系(包依赖的组件)
——依赖项(依赖于它的包)
——安全建议(包和依赖关系中的已知漏洞等)
——许可信息
此外,它还提供交互式工具来可视化和分析完整的、可传递的依赖关系图。它还有一个比较工具来突出不同版本的软件包如何影响你的依赖关系,可能是通过更改它们自己的依赖关系、添加许可要求或修复安全问题。
该工具目前显示了大约50000个(Rust)Cargo包(crates)、60万个Go模块、42万个Maven(Java)和360万个npm包(Node.js)的信息。谷歌正在开发额外的包系统。
他们解释说:“这个项目扫描它能发现的所有可用包,要么通过读取npm之类系统的包主页,要么通过扫描GitHub和其他存储库托管站点。”
“目前,Insights只能用已知的打包模式分析这样的系统,因为它需要打包信息来构建依赖关系图。这意味着,至少现在,没有C或C++的数据,因为它们没有清晰的打包模式。”
提高开源供应链的安全性
随着企业对开源软件的使用增加,以及非托管开源代码(包括安全漏洞、过时或废弃的组件以及合规性问题)带来的风险无处不在,企业必须密切关注自己的软件解决方案所依赖的包中的许多频繁更改。
开发人员可以使用漏洞扫描程序和依赖关系审计来识别漏洞,而Open Source Insights提供了一个关于软件供应链安全的更大视角。
谷歌解释说:“Insights并不是试图取代标准的工具集,而是通过对每种打包模式的整个生态系统的全新、集成的视角来扩充它。”
“一个关键的区别是,从软件和它的打包定义看过去,Insights数据是从第一原理派生出来的。结果可能与所声明的依赖关系(例如,打包的“锁”文件)大不相同或更完整。此外,Insights提供的数据会定期重新评估,以保持最新,这在快速发展的开源开发世界中非常重要。”
Insights跟踪各种公共漏洞数据库,以标记已知的安全问题。
谷歌表示,常用软件包的数据通常是最新的,但不活跃和过时软件包的数据就可能很陈旧了。
原文链接:
https://www.helpnetsecurity.com/2021/06/07/open-source-dependencies-security/