CN112632563B - 一种漏洞检测方法、装置、存储介质及电子设备 - Google Patents
一种漏洞检测方法、装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN112632563B CN112632563B CN202011605620.XA CN202011605620A CN112632563B CN 112632563 B CN112632563 B CN 112632563B CN 202011605620 A CN202011605620 A CN 202011605620A CN 112632563 B CN112632563 B CN 112632563B
- Authority
- CN
- China
- Prior art keywords
- llir
- target program
- target
- code
- structure information
- 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.)
- Active
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 49
- 102100028667 C-type lectin domain family 4 member A Human genes 0.000 claims abstract description 129
- 101100220788 Homo sapiens CLEC4A gene Proteins 0.000 claims abstract description 129
- 238000000034 method Methods 0.000 claims abstract description 39
- 238000006243 chemical reaction Methods 0.000 claims abstract description 30
- 230000007246 mechanism Effects 0.000 claims abstract description 16
- 230000006870 function Effects 0.000 claims description 77
- 238000005206 flow analysis Methods 0.000 claims description 43
- 238000004590 computer program Methods 0.000 claims description 16
- 239000012634 fragment Substances 0.000 claims description 9
- 230000001502 supplementing effect Effects 0.000 claims description 9
- 238000010276 construction Methods 0.000 claims description 2
- 238000004458 analytical method Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 11
- 238000012545 processing Methods 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 6
- 239000000463 material Substances 0.000 description 6
- 230000000694 effects Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 241001377938 Yara Species 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000007123 defense Effects 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 238000010897 surface acoustic wave method Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 238000012038 vulnerability analysis Methods 0.000 description 1
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/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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请公开了一种漏洞检测方法,用以解决现有技术中的漏洞检测方法均耗费人力资源较多的问题。该方法包括:根据预先定义的低等级中间结果形式LLIR的格式,将编译为处理器架构下的目标程序的二进制序列,转换为具备所述LLIR的格式的LLIR;解析转换得到的LLIR,以得到表征所述目标程序运行机制的目标结构信息;根据所述目标结构信息,将所述LLIR转换为HLIR;从转换得到的HLIR中,确定所述目标程序的第一代码特征;根据所述第一代码特征和预设漏洞代码特征,判断所述目标程序是否存在漏洞;所述预设漏洞代码特征,是指被判定为存在漏洞的程序所具备的代码特征。本申请还公开一种漏洞检测装置、设备及存储介质。
Description
技术领域
本申请涉及信息安全领域,特别是涉及一种漏洞检测方法、装置及计算机系统。
背景技术
随着物联网的普及,终端设备的安全问题日益突出。对终端安全漏洞进行监管,是保障终端使用安全的首道防线,因终端设备的运行环境相对复杂,不像电脑中的程序软件架构和格式标准统一,所以,对于终端的固件需要有新的可扩展的自动安全分析方法,才能够更好地进行安全监管。
现有技术中至少有两种漏洞检测方式,如下:
第一种:基于yara的字节序列识别方式。它是一种静态识别技术,能够实现自动对待检测漏洞的目标程序的二进制序列进行匹配扫描,当发现所述二进制序列中存在具备预设漏洞特征的字节序列时,判定目标程序存在漏洞检测,从而得到识别结果。该方式的实现原理图如图1所示。
该方式存在的缺陷在于:相同的程序在编译为不同处理器架构下的二进制序列后,会形成不同的字节序列。由于不同处理器架构之间差异很大,因此,为了兼顾对不同处理器架构下的二进制序列匹配扫描,需要分别收录不同处理器架构下的各自独有的具备预设漏洞特征的字节序列,从而需要耗费较多的人力、物力资源。比如,针对4种不同的处理器架构,对于目标程序A,就需要收录4种处理器架构下的具备预设漏洞特征的字节序列,这就对人力、物力资源产生了较大的耗费。
第二种:通过有经验的漏洞分析人员,使用与待检测漏洞的目标程序相对应的逆向工具,对目标程序进行漏洞分析。
这种方式存在的缺陷在于:依靠人工审计会耗费较多人力资源,且效率较低。
发明内容
本申请实施例提供一种漏洞检测方法,用以解决现有技术中的漏洞检测方法均耗费人力资源较多的问题。
本申请实施例还提供一种漏洞检测装置、终端及存储介质。
为了解决上述技术问题,本申请是这样实现的:
第一方面,提供了一种漏洞检测方法,包括:根据预先定义的低等级中间结果形式LLIR的格式,将编译为处理器架构下的目标程序的二进制序列,转换为具备所述LLIR的格式的LLIR;
解析转换得到的LLIR,以得到表征所述目标程序运行机制的目标结构信息;
根据所述目标结构信息,将所述LLIR转换为HLIR;
从转换得到的HLIR中,确定所述目标程序的第一代码特征;
根据所述第一代码特征和预设漏洞代码特征,判断所述目标程序是否存在漏洞;所述预设漏洞代码特征,是指被判定为存在漏洞的程序所具备的代码特征。
第二方面,提供了一种漏洞检测装置,包括:LLIR转换模块,用于根据预先定义的低等级中间结果形式LLIR的格式,将编译为处理器架构下的目标程序的二进制序列,转换为具备所述LLIR的格式的LLIR;
目标结构信息获取模块,用于解析LLIR转换模块转换得到的LLIR,以得到表征所述目标程序运行机制的目标结构信息;
HLIR转换模块,用于根据所述目标结构信息,将所述LLIR转换为HLIR;
代码特征确定模块,用于从转换得到的HLIR中,确定所述目标程序的代码特征;
判断模块,用于根据预设漏洞代码特征和所述第一代码特征,判断所述目标程序是否存在漏洞;所述预设漏洞代码特征,是指被判定为存在漏洞的程序所具备的代码特征。
第三方面,提供了一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上述任一种漏洞检测方法的步骤。
第四方面,提供了一种存储介质,所述存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如上述任一种漏洞检测方法的步骤。
在本申请实施例中,由于可以按照预先定义的LLIR的格式,将编译为处理器架构下的目标程序的二进制序列,转换为统一格式的LLIR,再转换为HLIR与预设漏洞特征进行比较,从而即便存在不同处理器架构下的目标程序,也无需由于受限于目标程序格式的不同,而需要分别收录不同处理器架构下的二进制序列各自独有的预设漏洞特征,从而节省了人力、物力资源,避免了现有技术的漏洞检测方法存在的耗费人力资源较多的问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是本申请实施例提供的一种基于yara的漏洞识别方法的流程示意图;
图2a是本申请实施例提供的一种漏洞检测方法的具体流程示意图;
图2b是本申请实施例提供的一种将二进制程序转换为LLIR的方法的流程示意图;
图2c是本申请实施例提供的一种将LLIR转换为HLIR的方法的具体流程示意图;
图2d是本申请实施例提供的一种构建代码特征数据库以及对代码特征数据库查询的方法的具体流程示意图;
图3是本申请实施例提供的一种漏洞检测装置的具体结构示意图;
图4是本申请实施例提供的一种电子设备的具体结构示意图。
具体实施例
实施例1
为解决现有技术中的漏洞检测方法耗费人力资源较多的问题,本申请实施例提供一种漏洞检测方法。该方法的执行主体,可以是用户终端或者服务器等任意计算设备,或者是计算设备上运行的应用程序。
以下以本方法的执行主体为一种运行在计算设备上的漏洞检测框架为例,介绍该方法的具体实现流程。
如图2a所示,该方法包括如下步骤:
步骤21,漏洞检测框架根据预先定义的低等级中间结果形式(LLIR,Low LevelIntermediate Representation)的格式,将编译为处理器架构下的目标程序的二进制序列,转换为具备LLIR的格式的LLIR;
本申请实施例中所述的LLIR,是一种独立于处理器架构的语言表示。
这样的语言表示形式不同于普通的反汇编,反汇编的结果仍然是处理器架构下的语言表示,而LLIR则是独立于处理器架构的语言表示。
LLIR不受限于处理器架构的限制,无论是目标程序(目标程序比如可以是固件)的二进制序列是哪种处理器架构下的,都对LLIR的格式不造成影响;且,无论目标程序的二进制序列是哪种处理器架构下的,经步骤21所述的转换之后,都转换为具备相同格式的LLIR。
其中,LLIR被称为“低等级”中间结果形式,是相对于后文的高等级中间结果形式(HLIR,High Level Intermediate Representation)而言的。如图1所示,本申请实施例中,会先将目标程序的二进制序列转换为LLIR,再将LLIR转换为HLIR。
先将程序的二进制序列转换为LLIR的一个目的,是由于直接将所述的二进制序列转换率为HLIR,可能会面临转换过程中易丢失目标程序的目标结构信息的问题。而若采用先转换为LLIR再转换为HLIR的方式,就可以利用二进制序列转换为LLIR的过程中不易发生目标结构信息丢失的特点,从LLIR获取全面的目标结构信息。
所述目标结构信息,是指表征所述目标程序运行机制的目标结构信息。
比如,典型的目标结构信息可以包括:目标程序中的变量和/或参数的信息,以及所述目标程序内部的拓扑结构关系。
本申请实施例中,可以由技术人员对LLIR中的一些指令进行定义。
针对步骤21,若所述处理器架构下的目标程序的二进制序列,包括不同处理器架构下的目标程序的二进制序列,则通过执行步骤21,可以实现将二进制序列格式统一化。以下举例说明。
如图2b所示,假设输入处理器架构中进行漏洞检测的目标程序的二进制序列包括四种,分别为图2b中所示的X86程序、ARM程序、MIPS程序、以及其他处理器架构程序。
其中,所述的X86程序、ARM程序、MIPS程序、以及其他处理器架构程序,是分别将相应的目标程序进行转换,所得到的X86处理器架构、ARM处理器架构、MIPS处理器架构以及其他处理器架构下的二进制序列。所述相应的目标程序,可以是同一目标程序,也可以是不同目标程序。
针对输入的四种二进制序列,漏洞检测框架调用X86解析引擎、ARM解析引擎、MIPS解析引擎、以及其他处理器架构解析引擎,分别对相应的二进制序列进行转换,以得到对应的LLIR。
各解析引擎,可以是由技术人员预先开发的前端反汇编引擎,其所实现的功能包括:根据针对指定处理器架构所规定的二进制序列中的指令格式与LLIR格式所规定的指令格式的对应关系,将指定处理器架构下的二进制序列,转换为具备LLIR格式的指令。
以X86架构为例,X86解析引擎中,可以预先设置如下表1所示的对应关系。
表1:
指令类型 | X86程序的指令格式(示例) | LLIR格式规定的指令格式 |
终结指令 | AABB | 如ret、br等 |
二元操作指令 | ABBB | 如add、sub等 |
二元位操作指令 | AAAB | 如and、or等 |
内存访问指令 | AAAA | 如malloc、free等 |
其他指令 | BBBB | 如call、mov等 |
以ARM架构为例,ARM解析引擎中,可以预先设置如下表2所示的对应关系。
表2:
指令类型 | ARM程序的指令格式(示例) | LLIR格式规定的指令格式 |
终结指令 | XXYY | 如ret、br等 |
二元操作指令 | XYYY | 如add、sub等 |
二元位操作指令 | XXXY | 如and、or等 |
内存访问指令 | XXXX | 如malloc、free等 |
其他指令 | YYYY | 如call、mov等 |
基于上表1中的对应关系,X86解析引擎可以实现将X86程序中的指令转换为LLIR格式的指令,从而实现将X86程序转换为LLIR;基于上表2中的对应关系,ARM解析引擎可以实现将ARM程序中的指令转换为LLIR格式的指令,从而实现将ARM程序转换为LLIR。
通过上述转换操作,即便输入漏洞检测框架的二进制序列是不同处理器架构下的二进制序列,也可以实现将不同处理架构下的二进制序列转换为具备相同格式的序列,从而实现了对格式的统一化。
步骤22,漏洞检测框架解析转换得到的LLIR,以得到表征目标程序运行机制的目标结构信息。
如前文所述,先将程序的二进制序列转换为LLIR的一个技术效果,是可以利用二进制序列转换为LLIR的过程中不易发生目标结构信息丢失的特点,从LLIR获取全面的目标结构信息。
所述目标结构信息,是指表征所述目标程序运行机制的目标结构信息。
目标程序是否存在漏洞,往往可以从它的运行机制中体现。所述的运行机制,比如可以包括但不限于:目标程序中的参数和/或变量是如何定义的、参数和/或变量的类型、它们又是如何使用的、函数间的调用关系,等等。
综上,典型的目标结构信息,比如可以包括:目标程序中的变量和/或参数的信息,以及所述目标程序内部的拓扑结构关系(拓扑结构关系比如包括函数间的调用关系,等)。
本申请实施例中,可以采用数据流分析引擎,从LLIR中获取目标程序中的变量和/或参数的信息;此外,可以采用控制流分析引擎,从LLIR中获取目标程序内部的拓扑结构关系。
如图2c所示,为采用数据流分析引擎和控制流分析引擎分别解析LLIR,从而实现从LLIR中获取上述信息的示意图。获取到的变量和/或参数的信息,以及目标程序内部的拓扑结构关系,可统称为数据结构信息或结构信息。为与后文的“预设基准结构信息”相区分,从LLIR中获取的结构信息可称为“目标结构信息”。
所述的数据流分析引擎,是指利用数据流分析技术解析LLIR的引擎。
数据流分析,是一项编译时使用的技术,它能从程序代码中收集程序的语义,并根据语义确定变量和参数的信息。通过数据流分析,可以不必实际运行程序就能够发现程序运行时的行为,这样可以起到帮助理解程序的作用。
这里所说的变量,比如可以包括局部变量和全局变量。变量的信息,比如可以包括变量的具体赋值、生存周期、数据格式以及存储地址中的至少一种等。
参数的信息,则比如可以包括参数的具体参数值。
本申请实施例中,利用数据流分析引擎解析所述转换得到的LLIR,以得到所述目标程序中的变量和/或参数的信息,具体可以包括:
利用数据流分析引擎对所述转换得到的LLIR中的函数头进行识别,以识别出所述目标程序包含的函数各自所对应的LLIR片段;对LLIR片段进行分析,以得到目标程序中的变量和/或参数的信息。
这里的LLIR片段,是指用于实现具备识别出的函数头的函数的代码在LLIR所对应的字节序列。
所述的控制流分析引擎,是指利用控制流分析技术解析LLIR的引擎。
控制流分析,即Control flow analysis,简称CFA,是一种确认程序控制流程的静态代码分析技术。采用控制流分析技术,可以识别出目标程序内部的拓扑结构关系。
本申请实施例中,利用控制流分析引擎解析所述转换得到的LLIR,以得到所述目标程序内部的拓扑结构关系,具体可以包括:
利用控制流分析引擎对LLIR中的函数头进行识别,以识别出目标程序包含的函数;
利用控制流分析引擎对LLIR中的跳转指令进行识别;
根据识别出的函数和跳转指令,确定目标程序包含的函数间的调用关系,作为目标程序内部的拓扑结构关系。
步骤23,漏洞检测框架根据根据目标结构信息,将所述LLIR转换为HLIR;
本申请实施例中,将LLIR转换为HLIR,可以是对两部分信息进行组合而得到的。这两部分信息分别为:1、基于数据流分析引擎得到的变量和/或参数的信息;2、控制流分析引擎得到的目标程序内部的拓扑结构关系。
如图2c所示,为对数据流分析引擎输出的变量和/或参数的信息,以及控制流分析引擎输出的拓扑结构关系进行组合的示意图。采用这两种技术,可以将LLIR简化为较高层逻辑表示,类似于伪代码的表示形式。
就步骤23的具体实现过程而言,举例来说,比如数据流分析引擎得到的信息为:目标函数中的函数1中包括“携带于函数1对其他函数的调用指令中”的变量名a,a的具体赋值为1。控制流分析引擎得到的拓扑结构关系中,与函数1关联的拓扑结构关系包括:函数1调用函数2。那么,可以组合这两部分信息,从而得到承载下述信息的HLIR:
“目标函数中的函数1调用函数2,且函数1发送的调用指令中包含变量a,a的具体赋值为1”。
本申请实施例中,对具体如何组合这两部分信息不做限定,只要对于组合后得到的HLIR,能够采用可行的信息识别手段,从HLIR中识别出诸如上述信息“目标函数中的函数1调用函数2,且函数1发送的调用指令中包含变量a,a的具体赋值为1”即可。
通过执行步骤23,可以达到的一个效果是,将LLIR转化为HLIR,相当于是对LLIR进行了简化:对LLIR中的与目标程序的拓扑结构关系较弱的部分进行了丢弃,而仅保留目标程序的拓扑结构关系、以及与拓扑结构关系强关联的部分(即变量和/或参数的信息)。
由于保留的信息能够表征目标程序的运行机制——如上述的“目标函数中的函数1调用函数2,且函数1发送的调用指令中包含变量a,a的具体赋值为1”就是目标程序的运行机制之一——而判断目标程序是否存在漏洞,重要的一个分析对象就是目标程序的运行机制是否存在漏洞,因此,将LLIR转换为HLIR,不会对得出“目标程序是否存在漏洞”的判定结果产生负面影响。
需要说明的是,在图2c中,数据流分析引擎所输出的变量和/或参数的信息,除了用作组合得到HLIR外,还可以作为获取预设基准结构信息的依据。所述的预设基准结构信息,用于对目标结构信息进行补充。
之所以要对目标结构信息进行补充,是由于通过发明人的研究发现,对目标程序在处理器架构下的二进制序列执行转换操作后,可能会导致一些结构信息的丢失,从而影响对目标程序是否存在漏洞的判断结果准确性。为避免该问题,本申请实施例中,还可以根据数据流分析引擎所输出的变量和/或参数的信息的特征,从一些开源的、用以提供预设基准结构信息的平台处,获取具备该特征的预设基准结构信息,进而,基于预设结构信息对目标结构信息进行补充,从而避免信息缺失的问题。
比如,可以根据“变量的变量名a”这一特征,从所述平台处,获取具备该变量名a(假设变量名a是固定名称,软件开发人员不会随意改动)的变量的类型信息“整型”。该类型信息,即为预设基准结构信息。
基于获取到的预设基准结构信息,可以对目标基准结构信息进行补充,以得到补充后的目标基准结构信息。
沿用上例,若目标结构信息中的a变量的信息中,缺失了变量的类型信息,则可以根据将获取到的预设基准结构信息补入目标结构信息中,使得a变量的信息变得完整。
补充后的目标基准结构信息具体如何使用,请见下文针对步骤24的相关描述。
步骤24,漏洞检测框架从转换得到的HLIR中,确定目标程序的代码特征;
目标程序的代码特征,可以是采用可行的信息识别手段,对HLIR中的代码特征进行识别并提取得到的。其中,这里所说的信息识别手段,可以预先根据HLIR的格式进行设置,只要能够根据HLIR的格式实现从中识别出有效信息即可。
沿用前例,假设HLIR中承载有信息:
“目标函数中的函数1调用函数2,且函数1发送的调用指令中包含变量a,a的具体赋值为1”,则,在步骤24中就可以对该信息进行识别,并提取该信息的全部或部分内容,作为目标程序的代码特征之一。
前文提及,可以对目标结构信息进行补充,以得到补充后的目标结构信息。针对补充后的目标结构信息,同样可以采用上述方式进行代码特征提取。
由于HLIR是基于目标结构特征组合生成的,因此,在目标结构特征可能存在信息丢失的情况下,生成的HLIR也同样会存在信息缺失的缺陷。在这样的情况下,为保证漏洞检测结果的准确性,可以将从补充后的目标结构信息中提取出的代码特征,补充到从HLIR中提取出的代码特征中,共同作为目标程序的代码特征。
在一种实施方式中,为便于后续对目标程序的代码特征进行查询,可以基于目标程序的代码特征,构建存储有目标程序的代码特征的代码特征数据库。
步骤25,漏洞检测框架根据预设漏洞代码特征和从HLIR中提取的代码特征,判断目标程序是否存在漏洞。
若判定存在漏洞,则可以执行比如发出告警的操作;若判定不存在漏洞,则可以输出相应的判定结果。
上述预设漏洞代码特征,是指被判定为存在漏洞的程序所具备的代码特征。
沿用上例,假设目标程序的代码特征之一为“目标函数中的函数1调用函数2,且函数1发送的调用指令中包含变量a,a的具体赋值为1”,而预设漏洞代码特征包括“函数1调用函数2”,则,根据目标程序的代码特征和该预设漏洞代码特征,可以确定出目标程序的代码特征与预设漏洞代码特征相匹配,从而判定目标程序存在漏洞。
本申请实施例中,为提升漏洞检测效率,可以将所述预设的漏洞代码特征,以代码特征查询语句的形式进行固化。即,可以设置包含预设漏洞代码特征的代码特征查询语句,在需要查询构建的代码特征数据库时,可以直接获取设置好的代码特征查询语句并执行。
在一种实施方式中,从HLIR中提取代码特征构建代码特征数据库,以及基于代码特征查询语句实现对代码特征数据库的查询流程,如图2d所示。
采用本申请实施例提供的上述方法,由于可以按照预先定义的LLIR的格式,将编译为处理器架构下的目标程序的二进制序列,转换为统一格式的LLIR,再转换为HLIR与预设漏洞特征进行比较,从而即便存在不同处理器架构下的目标程序,也无需由于受限于目标程序格式的不同,而需要分别收录不同处理器架构下的二进制序列各自独有的预设漏洞特征,从而节省了人力、物力资源,避免了现有技术的漏洞检测方法存在的耗费人力资源较多的问题。
实施例2
为解决现有技术中的漏洞检测方法耗费人力资源较多的问题,本申请实施例提供一种漏洞检测装置,该装置的具体结构示意图如图3所示,包括LLIR转换模块31、目标结构信息获取模块32、HLIR转换模块33、代码特征确定模块34以及判断模块35。各单元的功能如下:
LLIR转换模块31,用于根据预先定义的低等级中间结果形式LLIR的格式,将编译为处理器架构下的目标程序的二进制序列,转换为具备所述LLIR的格式的LLIR;
目标结构信息获取模块32,用于解析LLIR转换模块转换得到的LLIR,以得到表征所述目标程序运行机制的目标结构信息;
所述目标结构信息,包括所述目标程序中的变量和/或参数的信息,以及所述目标程序内部的拓扑结构关系,基于此,目标结构信息获取模块32,具体用于:利用数据流分析引擎解析所述转换得到的LLIR,以得到所述目标程序中的变量和/或参数的信息;利用控制流分析引擎解析所述转换得到的LLIR,以得到所述目标程序内部的拓扑结构关系。
进一步地,所述目标结构信息获取模块32,具体用于:利用数据流分析引擎对所述转换得到的LLIR中的函数头进行识别,以识别出所述目标程序包含的函数各自所对应的LLIR片段;利用数据流分析引擎对所述LLIR片段进行分析,以得到所述目标程序中的变量和/或参数的信息。
进一步地,所述目标结构信息获取模块32,具体用于:利用控制流分析引擎对所述转换得到的LLIR中的函数头进行识别,以识别出所述目标程序包含的函数;利用控制流分析引擎对所述转换得到的LLIR中的跳转指令进行识别;根据识别出的函数和跳转指令,确定所述目标程序内部的拓扑结构关系;所述拓扑结构关系,至少包含所述识别出的函数之间的调用关系。
HLIR转换模块33,用于根据所述目标结构信息,将所述LLIR转换为HLIR;
HLIR转换模块33,具体用于:对得到的所述变量和/或参数的信息,以及拓扑结构关系进行组合,得到组合结果,作为所述HLIR。
代码特征确定模块34,用于从转换得到的HLIR中,确定所述目标程序的代码特征;
判断模块35,用于根据预设漏洞代码特征和所述第一代码特征,判断所述目标程序是否存在漏洞;所述预设漏洞代码特征,是指被判定为存在漏洞的程序所具备的代码特征。
通过发明人的研究发现,对目标程序在处理器架构下的二进制序列执行转换操作后,可能会导致一些结构信息的丢失,从而影响对目标程序是否存在漏洞的判断结果准确性。
所以漏洞检测装置中还包括预设基准结构信息获取模块和补充模块。
进一步地,所述漏洞检测装置还包括:预设基准结构信息获取模块,用于根据所述目标结构信息的特征,获取具备所述特征的预设基准结构信息;补充模块,用于利用所述预设基准结构信息,补充所述目标结构信息,以得到补充后的目标结构信息;则,所述判断模块,具体用于:根据所述第二代码特征补充所述第一代码特征,以得到补充后的第一代码特征;根据所述补充后的第一代码特征和预设漏洞代码特征,判断所述目标程序是否存在漏洞;
进一步地,所述漏洞检测装置还包括:数据库构建模块,用于基于所述补充后的第一代码特征,构建代码特征数据库;所述判断模块,具体用于:获取预先设置的代码特征查询语句;所述代码特征查询语句中,包含所述预设漏洞代码特征;基于所述代码特征查询语句,查询所述代码特征数据库中是否存在与所述预设漏洞代码特征匹配的代码特征;根据查询结果,判断所述目标程序是否存在漏洞。
在本申请实施例中,由于可以按照预先定义的LLIR的格式,将编译为处理器架构下的目标程序的二进制序列,转换为统一格式的LLIR,再转换为HLIR与预设漏洞特征进行比较,从而即便存在不同处理器架构下的目标程序,也无需由于受限于目标程序格式的不同,而需要分别收录不同处理器架构下的二进制序列各自独有的预设漏洞特征,从而节省了人力、物力资源,避免了现有技术的漏洞检测方法存在的耗费人力资源较多的问题。
实施例3
为解决现有技术中的漏洞检测方法耗费人力资源较多的问题,本申请实施例3提供一种电子设备。
图4为实现本申请各个实施例的一种移动终端的硬件结构示意图,该移动终端400包括但不限于:射频单元401、网络模块402、音频输出单元403、输入单元404、传感器405、显示单元406、用户输入单元407、接口单元408、存储器409、处理器410、以及电源411等部件。本领域技术人员可以理解,图4中示出的移动终端结构并不构成对移动终端的限定,移动终端可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。在本申请实施例中,移动终端包括但不限于手机、平板电脑、笔记本电脑、掌上电脑、车载终端、可穿戴设备、以及计步器等。
其中,处理器410,用于根据预先定义的低等级中间结果形式LLIR的格式,将编译为处理器架构下的目标程序的二进制序列,转换为具备所述LLIR的格式的LLIR;解析转换得到的LLIR,以得到表征所述目标程序运行机制的目标结构信息;根据所述目标结构信息,将所述LLIR转换为HLIR;从转换得到的HLIR中,确定所述目标程序的第一代码特征;根据所述第一代码特征和预设漏洞代码特征,判断所述目标程序是否存在漏洞;所述预设漏洞代码特征,是指被判定为存在漏洞的程序所具备的代码特征。
存储器409,用于存储可在处理器410上运行的计算机程序,该计算机程序被处理器410执行时,实现处理器410所实现的上述功能。
应理解的是,本申请实施例中,射频单元401可用于收发信息或通话过程中,信号的接收和发送,具体的,将来自基站的下行数据接收后,给处理器410处理;另外,将上行的数据发送给基站。通常,射频单元401包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器、双工器等。此外,射频单元401还可以通过无线通信系统与网络和其他设备通信。
移动终端通过网络模块402为用户提供了无线的宽带互联网访问,如帮助用户收发电子邮件、浏览网页和访问流式媒体等。
音频输出单元403可以将射频单元401或网络模块402接收的或者在存储器409中存储的音频数据转换成音频信号并且输出为声音。而且,音频输出单元403还可以提供与移动终端400执行的特定功能相关的音频输出(例如,呼叫信号接收声音、消息接收声音等等)。音频输出单元403包括扬声器、蜂鸣器以及受话器等。
输入单元404用于接收音频或视频信号。输入单元404可以包括图形处理器(Graphics Processing Unit,GPU)4041和麦克风4042,图形处理器4041对在视频捕获模式或图像捕获模式中由图像捕获装置(如摄像头)获得的静态图片或视频的图像数据进行处理。处理后的图像帧可以显示在显示单元406上。经图形处理器4041处理后的图像帧可以存储在存储器409(或其它存储介质)中或者经由射频单元401或网络模块402进行发送。麦克风4042可以接收声音,并且能够将这样的声音处理为音频数据。处理后的音频数据可以在电话通话模式的情况下转换为可经由射频单元401发送到移动通信基站的格式输出。
移动终端400还包括至少一种传感器405,比如光传感器、运动传感器以及其他传感器。具体地,光传感器包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板4061的亮度,接近传感器可在移动终端400移动到耳边时,关闭显示面板4061和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别移动终端姿态(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;传感器405还可以包括指纹传感器、压力传感器、虹膜传感器、分子传感器、陀螺仪、气压计、湿度计、温度计、红外线传感器等,在此不再赘述。
显示单元406用于显示由用户输入的信息或提供给用户的信息。显示单元406可包括显示面板4061,可以采用液晶显示器(Liquid Crystal Display,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板4061。
用户输入单元407可用于接收输入的数字或字符信息,以及产生与移动终端的用户设置以及功能控制有关的键信号输入。具体地,用户输入单元407包括触控面板4071以及其他输入设备4072。触控面板4071,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板4071上或在触控面板4071附近的操作)。触控面板4071可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器410,接收处理器410发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板4071。除了触控面板4071,用户输入单元407还可以包括其他输入设备4072。具体地,其他输入设备4072可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆,在此不再赘述。
进一步的,触控面板4071可覆盖在显示面板4061上,当触控面板4071检测到在其上或附近的触摸操作后,传送给处理器410以确定触摸事件的类型,随后处理器410根据触摸事件的类型在显示面板4061上提供相应的视觉输出。虽然在图4中,触控面板4071与显示面板4061是作为两个独立的部件来实现移动终端的输入和输出功能,但是在某些实施例中,可以将触控面板4071与显示面板4061集成而实现移动终端的输入和输出功能,具体此处不做限定。
接口单元408为外部装置与移动终端400连接的接口。例如,外部装置可以包括有线或无线头戴式耳机端口、外部电源(或电池充电器)端口、有线或无线数据端口、存储卡端口、用于连接具有识别模块的装置的端口、音频输入/输出(I/O)端口、视频I/O端口、耳机端口等等。接口单元408可以用于接收来自外部装置的输入(例如,数据信息、电力等等)并且将接收到的输入传输到移动终端400内的一个或多个元件或者可以用于在移动终端400和外部装置之间传输数据。
存储器409可用于存储软件程序以及各种数据。存储器409可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器409可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
处理器410是移动终端的控制中心,利用各种接口和线路连接整个移动终端的各个部分,通过运行或执行存储在存储器409内的软件程序和/或模块,以及调用存储在存储器409内的数据,执行移动终端的各种功能和处理数据,从而对移动终端进行整体监控。处理器410可包括一个或多个处理单元;优选的,处理器410可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器410中。
移动终端400还可以包括给各个部件供电的电源411(比如电池),优选的,电源411可以通过电源管理系统与处理器410逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
另外,移动终端400包括一些未示出的功能模块,在此不再赘述。
优选的,本申请实施例还提供一种移动终端,包括处理器410,存储器409,存储在存储器409上并可在所述处理器410上运行的计算机程序,该计算机程序被处理器410执行时实现上述漏洞检测方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
在本申请实施例中,由于可以按照预先定义的LLIR的格式,将编译为处理器架构下的目标程序的二进制序列,转换为统一格式的LLIR,再转换为HLIR与预设漏洞特征进行比较,从而即便存在不同处理器架构下的目标程序,也无需由于受限于目标程序格式的不同,而需要分别收录不同处理器架构下的二进制序列各自独有的预设漏洞特征,从而节省了人力、物力资源,避免了现有技术的漏洞检测方法存在的耗费人力资源较多的问题。
本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述漏洞检测方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (8)
1.一种漏洞检测方法,其特征在于,所述方法包括:
根据预先定义的低等级中间结果形式LLIR的格式,将编译为处理器架构下的目标程序的二进制序列,转换为具备所述LLIR的格式的LLIR;
解析转换得到的LLIR,以得到表征所述目标程序运行机制的目标结构信息;
根据所述目标结构信息,将所述LLIR转换为HLIR;
从转换得到的HLIR中,确定所述目标程序的第一代码特征;
根据所述第一代码特征和预设漏洞代码特征,判断所述目标程序是否存在漏洞;所述预设漏洞代码特征,是指被判定为存在漏洞的程序所具备的代码特征;
所述目标结构信息,包括所述目标程序中的变量和/或参数的信息,以及所述目标程序内部的拓扑结构关系;
解析转换得到的LLIR,以得到表征所述目标程序运行机制的目标结构信息,包括:
利用数据流分析引擎解析所述转换得到的LLIR,以得到所述目标程序中的变量和/或参数的信息;
利用控制流分析引擎解析所述转换得到的LLIR,以得到所述目标程序内部的拓扑结构关系;
利用数据流分析引擎解析所述转换得到的LLIR,以得到所述目标程序中的变量和/或参数的信息,包括:
利用数据流分析引擎对所述转换得到的LLIR中的函数头进行识别,以得到所述目标程序包含的函数各自所对应的LLIR片段;
利用数据流分析引擎对所述LLIR片段进行分析,以得到所述目标程序中的函数所使用的变量和/或参数的信息;
利用控制流分析引擎解析所述转换得到的LLIR,以得到所述目标程序内部的拓扑结构关系,包括:
利用控制流分析引擎对所述转换得到的LLIR中的函数头进行识别,以识别出所述目标程序包含的函数;
利用控制流分析引擎对所述转换得到的LLIR中的跳转指令进行识别;
根据识别出的函数和跳转指令,确定所述目标程序内部的拓扑结构关系;所述拓扑结构关系,至少包含所述识别出的函数之间的调用关系;
根据所述目标结构信息,将所述LLIR转换为HLIR,具体包括:
对得到的所述变量和/或参数的信息,以及拓扑结构关系进行组合,得到组合结果,作为所述HLIR。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
根据所述目标结构信息的特征,获取具备所述特征的预设基准结构信息;
利用所述预设基准结构信息,补充所述目标结构信息,以得到补充后的目标结构信息;
从所述补充后的目标结构信息中,确定所述目标程序的第二代码特征;则,
根据所述第一代码特征和预设漏洞代码特征,判断所述目标程序是否存在漏洞,具体包括:
根据所述第二代码特征补充所述第一代码特征,以得到补充后的第一代码特征;
根据所述补充后的第一代码特征和预设漏洞代码特征,判断所述目标程序是否存在漏洞。
3.如权利要求2所述的方法,其特征在于,所述方法还包括:基于所述补充后的第一代码特征,构建代码特征数据库;则,
根据所述补充后的第一代码特征和预设漏洞代码特征,判断所述目标程序是否存在漏洞,具体包括:
获取预先设置的代码特征查询语句;所述代码特征查询语句中,包含所述预设漏洞代码特征;
基于所述代码特征查询语句,查询所述代码特征数据库中是否存在与所述预设漏洞代码特征匹配的代码特征;
根据查询结果,判断所述目标程序是否存在漏洞。
4.一种漏洞检测装置,其特征在于,所述装置包括:
LLIR转换模块,用于根据预先定义的低等级中间结果形式LLIR的格式,将编译为处理器架构下的目标程序的二进制序列,转换为具备所述LLIR的格式的LLIR;
目标结构信息获取模块,用于解析LLIR转换模块转换得到的LLIR,以得到表征所述目标程序运行机制的目标结构信息;
HLIR转换模块,用于根据所述目标结构信息,将所述LLIR转换为HLIR;
代码特征确定模块,用于从转换得到的HLIR中,确定所述目标程序的第一代码特征;
判断模块,用于根据预设漏洞代码特征和所述第一代码特征,判断所述目标程序是否存在漏洞;所述预设漏洞代码特征,是指被判定为存在漏洞的程序所具备的代码特征;
所述目标结构信息,包括所述目标程序中的变量和/或参数的信息,以及所述目标程序内部的拓扑结构关系;
目标结构信息获取模块,具体用于:
利用数据流分析引擎解析所述转换得到的LLIR,以得到所述目标程序中的变量和/或参数的信息;
利用控制流分析引擎解析所述转换得到的LLIR,以得到所述目标程序内部的拓扑结构关系;
目标结构信息获取模块,具体用于:
利用数据流分析引擎对所述转换得到的LLIR中的函数头进行识别,以识别出所述目标程序包含的函数各自所对应的LLIR片段;
利用数据流分析引擎对所述LLIR片段进行分析,以得到所述目标程序中的变量和/或参数的信息;
目标结构信息获取模块,具体用于:
利用控制流分析引擎对所述转换得到的LLIR中的函数头进行识别,以识别出所述目标程序包含的函数;
利用控制流分析引擎对所述转换得到的LLIR中的跳转指令进行识别;
根据识别出的函数和跳转指令,确定所述目标程序内部的拓扑结构关系;所述拓扑结构关系,至少包含所述识别出的函数之间的调用关系;
所述HLIR转换模块,具体用于:
对得到的所述变量和/或参数的信息,以及拓扑结构关系进行组合,得到组合结果,作为所述HLIR。
5.如权利要求4所述的装置,其特征在于,所述装置还包括:
预设基准结构信息获取模块,用于根据所述目标结构信息的特征,获取具备所述特征的预设基准结构信息;
补充模块,用于利用所述预设基准结构信息,补充所述目标结构信息,以得到补充后的目标结构信息;从所述补充后的目标结构信息中,确定所述目标程序的第二代码特征;则,
所述判断模块,具体用于:
根据所述第二代码特征补充所述第一代码特征,以得到补充后的第一代码特征;
根据所述补充后的第一代码特征和预设漏洞代码特征,判断所述目标程序是否存在漏洞。
6.如权利要求5所述的装置,其特征在于,所述装置还包括:
数据库构建模块,用于基于所述补充后的第一代码特征,构建代码特征数据库;
所述判断模块,具体用于:
获取预先设置的代码特征查询语句;所述代码特征查询语句中,包含所述预设漏洞代码特征;
基于所述代码特征查询语句,查询所述代码特征数据库中是否存在与所述预设漏洞代码特征匹配的代码特征;
根据查询结果,判断所述目标程序是否存在漏洞。
7.一种电子设备,其特征在于,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至3中任一项所述的漏洞检测方法的步骤。
8.一种存储介质,其特征在于,所述存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1至3中任一项所述的漏洞检测方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011605620.XA CN112632563B (zh) | 2020-12-29 | 2020-12-29 | 一种漏洞检测方法、装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011605620.XA CN112632563B (zh) | 2020-12-29 | 2020-12-29 | 一种漏洞检测方法、装置、存储介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112632563A CN112632563A (zh) | 2021-04-09 |
CN112632563B true CN112632563B (zh) | 2023-11-21 |
Family
ID=75286458
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011605620.XA Active CN112632563B (zh) | 2020-12-29 | 2020-12-29 | 一种漏洞检测方法、装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112632563B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106548076A (zh) * | 2015-09-23 | 2017-03-29 | 百度在线网络技术(北京)有限公司 | 检测应用漏洞代码的方法和装置 |
WO2018101575A1 (ko) * | 2016-11-29 | 2018-06-07 | 한국전력공사 | 바이너리 코드 기반 임베디드 소프트웨어 취약점 분석 장치 및 그 방법 |
CN110188544A (zh) * | 2019-05-30 | 2019-08-30 | 北京百度网讯科技有限公司 | 漏洞检测方法及装置、设备及存储介质 |
CN110222512A (zh) * | 2019-05-21 | 2019-09-10 | 华中科技大学 | 一种基于中间语言的软件漏洞智能检测与定位方法与系统 |
CN111552968A (zh) * | 2020-04-21 | 2020-08-18 | 中国电力科学研究院有限公司 | 基于模型检查的嵌入式终端软件代码漏洞检测方法及装置 |
-
2020
- 2020-12-29 CN CN202011605620.XA patent/CN112632563B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106548076A (zh) * | 2015-09-23 | 2017-03-29 | 百度在线网络技术(北京)有限公司 | 检测应用漏洞代码的方法和装置 |
WO2018101575A1 (ko) * | 2016-11-29 | 2018-06-07 | 한국전력공사 | 바이너리 코드 기반 임베디드 소프트웨어 취약점 분석 장치 및 그 방법 |
CN110222512A (zh) * | 2019-05-21 | 2019-09-10 | 华中科技大学 | 一种基于中间语言的软件漏洞智能检测与定位方法与系统 |
CN110188544A (zh) * | 2019-05-30 | 2019-08-30 | 北京百度网讯科技有限公司 | 漏洞检测方法及装置、设备及存储介质 |
CN111552968A (zh) * | 2020-04-21 | 2020-08-18 | 中国电力科学研究院有限公司 | 基于模型检查的嵌入式终端软件代码漏洞检测方法及装置 |
Non-Patent Citations (1)
Title |
---|
《基于中间表示的二进制软件漏洞分析技术研究》;刘祎伊;《中国硕士学位论文全文数据库(信息科技辑)》(第9期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112632563A (zh) | 2021-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108880867B (zh) | 一种网络设备数据采集方法及系统 | |
CN105429775B (zh) | 一种上报日志的方法及装置 | |
CN106502703B (zh) | 一种函数调用方法和装置 | |
CN111723002A (zh) | 一种代码调试方法、装置、电子设备及存储介质 | |
CN111399819B (zh) | 数据生成方法、装置、电子设备及存储介质 | |
CN108984374B (zh) | 一种数据库性能的测试方法和系统 | |
CN112667223A (zh) | 组件配置表的生成方法、装置、电子设备及存储介质 | |
CN106919458B (zh) | Hook目标内核函数的方法及装置 | |
CN109189576B (zh) | 基于Redis的请求处理方法、服务器及计算机可读存储介质 | |
CN108304369B (zh) | 一种文件类型的识别方法和装置 | |
CN106484615B (zh) | 记录日志的方法和装置 | |
CN110032394B (zh) | 一种无源码文件的分析方法、装置和存储介质 | |
CN111562910A (zh) | 一种封装方法及相关设备 | |
CN104951324A (zh) | 一种获取应用调用关系表的方法及装置 | |
CN112632563B (zh) | 一种漏洞检测方法、装置、存储介质及电子设备 | |
CN109829298A (zh) | 内存泄露风险检测方法、终端及计算机可读存储介质 | |
CN109189527A (zh) | 智能显示应用程序的方法、装置和移动终端 | |
CN112559532B (zh) | 一种基于红黑树的数据插入方法、装置及电子设备 | |
CN109240986B (zh) | 一种日志处理方法、装置及存储介质 | |
CN109799994B (zh) | 一种终端组件生成方法及装置 | |
CN112035180A (zh) | 一种自动化实例加载方法、装置、电子设备及存储介质 | |
CN113065083A (zh) | 一种页面处理方法、装置、电子设备及存储介质 | |
CN106896896B (zh) | 省电方法、装置及电子设备 | |
CN107315623B (zh) | 一种上报统计数据的方法和装置 | |
CN108280798B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |