CNN-DNN_AMD:基于CNN和DNN Bybrid机制的Android恶意软件检测方法 Android Malware Detection Method Based on CNN and DNN

基于CNN和DNN Bybrid机制的Android恶意软件检测方法

# **摘要**:

随着恶意软件攻击方法的不断升级和发展,传统的检测方法在面对新型恶意软件攻击时表现出分类精度低、易过拟合、误报率高等一系列严重问题。为了应对这些挑战,本研究引入了一种创新的深度卷积神经网络(D-CNN)方法,巧妙地集成了权限功能和 API 调用图。通过DNN学习高层抽象表示,并与CNN结合构建多尺度特征表示,旨在提高检测模型的性能,增强对新恶意攻击的抵抗力。为了保证数据的标准化和代表性,首先采用Min-Max方法对权限特征进行归一化,保证数据的标准化。其次,采用蚁群优化方法实现降维,防止过拟合。本文在 Drebin 和 Google Play Store 数据集上进行了实验。结果证明,D-CNN的混合结构对数据结构表现出更深入的理解,准确率达到96.80%,能够实现更全面、更准确的恶意软件检测和分类。它在检测性能上优于单一深度学习方法。

索引术语——API 调用图、卷积神经网络 (CNN)、深度 CNN (DNN)、图嵌入、权限。

# 一、引言

随着移动设备的广泛普及,Android操作系统以其优秀的功能、较高的普及度、优秀的用户体验、强大的安全性成为用户的主流选择。在全球范围内,Android操作系统是目前最流行的移动操作系统之一。据Statista统计,截至2023年3月,Google Play应用商店中的应用程序数量已超过300万个[1]。然而,由于其开放性和广泛的应用范围,Android也成为网络攻击和恶意软件的主要目标。 Android 恶意软件的威胁不容忽视。这些恶意软件能够在用户不知情的情况下窃取用户的私人信息、窃取账户信息、发送恶意短信或电子邮件,甚至破坏设备的操作系统,对用户安全构成威胁。巨大的威胁。因此,Android 设备面临恶意应用程序、数据泄露、信息盗窃和隐私侵犯等多重风险 [2]。除此之外,Android平台的开放性和高适应性[3]使其成为网络攻击的理想目标。鉴于Android设备的普及和不断变化的网络环境,预防这些威胁变得至关重要。

为了规避现有的检测技术,恶意软件设计者通过不断修改源代码来创建各种恶意软件变体。这种持续的技术升级使得传统的检测方法在面对这些新威胁时显得力不从心。尤其是随着混淆技术的日益成熟和广泛应用,恶意代码变得更加隐蔽。混淆后的代码表面上看起来很正常,但实际上它的行为和形式发生了重大变化[4]。这种混淆技术的广泛使用使得检测恶意软件变得前所未有的困难,使得传统的检测方法难以跟上这种快速发展的威胁。尤其是面对新的攻击,传统的检测方法暴露出过拟合、分类精度低、误报率高等一系列问题。传统的检测方法需要快速适应恶意软件设计者不断增长的创新,以保持有效抵御威胁。尤其是在指令集混淆等先进技术的挑战下,有必要开发更加智能、灵活的检测机制,使其能够及时识别并响应变异的恶意代码。在此背景下,我们面临着一个开放而复杂的问题,即如何有效应对这些新威胁,提高恶意软件检测的准确性和鲁棒性。

传统方法的局限性促使我们寻求集成深度学习和优化算法的创新解决方案,以更好地应对不断变化的攻击方法。因此,本研究引入了一种创新的深度卷积神经网络(D-CNN)方法,将权限特征和API调用图巧妙地结合在一起。通过DNN学习高层抽象表示,并与CNN结合构建层次化特征表达,旨在提高检测模型的性能,增强对指令集混淆攻击的抵抗力。为了保证数据的标准化和代表性,我们首先使用Min-Max方法对权限特征进行归一化,以保证数据的标准化。随后,采用蚁群优化法(ACO)方法实现降维,防止过拟合。在 Drebin 和 Google Play Store 数据集上的实验结果表明,D-CNN 的混合结构表现出了对数据结构更深入的理解,达到了 93.72% 的准确率。该方法能够实现更全面、更准确的恶意软件检测和分类,同时在检测性能方面优于单一深度学习方法。这不仅证实了D-CNN方法在恶意软件检测领域的优异性能,而且凸显了其对对抗性攻击的强大适应性和鲁棒性。

综上所述,本文提出了一种基于CNN和DNN多尺度特征融合的Android恶意软件检测方法。尝试权限和API调用图可以充分应对新的恶意攻击并提高检测准确性和效率。本文的主要贡献如下。
    本文介绍了一种创新的D-CNN多尺度特征融合方法,巧妙地融合了权限特征和API调用图。通过DNN学习高层抽象表示,并与CNN结合构建层次化特征表达,旨在增强对新恶意攻击的抵抗力。  
    鉴于训练过程中大量提取的权限和API会导致DNN过拟合,本研究引入ACO方法来应对这一挑战。 ACO的引入旨在通过降维来缓解高维数据带来的过拟合问题。  
    为了解决某些特征过度主导模型学习的问题,我们在数据预处理中使用最小-最大归一化将原始数据映射到[0, 1]范围,从而对不同特征的尺度进行归一化。

本文其余部分的结构如下。第二节介绍背景和相关工作。第三节提到了权限和API调用特征的提取和预处理操作,介绍了D-CNN恶意软件检测模型,并指出了所使用的两种方法。在第四节中,进行了许多实验来证明D-CNN的检测性能,包括不同的图嵌入方法实验、不同的卷积核大小以及不同的深度学习模型对检测性能的影响。第五节得出结论并提出现有研究的不足。

# 二.相关工作

为了有效地检测和预防恶意软件,许多研究人员采用了各种方法和技术。目前,针对Android漏洞利用权限与API调用图结合的研究还很有限。本研究创新性地结合了API调用的图结构和权限特性,克服了常见的代码混乱问题。这种方法为恶意软件检测提供了新的视角。

在恶意软件检测领域,研究人员广泛关注Android应用程序的权限和API调用。 Android权限是应用程序在系统中执行操作的授权机制,而API调用是应用程序通过调用系统提供的函数来实现的。阿拉扎布等人。 [5]计算不同权限的使用次数以及与API的映射关系。结果表明,恶意软件比良性应用程序发出更多未知 API 调用,并且恶意软件比良性应用程序更频繁地请求访问敏感数据。虽然这种方法有效地结合了权限、API 和包级信息,但我们的方法可以在此基础上更深入地了解权限和 API 调用之间的复杂关系。索兰基等人。 [6]在应用程序API调用和权限列表之间建立了对应关系,以解决隐藏权限的恶意软件。经过实验,他们发现大多数人低估了权限,并且一些应用程序引发了数据隐私和安全问题。虽然这种方法解决了隐藏权限的问题,但我们的方法通过图结构分析揭示权限和 API 之间隐藏的、非直观的联系,从而提供更全面的分析。

除了权限之外,基于API的方式也引起了广泛的关注。 R-PackDroid,由 Scala 等人提出。 [7],专注于检测勒索软件,利用其对特定 API 的依赖来实现更准确的恶意软件检测。此外,黄等人。 [8]提出了EAODroid,这是一种基于API的增强方法,通过学习系统API序列的相似性并将相似的API分组到集群中来提高Android恶意软件的分类准确性。为了有效地选择有价值的权限和 API 功能,Kong 等人。 [9]提出了一种功能分组策略,并设计了一个以特征为中心的孪生CNN。通过有效捕捉权限与API特征之间的关系,进一步提升检测性能。另一方面,高等人。 [10]探索了一种基于图卷积网络的Android恶意软件检测方法,将应用程序和API映射到异构图,并学习应用程序和API之间的复杂关系。实现有效检测。同样,蔡等人。 [11]提出JOWMDroid,通过联合优化和加权特征选择,综合考虑系统资源、权限、组件等多个特征类别,提高恶意软件检测的准确性。金等人。 [12]提出了一种多模型恶意软件检测框架。该模型使用基于存在的字符提取方法来细化特征向量,以更好地表征恶意软件检测中的特征。为了快速确定新的恶意样本与已发布的恶意软件之间的相似性,Hu 等人。 [13]根据恶意软件的函数调用图设计了恶意软件索引树。该方法不易受指令影响并且计算成本较低。

为了应对运行时造成的巨大开销,DREBIN [14] 可以以较低的误报率识别恶意应用程序。虽然该方法可以在一定程度上应对代码混淆和动态代码加载,但该方法无法访问检索到的代码,仍然存在静态分析的固有缺陷。针对恶意软件的安全和隐私问题,Qiu 等人。 [15]在检测已知的 Android 恶意软件、小型恶意软件和零日恶意软件家族方面分别可以达到 1.00、0.98 和 0.63 的准确率。邹等人。 [16]使用IntDroid分析敏感API调用和函数调用图之间的关系,可以检测到28个零日恶意软件。由于采用紧密度分析方法,该方法在分析速度上并不快。在第二部作品中,Qiu 等人。 [17]通过逆向工程提取操作码和API调用图等特征,在检测到未知恶意软件时优于Drebin方法。但这种方法需要花费一些时间来处理。

这些方法的互连展示了研究人员对深度学习等先进技术的创造性整合。然而,由于这些方法提取的特征过多,训练过程中容易出现过拟合。其次,面对指令集混淆攻击时,会出现分类精度低、误报率高等问题。本文主要关注API调用的结构特征以及权限数据的深度关联。这提供了与传统检测方法不同的视角,可以更有效地识别新的、复杂的恶意软件行为。

# 三.工作描述

针对Android环境下的恶意软件检测,本文提出了一种基于权限和API特征的检测模型,如图1所示。该系统包括五个步骤:1)数据收集; 2)反编译APK文件; 3)特征提取和预处理; 4)数据变换和降维; 5)模型训练和测试。该模型将权限和API调用图结合起来,通过图嵌入处理将API调用图转换为低维特征向量,以获得图的结构信息。

![400](../czc知识库/9-无奇不有/9-附件/附件/CNN-DNN_AMD:基于CNN和DNN%20Bybrid机制的Android恶意软件检测方法%20Android%20Malware%20Detection%20Method%20Based%20on%20CNN%20and%20DNN%20Bybrid%20Mechanism_image.png)

## A. 处理权限特征

权限系统是Android应用程序中必要的安全机制。恶意应用程序总是比良性应用程序更频繁地请求某些权限[18]。要提取权限,首先需要从数据集中解压Android应用程序,然后使用Apktool反汇编得到AndroidManifest.xml文件和smali,其中权限位于manifest文件中。

从应用程序中提取的特征与已知的恶意软件签名库[19]进行比较,如果特征向量等于特征库中的值,则标记为1;否则标记为0。例如,算法**1**将提取的结果转换为CSV文件中的向量。设R代表数据集(恶意软件和良性软件),$r_i$ 代表数据集中的第i个程序,j代表某个权限,即 $R_i = {r_1, r_2, r_3 ...}$ ,如图以下公式:

$$
r_j=\begin{cases}1,&r_i\text{ presence permisssion }j\\0,&x\geq0\end{cases}\ \ \ (1)
$$

![300](../czc知识库/9-无奇不有/9-附件/附件/CNN-DNN_AMD:基于CNN和DNN%20Bybrid机制的Android恶意软件检测方法%20Android%20Malware%20Detection%20Method%20Based%20on%20CNN%20and%20DNN%20Bybrid%20Mechanism_image-2.png)

## B. API调用特征的处理

通常,Android应用程序需要通过调用API来实现特定的功能,这些API允许应用程序与底层系统进行交互。权限系统限制对 Android 应用程序中某些关键 API 调用的访问,并且经常发生某些 API 调用可能允许访问智能手机上存储的某些恶意软件样本的敏感数据或资源的情况。不同的恶意软件通常会调用不同的API,不同的行为会调用不同的API。例如,用于监听敏感数据的恶意软件使用 getDeviceId() 和 getSubscriberId() 函数来访问敏感数据。进行数据通信的恶意软件利用execHttpRequest()和setWifiEnabled()函数来实现网络通信。恶意软件用于执行外部命令,使用Runtime.exec()函数;对于混淆恶意软件,请使用 Cipher.getInstance() 函数。

可反编译的smali文件用于确定应用程序进行的API调用的信息,获取API调用的顺序,并有效地揭示程序的意图,如算法**2**所示。然后使用控制流程图(CFG)表示运行时调用的所有可能的执行路径。形式上,CFG 由两部分组成,第一部分是记录 API 调用的节点,第二部分是在连续指令之间创建链接的边[20]。边 (n1, n2) 表示一个 API 调用,该调用由执行路径之一上的 n1 和随后对 n2 的调用表示,如图 **2** 所示。

![500](../czc知识库/9-无奇不有/9-附件/附件/CNN-DNN_AMD:基于CNN和DNN%20Bybrid机制的Android恶意软件检测方法%20Android%20Malware%20Detection%20Method%20Based%20on%20CNN%20and%20DNN%20Bybrid%20Mechanism_image-1.png)

![300](../czc知识库/9-无奇不有/9-附件/附件/CNN-DNN_AMD:基于CNN和DNN%20Bybrid机制的Android恶意软件检测方法%20Android%20Malware%20Detection%20Method%20Based%20on%20CNN%20and%20DNN%20Bybrid%20Mechanism_image-3.png)

## C. API调用图的图嵌入处理

API调用图是记录程序中所有函数调用关系的图结构。图嵌入是一种将图结构转换为向量表示的技术,可以将复杂的图数据表示为低维向量。使用图嵌入技术,您可以执行API函数分类、异常检测、代码克隆检测等任务。从一系列 API 调用派生的调用图可用于准确地对应用程序行为进行建模。要构建Android应用程序的API调用图,首先需要提取入口函数并基于入口函数进行建模。其次,在函数之间的所有调用之间建立链接。最后根据API调用顺序绘制调用图来分析应用的主要API。具体流程如图**3**所示。

![400](../czc知识库/9-无奇不有/9-附件/附件/CNN-DNN_AMD:基于CNN和DNN%20Bybrid机制的Android恶意软件检测方法%20Android%20Malware%20Detection%20Method%20Based%20on%20CNN%20and%20DNN%20Bybrid%20Mechanism_image-4.png)

图嵌入技术是将图数据转换为向量表示的技术。主要思想是将图中的节点或边转换为低维向量,使这些向量能够代表原图中节点或边的特征信息。主要包括以下三种方法。

1)DeepWalk方法[21]:主要由两个阶段组成。在第一阶段,该方法从图的每个顶点开始,使用固定长度的随机游走来生成语料库。在第二阶段,该方法在每个顶点之间迭代固定长度的随机游走,并强制顶点出现在长度为 γ 的窗口内。 i 表示第 i 个顶点,φ(vi) 表示边向量,P (νi|φ(νj)) 表示第 i 个顶点和第 j 个顶点的条件概率,其中 是窗口大小,令 γ= 2a,则最优概率对应的方程如下式所示:

$$
\max_{\Phi}\sum_{i\in\{j-a,...,j-1,j+1,...,j+a\}}\log P(v_i|\Phi(v_j))\ \ \ \ \ \ (2)
$$

2)Node2vec方法[22]:是另一种基于随机游走的图嵌入技术,提出的目标函数与Deepwalk方法类似。但为了计算目标,它通过引入偏置项来发现顶点域,这迫使该方法通过考虑当前节点和前一个节点来遍历下一个节点。 t代表前一个节点,x代表后一个节点,p为返回概率,q为输入参数,α为搜索参数,dtx为采样概率,那么节点之间的采样概率如下式所示:

$$
\alpha_{pq}\left(t,x\right)=\begin{cases}\frac{1}{p},&\text{if} d_{tx}=0;\\1,&\text{if} d_{tx}=1;\\\frac{1}{q},&\text{if} d_{tx}=2\end{cases}
\ \ \ \ \ \ (3)
$$

3)高阶邻近保留嵌入(HOPE)方法[23]:旨在将图数据转换为低维向量表示。 HOPE方法基于高阶邻近性的概念,通过保留节点之间的高阶邻接关系来捕获节点之间的结构特征。 HOPE方法的主要目标是利用图的高阶邻近性来定义节点之间的相似性度量,然后计算节点的向量表示。

## D. 使用最小-最大方法进行归一化

由于Android版本的差异,权限的具体列表和分类有所不同,导致不同权限的调用时间不同。因此,在数据预处理过程中,本文采用Min-Max归一化方法,旨在将数据缩放到[0, 1]范围内。在确定归一化范围时,首先需要计算权威特征的最大值和最小值,然后应用Min-Max公式将每个特征的值转换到指定的范围内。这可以提高模型的稳定性和收敛速度。对于每个特征 xi,使用以下公式对其进行标准化:

$$x_{\text{normalized}i}=\frac{x_{i}-\min}{\max-\min}\ \ \ \ \ \ (4)$$

为了保证输入值经过线性变换后仍然在目标范围内并保持相对比例关系,我们使用以下公式进行变换:

$$\begin{aligned}T&=\frac{V-Min_D}{Max_d-Min_D}\left(Tran\_Max_D-Tran\_Min_D\right)+Tran_{Min_D}\end{aligned}\ \ \ \ \ (5)$$

其中T是归一化结果,表示缩放后的值。 V是原始数据集中的特定值。 Min D 和 Max D 分别是原始数据集的最小值和最大值。它们用于计算原始值V在原始范围内的相对位置。 Tran_Min D 和 Tran_Max D 是目标范围(即我们希望将数据映射到的范围)的最小值和最大值。该公式的目的是将提取的特征映射到目标范围,使得归一化后的数据能够更好地适应D-CNN模型的训练。用于保证不同权限特征之间的数值范围相对一致,以提高模型的性能和稳定性。

## E. 使用 ACO 方法降维

在深度学习模型中,降维起着关键作用,其目标是提高预测精度并降低时间复杂度,同时减少冗余属性的数量。尤其是在神经网络训练阶段,面对高维权限和API调用图数据时会出现过拟合问题。为了应对这一挑战,我们使用 ACO 进行降维。蚁群算法以其优异的鲁棒性和解决复杂优化问题的优越性能而受到青睐,成为当前处理降维优化问题的先进技术。在该方法中,我们使用蚁群方法对提取的权限和API调用图数据进行降维,并通过选择最重要的特征子集来优化深度学习模型的训练效果。具体来说,我们设计了蚁群方法来寻找图中节点数最少的路径作为搜索过程的有效停止标准,以确保降维过程既高效又准确。该策略的实施将有助于在降低数据维度的同时保留关键信息,从而提高模型的泛化能力,有效应对过拟合问题。

在蚁群算法中,每只蚂蚁按照一定的策略选择自己的下一个移动位置。通常,蚂蚁根据信息素浓度和启发式信息做出选择。那么在t时刻,第k只蚂蚁从位置i移动到位置j的概率可以用下面的公式表示:
$$p_{ij}^k\left(t\right)=\frac{T_{ij}^\alpha(t)\eta_{ij}^\beta(t)}{\sum_{s\in\text{allowcd}_k}T_{ij}^\alpha(t)\eta_{ij}^\beta(t)}\ \ \ \ \ (6)$$
其中$p^k_{ij}(t)$表示第k只蚂蚁在时间t从位置i移动到位置j的概率。 $T^{α}_{ij}(t)$ 表示信息素浓度,其中α是信息素影响因子,t表示时间。 $η^β_{ij}(t)$ 表示吸气因子,其中β 是吸气因子的影响因子,t 表示时间。分母代表灵感因子,其中β为灵感因子的影响因子,t代表时间。这通常是与问题相关的启发式消息。

$d_{ij}$是位置i和j之间的距离,$η_{ij}$表示启发因子,如下式所示:
$$\eta_{ij}=\frac1{d_{ij}}\ \ \ \ \ (7)$$
经过一段时间Δt后,通过以下两个公式再次调整信息量:
$$T_{ij}\left(t+\Delta t\right)=\left(1-\rho\right)T_{ij}\left(t\right)+\Delta T_{ij}\left(t\right)\ \ \ (8)$$
$$\Delta T_{ij}\left(t\right)=\sum_k^mT_{ij}^k\left(t\right)\ \ \ \ \ (9)$$
在每次迭代中,位置 i 到 j 之间的信息素浓度 $T_{ij}$ 通过蒸发现有信息素 $(1 − ρ)T_{ij}(t)$ 并将每只蚂蚁释放到路径 i 到 j 上来更新。信息素总和 $ΔT_{ij}(t)$ 来实现,如下式所示:
$$\Delta T_{ij}^k\left(t\right)=\frac Q{L_k}\ \ \ \ \ (10)$$
当每只蚂蚁 k 在 t 时刻选择路径 i 到 j 时,会释放一定量的信息素,信息素增量由 Q 除以路径长度 $L_k$ 确定。这可以通过使其他蚂蚁更有可能选择该路径来优化路径选择,如下式所示:
$$L_k=\sum_{j=1}^n D\left(R\left(j\right),R\left(j+1\right)\right)\ \ \ \ \ \ (11)$$
蚂蚁k在当前路径R上的总路径长度是通过将路径上两个相邻点之间的距离相加得到的。该路径长度的计算方法反映了路径的总成本,通常在ACO方法中用于评估路径的质量。

在寻找最佳维度子集时,我们使用 ACO 来细化搜索空间。该子集被定义为具有最高的准确度并提取最少的维度,同时保持最低的错误率。我们的方法通过评估这个维度子集来实现分类器最大准确度 (A) 的目标。具体来说,在ACO的训练过程中,我们采用准确率作为性能衡量标准来计算ACO的分类误差(E)。在进化训练阶段,我们对每种可能情况的维度子集使用适应度函数FD的计算公式,如下式所示:
$$F_D=\gamma*(1-A)+(1-\gamma)*\frac{E_D}{O_D}\ \ \ \ \ (12)$$
其中A表示分类器在提取的维度子集上的准确率,$γ$ 是一个常数,用于平衡分类准确率和降维之间的关系。提取的维度子集由 ED 表示,而数据集中包含的维度总数由 OD 表示,范围为 [0, 1]。在我们的研究中,我们将 $γ$ 设置为 0.9。随后,为了进一步分类,我们将数据集的结果维度传递给 DNN。

## F.D-CNN恶意软件检测模型

在计算机视觉任务中,CNN 可用于特征提取,然后使用 DNN 进行分类或回归。尽管这些模型通常单独使用,但最近的一些研究将它们结合起来以提高预测率。虽然模型复杂性和可解释性之间总是存在权衡,但复杂的模型可以更好地捕获各种相关性,从而产生更准确的预测[24]。CNN主要用于处理二维图像数据。 DNN建立在感知器模型的基础上,是一个多输入单输出模型,用于处理权限特征和API调用特征的组合并过渡到下一层。本文提出了一种结合CNN和DNN的API调用图和权限特征检测模型,如图**4**所示。它可以充分利用基于存在的权限特征和基于相似性的API调用特征,其中API调用是转化为图以增强特征的稳定性并防止代码混淆技术。

![500](../czc知识库/9-无奇不有/9-附件/附件/CNN-DNN_AMD:基于CNN和DNN%20Bybrid机制的Android恶意软件检测方法%20Android%20Malware%20Detection%20Method%20Based%20on%20CNN%20and%20DNN%20Bybrid%20Mechanism_image-5.png)

在DNN模型中,w表示线性关系系数,b表示偏置项,$δ(z)$ 表示激活函数,a表示隐藏层和输出层的值,m表示神经元数量,k表示上一层的第k个神经元,$a^l_j$表示第l层第j个神经元的输出,如下式所示:
$$a_j^l=\delta(z_j^l)=\delta\left(\sum_{k=1}^mw_{jk}^la_k^{l-1}+b_j^l\right)\ \ \ \ \ (13)$$
在输入层中,可以用t={1,2,...,n}来表示DNN网络有n层, $l^t$ 表示网络中的层, $x^t$ 表示输入层的向量, $z^{(l^t)}$ 表示 $l^t$ 层的输入向量, $y^{(l^t)}$ 表示 $l^t$ 层的输出, $W^{(l^t)}$ 表示 $l^t$ 层的权重, $b^{(l^t)}$ 表示 $l^t$ 层的偏置项。 $f$ 是 ReLU。那么DNN的前馈运算如下式所示:
$$\begin{aligned}
y^{(0^t)}& =x \ \ \ \ \ \ (14)\\
z^{(l^t+1)}& =W^{(l^t+1)}y^{(l^t)}b^{(l^t+1)} \ \ \ \ \ \ (15)\\
y^{(l^t+1)}& =f\left(z^{(l^t+1)}\right)=\max\left(0,z^{(l^t+1)}\right)\ \ \ \ \ (16) 
\end{aligned}$$
在先进的D-CNN模型中,我们采用结合不同空间分辨率的卷积核的多维特征提取方法,实现对输入特征的全面分析。每个卷积层通过一组参数化卷积核 $K^{(l)}_s)$ 和相应的偏置向量 $b^{(l)}_s)$ 对输入特征图 $X^{(l−1)}$ 进行变换,从而产生一系列丰富的特征图 $C^{(l)}_s$
$$\mathbf{C}_s^{(l)}=\phi\left(\sum_i^I\mathbf{K}_{s,i}^{(l)}*\mathbf{X}_i^{(l-1)}+\mathbf{b}_s^{(l)}\right).\quad(17)$$
其中,s表示卷积核的大小,l表示当前级别,$\phi$ 是高阶非线性激活函数ReLU,\*表示卷积操作。
接下来,我们通过高级融合函数 $\mathcal F$ 将不同大小的特征图合并为统一的特征描述符 $C^{(l)}_{fusion}$  ,以捕获从局部到全局的模式
$$\mathrm{C}_{\mathrm{fusion}}^{(l)}=\mathcal{F}\left(\left\{\mathrm{C}_s^{(l)}\right\}_{s\in S}\right)\quad(18)$$其中$S$是卷积核大小的集合,F是特征融合机制。

此外,我们将多尺度特征图 $C^{(l)}_{fusion}$ 通过深度特征转换层 $D^{(l)}$ ,其中包括一系列卷积运算,可以进一步纯化和抽象特征。
$$\mathrm{C}_{\mathrm{fusion}}^{(l+1)}=\mathrm{D}^{(l)}\left(\mathrm{C}_{\mathrm{fusion}}^{(l)}\right).\quad(19)$$
最后,模型使用全连接层 $W_{fc}$ 和softmax函数将高级特征 $C^{(l)}_{fusion}$ 映射到输出类别概率分布y,其中L是最后一个融合层
$$\mathrm{y}=\mathrm{softmax}\left(\mathrm{W}_{\mathrm{fc}}\cdot\mathrm{C}_{\mathrm{fusion}}^{(L)}+\mathrm{b}_{\mathrm{fc}}\right).\quad(20)$$
其中, $\cdot$ 表示矩阵乘法,反映了高维特征空间中全连接层的线性决策边界。在该架构中,我们不仅提供了多尺度特征的深度集成,还通过精心设计的深度特征转换层增强了模型的特征表示能力,这使得D-CNN模型在复杂的恶意软件检测任务中表现出色。

# 四.实验及结果分析

本文深入介绍了研究中使用的数据集、执行的实验程序以及获得的关键结果。在接下来的章节中,我们将首先介绍实验中使用的数据集,然后展示实验结果并进行详细分析,旨在揭示模型的性能、潜在趋势以及与其他方法的比较结果。

## A. 数据集

在本研究中,我们使用Drebin数据集作为恶意软件样本的来源,其中包含5560个恶意样本。此外,我们还从Google Play Store和其他应用商店收集了5560个良性应用样本作为对照。为了更准确地评估系统检测恶意软件的性能,我们采用了10倍交叉验证的方法。 11120 个应用程序被随机分为 10 个同样大的子集。每次迭代都采用随机洗牌的方法,保证训练集和测试集中的样本分布更加均匀。其中1个子集作为测试集,其余9个子集组合起来作为训练集。 Drebin 数据集中的恶意样本分布在 179 个不同的家族中,我们确保这种多样性反映在每个折叠的分布中。

## B. 评估指标

为了测试开发框架的能力,使用了召回率(R)、精度(P)、假阳性率(TPR)、假阳性率(FPR)、准确率(ACC)和F-Measure(F),如下式所示:

$$
\begin{array}{l}
\begin{aligned}
\mathrm{TPR} & =\frac{\mathrm{TP}}{\mathrm{TP}+\mathrm{FN}} \text { (21) }\\
\mathrm{FPR} & =\frac{\mathrm{FP}}{\mathrm{TN}+\mathrm{FP}} \text { (22) }\\
\mathrm{P} & =\frac{\mathrm{TP}}{\mathrm{TP}+\mathrm{FP}} \text { (23) }\\
\mathrm{R} & =\frac{\mathrm{TP}}{\mathrm{TP}+\mathrm{FN}} \text { (24) }\\
\mathrm{F} & =\frac{2 \mathrm{TP}}{2 \mathrm{TP}+\mathrm{FP}+\mathrm{FN}} \text { (25) }\\
\mathrm{ACC} & =\frac{\mathrm{TP}+\mathrm{TN}}{\mathrm{TP}+\mathrm{TN}+\mathrm{FP}+\mathrm{FN}}\text { (26) }
\end{aligned}
\end{array}
$$

## C. 实验结果

经过 10 倍交叉验证方法后,我们观察到该模型在不同折叠中表现一致。并且该模型在各方面都表现出比较稳定的表现。平均性能指标如图**5**所示。

![400](../czc知识库/9-无奇不有/9-附件/附件/CNN-DNN_AMD:基于CNN和DNN%20Bybrid机制的Android恶意软件检测方法%20Android%20Malware%20Detection%20Method%20Based%20on%20CNN%20and%20DNN%20Bybrid%20Mechanism_image-6.png)

这些性能指标反映了我们的模型在 10 倍交叉验证中的稳定性和准确性。他们表明我们的模型在不同的数据子集上具有很好的泛化能力,并且在检测任务中具有良好的性能。这些结果对于我们的研究和实验的成功至关重要,证明了我们的模型在处理给定任务方面的可行性和有效性。

Deepwalk 在这项任务上表现相当稳健,准确率高达 0.9480。其准确率和召回率均较高,表明该方法在正确性和全面性之间取得了良好的平衡。 Node2vec 在精确率、召回率和 F-measure 方面都表现良好,尤其是 F-measure 达到了 0.7714。准确率也比较高,为0.9058。 HOPE在查准率、查全率、F-measure等方面表现较差,并且在某些方面表现较差。其准确率为0.9276,表明该模型在整体任务中的表现较低。总体而言,Node2vec 在这项任务上表现出最佳性能,具有高精度、召回率和 F 度量。 Deepwalk的表现也相当不错,准确率和F-Measure都处于较高水平。然而,HOPE 在这项任务上相对较弱,准确率较低。准确率是对整体表现的总体评估,考虑了准确率和召回率。实验结果如图**6**所示。

![400](../czc知识库/9-无奇不有/9-附件/附件/CNN-DNN_AMD:基于CNN和DNN%20Bybrid机制的Android恶意软件检测方法%20Android%20Malware%20Detection%20Method%20Based%20on%20CNN%20and%20DNN%20Bybrid%20Mechanism_image-7.png)

在多尺度特征融合策略中,本文对卷积核大小进行了实验,结果如**表1**所示。我们注意到,不同核心尺寸的 CNN 在各种性能指标上表现出显着差异。对于召回率,核心尺寸为 (5, 5) 的模型表现出最高的召回率 96.11%,表明该模型在处理较大核心尺寸时在识别正样本方面表现更好。然而,就准确性而言,这个核心尺寸 90.94% 虽然性能良好,但并不是最佳的。最引人注目的是 F 度量,其中核心尺寸为 (4, 4) 的模型表现最好,达到 91.86%,在召回率和精度之间显示出良好的平衡。最后,在准确率方面,核心尺寸为 (5, 5) 的模型再次表现最好,达到 95.64%,表明它在整体分类任务中表现最准确。这些结果表明,虽然较大的核心尺寸在召回率和准确性等指标上表现更好,但它们在 F 指标方面存在缺陷。

![400](../czc知识库/9-无奇不有/9-附件/附件/CNN-DNN_AMD:基于CNN和DNN%20Bybrid机制的Android恶意软件检测方法%20Android%20Malware%20Detection%20Method%20Based%20on%20CNN%20and%20DNN%20Bybrid%20Mechanism_image-8.png)

在本实验中,我们对DNN、CNN和D-CNN进行了综合比较,旨在评估这三种方法在各种关键性能指标上的性能,结果如**表2**所示。为了保证数据的代表性和结果的可靠性,我们采用K折交叉验证的方法,在K=1、4、7下进行实验,并详细记录每个设置下的结果。实验发现,首先我们关注的是Accuracy指标。准确率是一个综合性能指标,反映模型对样本进行正确分类的能力。从数据中可以看出,当K=1时,D-CNN模型在准确率方面表现最好,达到93.65%,而DNN和CNN分别为81.18%和83.82%。所有模型的准确率都随着K值的变化而提高,但D-CNN仍然保持了较高的准确率。其次,我们重点关注TPR和FPR。 TPR 代表模型正确识别恶意软件的能力,而 FPR 代表模型将良性应用程序错误识别为恶意软件的能力。在不同的K值下,D-CNN模型的TPR总是较高,而FPR较低,这表明D-CNN在正确识别恶意软件的同时,也不太可能将良性应用误判为恶意软件。另一个重要指标是F-Measure,它考虑了Precision和Recall。 F-Measure 衡量模型的精度和召回率之间的平衡。在不同的K值下,D-CNN模型的F-Measure表现良好,表明其能够在保持良好的精度的同时保持较高的召回率。最后,我们还关注模型的训练时间和平均检测时间(MTTD)。 D-CNN模型对于K=1和K=4需要更长的训练时间,但它也表现得更好。因此,在选择模型时需要在训练时间和性能之间进行权衡。综上所述,根据数据分析,D-CNN模型在不同K值下表现出较高的准确率、TPR和F-Measure,特别是在K=1和K=4的情况下。这表明D-CNN模型具有在恶意软件检测任务中表现良好,但需要相对较多的训练时间。总体而言,这些结果为不同需求和条件下的模型选择提供了重要指导。当追求最高的准确率和TPR时,D-CNN是最佳选择。

![400](../czc知识库/9-无奇不有/9-附件/附件/CNN-DNN_AMD:基于CNN和DNN%20Bybrid机制的Android恶意软件检测方法%20Android%20Malware%20Detection%20Method%20Based%20on%20CNN%20and%20DNN%20Bybrid%20Mechanism_image-9.png)

在本研究中,我们使用 Drebin 数据集评估了 D-CNN 模型检测新型 Android 恶意软件的能力。该数据集包含179个恶意软件家族,其中171个家族用于训练D-CNN模型,其余8个家族作为测试集,评估模型识别未见过样本的能力。测试集中包含的家族及其对应的数量如**表3**所示。我们特别关注模型 ACC 和 FPR 等关键绩效指标。

![300](../czc知识库/9-无奇不有/9-附件/附件/CNN-DNN_AMD:基于CNN和DNN%20Bybrid机制的Android恶意软件检测方法%20Android%20Malware%20Detection%20Method%20Based%20on%20CNN%20and%20DNN%20Bybrid%20Mechanism_image-10.png)

我们比较了三种不同的深度学习模型在检测新恶意软件家族方面的表现,并通过 ROC 曲线评估了它们在二元分类任务中的性能,如图 7 所示。首先,从原始 ROC 曲线数据的蓝色实线可以看出, D-CNN 模型在整个 ROC 曲线上表现出优异的性能。其AUC值达到0.9488,表明该模型能够在不同阈值下实现优异的TPR和较低的FPR。这表明D-CNN模型在处理二元分类任务时表现出较高的准确性和可靠性。其次,我们将实验中CNN的ROC曲线数据表示为红色虚线。该模拟模型与原始D-CNN模型相比,FPR略有增加,表明在某些情况下可能会出现错误分类。不过,尽管如此,模型的性能仍然比较高,AUC值为0.8286,仍然表现出了不错的性能。最后,我们介绍DNN模型,用绿色虚线表示。该模型在整个 ROC 曲线上显示出较高的 TPR,表明它在不同阈值下可以更好地识别正类。其AUC值为0.7306,表明该模型在二元分类任务中也表现出了高性能。总的来说,通过这些实验结果,我们可以得出结论,D-CNN模型在性能上显着优于其他两个模型,具有更高的AUC值,这表明它具有更高的处理该任务的能力。准确性和可信度。虽然我们还引入了仿真模型进行比较,但D-CNN模型的性能仍然很出色。该研究为深度学习模型的性能评估提供了有力支撑,为进一步的研究和应用提供了重要参考。初步结果表明,D-CNN模型在整体性能上表现良好,尤其是在一些具有复杂行为特征的恶意软件家族中。然而,各个家族的模型检测也存在差异,这与家族的特征复杂度和样本数量有关。这些发现不仅验证了D-CNN模型在检测新恶意软件方面的有效性,而且为模型的进一步优化和未来的研究提供了有价值的见解。我们的研究强调了深入分析未知恶意软件样本的重要性,并有助于在实际应用中采用更精确的恶意软件检测方法。

本研究选择了四种能够进行恶意软件家族分类的基线模型,**表4**列出了我们提出的方法与基线方法之间的性能比较。 Drebin是一种基于多特征分析的Android恶意软件检测方法。它通过静态分析从清单文件和反汇编代码中提取尽可能多的特征,并用它来检测恶意软件。 A3CM和MFI是由同一位研究人员提出来研究恶意软件安全和隐私的。提取了Opcode、Permission、API等语义特征进行实验,但不能更好地表示APK的结构。 IntDroid提取应用程序的函数调用图后,会将其视为社交网络,并使用中心性分析来挖掘中心节点。最后,它计算敏感API和中心节点之间的亲密度,并以此作为检测恶意软件的基础。经过实验验证,当检测到未知恶意软件时,它的性能优于现有方法。

![300](../czc知识库/9-无奇不有/9-附件/附件/CNN-DNN_AMD:基于CNN和DNN%20Bybrid机制的Android恶意软件检测方法%20Android%20Malware%20Detection%20Method%20Based%20on%20CNN%20and%20DNN%20Bybrid%20Mechanism_image-11.png)

# 五、结论

本文提出一种基于CNN和DNN多尺度特征融合机制的Android恶意软件检测方法。该方法有效地利用了DNN学习高级抽象表示的能力和CNN通过结合权限特征和API调用图建立层次特征表达的能力。实验结果表明,这种混合结构的D-CNN模型可以实现对数据结构更深入的理解,在Drebin和Google Play Store数据集上达到93.72%的准确率,明显优于单一深度学习方法。 D-CNN模型在多尺度特征融合、提高检测精度和效率方面显示出显着的优势。实验结果验证了该模型在检测不同恶意软件家族和复杂行为特征方面的有效性,为更准确地检测和分类Android恶意软件提供了新的视角和方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值