CN113254934A - 基于图匹配网络的二进制代码相似性检测方法及系统 - Google Patents

基于图匹配网络的二进制代码相似性检测方法及系统 Download PDF

Info

Publication number
CN113254934A
CN113254934A CN202110722400.3A CN202110722400A CN113254934A CN 113254934 A CN113254934 A CN 113254934A CN 202110722400 A CN202110722400 A CN 202110722400A CN 113254934 A CN113254934 A CN 113254934A
Authority
CN
China
Prior art keywords
control flow
program
icfg
inter
flow graph
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
CN202110722400.3A
Other languages
English (en)
Other versions
CN113254934B (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.)
Hunan University
Original Assignee
Hunan 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 Hunan University filed Critical Hunan University
Priority to CN202110722400.3A priority Critical patent/CN113254934B/zh
Publication of CN113254934A publication Critical patent/CN113254934A/zh
Application granted granted Critical
Publication of CN113254934B publication Critical patent/CN113254934B/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/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/563Static detection by source code analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/75Structural analysis for program understanding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (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

本发明公开了一种基于图匹配网络的二进制代码相似性检测方法及系统,本发明方法包括获取待测程序对,对其中的待测程序反汇编获取过程间控制流图ICFG及其指令;分别针对待测程序的过程间控制流图ICFG获取其中基本块的初始特征嵌入;通过图匹配神经网络得到待测程序对的过程间控制流图ICFG的最终嵌入h G1h G2;在向量空间中计算待测程序对的过程间控制流图ICFG的最终嵌入h G1h G2之间相似性作为待测程序对的相似性检测结果。本发明通过图匹配神经网络得到待测程序对的过程间控制流图ICFG的最终嵌入能够获取丰富的语义表征,从而能够有效地提高检测精确率,对于基于二进制的代码安全分析有重要的基础性作用。

Description

基于图匹配网络的二进制代码相似性检测方法及系统
技术领域
本发明属于物联网安全领域,具体涉及一种基于图匹配网络的二进制代码相似性检测方法及系统。
背景技术
二进制代码的相似性检测在关系国计民生的诸多计算机系统安全方面有着重要的应用如:漏洞检测、软件剽窃检测、恶意软件检测、代码重构等。随着物联网在智能制造领域的快速应用,现代的军用装置设备、大型科研装置、民用电力、交通、石油化工、制造等行业的稳定运行越来越依赖于信息化的控制系统,其面临的恶意代码与漏洞等问题已经成为信息系统安全的重要挑战。特别是源代码级别的单个错误可能会散布在数百个或更多不同硬件体系结构和软件平台的设备上。近年来的研究结果表明,市场上80.4%发行的固件具有多个已知漏洞,这些漏洞已经存在了八年之久。在物联网等大多数应用场景中,程序的源代码一般难以获得。因此,程序二进制代码相似性分析对于解决计算机系统安全面临的诸多挑战有着极为重要的基础性作用,是提升国家信息安全的迫切需求。
由于现有软件体系的复杂性,目前针对二进制代码的相似性检测研究尚处于起步阶段,且大多基于静态分析方法开展研究,静态分析方法存在覆盖率低、难以发现执行过程错误、运行安全结果无法预测等问题。动态分析方法无上述问题,具有能够发现程序执行过程中的安全隐患、容易辨析隐患触发条件等优点,但动态分析方法存在代码结构难以获知、程序难以被动态跟踪等问题。利用图表示学习技术,将代码语义与结构等信息嵌入向量进行相似性检测,可以较好解决传统二进制代码分析方法面临的准确性差、代码覆盖范围不完整以及时间效率低(避免了高耗时的图匹配算法或动态执行)等问题。
尽管基于图表示学习的二进制代码相似性检测具有诸多优点,但是还存在三个主要局限性:1)词汇表征问题。现有的指令级嵌入,无论采用人工特征提取还是基于自然语言处理的预训练方式,通常将整个指令或指令的部分(操作码、操作数)视为一个单词进行处理,忽略了词汇不足(OOV)的问题,导致指令级别的数据嵌入非常接近原点并缺乏数据流混淆鲁棒性;2)伸缩性问题;3)现有的方法不能满足大粒度程序级别的比较需求。因此,如何有效解决二进制代码相似性检测的上述问题,已经成为一项亟待解决的关键技术问题,且对于基于二进制的代码安全分析有重要的基础性的作用。
发明内容
本发明要解决的技术问题:针对现有技术的上述问题,提供一种基于图匹配网络的二进制代码相似性检测方法及系统,本发明通过图匹配神经网络得到待测程序对的过程间控制流图ICFG的最终嵌入能够获取丰富的语义表征,从而能够有效地提高检测精确率,对于基于二进制的代码安全分析有重要的基础性作用。
为了解决上述技术问题,本发明采用的技术方案为:
一种基于图匹配网络的二进制代码相似性检测方法,包括:
1)获取待测程序对;
2)针对待测程序对中的待测程序进行反汇编,并获取过程间控制流图ICFG及其指令;
3)分别针对待测程序的过程间控制流图ICFG获取其中基本块的初始特征嵌入;
4)通过图匹配神经网络得到待测程序对的过程间控制流图ICFG的最终嵌入h G1h G2
5)在向量空间中计算待测程序对的过程间控制流图ICFG的最终嵌入h G1h G2之间相似性作为待测程序对的相似性检测结果。
可选地,步骤2)包括:针对待测程序对中的待测程序进行反汇编得到每一个待测程序的每个函数的控制流图CFG及每个函数的指令集,所述控制流图CFG中的节点是多条指令构成的基本块,边为执行流,然后将控制流图CFG按照函数调用关系合并得到待测程序的过程间控制流图ICFG,所述过程间控制流图ICFG将调用边从调用语句连到被调用方法的入口处,从调用方法的出口处连接到调用语句之后执行的下一条语句。
可选地,步骤3)包括:
3.1)对过程间控制流图ICFG中基本块的指令进行规范化;
3.2)将指令中的操作码和相应的规范化后的操作数进行连接,形成单词;
3.3)计算每个指令形成的单词的权重;
3.4)在过程间控制流图ICFG中进行随机游走,形成一系列的指令序列;
3.5)将一个指令序列作为句子、所有的指令序列作为文章,构建用于基本块初始特征嵌入的训练集;
3.6)采用预设的词向量模型,通过使平均对数概率最大化获得指令级的嵌入,其中平均对数概率的函数表达式为:
Figure 827765DEST_PATH_IMAGE001
上式中,J(w)表示平均对数概率,N表示句子中单词的数量,c为上下文的滑动窗口大小,p(w t+j |w t )表示Softmax函数,w t+j 为中心词周围的单词,w t 为中心词,其中:
Figure 377695DEST_PATH_IMAGE002
上式中,P(w k C t w t ) 表示单词的概率分布向量,w k 为词汇表中的单词,C t 为词汇表,v T wt 为词汇表中的单词w t 的输出向量表示,v wk 为词汇表中的单词w k 的输入向量表示,v wi 为词汇表中的单词w i 的输入向量表示;
3.7)基于单词的权重、得到的指令级嵌入计算基本块的初始特征嵌入,且计算函数表达式如下式所示:
Figure DEST_PATH_IMAGE003
上式中,FV b 为基本块的初始特征嵌入,j指基本块中指令的个数,weight wi 为第i个指令w i 的权重,embed wi 为第i个指令w i 的指令级嵌入。
可选地,步骤4)中的图匹配神经网络包括依次相连的编码层、传播层和聚合层,所述编码层为由多层全连接层网络构成且以基本块的初始特征嵌入作为输入,所述传播层用于将编码层的输出进行聚合、计算交叉注意力以及迭代更新节点特征,所述聚合层用于将传播层的输出的节点特征进行聚合得到待测程序对的过程间控制流图ICFG的最终嵌入h G1h G2
可选地,所述编码层的函数表达式为:
Figure 259063DEST_PATH_IMAGE004
上式中,h i (0)为编码层第i个节点输出,x i 为基本块的初始特征嵌入,V为基本块的集合,MLP node 为多层全连接网络。
可选地,所述传播层的函数表达式为:
Figure DEST_PATH_IMAGE005
上式中,h i (t+1)为传播层第i个节点在t+1时刻的输出,h i (t)为传播层第i个节点在t时刻的输出,h j (t)为传播层第j个节点在t时刻的输出,f node 为门控循环神经网络,m i→j 表示第i个节点到第j个节点传播的信息,μ j'→i 表示交叉图注意力,且有:
Figure 448912DEST_PATH_IMAGE006
Figure DEST_PATH_IMAGE007
Figure 99336DEST_PATH_IMAGE008
Figure DEST_PATH_IMAGE009
上式中,E 1为待测程序对中第一个程序的过程间控制流图ICFG中的边,E 2为待测程序对中第二个程序的过程间控制流图ICFG中的边,V 1为待测程序对中第一个程序的过程间控制流图ICFG中基本块,V 2为待测程序对中第二个程序的过程间控制流图ICFG中的基本块,f message 为多层全连接网络,f match 为交叉图注意力函数,a i→j 为第i个节点到第j个节点的注意力,s h 为向量空间相似性指标。
可选地,所述聚合层的函数表达式为:
Figure 23430DEST_PATH_IMAGE010
上式中,h G 表示计算得到的过程间控制流图ICFG的最终嵌入,MLPMLP G 表示多层全连接网络,MLP gate 表示经过多层全连接后执行Sigmoid函数,h i (T)为传播层第i个节点在T时刻的输出,T为传播的次数,
Figure DEST_PATH_IMAGE011
为点乘,σ为求和。
可选地,步骤5)中计算待测程序对的过程间控制流图ICFG的最终嵌入h G1h G2之间相似性具体是指计算待测程序对的过程间控制流图ICFG的最终嵌入h G1h G2之间余弦距离。
此外,本发明还提供一种基于图匹配网络的二进制代码相似性检测系统,包括相互连接的微处理器和存储器,该微处理器被编程或配置以执行所述基于图匹配网络的二进制代码相似性检测方法的步骤。
此外,本发明还提供一种计算机可读存储介质,该计算机可读存储介质中存储有被编程或配置以执行所述基于图匹配网络的二进制代码相似性检测方法的计算机程序。
和现有技术相比,本发明具有下述优点:本发明提出了一种新的自监督代码表示学习技术,该技术能够充分利用代码的语义信息、上下文语义和结构信息来生成高质量的基本块嵌入,本发明把指令中的操作码和其对应的操作数作为预训练词进行嵌入训练,具有更丰富的语义表征;在程序级二进制代码相似性检测方面,把基于交叉图注意力计算相似性的图匹配神经网络用于程序级代码检测,有效地提高检测精确率。因此,本发明通过图匹配神经网络得到待测程序对的过程间控制流图ICFG的最终嵌入能够获取丰富的语义表征,从而能够有效地提高检测精确率,对于基于二进制的代码安全分析有重要的基础性作用。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例方法的基本流程示意图。
图2为本发明实施例中生成基本块的初始特征嵌入的流程图。
图3为本发明实施例中图匹配神经网络的结构示意图。
图4为本发明实施例中图匹配神经网络的处理流程示意图。
具体实施方式
如图1所示,本实施例基于图匹配网络的二进制代码相似性检测方法包括:
1)获取待测程序对;
2)针对待测程序对中的待测程序进行反汇编,并获取过程间控制流图ICFG及其指令;
3)分别针对待测程序的过程间控制流图ICFG获取其中基本块的初始特征嵌入;
4)通过图匹配神经网络得到待测程序对的过程间控制流图ICFG的最终嵌入h G1h G2
5)在向量空间中计算待测程序对的过程间控制流图ICFG的最终嵌入h G1h G2之间相似性作为待测程序对的相似性检测结果。
本实施例中,步骤2)包括:针对待测程序对中的待测程序进行反汇编得到指令,基于反汇编得到每一个待测程序的每个函数的控制流图CFG及每个函数的指令集,所述控制流图CFG中的节点是多条指令构成的基本块,边为执行流,然后将控制流图CFG按照函数调用关系合并得到待测程序的过程间控制流图ICFG,所述过程间控制流图ICFG将调用边从调用语句连到被调用方法的入口处,从调用方法的出口处连接到调用语句之后执行的下一条语句。
如图2所示,本实施例中步骤3)包括:
3.1)对过程间控制流图ICFG中基本块的指令进行规范化;其中,过程间控制流图ICFG中的基本块由一个或多个指令组成,每个指令由一个操作码和相应的操作数组成;进行规范化的内容包括:将所有的数值常量值都用同一字符串替换,例如采用字符串“im”进行替换;所有的通用寄存器根据它们的长度进行重命名;所有的指针采用同一字符串替换,例如采用字符串“ptr”进行替换;
3.2)将指令中的操作码和相应的规范化后的操作数进行连接,形成单词;
3.3)计算每个指令形成的单词的权重,本实施例中具体采用TF-IDF权重;
3.4)在过程间控制流图ICFG中进行随机游走,形成一系列的指令序列;本实施例中在过程间控制流图ICFG中进行随机游走时,以每个基本块为起始基本块进行随机游走,并且每个节点被选为起始基本块的次数至少为2,每个随机游走序列的长度为5个基本块,以保证基本块覆盖的完整性以及随机游走的序列携带足够的控制流信息;
3.5)将一个指令序列作为句子、所有的指令序列作为文章,构建用于基本块初始特征嵌入的训练集;
3.6)采用预设的词向量模型(优选Word2Vec的Skip-Gram模型),通过使平均对数概率最大化获得指令级的嵌入,其中平均对数概率的函数表达式为:
Figure 392094DEST_PATH_IMAGE001
上式中,J(w)表示平均对数概率,N表示句子中单词的数量,c为上下文的滑动窗口大小,p(w t+j |w t )表示Softmax函数,w t+j 为中心词周围的单词,w t 为中心词,其中:
Figure 161467DEST_PATH_IMAGE002
上式中,P(w k C t w t ) 表示单词的概率分布向量,w k 为词汇表中的单词,C t 为词汇表,v T wt 为词汇表中的单词w t 的输出向量表示,v wk 为词汇表中的单词w k 的输入向量表示,v wi 为词汇表中的单词w i 的输入向量表示;
3.7)基于单词的权重、得到的指令级嵌入计算基本块的初始特征嵌入,且计算函数表达式如下式所示:
Figure 728715DEST_PATH_IMAGE003
上式中,FV b 为基本块的初始特征嵌入,j指基本块中指令的个数,weight wi 为第i个指令w i 的权重,embed wi 为第i个指令w i 的指令级嵌入。
如图3所示,本实施例步骤4)中的图匹配神经网络包括依次相连的编码层、传播层和聚合层,所述编码层为由多层全连接层网络构成且以基本块的初始特征嵌入作为输入,所述传播层用于将编码层的输出进行聚合、计算交叉注意力以及迭代更新节点特征,所述聚合层用于将传播层的输出的节点特征进行聚合得到待测程序对的过程间控制流图ICFG的最终嵌入h G1h G2。如图4所示,图匹配神经网络的处理过程如下:
4.1)获取图匹配网络的输入,即:基本块的初始特征嵌入G 1,G 2
4.2)对基本块的初始特征嵌入进行嵌入;
4.3)计算每个节点聚合的消息;
4.4)计算G 1,G 2两个图的交叉注意力;
4.5)使用每个节点聚合的消息、交叉注意力更新节点特征;
4.6)重复4次步骤4.3-4.5;
4.7)根据更新后的节点特征,进行聚合,得到待测程序对的过程间控制流图ICFG的最终嵌入h G1h G2
本实施例中,编码层的函数表达式为:
Figure 292551DEST_PATH_IMAGE004
上式中,h i (0)为编码层第i个节点输出,x i 为基本块的初始特征嵌入,V为基本块的集合,MLP node 为多层全连接网络。
本实施例中,述传播层的函数表达式为:
Figure 945249DEST_PATH_IMAGE005
上式中,h i (t+1)为传播层第i个节点在t+1时刻的输出,h i (t)为传播层第i个节点在t时刻的输出,h j (t)为传播层第j个节点在t时刻的输出,f node 为门控循环神经网络,m i→j 表示第i个节点到第j个节点传播的信息,μ j'→i 表示交叉图注意力,且有:
Figure 518313DEST_PATH_IMAGE006
Figure 674488DEST_PATH_IMAGE007
Figure 438919DEST_PATH_IMAGE008
Figure 251018DEST_PATH_IMAGE009
上式中,E 1为待测程序对中第一个程序的过程间控制流图ICFG中的边,E 2为待测程序对中第二个程序的过程间控制流图ICFG中的边,V 1为待测程序对中第一个程序的过程间控制流图ICFG中基本块,V 2为待测程序对中第二个程序的过程间控制流图ICFG中的基本块,f message 为多层全连接网络,f match 为交叉图注意力函数,a i→j 为第i个节点到第j个节点的注意力,s h 为向量空间相似性指标。
本实施例中,聚合层的函数表达式为:
Figure 690089DEST_PATH_IMAGE010
上式中,h G 表示计算得到的过程间控制流图ICFG的最终嵌入,MLPMLP G 表示多层全连接网络,MLP gate 表示经过多层全连接后执行Sigmoid函数,h i (T)为传播层第i个节点在T时刻的输出,T为传播的次数,
Figure 904033DEST_PATH_IMAGE011
为点乘,σ为求和。
作为一种可选的实施方式,本实施例步骤5)中计算待测程序对的过程间控制流图ICFG的最终嵌入h G1h G2之间相似性具体是指计算待测程序对的过程间控制流图ICFG的最终嵌入h G1h G2之间余弦距离。毫无疑问,此外根据需要采用其他距离作为程序级二进制代码的相似性度量。
此外,本实施例还提供一种基于图匹配网络的二进制代码相似性检测系统,包括相互连接的微处理器和存储器,该微处理器被编程或配置以执前述基于图匹配网络的二进制代码相似性检测方法的步骤。
此外,本实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有被编程或配置以执前述基于图匹配网络的二进制代码相似性检测方法的计算机程序。
基于同一发明构思,以下为与上述方法实施例对应的系统实施例,本实施方式可与上述实施方式互相配合实施。上述实施方式中提到的相关技术细节在本实施方式中依然有效,重复之处不再赘述。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,上述实施例仅仅是本发明的优选实例,并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引伸出的显而易见的变化或变动仍处于本发明创造的保护范围之中。

Claims (10)

1.一种基于图匹配网络的二进制代码相似性检测方法,其特征在于,包括:
1)获取待测程序对;
2)针对待测程序对中的待测程序进行反汇编,并获取过程间控制流图ICFG及其指令;
3)分别针对待测程序的过程间控制流图ICFG获取其中基本块的初始特征嵌入;
4)通过图匹配神经网络得到待测程序对的过程间控制流图ICFG的最终嵌入h G1h G2
5)在向量空间中计算待测程序对的过程间控制流图ICFG的最终嵌入h G1h G2之间相似性作为待测程序对的相似性检测结果。
2.根据权利要求1所述的基于图匹配网络的二进制代码相似性检测方法,其特征在于,步骤2)包括:针对待测程序对中的待测程序进行反汇编得到每一个待测程序的每个函数的控制流图CFG及每个函数的指令集,所述控制流图CFG中的节点是由多条指令构成的基本块,边为执行流,然后将控制流图CFG按照函数调用关系合并得到待测程序的过程间控制流图ICFG,所述过程间控制流图ICFG将调用边从调用语句连到被调用方法的入口处,从调用方法的出口处连接到调用语句之后执行的下一条语句。
3.根据权利要求1所述的基于图匹配网络的二进制代码相似性检测方法,其特征在于,步骤3)包括:
3.1)对过程间控制流图ICFG中基本块的指令进行规范化;
3.2)将指令中的操作码和相应的规范化后的操作数进行连接,形成单词;
3.3)计算每个指令形成的单词的权重;
3.4)在过程间控制流图ICFG中进行随机游走,形成一系列的指令序列;
3.5)将一个指令序列作为句子、所有的指令序列作为文章,构建用于基本块初始特征嵌入的训练集;
3.6)采用预设的词向量模型,通过使平均对数概率最大化获得指令级的嵌入,其中平均对数概率的函数表达式为:
Figure 287543DEST_PATH_IMAGE001
上式中,J(w)表示平均对数概率,N表示句子中单词的数量,c为上下文的滑动窗口大小,p(w t+j |w t )表示Softmax函数,w t+j 为中心词周围的单词,w t 为中心词,其中:
Figure 707023DEST_PATH_IMAGE002
上式中,P(w k C t w t ) 表示单词的概率分布向量,w k 为词汇表中的单词,C t 为词汇表,v T wt 为词汇表中的单词w t 的输出向量表示,v wk 为词汇表中的单词w k 的输入向量表示,v wi 为词汇表中的单词w i 的输入向量表示;
3.7)基于单词的权重、得到的指令级嵌入计算基本块的初始特征嵌入,且计算函数表达式如下式所示:
Figure 323949DEST_PATH_IMAGE003
上式中,FV b 为基本块的初始特征嵌入,j指基本块中指令的个数,weight wi 为第i个指令w i 的权重,embed wi 为第i个指令w i 的指令级嵌入。
4.根据权利要求1所述的基于图匹配网络的二进制代码相似性检测方法,其特征在于,步骤4)中的图匹配神经网络包括依次相连的编码层、传播层和聚合层,所述编码层为由多层全连接层网络构成且以基本块的初始特征嵌入作为输入,所述传播层用于将编码层的输出进行聚合、计算交叉注意力以及迭代更新节点特征,所述聚合层用于将传播层的输出的节点特征进行聚合得到待测程序对的过程间控制流图ICFG的最终嵌入h G1h G2
5.根据权利要求4所述的基于图匹配网络的二进制代码相似性检测方法,其特征在于,所述编码层的函数表达式为:
Figure 646740DEST_PATH_IMAGE004
上式中,h i (0)为编码层第i个节点输出,x i 为基本块的初始特征嵌入,V为基本块的集合,MLP node 为多层全连接网络。
6.根据权利要求4所述的基于图匹配网络的二进制代码相似性检测方法,其特征在于,所述传播层的函数表达式为:
Figure 261392DEST_PATH_IMAGE005
上式中,h i (t+1)为传播层第i个节点在t+1时刻的输出,h i (t)为传播层第i个节点在t时刻的输出,h j (t)为传播层第j个节点在t时刻的输出,f node 为门控循环神经网络,m i→j 表示第i个节点到第j个节点传播的信息,μ j'→i 表示交叉图注意力,且有:
Figure 433747DEST_PATH_IMAGE006
Figure 526468DEST_PATH_IMAGE007
Figure 936721DEST_PATH_IMAGE008
Figure 283126DEST_PATH_IMAGE009
上式中,E 1为待测程序对中第一个程序的过程间控制流图ICFG中的边,E 2为待测程序对中第二个程序的过程间控制流图ICFG中的边,V 1为待测程序对中第一个程序的过程间控制流图ICFG中基本块,V 2为待测程序对中第二个程序的过程间控制流图ICFG中的基本块,f message 为多层全连接网络,f match 为交叉图注意力函数,a i→j 为第i个节点到第j个节点的注意力,s h 为向量空间相似性指标。
7.根据权利要求4所述的基于图匹配网络的二进制代码相似性检测方法,其特征在于,所述聚合层的函数表达式为:
Figure 677198DEST_PATH_IMAGE010
上式中,h G 表示计算得到的过程间控制流图ICFG的最终嵌入,MLPMLP G 表示多层全连接网络,MLP gate 表示经过多层全连接后执行Sigmoid函数,h i (T)为传播层第i个节点在T时刻的输出,T为传播的次数,
Figure 573610DEST_PATH_IMAGE011
为点乘,σ为求和。
8.根据权利要求1所述的基于图匹配网络的二进制代码相似性检测方法,其特征在于,步骤5)中计算待测程序对的过程间控制流图ICFG的最终嵌入h G1h G2之间相似性具体是指计算待测程序对的过程间控制流图ICFG的最终嵌入h G1h G2之间余弦距离。
9.一种基于图匹配网络的二进制代码相似性检测系统,包括相互连接的微处理器和存储器,其特征在于,该微处理器被编程或配置以执行权利要求1~8中任意一项所述基于图匹配网络的二进制代码相似性检测方法的步骤。
10.一种计算机可读存储介质,其特征在于,该计算机可读存储介质中存储有被编程或配置以执行权利要求1~8中任意一项所述基于图匹配网络的二进制代码相似性检测方法的计算机程序。
CN202110722400.3A 2021-06-29 2021-06-29 基于图匹配网络的二进制代码相似性检测方法及系统 Active CN113254934B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110722400.3A CN113254934B (zh) 2021-06-29 2021-06-29 基于图匹配网络的二进制代码相似性检测方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110722400.3A CN113254934B (zh) 2021-06-29 2021-06-29 基于图匹配网络的二进制代码相似性检测方法及系统

Publications (2)

Publication Number Publication Date
CN113254934A true CN113254934A (zh) 2021-08-13
CN113254934B CN113254934B (zh) 2021-09-24

Family

ID=77190070

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110722400.3A Active CN113254934B (zh) 2021-06-29 2021-06-29 基于图匹配网络的二进制代码相似性检测方法及系统

Country Status (1)

Country Link
CN (1) CN113254934B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113918171A (zh) * 2021-10-19 2022-01-11 哈尔滨理工大学 一种新的使用扩展控制流图的反汇编方法
CN113935510A (zh) * 2021-08-24 2022-01-14 深圳大学 一种人群分布预测方法、装置、设备及存储介质
CN114528015A (zh) * 2022-04-24 2022-05-24 湖南泛联新安信息科技有限公司 二进制可执行文件同源分析方法、计算机设备及存储介质
CN115858002A (zh) * 2023-02-06 2023-03-28 湖南大学 基于图对比学习的二进制代码相似性检测方法及系统与存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170293761A1 (en) * 2016-04-06 2017-10-12 Nec Laboratories America, Inc. Extraction and comparison of hybrid program binary features
CN109067800A (zh) * 2018-09-29 2018-12-21 南京明博互联网安全创新研究院有限公司 一种固件漏洞的跨平台关联检测方法
CN110135157A (zh) * 2019-04-04 2019-08-16 国家计算机网络与信息安全管理中心 恶意软件同源性分析方法、系统、电子设备及存储介质
CN111552969A (zh) * 2020-04-21 2020-08-18 中国电力科学研究院有限公司 基于神经网络的嵌入式终端软件代码漏洞检测方法及装置
CN112163226A (zh) * 2020-11-30 2021-01-01 中国人民解放军国防科技大学 基于图自动编码器的二进制相似性检测方法
CN112308210A (zh) * 2020-10-27 2021-02-02 中国人民解放军战略支援部队信息工程大学 基于神经网络的跨架构二进制函数相似性检测方法及系统
CN112733137A (zh) * 2020-12-24 2021-04-30 哈尔滨工业大学 一种面向漏洞检测的二进制代码相似性分析方法
CN113010209A (zh) * 2020-10-19 2021-06-22 四川大学 一种抗编译差异的二进制代码相似性比较技术

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170293761A1 (en) * 2016-04-06 2017-10-12 Nec Laboratories America, Inc. Extraction and comparison of hybrid program binary features
CN109067800A (zh) * 2018-09-29 2018-12-21 南京明博互联网安全创新研究院有限公司 一种固件漏洞的跨平台关联检测方法
CN110135157A (zh) * 2019-04-04 2019-08-16 国家计算机网络与信息安全管理中心 恶意软件同源性分析方法、系统、电子设备及存储介质
CN111552969A (zh) * 2020-04-21 2020-08-18 中国电力科学研究院有限公司 基于神经网络的嵌入式终端软件代码漏洞检测方法及装置
CN113010209A (zh) * 2020-10-19 2021-06-22 四川大学 一种抗编译差异的二进制代码相似性比较技术
CN112308210A (zh) * 2020-10-27 2021-02-02 中国人民解放军战略支援部队信息工程大学 基于神经网络的跨架构二进制函数相似性检测方法及系统
CN112163226A (zh) * 2020-11-30 2021-01-01 中国人民解放军国防科技大学 基于图自动编码器的二进制相似性检测方法
CN112733137A (zh) * 2020-12-24 2021-04-30 哈尔滨工业大学 一种面向漏洞检测的二进制代码相似性分析方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113935510A (zh) * 2021-08-24 2022-01-14 深圳大学 一种人群分布预测方法、装置、设备及存储介质
CN113935510B (zh) * 2021-08-24 2022-05-31 深圳大学 一种人群分布预测方法、装置、设备及存储介质
CN113918171A (zh) * 2021-10-19 2022-01-11 哈尔滨理工大学 一种新的使用扩展控制流图的反汇编方法
CN114528015A (zh) * 2022-04-24 2022-05-24 湖南泛联新安信息科技有限公司 二进制可执行文件同源分析方法、计算机设备及存储介质
CN115858002A (zh) * 2023-02-06 2023-03-28 湖南大学 基于图对比学习的二进制代码相似性检测方法及系统与存储介质
CN115858002B (zh) * 2023-02-06 2023-04-25 湖南大学 基于图对比学习的二进制代码相似性检测方法及系统与存储介质

Also Published As

Publication number Publication date
CN113254934B (zh) 2021-09-24

Similar Documents

Publication Publication Date Title
CN113254934B (zh) 基于图匹配网络的二进制代码相似性检测方法及系统
Wang et al. Bridging pre-trained models and downstream tasks for source code understanding
CN110941716B (zh) 一种基于深度学习的信息安全知识图谱的自动构建方法
Omar et al. Robust natural language processing: Recent advances, challenges, and future directions
Huang et al. JSContana: Malicious JavaScript detection using adaptable context analysis and key feature extraction
CN114065199B (zh) 一种跨平台恶意代码检测方法及系统
CN111400713B (zh) 基于操作码邻接图特征的恶意软件族群分类方法
CN115292520B (zh) 一种面向多源移动应用知识图谱构建方法
Xia et al. Enhancing backdoor attacks with multi-level mmd regularization
Liu et al. Saliency as evidence: Event detection with trigger saliency attribution
Liu et al. Code execution with pre-trained language models
CN112740200B (zh) 用于基于共指消解的端到端深度强化学习的系统和方法
Mao et al. Explainable software vulnerability detection based on attention-based bidirectional recurrent neural networks
CN115455382A (zh) 一种二进制函数代码的语义比对方法及装置
Wu et al. Turn tree into graph: Automatic code review via simplified ast driven graph convolutional network
CN115859302A (zh) 源代码漏洞检测方法、装置、设备及存储介质
CN114676700A (zh) 基于混合多原型的小样本命名实体识别方法
Liu et al. Functions-based CFG embedding for malware homology analysis
Fonseca et al. Model-agnostic approaches to handling noisy labels when training sound event classifiers
Massarelli et al. Function representations for binary similarity
Zhao et al. Suzzer: A vulnerability-guided fuzzer based on deep learning
CN113127933B (zh) 一种基于图匹配网络的智能合约庞氏骗局检测方法及系统
Armengol-Estapé et al. SLaDe: A Portable Small Language Model Decompiler for Optimized Assembly
Gruner et al. Cross-domain evaluation of a deep learning-based type inference system
Wang et al. Know What I don’t Know: Handling Ambiguous and Unknown Questions for Text-to-SQL

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