论文部分内容阅读
随着智能手机的普及,Android操作系统逐渐流行起来,并在2011年超越塞班,成为最流行的智能手机操作系统。Android巨大的市场占有率也吸引了众多的开发者为其开发应用程序。然而,由于Android发展过于迅速,相关的安全机制并不完善,再加上Android官方市场和第三方电子市场缺乏严格的审查,导致Android手机用户面临严峻的安全威胁。Android恶意软件对用户造成的威胁主要包括隐私泄露、恶意扣费、破坏系统软硬件、垃圾短信骚扰等类型。由于手机与个人电脑比起来,对隐私性更为敏感,同时也有更便捷的支付方法,因此隐私泄露和恶意扣费成为手机上最主要的威胁。由于Android安全威胁的严峻性,Android安全也得到了学术界和工业界的关注。在Android安全相关的工作中,主要采用静态分析和动态分析两种方法。 本文主要关注Android的动态分析技术。目前Android动态分析技术的代码覆盖率不高,无法检测一些隐藏的敏感行为;同时,在行为重现方面尚无相关的研究。本文根据Android应用程序的特点,针对以上的不足,采用基于动态分析的沙箱技术并加以改进。主要工作包括:⑴通过运行于服务器端的应用程序敏感行为收集沙箱技术,为用户提供应用程序的敏感行为信息(诸如窃取隐私、发送短信),从而帮助用户识别恶意软件。这种方法克服了手机上的安全软件受限于Android安全机制而无法对应用程序进行监控的问题。⑵提出了用户行为模拟和动静结合的代码触发技术。通过模拟用户对界面控件的操作来触发一些依赖于用户交互的代码;利用静态分析提取的敏感行为函数调用路径来指导动态分析的执行流程。最后,通过整合这些技术的分析结果来更有效地提高Android动态分析的代码覆盖率。⑶基于沙箱运行日志提取出应用程序敏感行为对应的界面操作记录,作为行为重现的操作步骤,有助于人工确认应用程序的敏感行为。⑷基于提取出的应用程序敏感行为,利用启发式规则来判断相应的应用程序是否恶意。基于上述工作,本文实现了自动收集Android应用程序敏感行为的沙箱,以及应用程序敏感行为重现和恶意软件检测系统。实验表明,本文提出的方法能有效地提高动态分析的代码覆盖率,触发大部分隐藏的敏感行为并准确提取重现敏感行为的界面操作或系统事件,而且检测恶意软件的方法具有较高的准确性。本文工作的潜在应用包括应用程序电子市场的自动化审查和检测恶意应用程序的网络服务。