论文部分内容阅读
随着Android系统的发展,Android应用程序在人们的日常生活中也占着越来越重要的地位。通常情况下,较为流行的Android应用程序已有过亿的下载量,因此一旦Android应用程序发生安全问题,可能会带来不可估量的损失。近几年内,国内外也发生多起因Android应用程序安全问题引发的重大事故。应用程序组件通信的安全问题是Android应用程序安全问题中较为重要的一部分。鉴于此,本文将针对Android应用程序组件间通信的安全问题展开研究。本文首先对Android应用程序组件的一般性安全问题进行分析研究,进而提出了针对Android应用程序组件间通信的鲁棒性测试方案。该方案整体上基于模糊测试的方法完成对组件通信的鲁棒性测试。方案主要分PC端和移动端两部分实现,且本文在移动端实现测试应用FuzzerAPP。该方案首先对待测应用程序的安装包文件进行静态分析,分别获取该应用程序中静态注册和动态注册的组件详细信息,随后使用这些组件详细信息与Android SDK提供的标准Action等数据,按照本文提供的测试用例生成策略生成具体的测试用例,在本方案中,我们使用Intent消息作为测试用例信息的载体。随后使用一定的发送策略将生成的Intent消息发送给待测应用程序组件,最后通过对测试时待测应用程序、Android系统以及测试系统的输出进行收集并分析,得出待测应用程序的测试结论。本文使用根据所提方案实现的测试工具,对大量传播广泛的Android应用程序进行实际测试,收集到大量测试数据。通过对测试数据的分析,我们发现,对Android应用程序发送特殊构造的Intent可以造成应用程序的崩溃,甚至引发系统服务的级联崩溃,直至Android系统的重启。此外,我们发现的另外一个严重问题是,包括天猫购物软件、天气通在内的10款应用程序存在测试模块暴露的问题,这一问题会导致包括隐私泄露、应用程序拒绝服务等严重安全问题。在文章的最后,通过与其他方案的对比,表明测试方案的有效性和测试工具的实用性。