论文部分内容阅读
近年来,Android设备的用户数量不断增长,已经成功攻击者的攻击热点。TrustGo公司的分析应用报告显示,Google Play上3.15%的应用有可能泄露用户隐私或者存在恶意行为。而我国用户无法直接从Google Play上下载应用,导致了大量的、管理混乱的第三方应用市场的存在,对于Android设备安全性造成了严重的威胁。合谋作为一种隐蔽的攻击方式并不被大众重视,而由于Android简便的组件间通信特性,使得这一攻击极易完成。漏洞报告平台WooYun.org在2015年爆出关于MoplusSDK的真实合谋案例。本文面向合谋问题,针对当前合谋App检测中准确率不高,检测效率不足等问题,分别从传统程序分析,和机器学习的角度展开研究,论文的主要工作总结如下:
(1)针对目前静态分析方法无法处理动态特性,而动态分析方法的可扩展性不足的问题,提出一种动静混合的合谋隐私泄露检测方法HybriDroid。HybriDroid设计为一种新颖的动静混合结构来为每个应用程序提取行为模型。对于每个应用程序,首先使用静态方法建立其行为模型,再通过动态方法搜集其运行时信息,最后结合动静方法提出了动静模型融合算法,建立其高级行为模型。高级行为模型克服了静态方法无法获得运行时信息的缺陷,也克服了动态方法代码覆盖率低的问题。在为每个App建立行为模型后,使用形式化的分析方法分析一个App集合的隐私泄露问题,这克服了动态方法的扩展性不足的问题。实验结果表明,在DroidBench测试套件上,相对于DroidGuard,本文将检测准确率由88.2%提升至97.8%,召回率从30%提升至90%。
(2)现有基于程序分析的方法仅能检测合谋造成的隐私泄露问题,而合谋的恶意行为不仅仅只有隐私泄露,且程序分析的方法检测时间花费过高,故提出了基于机器学习方法来检测合谋App的思想。首先,对现有机器学习方法在合谋场景下的性能进行了分析。本文将合谋问题视为一种对抗机器学习的攻击场景,称为合谋攻击,随后提出了基于特征拆分的模拟合谋的实现方法,实验结果表明,当两个App合谋时,最坏情况下87.4%的App可以绕过Linear SVM的检测。除合谋攻击外,攻击者还可能通过混淆、反射等方法来隐藏恶意行为施行逃避攻击。当同时施行合谋和逃避攻击时,几乎所有的App都能以较低的成本逃避检测。针对合谋问题,提出了基于特征合成的合谋恶意行为机器学习检测框架ColluDroid。ColluDroid通过分析App之间所有的通信连接,分析可能存在合谋的App,然后将其特征组合后送入机器学习算法进行分类检测,如果组合特征标记为恶意,则这个App集合存在合谋。通过手动编写四个示例合谋程序,验证了合谋攻击能有效绕过当前机器学习算法,而基于ColluDroid的方法则能成功检测。通过模拟实现合谋和逃避攻击,测试了Linear SVM,Sec-SVM两种机器学习算法在ColluDroid框架下的性能,发现ColluDroid-Sec-SVM在同时抵御合谋和逃避攻击方面,具有较强的抵御能力,在完全信息假设下平均18.5%的App可以逃脱检测,而不采用ColluDroid框架时,逃脱率平均为88%。在检测效率方面,基于机器学习的方法与基于传统程序分析的方法相比,时间性能提升了15倍。
(3)在ColluDroid的基础上,本文继续深入分析,指出一种简单的逃避攻击的实现方式为,将现有的恶意代码嵌入至善意代码中来隐藏恶意行为。首先分析了此种实现方法对现有方法的影响,实验结果表明,该方法能使Linear SVM方法的检测准确率有94.6%下降至12.4%。针对此问题,本文提出了两种方法来检测代码中隐藏的恶意行为,一种基于恶意候选区域和SVM(MRP-SVM),一种基于恶意候选区域和图卷积神经网络(MRP-GCN)。通过在程序调用图上分析嵌入代码和被嵌入代码之间的耦合关系,来生成可能是恶意行为的代码区域,然后提取其特征,分别使用SVM和图卷积网络进行分类。实验结果表明,基于候选区域的检测方法能显著提高检测精度。进而,改变恶意候选区域生成算法,以应用于检测合谋问题。在新的模拟合谋攻击场景下,相对于ColluDroid-Sec-SVM方法,基于候选区域的图卷积算法有更强的抵御合谋和逃避攻击的能力,其检测准确率为97.7%,取得最佳性能。通过将恶意候选区域和图卷积的方法应用于Google Play的应用,找到了真实的合谋恶意样本。
(1)针对目前静态分析方法无法处理动态特性,而动态分析方法的可扩展性不足的问题,提出一种动静混合的合谋隐私泄露检测方法HybriDroid。HybriDroid设计为一种新颖的动静混合结构来为每个应用程序提取行为模型。对于每个应用程序,首先使用静态方法建立其行为模型,再通过动态方法搜集其运行时信息,最后结合动静方法提出了动静模型融合算法,建立其高级行为模型。高级行为模型克服了静态方法无法获得运行时信息的缺陷,也克服了动态方法代码覆盖率低的问题。在为每个App建立行为模型后,使用形式化的分析方法分析一个App集合的隐私泄露问题,这克服了动态方法的扩展性不足的问题。实验结果表明,在DroidBench测试套件上,相对于DroidGuard,本文将检测准确率由88.2%提升至97.8%,召回率从30%提升至90%。
(2)现有基于程序分析的方法仅能检测合谋造成的隐私泄露问题,而合谋的恶意行为不仅仅只有隐私泄露,且程序分析的方法检测时间花费过高,故提出了基于机器学习方法来检测合谋App的思想。首先,对现有机器学习方法在合谋场景下的性能进行了分析。本文将合谋问题视为一种对抗机器学习的攻击场景,称为合谋攻击,随后提出了基于特征拆分的模拟合谋的实现方法,实验结果表明,当两个App合谋时,最坏情况下87.4%的App可以绕过Linear SVM的检测。除合谋攻击外,攻击者还可能通过混淆、反射等方法来隐藏恶意行为施行逃避攻击。当同时施行合谋和逃避攻击时,几乎所有的App都能以较低的成本逃避检测。针对合谋问题,提出了基于特征合成的合谋恶意行为机器学习检测框架ColluDroid。ColluDroid通过分析App之间所有的通信连接,分析可能存在合谋的App,然后将其特征组合后送入机器学习算法进行分类检测,如果组合特征标记为恶意,则这个App集合存在合谋。通过手动编写四个示例合谋程序,验证了合谋攻击能有效绕过当前机器学习算法,而基于ColluDroid的方法则能成功检测。通过模拟实现合谋和逃避攻击,测试了Linear SVM,Sec-SVM两种机器学习算法在ColluDroid框架下的性能,发现ColluDroid-Sec-SVM在同时抵御合谋和逃避攻击方面,具有较强的抵御能力,在完全信息假设下平均18.5%的App可以逃脱检测,而不采用ColluDroid框架时,逃脱率平均为88%。在检测效率方面,基于机器学习的方法与基于传统程序分析的方法相比,时间性能提升了15倍。
(3)在ColluDroid的基础上,本文继续深入分析,指出一种简单的逃避攻击的实现方式为,将现有的恶意代码嵌入至善意代码中来隐藏恶意行为。首先分析了此种实现方法对现有方法的影响,实验结果表明,该方法能使Linear SVM方法的检测准确率有94.6%下降至12.4%。针对此问题,本文提出了两种方法来检测代码中隐藏的恶意行为,一种基于恶意候选区域和SVM(MRP-SVM),一种基于恶意候选区域和图卷积神经网络(MRP-GCN)。通过在程序调用图上分析嵌入代码和被嵌入代码之间的耦合关系,来生成可能是恶意行为的代码区域,然后提取其特征,分别使用SVM和图卷积网络进行分类。实验结果表明,基于候选区域的检测方法能显著提高检测精度。进而,改变恶意候选区域生成算法,以应用于检测合谋问题。在新的模拟合谋攻击场景下,相对于ColluDroid-Sec-SVM方法,基于候选区域的图卷积算法有更强的抵御合谋和逃避攻击的能力,其检测准确率为97.7%,取得最佳性能。通过将恶意候选区域和图卷积的方法应用于Google Play的应用,找到了真实的合谋恶意样本。