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