论文部分内容阅读
现今手机、平板电脑等手持移动设备的运算能力日益增强,搭载智能系统的移动设备逐渐融入人们生活,成为日常活动不可或缺的一部分。手持移动设备大多存储了大量涉及用户隐私的重要信息,如通讯录、短信、彩信、邮件、文件等等,这些信息涵盖了用户生活和工作的各个方面。随着智能手机的普遍推广,针对手机的恶意应用的数量也极速增长,智能手机的安全面临诸多挑战。安卓恶意应用行为大多源于对系统资源的非法使用,资源使用信息将有助于快速地分析恶意行为。然而,由于安卓系统使用权限机制对资源进行管理的特性,现有的基于系统调用监测安卓应用资源使用的方法并不行之有效。针对该问题,本文通过对安卓系统资源管理特点的研究,提出并实现了一种采用系统调用辅以系统调用-API映射关系来监测安卓应用资源使用的方法SysTracker。SysTracker能够在不对应用程序和系统进行修改的前提下,把应用程序当做黑盒进行监测。因此,该方法能够适用于任何版本的安卓系统,特别适用对系统预装软件的监测分析。首先,SysTracker通过ptrace系统调用对应用程序进行追踪,以截获应用程序产生的系统调用。在截获系统调用后,SysTracker会根据该系统调用的参数个数以及类型对参数进行解析。其次,SysTracker使用Monkey工具对1879个应用程序进行自动化测试,收集了安卓程序框架中提供资源访问和操作的568个API对应的系统调用信息,并采用特征提取的方法分析出系统调用与API调用之间精确的映射关系。最后,SysTracker借助系统调用与API调用之间精确的映射关系,采用多路匹配的方式将应用程序的系统调用信息还原为相应的API调用,再根据已有的API与权限及资源的映射关系识别出应用程序对资源的使用情况。为了验证SysTracker识别安卓应用程序资源使用的准确性,我们使用Monkey收集316个应用的API调用情况,将收集到的API调用信息与SysTracker识别出来的API调用进行对比,结果显示SysTracker识别的正确率高达99.2%。此外,我们还使用SysTracker对多款应用程序进行分析。结果显示,SysTracker能够直接监测到应用对API的调用情况,大大降低了程序行为分析的代价。同时,根据监测到的API调用信息,分析人员能够快速准确地识别出应用程序对敏感资源的使用,这对于分析应用程序的恶意行为具有较大的参考价值。