CN117574370B - 一种恶意代码检测*** - Google Patents
一种恶意代码检测*** Download PDFInfo
- Publication number
- CN117574370B CN117574370B CN202311599310.5A CN202311599310A CN117574370B CN 117574370 B CN117574370 B CN 117574370B CN 202311599310 A CN202311599310 A CN 202311599310A CN 117574370 B CN117574370 B CN 117574370B
- Authority
- CN
- China
- Prior art keywords
- feature
- component
- sensitive
- graph
- module
- 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 28
- 238000013528 artificial neural network Methods 0.000 claims abstract description 34
- 238000000034 method Methods 0.000 claims abstract description 29
- 239000011159 matrix material Substances 0.000 claims abstract description 28
- 230000002457 bidirectional effect Effects 0.000 claims abstract description 25
- 230000004927 fusion Effects 0.000 claims abstract description 12
- 230000007246 mechanism Effects 0.000 claims abstract description 11
- 238000013136 deep learning model Methods 0.000 claims abstract description 4
- 230000006870 function Effects 0.000 claims description 45
- 230000000694 effects Effects 0.000 claims description 36
- 239000000284 extract Substances 0.000 claims description 21
- 238000012549 training Methods 0.000 claims description 21
- 239000008186 active pharmaceutical agent Substances 0.000 claims description 18
- 125000004122 cyclic group Chemical group 0.000 claims description 17
- 239000013598 vector Substances 0.000 claims description 17
- 230000008569 process Effects 0.000 claims description 16
- 230000000306 recurrent effect Effects 0.000 claims description 8
- 210000002569 neuron Anatomy 0.000 claims description 6
- 238000012545 processing Methods 0.000 claims description 6
- 230000035945 sensitivity Effects 0.000 claims description 4
- 239000000203 mixture Substances 0.000 claims description 3
- 230000006399 behavior Effects 0.000 description 15
- 238000000605 extraction Methods 0.000 description 6
- 238000003062 neural network model Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000013508 migration Methods 0.000 description 3
- 230000005012 migration Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000003542 behavioural effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008033 biological extinction Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000004880 explosion Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000007500 overflow downdraw method Methods 0.000 description 1
- 230000035755 proliferation Effects 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/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
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/53—Decompilation; Disassembly
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Computer Hardware Design (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Virology (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明提供一个恶意代码检测***,包括:反编译模块,用于根据待检测应用程序获得清单文件和源代码;调用子图分析模块,用于根据源代码,提取调用子图特征集合;组件分析模块,用于根据清单文件,提取组件特征集合;特征融合模块,用于将调用子图特征集合和组件特征集合融合成适用于深度学习模型的特征矩阵;恶意软件检测模块,用于根据特征矩阵,通过基于类敏感机制的双向独立循环神经网络进行检测,得到恶意软件检测结果。本发明在基于调用子图特征来分析程序运行逻辑与提取程序语义信息的基础上,融合分析恶意软件组件相关信息,实现更高精度的物联网恶意应用检测精度,提高物联网***的安全性。
Description
技术领域
本发明涉及软件代码检测分析领域,具体涉及一种恶意代码检测***。
背景技术
随着物联网技术的快速发展,智能手机、平板电脑等移动物联网设备在物联网网络中得到了广泛的应用。它的普遍实施和广泛接受,极大地增加了人们的便利和舒适。此外,移动物联网设备的大量激增使得越来越多的物联网服务可以通过物联网网络远程访问。物联网移动设备的快速普及也带来了巨大的安全挑战,特别是在恶意物联网应用软件攻击方面。这些物联网应用软件为用户提供便捷服务的同时,由于利益驱动,不法分子利用物联网应用软件漏洞,或散布恶意物联网应用软件以实现窃取用户的个人信息、盗取用户钱财等目的。
物联网时代,移动平台涉及处理大量的敏感数据,包括个人电子邮件和通讯、语音电话、短信、公司和财务数据。移动物联网设备通常具有GPS功能,这意味着它能够知道持有人在任何时候的物理位置。移动物联网设备也包含内置摄像头,麦克风,加速计,磁力计等,因此可以被恶意软件劫持,并用于窃听他们的环境。因此,恶意软件开发者也瞄准了这些物联网智能移动设备。
传统的恶意软件检测方法依赖于基于签名的检测,也就是将已知的恶意软件签名与签名库进行匹配。然而,这种方法的局限性在于它只能检测已知的恶意软件,严重依赖特征库规模及完善程度,存在误报率高等问题,无法应对最新的恶意软件变种威胁。基于行为的恶意软件检测***重点在于检测可疑行为,而不是特定的特征,包括监视软件的行为和寻找指示恶意活动的模式。然而,这类方案需要消耗大量计算资源与时间,不能满足实际应用中对恶意软件检测任务的实时性要求。本发明提出基于程序调用接口API特征来分析程序运行逻辑与提取程序语义信息,同时提取组件分析特征捕获更多恶意行为,有效提高了物联网恶意应用检测精度,进一步提高了物联网***的安全性。此外,考虑到真实世界中,相比于良性软件,恶意软件仅占所有软件的一小部分。因此,这引发了严重的类不平衡问题,这可能会在分类过程中误导恶意软件检测模型错误分类。为了解决该问题,本发明提出一种基于类敏感双向独立循环神经网络模型,该模型创造性提出基于类敏感机制的交叉熵函数来处理不平衡数据集带来的数据偏移问题。所提出的策略有助于提高方法性能并减轻过度和不充分拟合的问题,能有效检测恶意软件。
发明内容
为解决现有技术中存在的上述缺陷,本发明在物联网应用场景下,提出了一种基于调用子图与组件通信分析的新型恶意软件检测技术。
根据本发明的第一方面,提供一种恶意代码检测***,包括:
反编译模块,用于根据待检测应用程序获得清单文件和源代码。
调用子图分析模块,用于根据源代码,提取调用子图特征集合。
调用子图分析模块包括程序调用图生成模块、敏感API特征生成模块。
程序调用图生成模块根据输入的源代码构建程序调用图FCG,并使用Pscout工具提取所有敏感API节点,FCG表示为G={V,E},由一组节点和一组边组成;V中的每个节点表示应用程序中的一个函数,其中包括敏感API,敏感API集合为/>E中的每个边表示调用方和被调用方之间的调用关系。
敏感API特征生成模块根据FCG分析并提取敏感函数调用子图特征集合,包括:使用TF-IDF方法为敏感API集合中每个敏感API分配不同的恶意程度值,得到敏感API恶意程度集合其中,第i个敏感API/>的恶意程度为:
其中,Qtotal表示训练集中所有良性软件的数量,Rtotal表示训练集中所有恶意软件的数量,表示训练集中调用/>的良性软件数量,/>表示训练集中调用/>的恶意软件数量;FCG对应一个敏感函数调用子图集合/>其中,一个敏感函数调用子图/>由一个敏感API及其相邻节点u1,…,uk组成,通过距离函数/>控制敏感函数调用子图/>的大小,其中,k为自定义的控制参数,用于定义敏感函数调用子图包含/>的邻居节点数量;计算敏感函数调用子图特征集合
组件分析模块,用于根据清单文件,提取组件特征集合。
组件分析模块从清单文件中提取多个类别的组件特征,包括:活动组件特征,服务组件特征,内容提供者组件特征,广播接收机组件特征。
提取活动组件特征包括:从清单文件中查询活动标签信息activity,将清单文件中所有包含活动标签信息的名称作为活动组件特征T={t1,…,tnT},其中,t表示某一个活动,活动在应用程序中负责呈现用户界面。
提取服务组件特征包括:从清单文件中查询服务标签信息service,将清单文件中所有包含服务标签信息的名称作为服务组件特征R={r1,…,rnR},其中,r表示某一个服务,服务在应用程序中负责后台处理。
提取内容提供者组件特征包括:从清单文件中查询内容提供者标签信息ContentProvider,将清单文件中所有包含内容提供者标签信息的名称作为内容提供者组件特征P={p1,…,pnP},其中,p表示某一个内容提供者,内容提供者在应用程序中负责结构化数据的共享。
提取广播接收机组件特征包括:从清单文件中查询广播接收机标签信息activity,将清单文件中所有包含广播接收机标签信息的名称作为广播接收机组件特征C={c1,…,cnC},其中,c表示某一个广播接收机,广播接收机在应用程序中负责提供接收信息的能力。
根据多个组件特征构建组件特征集合COM={T,C,P,R}。
特征融合模块,用于将调用子图特征集合和组件特征集合融合成适用于深度学习模型的特征矩阵。
恶意软件检测模块,用于根据特征矩阵,通过基于类敏感机制的双向独立循环神经网络进行检测,得到恶意软件检测结果。
恶意软件检测模块中的基于类敏感机制的双向独立循环神经网络包括:双向独立循环神经网络层、全连接网络层、Sigmoid函数输出层;双向独立循环神经网络层同时从先前和未来两个方向对输入的特征矩阵进行信息抽取后再拼接;全连接网络层处理来自双向独立循环神经网络的输出;Sigmoid函数输出层通过一个sigmoid函数处理全连接网络层的输出。
进一步地,本发明所提供的***,反编译模块输入待检测应用程序的APK文件,使用反编译工具Androguard提取清单文件和DEX文件并根据DEX文件解析出源代码。
进一步地,本发明所提供的***,特征融合模块将调用子图特征集合和组件特征集合进行合并,通过Word2vec工具使用词嵌入方法提取合并后的集合中所有元素的语义特征向量,形成特征矩阵FV={x1,…,xt,…,xnF},xt为语义特征向量。
进一步地,本发明所提供的***,双向独立循环神经网络层还包括:
从先前到未来方向抽取特征其中,语义特征向量xt是该网络当前输入,/>表示该网络先前隐藏状态,/>是先前到未来方向的权重矩阵,/>是先前到未来方向的循环单元权重,/>是先前到未来方向的偏移量,/>表示哈达玛积的矩阵操作。
从未来到先前方向抽取特征表示该网络未来隐藏状态,/>是从未来到先前方向的权重矩阵,/>是从未来到先前方向的循环单元权重,/>是从未来到先前方向的偏移量。
拼接两个方向抽取的特征得到双向独立循环神经网络层的输出 其中,Wf和Wb为两个不同的权重矩阵。
全连接网络层输出hFCN=WFCNhBlnd+bFCN,WFCN是全连接层神经元的权重矩阵,bFCN是全连接层神经元的偏移量。
Sigmoid函数输出层输出二分类结果y=sigmoid(hFCN)作为恶意软件检测结果,一类表示恶意软件,另一类表示良性软件。
进一步地,本发明所提供的***,基于类敏感机制的双向独立循环神经网络由多次迭代训练形成,迭代训练过程基于损失函数:
其中,yk全连接网络第k个类的实际输出;tk是全连接网络第k类期望输出;C表示成本项;sam∈dataset表示计算训练集中的每一个样本;P是该样本的真实标签,k是该样本的预测标签。
根据本发明的第二方面,提供一种计算机设备,其特征在于,包括:
存储器,用于存储指令;以及
处理器,用于调用所述存储器存储的指令实现第一方面的***。
与现有技术相比,本发明所构思的上述技术方案至少具有以下有益效果:
1、调用子图特征(CSG):在恶意软件检测中,应用程序编程接口可以用来模拟恶意模式和检测恶意软件实例,例如,现实世界中的恶意软件经常利用安卓***中现有的API来模仿良性应用程序的正常行为,以逃避恶意行为检测***的安全检查。因此,本发明构建一种调用子图特征提取模块,该模块提取经常被恶意软件利用的敏感应用程序编程接口API来构建调用子图特征,能够有效反映应用程序中调用者与被调用者之间的关系。
2、组件特征(COM):本发明构建了一个基于组件特征的特征提取模块,***地分析了良性应用程序和恶意应用程序所呈现的组件调用模式。这种组特征代表了恶意软件使用的最普遍的攻击向量之一。
3、特征融合方法改进:一方面,调用子图特征(CSG)可以有效反映物联网恶意软件恶意行为模式,对检测恶意软件实例提供巨大帮助,但是,它忽略了不同组件间交互的相关信息。另一方面,组件特征(COM)全面涵盖了应用程序中不同组件之间以及不同应用程序之间的交互,例如广播接收器和内容提供者,提供了强大的灵活性与通用性。鉴于这两类特征互补的表示能力,本发明提出了特征融合方案,结合两类特征的优势,以提供更全面的恶意行为模式表示。
4、基于双向独立循环神经网络模型的物联网恶意软件检测分类器:本发明提出了一种新的类敏感交叉熵函数,通过在独立循环神经网络模型中引入代价项到反向传播学***衡数据集带来的数据偏移问题。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1是根据一示例性实施例示出的总体框架设计示意图。
图2是根据一示例性实施例示出的基于类敏感双向独立循环神经网络示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
本发明在物联网应用场景下,提出了一种基于调用子图与组件通信分析的新型恶意软件检测技术,并提出一个恶意代码检测***。该框架包括五个主要模块:
反编译模块,用于根据待检测应用程序获得清单文件和源代码。
调用子图分析模块,用于根据源代码,提取调用子图特征集合。
组件分析模块,用于根据清单文件,提取组件特征集合。
特征融合模块,用于将调用子图特征集合和组件特征集合融合成适用于深度学习模型的特征矩阵。
恶意软件检测模块,用于根据特征矩阵,通过基于类敏感机制的双向独立循环神经网络进行检测,得到恶意软件检测结果。
第一部分:反编译模块。反编译模块输入待检测应用程序的APK文件,使用反编译工具Androguard提取清单文件和DEX文件并根据DEX文件解析出源代码。
在此阶段,我们反编译APK文件以提取资源,清单文件和classes.dex文件。物联网应用程序通常使用Java编程语言开发,然后编译成Dalvik代码(DEX),存储在classes.dex文件中。编译后的代码以及必要的资源被打包到APK文件中。在反编译过程中,利用开源工具(Androguard工具)从每个应用程序中重新创建源代码和类文件,我们可以从APK中提取Dalvik代码。之后,我们提取调用子图特征(CSG)和组件特征(COM)。
第二部分:调用子图分析模块。调用子图分析模块包括程序调用图生成模块、敏感API特征生成模块。
程序调用图生成模块根据输入的源代码构建程序调用图FCG,并使用Pscout工具提取所有敏感API节点,FCG表示为G={V,E},由一组节点和一组边组成;V中的每个节点表示应用程序中的一个函数,其中包括敏感API,敏感API集合为/>E中的每个边表示调用方和被调用方之间的调用关系。
敏感API特征生成模块根据FCG分析并提取敏感函数调用子图特征集合,包括:使用TF-IDF方法为敏感API集合中每个敏感API分配不同的恶意程度值,得到敏感API恶意程度集合其中,第i个敏感API/>的恶意程度为:
其中,Qtotal表示训练集中所有良性软件的数量,Rtotal表示训练集中所有恶意软件的数量,表示训练集中调用/>的良性软件数量,/>表示训练集中调用/>的恶意软件数量;FCG对应一个敏感函数调用子图集合/>其中,一个敏感函数调用子图/>由一个敏感API及其相邻节点u1,…,uk组成,通过距离函数/>控制敏感函数调用子图/>的大小,其中,k为自定义的控制参数,用于定义敏感函数调用子图包含/>的邻居节点数量;计算敏感函数调用子图特征集合/>
应用程序编程接口(API)作为高级编程语言接口,用于封装***调用并反映程序中代码段的行为。物联网应用程序利用各种API来实现各种功能。恶意程序需要与外部程序通信,并且经常利用敏感的API来实现恶意行为,例如获取个人用户信息、操纵设备功能或从事非法操作。恶意软件中最常见的敏感API调用组合揭示了恶意活动的存在,从而实现诸如凭证盗窃和用户数据销售等恶意活动。因此,这些API调用可能暗示潜在的恶意意图,同时也揭示了应用程序的漏洞。
使用开源Pscout工具,提取要分析的APK安装包中包含的所有敏感API节点。Pscout工具分辨敏感的API的过程可参考Kathy Wain Yee Au等人的论文:PScout:Analyzing the Android Permission Specification(In the Proceedings of the 19thACM Conference on Computer and Communications Security(CCS2012).October2012)。
第三部分:组件分析模块。组件分析模块,用于根据清单文件,提取组件特征集合。
组件分析模块从清单文件中提取多个类别的组件特征,包括:活动组件特征,服务组件特征,内容提供者组件特征,广播接收机组件特征。
提取活动组件特征包括:从清单文件中查询活动标签信息activity,将清单文件中所有包含活动标签信息的名称作为活动组件特征T={t1,…,tnT},其中,t表示某一个活动,活动在应用程序中负责呈现用户界面。
提取服务组件特征包括:从清单文件中查询服务标签信息service,将清单文件中所有包含服务标签信息的名称作为服务组件特征R={r1,…,rnR},其中,r表示某一个服务,服务在应用程序中负责后台处理。
提取内容提供者组件特征包括:从清单文件中查询内容提供者标签信息ContentProvider,将清单文件中所有包含内容提供者标签信息的名称作为内容提供者组件特征P={p1,…,pnP},其中,p表示某一个内容提供者,内容提供者在应用程序中负责结构化数据的共享。
提取广播接收机组件特征包括:从清单文件中查询广播接收机标签信息activity,将清单文件中所有包含广播接收机标签信息的名称作为广播接收机组件特征C={c1,…,cnC},其中,c表示某一个广播接收机,广播接收机在应用程序中负责提供接收信息的能力。
根据多个组件特征构建组件特征集合COM={T,C,P,R}。
在此阶段,我们提取组件特征,这对于理解恶意软件运行模式至关重要,显著增强了检测***检测复杂恶意软件的能力。
***地分析了良性应用程序和恶意软件的行为模式,因为组件是应用程序的核心部分,不能轻易修改或删除。此外,组件特征提取方案也更为灵活和普适,不受特定API调用的限制,能够识别和捕获更多的恶意行为,增强了检测***的可靠性和鲁棒性。
物联网应用程序的基本构建模块包括活动、服务、内容提供者和广播接收器。活动负责呈现用户界面。服务负责后台处理。内容提供程序促进了结构化数据的共享。广播接收机提供接收信息的能力。恶意软件的开发通常涉及代码重用,导致同一家族的恶意软件之间存在共享的恶意行为和组件重用。
物联网应用程序的基本构建模块包括活动、服务、内容提供者和广播接收器。我们提取一下几类特征:
活动(activity)负责呈现用户界面,例如:Activity可以设置“android.intent.category.BROWSABLE”属性,这意味着可以通过浏览器使用自定义协议打开此activity,可能通过浏览器对app进行越权调用。这里,android.intent.category.BROWSABLE就是一个组件特征t1。因此,我们将所有activity的名称作为服务特征。
服务(service)负责后台处理,例如:开发人员需要在应用程序配置文件中声明全部的service,。恶意软件可以使用startService()方法启动服务时,服务处于started状态。因此,我们将所有service的名称作为服务特征。
内容提供者(Content Provider)促进了结构化数据的共享,例如:android平台提供了Content Provider使一个应用程序的指定数据集提供给其他应用程序。其他应用可以通过ContentResolver类从该内容提供者中获取或存入数据。因此,我们将所有ContentProvider的名称作为服务特征。
广播接收机(broadcast receiver)提供接收信息的能力,例如:恶意软件可以定义广播接收者类是mBroadcastReceiver,该接收者可以用于接收网络状态改变时发出的广播"android.net.conn.CONNECTIVITY_CHANGE"。这里"android.net.conn.CONNECTIVITY_CHANGE"是广播接收机的一个特征c1。因此,我们将所有broadcast receiver的名称作为服务特征。
第四部分:特征融合模块。特征融合模块将调用子图特征集合和组件特征集合进行合并,通过Word2vec工具使用词嵌入方法提取合并后的集合中所有元素的语义特征向量,形成特征矩阵FV={x1,…,xt,…,xnF},xt为语义特征向量。
在特征融合阶段,我们通过将这些特征嵌入到特征空间中,为每个物联网应用程序构建特征向量,以尝试提取潜在的语义模式。在生成特征向量之后,我们采用神经网络模型对恶意软件进行分类,从而对恶意软件中的高级概念和事实进行建模。
给定一个特征集F,我们使用词嵌入方法提取语义向量,从而反映出恶意软件的潜在行为模式。此方法在空间上不敏感,与单词或局部模式的顺序无关。
在我们实例中,每个恶意软件的语义特征被映射到一个固定的二维矩阵FV中。我们设定语义特征的最大数量为M,向量的嵌入大小为K。最后,我们将融合特征F转换为语义特征FV,并将其作为输入用于学习语义知识的检测模型。这些语义模式在较低的层次上聚合,有助于更好地识别特征的模式,并促进了高层次领域知识的表示。
第五部分:恶意软件检测模块。恶意软件检测模块中的基于类敏感机制的双向独立循环神经网络包括:双向独立循环神经网络层、全连接网络层、Sigmoid函数输出层;双向独立循环神经网络层同时从先前和未来两个方向对输入的特征矩阵进行信息抽取后再拼接;全连接网络层处理来自双向独立循环神经网络的输出;Sigmoid函数输出层通过一个sigmoid函数处理全连接网络层的输出。
在此阶段,将融合特征注入到特征空间中,构建语义特征向量。然后,将语义特征向量输入到基于类敏感独立循环神经网络的恶意软件检测模型中,该模型采用双向信息抽取模式,从先前和未来两方面对序列特征进行抽取。
在这一部分中,我们提出了一个基于类敏感双向独立循环神经网络的恶意软件分类器来描述恶意软件的行为并对语义知识进行建模。独立循环神经网络是一种递归神经网络的变体。在传统递归神经网络中,输入时间序列的不同时间步的权重矩阵是共享的。而对于独立循环神经网络而言,该网络在每个时间步循环单元设置单独的权重,该策略能够使其处理更长的时间序列,从而减少梯度消失或梯度***的影响。
双向独立循环神经网络模型从先前和未来两方面对输入特征进行信息抽取。
从先前到未来方向抽取特征其中,语义特征向量xt是该网络当前输入,/>表示该网络先前隐藏状态,/>是先前到未来方向的权重矩阵,/>是先前到未来方向的循环单元权重,/>是先前到未来方向的偏移量,/>表示哈达玛积的矩阵操作。
从未来到先前方向抽取特征表示该网络未来隐藏状态,/>是从未来到先前方向的权重矩阵,/>是从未来到先前方向的循环单元权重,/>是从未来到先前方向的偏移量。
拼接两个方向抽取的特征得到双向独立循环神经网络层的输出 其中,Wf和Wb为两个不同的权重矩阵。
我们引入了一个全连接网络(FCN)作为我们架构的一个组成部分。该FCN层用于处理来自双向独立循环神经网络的输出向量。FFN的使用补充了双向独立循环神经网络,模型能够以协同的方式捕获本地和全局信息。
全连接网络层输出hFCN=WFCNhBlnd+bFCN,WFCN是全连接层神经元的权重矩阵,bFCN是全连接层神经元的偏移量。
Sigmoid函数输出层输出二分类结果y=sigmoid(hFCN)作为恶意软件检测结果,一类表示恶意软件,另一类表示良性软件。
通常输出y={1,0}表示是恶意软件,y={0,1}表示是良性软件。
基于类敏感机制的双向独立循环神经网络由多次迭代训练形成,迭代训练过程基于损失函数:
其中,yk全连接网络第k个类的实际输出;tk是全连接网络第k类期望输出;C表示成本项;sam∈dataset表示计算训练集中的每一个样本;P是该样本的真实标签,k是该样本的预测标签。
现有工作大多专注于提升恶意软件检测性能,而忽略现实世界中恶意样本占比很小的事实,这种严重类不平衡问题导致检测模型容易过拟合,泛化能力降低。
已有的一项工作利用类敏感交叉熵函数来解决僵尸网络检测中多类不平衡问题。
本发明借鉴该工作,引入类敏感交叉熵函数来处理恶意软件检测中不平衡数据集带来的数据偏移问题。通过对原始独立循环神经网络进行了调整,使其具有成本敏感性,该模型将代价项引入到反向传播学习过程中,以考虑类间辨识的重要性,在识别潜在恶意软件威胁方面表现出卓越的能力,促进了对恶意软件行为的全面理解。
领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
Claims (6)
1.一种恶意代码检测***,其特征在于,包括:
反编译模块,用于根据待检测应用程序获得清单文件和源代码;
调用子图分析模块,用于根据源代码,提取调用子图特征集合;
调用子图分析模块包括程序调用图生成模块、敏感API特征生成模块;
程序调用图生成模块根据输入的源代码构建程序调用图FCG,并使用Pscout工具提取所有敏感API节点,FCG表示为G={V,E},由一组节点和一组边组成;V中的每个节点表示应用程序中的一个函数,其中包括敏感API,敏感API集合为/>E中的每个边表示调用方和被调用方之间的调用关系;
敏感API特征生成模块根据FCG分析并提取敏感函数调用子图特征集合,包括:使用TF-IDF方法为敏感API集合中每个敏感API分配不同的恶意程度值,得到敏感API恶意程度集合其中,第i个敏感API/>的恶意程度为:
其中,Qtotal表示训练集中所有良性软件的数量,Rtotal表示训练集中所有恶意软件的数量,表示训练集中调用/>的良性软件数量,/>表示训练集中调用/>的恶意软件数量;FCG对应一个敏感函数调用子图集合/>其中,一个敏感函数调用子图/>由一个敏感API及其相邻节点u1,…,uk组成,通过距离函数/>控制敏感函数调用子图/>的大小,其中,k为自定义的控制参数,用于定义敏感函数调用子图包含/>的邻居节点数量;计算敏感函数调用子图特征集合
组件分析模块,用于根据清单文件,提取组件特征集合;
组件分析模块从清单文件中提取多个类别的组件特征,包括:活动组件特征,服务组件特征,内容提供者组件特征,广播接收机组件特征;
提取活动组件特征包括:从清单文件中查询活动标签信息activity,将清单文件中所有包含活动标签信息的名称作为活动组件特征T={t1,…,tnT},其中,t表示某一个活动,活动在应用程序中负责呈现用户界面;
提取服务组件特征包括:从清单文件中查询服务标签信息service,将清单文件中所有包含服务标签信息的名称作为服务组件特征R={r1,…,rnR},其中,r表示某一个服务,服务在应用程序中负责后台处理;
提取内容提供者组件特征包括:从清单文件中查询内容提供者标签信息ContentProvider,将清单文件中所有包含内容提供者标签信息的名称作为内容提供者组件特征P={p1,…,pnP},其中,p表示某一个内容提供者,内容提供者在应用程序中负责结构化数据的共享;
提取广播接收机组件特征包括:从清单文件中查询广播接收机标签信息activity,将清单文件中所有包含广播接收机标签信息的名称作为广播接收机组件特征C={c1,…,cnC},其中,c表示某一个广播接收机,广播接收机在应用程序中负责提供接收信息的能力;
根据多个组件特征构建组件特征集合COM={T,C,P,R};
特征融合模块,用于将调用子图特征集合和组件特征集合融合成适用于深度学习模型的特征矩阵;
恶意软件检测模块,用于根据特征矩阵,通过基于类敏感机制的双向独立循环神经网络进行检测,得到恶意软件检测结果;
恶意软件检测模块中的基于类敏感机制的双向独立循环神经网络包括:双向独立循环神经网络层、全连接网络层、Sigmoid函数输出层;双向独立循环神经网络层同时从先前和未来两个方向对输入的特征矩阵进行信息抽取后再拼接;全连接网络层处理来自双向独立循环神经网络的输出;Sigmoid函数输出层通过一个sigmoid函数处理全连接网络层的输出。
2.根据权利要求1所述的***,其特征在于,反编译模块输入待检测应用程序的APK文件,使用反编译工具Androguard提取清单文件和DEX文件并根据DEX文件解析出源代码。
3.根据权利要求1所述的***,其特征在于,特征融合模块将调用子图特征集合和组件特征集合进行合并,通过Word2vec工具使用词嵌入方法提取合并后的集合中所有元素的语义特征向量,形成特征矩阵FV={x1,…,xt,…,xnF},xt为语义特征向量。
4.根据权利要求3所述的***,其特征在于,双向独立循环神经网络层还包括:
从先前到未来方向抽取特征其中,语义特征向量xt是该网络当前输入,/>表示该网络先前隐藏状态,/>是先前到未来方向的权重矩阵,/>是先前到未来方向的循环单元权重,/>是先前到未来方向的偏移量,/>表示哈达玛积的矩阵操作;
从未来到先前方向抽取特征表示该网络未来隐藏状态,/>是从未来到先前方向的权重矩阵,/>是从未来到先前方向的循环单元权重,/>是从未来到先前方向的偏移量;
拼接两个方向抽取的特征得到双向独立循环神经网络层的输出 其中,Wf和Wb为两个不同的权重矩阵;
全连接网络层输出hFCN=WFCNhBInd+bFCN,WFCN是全连接层神经元的权重矩阵,bFCN是全连接层神经元的偏移量;
Sigmoid函数输出层输出二分类结果y=sigmoid(hFCN)作为恶意软件检测结果,一类表示恶意软件,另一类表示良性软件。
5.根据权利要求4所述的***,其特征在于,基于类敏感机制的双向独立循环神经网络由多次迭代训练形成,迭代训练过程基于损失函数:
其中,yk全连接网络第k个类的实际输出;tk是全连接网络第k类期望输出;C表示成本项;sam∈dataset表示计算训练集中的每一个样本;P是该样本的真实标签,k是该样本的预测标签。
6.一种计算机设备,其特征在于,包括:
存储器,用于存储指令;
处理器,用于调用所述存储器存储的指令执行以实现权利要求1-4中任一项所述的***。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311599310.5A CN117574370B (zh) | 2023-11-28 | 2023-11-28 | 一种恶意代码检测*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311599310.5A CN117574370B (zh) | 2023-11-28 | 2023-11-28 | 一种恶意代码检测*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117574370A CN117574370A (zh) | 2024-02-20 |
CN117574370B true CN117574370B (zh) | 2024-05-31 |
Family
ID=89893471
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311599310.5A Active CN117574370B (zh) | 2023-11-28 | 2023-11-28 | 一种恶意代码检测*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117574370B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107180192A (zh) * | 2017-05-09 | 2017-09-19 | 北京理工大学 | 基于多特征融合的安卓恶意应用程序检测方法和*** |
CN113935033A (zh) * | 2021-09-13 | 2022-01-14 | 北京邮电大学 | 特征融合的恶意代码家族分类方法、装置和存储介质 |
CN114817924A (zh) * | 2022-05-19 | 2022-07-29 | 电子科技大学 | 基于ast和跨层分析的安卓恶意软件检测方法及*** |
CN116305125A (zh) * | 2023-03-09 | 2023-06-23 | 中国工商银行股份有限公司 | 恶意代码的检测方法及其装置、电子设备及存储介质 |
CN116611063A (zh) * | 2023-05-15 | 2023-08-18 | 西北工业大学 | 一种基于多特征融合的图卷积神经网络恶意软件检测方法 |
CN116702143A (zh) * | 2023-06-15 | 2023-09-05 | 北京泛网互联科技有限责任公司 | 基于api特征的恶意软件智能检测方法 |
CN117113163A (zh) * | 2023-06-15 | 2023-11-24 | 中国人民解放军空军工程大学 | 基于双向时域卷积网络和特征融合的恶意代码分类方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11463472B2 (en) * | 2018-10-24 | 2022-10-04 | Nec Corporation | Unknown malicious program behavior detection using a graph neural network |
US11113397B2 (en) * | 2019-05-16 | 2021-09-07 | Cisco Technology, Inc. | Detection of malicious executable files using hierarchical models |
-
2023
- 2023-11-28 CN CN202311599310.5A patent/CN117574370B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107180192A (zh) * | 2017-05-09 | 2017-09-19 | 北京理工大学 | 基于多特征融合的安卓恶意应用程序检测方法和*** |
CN113935033A (zh) * | 2021-09-13 | 2022-01-14 | 北京邮电大学 | 特征融合的恶意代码家族分类方法、装置和存储介质 |
CN114817924A (zh) * | 2022-05-19 | 2022-07-29 | 电子科技大学 | 基于ast和跨层分析的安卓恶意软件检测方法及*** |
CN116305125A (zh) * | 2023-03-09 | 2023-06-23 | 中国工商银行股份有限公司 | 恶意代码的检测方法及其装置、电子设备及存储介质 |
CN116611063A (zh) * | 2023-05-15 | 2023-08-18 | 西北工业大学 | 一种基于多特征融合的图卷积神经网络恶意软件检测方法 |
CN116702143A (zh) * | 2023-06-15 | 2023-09-05 | 北京泛网互联科技有限责任公司 | 基于api特征的恶意软件智能检测方法 |
CN117113163A (zh) * | 2023-06-15 | 2023-11-24 | 中国人民解放军空军工程大学 | 基于双向时域卷积网络和特征融合的恶意代码分类方法 |
Non-Patent Citations (1)
Title |
---|
基于图神经网络的恶意软件分类方法;杜建斌 等;互联网周刊;20230915;93-95 * |
Also Published As
Publication number | Publication date |
---|---|
CN117574370A (zh) | 2024-02-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109753800B (zh) | 融合频繁项集与随机森林算法的Android恶意应用检测方法及*** | |
CN107122660B (zh) | 一种Android应用软件用户隐私信息泄露检测方法 | |
US20160057159A1 (en) | Semantics-aware android malware classification | |
Wu et al. | A survey of android malware static detection technology based on machine learning | |
CN109614795B (zh) | 一种事件感知的安卓恶意软件检测方法 | |
CN107194251A (zh) | Android平台恶意应用检测方法及装置 | |
EP3028203A1 (en) | Signal tokens indicative of malware | |
WO2019237362A1 (en) | Privacy-preserving content classification | |
CN104143008A (zh) | 基于图片匹配检测钓鱼网页的方法及装置 | |
JP7531816B2 (ja) | イメージ基盤悪性コード検知方法および装置とこれを利用する人工知能基盤エンドポイント脅威検知および対応システム | |
CN112149124A (zh) | 一种基于异构信息网络的安卓恶意程序检测的方法和*** | |
Abubaker et al. | Exploring permissions in android applications using ensemble-based extra tree feature selection | |
Bhatia et al. | Tipped Off by Your Memory Allocator: Device-Wide User Activity Sequencing from Android Memory Images. | |
Rathi et al. | Droidmark: A tool for android malware detection using taint analysis and bayesian network | |
Kandukuru et al. | Android malicious application detection using permission vector and network traffic analysis | |
Hou et al. | Disentangled representation learning in heterogeneous information network for large-scale android malware detection in the COVID-19 era and beyond | |
Zhang et al. | A multiclass detection system for android malicious apps based on color image features | |
Lubuva et al. | A review of static malware detection for Android apps permission based on deep learning | |
CN104484598A (zh) | 一种保护智能终端安全的方法和装置 | |
CN117574370B (zh) | 一种恶意代码检测*** | |
CN103093147A (zh) | 一种识别信息的方法和电子装置 | |
KR20220101952A (ko) | 비트코인 불법거래 탐지 장치 및 방법 | |
Congyi et al. | Method for detecting Android malware based on ensemble learning | |
CN117118661A (zh) | 基于模糊测试的闭源攻击合约自动识别方法、***及设备 | |
CN116932381A (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 |