当前位置: 首页 > news >正文

顶呱呱网站建设价格网站地图怎么提交

顶呱呱网站建设价格,网站地图怎么提交,游戏设计需要学什么专业,在百度上做个网站多少合适目录 摘要1. 引言2. 相关工作2.1. 基于重新训练的恶意软件检测2.2. 基于应用关系图的恶意软件检测2.3. 基于异常样本识别的恶意软件检测2.4. 基于API聚类的恶意软件检测 3. AMDASE概述4. 基于语义距离的API聚类4.1. API特征提取4.2. API句子生成4.3. API句子编码4.4.聚类中心生… 目录 摘要1. 引言2. 相关工作2.1. 基于重新训练的恶意软件检测2.2. 基于应用关系图的恶意软件检测2.3. 基于异常样本识别的恶意软件检测2.4. 基于API聚类的恶意软件检测 3. AMDASE概述4. 基于语义距离的API聚类4.1. API特征提取4.2. API句子生成4.3. API句子编码4.4.聚类中心生成 5. Android malware detection5.1.调用图提取5.2.调用图优化5.2.1.未知功能引起的问题5.2.2.调用图优化算法 5.3. Feature embedding5.4.分类 6 实验与分析6.1.实验设置6.2.恶意软件检测性能6.3.不断发展的恶意软件检测性能6.4. API 聚类中方法名称的影响6.6 运行时评估6.7 API聚类在语义提取上的能力 8. 讨论API句子的规则API聚类混淆技术深度学习分类器运行时间 9. 结论 [[A novel Android malware detection method with API semantics extraction_2024_Yang et al.pdf]] AnovelAndroid malware detection method with API semantics extraction 一个新颖的安卓恶意软件检测方法通过提取 API 语义来实现。 关键词进化恶意软件检测、模型老化、API语义、函数调用图、机器学习。 摘要 由于Android框架和恶意软件的持续进化使用过时应用程序训练的传统恶意软件检测方法在有效识别复杂的进化恶意软件方面已不足够。为了解决这个问题本文提出了一种新颖的安卓恶意软件检测方法名为API语义提取的安卓恶意软件检测方法AMDASE它可以有效识别进化的恶意软件实例。首先AMDASE 执行API聚类以获取代表API功能的聚类中心然后在恶意软件检测之前设计API句子来总结API特征并使用自然语言处理NLP工具获取API句子的嵌入用于聚类。借助API句子可以有效地提取包含在诸如方法名称这样的特征中的API语义这些特征准确地代表了其预期功能这也使得聚类结果更加准确。其次AMDASE 从每个应用中提取调用图并通过移除与未知功能对应的节点来优化调用图同时确保保留它们的前驱节点和后继节点之间的连通性。优化后的调用图可以提取更健壮的API上下文信息准确地代表每个应用的行为。第三为了保持对Android恶意软件进化的抵抗力AMDASE 从优化的调用图中提取函数调用对并将函数调用对中的API抽象为API聚类中获得的聚类中心。最后使用一键映射生成特征向量并使用机器学习分类器进行恶意软件检测。我们在一个包含42,154个良性和42,450个恶意应用的数据集上评估AMDASE这些应用是在七年的时间里开发的。实验结果表明AMDASE 的性能大大超过了现有的最先进方法并且具有显著较慢的老化速度。 1. 引言 Android平台的广泛普及推动了Android恶意软件的快速扩张。尽管机器学习技术在恶意软件检测方面取得了优异的成果Qiu等2020年但恶意软件的持续进化仍然对检测系统构成了巨大挑战Jordaney等2017年。使用过时应用程序训练的分类器难以有效检测出一段时间后出现的新应用导致检测性能随时间持续下降这也被称为模型老化。模型老化是由概念漂移引起的与计算机视觉或自然语言处理NLP不同恶意软件检测的问题域频繁变化导致新出现的恶意软件与旧恶意软件之间的特征分布存在差异。恶意软件开发者常通过改变实现方式来逃避检测系统以保持恶意行为张等2020年。具体来说进化的恶意软件拥有大量未出现在训练集中的API。目前大多数恶意软件检测方法都基于API调用信息。基于API频率信息的检测方法杨等2014年Arp等2014年冯等2020年显示出高误报率并容易受到恶意攻击。依赖API上下文信息的检测方法吴等2019年艾伦等2018年在识别应用程序表现出的恶意行为方面提高了准确性。然而由于缺乏适当的方法处理调用图中大量未知功能节点这种方法在有效提取API上下文信息方面面临挑战。此外这些现有的检测方法未能考虑API的频繁变化因此在有效识别进化的恶意软件方面面临挑战。API聚类将具有相似功能的API分组到同一类别中。在恶意软件检测过程中可以用API聚类中心替换特征向量中的API以增强分类器识别训练阶段未遇到的API的能力。这种方法有可能减缓分类器性能随时间衰减的速度张等2020年。然而现有的API聚类方法从包名、参数和返回值等特征中提取API语义而忽略了方法名和权限等关键特征。通过API聚类提升分类器性能的限度可以归因于API语义提取的不足。Mariconti等2016年提出了MAMADROID其中他们采用了一种聚类技术根据包名对API进行分组。MAMADROID通过将新引入的API抽象为包显示出对现有包中API的弹性。然而需要注意的是同一包中的API不一定表现出相似的功能。此外MAMADROID无法从新包中捕获任何API信息。Pendlebury等2019年发现在消除时间偏差的实验设置下MAMADROID的F1-测量值在仅三个月后从90%以上下降到58%。为了解决现有恶意软件检测方法中的上述缺陷我们提出了一种新颖的Android恶意软件检测方法即API语义提取的Android恶意软件检测方法AMDASE该方法可以有效检测进化的恶意软件。首先我们进行API聚类以获得代表API功能的聚类中心。我们设计API句子来总结API特征并使用NLP工具获取API句子的嵌入用于聚类。其次我们从每个应用中提取调用图并通过移除未知功能节点的同时保留其前驱节点和后继节点之间的连接来优化调用图。第三我们从优化的调用图中提取函数调用对并将调用对中的API抽象为API聚类部分获得的聚类中心。最后使用一键编码生成特征向量并使用机器学习分类器进行恶意软件检测。我们在一个包含42,154个良性应用和42,450个恶意应用的数据集上评估AMDASE的检测性能这些应用是在七年的时间里开发的。AMDASE在2012年到2013年的数据上训练当检测2014年到2018年的样本时平均F1-测量值达到82.6%。平均F1-测量值比最先进的恶意软件检测方法MAMADROID高出22%。我们的实验结果表明AMDASE的性能大大超过了现有的检测方法并且老化速度明显较慢。本文主要做出三个贡献首先我们提出了一种基于语义距离的API聚类方法。我们设计API句子来总结API的特征。API句子不仅包含重要的特征如概述API功能的方法名还将具有不一致特征数量的API统一映射到固定大小的特征向量中。借助API句子可以有效地提取API的语义这使得API聚类结果更加准确。其次我们引入了一种调用图优化方法。这种方法在保持其前驱节点和后继节点之间的连接的同时移除了所有未知节点。如果调用图中任意两个API节点例如APIx和APIy之间存在由所有未知功能节点组成的路径则在优化的调用图中APIx直接调用APIy。调用图优化使得提取的API上下文信息能更精确地反映应用的行为模式。最后我们介绍了AMDASE这是一种新颖的Android恶意软件检测方法可以有效识别进化的恶意软件无需任何类型的重新训练。通过将API抽象为聚类中心AMDASE对Android框架和恶意软件中的API变化具有弹性。 2. 相关工作 机器学习在Android恶意软件检测方面取得了显著进展Wu等2023年Bhat等2023年Tarwireyi等2023年Yang等2015年Zhang等2014年Yang等2014年Karbab等2018年Chen等2018年Feng等2020年Wang等2019年2018年Liu等2019年Lu等2021b年。然而模型老化的问题始终是一个重大挑战。Pendlebury等2019年和Jordaney等2017年详细说明了概念漂移在Android恶意软件检测中的普遍性。研究人员提出了许多解决方案来应对这一问题主要可以分为四类重新训练、应用关系图、异常样本识别和API聚类。 2.1. 基于重新训练的恶意软件检测 “重新训练”一词涉及到利用概念漂移样本及其相应标签重新训练分类器的过程。根据标签的不同来源重新训练的过程可以分为两种类型真实标签重新训练和伪标签重新训练。真实标签来自恶意软件专家的手动标注。而“伪标签”指的是由恶意软件分类器生成的推断类标签通常以其预测的高置信度为特征。Grosse等2017年提出了一种自适应且可扩展的Android恶意软件检测方法DroidOL。DroidOL系统利用调用图提取应用的敏感行为特征并在检测过程中利用误分类样本及其相应的真实标签更新分类器。因此DroidOL能够适应Android应用的进展。Xu等2019年提出了一种基于在线学习的恶意软件检测方法DroidEvolver。DroidEvolver认为用不同优化器训练的分类器具有不同的老化速度因此在训练阶段构建了一个由五个线性在线学习算法组成的模型池。在检测阶段使用其他未老化模型的预测结果更新老化模型。基于重新训练的检测方法通常有以下缺陷重新训练真实标签需要大量高质量的概念漂移样本这在有限的时间内难以完成。此外重新训练真实标签还需要大量人力资源进行概念漂移样本的手动标注。伪标签重新训练免除了人力资源手动标注样本的需要但伴随着两个固有的限制。首先一旦预测标签错误将导致分类器性能急剧下降。另一个缺点是恶意攻击者可以设计特定样本来利用伪标签重新训练的机制。 2.2. 基于应用关系图的恶意软件检测 应用关系图指的是构建一个以每个应用为主节点的实体关系图以反映不同应用之间的相似性。Android生态系统经历的是逐渐的进化过程而不是突变导致进化的恶意软件保留了与其祖先相似的显著特征。一旦概念漂移应用被误分类分类器可能会使用该应用与其祖先节点在应用关系图中的相似性将其拉回到决策边界。Gu和Li2021年提出了一种缓解Android恶意软件检测中模型老化的方法。它构建了一个应用关系图来反映应用之间的进化关系这个图辅助分类器进行恶意软件检测。Hei等2021年提出了一种基于异构图注意网络的Android恶意软件检测方法。在训练阶段构建了一个应用关系图来模拟应用之间的相似性。然后使用图神经网络学习应用之间的相似性并生成用于恶意软件检测的特征向量。在检测阶段设计了一种增量聚合方法MsGAT使得无需更新整个应用关系图即可快速生成特征向量。基于应用关系图的检测方法通常有以下缺陷首先代码重用是软件开发的重要部分因为它允许开发者将现有代码用于各种目的。然而值得注意的是代码重用的做法不仅限于良性应用恶意行为者也可能在恶意软件开发中使用来自良性应用的重用代码。这给利用应用之间的相似性的恶意软件检测方法带来了严重困难。同时应用之间的相似性并不反映它们的行为这对基于应用关系图的检测方法学习恶意软件与良性应用之间行为特征的差异构成了挑战。 2.3. 基于异常样本识别的恶意软件检测 异常样本识别是在检测过程中过滤出概念漂移样本。恶意软件分类器对这些样本的决策通常信心较低因此需要恶意软件专家的参与以评估并做出明智的判断。Yuan等2022年提出了一种使用双头神经网络进行概念漂移样本识别的方法。这个神经网络有两个平行的输出层分别输出应用的预测结果。通过这两个输出层之间的差异来识别概念漂移样本。Karbab和Debbabi2021年提出了一种自适应的Android恶意软件检测方法。分类器在对概念漂移样本做出决策时通常信心较低因此在恶意软件检测过程中会过滤掉低信心样本。异常样本识别可以大大提高检测方法的有效性但它仅限于识别概念漂移样本而不是进化恶意软件检测。 2.4. 基于API聚类的恶意软件检测 API聚类将具有相似功能的API分组到同一类别中。在恶意软件检测过程中用API聚类中心替换特征向量中的API增强了检测方法对API频繁变化的抵抗力。MAMADROIDMariconti等2016年通过包名对API进行聚类。通过将API调用抽象为包MAMADROID对新引入的API显示出弹性这些API出现在现有包中。然而同一包中的API不一定执行相似的功能Zhang等2020年。此外MAMADROID无法从新包中捕获任何API信息。Zhang等2020年提出了APIGRAPH这是对现有Android恶意软件分类器的一种增强通过API聚类实现。首先APIGRAPH从Android官方文档中提取信息以构建实体关系图。然后使用TransEVan der Maaten和Hinton2008年算法生成实体和关系的嵌入向量。最后使用k-MeansSyakur等2018年算法进行API聚类。作者认为具有相似参数、相似权限、相似包和相似返回值的API必定具有相似的功能。然而在API语义提取过程中包含大量语义信息的API方法名被忽略了。Lei等2019年引入了一种使用API标记的API聚类方法。最初它将调用图中的每个API分割为标记包括其家族、包名、类名、方法名、返回值和参数。然后使用doc2vecLau和Baldwin2016年对每个API进行编码并生成嵌入。最后使用k-Means算法完成聚类。这种API聚类方法在API语义提取过程中使用了方法名但忽略了权限和异常等关键特征。权限在Android系统中极为重要Au等2012年。同时这种方法从训练集而不是API文档中收集API这使得该方法无法识别测试集中出现的新API。Xu等2020年提出了一种使用调用图中API上下文信息的API聚类方法。这种方法认为展示出相似的调用者和被调用者模式的API很可能具有类似的功能。因此设计了一个双层神经网络来捕捉API调用及其上下文信息之间的潜在关系。神经网络中的隐藏层用作反映API语义的嵌入用于聚类。然而这种方法使用训练数据和测试数据一起训练神经网络这是一种严重的数据窥探Quiring等2022年行为。在实际场景中这种方法无法识别测试集中出现的新API。与其他方法相比API聚类是解决进化恶意软件检测问题最直接和有效的解决方案。然而现有的聚类方法在API语义提取过程中忽略了方法名和权限等关键特征导致聚类结果对分类器性能的提升有限。 3. AMDASE概述 AMDASE是一种使用API上下文信息的静态恶意软件检测方法。该系统展示了强大的检测进化恶意软件的能力。图1展示了AMDASE的框架。它由两部分组成基于语义距离的API聚类和Android恶意软件检测。基于语义距离的API聚类生成代表每个API功能的API聚类中心在Android恶意软件检测之前完成。基于语义距离的API聚类有四个步骤。首先从Android官方文档中提取每个API的特征图1中的步骤a包括异常、权限、参数、返回值等。其次根据规定的规则生成API句子图1中的步骤b。第三使用BertJacob等2019年一个成熟的NLP模型对API句子进行编码获取每个API的嵌入图1中的步骤c。最后我们使用k-Means算法生成代表API功能的聚类中心图1中的步骤d并将具有相似语义的API分组在一起。 Android恶意软件检测过程包括五个步骤。首先使用FlowDroidArzt等2014年一个静态分析工具从每个应用中提取函数调用图图1中的步骤1。此外通过消除代表未知功能的节点同时确保其前驱节点和后继节点之间的连接被保持优化调用图图1中的步骤2。进一步从调用图中提取函数调用对图1中的步骤3。在第四步最初将函数调用对抽象为API聚类对。接下来我们继续将剩余方法抽象为其相应的包。最后使用一键编码生成每个应用的特征向量图1中的步骤4。在最后一步将特征向量输入机器学习分类器以预测应用是恶意的还是良性的图1中的步骤5。 4. 基于语义距离的API聚类 基于语义距离的API聚类包括四个部分API特征提取、API句子生成、API句子编码和聚类中心生成。 4.1. API特征提取 特征提取是从Android官方文档中提取每个API的特征Api文档2023年。我们研究中使用的特征包括七个不同的类别包名、类名、方法名、参数、权限、异常和返回值。APIGRAPH的作者提供了收集的Android官方文档和API特征提取的源代码Apigraph2023年。通过复制源代码我们能够获得所有API及其相应的特征。现有的API聚类方法在API语义提取时忽略了方法名然而API的方法名包含大量信息并勾画出API的功能。通过使用NLP模型可以有效地提取API方法名中嵌入的语义信息从而提供其预期功能的近似表示。例如具有方法名如‘getDeviceId’或‘setWifiEnabled’的API。它们的方法名使我们能够轻松理解它们的功能。表1显示了名为Android.telephony.TelephonyManager.getDeviceId的API的特征提取结果。注意为了减少一些广泛使用的特征值对API语义提取的影响我们忽略了如int、boolean、String和float等特征值。表1中显示的API以int为参数并返回String。在特征提取过程中忽略了这两个特征值。除了APIGRAPH中现有的特征提取方法外我们通过利用它们的驼峰命名除了第一个词其余词的首字母都是大写如‘setWifiEnabled’和‘sendTextMessage’将方法名和类名分开为单词来修改API特征。表1中显示的API的方法名为‘getDeviceID’可以分为三个单词’get’、‘Device’和‘ID’用‘$’分隔。注意类名和方法名中的一些词都是大写的如‘SQL’、‘URL’和表1中的‘ID’这些词是缩写需要额外处理。 4.2. API句子生成 在特征提取完成后我们将API转换为能够反映其语义信息的嵌入向量。这部分面临的问题是相同特征的值数量不一致。例如某些API的方法名可以分解为五个词而有些API只能分解为三个词。一些API需要调用权限而其他的则不需要。因此需要设计一种嵌入方法该方法不仅能表示API的语义信息还能将所有具有可变数量特征值的API统一映射为固定大小的特征向量这些向量最终用于后续聚类中的距离计算。 为解决这个问题我们首先将每个API及其特征转换为一个句子称为API句子。根据特征值的数量API句子的生成分为通用部分和唯一部分。通用部分指的是所有API都具有且仅有一个值的三个共同特征方法名、类名和包名。通用部分句子生成规则如下 方法 ℎ 来自类 来自包 唯一部分包含四种类型的特征权限、异常、参数和返回值。对于这些唯一特征每个API都有不同数量的特征值。表2列出了唯一部分句子生成的规则。算法1展示了API句子生成的伪代码。输入是APIx的七种类型的特征输出是APIx的API句子。第1至3行生成API句子中通用特征的对应部分第4至7行调用算法2来生成API句子中唯一特征的对应部分第8行将中所有大写字母替换为小写字母第7行将中的每个’$‘、’‘和’.替换为空格。 算法2展示了API句子生成中唯一特征处理的伪代码。算法2由算法1的第4至7行调用。输入是唯一特征的特征值列表和相应的API句子生成规则0和1。输出是对应于唯一特征的API句子部分。算法2考虑了特征值数量为0或至少为1的两种情况。 将表1中显示的API及其特征输入算法1后我们可以得到以下API句子“method get device id from class telephony manager from package Android telephony use permission read phone state throw none exception use none parameter return none”。 4.3. API句子编码 在完成API句子生成后我们使用预训练的Bert模型对每个API句子进行编码并取CLS的编码输出作为API语义嵌入。CLS的768维特征向量概括了整个句子的语义信息。Bert是一个广泛认可的预训练模型在自然语言处理NLP领域的各种基础任务中表现出色Bengio等人2000年。Bert在输入序列前添加了一个特殊的词向量CLS。CLS是分类的缩写它可以更全面地融合序列中所有单词的信息。它通常用于各种下游任务包括文本情感识别。Bert拥有大量的参数。使用在如BooksCorpus和WikipediaJacob等人2019年等语料库上预训练的Bert可以大大节省计算资源。API句子不仅包含诸如方法名和权限等重要特征还能将具有不一致特征数量的API统一映射到固定大小的特征向量中。借助API句子和Bert的嵌入使用从API中提取语义不仅依赖于包和参数等特征还依赖于概述API功能的方法名这使得API聚类结果更加准确。 4.4.聚类中心生成 每个API的特征向量维度为768通过Bert嵌入获得这个维度相当大。这在聚类过程中的距离计算上带来了重大负担。为了降低维度采用了主成分分析PCASvante等人1987年考虑了90%的方差比率。经过降维处理后每个API获得了一个66维的特征向量。采用肘部方法Syakur等人2018年来确定最优的聚类中心数目确定为2000个。最后执行了k-均值聚类算法Syakur等人2018年。当Android官方文档更新时比如增加新的API或改变现有API的特征聚类结果需要更新。如图2所示我们只需要生成新添加或更改的API的句子并用Bert编码来获得它们的嵌入。在聚类过程中新的API被分组到最近的聚类中心并更新这个聚类中心的坐标。然而APIGRAPH张等人2020年需要更新实体-关系图并使用TransE算法Bordes等人2013年从头开始训练整个图这需要重新聚类所有API的嵌入。以从API级别28A28更新到API级别29A29的聚类结果为例A28中有58,291个API而在A29中新增了834个API。在更新聚类结果时我们的API聚类方法只需要处理834个新API。而APIGraph不仅需要处理这834个新API还需要处理A28中现有的58219个API。本文提出的API聚类方法的更新成本显著低于APIGRAPH。 5. Android malware detection 在本文中我们介绍了AMDASE这是一种新颖的Android恶意软件检测方法能够有效识别进化的恶意软件。图3展示了AMDASE中Android恶意软件检测的框架。Android恶意软件检测包括四个步骤1调用图提取使用静态分析工具从每个应用程序中提取调用图。2调用图优化通过删除未知函数节点同时保留它们的前驱节点和后继节点之间的连通性来优化调用图。3特征嵌入将优化后的调用图映射成一个特征向量。最初从调用图中提取函数调用对。随后使用聚类中心来替代调用对中的API同时使用包来替代其他函数。最终通过使用一键编码生成特征向量。4分类使用训练好的机器学习分类器来预测这个应用是良性的还是恶意的。 5.1.调用图提取 初始步骤中使用了FlowDroidArzt等人2014年这是一种广泛使用的静态分析工具用来从每个APK文件中提取调用图。调用图是一种树状结构表示应用程序中函数调用关系。Android操作系统基于事件驱动模型运行在这种模型中Android应用内的代码执行是由多种事件例如触摸屏幕、接收网络消息触发的。与常见的Java和C代码不同后者有明确的执行顺序并从特定的main()函数开始Android应用中的代码根据触发事件的顺序有不同的执行顺序。因此FlowDroid生成了一个名为dummyMainMethod()的特殊函数作为调用图的根节点这意味着它是虚拟的主函数也称为入口函数。dummyMainMethod()的子节点是对应于不同触发事件的代码。FlowDroid假设这些代码可以按任何可能的顺序执行。 5.2.调用图优化 5.2.1.未知功能引起的问题 API的全名是应用程序编程接口它是一种特殊的调用方式实现了系统功能如网络通信、蓝牙使用、相机操作等。除了API外应用中还有大量未知函数和相对较少的其他函数。根据代码保护机制Schulz2012未知函数可以分为混淆函数例如com.a.b.c.e123和自定义函数例如com.xiaomi.mipush.sdk.pushMessageHandler。其他函数主要用于类初始化例如java.io.FileOutputStream.init。Android官方文档提供了这些函数所属类的记录。调用图也称为控制流图表示应用程序内的调用关系。未知函数、其他函数和API在调用图中都是单独的节点。未知函数节点占调用图的绝大多数。现有的检测方法有两种处理未知函数的方式统一抽象和全部保留。统一抽象是将所有未知函数节点抽象为一个名为Unknown的节点。这将严重减少调用图的结构信息。在所有未知节点被抽象后大量API的前驱节点和后继节点在调用图中都是Unknown节点。因此调用图中API的上下文信息被严重损害。全部保留涉及保留调用图中所有未知函数节点。这将产生大量冗余信息。API的数量有限每个API的使用更为明确。相比之下软件开发者有权定义未知函数的名称和用途这些可以轻易改变。在调用图中保留所有未知函数将严重增加后续检测工作的计算开销并影响检测方法提取API上下文信息的能力。API上下文信息在准确表示每个应用的行为方面最为有效。本质上恶意软件检测的主要数据来源是调用图中API调用的局部信息。然而大量的未知函数节点严重削弱了提取API上下文信息的能力。 5.2.2.调用图优化算法 为了解决提取API上下文信息的严重困难我们提出了一种调用图优化方法。这种方法移除了几乎无法提取任何有用信息的未知函数节点同时保留了它们的前驱节点和后继节点之间的连通性。如果在调用图中任意两个API节点例如APIx和APIy之间存在由全部未知函数节点组成的路径即APIx通过调用几个未知函数来调用APIy。在优化后的调用图中APIx直接调用APIy。未知函数本身不包含任何信息或者它包含的信息量很小几乎无法提取。然而应该保留其调用关系因为它反映了应用的行为。在优化后的调用图中只有三种类型的函数入口函数、API和其他函数。这三种类型的函数之间的调用关系更准确、更稳健地反映了应用的行为。算法3显示了调用图优化的伪代码。该算法的输入是从应用和Android官方文档中提取的调用图。输出是优化后的调用图。 ![[202402.通过提取 API 语义来实现的一个新颖的安卓恶意软件检测方法。A novel Android malware detection method with API semantics extraction_image.png]] 第2至7行用于筛选图中的关键函数节点包括入口函数、API和其他函数。第8至9行用于获取打算移除的未识别节点的前驱节点列表和后继节点列表。第10至14行通过嵌套遍历这两个列表并在调用图中添加由这两个列表中的任意两个节点组成的有向边以维持未知节点的前驱和后继节点之间的连通性。第15行用于从调用图中移除未知节点。 5.3. Feature embedding 第三步是将优化后的调用图映射成一个特征向量。首先我们从优化后的调用图中提取函数调用对包括调用者和被调用者。调用对中的函数可以分为三类API、入口函数和其他函数。然后每个API被抽象成第4节中获得的聚类中心。这个过程还涉及将其他函数抽象成各自的包而入口函数被指定为保留。通过将API抽象成聚类中心AMDASE能够抵御Android框架和恶意软件中API变化的影响。最后使用一键编码生成每个应用的特征向量。优化后调用图中的聚类调用对的特征值被映射到第一个组件而其他组件设置为零。 5.4.分类 在进行分类之前前一步骤生成的特征向量维度过大导致在训练和预测过程中产生了显著的计算负担。因此在分类之前使用PCASvante等人1987年来降低特征向量的维度。PCA能够消除特征空间中的误导信息如噪声使分类器能够捕捉到更稳定和强大的特征。在测试随时间开发的恶意软件时PCA可以大大提高分类器的性能。Android恶意软件检测的最后一步是使用机器学习分类器进行分类预测这些应用是良性的还是恶意的。我们选择k-最近邻KNNFix和Hodges1952年、支持向量机SVMHearst等人1998年和随机森林RFBreiman2001年作为分类器。这三种算法使用Python库scikitlearnScikit-learn2023年实现。每个模型通过训练集中应用的特征向量进行训练并通过测试集中的应用进行测试。我们使用10折交叉验证来评估AMDASE。 6 实验与分析 在本节中我们对AMDASE进行了全面的评估包括以下六个实验 恶意软件检测的有效性评估我们评估了AMDASE在识别和区分恶意软件与良性应用方面的有效性。 检测进化的Android恶意软件的能力研究我们研究了AMDASE在识别随时间演变的Android恶意软件方面的表现。API聚类中方法名称的影响分析我们探讨了在API聚类过程中方法名称对聚类结果的影响。调用图优化的影响评估我们衡量了优化调用图对提高检测效率和准确性的作用。AMDASE的运行时评估我们提出了对AMDASE运行时间的评估以考察其在实际应用中的性能。API聚类在API语义提取上的能力评估通过分析嵌入空间中常用API的紧密程度我们评估了API聚类在提取API语义方面的能力。 这些实验旨在全面验证AMDASE系统的性能确保其在各个方面都能达到预期的安全防护效果。 6.1.实验设置 表3总结了我们实验中使用的数据集包括42,450个恶意应用和42,154个良性应用。我们使用的apk的MD5是由APIGRAPH张等人2020年的作者收集的。我们从三个开放的仓库下载恶意软件包括AndroZooAllix等人2016年、VirusTotalVirusTotal2023年和AMD数据集魏等人2017年。所有的恶意应用至少被VirusTotal中的15个杀毒引擎标记为恶意。我们从Google Play商店2023年收集良性应用并借助AndroZoo下载它们。所有的良性应用都被VirusTotal中的每一个杀毒引擎标记为良性。为了评估AMDASE我们使用收集的数据集进行10折交叉验证。我们设计了以下两个实验场景来评估进化恶意软件的检测能力 场景A使用2012年到2013年的应用进行十折交叉验证产生10个训练过的分类器。我们使用这10个分类器来检测2014年到2018年开发的恶意软件并取检测结果的平均值。 场景B使用2013年到2014年的应用进行十折交叉验证产生10个训练过的分类器。我们使用这10个分类器来检测2015年到2018年开发的恶意软件并取检测结果的平均值。 我们选择了以下广泛使用的指标包括准确率Accuracy、精确率Precision、召回率Recall和F1值F1-Measure。准确率的计算公式为 Accuracy T P T N T P T N F P F N \text{Accuracy} \frac{TP TN}{TP TN FP FN} AccuracyTPTNFPFNTPTN​ 。在以下公式中精确率为 Precision T P T P F P \text{Precision} \frac{TP}{TP FP} PrecisionTPFPTP​ 召回率为 Recall T P T P F N \text{Recall} \frac{TP}{TP FN} RecallTPFNTP​ 。其中TP和TN分别代表正确分类为恶意和良性的样本数量FP和FN分别代表错误地识别为恶意和良性的样本数量。 F 1 2 × Precision × Recall Precision Recall F1 \frac{2 \times \text{Precision} \times \text{Recall}}{\text{Precision} \text{Recall}} F1PrecisionRecall2×Precision×Recall​ 6.2.恶意软件检测性能 为了评估AMDASE在恶意软件检测方面的有效性我们使用同一年开发的样本对AMDASE进行了训练和测试。我们对表3中描述的七个数据集进行了10折交叉验证。表4展示了不同方法在每个数据集上的检测性能。在SVM、RF和KNN中AMDASE使用RF取得了最佳性能。AMDASE在7年的平均F1值达到了96.7%比MAMADROID92.7%和MALSCAN90.9%分别高出4.3%和6.4%AMDASE的平均准确率为96.7%比MAMADROID和MALSCAN分别高出4.3%和6.1%AMDASE的平均精确率为98.5%比MAMADROID和MALSCAN分别高出5.5%和5.6%AMDASE的平均召回率为94.8%比MAMADROID和MALSCAN分别高出3.2%和6.2%从表4可以看出MAMADROID的所有指标随时间缓慢增长。MALSCAN吴等人2019年在2012年至2014年间具有较高的精确率和较低的召回率但在2015年至2018年间精确率较低召回率较高。这种现象可能与Android框架的变化有关但AMDASE始终能够在高水平上稳定地维持其检测性能受时间变化的影响较小。 6.3.不断发展的恶意软件检测性能 为了检验AMDASE在检测进化恶意软件方面的表现如何我们选择了MAMADROID、AE-MAMADROID张等人2020年、MALSCAN和AE-MALSCAN张等人2020年吴等人2019年作为比较方法。AE-MAMADROID和AE-MALSCAN分别代表使用APIGRAPH增强MAMADROID和MALSCAN。在不同的分类器中AMDASE使用SVM在进化恶意软件检测方面表现最佳。如表5所示AMDASE的F1值显著高于其他方法。在场景A中2014年至2018年AMDASE的平均F1值达到了82.6%比MAMADROID67.9%高出22%。在场景B中2015年至2018年AMDASE的F1值均高于80%。实验结果证明使用旧样本训练的AMDASE能有效检测进化的恶意软件。与MAMADROID的API聚类方法相比后者仅将API抽象为其包AMDASE充分考虑了API的方法名称和权限中包含的丰富语义信息使得聚类结果更有效。在恶意软件检测阶段AMDASE可以借助调用图优化提取更稳健的反映应用行为的特征。因此使用旧软件样本训练的AMDASE能有效检测进化的恶意软件并且其老化速度显著减慢。APIGRAPH是现有Android恶意软件分类器的一种增强。它通过用APIGRAPH中获得的聚类中心替换特征向量中的API使检测方法对进化的恶意软件具有弹性。MALSCAN通过使用调用图中敏感API的中心性信息来检测恶意软件。这些敏感API由PScoutAu等人2012年收集大多数在2016年后很少使用因此MALSCAN在2017年的F1值急剧下降。AE-MALSCAN使用聚类中心的中心性信息替代敏感API。在MALSCAN通过APIGRAPH增强后其老化速度放缓。相反MAMADROID在通过APIGRAPH增强后其老化速度变得更加严重。具体原因将在第6.5节进一步分析。 6.4. API 聚类中方法名称的影响 为了评估API方法名称对API聚类结果的影响我们设计了三种基于API聚类的恶意软件检测方法。第一种检测方法是使用本文提出的API聚类方法的AMDASE带有一键编码ASEOH第二种检测方法是不考虑方法名称WMN。WMN的API聚类方法在生成API句子时忽略方法名称其他步骤与本文提出的API聚类方法相同第三种检测方法是使用APIGRAPH提出的聚类方法的APIGraph带有一键编码AGOH。这三种检测方法都使用聚类中心的一键编码生成特征向量并且都选择了在KNN、RF和SVM中表现最佳的分类器进行恶意软件检测。我们使用场景A和场景B进行十折交叉验证。表6显示了这三种基于API聚类的检测方法的检测结果。在场景A中2014年至2018年WMN的平均F1值为58.2%比AGOH高出19.5%ASEOH的平均F1值为74.6%比WMN高出28.2%AMDASE的平均F1值为82.6%比ASEOH高出10.7%。在场景B中2014年至2018年WMN的平均F1值为66.9%比AGOH高出13.4%ASEOH的平均F1值为79.0%比WMN高出18.1%AMDASE的平均F1值为86.5%比ASEOH高出9.5%。AGOH和WMN在提取API语义时都没有考虑方法名称因此这两种方法的性能迅速衰减。与AGOH相比WMN使用Bert挖掘类名和权限等特征中的语义信息导致其老化速度相对较慢。ASEOH使用的API聚类方法充分利用了方法名称中包含的语义信息因此ASEOH的性能与AGOH和WMN相比有了很大的提升。当我们使用从优化调用图中提取的聚类调用对的一键编码作为特征向量AMDASE时检测性能进一步提高。实验结果表明方法名称在API聚类中起着不可或缺的作用。 6.6 运行时评估 在本节中我们通过使用从表3中随机选取的2000个应用程序来展示MAMADROID、MALSCAN和AMDASE的运行时开销。表9展示了运行时评估的结果。与AMDASE一样MAMADROID和MALSCAN也是使用调用图中的API上下文信息进行恶意软件检测的方法。因此这三种方法的运行时间可以分为三个阶段调用图提取、特征提取和分类。 调用图提取此阶段从APK文件中提取调用图。MAMADROID和AMDASE都使用SootVallée-Rai等人2010年进行代码表示并使用FlowDroid生成调用图因此这两种方法的时间成本几乎相同分别为14.345秒和14.297秒。MALSCAN使用AndroguardAndroguard2023年生成调用图。与FlowDroid相比Androguard的时间成本大大降低3.912秒约低72.6%。 特征提取此阶段将调用图转换为特征向量。MALSCAN需要计算调用图中敏感API的中心性信息时间成本最大3.293秒。AMDASE需要在此阶段优化调用图并嵌入特征时间成本为0.974秒。MAMADROID从调用图中抽象出函数调用对转换为包调用对并构建马尔可夫链来模拟转移概率所需时间最少0.529秒。 分类此阶段使用训练好的机器学习分类器预测应用是恶意的还是良性的。MAMADROID使用PCA进行降维并使用RF进行检测时间成本为0.028秒。AMDASE使用PCA进行降维并使用SVM进行检测时间成本为0.025秒。MALSCAN在此阶段只需要使用RF进行检测时间开销最少0.003秒。 MALSCAN专注于在应用商店如Google Play中快速扫描大量应用程序。因此MALSCAN所需的时间在这三种方法中最少7.208秒。MAMADROID和AMDASE的运行时开销相对较大分别为14.902秒和15.296秒。其中AMDASE的运行时间最长但考虑到AMDASE的出色检测性能和极其缓慢的老化速度AMDASE的运行性能是可以接受的。 6.7 API聚类在语义提取上的能力 在本节中我们通过分析嵌入空间中常用API的紧密程度来评估API聚类在API语义提取上的能力。我们选择了最常用的200个API并使用t-SNEVan der Maaten和Hinton2008年算法将高维特征向量映射到二维平面。由于空间限制图4仅显示了部分可视化结果。在图4中属于同一聚类中心的API用相同的颜色标记。红色节点是与Android活动生命周期相关的API黄色节点是与线程活动相关的API深蓝色节点是与输入输出相关的API橙色节点是与哈希图相关的API浅蓝色节点是与数组内容操作相关的API。可以看出属于同一聚类中心的API具有相似的功能而具有不同功能的API被分组到不同的聚类中心。值得注意的是浅蓝色节点和黄色节点都属于Android包java.lang。这表明MAMADROID使用的简单将API分组到其包中的聚类方法不足以提取API语义。如图4所示具有相似功能的API之间的欧几里得距离较短。这证明了我们的API聚类方法在语义提取上的有效性。我们的方法可以生成更准确反映API功能的嵌入使得后续的k-均值聚类算法能更好地将具有相似功能的API分组到同一聚类中心。 8. 讨论 API句子的规则 在设计API句子生成规则时我们发现尽管一些具有不同表达方式的规则含义相同但API聚类结果对AMDASE的检测性能可能会产生一定影响。例如将规则“不使用任何权限”更改为“不使用权限”或“没有使用权限”会削弱AMDASE检测进化恶意软件的能力。可能是因为Bert能从“none”中提取的信息比“not”或“no”更多。 API聚类 API聚类属于无监督学习。判断API聚类结果的质量没有绝对正确的答案。聚类的有效性只能通过恶意软件检测的性能来反映。本文提出的API聚类方法可以有效延缓分类器的老化速度使分类器能够抵抗Android框架中API的变化。 混淆技术 恶意软件可能使用诸如打包Duan等人2018年Lu等人2020年2021年、反射和动态代码加载Falsina等人2015年等混淆技术来逃避静态检测。恶意软件开发者可能将API混淆为未知函数。在调用图优化过程中这些混淆的API会丢失。然而调用图优化的目的是我们无法从大量未知函数中有效获取有用信息。与良性应用相比恶意软件在调用图优化过程中通常会添加更多的API调用对。这些调用对大多与线程活动相关。恶意软件经常伪装成良性应用并通过多线程活动执行恶意行为。 深度学习分类器 深度学习已广泛应用于网络安全。未来我们将尝试使用DNN或GNNWu等人2020年作为恶意软件检测的分类器。本文认为简单的机器学习分类器如SVM和KNN更适合检测概念漂移样本而更强大的分类器如随机森林容易导致过拟合现象。基于它们自身的特点这些复杂的算法可以在训练阶段学习到除恶意行为之外的更多相关性并取得更好的检测结果这也使它们难以有效检测进化的恶意软件。 运行时间 值得注意的是在第6.6节中MAMADROID和AMDASE在第一阶段的时间成本约占总时间的95%。使用Androguard提取调用图可以大大减少恶意软件检测的时间开销但同时也会丢失一定量的调用图准确性最终会影响检测性能。如何快速准确地提取Android应用的调用图仍然是未来的重要研究方向。 9. 结论 持续检测进化的恶意软件是一个重大挑战。为了解决这一问题我们提出了AMDASE这是一种新颖的Android恶意软件检测方法具有API语义提取功能。我们设计API句子来总结重要的API特征并使用Bert提取API的语义。借助API句子从API中提取语义信息不仅依赖于包和参数等特征还依赖于概述API功能的方法名称。为了克服调用图中大量未知函数导致的API上下文信息提取困难我们提出了一种调用图优化方法该方法在保持其前驱节点和后继节点之间的连接的同时移除调用图中所有未知节点。同时我们将优化后的调用图中的API抽象为代表其功能的API聚类中心这使得检测方法能够抵抗Android框架和恶意软件中频繁的API变化。我们在开发了七年的42.2K良性和42.5K恶意应用的数据集上评估了AMDASE的有效性。实验结果表明AMDASE在现有最先进的Android恶意软件检测方法中表现出色同时也显著降低了老化速率。
文章转载自:
http://www.morning.jwrcz.cn.gov.cn.jwrcz.cn
http://www.morning.zzjpy.cn.gov.cn.zzjpy.cn
http://www.morning.beiyishengxin.cn.gov.cn.beiyishengxin.cn
http://www.morning.ykgkh.cn.gov.cn.ykgkh.cn
http://www.morning.tkhyk.cn.gov.cn.tkhyk.cn
http://www.morning.zwznz.cn.gov.cn.zwznz.cn
http://www.morning.xpfwr.cn.gov.cn.xpfwr.cn
http://www.morning.nba1on1.com.gov.cn.nba1on1.com
http://www.morning.drspc.cn.gov.cn.drspc.cn
http://www.morning.mgtmm.cn.gov.cn.mgtmm.cn
http://www.morning.lcbt.cn.gov.cn.lcbt.cn
http://www.morning.bpncd.cn.gov.cn.bpncd.cn
http://www.morning.xckqs.cn.gov.cn.xckqs.cn
http://www.morning.xjbtb.cn.gov.cn.xjbtb.cn
http://www.morning.bflwj.cn.gov.cn.bflwj.cn
http://www.morning.rxkq.cn.gov.cn.rxkq.cn
http://www.morning.kyjyt.cn.gov.cn.kyjyt.cn
http://www.morning.cthkh.cn.gov.cn.cthkh.cn
http://www.morning.dpqqg.cn.gov.cn.dpqqg.cn
http://www.morning.rbzd.cn.gov.cn.rbzd.cn
http://www.morning.cykqb.cn.gov.cn.cykqb.cn
http://www.morning.nsncq.cn.gov.cn.nsncq.cn
http://www.morning.zwpzy.cn.gov.cn.zwpzy.cn
http://www.morning.skqfx.cn.gov.cn.skqfx.cn
http://www.morning.ljhnn.cn.gov.cn.ljhnn.cn
http://www.morning.rmtxp.cn.gov.cn.rmtxp.cn
http://www.morning.frtb.cn.gov.cn.frtb.cn
http://www.morning.dhqyh.cn.gov.cn.dhqyh.cn
http://www.morning.pwgzh.cn.gov.cn.pwgzh.cn
http://www.morning.dddcfr.cn.gov.cn.dddcfr.cn
http://www.morning.gjqwt.cn.gov.cn.gjqwt.cn
http://www.morning.lhwlp.cn.gov.cn.lhwlp.cn
http://www.morning.npbgj.cn.gov.cn.npbgj.cn
http://www.morning.czlzn.cn.gov.cn.czlzn.cn
http://www.morning.zknxh.cn.gov.cn.zknxh.cn
http://www.morning.amlutsp.cn.gov.cn.amlutsp.cn
http://www.morning.tyjnr.cn.gov.cn.tyjnr.cn
http://www.morning.ghwdm.cn.gov.cn.ghwdm.cn
http://www.morning.dwrbn.cn.gov.cn.dwrbn.cn
http://www.morning.lswgs.cn.gov.cn.lswgs.cn
http://www.morning.mxgpp.cn.gov.cn.mxgpp.cn
http://www.morning.xtrnx.cn.gov.cn.xtrnx.cn
http://www.morning.xkqjw.cn.gov.cn.xkqjw.cn
http://www.morning.fhxrb.cn.gov.cn.fhxrb.cn
http://www.morning.wslpk.cn.gov.cn.wslpk.cn
http://www.morning.fqhbt.cn.gov.cn.fqhbt.cn
http://www.morning.tnthd.cn.gov.cn.tnthd.cn
http://www.morning.beiyishengxin.cn.gov.cn.beiyishengxin.cn
http://www.morning.bhdyr.cn.gov.cn.bhdyr.cn
http://www.morning.ygrdb.cn.gov.cn.ygrdb.cn
http://www.morning.rhsg.cn.gov.cn.rhsg.cn
http://www.morning.sbjhm.cn.gov.cn.sbjhm.cn
http://www.morning.cprbp.cn.gov.cn.cprbp.cn
http://www.morning.qqhersx.com.gov.cn.qqhersx.com
http://www.morning.sgbk.cn.gov.cn.sgbk.cn
http://www.morning.mmosan.com.gov.cn.mmosan.com
http://www.morning.kwnnx.cn.gov.cn.kwnnx.cn
http://www.morning.ybgyz.cn.gov.cn.ybgyz.cn
http://www.morning.myrmm.cn.gov.cn.myrmm.cn
http://www.morning.ctbr.cn.gov.cn.ctbr.cn
http://www.morning.cwknc.cn.gov.cn.cwknc.cn
http://www.morning.brqjs.cn.gov.cn.brqjs.cn
http://www.morning.nnwpz.cn.gov.cn.nnwpz.cn
http://www.morning.qlhkx.cn.gov.cn.qlhkx.cn
http://www.morning.qkdjq.cn.gov.cn.qkdjq.cn
http://www.morning.ngdkn.cn.gov.cn.ngdkn.cn
http://www.morning.tfwr.cn.gov.cn.tfwr.cn
http://www.morning.dtmjn.cn.gov.cn.dtmjn.cn
http://www.morning.ltqtp.cn.gov.cn.ltqtp.cn
http://www.morning.mwzt.cn.gov.cn.mwzt.cn
http://www.morning.mntxalcb.com.gov.cn.mntxalcb.com
http://www.morning.zxxys.cn.gov.cn.zxxys.cn
http://www.morning.ykrck.cn.gov.cn.ykrck.cn
http://www.morning.rfxyk.cn.gov.cn.rfxyk.cn
http://www.morning.phxns.cn.gov.cn.phxns.cn
http://www.morning.lbywt.cn.gov.cn.lbywt.cn
http://www.morning.rqjxc.cn.gov.cn.rqjxc.cn
http://www.morning.yrnyz.cn.gov.cn.yrnyz.cn
http://www.morning.pkdng.cn.gov.cn.pkdng.cn
http://www.morning.qlrtd.cn.gov.cn.qlrtd.cn
http://www.tj-hxxt.cn/news/245861.html

相关文章:

  • 重庆网站建设招聘新闻发稿公司
  • 石家庄专业商城网站制作做cra需要关注的网站
  • 聊城做网站价格多多进宝cms网站建设
  • 山西省建设厅官方网站系统开发必须遵守的原则有哪些
  • 网站开发语言排名wordpress 需要授权吗
  • jsp网站首页怎么做修改wordpress后台地址
  • 自己做的网站如何盈利武进网站建设要多少钱
  • 手机网站 微信链接怎么做宜昌网站开发
  • 陕西免费做网站公司塘厦企业网站推广公司
  • 网站域名后缀丹东建设网官方网站
  • 凤翔网站开发福州城乡建设发展总公司官方网站
  • 网站子网页怎么做建设通网站怎么查项目经理在建
  • 网站模板psd贵州网站建设推荐
  • 去哪接单做网站做外贸网站商城
  • 专门做搜索种子的网站wordpress微博登录
  • 网站主机与服务器吗怎么查看小程序的开发公司
  • 网站排名的英文网站后台里有网页代码没
  • 深圳网站建设品牌策划做电商网站php开发的流程
  • 用vs2010做网站论文上线了建站教程
  • 珠海做企业网站多少钱广东网站建设包括什么
  • 企业电子商务网站开发实训目的wordpress 用户积分
  • 加盟网站制作定制wordpress 调整文字
  • 做分析图网站知名设计公司
  • 怎么做快递网站的分点下载官方网站app下载
  • 网站策划ps贵州企业网站开发公司
  • 登录浏览器是建设银行移动门户网站dw软件下载官方网站
  • 如何在360网页上做公司网站百度收录多的是哪些网站
  • 专门做资产负债表结构分析的网站jsp网站开发中js的问题
  • 网站建设经济可行性邯郸做网站公司哪家好
  • 网站被降权后怎么办天猫店铺申请条件