[发明专利]基于深度学习的控制流完整性检测方法在审
| 申请号: | 202010058919.1 | 申请日: | 2020-01-19 |
| 公开(公告)号: | CN111274580A | 公开(公告)日: | 2020-06-12 |
| 发明(设计)人: | 王湘奇;张吉良 | 申请(专利权)人: | 湖南第一师范学院 |
| 主分类号: | G06F21/56 | 分类号: | G06F21/56;G06F8/36;G06N3/04;G06N3/08 |
| 代理公司: | 长沙永星专利商标事务所(普通合伙) 43001 | 代理人: | 周咏;米中业 |
| 地址: | 410205 湖南*** | 国省代码: | 湖南;43 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 基于 深度 学习 控制 完整性 检测 方法 | ||
1.一种基于深度学习的控制流完整性检测方法,包括如下步骤:
训练阶段:
S1.获取训练程序及其对应的可执行文件;
S2.对步骤S1获取的可执行文件进行反汇编,并以gadget为单位构建粗粒度控制流图;
S3.对步骤S1获取的训练程序,采用英特尔分支追踪监测程序的控制流,从而收集地址信息;
S4.根据步骤S2得到的粗粒度控制流图和步骤S3得到的地址信息,构建程序的细粒度控制流图;
S5.对步骤S4得到的细粒度控制流图进行切分,得到良性gadget链和恶意gadget链,并作为训练数据;
S6.采用步骤S5得到的训练数据对分类器进行训练,从而得到最终的控制流完整性检测分类器;
检测阶段:
S7.对于待检测程序,采用IPT监测程序的控制流,从而收集地址信息;
S8.根据步骤S7得到的地址信息,构建待检测程序的gadget链编码;
S9.采用步骤S6得到的控制流完整性检测分类器,对步骤S8得到的待检测程序的gadget链编码进行分类检测,从而将待检测程序的gadget链编码分类为正常控制流和CRA攻击,完成待检测程序的控制流的完整性检测。
2.根据权利要求1所述的基于深度学习的控制流完整性检测方法,其特征在于步骤S4所述的根据步骤S2得到的粗粒度控制流图和步骤S3得到的地址信息,构建训练程序的细粒度控制流图,具体为采用如下步骤构建细粒度控制流图:
A.静态分析程序的可执行文件,得到程序所有的直接分支信息;
B.采用IPT监测程序的控制流,并在IPT生成的所有IPT包中获取TNT包;
C.根据步骤B得到的TNT包,获取程序所有的直接条件分支信息;
D.生成若干种不同的输入数据并输入到程序中,采用IPT监测程序的控制流,并在IPT生成的所有IPT包中获取TIP包;
E.根据步骤D获取的不同的输入数据情况下程序的TIP包,获取程序所有的间接分支信息;
F.将步骤A获取的直接分支信息、步骤C获取的直接条件分支信息和步骤E获取的间接分支信息与粗粒度控制流图结合,在原有的粗粒度控制流图上添加合法的控制流转移路径,从而得到最终的细粒度控制流图。
3.根据权利要求2所述的基于深度学习的控制流完整性检测方法,其特征在于步骤S5所述的对步骤S4得到的细粒度控制流图进行切分,得到良性gadget链和恶意gadget链,具体为采用如下规则进行切分:
对于间接分支的控制流转移,以一条边为单位对细粒度控制流图进行拆分,从而得到第一良性Gadget链;
对于直接分支的控制流转移,以N条边为单位对细粒度控制流图进行拆分,从而得到第二良性Gadget链;第一良性Gadget链和第二良性Gadget链一同构成良性Gadget链;
任意连接细粒度控制流图中的M个节点构成Gadget链,且保证所得到的Gadget链不在良性Gadget链中,从而将构成的上述所有Gadget链构成恶意Gadget链;
所述的N和M均为大于1的正整数。
4.根据权利要求3所述的基于深度学习的控制流完整性检测方法,其特征在于步骤S5所述的训练数据,具体为采用如下步骤处理训练数据:
a.将得到的良性gadget链和恶意gadget链中的每一条指令均表示为十六进制;
b.将步骤a得到的十六进制数据以4位为单位进行拆分,从而得到单个的数值;
c.将步骤b得到的所有数值按照指令的先后顺序排列;
d.采用nop指令,在步骤c的数据末尾,将所有数据补齐到等长,从而将一个Gadget转换为神经网络可识别的数据。
5.根据权利要求1~4之一所述的基于深度学习的控制流完整性检测方法,其特征在于步骤S6所述的分类器,具体为深度神经网络模型。
6.根据权利要求5所述的基于深度学习的控制流完整性检测方法,其特征在于所述的深度神经网络模型,具体为六层深度神经网络模型;所述六层深度神经网络模型包括一个输入层、四个隐藏层和一个输出层;四个隐藏层的节点数分别为1024、512、128和32;对于每一个隐藏层,采用线性修正单元ReLU作为激活函数;设置dropout为50%,从而加快练速度和防止过拟合;通过softmax将结果转化为0到1之间的概率值;在训练深度神经网络模型时,设置模型的学习率为0.01,并采用随机梯度下降法对模型进行优化;对于每一次训练,均采用反向传播算法更新网络每一层的权值,并不断重复优化过程直到误差收敛。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于湖南第一师范学院,未经湖南第一师范学院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010058919.1/1.html,转载请声明来源钻瓜专利网。
- 上一篇:终端管理方法及装置
- 下一篇:一种磁电耦合锁芯的控制方法





