[发明专利]一种安卓用户隐私数据访问的系统调用级监控方法有效

专利信息
申请号: 201610041457.6 申请日: 2016-01-21
公开(公告)号: CN105718796B 公开(公告)日: 2018-08-03
发明(设计)人: 李金库;孙康;孙聪;卢笛;姚青松;马建峰 申请(专利权)人: 西安电子科技大学
主分类号: G06F21/55 分类号: G06F21/55;G06F21/52
代理公司: 西安通大专利代理有限责任公司 61200 代理人: 徐文权
地址: 710065 陕*** 国省代码: 陕西;61
权利要求书: 查看更多 说明书: 查看更多
摘要: 一种安卓用户隐私数据访问的系统调用级监控方法,包括以下步骤:步骤一:标记隐私系统服务;步骤二:隐私服务访问请求处理;步骤三:处理监控事务;步骤四:处理隐私访问返回结果;本发明通过识别隐私数据访问,并发起监控由第三方线程对提供服务的线程进行系统调用级监控;第三方服务通过扩展原系统ServiceManager服务,运用ptrace()系统调用获取被监控线程的系统调用信息;同时在整个监控过程中通过原系统中的属性系统实现被监控线程循环等待监控线程的启动,以及服务线程完成使监控线程停止监控的目的。本发明实现了系统调用级的隐私数据访问监控,能够在更深层次上以更细的粒度对隐私数据进行访问审计和保护策略实施。
搜索关键词: 一种 用户 隐私 数据 访问 系统 调用 监控 方法
【主权项】:
1.一种安卓用户隐私数据访问的系统调用级监控方法,其特征在于,包括以下步骤:步骤一:标记隐私系统服务;(1.1)在系统服务注册时,通过待注册服务名称判断待注册服务的类型,如果是隐私服务,则执行步骤(1.2);如果是普通服务,则执行步骤(1.3);(1.2)调用隐私服务注册命令注册服务,执行步骤(1.4);(1.3)调用原系统服务注册命令注册服务;(1.4)在binder驱动中收到注册服务请求时,创建binder实体对象对应的描述结构体变量node,并在其原描述结构中增加隐私标识need_trace成员,初始化need_trace成员的值为0,并判断此时调用命令是否为隐私服务注册命令,是则执行步骤(1.5);不是则执行步骤(1.6);(1.5)恢复注册命令为普通注册命令,修改node结构中的need_trace标识为1;(1.6)正常执行注册请求;步骤二:隐私服务访问请求处理;(2.1)服务请求线程执行到binder驱动中时,判断请求是否涉及隐私服务,涉及则执行步骤(2.2);不涉及则执行步骤(2.3);(2.2)生成访问事务结构体,并将其成员变量need_trace标识置为1;(2.3)正常处理访问请求,发送事务T1;(2.4)提供服务的线程执行到binder驱动中时,判断事务T1的成员need_trace的值,如果是1,则执行步骤(2.5);如果是‑1,则执行步骤(2.6);否则执行步骤(2.7);(2.5)新建binder_transaction类型的事务T2;步骤为:(2.5a)查找提供监控任务的服务进程;(2.5b)新建监控事务T2,并将T2的目标进程初始化为步骤(2.5a)查找到的服务进程;(2.5c)初始化事务T2的code成员为当前执行线程号;(2.5d)通过memmove()拷贝T1中隐私访问的数据到T2;(2.5e)设置事务T2成员need_trace为‑1;(2.5f)设置事务T2成员need_reply为0;(2.5e)设置事务T2成员sender_pid的值为原数值的负数;(2.5g)按原流程初始化T2的其他成员;(2.5h)添加事务T2并唤醒目标进程线程池中的一个空闲线程;(2.6)执行处理监控事务;(2.7)执行隐私服务访问的线程获取监控事务T1返回到用户空间后,获取T1的BR_TRANSACTION请求命令及数据binder_transaction_data,判断binder_transaction_data中的成员sender_uid的值是否为负数,是则执行步骤(2.8);不是则执行步骤(2.9);(2.8)同步等待监控线程的启动;(2.9)处理服务访问事务后续流程;步骤三:处理监控事务;(3.1)监控线程获取监控事务后,解析该监控事务的请求数据;(3.2)根据请求数据中的sender_pid成员变量得到待监控目标线程号;(3.3)按照如下步骤监控目标线程:(3.3a)根据获取的线程号,通过ptrace()调用PTRACE_ATTACH命令劫持目标线程;(3.3b)根据获取的线程号生成“‘debug.t’+线程号+‘.started’”类型的字符串;(3.3c)设置以该字符串为名称参数的全局属性变量,设置其值为“true”;(3.3d)通过wait()等待劫持的目标线程信号;(3.3e)获取信号后,通过ptrace()调用PTRACE_PEEKTEXT命令获取当前系统寄存器的值,并返回系统调用号和系统调用的返回值;(3.3f)获取(3.3b)中定义的全局属性变量,并判断其值,如果是“false”则执行步骤(3.3h);(3.3g)通过ptrace()调用PTRACE_SYSCALL命令监控目标线程,跳转到步骤(3.3d);(3.3h)通过ptrace()调用PTRACE_DETACH命令释放监控;(3.3i)返回上层调用并返回监控服务结果1,1代表隐私监控任务执行成功;(3.4)完成监控任务后,根据监控结果处理返回值;如果结果返回为1则执行步骤(3.5);非1则执行步骤(3.6);(3.5)释放监控任务缓冲区;(3.6)执行正常返回处理过程;步骤四:处理隐私访问返回结果;(4.1)提供服务的线程完成隐私访问后,在binder驱动中获取处理事务,通过返回事务成员need_trace的值判断该任务是否为隐私访问事务,如是则执行步骤(4.2),否则执行步骤(4.4);(4.2)处理隐私访问返回事务;(4.3)提供服务的线程获取确认返回事务返回到用户空间后,处理BR_FINISHED事务;(4.4)完成系统缺省流程,整个隐私访问完成。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安电子科技大学,未经西安电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/patent/201610041457.6/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top