[发明专利]一种漏洞挖掘方法、装置、电子设备及介质在审
申请号: | 202111233897.9 | 申请日: | 2021-10-22 |
公开(公告)号: | CN113918959A | 公开(公告)日: | 2022-01-11 |
发明(设计)人: | 崔宝江;徐涵;陈晨;李明;邢川;齐维孔 | 申请(专利权)人: | 北京邮电大学 |
主分类号: | G06F21/57 | 分类号: | G06F21/57;G06N3/00 |
代理公司: | 北京超凡宏宇专利代理事务所(特殊普通合伙) 11463 | 代理人: | 彭星 |
地址: | 100000 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 漏洞 挖掘 方法 装置 电子设备 介质 | ||
本申请提供了一种漏洞挖掘方法、装置、电子设备及介质,其中,该方法包括:对被测程序进行静态分析,得到所述被测程序的疑似脆弱点位置;针对测试样本集中的每个测试样本,将所述测试样本输入所述被测程序中;在执行所述被测程序的过程中记录所述被测程序的基本块和函数的覆盖信息;基于粒子群算法对所述测试样本集中每个测试样本进行迭代,若基于所述覆盖信息判断所述疑似脆弱点位置所在基本块和函数被覆盖,则停止迭代,得到能够覆盖所述疑似脆弱点位置所在基本块和函数的目标测试样本。本申请实施例使检测过程向疑似脆弱点方向导向,从而大大提高程序中脆弱点的发现概率。
技术领域
本申请涉及软件漏洞挖掘技术领域,尤其是涉及一种漏洞挖掘方法、装置、电子设备及介质。
背景技术
随着信息技术及其相关产业不断发展,人们的生活、工作和学习越来越多地依靠网络以及各种网络化软件。尤其在工业领域,由于工业控制系统与外网连接增多,工业控制系统更容易被外部探测。与此同时,针对政府、公司以及个人系统攻击的安全事件不断出现,攻击者往往利用软件漏洞来达到其不可告人的目的。软件数量日益增加,软件漏洞数量也迅速增长,虽然对软件漏洞进行管理可以抑制部分安全事件的发生,但这远远不够,还需要从源头控制软件漏洞的引入,这使得软件脆弱性检测变得越来越重要。
目前,软件脆弱性检测方案可以分为静态分析和动态检测这两种方案,但是这两种方案都存在不足。静态分析方案是通过分析代码而不执行程序来发现程序的脆弱性,其缺点是需要源码支持,误报率高,需要大量的人工分析,不能发现未知漏洞。动态检测方案中最常用的模糊测试(Fuzzing)方法则是在程序运行过程中,利用各种随机输入数据对程序进行测试,其缺点是漏报率高,测试速度慢,难以覆盖所有的代码或路径,难以发现需要复杂条件触发的脆弱点。
发明内容
有鉴于此,本申请的目的在于提供一种漏洞挖掘方法、装置、电子设备及介质,以使检测过程向疑似脆弱点方向导向,从而大大提高程序中脆弱点的发现概率。
第一方面,本申请实施例提供了一种基于粒子群算法的漏洞挖掘方法,包括:
对被测程序进行静态分析,得到所述被测程序的疑似脆弱点位置;
针对测试样本集中的每个测试样本,将所述测试样本输入所述被测程序中;
在执行所述被测程序的过程中记录所述被测程序的基本块和函数的覆盖信息;
基于粒子群算法对所述测试样本集中每个测试样本进行迭代,若基于所述覆盖信息判断所述疑似脆弱点位置所在基本块和函数被覆盖,则停止迭代,得到能够覆盖所述疑似脆弱点位置所在基本块和函数的目标测试样本。
在一种可能的实施方式中,所述在执行所述被测程序的过程中记录所述被测程序的基本块和函数的覆盖信息之前,还包括:
对所述被测程序的源代码进行插桩;
在执行所述被测程序的过程中将每个基本块和函数的覆盖信息记录到指定文件中。
在一种可能的实施方式中,所述对所述被测程序的源代码进行插桩,包括:
分析所述被测程序的抽象语法树;
在所述被测程序的源代码中每个基本块和函数的头部位置进行插桩。
在一种可能的实施方式中,在执行所述被测程序的过程中将每个基本块和函数的覆盖信息记录到指定文件中之后,还包括:
获取用于记录每个基本块和函数是否被覆盖的数组;
基于所述指定文件中记录的覆盖信息,修改所述数组中被覆盖的基本块和函数对应位置的数值。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京邮电大学,未经北京邮电大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111233897.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种烟草提取物的风格特征迁移方法
- 下一篇:水果酶源发酵制备茶黄素的方法