关于JavaScript开源生态中安全漏洞传播及其演变分析

本文主要介绍Scantist科研团队近期在软件工程顶会International Conference on Software Engineering(CSE)2022中接收的一篇关于 JavaScript包管理器NPM生态中软件安全漏洞的传播及其演变分析的工作《Demystifying the Vulnerability Propagation and Its Evolution via Dependency Trees in the NPM Ecosystem》。

此工作基于Scantist独家的开源生态数据做了一个系统化安全分析,希望给开源社区的安全治理提供更多的见解和思路。

一、研究背景及动机

随着第三方组件在软件开发过程中的广泛使用,如何妥善管理第三方组件中引入的安全漏洞所带来的安全风险,尤其在2021年12月log4j RCE漏洞和2022年3月Spring框架远程命令执行漏洞事件爆发之后,成为DevSecOps过程中广受关注的问题之一。其中,关于安全漏洞的影响传播,特别是在如NPM这种大规模使用第三方组件的软件生态中,显得尤为重要。


在已有的相关工作中,研究人员主要通过两种方式分析依赖中存在的安全漏洞对用户项目的影响。

  1. 通过直接依赖关系反向追踪含有漏洞组件的下游用户
  2. 基于依赖关系进行间接依赖的可达性分析

然而,这两种依赖关系均忽视了NPM生态中软件包安装过程中上下文环境对依赖版本选择的影响,从而无法精准地得到安全漏洞在生态中真实的影响范围。

如下图所示,直接以间接依赖的可达性分析,则存在A@1.0.0->C@1.0.0->D@1.2.0->E@1.0.0的间接依赖链 ,如图(b)。

而根据NPM的依赖解析规则,由于A@1.0.0的直接依赖中已经解析并选择了D@1.0.0,而D@1.0.0亦满足C@1.0.0->D的依赖约束范围,此时应直接选择已有的D@1.1.0而不是重新安装D@1.2.0从而引入含有漏洞的E@1.0.0.

二、研究方法

基于此,本文旨在提出一种轻量且能够对安全漏洞影响尽可能准确分析的方法,对NPM生态中存在的安全漏洞进行经验研究。

如上图所示,我们首先设计并实现一整套

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

薛BLING

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值