【论文速读】| MOCK:上下文依赖引导的内核模糊测试

本次分享论文为:MOCK: Optimizing Kernel Fuzzing Mutation with Context-aware Dependency

基本信息

原文作者:Jiacheng Xu,Xuhong Zhang,Shouling Ji,Yuan Tian,Binbin Zhao, Qinying Wang,Peng Cheng,Jiming Chen

作者单位:浙江大学、加州大学洛杉矶分校、佐治亚理工学院

关键词:内核模糊测试、变异、上下文相关依赖

原文链接:

https://dx.doi.org/10.14722/ndss.2024.23131

开源代码:

https://github.com/m0ck1ng/mock

论文要点

论文简介:本文介绍了一种创新的内核模糊测试框架——MOCK。通过学习历史系统调用序列的上下文依赖并生成基于上下文的系统调用序列来优化变异过程,MOCK显著提高了分支覆盖率、输入质量和漏洞发现能力。

研究背景:内核是现代操作系统的核心,其复杂性常导致安全漏洞。传统模糊测试方法在处理系统调用序列时,缺乏对后续依赖的考量,使得它们难以有效触发深层代码和漏洞。

研究贡献:

1.提出了一种系统调用间依赖的上下文捕获建模方法,能够准确地捕获系统调用之间的依赖关系。

2.开发了MOCK框架,该框架融合了拓扑的模型指导依赖学习算法、上下文加载的系统调用序列变异语言算法和自适应任务调度策略,从而优化了内核模糊测试的效率。

3.通过在最新Linux内核上的评估,验证了MOCK的有效性,成功发现了15个独特的漏洞,包括两个CVE。

引言

内核安全对计算机系统的整体安全至关重要。MOCK通过学习和应用系统调用序列的下游依赖,有效提升了模糊测试(Fuzzing)的效率和成果,尤其是在生成能触发核心代码路径的系统调用序列方面表现出显著优势。

背景知识

本文介绍了内核模糊测试的基础知识、面临的挑战以及现有方法的限制,特别指出了现有方法在处理系统调用链路的下游依赖方面的不足。MOCK旨在通过下游的依赖分析来优化这一个过程。

论文方法

理论背景:通过将系统调用建模为条件概率,MOCK能够准确地捕获系统调用间的依赖关系。

方法实现:MOCK集成了自定义的模型指导依赖学习算法、上下文加载的系统调用序列变量语言算法和自适应任务调度策略,以优化内核模糊测试过程。

实验

实验设置:在最新版本的Linux内核上评估了MOCK的性能,并与当前先进的Fuzzer(如Syzkaller和HEALER)进行了比较。

实验结果:MOCK在分支覆盖率、输入质量和独特漏洞发现数量上均超过了对比的Fuzzers,特别是在发现需要长序列交叉的复杂漏洞方面显示出实验优势。

论文结论

通过MOCK通过上下文采集的系统调用依赖分析和优化,显著提高了内核Fuzzing的效率和成果。尤其在提高分支覆盖率、生成高质量输入和发现新漏洞方面表现出色,对未来的内核安全研究具有重要意义。

原作者:论文解读智能体

润色:Fancy

校对:小椰风

图片

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

wordpress被恶意搜索攻击(网址/?s=****)解决方法。

源地址:https://www.ctvol.com/seoomethods/1413686.html 什么叫恶意搜索攻击? wordpress恶意搜索攻击并不是像病毒一样的攻击,而是一种seo分支黑帽手段,通过被攻击网站搜索功能中长尾关键词来实现攻击,通过网址不断…

QT----基于QT的人脸考勤系统(未完成)

目录 1 编译opencv库1.1 下载源代码1.2 qt编译opencv1.3 执行Cmake一直卡着data: Download: face_landmark_model.dat 2 编译SeetaFace2代码2.1 遇到报错By not providing "FindOpenCV.cmake" in CMAKE_MODULE_PATH this project has2.2遇到报错Model missing 3 测试…

Maven深入了解

Maven深入了解 前言一、Maven的核心概念1.1 Maven-Jar包模块化管理1.2 POM1.3 坐标及其命名规范1.4 仓库的概念1.5 生命周期1.6 插件和目标 二、依赖管理2.1 自己写的模块和模块之间也可以互相依赖2.2 依赖的生效范围(scope标签)2.3 依赖的传递性2.4 依赖冲突问题2.5 依赖的排除…

Unity3d版白银城地图

将老外之前拼接的Unity3d版白银城地图,导入到国内某手游里,改成它的客户端地图模式,可以体验一把手游的快乐。 人物角色用的是它原版的手游默认的,城内显示效果很好,大家可以仔细看看。 由于前期在导入时遇到重大挫折&…

大数据基础设施搭建 - Doris

文章目录 一、Linux系统要求1.1 设置系统最大打开文件句柄数1.2 设置最大虚拟块的大小1.3 集群中其他安装doris的机器同上调整1.4 重启服务器生效 二、确认需要下载哪个Doris版本三、上传并解压压缩包3.1 创建目录3.2 解压fe3.3 解压be3.4 解压java udf函数3.4.1 解压3.4.2 复制…

Linux中的文件类型

一、Linux系统如何区分文件类型? Linux系统中不以文件后缀名来区分文件类型,而是通过文件属性中第一列来区分 (Linux系统不以文件后缀名区分文件类型,但是不代表Linux系统不使用文件后缀名,LInux系统中的许多工具例如…

有来团队后台项目-解析7

sass 安装 因为在使用vite 创建项目的时候,已经安装了sass,所以不需要安装。 如果要安装,那么就执行 npm i -D sass 创建文件 src 目录下创建文件 目录结构如图所示: reset.scss *, ::before, ::after {box-sizing: border-box;border-color: currentcolor;border-st…

国家网安教育技术产业融合发展试验区建设专家指导组莅临麒麟信安调研

3月12日下午,由教育部网络安全教学指导委员会秘书长(专家组组长)封化民、工业和信息化部规划司原司长肖华、中国现代国际关系研究院原副院长张力等领导组成的国家网安教育技术产业融合发展试验区建设专家指导组莅临麒麟信安及湖南欧拉生态创新…

手把手教你打造研究生个人简历模板|轻松驾驭简历设计

在简历设计中,如何展现自己的学历优势,是很多学生困扰的问题。 下面,我们首先从即时设计中分享一些不同风格的研究生简历模板。 风格多样的免费简历设计模板https://js.design/community?categorysearch&search%E7%AE%80%E5%8E%86&…

使用el-row及el-col页面缩放时出现空行解决方案

问题: 当缩放到90%或者110%,选中下拉后,下方就会出现空行 如下图所示: 关于el-row 和 el-col : 参数说明类型可选值默认值span栅格占据的列数number—24offset栅格左侧的间隔格数number—0push栅格向右移动格数number…

【Python/crawl】如何使用Python爬虫将一系列网页上的同类图片下载到本地

【需求】 从网页https://www.zhainq.com/%e7%be%8e%e5%a5%b3%e5%86%99%e7%9c%9f%e6%9c%ba%e6%9e%84/%e6%97%a5%e6%9c%ac%e7%be%8e%e5%a5%b3%e5%86%99%e7%9c%9f/109012.html 开始,有十七页,每页都有大漂亮“小濑田麻由”的若干图片,想要将其…

Maven的基本使用

Maven的基本使用 一、为什么要使用Maven1.1 方便添加第三方Jar包1.2 方便获取第三方Jar包(中央仓库)1.3 解决了依赖问题1.4 解决了依赖冲突1.4 项目管理更清晰1.5 总结 二、Maven的下载三、配置Maven本地仓库和中央仓库3.1 Settings文件3.2 配置本地仓库3.3 配置中央仓库(镜像地…

UE5数字孪生系列笔记(二)

智慧城市数字孪生系统 制作流云动画效果 首先添加一个图像在需要添加流云效果的位置 添加动画效果让其旋转 这个动画效果是程序开始就要进行的,所以要在EventConstruct中就可以启动这个动画效果 添加一个一样的图像在这里,效果是从此处进行放大消散 添…

海豚调度系列之:任务类型——SQL节点

海豚调度系列之:任务类型——SQL节点 一、SQL节点二、创建任务三、任务参数四、任务样例五、运行该任务成功之后在hive中查询结果六、使用前置sql和后置sql示例 一、SQL节点 SQL任务类型,用于连接数据库并执行相应SQL。 二、创建任务 点击项目管理-项…

异步发送CompletableFuture<Void> future = CompletableFuture.runAsync(()

基于runAsync系列方法实现无返回值的异步计算 CompletableFuture future CompletableFuture.runAsync(() -> { sendTextMessage(userInfo,dxContent);//发送 });

Electron程序如何在MacOS下获取相册访问权限

1.通过entitiment.plist,在electron-builder签名打包时,给app包打上签名。最后可以通过codesign命令进行验证。 TestPhotos.plist electron-builder配置文件中加上刚刚的plist文件。 通过codesign命令验证,若出现这个,则说明成…

rancher是什么

Rancher Labs是制作Rancher的公司。Rancher Labs成立于2014年,是一家专注于企业级容器管理软件的公司。它的产品设计旨在简化在分布式环境中部署和管理容器的过程,帮助企业轻松地采用容器技术和Kubernetes。Rancher Labs提供的Rancher平台支持Docker容器…

element-plus 完成下拉切换功能

项目场景: element-plus element-plus 完成下拉切换功能,选用了popover 组件去进行样式修改,本来大概是要实现下面这样的样式效果,没想到调整的时候,这个选择的高亮模块总是超出。 实现效果: 解决方案&am…

【数据结构】二叉树---AVL树的实现

目录 一. 什么是AVL树 二. AVL树的结点结构定义 三. AVL树的动态平衡法 1. 左单旋转 --- RL(RotateLeft) 型调整操作 2. 右单旋转 --- RR(RotateRight) 型调整操作 3. 先左后右双旋转 --- RLR (RotateLeftRight) 型调整操作 4. 先右后左双旋转 --- RRL (RotateRightL…

【SpringBoot篇】再战 登录注册操作

文章目录 ⭐model.dto.user层🎈UserRegisterRequest.java🎈UserLoginRequest.java ⭐model.dto.entity层🎈User.java ⭐service层🎈UserService.java🎈UserServiceimpl.java ⭐controller层⭐mapper层🎈Use…