论文学习_基于导向式模糊测试的二进制程序漏洞验证方法

1. 引言

研究背景及现存问题:基于代码相似性比较的漏洞检测方法属于静态分析方法,不可避免地存在误报率高的问题,对静态检测方法得到的疑似漏洞代码进行人工分析存在工作量大, 效率低的问题。解决该问题的有效的方案之一是使用导向式模糊测试方法,生成能够执行到疑似漏洞代码位置的测试用例,实现对静态检测结果的动态验证。当前导向式模糊测试多针对源码已知的程序,且对代码在引导模糊测试执行到特定代码位置所起不同作用的考虑并不充分,导致模糊测试的导向式不强。论文研究基于导向式模糊测试的二进制程序漏洞验证方法,对导向式模糊测试技术进行优化,以实现对静态漏洞检测结果的动态验证。

模糊测试技术简介:当前的主流模糊测试方法包括基于覆盖率的模糊测试导向式模糊测试两个主要方向。其中,将覆盖信息作为反馈指导生成新的测试用例,这种方法被称为基于代码覆盖的模糊测试方法,代表性工具有 AFL(american fuzzy lop)、Angora 和 FairFuzz。而导向式模糊测试方法以目标代码为导向,通过距离等执行反馈信息,生成到达目标区域的测试用例。导向式灰盒测试能够缓解基于覆盖率的方法存在的效率问题以及基于符号执行的模糊测试方法存在的扩展性问题,是发现漏洞的有效方法,已经成功应用于漏洞复现、补丁测试等场景, 是验证基于相似性比较得到的静态检测结果的有效手段。

导向式模糊测试技术存在的挑战:,导向式灰盒模糊测试技术面临两个主要挑战。第一个就是多是以源码已知的程序作为模糊测试的目标,对源码已知的程序在编译时插桩,得到充分的代码信息以提高模糊测试的导向性和有效性,如 AFLGo,而针对源码未知的二进制程序的研究相对较少;第二,对代码在进行导向目标漏洞所起的不同作用考虑并不充分。部分代码引导执行到漏洞代码所起的作用更大,因此在导向式灰盒模糊测试中需要考虑到代码的不均等性,这种代码不均等性已经得到了研究人员的关注,但是这种不均等性多是通过静态分析信息进行表征,如 Hawkeye 和 VUzzer 关注了边的不均等性。实际上动态执行信息更能够反映代码的不均等性,能够指引模糊测试向目标代码区域执行。此外,导向式模糊测试需要先确定目标代码区域。很多导向式模糊测试工具,如 AFLGo 和 Hawkeye 使用手工标记的方法确定目标代码区域。当前的自动化目标定位方法一般聚焦于特定漏洞类型的代码,如释放后重引用 (UAF) 漏洞或者内存访问错误相关的漏洞,通用性不强。因此,需要研究一种更加通用的对目标代码自动化定位的方法。

针对二进制程序的导向式模糊测试方法:为了提高导向式模糊测试的效率,论文考虑到代码在进行导向时的不均等性,基于遗传算法进行导向式模糊测试。将静态分析和动态执行过程中的与代码不均等性相关的反馈作用于新的测试用例的生成。其中,相似性比较的结果可以辅助导向式模糊测试方法对目标代码区域的自动定位,在训练好的语义学习模型基础上,利用代码相似性比较结果对函数进行不同权重的赋值,并结合函数权重和程序的控制流图对基本块进行初始权重赋值,基于遗传算法计算种子的权重并进行子代选择和新的测试用例生成,提高模糊测试的导向性。

2. 整体流程

论文研究的针对二进制程序的导向式模糊测试方法,解决了目标代码区域自动定位的通用方法,同时结合程序动态和静态信息,设计更加容易引导程序执行到目标代码区域的导向策略,并实现了原型系统 VDFuzz。原型系统主要包括目标识别器和导向式模糊测试器两个组成部分,如下图所示。

目标识别器:给定可能存在漏洞的二进制测试程序,论文设计目标识别器,使用代码相似性比较的方法,找到程序中的与已有漏洞相似的代码,从而确定可能存在漏洞的位置,达到目标代码区域自动定位的目的。因此,基于二进制语义学习模型中的特征提取方法,构建更精细的代码语义表征方法。对代码特征进行向量化之后,通过计算语义特征向量之间的距离,得到二进制测试程序与已有漏洞函数之间的相似性得分,相似性得分更高的函数存在漏洞的可能性更大,这些函数作为可能存在漏洞的重点代码片段,结合静态程序分析方法,再基本块和函数级别对不同代码再继续导向时的作用进行表示,作为导向模糊测试的执行目标位置。

导向式模糊测试器:基于代码再引导程

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

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

相关文章

【C++LeetCode】【热题100】三数之和【中等】-不同效率的题解【6】

题目&#xff1a; 暴力方法&#xff1a; class Solution { public:vector<vector<int>> threeSum(vector<int>& nums) {vector<vector<int>> res;std::unordered_set<std::string> uniqueValues;//保证结果唯一for(int i0;i<n…

【第2章】MyBatis-Plus代码生成器

文章目录 前言一、安装二、生成方式1.DefaultQuery (元数据查询)2.存在问题 三、快速生成1. 生成代码2. 目录结构 四、交互式总结 前言 全新的 MyBatis-Plus 代码生成器&#xff0c;通过 builder 模式可以快速生成你想要的代码&#xff0c;快速且优雅&#xff0c;跟随下面的代…

vue draggable

一、安装&#xff1a; npm i -S vuedraggablenext 二、代码 <draggable :list"projectOptions" item-key"name" class"w-25" ghost-class"ghost"chosen-class"chosen" update"updateSort" animation"3…

跨境独立站推广策略:有哪些方法与工具?

在出海独立站商家中&#xff0c;推广是必不可少的环节。在你完成网站的搭建&#xff0c;产品的上架&#xff0c;以及网站的运营和优化后&#xff0c;你就可以开始着手推广你的网站了。你的网站是承载你的品牌和产品的主要平台&#xff0c;因此&#xff0c;你需要根据你的品牌和…

Java实现RS485串口通信

博客链接地址 近期&#xff0c;我接到了一个任务&#xff0c;将报警器接入到Java项目中&#xff0c;而接入的方式就是通过RS485接入&#xff0c;本人之前可以说是对此毫无所知。不过要感谢现在的互联网&#xff0c;通过网络我查到了我想要知道的一切&#xff0c;这里记录下本次…

【新闻】金融专业“免进”!私募巨头招聘涌现“新剧情”

A股市场在2024年逐渐出现新的运行特征&#xff0c;这不禁让部分主动投资的私募巨头公司重新登上招聘舞台。 但这一次&#xff0c;他们的招聘方向出现了新的变动。 有些机构有意识的为公司投研团队招聘“衔接”岗&#xff0c;有些则把重点放在了投研动作的交易层。 但这都不如…

外汇的基本面分析需要关注什么?

外汇基本面分析的核心在于关注可能影响单一货币供求及国家货币价值的经济、社会和地缘政治事件与趋势。但值得注意的是&#xff0c;这些事件和因素往往具有更广泛的影响力&#xff0c;不仅限于单一国家。它们可能是影响整个地区或国家集团的重要事件&#xff0c;甚至一些事件&a…

设计师进阶指南:掌握这6条版式设计要点

布局设计是设计师的必修课。优秀的排版不是强制性的“东拼西凑”&#xff0c;而是通过设计师独特的排版获得的。这不是简单的信息列表&#xff0c;而是认真思考如何分层、有节奏地组织和安排元素。今天我将给你带来它 6 文章还附带了布局设计模板资源&#xff0c;设计师朋友一定…

【shell 学习一】shell执行方式以及变量(自定义变量、整数运算)定义

1.shell执行方式 测试脚本 vim file1 echo hello 2024 read -p 请输入 name echao hh,$name执行1 bash file1执行2 sh file1执行3 . file1执行4 source file11和2的方式&#xff0c;是子shell 3和4的方式&#xff0c;是本shell bash是进入新的命令 这时候退出edit是退出这个新…

AI办公自动化:多音频轨电影视频抽取出英语音频

很多电影视频是有中、英、粤语等多个音频轨的&#xff0c;如果直接转换成音频&#xff0c;很有可能不是自己想要的那种语音。 可以先查看音频流信息&#xff0c;确定属于哪个音频轨&#xff1a; Reading video file: E:\1-7\比得兔1.mp4 输出音频流信息 Available audio str…

学校师生都在用的电路设计神器——SmartEDA,你get到了吗?

在信息时代的浪潮下&#xff0c;电子技术的迅猛发展对人才的培养提出了更高要求。学校师生在电路设计领域&#xff0c;急需一款既方便易用又功能强大的辅助工具。今天&#xff0c;就为大家揭秘一款备受好评的电路设计工具——SmartEDA&#xff0c;看它如何助力学校师生在电路设…

【D3.js in Action 3 精译】1.2 D3 生态系统——入门须知

1.2 D3 生态系统——入门须知 D3.js 从不单打独斗&#xff0c;而是作为 D3 生态系统的一员&#xff0c;与生态内的一系列技术和工具相结合来创建丰富的 Web 界面。与其他网页一样&#xff0c;D3 项目也是充分利用 HTML5 的强大功能在 DOM 内构建出来的。尽管 D3 也可以创建并操…

LangChain结合LLM做私有化文档搜索

我们知道LLM&#xff08;大语言模型&#xff09;的底模是基于已经过期的公开数据训练出来的&#xff0c;对于新的知识或者私有化的数据LLM一般无法作答&#xff0c;此时LLM会出现“幻觉”。针对“幻觉”问题&#xff0c;一般的解决方案是采用RAG做检索增强。 但是我们不可能把…

docker in docker 在CI中应用解析

docker in docker 简介 docker里嵌套运行docker&#xff0c;本文讲解其在jenkins和gitlab-runner 种的调用流程 一、用于jenkins 容器化部署jenkins时调用docker命令集成CI功能 [rootops-demo~]# docker inspect jenkins --format"{{json .Mounts}}" [{"T…

自学网络安全,圈内大佬学习书单助你砥砺前行【网络安全书单推荐】

文章目录 [&#x1f31f;网络安全书单推荐&#x1f680;] 网络安全是保护网络系统、网络设备、通信网络和数据免受未经授权的访问、损坏或窃取的一系列措施和技术。这个领域涉及到防止网络攻击、恶意软件和其他网络威胁的发生&#xff0c;同时确保数据的机密性、完整性和可用…

CNware快照技术采用双轨服务模式,显著改善虚拟机快照执行时执行后性能下降问题|附技术原理

在数字化时代&#xff0c;虚拟化技术已成为数据中心管理与云计算领域的基石。虚拟化技术允许在单一物理服务器上运行多个独立的虚拟环境&#xff0c;即虚拟机。每个虚拟机都能拥有专属的操作系统、应用程序和配置&#xff0c;彼此隔离&#xff0c;互不影响。然而&#xff0c;如…

通用后台管理——Vue router的使用

目录 一、Vue router是什么&#xff1f; 二、下载Vue router 三、使用router 四、使用嵌套router​​​​​​​ 一、Vue router是什么&#xff1f; 官网&#xff1a;安装 | Vue Router 是Vue.js的官方路由&#xff0c;实现多页跳转到功能&#xff0c;还包括&#xff1a; …

经典小游戏(一)C实现——三子棋

switch(input){case 1:printf("三子棋\n");//这里先测试是否会执行成功break;case 0:printf("退出游戏\n");break;default :printf("选择错误&#xff0c;请重新选择!\n");break;}}while(input);//直到输入的结果为假&#xff0c;循环才会结束} …

【LangChain系列——案例分析】【基于SQL+CSV的案例分析】【持续更新中】

目录 前言一、LangChain介绍二、在SQL问答时如何更好的提示&#xff1f;2-1、安装2-2、SQLite 样例数据2-3、使用langchain与其进行交互2-4、查看模型提示语2-5、提供表定义和示例行2-6、将表信息插入到Prompt中去2-7、添加自然语言->SQL示例2-8、在向量数据库中查找最相关的…

ONLYOFFICE 8.1版本桌面编辑器测评:超越想象的办公体验!

在当今数字化办公时代&#xff0c;一个功能强大、操作便捷的办公套件对于提高工作效率至关重要。ONLYOFFICE 8.1作为一款备受瞩目的办公软件&#xff0c;凭借其全面的功能、优异的性能和出色的用户体验&#xff0c;为用户带来了超越想象的办公体验。下面&#xff0c;我们将对ON…