AppShield:实现多平台数据访问控制与安全管理
1. 数据访问机制
1.1 文件系统调用处理
AppShield对部分系统调用的文件路径参数进行处理,具体如下:
- rename() 、 mkdir() 、 remove() :这些系统调用参数中的文件路径会被替换为其内部存储中的业务文件路径。
- stat() 、 lstat() :AppShield先获取其内部存储中业务文件的文件描述符,然后调用 fstat() 来获取文件状态。
1.2 内容提供者代理机制
内容提供者管理对结构化数据集的访问,通过URI进行标识。AppShield基于代理的数据访问机制如下:
- 镜像内容提供者 :内容提供者的核心是SQLite数据库。AppShield在其私有内部存储中复制目标内容提供者,具有相同的模式和表定义,并使用特殊权限保护镜像内容提供者。
- 系统调用 ioctl() :这是发送所有Binder IPC的主要系统调用。通过插入此系统调用,AppShield将原始内容提供者的URI替换为镜像内容提供者的URI,以重定向数据操作。利用此系统调用的上下文,AppShield验证谁发起了对内容提供者的操作,PDP模块决定是否允许访问。恶意应用无法通过覆盖URI和权限声明来操作镜像内容提供者。
超级会员免费看
订阅专栏 解锁全文

6386

被折叠的 条评论
为什么被折叠?



