CN111177733A - 一种基于数据流分析的软件补丁检测方法及装置 - Google Patents

一种基于数据流分析的软件补丁检测方法及装置 Download PDF

Info

Publication number
CN111177733A
CN111177733A CN201911395906.7A CN201911395906A CN111177733A CN 111177733 A CN111177733 A CN 111177733A CN 201911395906 A CN201911395906 A CN 201911395906A CN 111177733 A CN111177733 A CN 111177733A
Authority
CN
China
Prior art keywords
patch
code
basic block
statement
control flow
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.)
Granted
Application number
CN201911395906.7A
Other languages
English (en)
Other versions
CN111177733B (zh
Inventor
李建欣
孙佩源
邵明来
周睿
邰振赢
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beihang University
Original Assignee
Beihang University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beihang University filed Critical Beihang University
Priority to CN201911395906.7A priority Critical patent/CN111177733B/zh
Publication of CN111177733A publication Critical patent/CN111177733A/zh
Application granted granted Critical
Publication of CN111177733B publication Critical patent/CN111177733B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

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)

Abstract

一种基于数据流分析的软件补丁检测方法,利用Extractor对补丁代码进行解析,按序选择检测所述补丁代码中赋值语句和条件语句、函数调用语句、类型相关语句、其它类型语句的修改语义做为待检测补丁的特征;建立二进制代码与源码之间的映射关系;选择VEX‑IR作为物联网环境中的设备固件的二进制代码提升的中间代码,使用开源的Angr对二进制代码进行分析,提取出控制流,所述控制流以函数为单位,每个所述函数包含节点为基本块,程序跳转语义为边的控制流;对所述基本块内的数据流进行分析,对所述基本块的代码进行反向逐条分析,提取每个语句中变量的使用链;对跨基本块的数据流进行分析;对提取出的数据流进行优化;从基本块中得到补丁特征,对其进行多阶段匹配。

Description

一种基于数据流分析的软件补丁检测方法及装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种基于数据流分析的软件补丁检测方法及装置。
背景技术
随着IoT的快速发展以及开源软件在IoT设备中的广泛应用,大量存在漏洞的设备暴露在互联网环境中。据Gartner发布的报告,预计至2020年全球范围内将有200亿物联网设备。虽然开源软件会定期发布漏洞补丁,然而由于缺乏有效的软件更新机制及补丁管理机制,大量漏洞仍然未被修补,比如2014年爆出的Heartbleed漏洞导致2亿多个安卓设备存在被攻击的风险,虽然OpenSSL及时发布了针对该漏洞的补丁,截至2017年仍然有超过20万个设备中的漏洞未被修补。因此无论对于安全研究人员还是企业软件产品的维护人员,高效准确的补丁检测工具成为亟需。然而由于软件产品的快速迭代以及产品发布平台的差异化导致补丁检测非常难以实现。
当前的补丁检测方法包括:提取二进制代码的控制流并进行嵌入学习,继而将学得的特征向量利用分类器进行判别分析,该类方法虽然检测效率比较高,检测精度却存在极大限制。另一类方法采用基于符号执行结合数据流分析的方法对二进制代码中的补丁进行检测,然而该类方法效率极其低下,无法应用到大规模的软件产品检测任务中。这些使得现有补丁检测工具的效率和准确率受到了限制。
高效准确的自动化补丁检测工具在物联网设备安全防护中具有极其重要的作用,然而目前已有的工作和装置在检测效率和准确度上还远远满足不了实际应用的需求。所以基于现有技术中软件补丁检测装置存在的问题和挑战,需要一种新的解决方案解决上述问题。
发明内容
为解决上述技术问题,本发明提供了一种基于数据流分析的软件补丁检测方法及装置。
一种基于数据流分析的软件补丁检测方法,包括:
步骤一:利用Extractor对补丁代码进行解析,按序选择检测所述补丁代码中赋值语句和条件语句、函数调用语句、类型相关语句、其它类型语句的修改语义做为待检测补丁的特征;建立二进制代码与源码之间的映射关系;
步骤二:选择VEX-IR作为物联网环境中的设备固件的二进制代码提升的中间代码,使用开源的Angr对二进制代码进行分析,提取出控制流,其中,所述控制流以函数为单位,每个所述函数为包含节点为基本块,程序跳转为边的所述控制流;
对所述基本块内的数据流进行分析,对所述基本块的代码进行反向逐条分析,提取每个语句中变量的使用链;
对跨基本块的数据流进行分析,将分布于不同所述基本块内的数据流连接构成完整的数据信息;
对提取出的数据流进行优化;
从所述基本块中按序选择ITL语句、赋值语句以及所述基本块内的最后一条指令,对三者中包含的多个变量分别进行细粒度数据提取,得到补丁特征;
步骤三:对所述补丁特征进行多阶段匹配。
进一步,步骤一中建立二进制与源码之间映射关系的过程为:提取源码中修改点为粒度的补丁信息;将所述源码应用待检测补丁,使用-g3选项对源码进行编译得到二进制代码;通过二进制分析工具建立二进制代码与所述补丁信息之间的对应关系。
进一步,步骤二中所述开源的Angr包括控制流构建接口CFGFast。
进一步,步骤二中所述基本块包括所述基本块所使用的的所有变量信息,包含的指令,基本块跳出方式,其中,所述指令包括原始指令及翻译后的中间代码。
进一步,步骤二中所述跨基本块的数据流分析依赖所述基本块内数据流分析提供的到达-定值信息,其中,所述到达-定值信息包括,流入流出该基本块的变量信息。
进一步,步骤二中所述数据流进行优化通过对提取出的数据流进行进一步的复制传播分析、死代码删除以及变量重命名。
进一步,步骤三中所述补丁特征多阶段匹配的方法为:
首先对待检测的目标二进制代码进行中间代码提升,然后检测其中是否包含补丁特征所在的函数;
然后对匹配到的函数构建控制流结构,并进行控制流结构进行初步的快速匹配,该步骤主要对控制流的入度,初度,跳转类型等进行匹配;
对于上一步匹配到的候选基本块结构进行进一步的细粒度数据流分析,根据前述步骤提取出的跟根令特征在候选基本块进行进一步的筛选;
分别对每一个匹配的根指令提取数据流片段,分别与提取出的补丁特征进行匹配,该匹配主要包括:输入变量,输出变量,及中间代码操作符及操作数类型等。
本发明还提供了一种技术方案,这种技术方案为:
一种基于数据流分析的软件补丁检测装置,包括:
选择单元,用于利用Extractor对补丁代码进行解析,按序选择检测所述补丁代码中赋值语句和条件语句、函数调用语句、类型相关语句、其它类型语句的修改语义作为待检测补丁的特征,建立二进制代码与源码之间的映射关系;
分析单元,选择VEX-IR作为物联网环境中的设备固件的二进制代码提升的中间代码,使用开源的Angr对二进制代码进行分析,提取出控制流,对基本块内的数据流以及跨基本块的数据流进行分析;
处理单元,对提取出的数据流进行优化;从所述基本块中按序选择ITL语句、赋值语句以及所述基本块内的最后一条指令,对三者中包含的多个变量分别进行细粒度数据流提取,得到补丁特征;对所述补丁特征进行多阶段匹配。
进一步,所述分析单元提取出的控制流以函数为单位,每个所述函数为包含节点为基本块,程序跳转为边的所述控制流。
本发明一种基于数据流分析的软件补丁检测方法及装置,本发明针对当前软件补丁检测装置存在的问题与挑战,提高补丁检测工具的检测效率和准确度。本发明提出一种基于细粒度数据流分析的软件补丁检测方法及装置。该方法具有以下特点:本发明针对物联网设备平台架构差异化的特点首先将二进制代码提升至一种平台无关的中间代码形式,从而消除平台差异造成的补丁难以识别的难题;本发明在中间代码上进行多趟优化算法,消除了不同编译器及优化级别带来的代码语法差异;本发明在优化后的中间代码上施行两阶段的检测策略,首先进行快速的代码语义结构筛选,继而对细粒度的补丁语义进行检测,实现效率与精度的综合提升;本发明提出的方法相比传统的二进制代码相似度比较以及最近的基于符号执行的补丁检测,可以在保持精度的前提下,效率提升近10倍。
附图说明
图1为本发明中总体流程示意图;
图2为本发明实施例中基本块内数据流分析流程示意图;
图3为本发明实施例中数据流优化算法示意图;
图4为本发明实施例中数据流特征提取算法;
图5为本发明软件补丁检测装置的示意图。
具体实施方式
为了能够更加详尽地了解本发明实施例的特点与技术内容,下面结合附图对本发明实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本发明实施例。
为清楚地说明本发明的设计思想,下面结合实施例对本发明进行说明。
实施例一
图1为本发明实施例的基于数据流分析的软件补丁检测方法的流程图,如图1所示,一种基于数据流分析的软件补丁检测方法,包括:
步骤一:利用Extractor对补丁代码进行解析,按序选择检测所述补丁代码中赋值语句和条件语句、函数调用语句、类型相关语句、其它类型语句的修改语义做为待检测补丁的特征;建立二进制代码与源码之间的映射关系;
步骤二:选择VEX-IR作为物联网环境中的设备的平台的二进制代码提升的中间代码,使用开源的Angr对二进制代码进行分析,提取出控制流,其中,所述控制流以函数为单位,每个所述函数包含一个节点为基本块;
对所述基本块内的数据流进行分析,对所述基本块的代码进行反向逐条分析,提取每个语句中变量的使用链;对跨基本块的数据流进行分析;
对提取出的数据流进行优化;
从所述基本块中按序选择ITL语句、赋值语句以及所述基本块内的最后一条指令,对三者中包含的多个变量分别进行细粒度数据提取,得到补丁特征;
步骤三:对所述补丁特征进行多阶段匹配。
如图1所示,在本实施例中,由于现有技术中补丁代码通常包含多处修改,经过统计分析,以OpenSSL为例,官方发布的补丁包含:赋值操作、宏定义、条件语句、类型相关、函数调用等修改类型,其中条件语句和赋值操作频率远高于其他类型的修改,结合语义,通常这两类操作涉及边界条件判断等易触发漏洞的代码语义。另一方面,补丁通常同时包含代码的添加和删除,通常分别对应漏洞代码的删除和修补代码的新增,基于此本发明仅检测新增代码的检测。
单一补丁代码也通常包含多处修改,不同的修改类型检测难度差异极大,比如宏定义的修改涉及代码在预处理阶段的分析,本发明并非对补丁文件中包含的所有修改点都进行检测,而是重点分析检测其中的条件语句及赋值语句修改。这是因为其他类型的修改通常仅为实际修补代码提供帮助,而条件语句及赋值语句与漏洞修补直接相关,检测该类型的修改对于补丁检测具有充分的置信度。基于此本发明提出了一种启发式的补丁代码语义选择策略,首先选择补丁中的赋值语句与条件语句,然后是函数调用语句,类型相关语句,最后是其他类型的修改语义。
在进行二进制-源码映射关系建立的过程中,对于补丁源码,自动提取出修改点为粒度的补丁信息,具体包括:该修改点所处的文件,修改点涉及的源码范围等。
然后将源码应用待检测补丁,并使用-g3选项对源码进行编译得到二进制代码(-g3选项可以最大限度的保留编译信息),然后通过objdump及addr2line等二进制分析工具建立二进制代码与上一步提取的补丁信息之间的对应关系。
接下来进行补丁语义分析及特征提取,由于物联网环境中的设备包含不同的平台架构,其上运行的固件代码也语法各异,编译器设计中的中间代码(IR)可以消除掉指令集,内存及寄存器访问的语法差异,另一方面本发明需要同时利用源码信息及二进制代码进行分析,而中间代码处于这两种信息的中间形式,可以同时向上向下兼容。目前主流的中间代码形式包括:VEX-IR,LLVM-IR及BIL等。由于VEX-IR支持的平台最为广泛,本发明选择VEX-IR作为二进制代码提升的中间代码。
在这一步骤中,包括四个子任务:
1、控制流构建
本发明使用开源的Angr对二进制代码进行分析,本发明从该工具提供的两种控制流构建接口中采用效率较高的CFGFast,具有较高的提取效率及精度。
提取出的控制流以函数为单位,即每个函数分别包含一个节点为基本块,边为基本块之间的到达关系的网络结构。每个基本块内包含该基本块所使用的的所有变量信息,包含的指令(原始指令及翻译后的中间代码),基本块跳出方式等。
2、数据流分析
对基本块内数据流进行分析时,由于每个基本块对应函数内连续执行的一段代码,然而通常该段代码同时包含补丁代码及不相关代码,为了精确捕捉补丁带来的代码语义变化,本发明对每个基本块进行进一步的数据流分析,该分析通过对基本块的代码进行反向逐条分析,提取每个语句中变量的使用链,该使用链通常对应补丁代码中对某个变量的相关代码操作。具体的流程如图2所示。
进行跨基本块数据流分析时,由于补丁相关的代码语义变化通常跨越多个基本块,比如包含条件跳转语句的代码至少横跨两个基本块,因此在基本块数据流分析的基础上还需跨基本块的数据流分析。该分析依赖于基本块内数据流分析提供的到达-定值信息,即流入流出该基本块的变量信息,通过控制流提供的基本块间跳转关系即可将分布于不同基本块内的数据流片段连接从而构成完整的数据信息。
3、数据流优化
控制流构建完成后,从基本块内提取出的数据流信息仍然存在冗余,经过分析,VEX-IR中包含较多的拷贝复制冗余指令,基本块内该类型冗余指令比重约为12%,因此本发明对提取出的完整数据流进行进一步的复制传播分析,死代码删除及变量重命名三趟优化算法。其中,该优化算法流程如图3所示。
4、数据流特征提取
基本块内通常包含多个细粒度数据流片段,因此需要确定哪些数据流片段与上述步骤中确定的补丁修改语义对应,本发明通过根指令的选取确定该对应关系,由于源代码通常与中间代码存在一对多的映射关系,一行源代码往往被翻译成多行二进制代码,继而被提升成多行中间代码,因此首先需要一种策略从对应的多行中间代码中选取最具代表性的进行数据流特征比对,本发明提出一种启发式的策略进行该工作,优先选择基本块中的ITL语句,其次为赋值语句,再其次为基本块内的最后一条指令。根指令选取之后,再对其中包含的多个变量分别进行细粒度数据提取,提取出的数据流即为补丁特征。具体的算法流程如图4所示。
经过上述步骤提取出补丁特征后,本发明提出一种多阶段的匹配策略,补丁特征多阶段匹配的方法为:
首先对待检测的目标二进制代码进行中间代码提升,然后检测其中是否包含补丁特征所在的函数;
然后对匹配到的函数构建控制流结构,并进行控制流结构进行初步的快速匹配,该步骤主要对控制流的入度,初度,跳转类型等进行匹配;
对于上一步匹配到的候选基本块结构进行进一步的细粒度数据流分析,根据前述步骤提取出的根指令特征在候选基本块进行进一步的筛选;
分别对每一个匹配的根指令提取数据流片段,分别与提取出的补丁特征进行匹配,该匹配主要包括:输入变量,输出变量,及中间代码操作符及操作数类型等。
上述示例中,本发明针对当前软件补丁检测装置存在的问题与挑战,提高补丁检测工具的检测效率和准确度。本发明提出一种基于细粒度数据流分析的软件补丁检测方法及装置。该方法具有以下特点:本发明针对物联网设备平台架构差异化的特点首先将二进制代码提升至一种平台无关的中间代码形式,从而消除平台差异造成的补丁难以识别的难题;本发明在中间代码上进行多趟优化算法,消除了不同编译器及优化级别带来的代码语法差异;本发明在优化后的中间代码上施行两阶段的检测策略,首先进行快速的代码语义结构筛选,继而对细粒度的补丁语义进行检测,实现效率与精度的综合提升;本发明提出的方法相比传统的二进制代码相似度比较以及最近的基于符号执行的补丁检测,可以在保持精度的前提下,效率提升近10倍。
实施例二
如图5所示,一种基于数据流分析的软件补丁检测装置,包括:
选择单元,用于利用Extractor对补丁代码进行解析,按序选择检测所述补丁代码中赋值语句和条件语句、函数调用语句、类型相关语句、其它类型语句的修改语义作为待检测补丁的特征,建立二进制代码与源码之间的映射关系;
分析单元,选择VEX-IR作为物联网环境中的设备固件的二进制代码提升的中间代码,利用Optimizer使用开源的Angr对二进制代码进行分析,提取出控制流,对基本块内的数据流以及跨基本块的数据流进行分析;
处理单元,对提取出的数据流进行优化;从所述基本块中按序选择ITL语句、赋值语句以及所述基本块内的最后一条指令,对三者中包含的多个变量分别进行细粒度数据流提取,得到补丁特征;利用Matcher对所述补丁特征进行多阶段匹配。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。

Claims (9)

1.一种基于数据流分析的软件补丁检测方法,其特征在于,所示方法包括:
步骤一:利用Extractor对补丁代码进行解析 ,按序选择检测所述补丁代码中赋值语句和条件语句、函数调用语句、类型相关语句、其它类型语句的修改语义作为待检测补丁的特征;建立二进制代码与源码之间的映射关系;
步骤二:选择VEX-IR作为物联网环境中的设备固件的二进制代码提升的中间代码,使用开源的Angr对二进制代码进行分析,提取出控制流,其中,所述控制流以函数为单位,每个所述函数为包含节点为基本块,程序跳转为边的所述控制流;
对所述基本块内的数据流进行分析,对所述基本块的代码进行反向逐条分析,提取每个语句中变量的使用链;
对跨基本块的数据流进行分析,将分布于不同所述基本块内的数据流连接构成完整的数据信息;
对提取出的数据流进行优化;
从所述基本块中按序选择ITL语句、赋值语句以及所述基本块内的最后一条指令,对三者中包含的多个变量分别进行细粒度数据流提取,得到补丁特征;
步骤三:对所述补丁特征进行多阶段匹配。
2.根据权利要求1所述的基于数据流分析的软件补丁检测方法,其特征在于,步骤一中建立二进制与源码之间映射关系的过程为:提取源码中修改点为粒度的补丁信息;将所述源码应用待检测补丁,使用-g3选项对源码进行编译得到二进制代码;通过二进制分析工具建立二进制代码与所述补丁信息之间的对应关系。
3.根据权利要求1所述的基于数据流分析的软件补丁检测方法,其特征在于,步骤二中所述开源的Angr包括控制流构建接口CFGFast。
4.根据权利要求1所述的基于数据流分析的软件补丁检测方法,其特征在于,步骤二中所述基本块包括所述基本块所使用的所有变量信息,包含的指令,基本块跳出方式,其中,所述指令包括原始指令及翻译后的中间代码。
5.根据权利要求1所述的基于数据流分析的软件补丁检测方法,其特征在于,步骤二中所述跨基本块的数据流分析依赖所述基本块内数据流分析提供的到达-定值信息,其中,所述到达-定值信息包括,流入流出该基本块的变量信息。
6.根据权利要求1所述的基于数据流分析的软件补丁检测方法,其特征在于,
步骤二中所述数据流进行优化通过对提取出的数据流进行进一步的复制传播分析、死代码删除以及变量重命名。
7.根据权利要求1所述的基于数据流分析的软件补丁检测方法,其特征在于,步骤三中所述补丁特征多阶段匹配的方法为:
首先对待检测的目标二进制代码进行中间代码提升,然后检测其中是否包含补丁特征所在的函数;
然后对匹配到的函数构建控制流结构,并进行控制流结构进行初步的快速匹配,该步骤主要对控制流的入度,初度,跳转类型等进行匹配;
对于上一步匹配到的候选基本块结构进行进一步的细粒度数据流分析,根据前述步骤提取出的根指令特征在候选基本块进行进一步的筛选;
分别对每一个匹配的根指令提取数据流片段,分别与提取出的补丁特征进行匹配,该匹配主要包括:输入变量,输出变量,及中间代码操作符及操作数类型等。
8.一种基于数据流分析的软件补丁检测装置,其特征在于,所述软件补丁检测装置包括:
选择单元,用于利用Extractor对补丁代码进行解析,按序选择检测所述补丁代码中赋值语句和条件语句、函数调用语句、类型相关语句、其它类型语句的修改语义作为待检测补丁的特征,建立二进制代码与源码之间的映射关系;
分析单元,选择VEX-IR作为物联网环境中的设备固件的二进制代码提升的中间代码,利用Optimizer使用开源的Angr对二进制代码进行分析,提取出控制流,对基本块内的数据流以及跨基本块的数据流进行分析;
处理单元,对提取出的数据流进行优化;从所述基本块中按序选择ITL语句、赋值语句以及所述基本块内的最后一条指令,对三者中包含的多个变量分别进行细粒度数据流提取,得到补丁特征;利用Matcher对所述补丁特征进行多阶段匹配。
9.根据权利要求8所述的基于数据流分析的软件补丁检测装置,其特征在于,所述分析单元提取出的控制流以函数为单位,每个所述函数为包含节点为基本块,程序跳转为边的所述控制流。
CN201911395906.7A 2019-12-30 2019-12-30 一种基于数据流分析的软件补丁检测方法及装置 Active CN111177733B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911395906.7A CN111177733B (zh) 2019-12-30 2019-12-30 一种基于数据流分析的软件补丁检测方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911395906.7A CN111177733B (zh) 2019-12-30 2019-12-30 一种基于数据流分析的软件补丁检测方法及装置

Publications (2)

Publication Number Publication Date
CN111177733A true CN111177733A (zh) 2020-05-19
CN111177733B CN111177733B (zh) 2022-06-21

Family

ID=70655922

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911395906.7A Active CN111177733B (zh) 2019-12-30 2019-12-30 一种基于数据流分析的软件补丁检测方法及装置

Country Status (1)

Country Link
CN (1) CN111177733B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111752586A (zh) * 2020-06-23 2020-10-09 上海交通大学 跨架构的嵌入式设备固件未修补漏洞检测方法及系统
CN111967012A (zh) * 2020-07-13 2020-11-20 复旦大学 一种针对c/c++代码漏洞补丁的摘要生成方法
CN112199684A (zh) * 2020-09-21 2021-01-08 复旦大学 基于跨语言代码关联的Java补丁存在性检测方法
CN113553056A (zh) * 2021-07-21 2021-10-26 浙江大学 基于图匹配的llvm中间语言差分分析方法及系统
CN113778852A (zh) * 2021-06-04 2021-12-10 南方科技大学 一种基于正则表达式的代码分析方法
CN114610606A (zh) * 2022-02-25 2022-06-10 中国人民解放军国防科技大学 基于到达-定值分析的二进制模块相似性匹配方法及装置
CN116483289A (zh) * 2023-06-21 2023-07-25 荣耀终端有限公司 基本块管理方法及电子设备

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105787367A (zh) * 2016-02-23 2016-07-20 华中科技大学 一种软件更新的补丁安全性检测方法及系统
CN106548076A (zh) * 2015-09-23 2017-03-29 百度在线网络技术(北京)有限公司 检测应用漏洞代码的方法和装置
US9792443B1 (en) * 2015-03-12 2017-10-17 Whitehat Security, Inc. Position analysis of source code vulnerabilities
CN107357566A (zh) * 2017-06-06 2017-11-17 上海交通大学 多架构二进制相似代码检测系统及方法
CN109359468A (zh) * 2018-08-23 2019-02-19 阿里巴巴集团控股有限公司 漏洞检测方法、装置及设备
CN110287702A (zh) * 2019-05-29 2019-09-27 清华大学 一种二进制漏洞克隆检测方法及装置
CN110442517A (zh) * 2019-07-18 2019-11-12 暨南大学 一种自动程序修复中获取安全补丁的方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9792443B1 (en) * 2015-03-12 2017-10-17 Whitehat Security, Inc. Position analysis of source code vulnerabilities
CN106548076A (zh) * 2015-09-23 2017-03-29 百度在线网络技术(北京)有限公司 检测应用漏洞代码的方法和装置
CN105787367A (zh) * 2016-02-23 2016-07-20 华中科技大学 一种软件更新的补丁安全性检测方法及系统
CN107357566A (zh) * 2017-06-06 2017-11-17 上海交通大学 多架构二进制相似代码检测系统及方法
CN109359468A (zh) * 2018-08-23 2019-02-19 阿里巴巴集团控股有限公司 漏洞检测方法、装置及设备
CN110287702A (zh) * 2019-05-29 2019-09-27 清华大学 一种二进制漏洞克隆检测方法及装置
CN110442517A (zh) * 2019-07-18 2019-11-12 暨南大学 一种自动程序修复中获取安全补丁的方法

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111752586A (zh) * 2020-06-23 2020-10-09 上海交通大学 跨架构的嵌入式设备固件未修补漏洞检测方法及系统
CN111752586B (zh) * 2020-06-23 2024-04-02 上海交通大学 跨架构的嵌入式设备固件未修补漏洞检测方法及系统
CN111967012A (zh) * 2020-07-13 2020-11-20 复旦大学 一种针对c/c++代码漏洞补丁的摘要生成方法
CN111967012B (zh) * 2020-07-13 2024-03-08 复旦大学 一种针对c/c++代码漏洞补丁的摘要生成方法
CN112199684A (zh) * 2020-09-21 2021-01-08 复旦大学 基于跨语言代码关联的Java补丁存在性检测方法
CN113778852B (zh) * 2021-06-04 2023-07-28 南方科技大学 一种基于正则表达式的代码分析方法
CN113778852A (zh) * 2021-06-04 2021-12-10 南方科技大学 一种基于正则表达式的代码分析方法
CN113553056A (zh) * 2021-07-21 2021-10-26 浙江大学 基于图匹配的llvm中间语言差分分析方法及系统
CN113553056B (zh) * 2021-07-21 2024-05-14 浙江大学 基于图匹配的llvm中间语言差分分析方法及系统
CN114610606B (zh) * 2022-02-25 2023-03-03 中国人民解放军国防科技大学 基于到达-定值分析的二进制模块相似性匹配方法及装置
CN114610606A (zh) * 2022-02-25 2022-06-10 中国人民解放军国防科技大学 基于到达-定值分析的二进制模块相似性匹配方法及装置
CN116483289A (zh) * 2023-06-21 2023-07-25 荣耀终端有限公司 基本块管理方法及电子设备
CN116483289B (zh) * 2023-06-21 2024-04-05 荣耀终端有限公司 基本块管理方法及电子设备

Also Published As

Publication number Publication date
CN111177733B (zh) 2022-06-21

Similar Documents

Publication Publication Date Title
CN111177733B (zh) 一种基于数据流分析的软件补丁检测方法及装置
CN112733137B (zh) 一种面向漏洞检测的二进制代码相似性分析方法
CN111125716B (zh) 一种以太坊智能合约漏洞检测方法及装置
US10558805B2 (en) Method for detecting malware within a linux platform
Tian et al. BVDetector: A program slice-based binary code vulnerability intelligent detection system
US20120233601A1 (en) Recompiling with Generic to Specific Replacement
CN109460641B (zh) 一种针对二进制文件的漏洞定位发掘系统和方法
CN110134215B (zh) 数据处理方法、装置、电子设备及可读存储介质
CN113010209A (zh) 一种抗编译差异的二进制代码相似性比较技术
CN109857648B (zh) 一种api误用的变更模式挖掘方法
CN112148602B (zh) 一种基于历史优化特征智能学习的源代码安全分析方法
CN111752586B (zh) 跨架构的嵌入式设备固件未修补漏洞检测方法及系统
CN109241737B (zh) 一种面向多种补丁模式的差异分支识别方法及系统
US20090019431A1 (en) Optimised compilation method during conditional branching
CN114942879A (zh) 一种基于图神经网络的源代码漏洞检测与定位方法
US8117604B2 (en) Architecture cloning for power PC processors
CN110780879A (zh) 一种基于智能编译技术的决策执行方法、装置、设备及介质
CN116627490A (zh) 一种智能合约字节码相似性检测方法
CN106919403B (zh) 云环境下基于Java字节码的多粒度代码克隆检测方法
CN116484947B (zh) 算子的自动生成方法、装置、设备及介质
US20150363177A1 (en) Multi-branch determination syntax optimization apparatus
CN115878498A (zh) 一种基于机器学习预测程序行为的关键字节提取方法
CN116032654A (zh) 一种固件漏洞检测及数据安全治理方法和系统
CN108334756A (zh) 一种对递归下降式分析器反编译的干扰方法及装置
CN115408700A (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