CN115577358A - 基于移动目标防御思想的安卓恶意软件对抗样本检测方法 - Google Patents
基于移动目标防御思想的安卓恶意软件对抗样本检测方法 Download PDFInfo
- Publication number
- CN115577358A CN115577358A CN202211312751.8A CN202211312751A CN115577358A CN 115577358 A CN115577358 A CN 115577358A CN 202211312751 A CN202211312751 A CN 202211312751A CN 115577358 A CN115577358 A CN 115577358A
- Authority
- CN
- China
- Prior art keywords
- detection
- countermeasure
- training
- confrontation
- aiming
- 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.)
- Pending
Links
Images
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Virology (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种基于移动目标防御思想的安卓恶意软件对抗样本检测方法,该方法包括:异构化模型池、多样化对抗训练、最优化集成学习、动态更新触发器。所述异构化模型池面向安卓软件,其目的在于为后续对抗训练与集成学习提供异构正交的基础模型。所述多样化对抗训练面向安卓恶意软件,针对不同类型的对抗样本攻击生成对应检测模型。所述最优化集成学习面向全体对抗检测模型,其目的在于形成针对全类型对抗样本的检测能力。所述动态更新触发器面向检测结果,按周期与事件混合触发的方式更新异构化模型池、多样化对抗训练、最优化集成学习的构建过程。通过本公开实例的技术方案,可以检出当前安卓主流的恶意软件对抗样本,提高安卓平台安全性。
Description
技术领域
本发明涉及一种安卓操作系统下恶意应用软件对抗样本的检测技术,属于恶意程序检测技术领域。
背景技术
随着安卓系统的日益普及,它虽然吸引了开发人员开发多样化、功能强大的移动应用程序,但也成为了大量恶意软件攻击的温床。全球每年新增数百万计的恶意安卓软件包,不断引发大规模的隐私泄露和经济财产损失,在安卓平台上检测和分析恶意软件是保障安卓系统安全的一大重要任务。
近年来,随着人工智能技术的流行与应用,对安卓恶意软件检测的研究越来越多,其中大多数利用机器学习方法训练恶意软件检测器来识别恶意的安卓软件实例,取得了较高的检测精度与效果。然而,最新的研究表明此类基于机器学习方法的恶意软件检测器极易受到对抗样本攻击,恶意软件作者可以将一定的扰动注入恶意程序中,使其能够躲避检测器的同时保持其恶意功能。因此,准确检出安卓恶意软件对抗样本成为一项艰巨的任务与挑战。
当前,针对对抗样本存在三种主流的检测手段,分别为:防御蒸馏、对抗性训练和集成学习。其中,防御蒸馏用于降低机器学习方法对小扰动的敏感性,从而减轻针对特定模型的对抗性示例的负面影响。然而,当面临可能产生具有高可转移性的对抗样本的黑盒攻击时,将严重影响检测器的检测性能。对抗性训练则是通过使用具备标记的对抗性恶意软件样本去填充原始数据集来重新训练分类器。然而,该方法的性能提升将会受到训练和测试数据集中对抗样本相似性的限制,无法保证抵抗其他类型对抗攻击的检测性能。集成学习方法通过集成多个子分类器的输出结果以达到更好的检测效果,但是该方法依赖于子分类器的性能表现,当存在多个错误分类的子分类器时将无法保障良好的检测能力。此外,上述方法均属于静态和确定性的防御部署方式,因此攻击者相比于防御者具备充分的时间优势,攻击者能够不断侦测和分析部署的检测系统,从而构建出新型的、具备逃逸检测能力的对抗样本。
在过去几年中,在图像分类领域有提出基于移动目标防御思想的对抗样本检测方法,但由于图片与安卓软件的显著差异,导致现有方法无法直接适用于安卓恶意软件对抗样本的检测。此外,现阶段基于移动目标防御的方法还存在以下缺陷。首先,当前移动目标防御技术仅从主观角度选择子模型,未能优化模型的集成学习过程;其次,现有方法在应对具备强迁移性的对抗样本时表现较差,缺乏检测出全类型对抗样本的广泛能力;最后,现有方法只采取了基于移动目标防御思想的某一项或几项技术,未能充分发挥移动目标防御思想的先进性与安全性,存在部分由攻击者精心设计的对抗样本绕过检测的可能性。
发明内容
针对以上问题,本发明提出了一种基于移动目标防御思想的安卓恶意软件对抗样本检测方法,首先构建异构化模型池,再针对模型池内基础模型实施多样化的对抗训练,并通过优化集成学习过程与全局动态更新的方式,达到长效化、全类型对抗样本的检测能力。通过本发明公开的技术方案,能够精准检出当前安卓主流的恶意软件对抗样本,从而有效提高安卓平台安全性。
本发明采用如下技术方案:基于移动目标防御思想的安卓恶意软件对抗样本检测方法,所述方法包括以下步骤:
步骤1:异构化模型池构建,
步骤2:多样化对抗训练,
步骤3:最优化集成学习,
步骤4:混合式动态更新。
其中,所述步骤具体内容如下:
步骤(1)对含有标签的安卓软件提取特征,并按照一定比例随机抽取数据样本,划分为训练集、验证集和测试集;根据所获取的训练集与验证集,将其分别随机分为m等份(m大于等于3),分别采用m种机器学习算法基于等分后的训练集和验证集,训练得到m个异构的安卓恶意软件的基础检测模型,完成异构化的基础检测模型池构建;
步骤(2)根据步骤(1)所生成的m个基础检测模型以及其对应的m份训练集,向每一份训练集中标注为恶意软件的数据分别注入n种不同的对抗性扰动(n大于等于1),形成m*n份恶意扰动数据;根据生成的m*n份恶意扰动数据以及步骤(1)采用的m种机器学习算法和m份验证集,针对每种机器学习算法,采用对抗训练生成n个对抗检测模型,共计生成m*n个对抗检测模型;
步骤(3)根据步骤(1)所获取的测试子集,对其中标注为恶意软件的数据生成对抗性样本,形成对抗样本测试子集;根据步骤(2)所生成的m*n个对抗检测模型,采用所生成的对抗样本测试集对模型的对抗样本检测性能由高至低排序,获取得到检测性能最高的三个对抗检测模型;根据所获取到的检测性能最高的三个对抗检测模型,采取集成学习方法生成集成检测模型;
步骤(4)根据步骤(3)所获取到集成检测模型,由动态更新触发器进行监测,当监测次数达到阈值时,清除触发器当前计数,并重复步骤(1)至(3)。
其中,所述步骤1:异构化模型池构建方法,本文提供了一个含有多个异构基础检测模型的模型池,具体如下:
步骤(1.1)针对含有良性与恶意标签的安卓软件,通过公开的Androguard工具提取安卓软件的二进制特征,形成安卓软件的特征向量;
步骤(1.2)针对步骤(1.1)所获取的安卓软件特征向量,采取预设比例(例如6:2:2)进行随机抽取,分别形成训练集、验证集与测试集;
步骤(1.3)针对步骤(1.2)所获取的训练集、验证集与测试集,通过对其进行随机抽取,将上述数据集合分别分为m等份,得到m份训练子集、m份验证子集和m份测试子集。
步骤(1.4)针对步骤(1.3)所获取的m份训练子集,通过公开的TensorFlow平台与Python平台的Scikit-learn库,选用m种不同的机器学习算法对m份训练子集进行训练;
步骤(1.5)基于步骤(1.3)所获取的m份验证子集,针对步骤(1.4)的训练过程,采用Python平台Scikit-learn库中的GridSearchCV函数,系统地遍历多种模型参数组合,确定最佳检测效果的参数,生成m个异构的安卓软件基础检测模型。
所述步骤2:多样化对抗训练方法,本文提供了多个可检出不同类型对抗样本的安卓软件对抗样本检测模型,具体如下:
步骤(2.1)针对步骤(1.5)所获取的1个安卓软件基础检测模型,通过公开的Python平台SecML库中的secml.adv.attacks函数对检测模型进行多种对抗样本攻击;
步骤(2.2)采用公开的Python平台SecML库中objective_function函数对步骤(2.1)的对抗攻击效果进行评估,将攻击效果由高到低排序,筛选前n种对抗样本攻击,保存其产生的n份恶意对抗扰动数据;
步骤(2.3)重复步骤(2.1)(2.2)m次,得到m*n份恶意对抗扰动数据。
步骤(2.4)针对步骤(2.3)所获取的份恶意对抗扰动数据,设置其标签为恶意软件,并分别将其添加至训练子集中,生成m*n份对抗训练子集;
步骤(2.5)针对步骤(2.4)所获取的新的训练子集,通过公开的TensorFlow平台与Python平台的Scikit-learn库,选用步骤(1.4)采用的机器学习算法分别对m*n份对抗训练子集进行重新训练;
步骤(2.6)基于步骤(1.3)所获取的m份验证子集,针对每一份验证子集中标签为恶意的数据,采用步骤(2.2)中选定的n种对抗样本攻击方法,通过公开的Python平台SecML库中的secml.adv.attacks函数进行攻击,生成m*n份对抗验证子集;
步骤(2.7)基于步骤(2.6)所获取的m*n份对抗验证子集,针对步骤(2.5)的训练过程,采用Python平台Scikit-learn库中的GridSearchCV函数,系统地遍历多种模型参数组合,确定最佳检测效果的参数,生成m*n个安卓软件对抗检测模型。
所述步骤3:最优化集成学习方法,本文提供了一个可检出主流全类型对抗样本的安卓软件对抗样本集成检测模型,具体如下:
步骤(3.1)针对步骤(1.3)所获取的1份测试子集,分别采用步骤(2.2)中选定的n种对抗样本攻击方法,通过公开的Python平台SecML库中的secml.adv.attacks函数进行攻击,得到n份对抗样本数据,将其合并后生成1份对抗测试子集;
步骤(3.2)针对步骤(1.3)所获取的m份测试子集,重复步骤(3.1)m次,得到m份对抗测试子集。
步骤(3.3)针对步骤(2.7)所获取的m*n个安卓软件对抗检测模型,根据其所属的基础检测模型类型,将其分为m类,每类包含n个安卓软件对抗检测模型;
步骤(3.4)针对同一类别的n个安卓软件对抗检测模型,按照模型损失函数的大小由低到高进行排序,选取出该类型中loss值最小的对抗检测模型;
步骤(3.5)针对m种不同类型的对抗检测模型,重复步骤(3.4)m次,得到m个不同类别的最优安卓软件对抗检测模型;
步骤(3.6)针对步骤(3.5)所获取的m个安卓软件对抗检测模型,采用步骤(3.2)所获取的m份对抗测试子集进行检测准确率效果测试,按准确率大小从高到低进行排序,筛选得到检测准确率最高的三个对抗检测模型。
步骤(3.7)针对步骤(3.6)所获取的三个对抗检测模型,通过任意选择步骤(1.3)所获取的m份测试子集中的1份,分别输出三个测试结果;
步骤(3.8)针对步骤(3.7)输出的三个测试结果,按照多数投票规则确定最终输出结果,并将三个对抗检测模型进行集成,生成集成检测模型。
所述步骤4:混合式动态更新方法,本文提供了一个可基于检测周期与错误事件的混合式动态触发更新器,具体如下:
步骤(4.1)针对步骤(3.8)所获取的集成检测模型,设置计数器用于实时统计模型检测安卓软件的次数;同时,当其中出现1个子模型的检测结果与另外两个子模型检测结果不一致时,记作一次错误检测事件,并设置另一个计数器用于实时统计模型检测安卓软件中错误事件的次数;
步骤(4.2)针对步骤(4.1)所获取的检测次数,通过将其与预设的次数阈值进行比较,当其超过阈值时触发架构进行动态更新,并清除步骤(4.1)所设置的用于统计模型检测次数的计数器;针对步骤(4.1)所获取的错误事件次数,通过将其与预设的错误阈值进行比较,当其超过阈值时触发架构进行动态更新,并同时清除步骤(4.1)与步骤(10.1中两个计数器的统计次数;否则,返回步骤(4.1)。
与现有技术相比,本发明具有如下优点:
(1)本发明提出了一种基于移动目标防御思想的安卓恶意软件对抗样本攻击检测方法,本发明是基于移动目标防御的思想提出的,具有方法透明、扩展性高和部署容易等优点,其构建的动态基础模型具有动态性与异构性,通过增加不同的对抗扰动形成的对抗检测模型具有多样性,又通过集成学习的方法形成具有冗余性的集成分类器,这将大幅削弱恶意软件作者在时间和成本上的固有优势,打破当前安卓安全中攻易守难的不对等现状,对检测安卓平台恶意软件对抗样本的表现具有重要意义。
(2)本发明在构建异构模型池前先将训练数据分片,每个分片中的安卓软件数量一定,多个异构检测算法使用各自分片进行训练,构建方式简单;每个所得的基础检测模型均基于完全正交的训练数据生成,实现了模型之间的相互隔离。这将大幅削弱攻击者实施迁移性对抗攻击的可能性,即使攻击者获取得知模型池中的一个或若干个基础模型,也将难以在其余模型上实现同样的攻击效果,保障了模型的鲁棒性。
(3)本发明在构建集成分类器前先对多样化的对抗检测模型进行性能排名,首先通过对同一类别基础模型生成的对抗检测模型进行最优化选择,再通过跨类型模型间的检测能力排序,筛选得到最优的若干对抗检测模型进行集成学习,确保了集成过程中子模型的异构性,充分利用了集成学习强化检测性能的特性,提高了检测主流安卓恶意软件对抗样本的精度。
(4)本发明使用动态更新触发器对整体检测架构进行动态更新,通过周期性触发与错误检测阈值触发混合的方式,重新划分训练数据,并重新训练基础模型与对抗模型。通过动态更新检测架构与模型,动态地改变了逻辑上的模型配置情况,使得实施对抗样本攻击的攻击目标发生变化,提高了防御方在检测对抗样本过程中的主动性。
附图说明
图1为基于移动目标防御思想的安卓恶意软件对抗样本检测方法设计框架图;
图2为基于移动目标防御思想的安卓恶意软件对抗样本检测系统架构图。
具体实施方式
结合以上说明步骤,本节结合说明书相关技术方案步骤的描述进行部分案例的实施。
实施例1:
一个针对公开安卓软件数据集Drebin的安卓恶意软件对抗样本攻击检测方法。
其中,所述方法包括以下步骤:
步骤1:异构化模型池构建,
步骤2:多样化对抗训练,
步骤3:最优化集成学习,
步骤4:混合式动态更新;
其中,所述步骤1:异构化模型池构建,具体如下,选取公开安卓软件数据集Drebin,通过公开的Androguard工具提取所选取的安卓软件的二进制特征并形成特征向量,采取预设的比例6:2:2进行随机抽取,划分为训练集、验证集和测试集;根据所获取的训练集与验证集,将其分别随机分为5等份,通过公开的TensorFlow平台与Python平台的Scikit-learn库,选用支持向量机(Support Vector Machine,SVM)算法、K最邻近(K-NearestNeighbor,KNN)算法、决策树(DecisionTree,DT)算法、逻辑回归(LogisticRegression,LR)算法与多层感知机(Multi-Layer Perceptron,MLP)算法共计5种不同的机器学习算法基于等分后的训练集和验证集,训练得到5个异构的安卓恶意软件的基础检测模型,完成异构化的基础检测模型池构建;
所述步骤2:多样化对抗训练,具体如下,根据所生成的5个基础检测模型以及其对应的5份训练集,通过公开的Python平台SecML库中的secml.adv.attacks函数对SVM检测模型进行多种对抗样本攻击,包括CAttackEvasionPGD、CAttackEvasionPGDLs、CAttackEvasionPGDExp、CAttackEvasionCleverhans、CFoolboxBasicIterative、CFoolboxL2CarliniWagner、CFoolboxL2DDN、CFoolboxDeepfool、CFoolboxEAD、CFoolboxFGM等共计11种对抗样本攻击方法,对11种对抗攻击方法的效果进行评估,将攻击成功率由高到低排序,筛选前4种对抗样本攻击,向每一份训练集中标注为恶意软件的数据分别注入4种不同的对抗性扰动,形成5*4份恶意扰动数据;根据采用的5种机器学习算法和5份验证集以及5*4份恶意扰动数据,针对SVM算法、KNN算法、DT算法、LR算法、MLP算法,分别采用对抗训练生成4个对抗检测模型,共计生成5*4个对抗检测模型;
所述步骤3:最优化集成学习,具体如下,根据步骤1所获取的测试子集,对其中标注为恶意软件的数据通过公开的Python平台SecML库中的secml.adv.attacks函数进行CFoolboxDeepfool、CAttackEvasionPGDExp、CAttackEvasionPGDLs、CFoolboxFGM攻击,生成对抗样本测试子集;根据步骤2所生成的5*4个对抗检测模型,采用所生成的对抗样本测试集对模型的对抗样本检测性能由高至低排序,获取得到检测性能最高的三个对抗检测模型;根据所获取到的检测性能最高的三个对抗检测模型,采取集成学习方法生成集成检测模型;
所述步骤4:混合式动态更新,具体如下,根据步骤3所获取到集成检测模型,由动态更新触发器进行监测,预设检测次数阈值为1000,预设错误事件次数阈值为400,当监测次数达到阈值时,清除触发器当前计数,并重复步骤1至3。
其中,针对步骤1:含有多个异构检测模型的模型池构建方法,具体如下:
步骤(1.1)选取公开安卓软件数据集Drebin,选取含有良性标签的安卓软件47770项和含有恶意标签的安卓软件5615项,通过公开的Androguard工具提取所选取的安卓软件的二进制特征,共形成53385条安卓软件的特征向量;
步骤(1.2)针对步骤(1.1)所获取的53385条安卓软件特征向量,采取预设的比例6:2:2进行随机抽取,分别形成含有32031条特征向量的训练集、含有10677条特征向量的验证集与含有10677条特征向量的测试集;
步骤(1.3)针对步骤(1.2)所获取的训练集、验证集与测试集,通过对其进行随机抽取,将上述数据集合分别分为5等份,得到5份训练子集、5份验证子集和5份测试子集。
步骤(1.4)针对步骤(1.3)所获取的5份训练子集,通过公开的TensorFlow平台与Python平台的Scikit-learn库,选用支持向量机(Support Vector Machine,SVM)算法、K最邻近(K-NearestNeighbor,KNN)算法、决策树(DecisionTree,DT)算法、逻辑回归(LogisticRegression,LR)算法与多层感知机(Multi-Layer Perceptron,MLP)算法共计5种不同的机器学习算法对5份训练子集分别进行训练;
步骤(1.5)基于步骤(1.3)所获取的5份验证子集,针对步骤(1.4)的训练过程,采用Python平台Scikit-learn库中的GridSearchCV函数,系统地遍历多种模型参数组合,确定最佳检测效果的参数;其中,SVM算法的penalty hyper-parameter设定为0.1,KNN算法的leaf size设定为30且采用欧氏距离计算距离,DT算法的每个分片的最小样本数设定为2,LR算法的penalty parameter设定为1且最大迭代次数为100,MLP算法设定有两个全连接层(每层含有160个神经元)且采用ReLU函数作为激活函数。基于上述参数生成5个异构的安卓软件基础检测模型,组合形成异构检测模型池。
针对步骤2:多样化对抗检测模型的构建方法,具体如下:
步骤(2.1)针对步骤(1.5)所获取的1个安卓软件基础检测模型(例如,基于SVM算法的基础检测模型),通过公开的Python平台SecML库中的secml.adv.attacks函数对SVM检测模型进行多种对抗样本攻击,包括CAttackEvasionPGD、CAttackEvasionPGDLs、CAttackEvasionPGDExp、CAttackEvasionCleverhans、CFoolboxBasicIterative、CFoolboxL2CarliniWagner、CFoolboxL2DDN、CFoolboxDeepfool、CFoolboxEAD、CFoolboxFGM等共计11种对抗样本攻击方法;
步骤(2.2)采用公开的Python平台SecML库中objective_function函数对步骤(2.1)的实施的总计11种对抗攻击方法的效果进行评估,将攻击成功率由高到低排序,筛选前4种对抗样本攻击,分别为CFoolboxDeepfool、CAttackEvasionPGDExp、CAttackEvasionPGDLs、CFoolboxFGM,保存其产生的4份恶意对抗扰动数据;
步骤(2.3)针对KNN算法、DT算法、LR算法、MLP算法分别重复步骤(2.1)(2.2),总计得到5*4份恶意对抗扰动数据。
步骤(2.4)针对步骤(2.3)所获取的份恶意对抗扰动数据,设置其标签为恶意软件,并将SVM算法、KNN算法、DT算法、LR算法、MLP算法生成的4份恶意对抗扰动数据添加至各自对应的训练子集分片中,总计生成5*4份对抗训练子集;
步骤(2.5)针对步骤(2.4)所获取的新的训练子集,通过公开的TensorFlow平台与Python平台的Scikit-learn库,选用步骤(1.4)采用的机器学习算法SVM算法、KNN算法、DT算法、LR算法、MLP算法分别对5*4份对抗训练子集进行重新训练;
步骤(2.6)基于步骤(1.3)所获取的5份验证子集,针对每一份验证子集中标签为恶意的数据,采用步骤(2.2)中选定的4种对抗样本攻击方法,通过公开的Python平台SecML库中的secml.adv.attacks函数进行CFoolboxDeepfool、CAttackEvasionPGDExp、CAttackEvasionPGDLs、CFoolboxFGM攻击,生成5*4份对抗验证子集;
步骤(2.7)基于步骤(2.6)所获取的5*4份对抗验证子集,针对步骤(2.5)的训练过程,采用Python平台Scikit-learn库中的GridSearchCV函数,系统地遍历多种模型参数组合,确定最佳检测效果的参数。其中,SVM算法针对CFoolboxDeepfool、CFoolboxFGM攻击的对抗模型的penalty hyper-parameter设定为0.1,针对CAttackEvasionPGDExp、CAttackEvasionPGDLs攻击的对抗模型的penalty hyper-parameter设定为1;KNN算法针对CFoolboxDeepfool攻击的对抗模型leaf size设定为30,针对CAttackEvasionPGDExp、CAttackEvasionPGDLs、CFoolboxFGM攻击的对抗模型leaf size设定为50,所有对抗模型均采用欧氏距离计算距离;DT算法针对CFoolboxDeepfool、CFoolboxFGM攻击的每个分片的最小样本数设定为2,针对CAttackEvasionPGDExp、CAttackEvasionPGDLs攻击的对抗模型的每个分片的最小样本数设定为5;LR算法针对CFoolboxDeepfool攻击的对抗模型的penaltyparameter设定为1,针对CAttackEvasionPGDExp、CAttackEvasionPGDLs、CFoolboxFGM攻击的对抗模型的penalty parameter设定为0.1,所有对抗模型的最大迭代次数均设为100;MLP算法针对上述4项对抗攻击的模型参数均设定为两个全连接层(每层含有160个神经元)且采用ReLU函数作为激活函数。基于上述参数设定情况,总计生成5*4个安卓软件对抗检测模型。
针对步骤3:可检出主流全类型对抗样本的安卓软件对抗样本集成检测模型构建方法,具体如下:
步骤(3.1)针对步骤(1.3)所获取的5份测试子集中的1份,分别采用步骤(2.2)中选定的4种对抗样本攻击方法,通过公开的Python平台SecML库中的secml.adv.attacks函数进行CFoolboxDeepfool、CAttackEvasionPGDExp、CAttackEvasionPGDLs、CFoolboxFGM攻击,得到4份对抗样本数据,将其数据合并后生成1份对抗测试子集;
步骤(3.2)针对步骤(1.3)所获取的5份测试子集,重复步骤(3.1)5次,总计得到5份对抗测试子集。
步骤(3.3)针对步骤(2.7)所获取的5*4个安卓软件对抗检测模型,根据其所属的基础检测模型类型,将其分为5类,即SVM算法的对抗模型、KNN算法的对抗模型、DT算法的对抗模型、LR算法的对抗模型、MLP算法的对抗模型,每类包含4个不同的安卓软件对抗检测模型;
步骤(3.4)针对同一类别的4个安卓软件对抗检测模型,按照模型损失函数的大小由低到高进行排序,选取出该类型中loss值最小的对抗检测模型;
步骤(3.5)针对5种不同类型的对抗检测模型,重复步骤(3.4)5次,得到5个不同类别的最优安卓软件对抗检测模型,分别为SVM算法对抗CAttackEvasionPGDLs攻击的对抗模型、KNN算法对抗CAttackEvasionPGDExp攻击的对抗模型、DT算法对抗CFoolboxFGM攻击的对抗模型、LR算法对抗CAttackEvasionPGDExp攻击的对抗模型、MLP算法对抗CFoolboxDeepfool攻击的对抗模型;
步骤(3.6)针对步骤(3.5)所获取的5个安卓软件对抗检测模型,采用步骤(3.2)所获取的5份对抗测试子集,通过Python平台的Scikit-learn库中的metrics.accuracy_score()函数进行检测准确率效果测试,按准确率大小从高到低进行排序,筛选得到检测准确率最高的三个对抗检测模型为MLP算法对抗CFoolboxDeepfool攻击的对抗模型、DT算法对抗CFoolboxFGM攻击的对抗模型、SVM算法对抗CAttackEvasionPGDLs攻击的对抗模型。
步骤(3.7)针对步骤(3.6)所获取的三个对抗检测模型,通过任意选择步骤(3.1)所获取的5份测试子集中的1份,分别输出三个测试结果;
步骤(3.8)针对步骤(3.7)输出的三个测试结果,按照多数投票规则确定最终输出结果,并将三个对抗检测模型进行集成,生成集成检测模型。
针对步骤4:基于检测周期与错误事件的混合式动态更新触发方法,具体如下:
步骤(4.1)针对步骤(3.8)所获取的集成检测模型,设置计数器用于统计模型检测安卓软件的次数;同时,当其中出现1个子模型的检测结果与另外两个子模型检测结果不一致时,记作一次错误检测事件,并设置另一个计数器用于统计模型检测安卓软件中错误事件的次数;
步骤(4.2)针对步骤(4.1)所获取的检测次数,通过将其与预设的次数阈值1000进行比较,当其超过阈值时触发架构进行动态更新,并清除步骤(4.1)所设置检测次数计数器的统计次数,重新将计数器置为0;针对步骤(4.1)所获取的错误事件次数,通过将其与预设的错误阈值400进行比较,当其超过阈值时触发架构进行动态更新,并同时清除步骤(4.1)中两个计数器的统计次数;否则,返回步骤(4.1)。
需要说明的是上述实施例,并非用来限定本发明的保护范围,在上述技术方案的基础上所作出的等同变换或替代均落入本发明权利要求所保护的范围。
Claims (5)
1.基于移动目标防御思想的安卓恶意软件对抗样本检测方法,其特征在于:所述检测方法包括以下步骤:
步骤1:异构化模型池构建,
步骤2:多样化对抗训练,
步骤3:最优化集成学习,
步骤4:混合式动态更新,
其中,步骤1:异构化模型池构建,具体如下,对含有标签的安卓软件提取特征,并按照一定比例随机抽取数据样本,划分为训练集、验证集和测试集;根据所获取的训练集与验证集,将其分别随机分为m等份(m大于等于3),分别采用m种机器学习算法基于等分后的训练集和验证集,训练得到m个异构的安卓恶意软件的基础检测模型,完成异构化的基础检测模型池构建;
步骤2:多样化对抗训练,具体如下,根据所生成的m个基础检测模型以及其对应的m份训练集,向每一份训练集中标注为恶意软件的数据分别注入n种不同的对抗性扰动(n大于等于1),形成m*n份恶意扰动数据;根据采用的m种机器学习算法和m份验证集以及m*n份恶意扰动数据,针对每种机器学习算法,采用对抗训练生成n个对抗检测模型,共计生成m*n个对抗检测模型;
步骤3:最优化集成学习,具体如下,根据步骤1所获取的测试子集,对其中标注为恶意软件的数据生成对抗性样本,形成对抗样本测试子集;根据步骤2所生成的m*n个对抗检测模型,采用所生成的对抗样本测试集对模型的对抗样本检测性能由高至低排序,获取得到检测性能最高的三个对抗检测模型;根据所获取到的检测性能最高的三个对抗检测模型,采取集成学习方法生成集成检测模型;
步骤4:混合式动态更新,具体如下,根据步骤3所获取到集成检测模型,由动态更新触发器进行监测,当监测次数达到阈值时,清除触发器当前计数,并重复步骤1至3。
2.根据权利要求1所述的基于移动目标防御思想的安卓恶意软件对抗样本检测方法,其特征在于,所述步骤1:异构化模型池构建,具体过程如下:
步骤(1.1)针对含有良性与恶意标签的安卓软件,提取安卓软件的二进制特征向量;
步骤(1.2)针对步骤(1.1)所获取的安卓软件特征向量,采取预设比例进行随机抽取,分别形成训练集、验证集与测试集;
步骤(1.3)针对步骤(1.2)所获取的训练集、验证集与测试集,将上述数据集合分别分为m等份,得到m份训练子集、m份验证子集和m份测试子集;
步骤(1.4)针对步骤(1.3)所获取的m份训练子集,选用m种不同的机器学习算法对m份训练子集进行训练;
步骤(1.5)基于步骤(1.3)所获取的m份验证子集,针对步骤(1.4)的训练过程,遍历多种模型参数组合,确定最佳参数,生成m个安卓软件基础检测模型。
3.根据权利要求1所述的基于移动目标防御思想的安卓恶意软件对抗样本检测方法,其特征在于,所述步骤2:多样化对抗训练,具体过程如下:
步骤(2.1)针对步骤(1.5)所获取的安卓软件基础检测模型,进行多种对抗样本攻击;
步骤(2.2)针对步骤(2.1)的对抗攻击效果进行评估,将攻击效果由高到低排序,筛选前n种对抗样本攻击,保存其产生的n份恶意对抗扰动数据;
步骤(2.3)重复步骤(2.1)(2.2)m次,得到m*n份恶意对抗扰动数据;
步骤(2.4)针对步骤(2.3)所获取的m*n份恶意对抗扰动数据,设置其标签为恶意软件,并分别将其添加至训练子集中,生成m*n份对抗训练子集;
步骤(2.5)针对步骤(2.4)所获取的新的训练子集,选用步骤(1.4)采用的机器学习算法分别对m*n份对抗训练子集进行重新训练;
步骤(2.6)基于步骤(1.3)所获取的m份验证子集,针对每一份验证子集中标签为恶意的数据,采用步骤(2.2)中选定的n种对抗样本攻击方法进行攻击,生成m*n份对抗验证子集;
步骤(2.7)基于步骤(2.6)所获取的m*n份对抗验证子集,针对步骤(2.5)的训练过程,遍历模型参数组合,确定最佳参数,生成m*n个安卓软件对抗检测模型。
4.根据权利要求1所述的基于移动目标防御思想的安卓恶意软件对抗样本检测方法,其特征在于,所述步骤3:最优化集成学习,具体过程如下:
步骤(3.1)针对步骤(1.3)所获取的1份测试子集,分别采用步骤(2.2)中选定的n种对抗样本攻击方法进行攻击,得到n份对抗样本数据,将其合并后生成1份对抗测试子集;
步骤(3.2)针对步骤(1.3)所获取的m份测试子集,重复步骤(3.1)m次,得到m份对抗测试子集;
步骤(3.3)重复步骤(3.1)(3.2)m次,得到m*n份恶意对抗扰动数据;
步骤(3.4)针对步骤(2.7)所获取的m*n个安卓软件对抗检测模型,根据其所属的基础检测模型类型,将其分为m类,每类包含n个安卓软件对抗检测模型;
步骤(3.5)针对同一类别的n个安卓软件对抗检测模型,按照模型损失函数大小由低到高进行排序,选取出该类型中loss值最小的对抗检测模型;
步骤(3.6)针对m种不同类型的对抗检测模型,重复步骤(3.5)m次,得到m个最优对抗检测模型;
步骤(3.7)针对步骤(3.6)获取的m个最优对抗检测模型,采用步骤(3.2)获取的m份对抗测试子集进行准确率测试,按从高到低排序,筛选得到检测效果最高的三个子模型;
步骤(3.8)针对步骤(3.7)所获取的三个对抗检测模型,通过任意选择步骤(1.3)所获取的m份测试子集中的1份,分别输出三个测试结果;
步骤(3.9)针对步骤(3.8)输出的三个测试结果,按照多数投票规则确定最终输出结果,将三个对抗检测模型进行集成,生成集成检测模型。
5.根据权利要求1所述的基于移动目标防御思想的安卓恶意软件对抗样本检测方法,其特征在于,所述步骤4:混合式动态更新,具体过程如下:
步骤(4.1)针对步骤(3.9)所获取的集成检测模型,设置计数器实时统计模型检测次数;同时,当出现1个子模型结果与另外两个子模型不一致时,记作一次错误检测事件,设置另一个计数器用于实时统计模型发生错误事件的次数;
步骤(4.2)针对步骤(4.1)所获取的检测次数,通过将其与预设的次数阈值进行比较,当其超过阈值时触发架构进行动态更新,并清除步骤(4.1)记录检测次数的计数器次数;针对步骤(4.1)所获取的错误事件次数,通过将其与预设的错误阈值进行比较,当其超过阈值时触发架构进行动态更新,并同时清除步骤(4.1)中两个计数器的统计次数;否则,返回步骤(4.1)。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211312751.8A CN115577358A (zh) | 2022-10-25 | 2022-10-25 | 基于移动目标防御思想的安卓恶意软件对抗样本检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211312751.8A CN115577358A (zh) | 2022-10-25 | 2022-10-25 | 基于移动目标防御思想的安卓恶意软件对抗样本检测方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115577358A true CN115577358A (zh) | 2023-01-06 |
Family
ID=84587436
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211312751.8A Pending CN115577358A (zh) | 2022-10-25 | 2022-10-25 | 基于移动目标防御思想的安卓恶意软件对抗样本检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115577358A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116204890A (zh) * | 2023-04-28 | 2023-06-02 | 浙江鹏信信息科技股份有限公司 | 一种自适应增强人工智能算法安全的算法组件库 |
-
2022
- 2022-10-25 CN CN202211312751.8A patent/CN115577358A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116204890A (zh) * | 2023-04-28 | 2023-06-02 | 浙江鹏信信息科技股份有限公司 | 一种自适应增强人工智能算法安全的算法组件库 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Azizi et al. | {T-Miner}: A generative approach to defend against trojan attacks on {DNN-based} text classification | |
Chen et al. | Detecting backdoor attacks on deep neural networks by activation clustering | |
Dahl et al. | Large-scale malware classification using random projections and neural networks | |
Sethi et al. | Deep reinforcement learning based intrusion detection system for cloud infrastructure | |
Khreich et al. | Adaptive ROC-based ensembles of HMMs applied to anomaly detection | |
Zolotukhin et al. | Detection of zero-day malware based on the analysis of opcode sequences | |
CN111598179A (zh) | 电力监控系统用户异常行为分析方法、存储介质和设备 | |
Elsayed et al. | Detecting abnormal traffic in large-scale networks | |
Zhao et al. | CLPA: Clean-label poisoning availability attacks using generative adversarial nets | |
CN115577358A (zh) | 基于移动目标防御思想的安卓恶意软件对抗样本检测方法 | |
Park et al. | Birds of a feature: Intrafamily clustering for version identification of packed malware | |
CN111898129A (zh) | 基于Two-Head异常检测模型的恶意代码样本筛选器及方法 | |
Udas et al. | Attention-based RNN architecture for detecting multi-step cyber-attack using PSO metaheuristic | |
Haroon et al. | Adversarial Training Against Adversarial Attacks for Machine Learning-Based Intrusion Detection Systems. | |
Čavojský et al. | Comparative Analysis of Feed-Forward and RNN Models for Intrusion Detection in Data Network Security with UNSW-NB15 Dataset | |
Khoda et al. | Selective adversarial learning for mobile malware | |
De Paola et al. | Malware Detection through Low-level Features and Stacked Denoising Autoencoders. | |
Brown et al. | The adversarial ufp/ufn attack: A new threat to ml-based fake news detection systems? | |
Farrahi et al. | KCMC: A hybrid learning approach for network intrusion detection using K-means clustering and multiple classifiers | |
Thanh et al. | Evaluating effectiveness of ensemble classifiers when detecting fuzzers attacks on the unsw-nb15 dataset | |
Tirumala et al. | Evaluation of feature and signature based training approaches for malware classification using autoencoders | |
Granese et al. | MEAD: A multi-armed approach for evaluation of adversarial examples detectors | |
Rahman et al. | Interpreting Machine and Deep Learning Models for PDF Malware Detection using XAI and SHAP Framework | |
Oliveira et al. | Improving cascading classifiers with particle swarm optimization | |
Liu et al. | Network intrusion detection based on chaotic multi-verse optimizer |
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 |