[发明专利]基于可执行程序的二进制漏洞检测方法、系统及存储介质有效

专利信息
申请号: 202010347029.2 申请日: 2020-04-28
公开(公告)号: CN111475820B 公开(公告)日: 2023-08-01
发明(设计)人: 沙乐天;张皓天;许泽遥;王于叶 申请(专利权)人: 张皓天
主分类号: G06F21/57 分类号: G06F21/57;G06N3/0464;G06N3/0442;G06F40/30;G06F40/151
代理公司: 南京苏高专利商标事务所(普通合伙) 32204 代理人: 王恒静
地址: 475002 河南省开封市顺*** 国省代码: 河南;41
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 基于 可执行 程序 二进制 漏洞 检测 方法 系统 存储 介质
【权利要求书】:

1.一种基于可执行程序的二进制漏洞检测方法,其特征在于,该方法包括:

(1)采集具有已知漏洞的二进制可执行程序,采用支持VEX中间语言的angr框架的将二进制可执行程序执行流遍历并转译为VEX文本;

(2)将所述VEX文本切割成若干个文本片段,并提取所述文本片段的关键字,并将所有文本片段进行序列化;

(3)使用Word2Vec将序列化后的文本片段的关键字转化为具有上下文语义的文本向量;

(4)将所述文本向量转化为数字向量,并保存相关文件作为Bi-LSTM网络模型的输入,分别设置训练数据集和验证数据集对Bi-LSTM网络模型进行训练和验证,返回训练集与验证集上的误差率和相关记录字典;

(5)设置检验指标,利用预测数据集检验Bi-LSTM网络的泛化性;

所述步骤(3)具体包括:

(31)将VEX语法定义及大量文本片段作为Word2Vec要学习的语料库;

(32)通过无监督的学习建立词嵌入模型,经过词嵌入模型的转化,文本元素将变为具有语义的矢量表示,在VEX中具有相似上下文的元素通常位于矢量空间的相邻位置;

(33)对Word2Vec的嵌入学习进行可视化,并使用主成分分析方法将嵌入投影到二维平面;

所述Bi-LSTM网络模型包括五层,分别为:第一层为嵌入层,第二层为前向的LSTM,第三层为后向的LSTM,第四层为全连接层,第五层为输出层,其中,第二层和第三层构成Bi-LSTM层,所述输出层最终输出漏洞类型概率;

所述步骤(4)中,对Bi-LSTM网络模型进行训练和验证的过程包括:

(41)初始化模型,进入模型编译阶段,设置训练数据集中的训练样本数、验证数据集中的验证样本数和迭代次数,并选择损失函数和优化器;

(42)根据设置的迭代次数对Bi-LSTM网络模型迭代训练,并观察检验指标的提升程度,若检验指标的大小趋于不再变化,则认为达到最优点停止训练,得到训练后的Bi-LSTM网络模型;

(43)采用设置的验证样本数对训练后的Bi-LSTM网络模型进行验证。

2.根据权利要求1所述的基于可执行程序的二进制漏洞检测方法,其特征在于,所述步骤(1)中,所述已知漏洞包括危险函数导致的栈溢出漏洞、格式化字符串漏洞或释放后利用类堆溢出漏洞。

3.根据权利要求1所述的基于可执行程序的二进制漏洞检测方法,其特征在于,所述步骤(2)中,将所述VEX文本切割成若干个文本片段,具体为:以IR块为单位切割所述VEX文本,形成较小的可输入文本序列,所述IR块包括1到50条指令,这些指令描述了变量类型、状态值和跳转地址。

4.根据权利要求1所述的基于可执行程序的二进制漏洞检测方法,其特征在于,所述步骤(4)中,将所述文本向量转化为数字向量,包括将各个所述文本向量的关键字映射到整数上,并将对应的文本向量采用csv文件进行保存。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于张皓天,未经张皓天许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/202010347029.2/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top