[发明专利]基于可执行程序的二进制漏洞检测方法、系统及存储介质有效
申请号: | 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文件进行保存。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于张皓天,未经张皓天许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010347029.2/1.html,转载请声明来源钻瓜专利网。