论文部分内容阅读
随着移动互联网应用的高速发展,安卓智能手机扮演的社会角色变的越来越重要,同时安卓智能手机用户的安全问题也变得越来越严峻。其中,第三方应用程序导致的隐私数据泄露问题更是当下社会关注的焦点话题。针对该安全问题的相关研究已经成为了移动终端安全领域的重要研究课题。从目前主流的研究方向看,静态的检测管理方法虽然能最小化损失,但是精度不高而且容易造成误判;动态的分析控制虽然需要一定的效率代价,但是在安全性和便利性之间取得了平衡。不过,目前实现的动态分析控制的机制是基于接口级的粒度,无法获取更加深入的系统调用级监控信息。如果能够获取安卓应用程序访问隐私数据过程中的系统调用信息,就可以实现对隐私数据更精准的保护。为此,论文提出了一种基于Binder驱动的系统调用级监控机制。其主要包含两个模块:识别模块和监控模块。具体来说,在系统服务注册阶段进行判断,针对涉及隐私数据的服务调用自定义注册命令,在Binder驱动中截获该命令并修改相关服务的描述信息;在隐私数据访问阶段,识别模块根据注册阶段标记的描述信息过滤出隐私数据访问请求,并标记为隐私访问事务,将其挂载到系统服务进程的事务队列中并唤醒服务进程的线程池空闲队列中的一个空闲线程;在服务线程执行时,识别模块发起监控事务给监控模块,通过同步技术循环等待监控线程的启动,使监控模块先于监控服务线程执行。在获取访问信息后,监控模块通过ptrace系统调用劫持被监控线程并做同步让目标线程继续执行;在整个隐私数据访问过程中,通过命令获取系统调用时相关寄存器的值,由此得到系统调用信息;服务线程结束隐私数据访问后,识别模块再一次判断该隐私事务,并修改监控停止标示,使监控程序停止本次监控。通过分析获取的应用程序访问隐私数据过程中发生的系统调用信息,完成对应用程序访问隐私数据的安全审计并采取更深入级别的保护措施。最后,为了对提出的监控机制进行验证,论文基于开源的Android4.1.1系统和goldfish2.6.9内核源代码实现了原型系统,并对原型系统进行了功能测试和性能测试。测试结果验证了监控机制的有效性和高效性。