没有合适的资源?快使用搜索试试~ 我知道了~
物联网和网络物理系统3(2023)100使用最佳特征选择和集成机器学习进行Android恶意软件分类Rejwana Islamb,*,Moinul Islam Sayeda,Sajal Sahaa,Mohammad Jamal Hossainb,阿卜杜勒·马苏德ba加拿大安大略省伦敦市西方大学计算机科学b孟加拉国,Dumki,Patuakhali科技大学,计算机科学和信息技术自动清洁装置关键词:Android恶意软件类别分类动态分析有监督的ML增强A B标准市场上的大多数智能手机都运行Android操作系统。安全性一直是这个平台的核心问题,因为它允许用户安装来自未知来源的应用程序。由于每天都有成千上万的应用程序被生产和推出,与传统的检测技术相比,使用机器学习(ML)的恶意软件检测已经引起了人们的极大关注尽管学术界和商业界都在努力,但开发一种有效可靠的恶意软件分类方法仍然具有挑战性。因此,在过去的十年中,已经产生并提供了几个用于恶意软件分析的数据集这些数据集可能包含静态特征,如API调用、Intent和权限,或动态特征,如logcat错误、共享内存和系统调用。动态分析在代码混淆方面更具弹性虽然在最近的研究中已经进行了二进制分类和多分类,但后者提供了对恶意软件本质的宝贵见解由于每个恶意软件变体的操作方式不同,因此识别其类别可能有助于防止它。 使用著名的集成ML方法称为加权投票,本研究进行了多分类的动态特征分析。在该集成模型中,研究了随机森林、K-最近邻、多层次感知器、决策树、支持向量机和Logistic回归我们使用了一个名为CCCS-CIC-AndMal-2020的最新一个经过充分研究的数据准备阶段,然后根据ML分类器的R2得分进行加权投票,即使排除了60.2%的特征,准确率也达到了95.0%,优于所有最近的研究。1. 介绍移动设备在人们的生活中变得越来越重要,这导致了其使用量的增加。Android操作系统是移动设备中最常用的操作系统(OS)由于其开源特性、低成本和简单性,android平台变得越来越受欢迎。2022年9月,其市场份额为71.54%[1]。Android智能手机的官方应用程序商店是Google Play。 截至2022年9月,Android上有超过348万个应用程序。由于其全球知名度,Android对黑客来说是一个更具吸引力的目标,更容易受到恶意软件和病毒的攻击。 图 1显示了2017年至2020年Android恶意安装包的数量。根据TrendMicro的数据,到2020年年中,Android恶意软件实例数量为1060万[2]。 这种大量的移动恶意软件将继续发展和传播,以便在移动设备上进行许多网络犯罪。还有几个例子恶意软件存在于播放存储[3],尽管存在许多安全方法,如播放保护。攻击可以使用多种方法进行,但最流行的方法是攻击者在目标设备上安装Android应用程序 此应用程序包含恶意代码,当用户打开它时,他们可以访问受害者的设备,从中检索设备和网络信息等信息,以执行其他恶意活动。根据诺顿的安全博客,2016年至2017年期间,移动恶意软件变体增加了54%[4]。通过从网站下载恶意程序或通过电子邮件发送,恶意软件被放入设备中当这些程序被打开时,恶意代码就开始运行。为了使感染传播到连接到同一网络的其他设备,攻击者在程序中嵌入恶意代码。随着用户数量的增加,黑客正在设计越来越危险的应用程序。仅仅依靠可靠的方法是不够的* 通讯作者。电子邮件地址:rejwana8@cse.pstu.ac.bd(R. 伊斯兰教)。https://doi.org/10.1016/j.iotcps.2023.03.001接收日期:2022年10月19日;接收日期:2023年1月28日;接受日期:2023年3月5日2023年3月24日在线提供2667-3452/©2023作者。由爱思唯尔公司出版我代表科爱通信公司,公司这是CC BY许可证下的开放获取文章(creativecommons.org/licenses/by/4.0/)。可在ScienceDirect上获得目录列表物联网和网络物理系统期刊主页:www.keaipublishing.com/en/journals/R. Islam等人物联网和网络物理系统3(2023)100101Fig. 1. 恶意安装包的数量。因为复杂的恶意软件不断快速发展,变得更难识别[5]。特别是当恶意应用程序采用多态性或代码混淆时,传统的基于签名的方法会降低准确性[2]。此外,仅仅将其认定为恶意实体已不再足够。 为了开始使用正确的缓解策略,应该确定类别。在过去的十年中,ML技术已经被广泛研究用于恶意软件检测,因为它们不依赖于特定的规则,使它们更加自动化和弹性[6]。基于ML的Android恶意软件检测研究可以分为两类:静态分析和动态分析。 静态分析提取名为Android Package Kit的安装文件,以获取有关清单、权限、API调用、意图等的精确信息。 而动态分析,另一方面,侧重于跟踪应用程序的活动,如logcat错误,共享内存脏,系统调用,进程等,在Sandbo X或隔离环境中运行时。 静态分析的好处是不需要任何环境设置,执行时间更短,但动态分析可以承受代码混淆方法[7]。由于恶意软件正变得越来越复杂和流行,因此进行恶意软件检测分析至关重要。 许多研究人员致力于以不同的方式对抗Android恶意软件入侵。恶意软件检测和分类最适合包含所有当前恶意软件类型的大型数据集。最近发布的CCCS-CIC-AndMal 2020 [8]数据集包含12个主要类别的恶意软件,用于本研究中基于动态分析的多分类。虽然这个数据集提供了20万个良性应用程序和另外20万个恶意软件的数据,但它是高度不平衡的。使用不平衡的数据集训练ML模型对性能产生了严重影响为了克服这个问题,我们使用了一种称为合成少数过采样技术(SMOTE)的过采样技术。 由于以前的研究表明混合ML模型比浅层模型表现更好,因此我们获得了一种集成ML技术,该技术结合了随机森林(RF),K-最近邻(KNN),多级感知器(MLP),决策树(DT),支持向量机(SVM)和逻辑回归(LR)。根据训练时获得的R2得分,这些模型参与投票以获得最终预测。 特征选择和离群值处理显著提高了准确性。本研究的贡献总结如下:1. 本文提出了一种有效的集成机器学习模型,该模型基于CCCS-CIC-AndMal 2020(当前大量Android恶意软件的集合)的动态分析来执行多分类。2. 为了对恶意软件进行分类,本研究比较了随机森林(RF)、K-最近邻(KNN)、多层次感知器(MLP)、决策树(DT)、支持向量机(SVM)、逻辑回归(LR)和增强加权投票的结果。3. 这项研究讨论了离群值处理的影响,即使在特征选择阶段丢弃了60.2%的特征,该文章的其余部分的结构如下:第2讨论了相关的研究。在第3部分中,我们将介绍数据集、数据预处理技术、特征选择过程以及所提出的集成ML模型。第4节详细介绍了实验结果,并将结果与其他研究的相关结果进行了比较。结论概述见第5节。2. 文献综述多年来,已经发表了许多关于利用不同特征选择策略和机器学习算法检测Android恶意软件的研究文章。 本节讨论一些相关的工作。静态恶意软件分析是分析恶意软件样本而不实际执行或操作它们的技术另一方面,动态恶意软件分析在受控环境中运行时查看恶意软件的操作是在一个安全、隔离、模拟的环境中控制和观察的。 尽管许多研究同时使用静态和动态分析,但大多数研究要么使用静态分析,要么使用动态分析。2.1. 静态分析通过构建控制流图并从中提取API信息以产生三种不同类型的流-布尔,频率和时间序列-Zhuo等人[9]提出了一种基于机器学习的方法来检测Android恶意软件。为了达到98.98%的检测准确率,使用C4.5、DNN和LSTM方法对10,010个良性和10,683个恶意应用程序 使用一般技术来创建对抗样本,TLAMD [10]估计了Android样本的干扰大小。 为了构建black-bo X概念,该方法使用了从清单文件和反汇编代码中选择的8个特征。然而,高请求时间是模型的一个问题。Arslan等人[11]专注于发现某些程序为了从事可疑行为而寻求的额外权限为了达到91.95%的准确率,他们应用了静态和代码分析方法。利用Android应用程序的描述,TFDroid [12]使用SVM来查找恶意软件。根据描述,应用程序被分为几个领域,并进行挖掘以识别离群值。仅使用良性应用程序来训练分类器,并使用小数据集进行交叉验证,分类器在识别恶意应用程序方面的准确率为93.65%为了识别不熟悉的APK,Suman et al.[13]部署了基于决策树分类器和KNN分类器的集成学习模型,并结合了敏感权限和API数据。为了定义应用,Zhang et al. [14]计算抽象API调用之间关联规则的一致性,然后利用多种机器学习方法(KNN,RF,SVM)进行检测。该模型的表现优于MaMaDroid [15],后者是利用相同的特征和机器学习技术创建的模型苏莱曼等人[16]使用从日期标记的良性和恶意软件数据集导出的静态特征(权限,意图,API调用,出现日期)来检查几种机器学习分类器(NB,J48,SVM,RF,SL)的有效性。使用无监督学习,GefDroid [17]基于Android恶意软件的家族分析进行了图嵌入。 通过抽象程序语义,使用细粒度的 行为模型构建子图的集合。对于恶意软件检测,AndroDialysis[18]使用许可和意图。 它对比了使用权限和目的的效用。然后设计贝叶斯网络技术以提供更快和更高的检测率。通过使用在好的和坏的应用程序集合上训练的检测模型,基于权限的技术ICCDetector [19]将Android恶意软件数据分为五个不同的组。 它使用经过训练的恶意软件检测模型,该模型已使用SVM在5264个恶意应用程序和12,026个良性应用程序上进行了测试。Garcia等人提出了一种基于机器学习的方法来识别Android恶意软件家族[20]。 它所选择的功能利用了分类的Android API使用、基于反射的功能以及来自原生应用二进制文件的功能。一种新型R. Islam等人物联网和网络物理系统3(2023)100102基于双目标GAN的对抗性示例攻击技术由Li等人创建[21 ]第20段。他们将特性称为必要的权限、操作和API调用。2.2. 动态分析许多恶意软件检测方法都集中在Android应用程序产生的网络流量上。通过寻找不寻常的网络活动模式,可以定位恶意软件。 由于绝大多数Android恶意软件通过网络活动进行危险操作,因此这种恶意软件检测技术特别有用。恶意软件必须通过网络与主机系统进行交互,以执行破坏性操作。这些跟踪使监控和识别各种恶意软件成为可能此外,创建基于网络的病毒检测系统比使用早期技术更简单例如,可以在网关或入口点处使用这样的技术,而不会使移动终端过度负担。这些解决方案确保用户可以访问所需的移动应用程序,因为它们完全基于客户产生的数据。此外,这些方法不涉及用户参与,而只是授权访问识别服务[22]。基于网络流量的技术寻求识别恶意软件的区别特征,这些特征可用于对其进行精确分类。研究人员使用了一种不同的策略,利用动态特征识别恶意软件程序[23]。他们使用android模拟器创建了动态数据,并将其用作动态特性。他们使用图形编码方法和来自LinuX内核的系统调用创建了一个图形向量在他们的研究中,创建了一个堆栈神经网络,并利用其最后一层来区分良性和恶意应用程序。通过应用动态分析从应用程序中提取API调用, Tan,Li,Wang和Xu [24]增强了动态特征方法的使用 他们的模型使用模型分割和早期退出策略优化了模型精度和计算负担。尽管他们进行了出色的研究,但他们使用的是样本设备,而不是实际设备。在他们的研究中[25],研究人员使用来自Android应用程序的API调用和系统调用创建了一个名为MaxNet的模型。为了增加模型的时间复杂度,他们将递归神经网络方法与LSTM相结合 他们使用了36000个样本的数据集,他们的模型的准确率为96.2%。另一位研究人员[26]已经提到了这种研究,其中使用了系统调用序列他们创建了两个LSTM模型用于研究。有害样本数据集用于训练第一个LSTM模型,而良性样本数据集用于训练第二个模型。基于训练模型的结果,计算相似性分数以分类新的恶意软件/良性样本。尽管他们只调查动态方面,而不是混合方面,但他们仍然得到了不错的结果。参考文献使用的方法 [27]为了识别Android上的游戏恶意软件,通过收集各种时间戳的恶意和良性应用程序中不同系统调用的频率来评估有害和良性应用程序的系统调用。 他们的调查方法包括在不同的时间段捕获系统调用,他们发现系统调用 ,如 clock gettime , ioctl , brk , mprotect , futex , pread64 ,read,write和getPackageInfo比非恶意程序的调用率更高。他们的方法有助于研究如何利用系统调用为恶意应用程序构建签名2.3. 混合分析将静态和动态组件组合在一起的分析称为混合分析。Hugin是由Teubert等人创建的[28]是一个基于机器学习的应用程序审查系统,它使用从动态和静态分析中获得的功能,使用一系列功能(权限、硬件组件、意图识别器、第三方库、系统服务、远程过程和动态权限),恶意软件.在应用特征选择之后,Dhanya和Kumar [29]提出了一种混合分析方法,该方法利用了77个混合最佳特征,其中权限作为静态特征,网络活动,文件系统活动,加密活动和信息泄漏作为动态特征。机器学习方法,包括朴素贝叶斯,J48和随机森林被用来表征病毒。 使用静态和动态分析方法,Abdullah和Ibrahim [30]创建了mad4a来识别恶意程序。2.4. 集成方法为了定义应用程序的行为,Wang等人从每个应用程序中检索了11种不同的静态特征,主要来自API调用,权限,意图和硬件信息。为了识别安全的应用程序和恶意软件,它使用了许多分类器的集合,包括SVM,KNN,NB,CART和RF。 基于控制流图和机器学习算法(CART,概率神经网络(PNN),NB和1-NN)的技术是由April等人提出的。[32]用于Android恶意软件的静态分析一个模型是由S. Morales-Ortega等人[33]进行特征提取、特征选择和集成方法来对Android恶意软件进行分类。卡方,救济和信息增益特征选择策略,其中包括,在这项研究中使用挑选关键功能。为了训练数据集,使用了集成技术。 该方法的准确度为94.48%。对于恶意软件检测,M Singh等人(2018年)[34]使用集成技术提供了分类之前和之后的数据。本研究采用了选择卡方、OneR和Relief等滤波器特征的方法我们使用这些特征选择技术选择前N个特征。所有特征都被集成用于预分类,并使用极端学习机器分类器来训练数据。后分类涉及将ELM分类器单独应用于每个特征,而不是将它们组合起来,结果由多数票决定。比较这些分类器时,后分类的准确率较高,为94. 04%。集成方法通常用于减少高级恶意软件的不可预测性并提高检测精度。α计数集合是Ficco[35]提出的基于动态分析的集合检测器。阿尔法计数集合使用阿尔法计数技术来检查在运行时改变观察时间窗口的长度如何影响检测器的精度和速度。 为了提高正确的检测率,通过混合一般和专业检测器来创建集合。 虽然所有样本都被用来训练通用检测器,但提供的样本首先被归类为不同的恶意软件类型,然后在几个专业检测器中独立训练。然后增加专用检测器的数量以匹配恶意软件种类的数量,导致更复杂,尽管这种策略可能无法扩展用于检测多个有害程序[36]。SEDMDroid是一种基于堆栈集成架构的Android恶意软件检测静态分析技术,由Zhu等人提出[37]。为了确保训练子集的多样性,SEDMDroid使用了特征装袋和自举方法。 主成分分析(PCA)用于改变整个数据集,以便每个深度网络(基本分类器)可以单独训练,同时保留每个子集的主成分。最终预测是通过使用SVM作为元分类器组合所有训练的深度网络的预测结果来产生的。奇异值分解(SVD)方法通常可以用于快速构造PCA方法的核心处的矩阵分解方法。 另一方面,在大型数据集上进行SVD分析可能是时间和资源密集型的。此外,PCA的线性阻碍了其完全捕获复杂数据集的非线性特征的能力[38]。评估恶意软件样本的过程,而无需实际运行或者执行它们被称为静态恶意软件分析。相比之下,动态恶意软件分析会在代码在受控设置中执行时对其进行检查恶意软件是在一个安全的,R. Islam等人物联网和网络物理系统3(2023)100103图二. 数据集中各类恶意软件的分布分离的,模拟的环境,并监测其行动虽然很多研究都进行了静态分析和动态分析,但更多的是进行静态分析或动态分析。然而,最近的研究建议,动态分析,这是更灵活的代码混淆和多态规避技术,分类的类型的最近的研究还建议对检测到的恶意软件进行分类,以便更好地防范恶意应用程序造成的漏洞。 该研究基于动态分析获得了Android恶意软件的多分类。3. 方法由于恶意软件的解剖学研究需要更仔细地检查特征之间的连接,以便发现恶意活动并检测其模式,因此我们尝试通过应用特征提取和机器学习来实现这一点。我们的方法的高级框架如图所示。3.第三章。从特征选择开始,我们使用集成ML模型消除了60.2%的特征,并且具有明显更高的准确性。该研究结合了一个研究充分的数据分类,特征选择和降维,和一个基于投票的集成模型。3.1. 数据集CCCS-CIC-AndMal-2020是由加拿大网络安全中心和加拿大网络安全研究所于2020年联合制作的公开数据集这是一个巨大的Android应用程序集合,总计400K,其中200K是正常的良性应用程序,其余200K是恶意应用程序。对于动态分析,该数据集包含141个特征,可分为内存(23个特征),API(105个特征),电池(2个特征),网络(4个特征),logcat(6个特征)和进程(1个特征)。该数据集中有53439个样本 ,属于14 种 不 同 类 型 的 恶 意 软 件 , 包 括 Riskware , Adware ,No_Category,Zero_Day 、 Trojan 、 Ransomware 、 Trojan_Spy 、 Trojan_SMS 、Trojan_-Dropper、Potentially Unwanted Apps(PUA)、Backdoor、Scareware、Fil- eInfector和Trojan_Banker。然而,数据集的作者建议排除No_Category和Zero_Day,因为这些类别中的数据不完整[8]。从数据集中消除No_Category和Zero_Day后,数据集中标签的分布如图所示。二、在学习数据的依赖性时,将数据分为训练集和测试集是至关重要的,以防止过度拟合。来自测试集的数据用于确定模型在训练集上训练后的效率。根据经验研究,使用20-30%的数据进行测试,剩余的70-80%用于训练,可以产生最佳结果[ 39 ]。我们将数据集分成70:30的比例。70%的数据用于训练ML模型。其余30%的数据用于模型测试和评估。3.2. 数据预处理数据预处理是基于ML的分类研究的重要组成部分,因为数据集通常具有缺失值、离群值或不必要的特征,这些都会影响ML模型的准确性该数据准备阶段遵循所有标准程序,从处理缺失值开始预处理数据集。3.3. 缺失数据插补许多有监督的机器学习方法,如回归技术或神经网络技术,不能应用于包含缺失数据的观测。 为了确保嵌套框架不包含任何缺失值,我们使用了Scikit-Learn库中的SimpleImputer [32]和“mean”策略。首先,我们用NumPy [33] np.inf value替换了所有的无穷值,无论是负数还是正数。 然后我们将所有空值替换为NumPy np.nan value。之后,使用Scikit-Learn库 中 的 SimpleImputer , 我 们 再 次 将 所 有 NumPy np.nan 和np.inf值替换为特定特征的平均值3.4. 随机过采样从图CCCS-CIC-AndMal-2020数据集显然是高度不平衡的。最常见的标签是Riskware , 最不常见的 标签是Trojan_Banker。 Trojan_Banker和Riskware的频率比为1:58。训练数据集中的这种偏差可能会对许多机器学习算法产生影响,而其他算法可能会完全忽略少数类。预测往往对少数群体更重要;因此,这是一个问题。解决类不平衡问题的一种方法是随机重新采样数据集。 我们使用合成少数过采样技术,简称SMOTE来解决数据集中的类不平衡问题。对少数群体进行过采样是修复不平衡数据集的一种最简单的方法是复制图三. 我们提出的方法的高层次框架。R. Islam等人物联网和网络物理系统3(2023)100104见图4。 所选特征按特征重要性排序。少数类中的实例,即使这些实例并没有提供对模型的任何新的见解当前示例可用于创建新示例。3.5. 离群值处理显著偏离其余数据的数字或点被称为离群值。CCCS-CIC-AndMal-2020对于大多数功能来说都是高度倾斜的。这种偏斜的原因在于为动态分析移动恶意软件而收集的数据的性质。 由于每个恶意软件都有其独特的操作特性,因此它通常在内存管理,logcat,API调用等方面具有不同的值。 我们已经尝试了许多方法来处理这个高度倾斜的数据集。我们发现,针对每个功能和所有恶意软件类型的离群值上限是有效的,并显示出更好的结果。3.6. 特征缩放如果机器学习算法中的特征值彼此更相似,则与数据点或特征值高度不相似的数据集相比,该算法将更有可能被良好且快速地训练,这将花费更长的时间来理解数据并且具有较低的准确性。我们使用Scikit-Learn库中的MinMax Scaler根据特征中存在的最小值和最大值3.7. 编码分类值分类数据通过使用Keras [40]库的one-hot编码转换为数值数据分类特征被转换为“独热”编码的二进制特征否则得0分。3.8. 特征选择特征选择涉及从数据集中找出并消除不太重要的特征,而不会丢失与标签相关的明显变化训练具有减少的特征集的ML模型是苛刻的,因为它降低了ML模型的复杂性,并且在大多数情况它提高了模型的准确性。我们使用Scikit-Learn库中的随机森林回归器来查找每个特征的标签上的特征重要性 该特征重要性通常包含一个正值,每个特征都包括零,其中这些值表示特征对标签分类的重要性。我们在应用离群值处理和不应用离群值处理的数据集上进行特征选择,以比较两种情况下的模型准确性。在没有离群值处理的情况下,我们发现141个特征中有125个特征在分类上具有正的(大于零),集成模型的准确度为94.2%。而在应用离群值处理的情况下,只有56个特征被发现是重要的,集成模型可以达到95.0%的准确率。由于离群点处理可以消除大部分特征并为集成模型提供更好的准确性,因此我们包括了离群点处理数据集所选择的特征。 图 4显示了对类有影响的所有特征的特征重要性度量。此外,为了选择56个基本特征,我们应用了递归特征消除(RFE)与随机森林,决策树,逻辑回归,Adaboost和支持向量机分类器。 RFE是一种包装器类型的特征选择算法,它也在内部采用基于过滤器的特征选择。 使用训练数据集中的所有特征作为起点,RFE尝试通过一次成功删除一个特征来找到特征的子集,直到留下所需数量的特征。这是通过首先拟合核心模型的机器学习算法,根据相关性对特征进行排名,消除最不重要的特征,然后重新拟合模型来实现的。重复该过程,直到仍然存在一定数量的特征。通过使用特定的机器学习模型(例如,决策树等某些算法产生重要性评级)或应用统计技术对特征进行分级。通过对数据集进行离群值处理,RFE与随机森林,决策树,逻辑回归和支持向量机分类器产生了相同的特征集。 RFE与Adaboost产生了不同的功能集,我们观察到我们提出的模型的性能下降。因此,我们选择大多数分类器设计的特征集。3.9. 降维我们进一步对数据集应用了Scikit-Learn库中的将数据从R. Islam等人物联网和网络物理系统3(2023)100105图五. 主成分个数的方差分布。以保持低维表示尽可能接近原始数据的固有维数为目标,将高维空间转换为低维空间的方法被称为降维。由于各种原因,使用高维空间可能是不愉快的,包括数据分析通常在计算上是难以处理的,并且由于维数灾难(难以控制或处理),原始数据通常是稀疏的。 在处理大量观测或大量变量的领域中,降维是普遍的。较小的数据集更容易检查和可视化,并且由于需要处理的不必要变量更少,机器学习算法可以更快速,更容易地分析数据。我们发现,45个主成分可以解释99.9%的方差数据集。 图 5显示了主成分数的方差分布。3.10. 企业分类我们提出的模型如图3所示,这是一个集成ML模型,包括随机森林(RF),K-最近邻(KNN),多层感知器(MLP),决策树(DT),支持向量机(SVM)和逻辑回归(LR)分类器在第一层。 我们分别为所有提到的模型提供训练集和测试集。然后在第二层中,R2得分大于0.85的模型可以参与加权投票。在这里,在加权投票中,基于恶意软件类别预测准确度来组合来自所有模型的预测例如,如果RF和KNN参与加权投票,并且对于一个数据,RF预测广告软件,KNN预测风险软件。 在最终预测中,如果RF在预测广告软件方面比KNN更准确,并且KNN在预测风险软件方面没有RF那么准确,则将添加广告软件。3.11. 设置超参数超参数是可以在执行训练操作之前对ML算法的行为 在训练时间、基础设施资源需求(以及随之而来的成本)、模型收敛和模型正确性方面,它们可能对模型训练具有重要意义。为了评估超参数,我们使用网格搜索技术。在网格搜索方法中,训练模型并在每个潜在组合的验证数据上生成分数。利用该方法,测试了超参数值的 该技术对所有潜在的组合进行了彻底的扫描,但训练起来可能非常昂贵和耗时。 在RF模型的n_估计,我们发现更好的精度范围为50-60。 图 6显示的精度为见图6。 选择RF模型的估计器数量。每 个估 计 数 。对 于 57 个 估计 量 , 观察 到 最 好的 准 确 性我 们 利 用GridSerachCV对其余模型进行了5倍交叉验证对于KNN,n_neighbors被设置为1。对于MLP,random_state被设置为1,max_iter被设置为300。对于DT,我们观察到random_state的30提供了最佳精度。对于SVM,内核为对于LR,random_state被设置为0。3.12. 绩效评价重要的是要验证和评估使用机器学习算法来完成分类的分类器的预测准确性。 在生成模型之前,将数据划分为学习集和评估集,然后将其用于构建模型作为学习集,并检查其正确性作为评估集。精确度、召回率、准确度和F1分数是用于评估机器学习模型的模式分类能力的性能指标。为了评估基于训练的预测的有效性,“混淆矩阵x”比较了预测值和实际值[ 41 ]。换句话说,可以在四种情景中具体说明的评估指标评估了模型提供的答复的各个方面与实际答复之间的联系。我们必须在生成数据之前将其分为学习集和评估集,以便通过将模型构建为学习集并确认模型的准确性作为评估集来评估机器学习模型的性能准确度、精确度、召回率和F1分数是机器学习模型的四个性能评估指标。公式(1)是准确度的定义它是指使用测试数据进行准确预测的比例通过将准确预测的数量除以预测的总数,可以简单地确定准确预测的数量。然而,预测分析的问题是由Accuracy Parado X带来的。因此,它可以通过精确度和召回率指标进行验证,这些指标评估实际数据的“负”比率是否提供了对发生概率很小的情况的正确分类。公式(2)定义了精度。 其计算方法为准确正面结果与分类师预期正面结果之比例。精度的另一个名称是正预测值(PPV)。通过将有效阳性结果的总数除以相关样本的总数,公式(3)计算召回率。真阳性率(TruePositive Rate)是召回率(Recall,TPR)的另一个名称精确和回忆是对立思想的证据. 检查F1分数、精确度的调和平均值和召回率可能会增加模型的准确性。公式(4)建立F1分数。当精确度和召回率指示器中的任何一个低至接近零时,R. Islam等人物联网和网络物理系统3(2023)100106¼-F1¼英寸2¼¼图7.第一次会议。Memory_SharedDirty特性的E X探索性分析。用于平衡两个指标,以评估模型的表现。最后,R-squared(R 2)是一个统计度量,它显示了回归模型中一个或多个独立变量可以解释多少因变量的变化。R平方衡量一个变量的变化如何解释第二个变量的变化,而不是相关性,相关性描述了自变量和因变量之间的联系强度因此,如果模型的R2为0.50,则其输入可能占观测方差的一半左右。方程精度召回*精确度*召回R21未解释的变化全变差4. 结果和讨论(四)(五)(5)解释R2分数。准确度TP公司简介TP(一)本节详细解释了每一项发现,从我们的实验,并与其他类似的研究比较时,它是相关的。4.1. IQR离群值覆盖对特征选择和模型的影响精密度¼TP精密度FP(2)召回TP(3)TPFFN精度与基于总体的随机样本中的其他值异常不同的观测值称为离群值。建议处理离群值,因为它对模型训练有重大影响首先对离群点进行处理,采用离群点修剪法,R. Islam等人物联网和网络物理系统3(2023)100107见图8。随机森林回归的特征重要性其丢弃来自数据集的所有离群值样本在这种情况下,我们丢失了数据集中的大部分样本 然后我们进行探索性数据分析和离群值封顶。 与离群值修剪不同,离群值封顶为每个特征设置一对最高值和最低值。然后,对于每个特征,任何低于最低值的值都被最低值替换,任何高于最高值的值都被最高值替换 从探索性分析中,我们发现,为特定功能定义离群值会导致恶意软件类别的变化。 这意味着,特定功能的范围与特定恶意软件类型高度相关。这似乎是相关的,因为这个数据集只包含动态分析(即,API调用、内存管理等)恶意软件由于每个恶意软件都有其独特的操作方式,因此用于动态分析的任何 图 7(a)&(b)表示基于所有恶意软件类型的“Memory_SharedDirty“特征和“Trojan_Spy”恶意软件类型的离群值之间的差异。请注意,在这两种情况下,离群值的范围是IQR的40倍从图7(c),很明显,IQR定义离群值的范围因恶意软件类别而异。 如果我们将异常值作为恶意软件类别来处理,我们可以将异常值的范围设置为统计方面的理想值,即IQR的1.5倍。然而,这是一种错误的方法,因为这样的话,模型将过度拟合当前数据集,并且在使用它测试新的(看不见的)数据时表现不佳。 我们验证了这一结果,在这种情况下,集成模型显示出99.1%的准确性,而在使用新数据进行测试时,准确性显着下降。因此,我们放弃了异常值处理恶意软件类别的想法,并为所有恶意软件类型中的异常值寻找共同范围,如图所示。7(d). 在这种情况下,即使对于ML模型中看不见的数据,我们也可以应用相同的离群值范围和离群值封顶技术。然而,由于每个动态特征都有特定的离群值范围,为了应用公共范围,我们设置了一个较大的值。我们发现,IQR距离的40倍,ML模型显示出更好的准确性。如果把这种大值作为异常值图9.第九条。处理 离群值和不处理离群值的数据集之间的 特 征 选 择 和 包 络 模型 精 度 比 较 。范围,有任何影响或没有,我们使用随机森林回归测试的功能排名与离群值封顶。 图图8(a)示出了每个特征的特征重要性,其中发现在总共141个特征中,125个特征在标签中具有不重要性。换句话说,在没有异常值处理的情况下,88.65%的特征似乎对ML模型有效然而,在Fig. 8(b),当应用离群值处理时,只有56个特征被发现与标签有关,这仅是39.71%的特征。我们发现,使用离群值处理的特征选择显示出更好的性能与进一步的主成分分析。我们的集成模型显示了95.0%的准确率和39.71%的特征,而它显示了94.2%的准确率和88.65%的特征,如图所示。9.第九条。为了尽量减少R. Islam等人物联网和网络物理系统3(2023)100108见图10。 R 2第一层中各种ML模型的得分(百分比)。见图11。 随机森林的混淆矩阵ML模型的复杂性,并且在大多数情况下,提高模型的准确性,训练ML模型具有减少的特征集是苛刻的。4.2. 性能分析在本节中,使用第3章第3.8节中描述的性能指标评估集成模型以及单个模型的性能。在第一层的模型中,随机森林(RF)和K近邻(KNN)的准确率超过90%。这两个模型的R2得分也大于85%. 第一层中所有模型的R2得分如图所示。10个。支持向量机(SVM)和逻辑回归(LR)的准确率分别为70.8%和57.7%两种模型的R2值均小于35%.虽然多层次感知器(MLP)和决策树(DT)分类器的准确率超过了,但这两个模型的R2各种性能指标如图所示。 由于只有RF和KNN的R2得分超过85%,因此只有这两个模型有资格在所提出的模型的第二层中进行投票。对于投票,考虑了两种模型的类别准确性。RF和KNN的混淆矩阵在图1和图2中给出。分别为11和12。从混淆矩阵中可以观察到,对于恶意软件类别“广告软件”,RF的表现比KNN好7.18%。 而在“Riskware”和“Trojan-Banker”的情况下,RF和KNN的性能完全相同,对于其余类别,KNN的性能优于RF。 图 13显示比较见图12。 KNN的混淆矩阵图十三. RF和KNN模型在每个类别中的准确性比较。见图14。 比较业绩指标。R. Islam等人物联网和网络物理系统3(2023)100109图15. 提出的模型的混淆矩阵RF和KNN模型之间的准确性在每个类。因此,在第二层的投票中,考虑了来自RF模型的预测用于建议的加权投票方法在最后一层将准确率提高到 在所有的性能指标中,它都优于所有单独的模型。 比较性能度量如图14所示。集合模型的混淆度量如图所示。 十五岁虽然该模型保持了令人印象深刻的准确性,但在预测中仍然存在大量的假阳性和假阴性样本 当然,我们并不期望任何DNN模型都是100%准确的,但是,10%的风险软件被模型预测为广告软件。这是因为这两种恶意软件的操作相似。 由于本研究进行了动态分析,数据集包含了内存管理、API调用、网络活动、Logcat等信息。这些恶意软件在使用这些资源时可能有一些相似之处提出的模型也优于传统的集成模型,称为多数投票(MV)。MV包括所有的预测,个别型号。对于测试集中的每个样本,它计算了各个模型投票最多的标签,以达到93.4%的准确率。在这一阶段,仔细审查了文献综述中的一些其他相关研究。表1比较了许多研究,包括我们进行的研究。 我们只调查了不超过三年的研究,因为在过去的五年里,这个领域发表了大量的研究论文。大多数研究都采用了机器学习或深度学习方法。然而[49],获得了一个本体语义环境预测相当高的准确率91%。二进制分类显示出比多分类更高的准确性,集成方法在两种分类类型中的表现优于浅层模型[2,4,7,43- 45,47,49,50 ]。进行了二进制分类,其中,CICMalDroid 2020和Malgenome数据集的准确率攀升至99%[7]。在CCCS-CIC-AndMal-2020数据集中使用DNN进行二进制分类,97.72%,多分类,78.82%,显示出二进制分析的准确性提高[42,46,48]。 表明当CICMal-Droid 2020数据集的类别数量增加时,准确度下降。虽然很少有获得多分类的研究[42,46,48]显示出比我们提出的模型更高的准确性,但这些研究中的类别数量较少[8]。在数据集和预测类数量方面进行了与我们研究类似的研究,显示了93.36%的准确率,而我们提出的模型表现略好,准确率为95%[7,51]。同样使用相同的数据集,然而,根据数据集生产者[8],包括两个不完整信息的标签,显示出准
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 前端协作项目:发布猜图游戏功能与待修复事项
- Spring框架REST服务开发实践指南
- ALU课设实现基础与高级运算功能
- 深入了解STK:C++音频信号处理综合工具套件
- 华中科技大学电信学院软件无线电实验资料汇总
- CGSN数据解析与集成验证工具集:Python和Shell脚本
- Java实现的远程视频会议系统开发教程
- Change-OEM: 用Java修改Windows OEM信息与Logo
- cmnd:文本到远程API的桥接平台开发
- 解决BIOS刷写错误28:PRR.exe的应用与效果
- 深度学习对抗攻击库:adversarial_robustness_toolbox 1.10.0
- Win7系统CP2102驱动下载与安装指南
- 深入理解Java中的函数式编程技巧
- GY-906 MLX90614ESF传感器模块温度采集应用资料
- Adversarial Robustness Toolbox 1.15.1 工具包安装教程
- GNU Radio的供应商中立SDR开发包:gr-sdr介绍
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功