掌桥专利:专业的专利平台
掌桥专利
首页

Android恶意应用检测模型、构建方法及存储介质

文献发布时间:2024-04-18 19:58:26


Android恶意应用检测模型、构建方法及存储介质

技术领域

本发明属于恶意应用检测技术领域,尤其涉及一种Android恶意应用检测模型、构建方法及存储介质。

背景技术

随着国内移动互联网的迅速发展,且手机具备天然的便携性,如今已然成为人们生活和工作中不可或缺的一部分。然而随着手机日益普及与智能化,移动安全问题也变得日益重要,其中Android手机占据移动市场半壁江山。为此本论文旨在研究和探讨移动安全领域中存在已久的关键问题和挑战——“恶意AndroidApp识别”,并提出有效的解决方案和建议。

通过对AndroidApp所面临的安全威胁进行详细分析,并调研了诸多解决方案和技术,比如在2015年后开始流行的“将代码片段转换成图像,并通过卷积神经网络进行恶意代码识别的检测方式”,此思路虽十分具有创造性但仍缺乏精细化,过高的特征维度以及所提取的特征不具备代表性;

另一种比较流行的处理Android代码特征工程的方式为“使用局部敏感哈希(LocalitySensitiveHashing,LSH)的相似性摘要”,此种特征工程方式所生成的特征向量更具备代表性,能较好的反映出各个Android代码片段的异同,并迅速定位到恶意的代码片段,此种方式已然成为在近几年的工业界中的主流,如微软应急响应中心在2021年使用模糊哈希提取特征并通过深度学习来检测恶意软件,又如阿里云在2022年的BotConf会议上提出“通过模糊哈希对病毒样本进行特征提取,使用图数据库关联来对恶意家族进行聚类”。然而在实际运用中,由于模糊哈希算法只计算文件的局部特征,因此容易被攻击者通过修改文件生成相同的哈希值,从而绕过检测。

目前,Android恶意应用呈现多样性、隐蔽性特点。不同类型的恶意应用都有各自的特征,使得检测变得复杂。传统静态和动态分析方法提出了基于语法和行为特征的恶意应用检测,但缺点是计算开销大、易受代码混淆影响以及可能忽略部分语义信息。Android恶意应用检测方法尝试解决了特征复杂度、训练的计算开销问题以及忽略部分语义信息问题,如何既能百分百的检测已知的针对移动应用的恶意行为又能具备检测变种恶意应用的能力、如何有效检测具有复杂特征的Android恶意应用等问题是目前研究的热点。然而传统的检测都关注在行为本身特征上,没有考虑调用序列与权限之间的关联。

通过上述分析,现有技术存在的问题及缺陷为:

1)特征选择与维度:一种创新的方法是将代码片段转换成图像,并通过卷积神经网络进行恶意代码识别,但这种方法很可能导致高维特征和可能不具代表性的特征,这增加了计算复杂性并可能降低检测的准确性。

2)特征工程方法的局限性:局部敏感哈希(LSH)的相似性摘要为工业界广泛采纳的特征工程方法,它可以很好地反映Android代码片段之间的差异。但模糊哈希算法主要考虑文件的局部特征,这意味着攻击者可以通过轻微修改文件来生成相同的哈希值,绕过检测。

3)检测的多样性与隐蔽性:Android恶意应用的种类日益增多,它们之间的差异很大,并且越来越难以检测。这增加了检测的复杂性,并要求检测技术不断更新以应对新的威胁。

4)代码混淆问题:传统的静态和动态分析方法容易受到代码混淆的影响,这使得恶意代码在不改变功能的情况下逃避检测。

5)语义信息的忽略:传统方法可能忽略代码的语义信息,而只关注表面行为。这意味着即使行为看起来是合法的,代码的实际意图可能是恶意的。

6)调用序列与权限关联的忽视:调用序列和权限之间的关联可能为恶意行为提供了一个独特的指纹。忽略这种关联可能会导致一些恶意行为逃脱检测。

综合上述分析,现有技术需要解决的急迫问题如下:

1)开发更具代表性的特征工程方法:针对Android应用的结构和行为,开发更加具有代表性和鲁棒性的特征工程方法。

2)考虑代码的深层语义信息:开发可以提取代码深层次语义信息的检测技术,提高对混淆和隐蔽恶意代码的识别率。

3)深入研究调用序列与权限关联:开发能够利用调用序列与权限之间关联的恶意应用检测技术,提供更高的准确性和鲁棒性。

4)跨平台和跨版本的恶意应用检测:随着Android系统版本的迅速更新和不同厂家的定制化,需要开发能够跨平台和跨版本有效工作的检测技术。

5)实时或近实时的恶意应用检测:随着恶意应用的传播速度加快,需要更快的检测响应时间。

6)防御绕过技术的策略:开发能够对抗模糊哈希和其他特征工程方法的绕过策略,提高检测的鲁棒性。

发明内容

针对现有技术存在的问题,本发明提供了一种Android恶意应用检测模型、构建方法及存储介质。

本发明是这样实现的,一种Android恶意应用检测模型的构建方法,所述Android恶意应用检测模型的构建方法,包括以下步骤:

对AndroidAPK文件进行反编译,提取恶意应用中的调用方法的操作码序列,其中每个方法都以.method开头并以.endmethod结束,对每一个方法片段进行模糊哈希处理并连接每一片;

联合Android恶意应用权限计算模糊哈希值,对模糊哈希值进行融合处理,模糊哈希特征将包含恶意应用的调用方法操作码序列特征以及权限特征,并将进行压缩;

进行特征优化处理,对模糊哈希特征整数编码并转换成5-gram特征放入随机森林模型进行分类训练。

进一步,所述Android恶意应用检测模型的构建方法首先解压缩Android App的APK文件得到Dex文件,随后使用APKTool将其反编译为字节码;其次,从初始字节码里提取函数方法,在每个Class里通过字符串匹配算法定位各个.method的函数地址,并开始提取里面的Dalvik操作码直至匹配到.endmethod;得到函数方法的操作码序列的模糊哈希值,将读取到的各个函数方法的操作码序列经过SSDeep算法得到各个序列片段的SSDeep哈希值;最后将同一个Class里的MethodSSDeep哈希值聚合后再进行一次SSDeep算法就得到基于Method操作码序列的特征。

进一步,所述Android恶意应用检测模型的构建方法通过SSDeep算法对AndroidApp的权限和Method操作码转换为SSDeep哈希值并联合每片模糊哈希值;使用融合模糊哈希值,将得到模糊哈希联合片再进行SSDeep计算得到融合后的模糊哈希值,融合片段的模糊哈希值既表现恶意应用的方法行为序列和权限;将模糊哈希值字符串转换为供机器学习模型使用的输入特征,进行特征优化处理,并对其进行整数编码。

进一步,整数编码的过程是将字符映射到整数,在对SSdeep特征序列进行整数编码后,转换为5-gram特征,5-gram就是长度为5的连续字符子序列;通过遍历已编码的整数序列,每次从当前位置向后取5个整数,直到遍历完整个序列。

进一步,所述Android恶意应用检测模型的构建方法采用的随机森林分类模型,算法实现是使用Scikit-learn的RandomForestClassifier模块,其中使用基尼指数用于衡量不纯度的函数,即用于选择最佳分裂点的准则;集成学习中决策树的数量也就是迭代次数n_estimators=100。

进一步,使用多个值并根据训练效果进行调整,设定max_depth=10限制决策树的深度;如果将这个参数设置得太小,可能会导致欠拟合,而如果设置得太大,则可能会导致过拟合;设置oob_score=True表示模型使用袋外样本进行评估,样本没有被用于训练过程中的任何一棵决策树,bootstrap=True表示使用自助采样来构建每棵决策树,n_jobs设置为10,以使用多核计算器并行计算模型。

本发明的另一目的在于提供一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行所述Android恶意应用检测模型的构建方法。

本发明的另一目的在于提供一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行所述Android恶意应用检测模型的构建方法。

本发明的另一目的在于提供一种信息数据处理终端,所述信息数据处理终端用于实现所述Android恶意应用检测模型的构建方法。

本发明的另一目的在于提供一种基于所述Android恶意应用检测模型的构建方法的Android恶意应用检测模型,所述Android恶意应用检测模型包括:

序列提取模块,用于对AndroidAPK文件进行反编译,提取恶意应用中的调用方法的操作码序列,其中每个方法都以.method开头并以.endmethod结束,对每一个方法片段进行模糊哈希处理并连接每一片;

融合处理模块,用于联合Android恶意应用权限计算模糊哈希值,对模糊哈希值进行融合处理,模糊哈希特征将包含恶意应用的调用方法操作码序列特征以及权限特征,并进行压缩;

特征优化模块,用于进行特征优化处理,对模糊哈希特征整数编码并转换成5-gram特征放入随机森林模型进行分类训练。

结合上述的技术方案和解决的技术问题,本发明所要保护的技术方案所具备的优点及积极效果为:

第一、本发明联合Android恶意应用权限和带有函数行为的操作码计算模糊哈希值,对这些模糊哈希值进行融合处理,该模糊哈希特征将包含恶意应用的调用方法操作码序列特征以及权限特征,并将其进行压缩,减少了内存占用和计算开销,提高了检测速度和检测效率。

第二,本发明提出一种包含多Android代码片段的SSDeep特征的融合方法,该方法将函数颗粒度的调用序列特征和从AndroidApp中提取应用权限代码片段特征进行融合,相比传统的模糊哈希特征提取方式,有更丰富的语义特征,使得所生成的特征向量更能表现出恶意代码与正常代码的差异;对第三方Python模块Dexofuzzy进行改进,增加了提取AndroidManifest.xml权限代码片段用于SSDeep运算,解决了不支持Android多代码提取的问题;使用随机森林模型相获得了比较高的准确率,达到了较好的训练效果。本发明还可以通过增加恶意软件样本来提高检测准确性,也可以通过增加恶意应用权限和操作码来提高检测灵敏度,具有较强的可扩展性

第三,作为本发明的权利要求的创造性辅助证据,还体现在以下几个重要方面:

(1)本发明的技术方案转化后的预期收益和商业价值为:

本发明可以用于Android恶意软件检测和防护,可以为用户提供安全的Android应用环境,阻止恶意软件的攻击,保护用户的设备和数据安全。

本发明的技术方案可以应用于Android安全市场,该市场规模庞大,增长迅速。据统计,2022年全球Android安全市场规模为125亿美元,预计到2027年将达到245亿美元,年复合增长率为12.9%。本发明的技术方案可以为Android安全市场提供新的解决方案,可以满足市场对安全产品和服务的不断增长的需求。本发明的技术方案还可以应用于其他领域,如网络安全、信息安全等。本发明具有很强的通用性,可以应用于各种安全场景。

(2)本发明的技术方案填补了国内外业内技术空白:

目前,国内外现有的Android恶意软件检测技术主要有两种:基于特征码的检测方法和基于机器学习的检测方法。基于特征码的检测方法是通过提取恶意软件中的特征码,如API调用、字符串等,与已知恶意软件库中的特征码进行比对来进行检测。但是,这种方法的准确性较低,因为恶意软件作者可以通过修改特征码来绕过检测。基于机器学习的检测方法是通过训练一个机器学习模型,来学习恶意软件的行为特征,然后使用该模型来检测未知的恶意软件。但是,这种方法的训练时间较长,而且需要大量的恶意软件样本。本发明的技术方案克服了这些现有技术的缺点,具有较高的准确性、效率和可扩展性。

第四,每条权利要求带来的显著的技术进步如下:

1)权利要求1提出了一种基于模糊哈希和随机森林分类器的Android恶意应用检测模型构建方法。该方法将恶意应用中的调用方法的操作码序列和应用权限特征联合使用,通过模糊哈希和随机森林分类器实现恶意应用的检测。相对于现有的安卓恶意应用检测方法,该方法的检测效果更加准确和高效。

2)权利要求2提出了一种基于SSDeep算法和Dalvik字节码的Android恶意应用检测模型构建方法。该方法使用SSDeep算法对恶意应用的权限和Method操作码转换为SSDeep哈希值并联合每片模糊哈希值,使用模糊哈希和随机森林分类器实现恶意应用的检测。相对于现有的安卓恶意应用检测方法,该方法的检测效果更加准确和高效。

3)权利要求3提出了一种特征优化处理方法,将模糊哈希特征整数编码并转换成5-gram特征放入随机森林模型进行分类训练。相对于现有的方法,该方法可以更好地提取Android恶意应用的特征,从而提高检测准确率。

4)权利要求4提出了一种整数编码的方法,将字符映射到整数,并转换为5-gram特征。相对于现有的方法,该方法可以更好地提取Android恶意应用的特征,从而提高检测准确率。

5)权利要求5提出了一种基于Scikit-learn的RandomForestClassifier模块的随机森林分类模型。该模型使用基尼指数用于衡量不纯度的函数,即用于选择最佳分裂点的准则;集成学习中决策树的数量也就是迭代次数n_estimators=100。该模型可以更好地对Android恶意应用进行分类,从而提高检测准确率。

6)权利要求6提出了一种对随机森林分类模型的参数进行调整的方法。该方法通过多个值并根据训练效果进行调整,设定max_depth=10限制决策树的深度;设置oob_score=True表示模型使用袋外样本进行评估;bootstrap=True表示使用自助采样来构建每棵决策树;n_jobs设置为10,以使用多核计算器并行计算模型。该方法可以更好地对随机森林分类模型进行优化,从而提高检测准确率。

附图说明

图1是本发明实施例提供的Android恶意应用检测模型的构建方法流程图;

图2是本发明实施例提供的Android恶意应用检测模型的构建方法原理图;

图3是本发明实施例提供的操作码序列特征工程生成流程图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

如图1所示,本发明实施例提供的Android恶意应用检测模型的构建方法,包括以下步骤:

S101:对AndroidAPK文件进行反编译,提取恶意应用中的调用方法的操作码序列,其中每个方法都以.method开头并以.endmethod结束,对每一个方法片段进行模糊哈希处理并连接每一片,生成该特征提取流程图如图3所示;

S102:在AndroidManifest.xml文件中提取Android应用的权限信息,联合Android恶意应用权限计算模糊哈希值,对这些模糊哈希值进行融合处理,该模糊哈希特征将包含恶意应用的调用方法操作码序列特征以及权限特征,并将其进行压缩,减少了内存占用和计算开销;

S103:进行特征优化处理,对模糊哈希特征整数编码并转换成5-gram特征放入随机森林模型进行分类训练。

实施例1:

本发明实施例提供的Android恶意应用检测模型的构建方法,包括以下步骤:

步骤一,为了得到恶意应用的初始字节码,首先解压缩AndroidApp的APK文件得到Dex文件,随后使用APKTool将其反编译为字节码;其次,本发明从初始字节码里提取函数方法,在每个Class里通过字符串匹配算法定位各个.method的函数地址,并开始提取里面的Dalvik操作码直至匹配到.endmethod;接下来得到函数方法的操作码序列的模糊哈希值,将读取到的各个函数方法的操作码序列经过SSDeep算法得到各个序列片段的SSDeep哈希值;最后将同一个Class里的MethodSSDeep哈希值聚合后再进行一次SSDeep算法就得到基于Method操作码序列的特征。

步骤二,通过SSDeep算法对AndroidApp的权限和Method操作码转换为SSDeep哈希值并联合每片模糊哈希值。为了进一步提高分类和识别的准确性,本发明使用融合模糊哈希值,将得到模糊哈希联合片再进行SSDeep计算得到融合后的模糊哈希值,这个融合片段的模糊哈希值既表现了恶意应用的方法行为序列和权限,又表现了方法行为序列和权限之间的关联;接下来,为了将模糊哈希值字符串转换为可供机器学习模型使用的输入特征,进行特征优化处理,并对其进行整数编码。整数编码的过程是将字符映射到整数,比如将"a"映射为其ASCII码为97,"b"映射为98。在对SSdeep特征序列进行整数编码后,还需要将其转换为5-gram特征,5-gram就是长度为5的连续字符子序列。通过遍历已编码的整数序列,每次从当前位置向后取5个整数,直到遍历完整个序列。以更好地表示输入数据的局部结构和相邻字符之间的关系。将原始序列转换为一个由5-gram特征向量构成的序列。整个过程可以解决未知的相似性问题,通过对模糊哈希特征进行整数编码和创建5-gram特征来捕捉输入数据中的潜在相似性,利用随机森林分类模型的强大泛化能力,将数据映射到对应的类别。

步骤三,采用的随机森林分类模型,算法实现是使用Scikit-learn的RandomForestClassifier模块,其中使用基尼指数用于衡量不纯度的函数,即用于选择最佳分裂点的准则。集成学习中决策树的数量也就是迭代次数n_estimators=100,本发明尝试使用了多个值并根据训练效果进行调整,提高了模型的准确性和稳定性。设定max_depth=10限制决策树的深度,可以有效地避免过拟合。如果将这个参数设置得太小,可能会导致欠拟合,而如果设置得太大,则可能会导致过拟合。设置oob_score=True表示模型使用袋外样本进行评估,这些样本没有被用于训练过程中的任何一棵决策树,bootstrap=True表示使用自助采样来构建每棵决策树。n_jobs设置为10,以使用多核计算器并行计算模型,可以加速模型的训练过程,提高效率。

本发明实施例提供的Android恶意应用检测模型,包括:

序列提取模块,用于对AndroidAPK文件进行反编译,提取恶意应用中的调用方法的操作码序列,其中每个方法都以.method开头并以.endmethod结束,对每一个方法片段进行模糊哈希处理并连接每一片;

融合处理模块,用于联合Android恶意应用权限计算模糊哈希值,对这些模糊哈希值进行融合处理,该模糊哈希特征将包含恶意应用的调用方法操作码序列特征以及权限特征,并将其进行压缩,减少了内存占用和计算开销;

特征优化模块,用于进行特征优化处理,对模糊哈希特征整数编码并转换成5-gram特征放入随机森林模型进行分类训练。

本发明的可应用于Android恶意软件检测、分析和防护等领域,为用户提供安全的Android应用环境,阻止恶意软件的攻击,保护用户的设备和数据安全。本发明的技术方案可以应用于Android恶意软件检测产品,如安全软件、杀毒软件、防病毒软件等。这些产品可以使用本发明的技术方案来检测恶意软件,并保护用户的设备和数据安全。

应当注意,本发明的实施方式可以通过硬件、软件或者软件和硬件的结合来实现。硬件部分可以利用专用逻辑来实现;软件部分可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域的普通技术人员可以理解上述的设备和方法可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本发明的设备及其模块可以由诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用由各种类型的处理器执行的软件实现,也可以由上述硬件电路和软件的结合例如固件来实现。

通过实验的结果如表1,检测准确率提高了7.03%,精准率提高了6.23%,召回率提高了13.78%,F1值提高了9.88%。

表1.融合特征的模糊哈希检测模型与单一特征的模糊哈希检测模型指标对比

使用本发明相同的数据集复现现有的Android恶意应用检测模型MADFU进行了对比,MADFU是使用logisticregression函数来描述权限和标签关系,并使用MCMC算法对模型参数进行抽样。结果如下表所示,表明本发明提出的特征融合的模糊哈希方法在准确度上提升了2%,F1值提升了1%,即在我们的数据集下使用随机森林模型具有融合特征的模糊哈希方法相较于MADFU方法有稍微好的表现,随机森林是一种集成学习方法,通过组合多个决策树来进行分类,可以有效地捕捉特征之间的复杂关系。而logisticregression函数则是一种线性分类器,对于非线性关系的建模能力相对较弱。

表2.本发明的检测模型与MADFU检测模型指标对比

实施例1:基于模糊哈希和随机森林分类器的Android恶意应用检测模型构建

1)使用APKTool将AndroidAPK文件反编译为字节码。

2)在字节码中提取出恶意应用中的所有方法,使用字符串匹配算法定位各个.method的函数地址,并提取每个方法的操作码序列。

3)对每个方法的操作码序列进行模糊哈希处理,并将各个片段连接在一起以构建模糊哈希特征。

4)获取Android恶意应用的权限特征,并计算出该特征的模糊哈希值。

5)将恶意应用的操作码序列特征和权限特征的模糊哈希值进行融合处理,得到融合后的模糊哈希值。

6)对模糊哈希值进行整数编码并转换为5-gram特征。

7)使用Scikit-learn的RandomForestClassifier模块构建随机森林分类模型,设置n_estimators=100。

8)使用训练集对随机森林分类模型进行训练。

9)使用测试集对随机森林分类模型进行测试,并评估模型的性能。

实施例2:基于SSDeep算法和字节码的Android恶意应用检测模型构建

1)使用APKTool将AndroidAPK文件反编译为字节码。

2)在字节码中提取出恶意应用中的所有方法,使用字符串匹配算法定位各个.method的函数地址,并提取每个方法的操作码序列。

3)对每个方法的操作码序列进行SSDeep算法处理,得到各个片段的SSDeep哈希值。

4)对各个方法的SSDeep哈希值进行聚合,得到基于Method操作码序列的特征。

5)获取Android恶意应用的权限特征,并计算出该特征的SSDeep哈希值。

6)将恶意应用的操作码序列特征和权限特征的SSDeep哈希值进行融合处理,得到融合后的SSDeep哈希值。

7)对SSDeep哈希值进行整数编码并转换为5-gram特征。

8)使用Scikit-learn的RandomForestClassifier模块构建随机森林分类模型,设置n_estimators=100。

9)使用训练集对随机森林分类模型进行训练。

10)使用测试集对随机森林分类模型进行测试,并评估模型的性能。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,都应涵盖在本发明的保护范围之内。

相关技术
  • 恶意域名的检测方法、装置及计算机可读存储介质
  • 加密恶意流量检测方法、装置、电子设备及存储介质
  • 恶意进程检测方法、装置、电子设备及存储介质
  • 恶意进程检测方法、装置、电子设备及存储介质
  • 一种Android恶意应用检测方法、装置、电子设备及存储介质
  • Android重打包恶意应用检测方法、可读存储介质和终端
技术分类

06120116494243