【论文速读】| ARVO: 开源软件可重现漏洞的全景图

news2024/9/29 1:52:44

图片

本次分享论文:ARVO: Atlas of Reproducible Vulnerabilities for Open Source Software

基本信息

原文作者:Xiang Mei, Pulkit Singh Singaria, Jordi Del Castillo, Haoran Xi, Abdelouahab (Habs) Benchikh, Tiffany Bao, Ruoyu Wang, Yan Shoshitaishvili, Adam Doupé, Hammond Pearce, Brendan Dolan-Gavitt

作者单位:亚利桑那州立大学、纽约大学、新南威尔士大学

关键词:漏洞数据集、开源软件、漏洞修复、可重现性

原文链接:https://arxiv.org/pdf/2408.02153

开源代码:暂无

论文要点

论文简介:在当今软件安全领域,研究人员对高质量漏洞数据集的需求日益增加。现有的数据集往往规模有限、更新缓慢,且缺乏支持深入分析的元数据。为解决这些问题,本文提出了ARVO,一个专为开源软件创建的可重现漏洞全景图。

ARVO通过自动化手段从Google的OSS-Fuzz项目中收集和处理漏洞信息,构建了一个包含5000多个实际漏洞的数据集。每个漏洞都配有完整的触发输入、开发者修复补丁及可自动重建的项目版本。ARVO不仅解决了手动更新耗时的问题,还提供了动态扩展的数据集基础,支持漏洞发现、故障定位、补丁生成和自动化修复等研究方向。

图片

研究目的:本研究旨在开发一个能够自动生成、维护并持续更新的高质量漏洞数据集,解决当前数据集中规模小、更新耗时、元数据不足等问题。通过设计ARVO系统,本文为开源软件中的真实漏洞提供了一个大规模、可重现的数据集,能够精确定位修复提交记录,并自动重建受影响的软件版本,为漏洞发现、故障定位和自动化修复等研究领域提供可靠的数据支持,推动软件安全研究的发展。

研究贡献

1. 识别并解决了漏洞数据集在重现性方面的关键挑战。

2. 设计了一个名为ARVO的系统,能够自动识别并定位漏洞修复的具体提交记录。

3. 提供了一个包含超过5000个开源C/C++项目漏洞的可重现、可重新编译且自动更新的数据集。

4. 将ARVO本身作为开源框架发布,供其他研究人员使用和扩展。

引言

随着软件系统的复杂性和广泛应用,软件漏洞的数量和严重性逐年增加。2023年全球被跟踪的漏洞数量超过28000个,其中4648个被评为严重漏洞。研究这些漏洞的性质和修复方法对提升软件安全性至关重要。然而,现有的漏洞数据集主要用于告知用户已知漏洞,帮助系统维护者修补漏洞,而非支持学术研究。这些数据集通常缺乏详细的元数据,且难以重现,限制了其在研究中的应用价值。

为了填补这一空白,ARVO从Google的OSS-Fuzz项目中提取漏洞,通过自动化工具实现对漏洞的重现和修复,并能够持续更新,为软件安全研究提供一个动态且可扩展的平台。

研究背景

本文主要阐述了在探讨 ARVO 之前,有必要了解现有的研究漏洞数据集及其技术的局限性。首先,介绍了模糊测试,特别是基于覆盖的灰盒模糊测试在查找软件漏洞方面的广泛应用。OSS-Fuzz 作为谷歌创建的开源项目,对 1000 多个开源项目进行持续模糊测试,截至 2023 年 8 月已助力发现并修复超过 10000 个漏洞。接着,论述了补丁定位问题。CVE 和 NVD 漏洞数据集并不将补丁作为必需项,且其准确性难以保证。一些自动化方法虽能将 CVE 漏洞映射到补丁,但由于仅专注于可提取分析的文本文档和代码信息,准确性同样无法保证。随后,介绍了 OSV 和 OSS-Fuzz。OSS-Fuzz 拥有主要基于文本的数据集,可用于构建漏洞数据集,但补丁验证存在 24 小时延迟,且数据常常不可靠不准确。例如,某提交被识别为补丁,实际却未改变源代码。最后提到,在第 4 节中将详细评估 OSS-Fuzz 的重现性,并讨论提高重现成功率的方法。

数据复现

ARVO 的重要贡献在于专注其数据集的可重现性,与以往工作不同,ARVO 可重放系统易受攻击版本和已修复版本的概念验证(PoC)以及重新编译软件各版本。判断研究漏洞数据集可重现性有两个标准:重现资源和重现流程。重现资源包括漏洞描述、相关组件源代码、重现环境、编译方法/脚本、易受攻击的二进制示例、触发漏洞的 PoC 输入及相应补丁。重现流程旨在轻松重现漏洞,关注其成功率和所需维护,因解决缺失资源的复杂性及对上游软件的有限控制而具有挑战。

ARVO

概括

ARVO(Atlas of Reproducible Vulnerabilities for Open Source Software)是一个专为开源软件漏洞研究设计的综合性系统,致力于创建一个大规模、可重现的漏洞数据集,并通过自动化手段解决生成、更新和验证中的挑战。

ARVO的核心在于其高度的可重现性和自动化特性,确保每个收集的漏洞都可以在不同的版本中重新编译和运行。结合Google的OSS-Fuzz项目提供的大量漏洞数据,ARVO成功重现了超过5000个漏洞,并为每个漏洞生成相应的Docker镜像,这些镜像方便研究人员重现实验,支持进一步的漏洞分析和修复。ARVO的数据集还具有动态扩展的能力,随着新的漏洞被发现,自动添加到数据集中,形成不断更新和完善的资源库。

源数据

ARVO的数据主要来源于Google的OSS-Fuzz项目,该项目对超过1000个开源软件项目进行持续的模糊测试,以检测和报告安全漏洞。OSS-Fuzz能够自动捕捉和记录漏洞触发的输入、代码版本及修复补丁。

尽管OSS-Fuzz提供了丰富的漏洞数据,其原始数据仍然存在一定的局限性,如缺乏详细的编译和依赖信息,导致难以重现这些漏洞。ARVO通过引入版本控制、构建环境和精确的依赖管理,弥补了这些不足,使得每个漏洞都能被精确重现,并提供所有必要的元数据。

此外,ARVO还能自动从OSS-Fuzz的更新中提取新发现的漏洞,确保数据集始终保持最新状态。

再现

ARVO的一个显著特点是其在重现漏洞方面的高成功率,这在现有研究工具中极为罕见。ARVO通过精确的版本控制和依赖管理,确保每个漏洞可以在其发现时的环境中重现。ARVO重现了8934个漏洞中的5651个,这一成就得益于严格的版本控制和自动化构建流程。通过解析和调整漏洞所依赖的库和工具版本,ARVO解决了因依赖变动或资源丢失导致的构建失败问题。ARVO还采用资源修复策略,通过自动定位和替换失效资源,成功重现了大量历史漏洞,极大地减轻了研究人员的负担。

图片

定位修复器

ARVO不仅重视漏洞的重现,还特别关注修复补丁的精确定位。OSS-Fuzz通常只提供一个时间范围内的多个提交记录,难以确定具体的修复补丁。为解决这一问题,ARVO引入了定位修复器,能够在提交历史中进行二分搜索,找到最早修复漏洞的提交。通过精确控制项目及其依赖版本,ARVO在复杂的代码库中定位具体修复补丁,并验证其有效性。在其可重现的漏洞中,ARVO成功识别了5001个修复补丁,准确率达88.5%。这一工具为漏洞修复研究提供了精准的数据支持,帮助开发者更好地理解和提高修复质量。

数据库访问

为了最大限度提升ARVO数据集的可用性,ARVO提供易于访问和使用的数据库接口。所有已重现的漏洞及其对应的修复补丁都通过Docker镜像形式发布在Docker Hub上。研究人员只需简单命令即可在支持Docker的环境中快速拉取并运行这些镜像,重现漏洞的触发和修复过程。这一设计大大降低了使用门槛,使即使没有安全背景的研究人员也能轻松使用ARVO数据集。此外,ARVO的开源特性允许用户根据需求重新构建和扩展数据集,进一步提高了灵活性和实用性。通过这些特性,ARVO不仅成为学术研究的强大工具,也为工业界的漏洞分析和修复提供了宝贵资源。

图片

数据集

ARVO的数据集是当前开源软件漏洞研究领域中规模最大、内容最丰富的可重现漏洞数据集之一。该数据集涵盖了273个不同的C/C++项目,成功重现了5651个真实世界的漏洞,并精确定位了5001个修复补丁。ARVO的数据集在规模和多样性上都远超以往的研究数据集,涵盖从图像处理到网络协议的广泛应用领域。

为了确保这些漏洞的重现性,ARVO为每个漏洞生成独立的Docker镜像,研究人员可通过简单命令在任何环境中快速重现这些漏洞及其修复过程。此外,ARVO的数据集具有自动更新能力,随着OSS-Fuzz的持续运行,新漏洞会自动添加到数据集中,形成不断扩展的资源库,为漏洞研究、故障定位和自动化修复提供强大数据支持。

图片

案例研究

本文通过两个案例研究展示了ARVO的实际应用潜力。

第一个案例评估了大语言模型(LLMs)在漏洞修复中的表现,利用ARVO的数据集,研究人员系统地测试并验证了GPT-3.5和GPT-4在修复真实世界漏洞中的效果。结果显示,尽管LLMs能够生成部分有效修复代码,但在许多情况下未能解决根本问题,甚至可能破坏原有功能。

第二个案例揭示了OSS-Fuzz中300多个标记为修复但实际仍存在的零日漏洞。通过ARVO的重现能力,这些漏洞得以被发现,说明了OSS-Fuzz在漏洞修复验证中的问题,体现了ARVO在检测和揭示潜在安全威胁中的关键作用。这些案例研究表明,ARVO不仅在学术研究中应用前景广阔,还能有效提升开源软件的安全性。

论文结论

本文引入的ARVO系统显著提升了漏洞数据集的重现性和自动化能力,为软件安全研究提供了强大工具。ARVO成功构建了包含5000多个实际漏洞的高质量数据集,并通过精确版本控制和自动化修复定位,解决了传统数据集在规模和重现性方面的不足。ARVO数据集能够持续更新,确保其长期适用性,为未来的漏洞发现、故障定位、自动化修复等研究提供可靠数据支持。

通过多个案例研究,ARVO展示了其在揭示零日漏洞和评估自动化修复工具方面的独特优势。随着ARVO的不断扩展和优化,它将成为软件安全研究不可或缺的基础设施,为学术界和工业界的安全研究提供持续贡献。

原作者:论文解读智能体

校对:小椰风

图片

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2087967.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java Email发送:如何配置SMTP服务器发信?

Java Email发送性能如何优化?怎么实现Java发信功能? Java Email发送功能使得开发者能够轻松集成邮件服务到他们的应用程序中。通过配置SMTP服务器,Java Email发送可以实现高效、可靠的邮件传递。AokSend将详细介绍如何配置SMTP服务器以进行J…

10、ollama启动LLama_Factory微调大模型(llama.cpp)

在前面章节中介绍了如何使用LLama_Factory微调大模型,并将微调后的模型文件合并导出,本节我们我们看下如何使用ollama进行调用。 1、llama.cpp LLama_Factory训练好的模型,ollama不能直接使用,需要转换一下格式,我们…

Java面试——Spring

优质博文:IT-BLOG-CN 一、Spring Bean 作用域 【1】singleton:该属性在 IOC容器仅创建一个 Bean实例(单例),IOC容器每次返回的是同一个 Bean实例。 【2】prototype:该属性在 IOC容器可以创建多个 Bean实例…

MT3608L 2.5A,高效率1.2MHz电流模式升压转换器芯片IC

一般描述 MT3608L是一款恒频、6针SOT23电流模式升压转换器,适用于小型、低功率应用。MT3608L开关频率为1.2 MHz,允许使用高度小于2mm的微型、低成本电容器和电感器。内部软启动可产生小浪涌电流,延长电池寿命。 MT3608L具有在…

事半功倍:利用增强现实提高工作效率

人们通常认为增强现实只是游戏中的一个强大的功能,然而,研究表明,增强现实在提高工厂的效率和生产力方面也发挥着重要作用。不管增强现实、虚拟现实还是混合现实都能很好地模拟工厂的工作场景,这对于培训、运营、安全和研发方面的…

ip地址暴露有什么危害?怎么隐藏ip地址

在数字化时代,‌IP地址作为网络世界的“门牌号”,‌扮演着连接用户与互联网的重要角色。‌然而,‌随着网络环境的日益复杂,‌IP地址的暴露可能成为个人隐私泄露和网络攻击的风向标。‌本文将深入探讨IP地址暴露的危害,…

【pgAdmin4】Windows 上安装 PostgreSQL(图文详情)

目录 0.背景 1.简介 2.安装步骤 1)下载地址 2)双击安装包进行下载【请以管理员身份打开并安装】 3)安装步骤 4)安装中 5)安装完成 0.背景 最近在学习大数据规模处理的相关课程,需要安装这个数据库以…

快速安全部署 Tomcat

主机环境 IP域名用途172.25.254.10tomcat1.orgTomcat172.25.254.20tomcat2.orgTomcat172.25.254.30nginx-server.orgNginx 负载均衡 Tomcat 安装 172.25.254.10 # 安装JAVA [roottomcat1 ~]# yum install java-1.8.0-openjdk.x86_64 -y # 下载Tomcat,推荐在Windows主机下载…

EE trade:贵金属包括哪些

贵金属, 顾名思义, 是指价值贵重的金属, 它们因其独特的性质和稀缺性, 在人类历史上扮演着重要的角色。 从古代的装饰品到现代的工业材料, 贵金属一直受到人们的追捧。 一、 八大贵金属: 稀有珍贵&#xf…

首批河南省“人工智能+高等教育” 典型应用场景公布

河南省在推进高等教育与人工智能技术融合方面迈出了重要步伐。 近期,河南省教育厅公布了首批“人工智能高等教育”典型应用场景案例认定名单,此举标志着省级教育部门对高校在AI应用方面的积极探索和实践给予了高度认可和支持。 经过严格的申报审核、会…

夜深了,赶紧根据软件系统建模建设一个房屋租赁服务系统,坐上收租大佬宝座,走上人生巅峰

目录 案例 【题目】 【问题 1】(12 分) 【问题 2】(5 分) 【问题 3】(8 分) 【答案】 【问题 1】答案 【问题 2】答案 【问题 3】答案 相关推荐 案例 阅读以下关于软件系统建模的叙述,在答题纸上回答问题 1 至问题 3。 【题目】 某公司欲建设一个房屋租赁服务…

图像去模糊技术分享

图像去模糊是图像处理领域中的一个技术过程,旨在恢复或提高模糊图像的清晰度,减少因各种原因(如运动、焦点不准等)导致的图像模糊。图像去模糊技术对于提高图像质量,增强视觉效果,以及在诸如医疗成像、卫星…

鸿蒙( Beta5.0版)开发实战:自定义TabBar页签

介绍 本示例主要介绍了TabBar中间页面如何实现有一圈圆弧外轮廓以及TabBar页签被点击之后会改变图标显示,并有一小段动画效果。 效果图预览 使用说明: 依次点击tabBar页面,除了社区图标之外,其它图标往上移动一小段距离。 实现…

内网穿透的应用-如何使用跨平台终端Tabby结合内网穿透工具异地远程ssh访问Ubuntu系统

文章目录 前言1. Tabby下载安装2. Tabby相关配置3. Tabby简单操作4. ssh连接Linux4.1 ubuntu系统安装ssh4.2 Tabby远程ssh连接ubuntu 5. 安装内网穿透工具5.1 创建公网地址5.2 使用公网地址远程ssh连接 6. 配置固定公网地址 前言 今天和大家分享一下如何在Windows系统使用Tabb…

友元成员函数怎么用?

友元破坏了类的封装性&#xff0c;能够让友元的类或函数访问到类的私有数据&#xff0c;既然它有这个特性那就看看怎么使用吧&#xff0c;这里看个友元成员函数的使用。 #include <stdlib.h> #include <stdio.h> #include <malloc.h>class CDate; class CTi…

脑电图(学习自用)(1-4课)

文章目录 第一课&#xff1a;电极的安放位置和测量安放前的准备放置操作导联设置 第二课&#xff1a;脑电图一般判读原则判断正常的脑电图睡眠期的脑电图正常成分慢波的说明 正常脑电图的变异弥漫性慢波 第三课&#xff1a;脑电图波的分析和识别波幅的分布 位相波形-单型波正弦…

C#预处理器指令

预处理器指令(Preprocessor Directives)指导编译器在实际编译开始之前对信息进行预处理. 通过这些指令,可以控制编译器如何编译文件或编译哪些部分.常见的预处理器指令包括条件编译,宏定义等. 所有的预处理器指令都是以#开始,且在一行上,只有空白字符可以出现在预处理器指令之…

领夹麦克风哪种好,领夹麦克风哪种好用又实惠,无线麦克风推荐

​对于追求高品质视频内容的创作者来说&#xff0c;优质的录音设备是不可或缺的。今天&#xff0c;我将分享几款性价比极高的无线领夹麦克风&#xff0c;它们将帮助你在各种拍摄环境中获得清晰、专业的音频&#xff0c;让你的作品声音部分无可挑剔吧&#xff01; 一、无线领夹麦…

网易易盾携手雷斧科技,打造公平竞技环境

这是一个充满复古像素风格的游戏世界&#xff0c;玩家们控制着自己的像素角色&#xff0c;手持着各种像素化武器&#xff0c;时而酣畅对战&#xff0c;时而自由创作地图、武器和皮肤。 《像素射击》是由雷斧科技开发的一款集生存、对战、沙盒创造于一体的像素风格的3D多人在线…

Kafka【四】Controller的选举机制

【1】控制器&#xff1a;Controller Kafka是分布式消息传输系统&#xff0c;所以存在多个Broker服务节点&#xff0c;但是它的软件架构采用的是分布式系统中比较常见的主从&#xff08;Master - Slave&#xff09;架构&#xff0c;也就是说需要从多个Broker中找到一个用于管理…