CN115033895A - 一种二进制程序供应链安全检测方法及装置 - Google Patents

一种二进制程序供应链安全检测方法及装置 Download PDF

Info

Publication number
CN115033895A
CN115033895A CN202210964422.5A CN202210964422A CN115033895A CN 115033895 A CN115033895 A CN 115033895A CN 202210964422 A CN202210964422 A CN 202210964422A CN 115033895 A CN115033895 A CN 115033895A
Authority
CN
China
Prior art keywords
binary
function
vulnerability
vector
feature
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
CN202210964422.5A
Other languages
English (en)
Other versions
CN115033895B (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.)
CETC 30 Research Institute
Original Assignee
CETC 30 Research Institute
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 CETC 30 Research Institute filed Critical CETC 30 Research Institute
Priority to CN202210964422.5A priority Critical patent/CN115033895B/zh
Publication of CN115033895A publication Critical patent/CN115033895A/zh
Application granted granted Critical
Publication of CN115033895B publication Critical patent/CN115033895B/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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Virology (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种二进制程序供应链安全检测方法及装置,属于网络安全领域,包括步骤:S1,信息采集与预处理:采集漏洞源代码,构建带有漏洞标注的二进制程序集合;S2,从步骤S1中获取的二进制程序集合中提取二进制函数,将二进制函数表征为向量形式,通过构建二进制细粒度特征提取模型,得到漏洞的二进制函数缺陷向量库;S3,利用所述二进制细粒度特征提取模型和所述漏洞的二进制函数缺陷向量库,进行二进制程序缺陷检索识别分析。本发明建立了漏洞的二进制函数向量特征库,实现了高效的二进制程序细粒度的缺陷检测,显著提升了缺陷检测精度。

Description

一种二进制程序供应链安全检测方法及装置
技术领域
本发明涉及网络安全领域,更为具体的,涉及一种二进制程序供应链安全检测方法及装置。
背景技术
随着各种开源软件在不同领域的广泛应用,软件代码的体积与复杂度都迅猛增加。根据著名咨询机构Forrester调研结果,近些年开发的软件约80-90%的代码来自于开源软件或者基于开源软件修改而来。复杂的软件供应链会引入一系列的安全问题,某个开源组件或某行代码内的一个缺陷就能引起整个软件系统的崩溃或数据泄露。当下针对软件供应链的攻击事件频发,例如近年来爆发的开源组件openssl心脏滴血漏洞、log4j2远程代码执行漏洞。软件供应链安全直接关系到信息系统基础设施的安全,它已成为网络安全领域的热点问题。特别是针对闭源软件(即只提供二进程程序,不提供源代码的软件)供应链安全,更是成为了工业界和学术界关注的焦点。
目前在二进制程序供应链检测方面核心问题是如何高效检出二进制程序包含的漏洞,现有的方法是通过软件成分分析从文件层面,以及文件与文件之间的关联关系以及彼此组合依赖关系,分析出二进制程序组件依赖关系,提取对应的组件信息与漏洞库中的组件进行比对,实现对已知漏洞组件的检测,该方法具有适应范围广、检测效率高的优点,然而由于该方法是基于软件组件粒度,对于那些引用了部分开源代码或者基于某个组件修改后的二进制程序就无能为力,无法实现二进制函数级别细粒度的缺陷检测。
发明内容
本发明的目的在于克服现有技术的不足,提供一种二进制程序供应链安全检测方法及装置,建立了漏洞的二进制函数向量特征库,实现了高效的二进制程序细粒度的缺陷检测,显著提升了缺陷检测的精度等。
本发明的目的是通过以下方案实现的:
一种二进制程序供应链安全检测方法,包括以下步骤:
S1,信息采集与预处理:采集漏洞源代码,构建带有漏洞标注的二进制程序集合;
S2,从步骤S1中获取的二进制程序集合中提取二进制函数,将二进制函数表征为向量形式,通过构建二进制细粒度特征提取模型,得到漏洞的二进制函数缺陷向量库;
S3,利用所述二进制细粒度特征提取模型和所述漏洞的二进制函数缺陷向量库,进行二进制程序缺陷检索识别分析。
进一步地,在步骤S2中,包括如下子步骤:
S21,构建适合二进制函数相似性检测的数据集:从二进制程序提取函数粒度的汇编代码,按照源代码函数所在的文件路径、函数名称两个准则,将同一份源代码函数对应的不同编译条件下二进制函数的配对作为训练集的正样本,负样本则是从剩下的未配对的样本随机抽取配对,从而构建二进制相似函数的正反样例数据集;
S22,构建含有特征融合网络和相似性判别网络的相似性判别深度神经网络,并将相似性判别网络的倒数第二层作为特征表示层向量,得到二进制细粒度特征提取模型;
S23,在特征融合网络利用字符串、立即数和函数片段三类特征,使用嵌入方式将其表示为向量形式来训练所述二进制细粒度特征提取模型;
S24,将步骤S1中带有漏洞标注的二进制程序输入到训练好的二进制细粒度特征提取模型获得二进制函数缺陷特征向量,并将获得的二进制函数缺陷特征向量存储到数据库,再基于漏洞编号建立二进制函数向量的索引,得到所述漏洞的二进制函数缺陷向量库。
进一步地,在步骤S3中,包括子步骤:利用存储在二进制函数缺陷向量库中的二进制函数缺陷向量,并通过余弦距离检索待测的特征向量,判断待测特征向量集是否超过设定的阈值比对结果,然后输出分析结果、漏洞编号以及该漏洞描述与防护建议。
进一步地,在步骤S1中,所述采集漏洞源代码包括通过采集服务定期从互联网漏洞信息披露网站采集漏洞信息。
进一步地,在步骤S22中,所述特征融合网络包括输入层、第一隐含层和第二隐含层,输入层与第一隐含层连接,第一隐含层与第二隐含层连接。
进一步地,在步骤S22中,所述相似性判别网络包括融合层、特征表示层和输出层,融合层与特征表示层连接,特征表示层与输出层连接。
进一步地,在步骤S23中,在训练过程中采用交叉熵损失函数。
进一步地,在步骤S23中,所述字符串包括常量字符。
进一步地,在步骤S23中,所述嵌入方式包括word2vec嵌入方法。
一种二进制程序供应链安全检测装置,包括程序指令运行单元和程序指令存储单元,当程序指令由程序指令运行单元加载运行时执行如上任一所述的二进制程序供应链安全检测方法。
本发明的有益效果包括:
本发明挖掘了互联网广泛存在的漏洞信息,建立了漏洞的二进制函数向量特征库,实现了高效的二进制程序细粒度的缺陷检测,提出了基于融合特征的深度神经二进制函数表征模型,大大提升了缺陷检测的精度。
本发明充分利用了互联网漏洞信息和现有项目代码,实现了漏洞的源代码函数、二进制函数的自动化提取,建立了漏洞的二进制函数级的向量特征库,为大规模的二进制程序安全性分析提供核心信息支撑。
本发明利用了基于融合特征的深度神经二进制函数表征模型,融合了二进制函数的多维度特征,生成的特征向量更具有代表性,提升了缺陷检测的效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例的一种部署方案示意图;
图2为本发明实施例中信息采集与预处理的流程示意图;
图3为本发明实施例中训练特征提取模型的流程图;
图4为本发明实施例中二进制细粒度特征提取模型网络的结构图;
图5为本发明实施例中二进制程序缺陷识别的流程示意图。
具体实施方式
本说明书中所有实施例公开的所有特征,或隐含公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合和/或扩展、替换。
近年来人工智能技术的飞速发展,基于机器学习的软件缺陷检测展现出了广阔的应用前景。因此,在解决背景中问题的过程中,本发明的发明人通过创造性的思考,提出一种二进制程序供应链安全检测方法及装置,能够从海量的漏洞信息中自动抽取出漏洞代码函数片断,进而构建出不同架构二进制程序函数级别的缺陷特征库,通过融合二进制程序的多维度特征来提升缺陷检测的精度。该方法具有较强的鲁棒性和较高的检测效率,可以用于二进制程序函数级别细粒度缺陷检测,对实现二进制程序供应链安全的自动化检测具有非常重要的意义。
在具体实施例中,针对二进制程序供应链安全高效自动检测的技术问题提出的解决方案,至少解决如下技术问题:
1)如何从互联网自动化的获取包含漏洞的源代码,二进制程序代码,解决人工提取效率低、人力成本高的问题。
2)如何实现二进制程序函数的特征提取,构建多维度的漏洞二进制函数的特征库,解决二进制程序细粒度的缺陷检测。
3)如何组织和索引二进制函数的特征向量,实现高效的向量距离检索,提高缺陷检测效率,解决无法规模化分析的问题。
在具体实施方式中,本发明实施例的技术构思如下:二进制程序供应链安全检测的目标是在对使用者上传的二进制程序文件,能够快速提取该程序的多维度特征,从中筛选出是否具备漏洞的二进制特征,并能够给出阻断或修复该缺陷的建议。本发明实施例的技术方案用于二进制程序函数级别细粒度缺陷检测,其中在方法实施例中,主要分为三个大步骤:一、信息采集与预处理,采集漏洞源代码构建带有漏洞标注的二进制程序集合;二、二进制程序细粒度特征提取,将二进制函数表征为向量形式构建漏洞的二进制函数缺陷向量库;三、二进制程序缺陷识别,实现规模化的二进制缺陷检索分析。
其中在装置实施例中,主要包括防火墙、二进制安全检测服务器、二进制函数提取器、二进制函数特征生成器、缺陷特征向量数据库、漏洞信息采集和漏洞源代码获取器,它们通过组网接入到网络构成完整的基于二进制程序供应链安全检测系统。需要说明的是,本发明实施例实现的工作原理与具体的部署方式无关,因此这里仅采用了图1给出的一种部署方案示意说明,以便于说明本发明实施例的工作原理。
在如图1所示的部署方案中,终端用户通过请求二进制安全检测服务接口上传待检测的二进制,通过防火墙规则过滤掉无效或者未授权的访问;然后调用二进制安全检测服务返回检测结果,通过二进制函数特征生成器来生成二进制函数粒度的特征向量,与缺陷特征向量数据库存储的特征向量比对,返回超过距离阈值的向量所对应的缺陷类别。
如图2所示,在信息采集与预处理流程中,包括如下子步骤:
信息采集是从互联网漏洞信息披露网站采集漏洞信息,并对采集到的信息进行预处理和关键字段的提取。通过采集服务定期采集互联网各个漏洞发布平台的漏洞信息,从中提取出漏洞的编号、类别、外链等信息,并根据上述信息进一步获取漏洞详细信息包括:项目地址、漏洞修补前后的代码提交ID编号(commit Id)。具体步骤如下:
1)从互联网漏洞发布平台,例如:cvedetails等国内外所有的漏洞库,采集已经披露的漏洞信息,提取漏洞编号、漏洞描述、漏洞类别、通用平台枚举、参考外链等结构化信息;
2)从参考外链信息正则匹配github、sourceforge、code.google等常用的代码发布平台,提取该漏洞项目的下载地址和漏洞修补前后代码提交ID编号;
3)使用现有工具git下载漏洞所属的项目,例如:git clone 项目地址,然后使用git工具比较漏洞修补前后代码,得到了带有漏洞的函数片段。通过git diff 修补前ID 修补后ID。
4)建立源代码函数片段与二进制片段的映射关系,使用修改过的LLVM编译器作为源代码关联到二进制程序标注器,在LLVM编译的IR(中间语言)阶段插入漏洞代码函数的标签信息。
5)在多个交叉编译环境、不同的编译优化策略下编译漏洞项目,例如:arm、mips、X86交叉编译环境,O1、O2、O3等编译优化策略。输出多个架构、多个优化策略生成的带有漏洞标注的二进制程序。
如图3所示,在二进制程序细粒度特征提取流程中,包括如下子步骤:
二进制程序细粒度特征提取是实现二进制供应链安全检测的关键,从信息采集与预处理步骤中获取的二进制程序提取二进制函数,构建适合二进制函数相似性检测的数据集,然后训练一个相似性判别模型,将模型的倒数第二层作为特征表示层向量,最后是将带有漏洞标注二进制函数输入到训练好的模型获得特征向量,并将该特征向量存储到特征库。
首先是数据集的构建方法,利用现有反汇编软件radare2从二进制程序提取函数粒度的汇编代码,按照源代码函数所在的文件路径、函数名称两个准则,将同一份源代码函数对应的不同编译条件下二进制函数的配对作为训练集的正样本,负样本是从剩下的未配对的样本随机抽取配对,从而构建二进制相似函数的正反样例数据集。
然后是二进制细粒度特征提取模型的模型训练流程,如图4所示,二进制细粒度特 征提取模型网络结构使用的深度学习模型包含分为了两部分组成:特征融合网络和相似性 判别网络。在特征融合网络利用了字符串(特指常量字符)、立即数、函数片段三类特征,具 体实施例中使用word2vec嵌入方法将其表示为向量形式,接下来定义
Figure 810939DEST_PATH_IMAGE001
表示3种特征 融合网络,
Figure 956750DEST_PATH_IMAGE002
是特征融合网络的每一层,
Figure 925843DEST_PATH_IMAGE003
是特征融合网络的输入向量:字符串特征 向量,立即数特征向量,函数片段特征向量;然后用
Figure 2252DEST_PATH_IMAGE004
代表输入到
Figure 5980DEST_PATH_IMAGE005
层的向量,
Figure 525955DEST_PATH_IMAGE006
是超参 数默认设置为0.5,
Figure 716765DEST_PATH_IMAGE007
Figure 596865DEST_PATH_IMAGE005
层的输出,
Figure 189520DEST_PATH_IMAGE008
表示
Figure 411554DEST_PATH_IMAGE005
层的权重,
Figure 276611DEST_PATH_IMAGE009
Figure 445555DEST_PATH_IMAGE005
层的偏移量,神经 网络的激活函数
Figure 79668DEST_PATH_IMAGE010
采用的是变种的线性整流函数(Leaky ReLU),可以解决当输入接近零或 为负时,函数的梯度变为零的问题。那么特征融合网络向前传递公式为:
Figure 800499DEST_PATH_IMAGE011
接下来定义
Figure 106846DEST_PATH_IMAGE012
是相似性判别网络的每一层,
Figure 204115DEST_PATH_IMAGE013
代表输入到
Figure 161576DEST_PATH_IMAGE014
层的 向量,
Figure 53309DEST_PATH_IMAGE015
Figure 846952DEST_PATH_IMAGE016
层的输出,
Figure 482333DEST_PATH_IMAGE017
表示
Figure 28721DEST_PATH_IMAGE018
层的权重,
Figure 29038DEST_PATH_IMAGE019
Figure 372294DEST_PATH_IMAGE018
层的偏移量,神经网络的激活函 数
Figure 4176DEST_PATH_IMAGE010
同样采用的是变种的线性整流函数,
Figure 546016DEST_PATH_IMAGE020
是相似性判别网络的输出函数,由于是二分类 问题,采用Sigmoid函数作为输出。那么相似性判别网络向前传递公式为:
Figure 654917DEST_PATH_IMAGE021
融合特征的深度神经网络倒数第二层是二进制函数特征表示层,为了后期向量检索通常可以设置为256维或者512维。训练过程中采用的是交叉熵损失函数:
Figure 282208DEST_PATH_IMAGE022
最后,将信息采集与预处理步骤中带有漏洞标注二进制函数输入到训练好的模型获得特征向量,并将该特征向量存入到向量检索数据库,并基于漏洞编号建立二进制函数向量的索引。本实施例选用的是现有向量检索数据库Milvus ,该向量数据库适用于向量查询与检索设计,能够为万亿级向量数据建立索引,向量型数据库具有距离检索速度快、数据存储冗余低等优点,适合大规模的二进制程序供应链安全检测。
在二进制程序缺陷识别流程中,如图5所示,二进制程序缺陷识别是用户上传的待检测软件,识别其中的漏洞二进制函数片段,给出供应链安全的检测结果与缓解建议。图5给出了检测方法的流程示意图,具体步骤如下:
1)用户通过二进制安全检测服务接口请求上传检测的软件,通过反汇编工具提取 函数级的反汇编片段
Figure 915183DEST_PATH_IMAGE023
2)将反汇编片段
Figure 311530DEST_PATH_IMAGE023
输入到特征提取模型,得到一组二进制程序的函数 特征向量
Figure 591332DEST_PATH_IMAGE024
,然后将表征二进制程序的特征向量存储到向量型数据库,作为待 测特征向量集;
3)使用存储在向量型数据库中的二进制函数缺陷向量,通过余弦距离检索待测的 特征向量
Figure 705919DEST_PATH_IMAGE024
,输出距离最接近的向量
Figure 611427DEST_PATH_IMAGE025
,以及对应的余弦距离
Figure 127859DEST_PATH_IMAGE026
4)最后,根据余弦距离
Figure 640880DEST_PATH_IMAGE026
是否超过设定的阈值比对结果,输出分析结 果、漏洞编号以及该漏洞描述与防护建议。
本发明实施例挖掘了互联网广泛存在的漏洞信息,建立了漏洞的二进制函数向量特征库,实现了高效的二进制程序细粒度的缺陷检测,基于融合特征的深度神经二进制函数表征模型,大大提升了缺陷检测的精度。相比现有方法,主要具备以下有益效果和优点:
1)充分利用了互联网漏洞信息和现有项目代码,实现了漏洞的源代码函数、二进制函数的自动化提取,建立了漏洞的二进制函数级的向量特征库,为大规模的二进制程序安全性分析提供核心信息支撑。
2)采用基于融合特征的深度神经二进制函数表征模型,融合了二进制函数的多维度特征,生成的特征向量更具有代表性,提升了缺陷检测的效果。
实施例1
一种二进制程序供应链安全检测方法,包括以下步骤:
S1,信息采集与预处理:采集漏洞源代码,构建带有漏洞标注的二进制程序集合;
S2,从步骤S1中获取的二进制程序集合中提取二进制函数,将二进制函数表征为向量形式,通过构建二进制细粒度特征提取模型,得到漏洞的二进制函数缺陷向量库;
S3,利用所述二进制细粒度特征提取模型和所述漏洞的二进制函数缺陷向量库,进行二进制程序缺陷检索识别分析。
实施例2
在实施例1的基础上,在步骤S2中,包括如下子步骤:
S21,构建适合二进制函数相似性检测的数据集:从二进制程序提取函数粒度的汇编代码,按照源代码函数所在的文件路径、函数名称两个准则,将同一份源代码函数对应的不同编译条件下二进制函数的配对作为训练集的正样本,负样本则是从剩下的未配对的样本随机抽取配对,从而构建二进制相似函数的正反样例数据集;
S22,构建含有特征融合网络和相似性判别网络的相似性判别深度神经网络,并将相似性判别网络的倒数第二层作为特征表示层向量,得到二进制细粒度特征提取模型;
S23,在特征融合网络利用字符串、立即数和函数片段三类特征,使用嵌入方式将其表示为向量形式来训练所述二进制细粒度特征提取模型;
S24,将步骤S1中带有漏洞标注的二进制程序输入到训练好的二进制细粒度特征提取模型获得二进制函数缺陷特征向量,并将获得的二进制函数缺陷特征向量存储到数据库,再基于漏洞编号建立二进制函数向量的索引,得到所述漏洞的二进制函数缺陷向量库。
实施例3
在实施例1的基础上,在步骤S3中,包括子步骤:利用存储在二进制函数缺陷向量库中的二进制函数缺陷向量,并通过余弦距离检索待测的特征向量,判断待测特征向量集是否超过设定的阈值比对结果,然后输出分析结果、漏洞编号以及该漏洞描述与防护建议。
实施例4
在实施例1的基础上,在步骤S1中,所述采集漏洞源代码包括通过采集服务定期从互联网漏洞信息披露网站采集漏洞信息。
实施例5
在实施例2的基础上,在步骤S22中,所述特征融合网络包括输入层、第一隐含层和第二隐含层,输入层与第一隐含层连接,第一隐含层与第二隐含层连接。
实施例6
在实施例2的基础上,在步骤S22中,所述相似性判别网络包括融合层、特征表示层和输出层,融合层与特征表示层连接,特征表示层与输出层连接。
实施例7
在实施例2的基础上,在步骤S23中,在训练过程中采用交叉熵损失函数。
实施例8
在实施例2的基础上,在步骤S23中,所述字符串包括常量字符。
实施例9
在实施例2的基础上,在步骤S23中,所述嵌入方式包括word2vec嵌入方法。
实施例10
一种二进制程序供应链安全检测装置,包括程序指令运行单元和程序指令存储单元,当程序指令由程序指令运行单元加载运行时执行如实施例1~实施例9任一所述的二进制程序供应链安全检测方法
描述于本发明实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选实现方式中提供的方法。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现上述实施例中所述的方法。
本发明未涉及部分均与现有技术相同或可采用现有技术加以实现。
上述技术方案只是本发明的一种实施方式,对于本领域内的技术人员而言,在本发明公开了应用方法和原理的基础上,很容易做出各种类型的改进或变形,而不仅限于本发明上述具体实施方式所描述的方法,因此前面描述的方式只是优选的,而并不具有限制性的意义。
除以上实例以外,本领域技术人员根据上述公开内容获得启示或利用相关领域的知识或技术进行改动获得其他实施例,各个实施例的特征可以互换或替换,本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。

Claims (10)

1.一种二进制程序供应链安全检测方法,其特征在于,包括以下步骤:
S1,信息采集与预处理:采集漏洞源代码,构建带有漏洞标注的二进制程序集合;
S2,从步骤S1中获取的二进制程序集合中提取二进制函数,将二进制函数表征为向量形式,通过构建二进制细粒度特征提取模型,得到漏洞的二进制函数缺陷向量库;
S3,利用所述二进制细粒度特征提取模型和所述漏洞的二进制函数缺陷向量库,进行二进制程序缺陷检索识别分析。
2.根据权利要求1所述的二进制程序供应链安全检测方法,其特征在于,在步骤S2中,包括如下子步骤:
S21,构建适合二进制函数相似性检测的数据集:从二进制程序提取函数粒度的汇编代码,按照源代码函数所在的文件路径、函数名称两个准则,将同一份源代码函数对应的不同编译条件下二进制函数的配对作为训练集的正样本,负样本则是从剩下的未配对的样本随机抽取配对,从而构建二进制相似函数的正反样例数据集;
S22,构建含有特征融合网络和相似性判别网络的相似性判别深度神经网络,并将相似性判别网络的倒数第二层作为特征表示层向量,得到二进制细粒度特征提取模型;
S23,在特征融合网络利用字符串、立即数和函数片段三类特征,使用嵌入方式将其表示为向量形式来训练所述二进制细粒度特征提取模型;
S24,将步骤S1中带有漏洞标注的二进制程序输入到训练好的二进制细粒度特征提取模型获得二进制函数缺陷特征向量,并将获得的二进制函数缺陷特征向量存储到数据库,再基于漏洞编号建立二进制函数向量的索引,得到所述漏洞的二进制函数缺陷向量库。
3.根据权利要求1所述的二进制程序供应链安全检测方法,其特征在于,在步骤S3中,包括子步骤:利用存储在二进制函数缺陷向量库中的二进制函数缺陷向量,并通过余弦距离检索待测的特征向量,判断待测特征向量集是否超过设定的阈值比对结果,然后输出分析结果、漏洞编号以及该漏洞描述与防护建议。
4.根据权利要求1所述的二进制程序供应链安全检测方法,其特征在于,在步骤S1中,所述采集漏洞源代码包括通过采集服务定期从互联网漏洞信息披露网站采集漏洞信息。
5.根据权利要求2所述的二进制程序供应链安全检测方法,其特征在于,在步骤S22中,所述特征融合网络包括输入层、第一隐含层和第二隐含层,输入层与第一隐含层连接,第一隐含层与第二隐含层连接。
6.根据权利要求2所述的二进制程序供应链安全检测方法,其特征在于,在步骤S22中,所述相似性判别网络包括融合层、特征表示层和输出层,融合层与特征表示层连接,特征表示层与输出层连接。
7.根据权利要求2所述的二进制程序供应链安全检测方法,其特征在于,在步骤S23中,在训练过程中采用交叉熵损失函数。
8.根据权利要求2所述的二进制程序供应链安全检测方法,其特征在于,在步骤S23中,所述字符串包括常量字符。
9.根据权利要求2所述的二进制程序供应链安全检测方法,其特征在于,在步骤S23中,所述嵌入方式包括word2vec嵌入方法。
10.一种二进制程序供应链安全检测装置,其特征在于,包括程序指令运行单元和程序指令存储单元,当程序指令由程序指令运行单元加载运行时执行如权利要求1~9任一所述的二进制程序供应链安全检测方法。
CN202210964422.5A 2022-08-12 2022-08-12 一种二进制程序供应链安全检测方法及装置 Active CN115033895B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210964422.5A CN115033895B (zh) 2022-08-12 2022-08-12 一种二进制程序供应链安全检测方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210964422.5A CN115033895B (zh) 2022-08-12 2022-08-12 一种二进制程序供应链安全检测方法及装置

Publications (2)

Publication Number Publication Date
CN115033895A true CN115033895A (zh) 2022-09-09
CN115033895B CN115033895B (zh) 2022-12-09

Family

ID=83130571

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210964422.5A Active CN115033895B (zh) 2022-08-12 2022-08-12 一种二进制程序供应链安全检测方法及装置

Country Status (1)

Country Link
CN (1) CN115033895B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115563627A (zh) * 2022-12-06 2023-01-03 中国电子科技集团公司第三十研究所 一种基于人机协同的二进制程序漏洞静态分析方法
CN115795489A (zh) * 2023-02-09 2023-03-14 中国电子科技集团公司第三十研究所 一种基于硬件级进程跟踪的软件漏洞静态分析方法及装置

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160259943A1 (en) * 2015-03-05 2016-09-08 Fujitsu Limited Autonomous reasoning system for vulnerability analysis
CN108718310A (zh) * 2018-05-18 2018-10-30 安徽继远软件有限公司 基于深度学习的多层次攻击特征提取及恶意行为识别方法
CN109117635A (zh) * 2018-09-06 2019-01-01 腾讯科技(深圳)有限公司 应用程序的病毒检测方法、装置、计算机设备及存储介质
CN109657473A (zh) * 2018-11-12 2019-04-19 华中科技大学 一种基于深度特征的细粒度漏洞检测方法
CN110619213A (zh) * 2018-06-20 2019-12-27 深信服科技股份有限公司 基于多模型特征的恶意软件识别方法、系统及相关装置
CN111639344A (zh) * 2020-07-31 2020-09-08 中国人民解放军国防科技大学 一种基于神经网络的漏洞检测方法及装置
CN112163226A (zh) * 2020-11-30 2021-01-01 中国人民解放军国防科技大学 基于图自动编码器的二进制相似性检测方法
CN112733137A (zh) * 2020-12-24 2021-04-30 哈尔滨工业大学 一种面向漏洞检测的二进制代码相似性分析方法
CN113468525A (zh) * 2021-05-24 2021-10-01 中国科学院信息工程研究所 针对二进制程序的相似漏洞检测方法及装置
CN113536308A (zh) * 2021-06-11 2021-10-22 中国人民解放军战略支援部队信息工程大学 软件基因视角下多粒度信息融合的二进制代码溯源方法
US20220019659A1 (en) * 2019-05-20 2022-01-20 Sentinel Labs Israel Ltd. Systems and methods for executable code detection, automatic feature extraction and position independent code detection
CN114077741A (zh) * 2021-11-01 2022-02-22 清华大学 软件供应链安全检测方法和装置、电子设备及存储介质
CN114626071A (zh) * 2022-03-21 2022-06-14 中国人民解放军国防科技大学 一种漏洞导向的模糊测试方法、系统和介质

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160259943A1 (en) * 2015-03-05 2016-09-08 Fujitsu Limited Autonomous reasoning system for vulnerability analysis
CN108718310A (zh) * 2018-05-18 2018-10-30 安徽继远软件有限公司 基于深度学习的多层次攻击特征提取及恶意行为识别方法
CN110619213A (zh) * 2018-06-20 2019-12-27 深信服科技股份有限公司 基于多模型特征的恶意软件识别方法、系统及相关装置
CN109117635A (zh) * 2018-09-06 2019-01-01 腾讯科技(深圳)有限公司 应用程序的病毒检测方法、装置、计算机设备及存储介质
WO2020048392A1 (zh) * 2018-09-06 2020-03-12 腾讯科技(深圳)有限公司 应用程序的病毒检测方法、装置、计算机设备及存储介质
CN109657473A (zh) * 2018-11-12 2019-04-19 华中科技大学 一种基于深度特征的细粒度漏洞检测方法
US20220019659A1 (en) * 2019-05-20 2022-01-20 Sentinel Labs Israel Ltd. Systems and methods for executable code detection, automatic feature extraction and position independent code detection
CN111639344A (zh) * 2020-07-31 2020-09-08 中国人民解放军国防科技大学 一种基于神经网络的漏洞检测方法及装置
CN112163226A (zh) * 2020-11-30 2021-01-01 中国人民解放军国防科技大学 基于图自动编码器的二进制相似性检测方法
CN112733137A (zh) * 2020-12-24 2021-04-30 哈尔滨工业大学 一种面向漏洞检测的二进制代码相似性分析方法
CN113468525A (zh) * 2021-05-24 2021-10-01 中国科学院信息工程研究所 针对二进制程序的相似漏洞检测方法及装置
CN113536308A (zh) * 2021-06-11 2021-10-22 中国人民解放军战略支援部队信息工程大学 软件基因视角下多粒度信息融合的二进制代码溯源方法
CN114077741A (zh) * 2021-11-01 2022-02-22 清华大学 软件供应链安全检测方法和装置、电子设备及存储介质
CN114626071A (zh) * 2022-03-21 2022-06-14 中国人民解放军国防科技大学 一种漏洞导向的模糊测试方法、系统和介质

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
ZIYANG LI 等: "Feature Extraction Method for Cross-Architecture Binary Vulnerability Detection", 《2021 IEEE 10TH GLOBAL CONFERENCE ON CONSUMER ELECTRONICS (GCCE)》 *
程蕾蓉: "面向漏洞检测的二进制代码相似性分析技术", 《万方数据库》 *
陈斌 等: "基于神经机器翻译的二进制函数相似性检测方法", 《信息工程大学学报》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115563627A (zh) * 2022-12-06 2023-01-03 中国电子科技集团公司第三十研究所 一种基于人机协同的二进制程序漏洞静态分析方法
CN115563627B (zh) * 2022-12-06 2023-03-14 中国电子科技集团公司第三十研究所 一种基于人机协同的二进制程序漏洞静态分析方法
CN115795489A (zh) * 2023-02-09 2023-03-14 中国电子科技集团公司第三十研究所 一种基于硬件级进程跟踪的软件漏洞静态分析方法及装置

Also Published As

Publication number Publication date
CN115033895B (zh) 2022-12-09

Similar Documents

Publication Publication Date Title
CN111639344B (zh) 一种基于神经网络的漏洞检测方法及装置
CN115033895B (zh) 一种二进制程序供应链安全检测方法及装置
CN108446540B (zh) 基于源代码多标签图神经网络的程序代码抄袭类型检测方法与系统
CN107967208B (zh) 一种基于深度神经网络的Python资源敏感缺陷代码检测方法
CN106537333A (zh) 用于软件产物的数据库的系统和方法
CN112307473A (zh) 一种基于Bi-LSTM网络和注意力机制的恶意JavaScript代码检测模型
CN113656805B (zh) 一种面向多源漏洞信息的事件图谱自动构建方法及系统
CN114297654A (zh) 一种源代码层级的智能合约漏洞检测方法及系统
CN113127339B (zh) 一种Github开源平台数据的获取方法及源代码缺陷修复系统
CN108229170B (zh) 利用大数据和神经网络的软件分析方法和装置
CN112733156A (zh) 基于代码属性图的软件脆弱性智能检测方法、系统及介质
CN113190849A (zh) Webshell脚本检测方法、装置、电子设备及存储介质
CN113297580B (zh) 基于代码语义分析的电力信息系统安全防护方法及装置
CN109740347A (zh) 一种针对智能设备固件的脆弱哈希函数的识别与破解方法
CN116032654B (zh) 一种固件漏洞检测及数据安全治理方法和系统
CN117454387A (zh) 基于多维度的特征提取的漏洞代码检测方法
CN110989991B (zh) 检测应用程序中源代码克隆开源软件的方法及系统
CN116578980A (zh) 基于神经网络的代码分析方法及其装置、电子设备
CN112115326A (zh) 一种以太坊智能合约的多标签分类和漏洞检测方法
CN116644430A (zh) 一种基于语法相似性分析的固件漏洞判定及定位方法
CN116467720A (zh) 一种基于图神经网络的智能合约漏洞检测方法及电子设备
CN115438341A (zh) 提取代码循环计数器的方法、装置、存储介质和电子设备
CN117390130A (zh) 一种基于多模态表示的代码搜索方法
CN115587358A (zh) 一种二进制代码相似性检测方法、装置及存储介质
CN111562943B (zh) 一种基于事件嵌入树及gat网络的代码克隆检测方法和装置

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