CN111274580A - 基于深度学习的控制流完整性检测方法 - Google Patents
基于深度学习的控制流完整性检测方法 Download PDFInfo
- Publication number
- CN111274580A CN111274580A CN202010058919.1A CN202010058919A CN111274580A CN 111274580 A CN111274580 A CN 111274580A CN 202010058919 A CN202010058919 A CN 202010058919A CN 111274580 A CN111274580 A CN 111274580A
- Authority
- CN
- China
- Prior art keywords
- control flow
- program
- gadget
- training
- chain
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 35
- 238000013135 deep learning Methods 0.000 title claims abstract description 14
- 238000012549 training Methods 0.000 claims abstract description 33
- 238000003062 neural network model Methods 0.000 claims abstract description 17
- 238000012544 monitoring process Methods 0.000 claims abstract description 13
- 238000013528 artificial neural network Methods 0.000 claims abstract description 12
- 238000000034 method Methods 0.000 claims abstract description 12
- 238000012546 transfer Methods 0.000 claims description 15
- 230000006870 function Effects 0.000 claims description 6
- 230000008569 process Effects 0.000 claims description 6
- 230000001939 inductive effect Effects 0.000 claims description 5
- SPSSULHKWOKEEL-UHFFFAOYSA-N 2,4,6-trinitrotoluene Chemical compound CC1=C([N+]([O-])=O)C=C([N+]([O-])=O)C=C1[N+]([O-])=O SPSSULHKWOKEEL-UHFFFAOYSA-N 0.000 claims description 4
- 239000000015 trinitrotoluene Substances 0.000 claims description 4
- 230000004913 activation Effects 0.000 claims description 3
- 238000012937 correction Methods 0.000 claims description 3
- 238000011478 gradient descent method Methods 0.000 claims description 3
- 238000005457 optimization Methods 0.000 claims description 3
- 230000011218 segmentation Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 abstract description 5
- 230000008260 defense mechanism Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000007123 defense Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/36—Software reuse
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computer Security & Cryptography (AREA)
- Biomedical Technology (AREA)
- Evolutionary Computation (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Biophysics (AREA)
- Artificial Intelligence (AREA)
- Computer Hardware Design (AREA)
- Life Sciences & Earth Sciences (AREA)
- Virology (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种基于深度学习的控制流完整性检测方法,包括获取训练程序及其可执行文件;反汇编可执行文件并构建粗粒度控制流图;监测程序的控制流并收集地址信息;构建训练程序的细粒度控制流图并切分得到训练数据;训练分类器得到控制流完整性检测分类器;获取待检测程序的地址信息;构建待检测程序的gadget链编码;采用控制流完整性检测分类器进行检测并完成待检测程序的控制流的完整性检测。本发明构建精确的控制流图,然后拆分控制流图用于神经网络训练,并在程序运行时实时获取分支信息,并通过神经网络模型进行检测;本发明能够较好的进行程序的控制流完整性检测,而且可靠性高、检测准确率高且实施方便。
Description
技术领域
本发明属于计算机安全领域,具体涉及一种基于深度学习的控制流完整性检测方法。
背景技术
随着经济技术的发展和人们生活水平的提高,计算机已经广泛应用于人们的生产和生活当中,给人们的生产和生活带来了无尽的便利。而随着智能、大数据时代的到来,人们对于计算机的安全问题越来越关注。
不安全的系统编程语言(例如C和C++)的使用,会导致软件中存在大量漏洞。根据最近的安全威胁报告,近10年来漏洞数量呈现明显上升趋势。
代码复用攻击(如ROP和JOP)利用内存溢出漏洞,在不注入任何恶意代码的情况下利用程序中的分支指令劫持程序控制流,并将其重新定向到程序中已有的以分支指令结尾的微小代码片段(gadget),通过构造和执行这些gadget,达到恶意攻击的目的。这种攻击已经扩展到PowerPC、Atmel AVR、SPARC、Harward和ARM等多种不同的平台,且已显示其强大的攻击力。甚至Adobe Reader、Adobe Flash Player以及QuickTime Player等众多著名的商业软件也已被代码复用攻击成功攻击。
控制流完整性(control flow integrity,CFI)是当前防御代码复用攻击(codereuse attack,CRA)的主流防御技术之一。CFI将程序的控制流转移限制在该程序的控制流图(control flow graph,CFG)范围内。控制流完整性有基于软件和硬件辅助软件两种实现方式。基于软件的CFI向可执行文件中插入检测标签指令或添加程序运行时监测机制,从而达到检测控制流的目的,该方式具有易部署,无需硬件支持等优点,但存在修改二进制代码或修改编译器等问题。基于硬件辅助的CFI通过添加特定的控制流指令或者额外的硬件模块,从而有效减少性能开销。然而,硬件辅助防御机制同样需要扩展指令集、修改编译器,并且需要较大的空间开销。
发明内容
本发明的目的在于提供一种可靠性高、检测准确率高且实施方便的基于深度学习的控制流完整性检测方法。
本发明提供的这种基于深度学习的控制流完整性检测方法,包括如下步骤:
训练阶段:
S1.获取训练程序的可执行文件;
S2.对步骤S1获取的可执行文件进行反汇编,并以gadget为单位构建粗粒度控制流图;
S3.对步骤S1获取的训练程序,采用英特尔分支追踪(Intel Processor Trace,IPT)监测程序的控制流,从而收集地址信息;
S4.根据步骤S2得到的粗粒度控制流图和步骤S3得到的地址信息,构建程序的细粒度控制流图;
S5.对步骤S4得到的细粒度控制流图进行切分,得到良性gadget链和恶意gadget链,并作为训练数据;
S6.采用步骤S5得到的训练数据对分类器进行训练,从而得到最终的控制流完整性检测分类器;
检测阶段:
S7.对于待检测程序,采用IPT监测程序的控制流,从而收集地址信息;
S8.根据步骤S7得到的地址信息,构建待检测程序的gadget链编码;
S9.采用步骤S6得到的控制流完整性检测分类器,对步骤S8得到的待检测程序的gadget链编码进行分类检测,从而将待检测程序的gadget链编码分类为正常控制流和CRA攻击,完成待检测程序的控制流的完整性检测。
步骤S4所述的根据步骤S2得到的粗粒度控制流图和步骤S3得到的地址信息,构建训练程序的细粒度控制流图,具体为采用如下步骤构建细粒度控制流图:
A.静态分析程序的可执行文件,得到程序所有的直接分支信息;
B.采用IPT监测程序的控制流,并在IPT生成的所有IPT包中获取TNT(Taken Not-Taken)包;
C.根据步骤B得到的TNT包,获取程序所有的直接条件分支信息;
D.生成若干种不同的输入数据并输入到程序中,采用IPT监测程序的控制流,并在IPT生成的所有IPT包中获取TIP(Target IP)包;
E.根据步骤D获取的不同的输入数据情况下程序的TIP包,获取程序所有的间接分支信息;
F.将步骤A获取的直接分支信息、步骤C获取的直接条件分支信息和步骤E获取的间接分支信息与粗粒度控制流图结合,在原有的粗粒度控制流图上添加合法的控制流转移路径,从而得到最终的细粒度控制流图。
步骤S5所述的对步骤S4得到的细粒度控制流图进行切分,得到良性gadget链和恶意gadget链,具体为采用如下规则进行切分:
对于间接分支的控制流转移,以一条边为单位对细粒度控制流图进行拆分,从而得到第一良性Gadget链;
对于直接分支的控制流转移,以N条边为单位对细粒度控制流图进行拆分,从而得到第二良性Gadget链;第一良性Gadget链和第二良性Gadget链一同构成良性Gadget链;
任意连接细粒度控制流图中的M个节点构成Gadget链,且保证所得到的Gadget链不在良性Gadget链中,从而将构成的上述所有Gadget链构成恶意Gadget链;
所述的N和M均为大于1的正整数。
步骤S5所述的训练数据,具体为采用如下步骤处理训练数据:
a.将得到的良性gadget链和恶意gadget链中的每一条指令均表示为十六进制;
b.将步骤a得到的十六进制数据以4位为单位进行拆分,从而得到单个的数值;
c.将步骤b得到的所有数值按照指令的先后顺序排列;
d.采用nop指令,在步骤c的数据末尾,将所有数据补齐到等长,从而将一个Gadget转换为神经网络可识别的数据。
步骤S6所述的分类器,具体为深度神经网络模型。
所述的深度神经网络模型,具体为六层深度神经网络模型;所述六层深度神经网络模型包括一个输入层、四个隐藏层和一个输出层;四个隐藏层的节点数分别为1024、512、128和32;对于每一个隐藏层,采用线性修正单元ReLU作为激活函数;设置dropout为50%,从而加快练速度和防止过拟合;通过softmax将结果转化为0到1之间的概率值;在训练深度神经网络模型时,设置模型的学习率为0.01,并采用随机梯度下降法对模型进行优化;对于每一次训练,均采用反向传播算法更新网络每一层的权值,并不断重复优化过程直到误差收敛。
本发明提供的这种基于深度学习的控制流完整性检测方法,克服了传统控制流完整性需要扩展指令集、修改编译器和性能开销大等问题,利用IPT构建精确的控制流图,然后拆分控制流图用于神经网络训练,并在程序运行时实时获取分支信息,并通过神经网络模型进行检测;因此本发明方法能够较好的进行程序的控制流完整性检测,而且可靠性高、检测准确率高且实施方便。
附图说明
图1为本发明方法的方法流程示意图。
图2为本发明方法的控制流图的切分实例示意图。
图3为本发明方法的训练数据的数据表示实例示意图。
具体实施方式
本发明假设系统已经部署了DEP等基础防御机制,以防攻击者不能注入恶意代码;控制者可以任意读/写数据段,但只能读/执行代码段;假设应用程序是可信的;然而,攻击者缓冲区溢出等程序漏洞来获取任何内存位置的信息;此外,程序不能动态生成代码以及包含自更改代码,从而确保静态获取的CFG的准确性。上述的假设符合大多数应用场景。
如图1所示为本发明方法的方法流程示意图:本发明提供的这种基于深度学习的控制流完整性检测方法,包括如下步骤:
训练阶段:
S1.获取训练程序的可执行文件可执行文件;
S2.对步骤S1获取的可执行文件进行反汇编,并以gadget为单位构建粗粒度控制流图;
S3.对步骤S1获取的训练程序,采用IPT(Intel Processor Trace)监测程序的控制流,从而收集地址信息;
S4.根据步骤S2得到的粗粒度控制流图和步骤S3得到的地址信息,构建程序的细粒度控制流图;
由于步骤S2获取的粗粒度控制流图是离线收集(仅仅对可执行文件进行反汇编即可获得)的,因此直接基于粗粒度的控制流图(CFG)进行分类器的训练,会存在很高的假阴性;所以本步骤才进行细粒度控制流图的构建;具体采用如下步骤构建细粒度控制流图:
A.静态分析程序的可执行文件,得到程序所有的直接分支信息;
B.采用IPT监测程序的控制流,并在IPT生成的所有IPT包中获取TNT包;
C.根据步骤B得到的TNT包,获取程序所有的直接条件分支信息;
D.生成若干种不同的输入数据并输入到程序中,采用IPT监测程序的控制流,并在IPT生成的所有IPT包中获取TIP包;
E.根据步骤D获取的不同的输入数据情况下程序的TIP包,获取程序所有的间接分支信息;
TIP包用于记录间接分支信息,但是由于间接分支目标的目标集是可以随意变化的,要完全精确地确定所有目标仍然是一个挑战,所以需要使得搜集到的TIP包尽可能多的包含间接分支目标;因此,需要生成多种不同的输入数据(如有可能,可以尽可能多的生成输入数据),并将各种不同的输入数据输入程序,从而得到各种输入情况下的TIP包,从而能够保证得到所有的间接分支信息;
F.将步骤A获取的直接分支信息、步骤C获取的直接条件分支信息和步骤E获取的间接分支信息与粗粒度控制流图结合,在原有的粗粒度控制流图上添加合法的控制流转移路径,从而得到最终的细粒度控制流图;
S5.对步骤S4得到的细粒度控制流图进行切分,得到良性gadget链和恶意gadget链,并作为训练数据;
如果不拆分细粒度控制流图,而是将整个细粒度控制流图直接用于训练,会面临两个问题:1)数据集收集困难;由于本发明以应用程序为单位构建CFG,一个应用程序对应生成一张唯一的CFG;如果以整个CFG作为一条输入数据,则本发明需要需要收集数以万计的CFG;通过对CFG进行拆分构建出大量的数据集,就能够很好的解决数据集收集困难的问题;2)神经网络模型的检测效果差:如果直接用整个CFG对后续的分类器(神经网络)进行训练,神经网络学习到的是基于所有应用程序的控制流特征;然而,CRA改变特定程序的控制流,这很难被检测出;
所以,在具体实施时,采用如下规则进行切分:
对于间接分支的控制流转移,以一条边为单位对细粒度控制流图进行拆分,从而得到第一良性Gadget链;
对于直接分支的控制流转移,以N条边为单位对细粒度控制流图进行拆分,从而得到第二良性Gadget链;第一良性Gadget链和第二良性Gadget链一同构成良性Gadget链;
任意连接细粒度控制流图中的M个节点构成Gadget链,且保证所得到的Gadget链不在良性Gadget链中,从而将构成的上述所有Gadget链构成恶意Gadget链;
所述的N和M均为大于1的正整数,可以选取N=2,M=3;
比如,如图2所示:将CFG拆分成边和节点,图中每个Gadget为一个节点,一条有向边连接两个Gadgets,代表一条从一个Gadget指向另一个Gadget的路径;以单条边为单位拆分后,Gadget1和Gadget2组成一条Gadget Chain,即图中边1连接的两个节点;同理,Gadget2和Gadget3可构成一条Gadget Chain;如果以两条边为单位拆分,则Gadget1、Gadget2和Gadget3一起构成一条Gadget Chain;如果程序执行的过程中,执行完Gadget4后控制流转移到Gadget8处执行(如图中的虚线所示),但是在实际的控制流图中没有这一条边,那么检测器就认为发生了攻击行为;
此外,后续的分类器(神经网络)的输入数据必须为统一格式的数值数据;如果直接用二进制数据训练,由于训练神经网络需要的数据长度是固定的,需要把指令字节数用0或1补齐到固定长度:例如,gadget{push rbp;mov rbp,rsi;push rbx;ret}转化为十六进制指令为[0x55,0x4889f5,0x53,0xc3];如果把指令用0补齐到等长的3bytes,整个数据变成大量的0和1组成的字串,神经网络难以区分数据之间的区别;如果使用one-hot编码的方式,将组成一个Gadget的所有指令拆分成单个字节:例如将上面的指令拆分为[0x55,0x48,0x89,0xf5,0x53,0xc3],随后将每一个数用长度为256的0和1表示,如0x55表示为[0,0,0,…,1,…0],其中第85(十进制)位上有一个1,其它位全为0;然而,当存在一个指令非常多的Gadget的时候,One-hot编码方式生成的每一条数据都将有上万的长度,极大的增加了输入数据的复杂度;
所以对获取的训练数据,还要采用如下步骤进行处理(如图3所示):
a.将得到的良性gadget链和恶意gadget链中的每一条指令均表示为十六进制;
b.将步骤a得到的十六进制数据以4位为单位进行拆分,从而得到单个的数值;
c.将步骤b得到的所有数值按照指令的先后顺序排列;
d.采用nop指令,在步骤c的数据末尾,将所有数据补齐到等长,从而将一个Gadget转换为神经网络可识别的数据;
使用整个gadgets作为训练数据,因为每一个gadget拥有一个特定功能,如向寄存器中写入固定值;CRAs链接不同功能的gadgets达到攻击目的;通过使用gadget中所有指令作为训练数据,深度神经网络(DNN)能从实现攻击所需功能的角度学习攻击者特征,从而达到高的检测准确率;然而,如果以地址对或者指令对作为训练数据,训练的DNN很难从数据中获取攻击者的特征,难以成功检测到CRAs;
S6.采用步骤S5得到的训练数据对分类器(比如深度神经网络-DNN)进行训练,从而得到最终的控制流完整性检测分类器;
在采用深度神经网络(DNN)作为分类器时,深度神经网络模型具体为六层深度神经网络模型;所述六层深度神经网络模型包括一个输入层、四个隐藏层和一个输出层;四个隐藏层的节点数分别为1024、512、128和32;对于每一个隐藏层,采用线性修正单元ReLU作为激活函数;设置dropout为50%,从而加快练速度和防止过拟合;通过softmax将结果转化为0到1之间的概率值;在训练深度神经网络模型时,设置模型的学习率为0.01,并采用随机梯度下降法对模型进行优化;对于每一次训练,均采用反向传播算法更新网络每一层的权值,并不断重复优化过程直到误差收敛;
检测阶段:
S7.对于待检测程序,采用IPT监测程序的控制流,从而收集地址信息;
S8.根据步骤S7得到的地址信息,构建待检测程序的gadget链编码;
S9.采用步骤S6得到的控制流完整性检测分类器,对步骤S8得到的待检测程序的gadget链编码进行分类检测,从而将待检测程序的gadget链编码分类为正常控制流和CRA攻击,完成待检测程序的控制流的完整性检测。
Claims (6)
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,并采用随机梯度下降法对模型进行优化;对于每一次训练,均采用反向传播算法更新网络每一层的权值,并不断重复优化过程直到误差收敛。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010058919.1A CN111274580A (zh) | 2020-01-19 | 2020-01-19 | 基于深度学习的控制流完整性检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010058919.1A CN111274580A (zh) | 2020-01-19 | 2020-01-19 | 基于深度学习的控制流完整性检测方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111274580A true CN111274580A (zh) | 2020-06-12 |
Family
ID=70997462
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010058919.1A Pending CN111274580A (zh) | 2020-01-19 | 2020-01-19 | 基于深度学习的控制流完整性检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111274580A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112099882A (zh) * | 2020-09-11 | 2020-12-18 | 杭州海康威视数字技术股份有限公司 | 一种业务处理方法、装置及设备 |
CN114880665A (zh) * | 2022-05-12 | 2022-08-09 | 电子科技大学 | 一种针对面向返回编程攻击的智能化检测方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109657473A (zh) * | 2018-11-12 | 2019-04-19 | 华中科技大学 | 一种基于深度特征的细粒度漏洞检测方法 |
CN110276198A (zh) * | 2019-06-14 | 2019-09-24 | 中国科学院信息工程研究所 | 一种基于概率预测的嵌入式可变粒度控制流验证方法及系统 |
-
2020
- 2020-01-19 CN CN202010058919.1A patent/CN111274580A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109657473A (zh) * | 2018-11-12 | 2019-04-19 | 华中科技大学 | 一种基于深度特征的细粒度漏洞检测方法 |
CN110276198A (zh) * | 2019-06-14 | 2019-09-24 | 中国科学院信息工程研究所 | 一种基于概率预测的嵌入式可变粒度控制流验证方法及系统 |
Non-Patent Citations (3)
Title |
---|
JILIANG ZHANG: "DeepCheck:A Non-intrusive Control-flow Integrity Checking based on Deep Learning", 《AI SECURITY AND PRIVACY PROTECTION》 * |
PENGFEI QIU: "control flow integrity based on lightweight encryption architecture", 《IEEE TRANS. ON CAD OF INTEGRATED CIRCUITS AND SYSTEMS》 * |
王旭: "基于控制流分析和数据流分析的Java程序静态检测方法的研究", 《中国优秀硕士学位论文全文数据库》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112099882A (zh) * | 2020-09-11 | 2020-12-18 | 杭州海康威视数字技术股份有限公司 | 一种业务处理方法、装置及设备 |
CN112099882B (zh) * | 2020-09-11 | 2023-08-25 | 杭州海康威视数字技术股份有限公司 | 一种业务处理方法、装置及设备 |
CN114880665A (zh) * | 2022-05-12 | 2022-08-09 | 电子科技大学 | 一种针对面向返回编程攻击的智能化检测方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10915631B2 (en) | Deep learning on execution trace data for exploit detection | |
Liu et al. | ATMPA: attacking machine learning-based malware visualization detection methods via adversarial examples | |
CN113434858B (zh) | 基于反汇编代码结构和语义特征的恶意软件家族分类方法 | |
Li et al. | I-mad: Interpretable malware detector using galaxy transformer | |
Nguyen et al. | Toward a deep learning approach for detecting php webshell | |
CN111274580A (zh) | 基于深度学习的控制流完整性检测方法 | |
Kim et al. | Detecting intrusive malware with a hybrid generative deep learning model | |
Yuste et al. | Optimization of code caves in malware binaries to evade machine learning detectors | |
Wang et al. | Explainable apt attribution for malware using nlp techniques | |
Tang et al. | Bhmdc: A byte and hex n-gram based malware detection and classification method | |
Singh et al. | Cyber security vulnerability detection using natural language processing | |
Abdullah et al. | HCL-Classifier: CNN and LSTM based hybrid malware classifier for Internet of Things (IoT) | |
Zhu et al. | Malware homology determination using visualized images and feature fusion | |
Maniriho et al. | A survey of recent advances in deep learning models for detecting malware in desktop and mobile platforms | |
Zhao et al. | DeepCG: Classifying metamorphic malware through deep learning of call graphs | |
Sharif et al. | Function identification in android binaries with deep learning | |
CN114880665B (zh) | 一种针对面向返回编程攻击的智能化检测方法及装置 | |
Hai et al. | An efficient classification of malware behavior using deep neural network | |
Tian et al. | Generating adversarial examples of source code classification models via q-learning-based markov decision process | |
CN115758388A (zh) | 一种基于低维字节码特征的智能合约的漏洞检测方法 | |
Hamad et al. | BERTDeep-Ware: A Cross-architecture Malware Detection Solution for IoT Systems | |
Otsubo et al. | Compiler provenance recovery for multi-cpu architectures using a centrifuge mechanism | |
Luo et al. | Binary code similarity detection through LSTM and Siamese neural network | |
Dai et al. | [Retracted] Anticoncept Drift Method for Malware Detector Based on Generative Adversarial Network | |
Xie et al. | Block-gram: mining knowledgeable features for efficiently smart contract vulnerability detection |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200612 |
|
RJ01 | Rejection of invention patent application after publication |