论文部分内容阅读
近年来,移动终端的普及率不断提高,移动应用市场规模不断扩大,导致移动网络流量飞速增长,移动应用的流量识别技术成为目前热门的研究课题。现有的移动应用流量识别工作主要围绕流量数据自动化采集和智能分析两方面展开。在流量数据采集方面,动态测试技术往往存在流量覆盖率较低、流量数据获取不全面的问题,而静态信息抽取则面临着方法复杂度高、时间消耗大,或应用建库规模过大,难以进行大规模分析的问题。在移动应用流量分析方面,现有工作分别针对明文流量或加密流量进行识别,从系统开发角度而言有必要集成这两部分的技术,并且现有研究仅使用人工提取方式对明文流量中的应用强标识符进行挖掘,无法实现大规模的强标识符自动化提取。针对上述问题,本文以平衡流量覆盖率及方法复杂度为目标,设计了动态测试和静态分析相结合的流量信息提取技术,并提出基于流量内容和流量统计特征的流量识别方法。具体工作主要包括以下三个方面:(1)提出了基于函数调用图的动态流量信息采集和基于数据流分析的静态流量信息抽取相结合的移动应用流量信息获取方法。前者通过遍历应用的函数调用图获取应用流量产生路径,以此指导基于Android模拟器的应用自动化测试,以更精准地采集流量信息。后者分析应用中间代码,使用数据流分析等方法抽取代码中的流量信息。通过整合上述两种方式解决流量信息采集时覆盖率低、复杂度高的问题。(2)提出了基于流量强标识符、内容指纹的层次化明文流量应用识别方法和基于统计特征的加密流量应用识别方法。对于明文流量,提出应用强标识符的自动化提取技术,并结合流量内容信息设计了基于朴素贝叶斯的指纹识别方法。该方法对单条流量识别准确率能达到90%,而当连续分析4条流量时,准确率能到达97%以上。对于加密流量,基于流量统计特征及DNS域名、SSL证书等辅助信息进行识别,可达到89%以上的识别准确率。(3)在上述研究成果的基础上,设计并实现了移动应用识别系统,支持实时流量采集和在线应用识别。综上所述,本论文通过动态采集和静态抽取技术实现了高效的流量信息获取,在此基础上针对明文流量和加密流量设计实现了基于流量指纹的应用识别方法,并针对明文流量中的强标识符设计了大规模自动化挖掘方法,从而更为有效地利用其进行流量识别。最终实现了一套应用识别系统,支持对流量的应用来源进行在线识别。