论文部分内容阅读
近年来,移动互联网迅速普及,各种应用的产生给人们的生活带来了极大的便利,然而这也滋生了恶意应用的不断发展。恶意应用的规模和多样性在不断增加,对用户的隐私和财产安全带来巨大的隐患。针对Android恶意应用的检测方法,大体上可以分为静态代码分析、动态行为分析和流量行为分析。静态代码分析通过识别恶意代码段检测恶意应用,这种方法简单有效,但在应对加壳的应用和代码混淆的应用时会失败。动态行为分析监控应用执行过程中的事件和行为,但由于复杂度太高,很难大规模的应用和部署。基于网络行为的恶意应用识别方法通过捕捉用户的网络流量数据分析恶意行为。这种方法易于实现,不依赖用户,不消耗用户资源,是比较有前景的研究方法。然而,基于网络流量分析的恶意应用识别方法也面临着一些问题,其中比较突出的问题就是特征选择困难和识别准确率低。本文通过分析大量的网络流量数据,总结了多组网络流量特征,首先是挖掘了TCP流的6个统计特征,并对每一维特征进行预处理操作,研制出了一份TCP流统计特征集。这份数据集不涉及到流量内容,可以保护用户的隐私以及有效的检测加密的网络流量数据。其次是创建了HTTP请求字段特征集,从HTTP请求头部筛选了4个字段,分别进行预处理,研制出了一份HTTP请求字段特征集。针对HTTP头部信息,采用文档处理的方式,对头部信息进行分割、获取N-Gram序列、特征自动选择等操作,最终研制出了一份HTTP头部N-Gram特征集。此外,针对URL字符串,采用字符串分割、单词词向量训练等方法创建了一个URL特征集。这四份特征集覆盖了TCP流量、HTTP流量以及URL字符串等网络流量的多个层面。本文接下来使用研制出的不同特征集并结合不同的机器学习和深度学习算法创建了多个有效的恶意应用检测模型。利用TCP流统计特征集和HTTP请求字段特征集并结合决策树算法创建了两个互补的恶意应用检测模型;利用HTTP头部N-Gram特征集并结合支持向量机算法创建了一个有效的恶意应用检测模型;针对URL特征集,结合多视图神经网络创建了一个有效的恶意应用检测模型;并结合浮动质心方法创建了一个有效的恶意应用检测和聚类模型。针对每个检测模型,本文都设计了大量的评估和对比实验,以验证模型的效果。本文还将模型应用到真实的环境中去检测未知的Android应用,实验结果也证实了特征集和模型的有效性。此外,为了方便对应用和网络流量的管理,本文设计并实现了一套Android应用与网络流量管理平台。通过调用VirusTotal的检测接口,可以实现大批量的应用上传与检测功能。针对Android应用产生的网络流量数据,本文在系统中集成了多种常用的流量处理操作,比如TCP流提取、HTTP流量提取、DNS流量提取、URL字符串提取等。此外,系统还集成了多种机器学习算法和深度学习算法,用户只需选择要使用的算法,就可以实现对数据的建模。另外,用户还可以同时选择多种算法,多种算法的对比结果以可视化的方式展现给用户。