论文部分内容阅读
近年来,移动计算平台快速发展,Android已成为全球范围内市场份额最大的智能终端操作系统。相较于传统PC平台,移动平台承载了更多的用户个人信息,然而Android系统由于商业策略等原因致使其保持相当的开放性,大量第三方应用存在漏洞,这威胁到Android设备和用户数据的安全。于是,Android应用安全分析成为学术界研究的热点问题。在对近年来该领域取得的成果进行梳理与总结的基础上,论文发现Android应用分析通常从权限、静态代码以及动态运行时行为角度入手。权限分析的缺点是对象粒度较粗,不够精细。静态分析的问题是由于程序执行时的逻辑等因素导致存在假阳率。动态分析往往会引起较大的性能开销,而且传统的动态分析工具如TaintDroid采用静态插桩技术,应用只能运行在定制的沙盒环境中,兼容性和鲁棒性存在局限。论文提出一种新的Android应用动态分析框架App Insight,它能有效的追踪目标应用的Java方法包括API的调用,帮助分析人员洞悉Android应用运行时特征对应的代码本质。AppInsight框架采用动态插桩技术取代传统的静态插桩技术,提升了动态分析工具的兼容性。它还结合了静态代码分析技术,降低了系统的性能开销,但却避免了单独的静态分析引入的假阳率问题。此外,AppInsight主要通过忽略Android框架内部实现的方法调用拓展了现有的Android SDK提供的追踪方案,增强了输出日志的可读性,同时进一步减小了性能开销。本文实现了AppInsight的原型系统,通过案例研究与真实应用测试,证明了该模型的有效性与兼容性。其中AppInsight静态分析部分的假阳率为12.8%,动态分析部分的追踪成功率为100%,敏感API实时反馈率为83.1%,性能损耗较SDK追踪方案减少了39.4%。