[发明专利]一种应用程序间组件能力泄露动态检测方法和系统在审
申请号: | 201510964190.3 | 申请日: | 2015-12-21 |
公开(公告)号: | CN105589807A | 公开(公告)日: | 2016-05-18 |
发明(设计)人: | 王蕊;张道娟;林子敏;操晓春 | 申请(专利权)人: | 中国科学院信息工程研究所 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京君尚知识产权代理事务所(普通合伙) 11200 | 代理人: | 邱晓锋 |
地址: | 100093 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 应用程序 组件 能力 泄露 动态 检测 方法 系统 | ||
1.一种应用程序间组件能力泄露动态检测方法,其特征在于,包括如下步骤:
1)设置Android应用程序的调用链初始信息;
2)扩展Android Binder通信机制,在不同进程之间传递线程级调用链并对其进行扩展;
3)扩展组件间通信监控机制,捕获组件间通信信息,并根据步骤2)得到的线程级调用链获取组件级调用链,方法为:
3-1)在系统服务ActivityManagerService进行目标组件解析时,记录组件间调用信息;
3-2)根据当前进程的线程级调用链ID,查找是否保存与该ID相匹配的组件调用信息,若没有,则将调用和被调用组件的信息保存在ActivityManagerService中,否则,则将被调用组件加入到已有的组件信息中;
3-3)持续监控系统服务ActivityManagerService,不断扩展组件级调用链;
4)根据步骤3)得到的组件调用链,追踪Android的跨应用程序通信,在执行敏感操作时,获取当前线程的线程级调用链及组件级调用链,并根据调用链分析组件间通信是否发生组件能力泄露。
2.如权利要求1所述的方法,其特征在于,还包括步骤5),该步骤扩展Android权限机制,根据步骤4)得到的分析结果,实时控制组件能力泄露导致的非法敏感操作。
3.如权利要求1或2所述的方法,其特征在于,步骤1)在组件间通信函数被启动时,开始追踪应用程序的通信,包括应用程序内组件通信和应用程序间组件通信。
4.如权利要求1或2所述的方法,其特征在于,步骤2)扩展Android Binder通信机制,将调用链信息添加到Binder通信数据结构中并进行传输,从而追踪跨程序通信,在Binder驱动进行数据解析时,根据目标线程的信息进行扩展,即扩展应用程序间通信的线程级调用链。
5.如权利要求1或2所述的方法,其特征在于:步骤4)通过利用扩展的系统API,获取当前线程的调用链,分析当前调用链中包含的应用程序,传递的Intent,以及应用程序的权限集,判断是否发生组件能力泄露。
6.如权利要求2所述的方法,其特征在于:步骤5)中扩展Android权限机制,包括扩展Framework权限机制及扩展Linux权限机制,在对敏感操作进行权限检查时,根据步骤4)的分析结果,实时控制组件能力泄露导致的非法敏感操作。
7.一种采用权利要求1所述方法的应用程序间组件能力泄露动态检测系统,其特征在于,包括:
调用链初始化模块,用于在组件间通信函数启动时,记录调用链;
Binder通信监控模块,用于监控Android中所有通过Binder机制进行的进程间通信,获取应用程序间通信的线程级调用链;
组件间通信监控模块,用于监控应用程序内以及应用程序间的组件间通信,生成组件级调用链;
调用链分析模块,根据基于上下文信息的组件级调用链追踪程序间通信,在执行敏感操作时,分析程序间通信,判断当前组件的敏感操作是否属于正常行为,若不是,分析是否发生组件能力泄露。
8.如权利要求7所述的系统,其特征在于:还包括权限机制加强模块,用于扩展Android权限机制,根据调用链分析模块做出的决策,当发生组件通信能力泄露时,拒绝对敏感资源的访问。
9.如权利要求8所述的系统,其特征在于:所述扩展Android权限机制,包括扩展Framework权限机制及扩展Linux权限机制。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院信息工程研究所,未经中国科学院信息工程研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510964190.3/1.html,转载请声明来源钻瓜专利网。