CN111552969A - 基于神经网络的嵌入式终端软件代码漏洞检测方法及装置 - Google Patents
基于神经网络的嵌入式终端软件代码漏洞检测方法及装置 Download PDFInfo
- Publication number
- CN111552969A CN111552969A CN202010319183.9A CN202010319183A CN111552969A CN 111552969 A CN111552969 A CN 111552969A CN 202010319183 A CN202010319183 A CN 202010319183A CN 111552969 A CN111552969 A CN 111552969A
- Authority
- CN
- China
- Prior art keywords
- vulnerability
- code
- control flow
- flow graph
- attribute control
- 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
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
- G06F21/563—Static detection by source code analysis
-
- 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/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Virology (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Molecular Biology (AREA)
- Mathematical Physics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供了一种基于神经网络的嵌入式终端软件代码漏洞检测方法及装置,包括:先获取目标嵌入式终端软件的源代码,并对源代码进行预处理,得到二进制代码;然后将二进制代码的特征函数输入至预先训练好的神经网络,得到二进制代码的属性控制流图;再将二进制代码的属性控制流图和漏洞代码的属性控制流图输入至暹罗网络进行相似性比对,得到比对结果;其中,漏洞代码为预设漏洞库中的已知漏洞;最后基于比对结果确定嵌入式终端软件的源代码是否存在已知漏洞。本发明通过将源代码经过预处理转换为二进制代码的方式增加了检测的普适性,同时通过基于神经网络生成属性控制流图的方式克服了图匹配算法的限制,提高了检测效率。
Description
技术领域
本发明涉及智能电网安全技术领域,尤其是涉及一种基于神经网络的嵌入式终端软件代码漏洞检测方法及装置。
背景技术
嵌入式技术在电力***中具有至关重要的作用,且应用于电力***中的嵌入式设备(即嵌入式终端)具有类型多样和架构多元化的特点。这些嵌入式设备在提供各种功能的同时,也容易带来安全隐患。研究表明,80.4%以上的嵌入式设备固件在供应商发布时就包含了多个N-day漏洞,甚至会包含已被公开8年以上的漏洞。由于嵌入式设备代码具有同源、更新慢的特点,因此一个源代码级的漏洞可能会传播到数百个以上不同硬件架构和软件平台的其他嵌入式设备中,且可能会长期存在于这些设备中。因此,如何检测嵌入式设备中的已知漏洞成为了保证嵌入式设备安全的关键。针对不同平台下的嵌入式设备代码进行相似性研究和检测是识别已公开漏洞的有效方法。
目前,针对嵌入式设备代码相似性检测的研究主要有两种。一种是扫描嵌入式设备固件中特定的字符串或常量,该方法在遇到复杂漏洞或者漏洞绑定不同字符串或常量时无法正确识别。另一种是基于图匹配的方法,该方法过度依赖于图匹配的算法,因而在出现相似代码但输出输入不同时无法进行针对性判定相似,且图匹配算法受到图像匹配速度的限制,运行效率较低。
发明内容
本发明的目的在于提供一种基于神经网络的嵌入式终端软件代码漏洞检测方法及装置,以缓解了现有技术中存在的无法正确识别字符串或常量,因过度依赖于图匹配算法而造成的判定结果不准确且运行效率低下的技术问题。
第一方面,本发明实施例提供了基于神经网络的嵌入式终端软件代码漏洞检测方法,其中,包括:获取目标嵌入式终端软件的源代码,并对所述源代码进行预处理,得到二进制代码;将所述二进制代码的特征函数输入至预先训练好的神经网络,得到二进制代码的属性控制流图;将所述二进制代码的属性控制流图和漏洞代码的属性控制流图进行相似性比对,得到比对结果;其中,所述漏洞代码为预设漏洞库中的已知漏洞;基于所述比对结果确定所述嵌入式终端软件的源代码是否存在已知漏洞。
进一步地,将所述二进制代码的属性控制流图和漏洞代码的属性控制流图进行相似性比对,得到比对结果包括:将所述二进制代码的属性控制流图输入至暹罗网络,得到第一特征向量;其中,所述第一特征向量用于表征所述二进制代码的属性控制流图的结构信息;将所述漏洞代码的属性控制流图输入至所述暹罗网络,得到第二特征向量;其中,所述第二特征向量用于表征所述漏洞代码的属性控制流图的结构信息;将所述第一特征向量和所述第二特征向量进行相似性比对,得到所述比对结果。
进一步地,将所述第一特征向量和所述第二特征向量进行相似性比对,得到所述比对结果包括:计算所述第一特征向量和所述第二特征向量的余弦距离;基于所述余弦距离确定所述比对结果。
进一步地,在将所述二进制代码的属性控制流图和漏洞代码的属性控制流图进行相似性比对之前,方法还包括:获取漏洞训练样本和/或非漏洞训练样本;其中,所述漏洞训练样本包含漏洞代码的属性控制流图,所述非漏洞训练样本包含二进制代码的属性控制流图;基于所述漏洞训练样本和/或非漏洞训练样本训练暹罗网络,并在训练所述暹罗网络的过程中,通过拟牛顿法对所述暹罗网络的目标函数进行优化,得到优化后的暹罗网络。
进一步地,获取漏洞训练样本和/或非漏洞训练样本包括:获取原始漏洞训练样本和/或原始非漏洞训练样本;利用位置敏感哈希的分布式索引方法对所述原始漏洞训练样本进行索引,得到漏洞训练样本的聚类簇,和/或,利用位置敏感哈希的分布式索引方法对所述原始非漏洞训练样本进行索引,得到非漏洞训练样本的聚类簇;从所述漏洞训练样本的聚类簇中获取漏洞训练样本,和/或,从所述非漏洞训练样本的聚类簇中获取非漏洞训练样本。
进一步地,对所述源代码进行预处理,得到二进制代码包括:将所述源代码拆分成若干个记号流;对所述记号流进行语法分析,得到分析结果;当所述分析结果为语义正确时,利用编译器生成与源代码对应的二进制代码。
进一步地,将所述源代码拆分成若干个记号流包括:利用扫描程序从所述源代码中提取出多个词素,并对每个所述词素构建一个对应的数据包;基于所有词素对应的数据包,构建若干个记号流。
第二方面,本发明实施例提供了基于神经网络的嵌入式终端软件代码漏洞检测装置,其中,包括:获取预处理模块,用于获取目标嵌入式终端软件的源代码,并对所述源代码进行预处理,得到二进制代码;第一输入模块,用于将所述二进制代码的特征函数输入至预先训练好的神经网络,得到二进制代码的属性控制流图;第二输入模块,用于将所述二进制代码的属性控制流图和漏洞代码的属性控制流图进行相似性比对,得到比对结果;其中,所述漏洞代码为预设漏洞库中的已知漏洞;确定模块,用于基于所述比对结果确定所述嵌入式终端软件的源代码是否存在已知漏洞。
第三方面,本发明实施例提供了一种电子设备,包括存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,其中,所述处理器执行所述计算机程序时实现如上述第一方面任一项所述的方法。
第四方面,本发明实施例提供了一种具有处理器可执行的非易失的程序代码的计算机可读介质,其中,所述程序代码使所述处理器执行如上述第一方面任一项所述的方法。
本发明提供的一种基于神经网络的嵌入式终端软件代码漏洞检测方法及装置,包括:先获取目标嵌入式终端软件的源代码,并对源代码进行预处理,得到二进制代码;然后将二进制代码的特征函数输入至预先训练好的神经网络,得到二进制代码的属性控制流图;再将二进制代码的属性控制流图和漏洞代码的属性控制流图输入至暹罗网络进行相似性比对,得到比对结果;其中,漏洞代码为预设漏洞库中的已知漏洞;最后基于比对结果确定嵌入式终端软件的源代码是否存在已知漏洞。本发明通过将源代码经过预处理转换为二进制代码的方式能够高效率地完成复杂漏洞的挖掘,增加了检测的普适性,同时通过基于神经网络生成属性控制流图的方式克服了对图匹配算法的依赖性,且提高了检测效率。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种基于神经网络的嵌入式终端软件代码漏洞检测方法的流程图;
图2为生成二进制代码的属性控制流图的示意图;
图3为本发明实施例提供的另一种基于神经网络的嵌入式终端软件代码漏洞检测方法的流程图;
图4为本发明实施例提供的另一种基于神经网络的嵌入式终端软件代码漏洞检测方法的流程图;
图5为图1中步骤S103的一种流程图;
图6为图1中步骤S103的另一种流程图;
图7为图2中步骤S203的流程图;
图8为本发明实施例提供的另一种基于神经网络的嵌入式终端软件代码漏洞检测方法的流程图;
图9为图8中步骤S401的流程图;
图10为本发明实施例提供的一种基于神经网络的嵌入式终端软件代码漏洞检测装置的结构示意图。
图标:
11-获取预处理模块;12-第一输入模块;13-第二输入模块;14-确定模块。
具体实施方式
下面将结合实施例对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
嵌入式技术在电力***中具有至关重要的作用,且应用于电力***中的嵌入式设备(即嵌入式终端)具有类型多样和架构多元化的特点。这些嵌入式设备在提供各种功能的同时,也容易带来安全隐患。研究表明,80.4%以上的嵌入式设备固件在供应商发布时就包含了多个N-day漏洞,甚至会包含已被公开8年以上的漏洞。由于嵌入式设备代码具有同源、更新慢的特点,因此一个源代码级的漏洞可能会传播到数百个以上不同硬件架构和软件平台的其他嵌入式设备中,且可能会长期存在于这些设备中。因此,如何检测嵌入式设备中的已知漏洞成为了保证嵌入式设备安全的关键。针对不同平台下的嵌入式设备代码进行相似性研究和检测是识别已公开漏洞的有效方法。
目前,针对嵌入式设备代码相似性检测的研究主要有两种。一种是扫描嵌入式设备固件中特定的字符串或常量,该方法在遇到复杂漏洞或者漏洞绑定不同字符串或常量时无法正确识别。另一种是基于图匹配的方法,该方法过度依赖于图匹配的算法,因而在出现相似代码但输出输入不同时无法进行针对性判定相似,且图匹配算法受到图像匹配速度的限制,运行效率较低。
基于此,本发明实施例提供了一种基于神经网络的嵌入式终端软件代码漏洞检测方法及装置,可以通过将源代码经过预处理转换为二进制代码的方式能够高效率地完成复杂漏洞的挖掘,增加了检测的普适性,同时通过基于神经网络生成属性控制流图的方式克服了对图匹配算法的依赖性,且提高了检测效率。
为便于对本实施例进行理解,首先对本发明实施例所公开的一种基于神经网络的嵌入式终端软件代码漏洞检测方法进行详细介绍。
实施例1:
根据本发明实施例,提供了一种基于神经网络的嵌入式终端软件代码漏洞检测方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机***中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图2是根据本发明实施例的一种基于神经网络的嵌入式终端软件代码漏洞检测方法的流程图,如图2所示,该方法包括如下步骤:
步骤S101,获取目标嵌入式终端软件的源代码,并对源代码进行预处理,得到二进制代码。
在本发明实施例中,由于目前获取到的漏洞库存在二进制代码与源代码混杂的情况,在这种情况下,一方面,将二进制代码的漏洞转换为源代码的漏洞较为困难,而将源代码的漏洞转换为二进制代码的漏洞较为简单,另一方面,获取目标嵌入式终端软件的源代码较为困难,而二进制代码比较容易获得。基于上述两个方面的考虑,本实施例在漏洞库存在源代码的漏洞时,则将源代码的漏洞编译为二进制代码的漏洞,并将目标嵌入式终端软件的源代码转换为二进制代码。
针对二进制代码漏洞检测的方式与源代码相比,能够省去对编译平台、语言差异性的处理,增加了其普适性,降低了检测方法在时间上和空间上的资源消耗,因此本发明实施例以目标嵌入式终端软件的二进制代码为研究对象。
步骤S102,将二进制代码的特征函数输入至预先训练好的神经网络,得到二进制代码的属性控制流图;
在本发明实施例中,二进制代码可以利用函数调用图或属性控制流图进行描述,其中,函数调用图用以描述函数之间的调用关系,而属性控制流图用以描述函数的内部结构,其特征是将一个函数所有的语句分为若干个基本块。基本块是一个连续的语句序列,控制流从其开始进入,末尾离开,不存在中断或者分支。
本实施例以利用属性控制流图描述二进制代码为例,参照图2,将二进制代码的特征函数x拆分成x1,x2和x3三个基本块,并将x1,x2和x3三个基本块输入至预先训练好的神经网络,经过T次迭代,可以得到二进制代码的属性控制流图μ。本发明实施例采用属性控制流图(图2中的ACFG)对目标嵌入式终端软件的二进制代码进行描述,可以克服图匹配算法的限制,具有较高的生成效率,以得到精确的比对结果。
步骤S103,将二进制代码的属性控制流图和漏洞代码的属性控制流图输入至暹罗网络进行相似性比对,得到比对结果。
在本发明实施例中,参照图6,g1和g2分别表示目标嵌入式终端软件的源代码和漏洞的源代码,μ1和μ1分别表示二进制代码的属性控制流图和漏洞代码的属性控制流图,在将二进制代码的属性控制流图和漏洞代码的属性控制流图输入至暹罗网络之后,该暹罗网络输出比对结果Cos(μ1,μ2)。
步骤S104,基于比对结果确定嵌入式终端软件的源代码是否存在已知漏洞。
参照图3、图4和图6,从源代码库中获取源代码,从预设漏洞库中获取漏洞代码,对源代码进行特征提取后,得到二进制代码的属性控制流图(图6中的μ1),对漏洞代码进行特征提取后,可以得到漏洞代码的属性控制流图(图6中的μ2),将上述二进制代码的属性控制流图和漏洞代码的属性控制流图输入至暹罗网络,暹罗网络输出对比结果(图6中的Cos(μ1,μ2)),对比结果Cos(μ1,μ2)可以用1和-1表示,在Cos(μ1,μ2)=1时,表示嵌入式终端软件的源代码存在已知漏洞,在Cos(μ1,μ2)为-1时,表示嵌入式终端软件的源代码不存在已知漏洞。
本发明实施例基于神经网络和暹罗网络对目标嵌入式终端软件代码进行了相似性检测,从而可以排查已知漏洞的存在。具体地,本发明通过将源代码经过预处理转换为二进制代码的方式能够高效率地完成复杂漏洞的挖掘,增加了检测的普适性,同时通过基于神经网络生成属性控制流图的方式克服了对图匹配算法的依赖性,且提高了检测效率。
下面结合具体的实施例介绍上述基于神经网络的嵌入式终端软件代码漏洞检测方法。
通过上述描述可知,在本发明实施例中,步骤S103,将二进制代码的属性控制流图和漏洞代码的属性控制流图输入至暹罗网络进行相似性比对,得到比对结果是实现本发明实施例中比较重要的一个环节,可以利用属性控制流图的相似度比对的方式克服对图匹配算法的依赖性。
在一个可选的实施例中,参照图5,步骤S103,将二进制代码的属性控制流图和漏洞代码的属性控制流图输入至暹罗网络进行相似性比对,得到比对结果包括:
步骤S201,将二进制代码的属性控制流图输入至暹罗网络,得到第一特征向量。
在本发明实施例中,第一特征向量用于表征二进制代码的属性控制流图的结构信息;
步骤S202,将漏洞代码的属性控制流图输入至暹罗网络,得到第二特征向量。
在本发明实施例中,第二特征向量用于表征漏洞代码的属性控制流图的结构信息;
步骤S203,将第一特征向量和第二特征向量进行相似性比对,得到比对结果。
暹罗网络将二进制代码的属性控制流图和漏洞代码的属性控制流图作为输入,输出比对结果,该对比结果可以是相似度评分。即图6中的μ1和μ2作为输入,Cos(μ1,μ2)作为输出。
具体地,二进制代码的属性控制流图和漏洞代码的属性控制流图均采用Structure2vec方法。该Structure2vec方法根据属性控制流图的网络结构及节点之间的关系来识别网络节点。
以二进制代码的属性控制流图为例,该Structure2vec方法的具体过程如下:令二进制代码的属性控制流图g1=(V,E),其中V是顶点集合,E是边集合,顶点集合V中的顶点v包含与基本块特征(即基本块属性中的子代数目,子代相关性)相对应的附加特征xv,该基本块特征根据图形拓扑递归聚合同步获得,每一轮顶点的更新都在前一轮更新完成后才能进行,由此将顶点特征xv通过非线性传播函数F传播到其他顶点。完成迭代更新后,传递网络将产生新的与顶点特性相关的特征嵌入。
首先,图像嵌入网络对顶点集合V中每个顶点v计算p维特征μv,然后g1的嵌入向量μg将作为一个计算顶点嵌入的聚合。即μg:=∑v∈V(μv)。
Structure2vec网络将初始化嵌入μv (0)设为0,然后每次迭代中更新:
其中F设计为:
其中xv为顶点特征,即属性流程图中节点或基块级特征的d维向量,W1为d×p矩阵,p为上述嵌入大小或称嵌入维度。
根据上述公式可以获得基于图形拓扑的同步输出,随着更新的迭代次数越多,顶点特征也将传递到更远的顶点并进行非线性的聚合。该方式使得嵌入包含了图形拓扑本身及其邻域的信息,不需要手动指定非线性参数,这些非线性参数由神经网络对大量训练样本数据进行训练学习获得。
σ(·)为完全连接的n层神经网络:
其中,Pi(i=1,…,n)是p×p矩阵;n为嵌入深度或称嵌入维度;ReLU是经校正的线性单位,即ReLU(x)=max{0,x}。
在一个可选的实施例中,如图7所示,步骤S203,将第一特征向量和第二特征向量进行相似性比对,得到比对结果包括:
步骤S301,计算第一特征向量和第二特征向量的余弦距离;
步骤S302,基于余弦距离确定比对结果。
在本发明实施例中,暹罗网络最终输出的结果为两个向量的余弦距离。此外,两个嵌入网络共享相同的参数集,并且在两个嵌入网络的训练过程中保持不变。暹罗网络将两个嵌入网络加入顶部,输出比对结果为:
其中,第一特征向量φ(g)通过以下步骤生成:步骤1,将属性控制流图输入为g=(V,E);步骤2,将顶点集合V中每个顶点v进行初始化,μv (0)=0;步骤3,在迭代次数内,令 步骤4,令μv (t)=tanh(W1xv+σ(lv));步骤5,获得
在一个可选的实施例中,如图8所示,在步骤S103,将二进制代码的属性控制流图和漏洞代码的属性控制流图输入至暹罗网络进行相似性比对之前,方法还包括:
步骤S401,获取漏洞训练样本和/或非漏洞训练样本;
在本发明实施例中,漏洞训练样本包含漏洞代码的属性控制流图,非漏洞训练样本包含二进制代码的属性控制流图;
步骤S402,基于漏洞训练样本和/或非漏洞训练样本训练暹罗网络,并在训练暹罗网络的过程中,通过拟牛顿法对暹罗网络的目标函数进行优化,得到优化后的暹罗网络。
在本发明实施例中,通过拟牛顿法来优化暹罗网络,并利用浓度-时间曲线下面积(AUC)作为衡量标准,可以获得具有良好表现的暹罗网络。拟牛顿法的本质思想是改善牛顿法每次需要求解复杂的Hessian矩阵的逆矩阵的缺陷,它使用正定矩阵来近似Hessian矩阵的逆,从而简化了运算的复杂度。拟牛顿法和最速下降法一样,只要求每一步迭代时知道目标函数的梯度,然后通过测量梯度的变化,构造一个目标函数的模型使之足以产生超线性收敛性。浓度-时间曲线下面积一般被定义为受试者工作特征曲线(ROC曲线)下与坐标轴围成的面积。ROC曲线是根据一系列不同的二分类方式(分界值或决定阈),以真阳性率(灵敏度)为纵坐标,假阳性率(1-特异度)为横坐标绘制的曲线。AUC的值是一个概率值,当随机挑选一个正样本以及负样本,当前的分类算法根据计算得到的Score值将这个正样本排在负样本前面的概率即为AUC值,AUC值越大,当前分类算法越有可能将正样本排在负样本前面,从而能够更好地分类。
考虑到针对特殊的源代码的模型可能偏离于预训练的默认策略,本发明实施例通过使用改变部分的嵌入网络参数来对暹罗网络训练模型进行微调,该参数一般由该领域的专家提供。这些附加数据使嵌入网络更加符合特定任务的策略。本实施例使用这样的增强数据集,可以进一步训练嵌入网络,并比旧数据更频繁的采样。在训练暹罗网络之后,领域专家向***和优化模型进行反馈和参数调整以提高对于特定源代码的适应性,并进一步的提高了相似性检测的精度,有利于检测出存在的已知漏洞。
本发明实施例将两个嵌入网络加入顶部作为输入,产生相似度评分作为输出,通过拟牛顿法来优化目标函数,并利用浓度-时间曲线下面积作为衡量标准获得具有良好表现的暹罗网络。
在一个可选的实施例中,如图9所示,步骤S401,获取漏洞训练样本和/或非漏洞训练样本包括以下步骤:
步骤S501,获取原始漏洞训练样本和/或原始非漏洞训练样本;
步骤S502,利用位置敏感哈希的分布式索引方法对原始漏洞训练样本进行索引,得到漏洞训练样本的聚类簇,和/或,利用位置敏感哈希的分布式索引方法对原始非漏洞训练样本进行索引,得到非漏洞训练样本的聚类簇;
步骤S503,从漏洞训练样本的聚类簇中获取漏洞训练样本,和/或,从非漏洞训练样本的聚类簇中获取非漏洞训练样本。
在本发明实施例中,训练暹罗网络需要大量的训练样本,然而在大多数情况下,真实数据是有限的。为了解决这个问题,本发明实施例使用了默认策略考虑等效函数,该方法利用一组给定源代码(即原始漏洞训练样本)生成一个大数据集(即漏洞训练样本的聚类簇),利用这个数据集来预先训练独立于目标但具有一定普遍性的模型。因此可以从相同的源代码编译多种二进制函数。通常情况下,生成每个任务的嵌入函数需要捕获函数的不变特征以跨越不同的架构和编译器。本发明实施例通过使用固定符号方式构建数据集的方式克服了这种弊端。当仅收集到一组源代码时,本发明实施例可以通过不同架构来编译它们的二进制代码,使用不同的编译器,并采用不同的优化,由此获得多种嵌入函数。但是对于从相同的源代码编译出的不同函数,训练后的暹罗网络可以识别出的两个二进制函数相似。按照这样的标准为每个二进制函数构建训练数据集,并取样构造出新的训练样本。
本发明实施例使用基于位置敏感的散列的数据库进行索引,利用默认策略考虑等效函数,并先进行预训练,然后通过少量参数进行微调使其适应于特定任务,可以降低运行所需时间、减少运算所需资源,而且还可以提高检测精度。
在一个可选的实施例中,步骤S101,对源代码进行预处理,得到二进制代码包括:
步骤1,将源代码拆分成若干个记号流;
在本发明实施例中,步骤1,将源代码拆分成若干个记号流包括以下步骤:步骤11,利用扫描程序从源代码中提取出多个词素,并对每个词素构建一个对应的数据包;步骤12,基于所有词素对应的数据包,构建若干个记号流。
步骤2,对记号流进行语法分析,得到语义分析结果;
步骤3,当语义分析结果为语义正确时,利用编译器生成与源代码对应的二进制代码。
在本发明实施例中,源代码到二进制目标代码的转换过程,主要经过以下4个阶段:第一个阶段,词法分析阶段:扫描程序从源文件中找到字符和字符串数据,并将这些数据分类为表示源文件词素项的记号。对每个词素创建一个小的数据包,并将字符串词素转化成较小的记号包,因此作为整数处理,比字符串高效,提高了处理效率。第二个阶段,语法分析阶段:编译器的一部分,负责检查源程序的语法语义是否正确,且将记号流重组为更复杂的数据结构,使之表示程序的意思即语义。通过构建表示源代码的数据结构,使得更易引用程序的不同部分,减轻代码生成和优化阶段的负担。第三个阶段,中间代码生成阶段:由于在该阶段对代码进行操作较为容易,且许多编译器是跨平台的,需要生成工作于不同CPU架构的机器码。因此不直接转化为本机机器码,而是通过中间代码来进行过度。第四个阶段,优化阶段:考虑到程序对某些资源的最小占用,主要的资源是内存(体积)和CPU周期(速度),即效率问题。解决该问题所需的时间与输入量呈指数关系,编译器使用启发式和案例性算法来确定生成应采取的转换。
本发明实施例提供了一种基于神经网络的嵌入式终端软件代码漏洞检测方法,其核心是通过检测目标嵌入式终端软件的二进制代码和漏洞的二进制代码的相似性来判断目标嵌入式终端软件代码中是否存在已知漏洞。本发明实施例对目标嵌入式终端软件代码进行特征提取、属性控制流图生成,并搭建神经网络和暹罗网络,将暹罗网络训练为一个可以检测代码相似性的暹罗网络。在暹罗网络训练完成之后,本发明实施例对待检测的目标嵌入式软件代码进行预处理和特征提取,将目标嵌入式软件的二进制代码的属性控制流图与漏洞代码的属性控制流图进行相似性比对,从而发现目标嵌入式软件的二进制代码中存在的已有漏洞。本发明实施例可以检测出多个软件平台下的代码相似性,适用于嵌入式终端软件代码复杂多元的特点,具有较高的普适性。
因此,本发明实施例以目标嵌入式终端软件的二进制代码为研究对象,在提取其代码特征之后,利用神经网络为其生成属性控制流图,利用神经网络也可以为漏洞代码生成属性控制流图,通过拟牛顿法可以优化暹罗网络的目标函数,然后对暹罗网络进行训练;最后,使用基于位置敏感的散列数据库进行索引,当目标软件代码和漏洞库中的图像嵌入网络接近时,说明存在相似性,即该目标软件代码中存在已知漏洞。
实施例2:
本发明实施例还提供了一种基于神经网络的嵌入式终端软件代码漏洞检测装置,该基于神经网络的嵌入式终端软件代码漏洞检测装置主要用于执行本发明实施例上述内容所提供的基于神经网络的嵌入式终端软件代码漏洞检测方法,以下对本发明实施例提供的基于神经网络的嵌入式终端软件代码漏洞检测装置做具体介绍。
图10为本发明实施例提供的一种基于神经网络的嵌入式终端软件代码漏洞检测装置的结构示意图。如图10所示,该基于神经网络的嵌入式终端软件代码漏洞检测装置主要包括:获取预处理模块11,第一输入模块12,第二输入模块13和确定模块14,其中:
获取预处理模块11,用于获取目标嵌入式终端软件的源代码,并对源代码进行预处理,得到二进制代码;
第一输入模块12,用于将二进制代码的特征函数输入至预先训练好的神经网络,得到二进制代码的属性控制流图;
第二输入模块13,用于将二进制代码的属性控制流图和漏洞代码的属性控制流图输入至暹罗网络进行相似性比对,得到比对结果;其中,漏洞代码为预设漏洞库中的已知漏洞;
确定模块14,用于基于比对结果确定嵌入式终端软件的源代码是否存在已知漏洞。
本发明实施例提供的一种基于神经网络的嵌入式终端软件代码漏洞检测装置,包括:先利用获取预处理模块11获取目标嵌入式终端软件的源代码,并对源代码进行预处理,得到二进制代码;然后利用第一输入模块12将二进制代码的特征函数输入至预先训练好的神经网络,得到二进制代码的属性控制流图;再利用第二输入模块13将二进制代码的属性控制流图和漏洞代码的属性控制流图输入至暹罗网络进行相似性比对,得到比对结果;其中,漏洞代码为预设漏洞库中的已知漏洞;最后利用确定模块14基于比对结果确定嵌入式终端软件的源代码是否存在已知漏洞。本发明通过将源代码经过预处理转换为二进制代码的方式能够高效率地完成复杂漏洞的挖掘,增加了检测的普适性,同时通过基于神经网络生成属性控制流图的方式克服了对图匹配算法的依赖性,且提高了检测效率。
可选地,第二输入模块13包括以下子模块:
第一输入子模块,用于将二进制代码的属性控制流图输入至暹罗网络,得到第一特征向量;其中,第一特征向量用于表征二进制代码的属性控制流图的结构信息;
第二输入子模块,用于将漏洞代码的属性控制流图输入至暹罗网络,得到第二特征向量;其中,第二特征向量用于表征漏洞代码的属性控制流图的结构信息;
相似性比对子模块,用于将第一特征向量和第二特征向量进行相似性比对,得到比对结果。
可选地,相似性比对子模块包括:
计算单元,用于计算第一特征向量和第二特征向量的余弦距离;
确定单元,用于基于余弦距离确定比对结果。
可选地,上述基于神经网络的嵌入式终端软件代码漏洞检测装置还包括:
获取模块,用于获取漏洞训练样本和/或非漏洞训练样本;其中,漏洞训练样本包含漏洞代码的属性控制流图,非漏洞训练样本包含二进制代码的属性控制流图;
训练优化模块,用于基于漏洞训练样本和/或非漏洞训练样本训练暹罗网络,并在训练暹罗网络的过程中,通过拟牛顿法对暹罗网络的目标函数进行优化,得到优化后的暹罗网络。
可选地,获取模块包括以下子模块:
第一获取子模块,用于获取原始漏洞训练样本和/或原始非漏洞训练样本;
索引子模块,用于利用位置敏感哈希的分布式索引方法对原始漏洞训练样本进行索引,得到漏洞训练样本的聚类簇,和/或,利用位置敏感哈希的分布式索引方法对原始非漏洞训练样本进行索引,得到非漏洞训练样本的聚类簇;
第二获取子模块,用于从漏洞训练样本的聚类簇中获取漏洞训练样本,和/或,从非漏洞训练样本的聚类簇中获取非漏洞训练样本。
可选地,获取预处理模块11包括以下子模块:
拆分子模块,用于将源代码拆分成若干个记号流;
语法分析子模块,用于对记号流进行语法分析,得到语义分析结果;
生成子模块,用于当语义分析结果为语义正确时,利用编译器生成与源代码对应的二进制代码。
可选地,拆分子模块包括以下单元:
提取单元,用于利用扫描程序从源代码中提取出多个词素,并对每个词素构建一个对应的数据包;
构建单元,用于基于所有词素对应的数据包,构建若干个记号流。
本发明实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。
在本发明的又一实施例中,还提供一种电子设备,包括存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法实施例所述方法的步骤。
在本发明的又一实施例中,还提供一种具有处理器可执行的非易失的程序代码的计算机可读介质,所述程序代码使所述处理器执行方法实施例所述方法。
本发明实施例所提供的基于神经网络的嵌入式终端软件代码漏洞检测方法、装置及电子设备的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
另外,在本发明实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
在本实施例的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本实施例的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本实施例所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。
Claims (10)
1.一种基于神经网络的嵌入式终端软件代码漏洞检测方法,其特征在于,包括:
获取目标嵌入式终端软件的源代码,并对所述源代码进行预处理,得到二进制代码;
将所述二进制代码的特征函数输入至预先训练好的神经网络,得到二进制代码的属性控制流图;
将所述二进制代码的属性控制流图和漏洞代码的属性控制流图进行相似性比对,得到比对结果;其中,所述漏洞代码为预设漏洞库中的已知漏洞;
基于所述比对结果确定所述嵌入式终端软件的源代码是否存在已知漏洞。
2.根据权利要求1所述的方法,其特征在于,将所述二进制代码的属性控制流图和漏洞代码的属性控制流图进行相似性比对,得到比对结果包括:
将所述二进制代码的属性控制流图输入至暹罗网络,得到第一特征向量;其中,所述第一特征向量用于表征所述二进制代码的属性控制流图的结构信息;
将所述漏洞代码的属性控制流图输入至所述暹罗网络,得到第二特征向量;其中,所述第二特征向量用于表征所述漏洞代码的属性控制流图的结构信息;
将所述第一特征向量和所述第二特征向量进行相似性比对,得到所述比对结果。
3.根据权利要求2所述的方法,其特征在于,将所述第一特征向量和所述第二特征向量进行相似性比对,得到所述比对结果包括:
计算所述第一特征向量和所述第二特征向量的余弦距离;
基于所述余弦距离确定所述比对结果。
4.根据权利要求2所述的方法,其特征在于,在将所述二进制代码的属性控制流图和漏洞代码的属性控制流图进行相似性比对之前,方法还包括:
获取漏洞训练样本和/或非漏洞训练样本;其中,所述漏洞训练样本包含漏洞代码的属性控制流图,所述非漏洞训练样本包含二进制代码的属性控制流图;
基于所述漏洞训练样本和/或非漏洞训练样本训练暹罗网络,并在训练所述暹罗网络的过程中,通过拟牛顿法对所述暹罗网络的目标函数进行优化,得到优化后的暹罗网络。
5.根据权利要求4所述的方法,其特征在于,获取漏洞训练样本和/或非漏洞训练样本包括:
获取原始漏洞训练样本和/或原始非漏洞训练样本;
利用位置敏感哈希的分布式索引方法对所述原始漏洞训练样本进行索引,得到漏洞训练样本的聚类簇,和/或,利用位置敏感哈希的分布式索引方法对所述原始非漏洞训练样本进行索引,得到非漏洞训练样本的聚类簇;
从所述漏洞训练样本的聚类簇中获取漏洞训练样本,和/或,从所述非漏洞训练样本的聚类簇中获取非漏洞训练样本。
6.根据权利要求1所述的方法,其特征在于,对所述源代码进行预处理,得到二进制代码包括:
将所述源代码拆分成若干个记号流;
对所述记号流进行语法分析,得到分析结果;
当所述分析结果为语义正确时,利用编译器生成与源代码对应的二进制代码。
7.根据权利要求6所述的方法,其特征在于,将所述源代码拆分成若干个记号流包括:
利用扫描程序从所述源代码中提取出多个词素,并对每个所述词素构建一个对应的数据包;
基于所有词素对应的数据包,构建若干个记号流。
8.一种基于神经网络的嵌入式终端软件代码漏洞检测装置,其特征在于,包括:
获取预处理模块,用于获取目标嵌入式终端软件的源代码,并对所述源代码进行预处理,得到二进制代码;
第一输入模块,用于将所述二进制代码的特征函数输入至预先训练好的神经网络,得到二进制代码的属性控制流图;
第二输入模块,用于将所述二进制代码的属性控制流图和漏洞代码的属性控制流图进行相似性比对,得到比对结果;其中,所述漏洞代码为预设漏洞库中的已知漏洞;
确定模块,用于基于所述比对结果确定所述嵌入式终端软件的源代码是否存在已知漏洞。
9.一种电子设备,包括存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,其特征在于,处理器执行计算机程序时实现如权利要求1至7任一项所述的方法。
10.一种具有处理器可执行的非易失的程序代码的计算机可读介质,其特征在于,所述程序代码使所述处理器执行如权利要求1至7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010319183.9A CN111552969A (zh) | 2020-04-21 | 2020-04-21 | 基于神经网络的嵌入式终端软件代码漏洞检测方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010319183.9A CN111552969A (zh) | 2020-04-21 | 2020-04-21 | 基于神经网络的嵌入式终端软件代码漏洞检测方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111552969A true CN111552969A (zh) | 2020-08-18 |
Family
ID=72004425
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010319183.9A Pending CN111552969A (zh) | 2020-04-21 | 2020-04-21 | 基于神经网络的嵌入式终端软件代码漏洞检测方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111552969A (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112215013A (zh) * | 2020-11-02 | 2021-01-12 | 天津大学 | 一种基于深度学习的克隆代码语义检测方法 |
CN112308210A (zh) * | 2020-10-27 | 2021-02-02 | 中国人民解放军战略支援部队信息工程大学 | 基于神经网络的跨架构二进制函数相似性检测方法及*** |
CN112364352A (zh) * | 2020-10-21 | 2021-02-12 | 扬州大学 | 可解释性的软件漏洞检测与推荐方法及*** |
CN112580060A (zh) * | 2021-01-21 | 2021-03-30 | 国网新疆电力有限公司信息通信公司 | 应用***数据接口漏洞隐患排查*** |
CN112733137A (zh) * | 2020-12-24 | 2021-04-30 | 哈尔滨工业大学 | 一种面向漏洞检测的二进制代码相似性分析方法 |
CN113138924A (zh) * | 2021-04-23 | 2021-07-20 | 扬州大学 | 一种基于图学习的线程安全代码识别方法 |
CN113242547A (zh) * | 2021-04-02 | 2021-08-10 | 浙江大学 | 一种基于深度学习的无线信号中用户行为隐私的滤除方法、***及无线信号收发装置 |
CN113254934A (zh) * | 2021-06-29 | 2021-08-13 | 湖南大学 | 基于图匹配网络的二进制代码相似性检测方法及*** |
CN113434870A (zh) * | 2021-07-14 | 2021-09-24 | 中国电子科技网络信息安全有限公司 | 基于软件依赖分析的漏洞检测方法、装置、设备及介质 |
CN113554101A (zh) * | 2021-07-27 | 2021-10-26 | 哈尔滨理工大学 | 一种基于深度学习的二进制代码相似度检测方法 |
CN114020628A (zh) * | 2021-11-09 | 2022-02-08 | 中国工商银行股份有限公司 | 代码漏洞检测方法及装置 |
CN114443476A (zh) * | 2022-01-11 | 2022-05-06 | 阿里云计算有限公司 | 一种代码评审方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104503816A (zh) * | 2014-12-30 | 2015-04-08 | 西安电子科技大学 | 一种硬件语言vhdl到msvl的自动转换*** |
CN108108622A (zh) * | 2017-12-13 | 2018-06-01 | 上海交通大学 | 基于深度卷积网络和控制流图的漏洞检测*** |
CN110414238A (zh) * | 2019-06-18 | 2019-11-05 | 中国科学院信息工程研究所 | 同源二进制代码的检索方法及装置 |
-
2020
- 2020-04-21 CN CN202010319183.9A patent/CN111552969A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104503816A (zh) * | 2014-12-30 | 2015-04-08 | 西安电子科技大学 | 一种硬件语言vhdl到msvl的自动转换*** |
CN108108622A (zh) * | 2017-12-13 | 2018-06-01 | 上海交通大学 | 基于深度卷积网络和控制流图的漏洞检测*** |
CN110414238A (zh) * | 2019-06-18 | 2019-11-05 | 中国科学院信息工程研究所 | 同源二进制代码的检索方法及装置 |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112364352A (zh) * | 2020-10-21 | 2021-02-12 | 扬州大学 | 可解释性的软件漏洞检测与推荐方法及*** |
CN112364352B (zh) * | 2020-10-21 | 2023-11-24 | 扬州大学 | 可解释性的软件漏洞检测与推荐方法及*** |
CN112308210A (zh) * | 2020-10-27 | 2021-02-02 | 中国人民解放军战略支援部队信息工程大学 | 基于神经网络的跨架构二进制函数相似性检测方法及*** |
CN112215013B (zh) * | 2020-11-02 | 2022-04-19 | 天津大学 | 一种基于深度学习的克隆代码语义检测方法 |
CN112215013A (zh) * | 2020-11-02 | 2021-01-12 | 天津大学 | 一种基于深度学习的克隆代码语义检测方法 |
CN112733137A (zh) * | 2020-12-24 | 2021-04-30 | 哈尔滨工业大学 | 一种面向漏洞检测的二进制代码相似性分析方法 |
CN112580060A (zh) * | 2021-01-21 | 2021-03-30 | 国网新疆电力有限公司信息通信公司 | 应用***数据接口漏洞隐患排查*** |
CN113242547A (zh) * | 2021-04-02 | 2021-08-10 | 浙江大学 | 一种基于深度学习的无线信号中用户行为隐私的滤除方法、***及无线信号收发装置 |
CN113138924A (zh) * | 2021-04-23 | 2021-07-20 | 扬州大学 | 一种基于图学习的线程安全代码识别方法 |
CN113138924B (zh) * | 2021-04-23 | 2023-10-31 | 扬州大学 | 一种基于图学习的线程安全代码识别方法 |
CN113254934A (zh) * | 2021-06-29 | 2021-08-13 | 湖南大学 | 基于图匹配网络的二进制代码相似性检测方法及*** |
CN113434870A (zh) * | 2021-07-14 | 2021-09-24 | 中国电子科技网络信息安全有限公司 | 基于软件依赖分析的漏洞检测方法、装置、设备及介质 |
CN113434870B (zh) * | 2021-07-14 | 2022-07-05 | 中国电子科技网络信息安全有限公司 | 基于软件依赖分析的漏洞检测方法、装置、设备及介质 |
CN113554101A (zh) * | 2021-07-27 | 2021-10-26 | 哈尔滨理工大学 | 一种基于深度学习的二进制代码相似度检测方法 |
CN114020628A (zh) * | 2021-11-09 | 2022-02-08 | 中国工商银行股份有限公司 | 代码漏洞检测方法及装置 |
CN114443476A (zh) * | 2022-01-11 | 2022-05-06 | 阿里云计算有限公司 | 一种代码评审方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111552969A (zh) | 基于神经网络的嵌入式终端软件代码漏洞检测方法及装置 | |
US11544459B2 (en) | Method and apparatus for determining feature words and server | |
RU2654146C1 (ru) | Система и способ обнаружения вредоносных файлов с использованием элементов статического анализа | |
US9003529B2 (en) | Apparatus and method for identifying related code variants in binaries | |
WO2016205286A1 (en) | Automatic entity resolution with rules detection and generation system | |
CN113297580B (zh) | 基于代码语义分析的电力信息***安全防护方法及装置 | |
CN110659502B (zh) | 一种基于文本信息关联关系分析的项目版本检测方法及*** | |
CN115221516B (zh) | 恶意应用程序识别方法及装置、存储介质、电子设备 | |
CN117113347A (zh) | 一种大规模代码数据特征提取方法及*** | |
CN116340952A (zh) | 一种基于操作码程序依赖图的智能合约漏洞检测方法 | |
CN115098857A (zh) | 一种可视化恶意软件的分类方法及装置 | |
CN111694570A (zh) | 一种基于静态程序分析的JavaScript函数参数不匹配检测方法 | |
CN117009968A (zh) | 恶意代码的同源分析方法、装置、终端设备及存储介质 | |
CN109670317A (zh) | 一种基于原子控制流图的物联网设备继承性漏洞挖掘方法 | |
Gu et al. | BinAIV: Semantic-enhanced vulnerability detection for Linux x86 binaries | |
CN111562943B (zh) | 一种基于事件嵌入树及gat网络的代码克隆检测方法和装置 | |
CN115904918A (zh) | 代码特征提取方法、代码检测方法、模型训练方法和装置 | |
CN113935034A (zh) | 基于图神经网络的恶意代码家族分类方法、装置和存储介质 | |
CN116010229A (zh) | 测试用例的生成方法、装置、设备及程序产品 | |
CN112733144A (zh) | 一种基于深度学习技术的恶意程序智能检测方法 | |
Alrabaee et al. | BinDeep: Binary to source code matching using deep learning | |
CN110909777A (zh) | 一种多维特征图嵌入方法、装置、设备及介质 | |
CN115718696B (zh) | 源码密码学误用检测方法、装置、电子设备和存储介质 | |
TWI814481B (zh) | 用於輔助入侵偵測的資安事件診斷系統與相關的電腦程式產品 | |
CN113076485B (zh) | 基于智能降级的资源推荐方法、装置、设备及存储介质 |
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 |