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

1. 引言

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

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

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

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

2. 整体流程

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

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

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

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

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

相关文章

【FFmpeg】avformat_open_input函数

【FFmpeg】avformat_open_input函数 1.avformat_open_input1.1 初始化输入格式(init_input)1.1.1 文件路径判断格式(av_probe_input_format2)1.1.1.1 格式探测(read_probe)1.1.1.2 扩展匹配检查&#xff08…

Pyecharts进阶篇

欢迎观看Pyecharts部分,上一节:Pyecharts入门-CSDN博客 本章节,我们会使用全国空气质量数据呈现中国地图,还会使用全球各个国家或地区GDP数据绘制全球地图。 全国空气质量分布图 数据准备 import pandas as pd import numpy a…

树莓派4B_OpenCv学习笔记13:OpenCv颜色追踪_程序手动调试HSV色彩空间_检测圆

今日继续学习树莓派4B 4G:(Raspberry Pi,简称RPi或RasPi) 本人所用树莓派4B 装载的系统与版本如下: 版本可用命令 (lsb_release -a) 查询: Opencv 版本是4.5.1: OpenCv颜色追踪_程序手动调试HSV色彩空间_检测灰度图中的…

AI新热点:边云协同:大模型结合小模型(大小模型联合推理)

背景 AI模型规模不断剧增已是不争的事实。模型参数增长至百亿、千亿、万亿甚至十万亿,大模型在算力推动下演变为人工智能领域一场新的“军备竞赛”。 这种竞赛很大程度推动了人工智能的发展,但随之而来的能耗和端侧部署问题限制了大模型应用落地。2022…

非极大值抑制算法(Non-Maximum Suppression,NMS)

https://tcnull.github.io/nms/ https://blog.csdn.net/weicao1990/article/details/103857298 目标检测中检测出了许多的候选框,候选框之间是有重叠的,NMS作用重叠的候选框只保留一个 算法: 将所有候选框放入到集和B从B中选出分数S最大的b…

VBA技术资料MF168:移动工作表为单独工作簿

我给VBA的定义:VBA是个人小型自动化处理的有效工具。利用好了,可以大大提高自己的工作效率,而且可以提高数据的准确度。“VBA语言専攻”提供的教程一共九套,分为初级、中级、高级三大部分,教程是对VBA的系统讲解&#…

eventbus和vuex

EventBus和Vuex EventBus 工作原理 创建一个vue实例,然后通过空的vue实例作为组件之间的桥梁,进行通信,利用到的设计模式有发布订阅模式 Vuex 工作原理 维护了一个state树,是独立的状态树,有明显的层级关系。不论…

云计算-期末复习题-框架设计/选择/填空/简答(2)

目录 框架设计 1.负载分布架构 2.动态可扩展架构 3.弹性资源容量架构 4.服务负载均衡架构 5.云爆发结构 6.弹性磁盘供给结构 7.负载均衡的虚拟服务器实例架构 填空题/简答题 单选题 多选题 云计算期末复习部分练习题,包括最后的部分框架设计大题(只是部分…

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

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

利用viztracer进行性能分析和优化

上一篇文章,我们详细讲解了scalene这个性能分析和优化工具的使用流程;今天,我们将深入探讨另一个性能分析和优化工具——viztracer。 什么是viztracer? viztracer是一个非常强大的分析器,可以生成详细的性能报告和可…

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

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

EthernetIP IO从站设备数据 转opc ua项目案例

1 案例说明 设置网关采集EthernetIP IO设备数据把采集的数据转成opc ua协议转发给其他系统。 2 VFBOX网关工作原理 VFBOX网关是协议转换网关,是把一种协议转换成另外一种协议。网关可以采集西门子,欧姆龙,三菱,AB PLC&#xff0…

Element 页面滚动表头置顶

在开发后台管理系统时,表格是最常用的一个组件,为了看数据方便,时常需要固定表头。 如果页面基本只有一个表格区域,我们可以根据屏幕的高度动态的计算出一个值,给表格设定一个固定高度,这样表头就可以固定…

红酒达人教你秘技:选酒、存酒,一招一式皆学问

在繁忙的都市生活中,红酒不仅仅是一种饮品,更是一种生活态度,一种品味的象征。然而,面对琳琅满目的红酒品牌与种类,如何选择一瓶心仪的红酒,又如何妥善保存,使其保持很好口感,成为了…

LabVIEW遇到无法控制国外设备时怎么办

当使用LabVIEW遇到无法控制国外产品的问题时,解决此类问题需要系统化的分析和处理方法。以下是详细的解决思路和具体办法,以及不同方法的分析和比较,包括寻求代理、国外技术支持、国内用过的人请教等内容。 1. 了解产品的通信接口和协议 思路…

Python 基础 (标准库):collections (集合类)

1. 官方文档 collections --- 容器数据类型 — Python 3.12.4 文档 Python 的 collections 模块提供了许多有用的数据类型(包括 OrderedDict、Counter、defaultdict、deque 和 namedtuple)用于扩展 Python 的标准数据类型。掌握 collections 中的数据类…

五子棋纯python手写,需要的拿去

import pygame,sys from pygame import * pygame.init()game pygame.display.set_mode((600,600)) gameover False circlebox [] # 棋盘坐标点存储 box [] def xy():for x in range(0,800//40): for y in range(0,800//40): box.append((x*40,y*40)) xy() defaultColor wh…

8.DELL R730服务器对RAID5进行扩容

如果服务器的空间不足了,如何进行扩容?我基本上按照如何重新配置虚拟磁盘或添加其他硬盘来进行操作。我的机器上已经有三块硬盘了,组了Raid5,现在再添加一块硬盘。 先把要添加的硬盘插入服务器,无论是在IDRAC还是管理…

物联网“此用户无权修改接入点名称设置”解决方案

根本原因apns-conf.xml里面没有 符合 物理网卡 的配置 可以先加一个APN试一下,看看默认的MCC和MNC是什么 然后在”命令行“查询一下 adb shell sqlite3 /data/user_de/0/com.android.providers.telephony/databases/telephony.db "select * from carriers wh…

乐鑫已支持Matter 1.2标准新增多种设备类型,启明云端乐鑫代理商

随着物联网技术的飞速发展,智能家居正逐渐成为现代生活的一部分。物联网和智能家居行业应用取得了巨大的增长,一系列无线连接的智能设备涌入家庭,为家庭生活带来自动化和便利。 像是可以连网的扬声器、灯泡和中控开关,它们都可以…