PDGraph:针对不安全项目依赖的大规模实证研究

VSole2022-07-25 18:50:54

简介

代码重用可能带来潜在的安全问题,不同的软件项目可能同时由相互依赖的重用组件引入漏洞。论文通过构建一个项目依赖关系图PDGraph,对项目依赖关系与安全漏洞进行了首次大规模实证研究。

挑战

  • 项目的构建文件只提供分离的依赖关系,需要遍历项目重用库中的构建文件才能获得完整的依赖关系。
  • 解决:将依赖关系分为 Full/Whole Dataset (Maven) 和 Partial Dataset (GitHub) 两类
  • 如何整合不同来源数据集(NVD、Maven、GitHub)的信息来判断项目是否存在漏洞。
  • 解决:对漏洞信息和项目依赖间的一致性进行了量化

方法

A.数据收集

  • 依赖关系
  • Maven:解析pom.xml建立有向边
  • GitHub:针对Java、Ruby、Python、.NET、JavaScript五种语言不同的依赖声明文件,借助API爬取依赖声明文件。将GitHub数据集分为三类:A类(涉及漏洞的项目)、B类(直接使用A类项目库的项目)、C类(间接使用A类项目库的项目)
  • 关联漏洞
  • 相似度匹配:统计文本特征提取相关词,使用Levenshtein距离计算Maven、GitHub项目描述和CPE间相似度。
  • URL:比较NVD漏洞报告中的url与Maven、GitHub项目的url。
  • 第三方数据:Advisory database、CVE、 manually-curated dataset。

B. 构建项目依赖图

  • 定义四项指标评估依赖风险:依赖项目数量、依赖该项目的项目数量、依赖路径长度、循环依赖。
  • 生成依赖图,通过SCC简化PDGraph,利用MFAS保证局部图的层次结构,然后对于每个SCC生成有向无环图DAG.
  • 检测不安全的边:正则匹配依赖关系边缘中的需求版本和漏洞版本。

实验

数据集:

不安全边发现:

总结

论文构建了第一个针对安全漏洞的项目依赖图,发现了大量由于项目依赖而引入的不安全边,可以为代码审计、防御代码重用攻击等提供帮助。但仍存在一些不足:

  • PDGraph基于项目构建文件创建,可能存在人为错误
  • PDGraph目前不支持构建C和C++项目依赖
  • 并非所有漏洞都是可传递的,现有的不安全边可能存在误报
  • 定义的四项依赖风险评估指标有待完善
漏洞
本作品采用《CC 协议》,转载必须注明作者和本文链接
该公司吸引的总投资金额已超过5600万美元,新一轮融资将主要用于加速公司在全球范围内的扩张,并支持其从北美到欧洲不断增长的全球客户群,同时也将支持推进AI路线和产品技术创新。
漏洞概述  漏洞名称Google Chrome WebRTC 堆缓冲区溢出漏洞漏洞编号QVD-2023-48180,CVE-2023-7024公开时间2023-12-20影响量级千万级奇安信评级高危CVSS 3.1分数8.8威胁类型代码执行、拒绝服务利用可能性高POC状态未公开在野利用状态已发现EXP状态未公开技术细节状态未公开利用条件:需要用户交互。01 漏洞详情影
漏洞分析 CVE-2010-0249
2023-11-25 17:50:17
漏洞分析 CVE-2010-0249
漏洞信息共享合作单位证书近日,Coremail获得由国家信息安全漏洞库(CNNVD)颁发的“CNNVD漏洞信息共享合作单位”证书。 此证书是国家权威机构对Coremail安全研究技术和漏洞挖掘技术实力的充分肯定,也是双方合作的里程碑。 国家信息安全漏洞库(CNNVD), 为负责建设运维的国家级信息安全漏洞数据管理平台, 旨在为我国信息安全保障提供服务。  “
漏洞预警 CraftCMS远程代码执行漏洞
漏洞排查与处置,是安全管理员在安全运营中都会碰到的问题,常见却很难做好。
美国联邦调查局于近日警告称,梭子鱼电子邮件安全网关(ESG)的一个重要远程命令注入漏洞的补丁 "无效",已打补丁的设备仍在不断受到攻击。
点击上方蓝字 关注安全知识引言Fiora:漏洞PoC框架Nuclei的图形版。快捷搜索PoC、一键运行Nu
Mikrotik RouterOS操作系统不支持暴力保护,默认的“admin”用户密码在2021年10月之前是空字符串。更让人震惊的是,检测CVE-2023-30799的利用“几乎不可能”,因为RouterOS web和Winbox接口实现了自定义加密,而威胁检测系统Snort和Suricata无法解密和检查这些加密。
VSole
网络安全专家