基于权限集的安卓恶意软件检测

基于权限集的安卓恶意软件检测与分析

摘要

近年来,智能手机行业已成为发展最快的技术领域之一。安卓市场份额的持续增长以及除官方Google Play商店外各种应用来源的多样性,已引起恶意软件攻击者的关注。为应对来自不同来源的恶意安卓应用数量不断增加的问题,本文提出了一种基于安卓应用特征相似性的新方法。该方法通过静态分析从APK文件中提取特征来实现。所提取的特征对于构建高效的训练系统具有实用性和意义。本文提出了一种基于权限的模型,并利用自组织映射算法进行实现。所实现的方法使用1200个异构的安卓应用进行了分析。实验结果表明,该提出的方法在真正率、假正率和准确率方面均表现出更优的性能。

关键词 :安卓应用;Android恶意软件;Self-organizing map

1 引言

智能手机市场的份额正日益增长。越来越多的智能手机公司进入市场,推出具备大量新功能和附加功能的新机型。尽管智能手机行业竞争激烈,但如果想要进入这一行业,就必须提供比“优秀”更进一步的产品。这可以通过提升智能手机的处理器、操作系统、电池续航、存储容量、屏幕分辨率等多方面来实现。此外,智能手机内置的应用程序也提供了卓越的功能。多个应用程序同时运行会给操作系统带来负担更快的执行速度。为了应对这一需求,需要一个轻量级操作系统。安卓是轻量级且开源的操作系统。安卓操作系统的轻量级特性使其能够高效处理多个请求。开源特性则允许其从任何来源安装应用程序,可能是官方Google Play商店,也可能是任何第三方来源。为了检测基于安卓设备的威胁,主要采用两种技术:静态分析和动态分析 [1]。基于静态分析的研究在不运行应用程序的情况下进行检测和分析;而动态分析通常在应用程序执行期间或执行后进行检测和分析。

如今,针对安卓平台,官方Google Play商店中已有超过百万款应用——这些应用面向特定任务,几乎涵盖了我们生活的所有领域。随着安卓应用的多样化,安卓智能手机已深入渗透到我们的生活中,并成为其不可或缺的一部分[2]。安卓智能手机使用量和普及度的提升吸引了攻击者的关注。攻击者不仅影响了安卓智能手机的使用和普及,还带来了新的安全威胁。安卓恶意软件的增长速度与安卓智能手机市场的发展速度相同,两者呈正相关关系。这种比例关系给我们带来了巨大挑战。安卓恶意软件的增长催生了一个新的研究领域。为了应对安卓恶意软件快速增长所带来的挑战,我们需要采用一种新颖的方法,该方法还需能够以更高的准确率检测新型安卓恶意软件。

2 相关工作

已提出多种概念和技术以减少日益增长的安卓恶意软件数量。为了了解恶意软件传播情况,需要对相关研究工作进行详细研究。已有若干综述性论文关注恶意软件检测、分析及其传播的原因与影响,这些内容在[3–6]的研究中有所提供。Cooper 等人[3]指出,安卓应用发展迅速,几乎涵盖了游戏、娱乐、探险、教育、社交媒体、商业、生活方式及其他日常活动。随着这些应用的快速发展,开发者并未充分关注这些应用的安全性。因此,深入理解恶意软件特征显得尤为重要,这有助于防止应用中存在的诸多不良后果。[4]指出,恶意软件不仅仅与程序的异常执行有关。编写恶意软件背后存在巨大的利益驱动[5]。所有恶意软件的根本目的都是以各种方式对用户造成伤害,但并非所有恶意软件都具有相似的特征。根据恶意软件的特征,安卓恶意软件可分为49个不同的恶意软件家族[6]。他们提供了首个移动恶意软件综述,并分析了共计46个iOS、Symbian和安卓恶意软件样本及其背后的动机。文献中还存在其他基于安卓的分析与检测方法[7–9]。作者仅利用权限集来检测和分析安卓恶意软件[7]。他们开发了一种双层的基于权限的检测器。该检测器仅使用安卓应用请求的特征和使用的特征 [8]。他们提出了基于权限集的 PUMA 来检测安卓恶意软件 [9]。他们研究了安卓应用所请求权限之间的关系。该研究仅针对非恶意的安卓应用。

3 提出的工作和方法

为了检测恶意应用,提出的方法需要低级特征的可视化以及高级别的特征相似性,以帮助确定恶意行为的典型迹象。许多研究人员在事先已知类别标签的情况下实现了他们的方法。而在实现提出的方法时,我们不需要预先提供任何类别标签,因为我们采用了无监督聚类技术。数据集来自官方Google Play商店[10]和android-sandbox.net[11]。实施过程如下:
(a) 安卓应用逆向工程:在第一步中,使用了基于Java的APK工具对APK文件进行自动化逆向工程。该工具提供了可读的Android清单文件文件、多个 Smali文件以及其他资源子文件夹(第3.1节)。
(b) 广泛的静态分析:在第一步中,检查给定的安卓应用程序,并从Android清单文件和Smali文件中提取不同特征(第3.2节)。
(c) 向量空间嵌入:将提取出的特征分别映射到每个模型的向量空间中,以便基于相似性分析特征的模式和组合(第3.3节)。
(d) 基于自组织特征映射的可视化:自组织特征映射根据特征相似性形成聚类。特征的嵌入使我们能够使用自组织映射(SOM)识别恶意软件,从而更好地可视化特征(第3.4节)。

3.1 安卓应用逆向工程

收集到的安卓应用为.APK格式,用户无法直接阅读。为了使这些应用变得可读,我们必须将其转换为可读格式。这种对APK文件的转换通过逆向工程实现。使用APK工具[12]来转换APK文件。APK工具可近乎原始的形式还原应用。用户可以修改应用并重新构建该应用。它能够逐步调试Smali代码[15]。通常情况下,修改是为了添加某些功能。但攻击者会添加恶意代码并重新构建应用,以损害用户。

3.2 广义静态分析

所有基于安卓操作系统的智能手机都具有不同的功能,例如,某些设备支持蜂窝数据网络,而其他设备仅支持无线网络。安卓处理各种各样的特征。静态分析在不执行安卓应用的情况下对其进行检查,并尽可能提取出权限。每个安卓应用必须包含一个名为AndroidManifest.xml的清单文件。该文件提供了支持应用程序安装及后续运行所需的完整信息。安卓应用需要一些功能,如读取短信、发送短信、拨打电话、使用摄像头等。必须保护这些功能免受未经授权的使用。为此,安卓权限被创建以保护这些功能。每个应用都有一组用户在安装时接受的权限。所提取的权限对于构建模型具有帮助且意义明确。所提取特征的恰当性会影响结果。这些特征是从应用的安卓清单文件中提取的。例如,如果安卓应用想要访问网络的完整信息,则需在 AndroidManifest.xml清单文件中声明如下内容:

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

声明权限时使用 <uses-permission> 标签。

3.3 特征嵌入

提取的特征已被映射到向量空间中。每个应用程序的权限集对应生成一个输入向量。请求的权限以比特字符串的形式表示。每个应用程序的权限均以二进制(0,1)格式存储。如果特征向量用F表示,则

$$
F_i =
\begin{cases}
1 & \text{if and only if the } i^{th} \text{ permission requested} \
0 & \text{otherwise}
\end{cases}
$$

例如,如果一个应用请求了功能3、4和5,但未请求功能1和2,则该应用被表示为比特字符串[0, 0, 1, 1, 1]。模型的详细描述和构建如下所述:权限是安卓应用中最显著的安全特性。用户必须授权才能安装应用,因为这是安装应用的关键因素。一旦用户授权,该应用就会被安装到用户的设备上。攻击者也需要获得用户授权,才能将其应用安装到用户设备中。恶意应用看似与其他非恶意应用相似,但攻击者添加了一些额外的特征,影响了应用的正常运行。因此,攻击者在权限集中添加额外的无关权限,以在未经用户同意的情况下进行有害活动。

3.4 基于自组织特征映射的可视化

基于权限的模型已使用自组织映射(SOM)进行训练。SOM通过无监督学习来生成数据的低维(通常为二维)视图[13]。

SOM算法[9]

步骤1 :初始化神经元权重 $ w_{ij} = (w_{i1}, w_{i2}, …, w_{iR}) $。为了初始化神经元权重,使用了随机数。

步骤2 :加载一个输入模式 $ x = (x_1, x_2, …, x_M) $。这里,M可以是任意三个模型 $ M \in $ [基于权限的]。已计算模式x与每个神经元权重$ w_i $之间的距离,并按如下方式确定获胜神经元或最佳匹配神经元c:

$$
|x - w_c| = \min |x - w_i|
$$

欧几里得距离被归一化到范围[0, 1]。

步骤3 :更新获胜神经元c的所有邻居及其权重

$$
w_i(t+1) = w_i(t) + h_{ci}(t)(x(t) - w_i(t))
$$

其中
i 表示邻近神经元索引,t 为整数,表示离散时间坐标,$ h_{ci}(t) $ 是时间以及邻近神经元 i 与获胜神经元 c 之间距离的邻域核函数。$ h_{ci}(t) $ 定义了输入模式对自组织映射的影响区域。

$$
h_{ci}(t) = \exp\left(-\frac{|r_c - r_i|^2}{2\sigma^2(t)}\right)\alpha(t)
$$

其中 $ r_c $ 和 $ r_i $ 是神经元在SOM网格上的位置,$ \alpha(t) $ 学习率函数定义了核的宽度。
$ \alpha(t) $ 和 $ \sigma(t) $ 均随时间单调递减。

步骤4 :重复步骤2–3,直到满足收敛准则。

基于权限的模型已通过自组织映射(SOM)进行了训练。SOM提供了有趣的模式,有助于确定应用程序的恶意性。这种有趣的模式出现的原因是,SOM根据特征相似性进行聚类。

3.5 性能度量 [14]

为了预测基于机器学习的算法的准确率,文献中提供了多种分类器。针对上述问题,性能度量如下:

$ n_{ben \to ben} $ 为被正确分类为良性应用的良性应用数量
$ n_{ben \to mal} $ 为被错误分类的良性应用数量
$ n_{mal \to mal} $ 为被正确分类为恶意应用的恶意应用数量
$ n_{mal \to ben} $ 为被错误分类的恶意应用数量

$$
\text{True Positive Ratio (TPR)} = \frac{n_{mal \to mal}}{n_{mal \to ben} + n_{mal \to mal}} \tag{1}
$$

$$
\text{False Positive Ratio (FPR)} = \frac{n_{ben \to mal}}{n_{ben \to mal} + n_{ben \to ben}} \tag{2}
$$

准确率(ACC) :分类器的准确率是指给定分类器正确预测新数据或先前未见数据类别标签的能力。

$$
\text{ACC} = \frac{n_{ben \to ben} + n_{mal \to mal}}{n_{ben \to ben} + n_{ben \to mal} + n_{mal \to ben} + n_{mal \to mal}} \tag{3}
$$

4 性能评估

为了验证提出的方法,所构建的基于权限的模型已在400个样本的集合上进行了验证,每个类别(良性与恶意)各200个样本。结果基于多次测试得出。
对基于权限的模型的评估是基于性能指标进行的。性能指标包括真正率、假正率和准确率,如第3.5节所述。

图1描述了安卓恶意软件对新型安卓恶意软件的平均检测率结果。基于权限的模型实现了较高的检测率。在基于权限的模型中,仅基于权限集进行过滤,其真正率、假正率和准确率分别为91%、9%和90%。

示意图0

5 结论

本文提出了一种基于自组织映射(SOM)检测潜在安卓恶意应用的新方法。
自组织映射是一种无监督聚类方法,无需事先了解类别标签信息。SOM根据特征相似性来检测和分析新的安卓应用。本研究采用基于权限的模型来检测安卓应用中存在的恶意软件。为了构建基于权限的模型,从大量良性与恶意的APK文件中提取了所有权限。APK文件是不可读的文件,无法直接从中提取特征。因此使用APK工具将APK文件转换为可读格式并提取特征。通过从400个良性应用和400个恶意应用中提取特征,构建了基于权限的模型。
为了测试该基于权限的模型,共使用了400个应用(其中200个来自良性数据集,200个来自恶意软件数据集)。
使用真正率(TPR)、假正率(FPR)和准确率(ACC)等性能指标对模型进行评估。该模型的TPR、FPR和ACC分别为91%、9%和90%,优于现有方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值