CN116226852A - 基于多模态信息融合的移动平台恶意软件检测方法及装置 - Google Patents
基于多模态信息融合的移动平台恶意软件检测方法及装置 Download PDFInfo
- Publication number
- CN116226852A CN116226852A CN202310136086.XA CN202310136086A CN116226852A CN 116226852 A CN116226852 A CN 116226852A CN 202310136086 A CN202310136086 A CN 202310136086A CN 116226852 A CN116226852 A CN 116226852A
- Authority
- CN
- China
- Prior art keywords
- function
- graph
- sequence
- extracting
- call
- 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
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Telephone Function (AREA)
Abstract
本发明公开基于多模态信息融合的移动平台恶意软件检测方法及装置,针对待检测的二进制应用程序,提取二进制序列并生成灰度图、接口调用序列、函数调用图和函数控制流图,对应三种模态;进而提取图像特征、调用序列特征、全局图特征;再组成特征集,输入到异类选择网络,输出各模态被攻击概率的向量;使用鲁棒融合网络将各特征和异类选择网络输出的向量进行融合,输出融合结果;再使用多模态信息融合网络将异类选择网络的输出向量与鲁棒融合网络输出的结果进行融合,输出预测向量,通过降维并归一化,得到恶意软件的预测值。本发明能够对抗针对恶意软件检测的单一模态攻击,基于多模态融合,可以有效地提高决策总体结果的准确率。
Description
技术领域
本发明涉及二进制软件的分析技术、多模态特征融合技术、恶意软件检测技术,特别涉及移动平台的恶意软件检测分析方法,提出一种基于多模态信息融合的移动平台恶意软件检测方法及装置。
背景技术
随着移动系统平台和移动应用生态的快速发展,移动端系统的安全风险越来越大,移动应用程序成为了恶意软件攻击的主要目标,随着移动平台的飞速发展,恶意软件的攻击方式也在移动平台上有了新的拓展。在安卓平台上,根据Wang等人(Wang H Y,Liu Z,Liang J Y,et al.Beyond google play:a large-scale comparative study of ChineseAndroid app markets.In:Proceedings og the Internet Measurement Conference(IMC),Boston,2018.293-307.)在Google Play和国内应用市场上共计600万个应用程序的分析中,中国安卓应用市场上约12.3%的应用程序被至少10个恶意软件检测工具报告为恶意程序。此外,中国科学院信息工程研究所的研究团队(Chen K,Wang X Q,Chen Y,Wang P,Lee Y,Wang X F,Ma B,Wang A H,Zhang Y J,Zou W.Following devils footprints:Crossplatform analysis of potentially harmful libraries on Android andiOS.In:Proc.of the 37th IEEE Symp.On Security and Privacy,Ser.(S&P2016).2016.)对iOS应用市场第三方库中的恶意代码进行了研究,发现1.4万个iOS应用中包含23个潜在iOS恶意软件库,共706个变体。Zhou等人(Zhou Y,Jiang X.Dissecting Androidmalware:Characterization and evolution.In:Proc.of the 2012 IEEE Symp.onSecurity and Privacy.IEEE,2012.95-109.)总结了移动终端恶意软件的形态、分类和演化,将恶意软件分为重打包、更新、诱导下载、提权、远程控制等九种恶意软件。
随着机器学习方法的广泛使用,攻击者开始对恶意程序进行修改,在加入了恶意代码的同时不改变对恶意软件的特征描述,使得恶意软件可以绕过基于机器学习算法的检测。Zhao等人(Zhao K F,Zhou H,Zhu Y L,Zhan X,Zhou K,Li J F,Yu L,Yuan W,Luo XP.Structural Attack against Graph Based Android Malware Detection.In Proc.ofthe 2021 ACM SIGSAC Conference on Computer and Communications Security.ACM,New York,NY,USA,3218–3235.)利用结构化攻击,根据程序提取的图结构特征进行节点和边的增删改操作,接近100%的安卓平台恶意软件样本可以在500次操作中逃脱检测。
针对上述问题,研究人员在基于移动平台恶意软件的分析问题基础上,设计了不同的恶意软件检测方法。现有的恶意软件检测方法主要分为静态检测方法和动态检测方法两种,静态检测方法在程序运行前执行检测,其优点是能耗低、风险小,但会受到混淆和加密攻击的影响;动态检测方法在程序运行的过程中执行检测,动态检测对实时性和运行环境要求较高,需要移动设备支持,同时耗时更长,但准确率相较静态检测方法会更高。随着各类检测方法的不断发展,基于机器学习的恶意软件方法逐渐成为研究热点,其在静态检测的基础上,通过提取描述恶意软件的特征,使用固定维度的向量对恶意软件进行表征,然后借助现有的机器学习算法对已知标注的样本进行训练并构建分类器,最终对待测软件进行预测判断。
基于多模态的恶意软件检测方法是基于机器学习检测方法的拓展,将待检测软件不同的模态特征进行融合,提取统一的特征表示,并使用机器学习算法进行分类。传统的多模态融合模型容易受到针对单一模态攻击的影响,尤其是安卓、OpenHarmony等开源移动平台更易受到攻击。针对单一模态的攻击能够对未受攻击的正确模态进行干扰,并导致模型失败,无法满足恶意软件检测的需求。
发明内容
本发明的目的在于针对单一模态的恶意软件攻击,提供一种更加鲁棒的基于多模态信息融合的恶意软件检测方法和装置,能够对抗针对恶意软件检测的单一模态攻击,多模态融合利用多个模态提取出的特征信息进行融合,从而获得比单一模态更好的识别效果。
为实现上述目的,本发明采用以下技术方案:
一种基于多模态信息融合的移动平台恶意软件检测方法,包括以下步骤:
1)针对待检测的二进制应用程序,提取其二进制序列并生成灰度图,提取其接口调用序列,以及提取其函数调用关系并生成函数调用图和函数控制流图,这三种提取结果依次对应灰度图模态、接口调用序列模态和图结构模态;
2)针对灰度图提取图像特征,针对接口调用序列提取调用序列特征,针对函数调用图和函数控制流图提取全局图特征;
3)由图像特征、调用序列特征和全局图特征组成特征集,将该特征集输入到异类选择网络,输出各模态被攻击概率的结果;
4)构建基于融合网络的鲁棒融合网络,使用融合网络将所述图像特征、调用序列特征、全局图特征和异类选择网络输出的向量进行融合,输出融合结果;再使用多模态信息融合网络将异类选择网络输出的向量与鲁棒融合网络输出的结果进行融合,输出预测向量;
5)将预测向量进行降维并归一化,得到恶意软件的预测值。
优选地,步骤1)中提取二进制序列并生成灰度图的步骤包括:
提取二进制应用程序的二进制字节流,并以二进制字节流的大小为标准确定灰度图图像的宽度;
以8位二进制数据为一组,将8位二进制数据的值转换为0-255的灰度值,并以此将二进制字节流转换为以像素为单位的灰度图数据,生成灰度图。
优选地,步骤1)中提取接口调用序列的步骤包括:
对二进制应用程序进行逆向分析,并记录逆向分析结果;
根据逆向分析结果提取其中的指令码序列,保留指令码序列中的接口调用指令,得到接口调用序列;
对于该接口调用序列中的每一个接口调用指令,提取其调用信息,包括接口调用中接口所属的族名称和包名称,以及接口调用的调用内容。
优选地,步骤1)中提取函数调用关系并生成函数调用图和函数控制流图的步骤包括:
提取二进制应用程序的函数调用序列,根据函数调用序列中的函数调用关系生成函数调用图;
确定函数调用图中的每个节点的函数类型是外部函数还是本地函数;若为外部函数,则提取外部函数节点中的函数名称,构成外部函数名称集;若为本地函数,则本地函数节点中包含的指令序列,提取基本块;
根据每个本地函数内的基本块之间的跳转关系生成每个本地函数的函数控制流图。
优选地,步骤2)中针对灰度图提取图像特征的步骤包括:
使用Grad-CAM网络,根据灰度图的梯度信息生成热图;
将生成的热图与灰度图相叠加,生成新热图;
使用亮度阈值对新热图中的每个像素进行处理,提取新热图中突出显示的图像;
记录突出显示的图像像素相对于像素空间的位置,作为图像特征。
优选地,步骤2)中针对接口调用序列提取调用序列特征的步骤包括:
统计接口调用序列的所有接口调用指令中出现的族名称和包名称,生成族名称集合和包名称集合;
根据族名称集合,对于接口调用序列中的每一对相邻的接口调用指令,统计在调用前接口调用指令所属的族之后调用后接口调用指令所属的族的次数,以及在调用前接口调用指令所属的族之后调用其他接口调用指令所属的族的次数;
根据包名称集合,对于接口调用序列中的每一对相邻的接口调用指令,统计在调用前接口调用指令所属的包之后调用后接口调用指令所属的包的次数,以及在调用前接口调用指令所属的包之后调用其他接口调用指令所属的包的次数;
根据族名称集合和包名称集合,以及上述两种统计次数,构建表示接口调用序列的马尔可夫链,该马尔科夫链由状态集和状态转换概率组成,该状态集中的每个状态代表一个族名称或包名称,该状态转换概率是指由一种状态转换到另一种状态的概率;
提取马尔科夫链中出现次数最多的前预设数量的节点,构成筛选后的马尔科夫链,作为调用序列特征。
优选地,步骤2)中针对函数调用图和函数控制流图提取全局图特征的步骤包括:
针对函数调用图包含的全部本地函数,采用多层GraphSAGE模型对每个本地函数内的函数控制流图中的每一个基本块节点生成特征向量,每层GraphSAGE利用自传递函数和消息传递函数从上一层中生成的特征向量和其他邻居节点的特征向量来学习和更新每层的特征向量;经过全部层GraphSAGE模型的处理,得到总特征向量;
采用聚合模型对每个本地函数对应的函数控制流图中所有节点的总特征向量进行最大池化操作,生成图向量;
针对函数调用图包含的全部外部函数,利用独热编码方法生成外部函数名称对应的编码,并映射到向量空间中,得到外部函数的初始化特征向量;
将上述图向量和初始化特征向量输入到GraphSAGE模型的下游编码层,针对函数调用图中的每个节点,使用多层GraphSAGE模型来更新每个节点的特征向量,得到一个新的总特征向量;
采用聚合模型对函数调用图中所有节点的新的总特征向量进行最大池化操作,得到全局图特征。
优选地,步骤3)中将特征集输入到异类选择网络,输出模态被攻击概率的向量的步骤包括:
将特征集输入到异类选择网络中,通过最小化交叉熵损失,输出为若干项的向量,最后一项表示所有模态没有受到攻击的概率,除最后一项的其他项表示每个模态受到攻击的概率。
优选地,步骤4)中使用融合网络基于浅神经网络NN进行融合,包含若干个融合操作,每个融合操作均用于排除某一种受到攻击的模态。
优选地,步骤5)中将预测向量通过多层标准的全连接层,降维到一维;再采用sigmoid激活函数将输出标量值范围限制在[0,1]范围内,最终得到归一化的恶意软件的预测值。
一种采用上述方法的移动平台恶意软件检测装置,包括:
模态生成模块,用于针对待检测的二进制应用程序,提取其二进制序列并生成灰度图,提取其接口调用序列,以及提取其函数调用关系并生成函数调用图和函数控制流图,这三种提取结果依次对应灰度图模态、接口调用序列模态和图结构模态;
特征提取模块,用于针对灰度图提取图像特征,针对接口调用序列提取调用序列特征,针对函数调用图和函数控制流图提取全局图特征;
异类选择模块,用于使用异类选择网络,根据由图像特征、调用序列特征和全局图特征组成特征集,输出各模态被攻击概率的结果;
鲁棒融合模块,用于使用鲁棒融合网络的融合网络将图像特征、调用序列特征、全局图特征和异类选择网络输出的向量进行融合,输出融合结果;并使用多模态信息融合网络将异类选择网络输出的向量与鲁棒融合网络输出的结果进行融合,输出预测向量;
恶意软件预测模块,用于将预测向量进行降维并归一化,得到恶意软件的预测值。
与现有技术相比,本发明的有益效果为:
1)本发明通过多种模态对移动平台应用程序进行表示,使用不同的特征表示方法对移动平台应用程序进行特征表示,有效地捕获了应用程序文件的多方面信息;
2)本发明使用多模态信息融合的恶意软件检测装置,建立能够处理和关联来自多种模态信息的网络和模态融合方法,为模型决策提供更多信息,可以有效地提高决策总体结果的准确率。
附图说明
图1是本发明基于多模态信息融合的移动平台恶意软件检测方法的简要示意图;
图2是本发明基于多模态信息融合的移动平台恶意软件检测方法架构示意图;
图3是提取后的灰度图模态示例图;
图4是提取后的接口调用序列模态示例图;
图5是提取后的函数调用图示例图;
图6是灰度图模态生成和特征提取流程示意图;
图7是接口调用序列模态生成和特征提取流程示意图;
图8是函数调用图和控制流图模态生成和特征提取流程示意图;
图9是基于异类选择网络和鲁棒融合策略的恶意软件预测的流程示意图;
图10是本发明基于多模态信息融合的移动平台恶意软件检测装置结构示意图。
具体实施方式
下面结合附图,通过实施例对本发明做进一步说明,但不以任何方式限制本发明的范围。
本发明提出的一种基于多模态信息融合的移动平台恶意软件检测方法,是以移动平台的二进制程序包为分析对象,包括以下步骤:
1)模态生成。
二进制应用程序p的模态形式化表述为<M1,M2,…,Mk>,其中每一个Mi(i∈[1,k])都表示二进制应用程序的一种模态表示。模态在本发明中表示对二进制应用程序的一种模式呈现方法,可以用于一个独立的任务或一组密切相关的任务。具体地,本发明选择其中的三种模态对二进制应用程序进行表示,将二进制应用程序p具体表示为其中,I代表灰度图模态,基于灰度图;/>代表接口调用序列模态,基于接口调用序列;/>代表图结构模态,基于函数调用图和函数控制流图。
对于一个二进制文件,其最直观的表示是其二进制内容,以二进制数据序列的形式呈现,灰度图模态能够充分地表示二进制数据,并方便对模态进行加工以适应机器学习任务。应用程序通过依次调用不同的函数实现程序功能,接口调用序列模态能够充分地表示应用程序在执行过程中依次调用函数的顺序,通过机器学习中的序列模式,能够找到恶意软件中的函数调用顺序规律,进一步地对二进制应用程序进行恶意软件的预测。函数调用图是接口调用序列的拓展表示,通过更丰富的图结构,在函数调用顺序的基础上,对函数之间的调用关系进行了表示;同时,针对其中能够从二进制应用程序文件中获取到代码的本地函数,使用函数控制流图进一步地进行表示,能够充分地描述应用程序在执行过程中的函数调用关系及分支流程。
1-1)提取二进制应用程序包中的二进制序列,转换为灰度图模态I。
1-1a)读取二进制应用程序p的二进制字节流;以二进制字节流的大小为标准,确定灰度图图像的宽度;标准如下表所示:
表1灰度图宽度与二进制文件大小对照表
文件大小 | <10k | 10-30k | 30-60k | 60-100k | 100-200k | 200-500k | 500-1000k | >1000k |
图像宽度 | 32px | 64px | 128px | 256px | 384px | 512px | 768px | 1024px |
1-1b)以8位二进制数据为一组,舍弃二进制数据尾部不满8位的数据,将8位二进制数据的值转换为0-255的灰度值,并以像素为单位,储存在生成的灰度图Ip中。
1-1c)若生成的像素是当前像素行的最后一个像素,即生成像素的水平位置与图片宽度一致,则将下一个生成的灰度像素保存在当前像素行的下一行;否则,继续执行1-1b)。
1-1d)若生成的像素是当前二进制字节流的最后8位,则判断生成的灰度像素是否为当前像素行的最后一个像素,是则保存当前像素行的数据,否则舍弃当前像素行;最后,将生成的灰度图保存为Ip。
1-2a)使用IDA逆向工具对二进制应用程序包进行逆向分析,将应用程序p的逆向分析结果记录为pr。
1-2c)针对接口调用序列中的每一个接口调用指令Ci(i∈l),提取调用信息,将其形式化表示为<fi,pi,ci>,其中,fi为接口调用中接口所属的族(family)名称,pi为接口调用中接口所属的包(package)名称,ci为接口调用的调用(call)内容,得到接口调用序列模态/>
其中,将二进制应用程序p表示为函数间的函数调用图(步骤1-3a)至步骤1-3d)),将二进制应用程序p中包含的两种不同类型的函数分别使用函数名称(步骤1-3f))和函数内的函数控制流图/>(步骤1-3g)至步骤1-3j))分别表示。
1-3a)根据步骤1-2c)中指令Ci中提取的调用内容ci,分析并将调用内容的调用函数记为被调用者,将执行该调用指令的函数记为调用者。
1-3c)获取函数调用关系:根据步骤1-3a)中提取的调用者和被调用者的调用关系,将每个调用关系记录为一条连接两个函数节点的边,边集用εp表示,边集εp中的每一条边E∈εp都可以表示为E=(Ni,Nj)(1≤i,j≤m),代表两个函数之间的调用关系,即Ni函数调用了Nj函数。
1-3e)根据步骤(1-3b)中提取的函数节点集中函数的类型,函数可以分为两种不同的类型:外部函数/>和本地函数/> 其中外部函数为移动系统平台提供的系统函数或库函数;本地函数为软件开发者编写和设计的函数。若节点的函数类型为外部函数,则执行步骤1-3f);若节点的函数类型为本地函数,则执行步骤1-3g)至步骤1-3j)。
1-3g)提取本地函数节点中包含的指令序列。根据函数中指令的具体内容和执行的顺序,能够将函数分为多个代码基本块,基本块中的代码为顺序执行结构,基本块之间的跳转关系代表代码间的执行关系。
1-3i)根据步骤1-3g)中提取的基本块的跳转关系,将每个跳转关系记录为一条连接两个基本块节点的边,基本块边集用表示,/>基本块边集/>中的每一条边/>都可以表示为K=(Vi,Vj)(1≤i,j≤n),代表两个基本块之间的控制流路径,即Vi基本块跳转至Vj基本块。
2)特征提取。
根据步骤1)中生成的三种模态,分别使用不同的特征对模态进行表示:
2-1a)使用Grad-CAM(梯度加权类激活映射,Ramprasaath R Selvaraju,MichaelCogswell,Abhishek Das,Ramakrishna Vedantam,Devi Parikh and Dhruv Batra,"Grad-cam:Visual explanations from deep networks via gradient-based localization",Proc.of the IEEE international conference on computer vision,pp.618-626,2017.),通过在卷积层上的梯度信息生成灰度图对应的热图HI,该热图能够突出显示在恶意软件检测任务中影响更大的图像区域。
2-1c)使用亮度阈值对新热图中的每个像素进行处理,提取新热图中突出显示的图像。
2-2a)根据步骤1-2c)中接口调用序列的每一个接口调用指令节点Ci(i∈n)=<fi,pi,ci>,统计所有节点中出现的族名称fi,将族名称构成的集合记录为 其中,o为族名称的统计个数,/>表示一个具体的族名称,表示所有节点中出现的相同的族名称fi。同时,根据步骤1-2c)中每一个节点Ci(i∈n)=<fi,pi,ci>,统计所有节点中出现的包名称pi,将包名称构成的集合记录为/> 其中,m为包名称的统计个数,/>表示一个具体的包名称,表示所有节点中出现的相同的包名称pi。
2-2b)根据步骤1-2b)中提取的接口调用序列根据每一对相邻的接口调用Ci→Cj(1≤i<n;j=i+1),统计在调用接口Ci所属的族fi(或/>)之后调用接口Cj所属的族fj(或/>)的次数Oij,以及由调用接口Ci所属的族fi(或/>)之后调用除接口Cj以外的其他接口所属的族fk(或/>)/>的次数Oik。同理,可根据2-2a)中生成的包名称集合统计在某一包名称pi(或/>)之后出现另一包名称pj(或/>)的次数Oij和在包名称pi(或/>)之后出现其他包名称pk(或/>)/>的次数Oik。
2-2c)根据步骤2-2a)中的名称集合和步骤2-2b)中统计次数O,可以构建表示接口调用序列的马尔可夫链/>其中/>为马尔科夫链中的状态集, 其中,q为状态名称的统计数量。其中的每一个状态都代表一个族名称或包名称,/>表示状态/>转换到/>的概率,通过计算在状态Si之后状态Sj出现的次数Oij除以所有状态得出,即/>
2-2d)由于开发人员自定义的函数所属的包名称和族名称可能会存在不规范现象,导致马尔可夫链中的节点数量过多,需要提取马尔可夫链中出现次数排名前50个节点,并舍弃其他节点,筛选后的马尔可夫链记为作为最终的特征表示。
2-3a)采用简化的GraphSAGE模型(Will Hamilton,Zhitao Ying,JureLeskovec.Inductive representation learning on large graphs[C].Advances inNeural Information Processing Systems.Long Beach,CA,USA,2017:1024–1034.)来生成函数控制流图中每个基本块(节点)的特征向量。具体的,根据步骤1-3e)中所述,二进制程序的函数调用图/>中的节点/>中包含/>个本地函数,用/>表示。对于/>中的每一个节点/>而言第t层GraphSAGE模型生成的特征向量可以表示为/>其中dT代表最后一层即T层输出的节点特征的维度。每层GraphSAGE分别利用自传递函数fnode和消息传递函数fmessage从上一层中的特征向量/>和其他邻居节点的特征向量来学习和更新每层的节点特征向量,第t层GraphSAGE生成的节点特征向量可以表示为:/>
其中,σ代表激活函数ReLu(x)=max(0,x);代表函数控制流图/>中节点v的所有邻居节点的集合;/>和/>分别是fnode和fmessage两个函数中的模型参数;经过T层GraphSAGE之后,得到的特征向量为/>
2-3c)针对中包含的/>个外部函数,利用独热编码(One-hot Encoding)方法生成该外部函数名称对应的编码,并将其进一步映射到维度为d的向量空间中,从而得到所有外部函数的初始化特征向量/>
2-3d)将由步骤2-3b)中得到的图向量和步骤2-3c)中得到的独热编码对应的特征向量/>作为初始特征向量输入下游编码层,针对函数调用图/>中的每一个节点使用K层GraphSAGE来更新每个节点的特征向量,其中,第k层GraphSAGE中得到的节点n的特征向量如下:
3)使用异类选择网络识别受到攻击的与其他特征不一致的特征表示,具体步骤包括:
3-1)将从多个模态中提取的特征集定义为z=[z1,z2,…,zk],其中,zi=gi(xi),gi代表特征提取函数。具体地,g=3,其中k1表示步骤2-1),z1表示由灰度图模态提取的特征表示g2表示步骤2-2),z2表示由接口调用序列提取的特征表示/>g3表示步骤2-3),z3表示由函数调用图/>和函数控制流图/>生成的特征表示/>
3-2)使用异类选择网络o识别受到攻击的不一致的元素,包括以下步骤:
以步骤3-1)中提取的特征集z作为异类选择网络o的输入,通过最小化以下交叉熵损失执行异类选择预测:
其中,表示从xi受到攻击后的/>中提取的特征;异类选择网络的输出o(z)为k+1大小的向量,其中的第i项(i∈k)表示第i个模态受到攻击的概率,即zi与其他模态的特征不一致的概率;第k+1项表示所有模态都没有受到攻击的概率。
4)使用鲁棒融合策略对多个模态进行融合,具体包括以下步骤:
融合需要用到多模态信息融合网络,该网络可以表述为f:其中x={x1,…,xk}表示为输入的k个模态;y表示为输出的预测结果;具体地,k=3,其中x1表示由步骤1-1)中生成的灰度图IpI;x2表示由步骤1-2)中提取的接口调用序列/>x3表示由步骤1-3)中提取的函数调用图/>和函数控制流图/>
传统利用多模态信息融合网络f:预测受到单一模态攻击时的防御性能P*为 其中,E为期望值;/>表示输入x和输出y是从分布/>采样的;/>为损失函数;/>表示某一模态i∈k受到的攻击;f(xi+δ,x-i)为对第i个模态施加δ攻击行为后与没有受到攻击的其他模态作为输入的预测结果;x-i为x剔除第i个后的集合。然而这种预测结果并不理想,因此本发明做出进一步改进,融合了异类选择网络o和鲁棒融合网络frobust的输出结果,能够给出理想的预测结果,具体步骤如下。
4-1)针对步骤2)中提取的特征进行融合,使用鲁棒融合网络frobust, 其中,/>代表融合网络;融合网络/>将步骤3-2)中由异类选择网络o输出的向量集成到鲁棒融合网络中,由k+1个融合操作组成,e=e1,e2,…,ek+1,每一个融合操作都用于排除某一种受到攻击的模态:
4-2)使用多模态信息融合网络将异类选择网络o和鲁棒融合网络frobust的结果进行融合,得到输出改进后,多模态信息融合网络f对于单一模态攻击的防御性能P可以更新表示为/>其中,异类选择网络o的输出作为鲁棒融合网络/>的一个参数。
5)恶意软件预测,其步骤包括:
5-1)将4-2)中输出的预测向量zoutput通过多层标准的全连接层,逐渐将输出维度降低至1。
基于同一发明构思,本发明还提供一种采用上述方法的移动平台恶意软件检测装置,其包括:
模态生成模块,用于将待检测的移动平台应用程序转换为多种模态表示;具体用于针对待检测的二进制应用程序,提取其二进制序列并生成灰度图,提取其接口调用序列,以及提取其函数调用关系并生成函数调用图和函数控制流图,这三种提取结果依次对应灰度图模态、接口调用序列模态和图结构模态;
特征提取模块,用于提取多种模态表示方法中的特征,并转换为机器可识别的特征表示;具体用于针对灰度图提取图像特征,针对接口调用序列提取调用序列特征,针对函数调用图和函数控制流图提取全局图特征;
异类选择模块,使用异类选择网络,识别受到攻击的与其他特征不一致的特征表示;具体用于使用异类选择网络,根据由图像特征、调用序列特征和全局图特征组成特征集,输出各模态被攻击概率的结果;
鲁棒融合模块,根据异类选择模块的输出,对特征提取模块中对不同模态提取的特征进行特征融合;具体用于使用鲁棒融合网络的融合网络将所述图像特征、调用序列特征、全局图特征和所述异类选择网络输出的向量进行融合,输出融合结果;并使用多模态信息融合网络将所述异类选择网络的输出结果与所述鲁棒融合网络输出的结果进行融合,输出预测向量;
恶意软件预测模块,计算待检测软件是恶意软件的概率,具体用于将预测向量进行降维并归一化,得到恶意软件的预测值。
如图2所示,基于多模态信息融合的移动平台恶意软件检测方法及装置,以二进制程序文件为输入,包括模态生成模块、特征提取模块、异类选择模块、鲁棒融合模块和恶意软件预测模块共5个模块。以下结合各个模块对本发明提供的方法和装置进行说明。
模态生成模块共包含三种模态的生成步骤,其中:
灰度图模态是使用灰度图特征对应用程序文件的二进制序列进行表示,具体方法为:
(1)通过输入的二进制应用程序p,利用其中包含的二进制序列,生成灰度图Ip;
接口调用序列模态通过分析二进制文件逆向分析后的汇编指令序列,通过IDA逆向工具对程序文件进行逆向分析,具体方法包括:
(2)根据步骤(1)中的二进制应用程序p,通过IDA逆向工具对程序文件进行逆向分析,得到分析结果pr;
函数调用图和控制流图模态通过进一步分析接口调用序列中的接口调用函数,使用图结构对二进制应用程序p进行表示,具体方法包括:
(6)将步骤(4)生成的接口调用图中的每个节点和步骤(5)中生成的函数控制流图和独热编码进行相对应,并结合生成新的图表示。
图3给出了步骤(1)中生成的灰度图示例;图4给出了步骤(3)中提取的接口调用序列示例;图5给出了步骤(4)中提取的接口调用图示例。
特征提取模块共包含三种模态对应的特征提取步骤,其中:
灰度图特征根据生成的灰度图Ip,通过热图的方式提取其中的特征向量。其工作流程如图6所示,具体步骤如下:
(1)给定一个根据二进制应用程序p生成的灰度图Ip;
(2)使用Grad-CAM生成灰度图Ip对应的热图HI;
(4)使用亮度阈值对新热图中的每个像素进行更新;
(5)提取突出显示的相对于像素空间的位置作为灰度图的特征表示FI。
(2)分别提取接口调用序列中每个接口调用函数Ci所属的包名称pi和族名称fi;
函数调用图和控制流图特征通过图嵌入的方式提取图结构的特征表示。其工作流程如图8所示,具体步骤如下:
将三种模态的特征表示输入异类选择模块和鲁棒融合模块,并使用恶意软件预测模块对待检测软件进行检测;具体地,通过异类选择网络识别受到攻击的不一致的模态,使用鲁棒融合策略对三种模态进行特征融合,最后通过神经网络对恶意软件进行预测。具体工作流程如图9所示,步骤如下:
(2)分别使用特征融合网络融合给定的三种模态,同时使用异类选择网络识别受到攻击的不一致的模态;
(3)使用鲁棒融合策略对三种模态进行特征融合,得到应用程序p的特征向量;
(4)初始化三层标准的全连接神经网络,逐渐减少输出维度,将最后一层的输出维度设置为1;
(5)对连接后图向量进行三层全连接神经网络操作;
(6)采用sigmoid激活函数,将输出标量值范围限制在[0,1]范围内,得到待检测软件是恶意软件的概率。
虽然本发明已以实施例公开如上,然其并非用以限定本发明,本领域的普通技术人员对本发明的技术方案进行的适当修改或者等同替换,均应涵盖于本发明的保护范围内,本发明的保护范围以权利要求所限定者为准。
Claims (10)
1.一种基于多模态信息融合的移动平台恶意软件检测方法,其特征在于,包括以下步骤:
1)针对待检测的二进制应用程序,提取其二进制序列并生成灰度图,提取其接口调用序列,以及提取其函数调用关系并生成函数调用图和函数控制流图,这三种提取结果依次对应灰度图模态、接口调用序列模态和图结构模态;
2)针对灰度图提取图像特征,针对接口调用序列提取调用序列特征,针对函数调用图和函数控制流图提取全局图特征;
3)由图像特征、调用序列特征和全局图特征组成特征集,将该特征集输入到异类选择网络,输出各模态被攻击概率的向量;
4)构建基于融合网络的鲁棒融合网络,使用融合网络将所述图像特征、调用序列特征、全局图特征和异类选择网络输出的向量进行融合,输出融合结果;再使用多模态信息融合网络将异类选择网络输出的向量与鲁棒融合网络输出的结果进行融合,输出预测向量;
5)将预测向量进行降维并归一化,得到恶意软件的预测值。
2.如权利要求1所述的方法,其特征在于,步骤1)中提取二进制序列并生成灰度图的步骤包括:
提取二进制应用程序的二进制字节流,并以二进制字节流的大小为标准确定灰度图图像的宽度;
以8位二进制数据为一组,将8位二进制数据的值转换为0-255的灰度值,并以此将二进制字节流转换为以像素为单位的灰度图数据,生成灰度图。
3.如权利要求1所述的方法,其特征在于,步骤1)中提取接口调用序列的步骤包括:
对二进制应用程序进行逆向分析,并记录逆向分析结果;
根据逆向分析结果提取其中的指令码序列,保留指令码序列中的接口调用指令,得到接口调用序列;
对于该接口调用序列中的每一个接口调用指令,提取其调用信息,包括接口调用中接口所属的族名称和包名称,以及接口调用的调用内容。
4.如权利要求1所述的方法,其特征在于,步骤1)中提取函数调用关系并生成函数调用图和函数控制流图的步骤包括:
提取二进制应用程序的函数调用序列,根据函数调用序列中的函数调用关系生成函数调用图;
确定函数调用图中的每个节点的函数类型是外部函数还是本地函数;若为外部函数,则提取外部函数节点中的函数名称,构成外部函数名称集;若为本地函数,则本地函数节点中包含的指令序列,提取基本块;
根据每个本地函数内的基本块之间的跳转关系生成每个本地函数的函数控制流图。
5.如权利要求1所述的方法,其特征在于,步骤2)中针对灰度图提取图像特征的步骤包括:使用Grad-CAM网络,根据灰度图的梯度信息生成热图;
将生成的热图与灰度图相叠加,生成新热图;
使用亮度阈值对新热图中的每个像素进行处理,提取新热图中突出显示的图像;
记录突出显示的图像像素相对于像素空间的位置,作为图像特征。
6.如权利要求1所述的方法,其特征在于,步骤2)中针对接口调用序列提取调用序列特征的步骤包括:
统计接口调用序列的所有接口调用指令中出现的族名称和包名称,生成族名称集合和包名称集合;
根据族名称集合,对于接口调用序列中的每一对相邻的接口调用指令,统计在调用前接口调用指令所属的族之后调用后接口调用指令所属的族的次数,以及在调用前接口调用指令所属的族之后调用其他接口调用指令所属的族的次数;
根据包名称集合,对于接口调用序列中的每一对相邻的接口调用指令,统计在调用前接口调用指令所属的包之后调用后接口调用指令所属的包的次数,以及在调用前接口调用指令所属的包之后调用其他接口调用指令所属的包的次数;
根据族名称集合和包名称集合,以及上述两种统计次数,构建表示接口调用序列的马尔可夫链,该马尔科夫链由状态集和状态转换概率组成,该状态集中的每个状态代表一个族名称或包名称,该状态转换概率是指由一种状态转换到另一种状态的概率;
提取马尔科夫链中出现次数最多的前预设数量的节点,构成筛选后的马尔科夫链,作为调用序列特征。
7.如权利要求1所述的方法,其特征在于,步骤2)中针对函数调用图和函数控制流图提取全局图特征的步骤包括:
针对函数调用图包含的全部本地函数,采用多层GraphSAGE模型对每个本地函数内的函数控制流图中的每一个基本块节点生成特征向量,每层GraphSAGE利用自传递函数和消息传递函数从上一层中生成的特征向量和其他邻居节点的特征向量来学习和更新每层的特征向量;经过全部层GraphSAGE模型的处理,得到总特征向量;
采用聚合模型对每个本地函数对应的函数控制流图中所有节点的总特征向量进行最大池化操作,生成图向量;
针对函数调用图包含的全部外部函数,利用独热编码方法生成外部函数名称对应的编码,并映射到向量空间中,得到外部函数的初始化特征向量;
将上述图向量和初始化特征向量输入到GraphSAGE模型的下游编码层,针对函数调用图中的每个节点,使用多层GraphSAGE模型来更新每个节点的特征向量,得到一个新的总特征向量;
采用聚合模型对函数调用图中所有节点的新的总特征向量进行最大池化操作,得到全局图特征。
8.如权利要求1所述的方法,其特征在于,步骤3)中将特征集输入到异类选择网络,输出模态被攻击概率的向量的步骤包括:
将特征集输入到异类选择网络中,通过最小化交叉熵损失,输出为若干项的向量,最后一项表示所有模态没有受到攻击的概率,除最后一项的其他项表示每个模态受到攻击的概率。
9.如权利要求1所述的方法,其特征在于,步骤4)中使用融合网络基于浅神经网络NN进行融合,包含若干个融合操作,每个融合操作均用于排除某一种受到攻击的模态;
步骤5)中将预测向量通过多层标准的全连接层,降维到一维;再采用sigmoid激活函数将输出标量值范围限制在[0,1]范围内,最终得到归一化的恶意软件的预测值。
10.一种采用权利要求1-9任一所述方法的移动平台恶意软件检测装置,其特征在于,包括:
模态生成模块,用于针对待检测的二进制应用程序,提取其二进制序列并生成灰度图,提取其接口调用序列,以及提取其函数调用关系并生成函数调用图和函数控制流图,这三种提取结果依次对应灰度图模态、接口调用序列模态和图结构模态;
特征提取模块,用于针对灰度图提取图像特征,针对接口调用序列提取调用序列特征,针对函数调用图和函数控制流图提取全局图特征;
异类选择模块,用于使用异类选择网络,根据由图像特征、调用序列特征和全局图特征组成特征集,输出各模态被攻击概率的向量;
鲁棒融合模块,用于使用鲁棒融合网络的融合网络将图像特征、调用序列特征、全局图特征和异类选择网络输出的向量进行融合,输出融合结果;并使用多模态信息融合网络将异类选择网络输出的向量与鲁棒融合网络输出的结果进行融合,输出预测向量;
恶意软件预测模块,用于将预测向量进行降维并归一化,得到恶意软件的预测值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310136086.XA CN116226852A (zh) | 2023-02-20 | 2023-02-20 | 基于多模态信息融合的移动平台恶意软件检测方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310136086.XA CN116226852A (zh) | 2023-02-20 | 2023-02-20 | 基于多模态信息融合的移动平台恶意软件检测方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116226852A true CN116226852A (zh) | 2023-06-06 |
Family
ID=86586852
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310136086.XA Pending CN116226852A (zh) | 2023-02-20 | 2023-02-20 | 基于多模态信息融合的移动平台恶意软件检测方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116226852A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116958767A (zh) * | 2023-07-14 | 2023-10-27 | 江苏大学 | 基于多模态技术的智能合约安全分析方法及系统 |
-
2023
- 2023-02-20 CN CN202310136086.XA patent/CN116226852A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116958767A (zh) * | 2023-07-14 | 2023-10-27 | 江苏大学 | 基于多模态技术的智能合约安全分析方法及系统 |
CN116958767B (zh) * | 2023-07-14 | 2024-04-30 | 江苏大学 | 基于多模态技术的智能合约安全分析方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112199375A (zh) | 跨模态的数据处理方法、装置、存储介质以及电子装置 | |
CN108229504B (zh) | 图像解析方法及装置 | |
TW201928754A (zh) | 基於圖結構模型的異常帳號防控方法、裝置以及設備 | |
CN109101816B (zh) | 一种基于系统调用控制流图的恶意代码同源性分析方法 | |
CN108171663B (zh) | 基于特征图最近邻替换的卷积神经网络的图像填充系统 | |
CN109753987B (zh) | 文件识别方法和特征提取方法 | |
CN112633159B (zh) | 人-物交互关系识别方法、模型训练方法及对应装置 | |
CN110781960A (zh) | 视频分类模型的训练方法、分类方法、装置及设备 | |
CN116226852A (zh) | 基于多模态信息融合的移动平台恶意软件检测方法及装置 | |
CN108985148B (zh) | 一种手部关键点检测方法及装置 | |
CN115100739B (zh) | 人机行为检测方法、系统、终端设备及存储介质 | |
CN115034379A (zh) | 一种因果关系确定方法及相关设备 | |
CN115062779A (zh) | 基于动态知识图谱的事件预测方法及装置 | |
CN115375986A (zh) | 一种模型蒸馏方法及装置 | |
CN114826681A (zh) | 一种dga域名检测方法、系统、介质、设备及终端 | |
CN112633100B (zh) | 行为识别方法、装置、电子设备和存储介质 | |
CN114091551A (zh) | 色情图像识别方法、装置、电子设备及存储介质 | |
CN115567305B (zh) | 基于深度学习的顺序网络攻击预测分析方法 | |
CN116663018A (zh) | 一种基于代码可执行路径的漏洞检测方法及装置 | |
CN114201199B (zh) | 基于信息安全大数据的防护升级方法及信息安全系统 | |
CN116049691A (zh) | 模型转换方法、装置、电子设备和存储介质 | |
CN112929380B (zh) | 结合元学习与时空特征融合的木马通信检测方法及系统 | |
CN114238992A (zh) | 基于信息安全大数据的威胁漏洞挖掘方法及信息安全系统 | |
CN113657762A (zh) | 一种训练数据机密性评估方法、装置、设备及介质 | |
CN115080974B (zh) | 一种恶意pe文件检测方法、装置、设备及介质 |
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 |