Abstract
这篇文件主要的贡献在于设计了一种具有可扩展性、可编程的Android安全框架。通过对近年来Android安全增强工作关注点的总结,作者使用hook技术对一系列系统中有关安全的重要组件进行了hook,通过增加一个虚拟的ASM bridge层来允许开发者使用这些hook进行安全增强app的开发。
Introduction
文章主要的切入点是在于增强Android平台的安全扩展性。主要贡献有3点:
- 总结了Android平台上和安全有关的需要hook的API。
- 设计并实现了一个可扩展的ASM(Android Security Modules)框架。
- 为了展示ASM的能力,实现了两种ASM app。
Background
介绍了一下Android的安全机制。
Design Goals
ASM的设计目标为:
- 可自由扩展的授权模式
- 不破坏已有的安全机制
- 保证内核的完整性
- 多重授权模式
- 尽可能小的系统开销
ASM的威胁模型是认为底层的内核、系统以及服务是可信的。
Authorization Hook Semantics
这一节回顾了现有的Android安全增强机制,总结了他们对系统不同资源所做的hook,如下图所示:
作者根据这些以往的工作,尽可能的完善ASM对系统的hook,但是没有引进TaintDroid和AppFence,因为这两者无法在ASM的框架中实现。
ASM Design
ASM总体结构如下:
总的来说,ASM就是事先在所有可能需要hook的地方做好插装,之后允许开发者开发app来调用这些接口,在对应的hook点注册一些回调函数。当被插装过的地方被触发的时候,所有注册了接受该hook点的app的回调函数就会触发。 这部分是讲的各种实现的细节,有兴趣可以看paper。
Evaluation
- 作者首先选了2个已有的Android安全增强工具,MockDroid和AppLock。
- MockDroid是一个安全增强框架,用来保护Android系统中的敏感components。MockDroid修改了Android原有的权限系统,对所有涉及到敏感信息的权限都复刻了一个mock版,当有mock版权限的app访问对应的隐私数据时,会返回虚假信息。
- AppkLock是一个Google Play上的app,可以允许用户给其他app上锁,当用户调用被锁的app时,就会被要求输入密码。
- 作者在ASM的框架内,实现了和这两个安全增强工具相同的功能,下图是ASM版MockDroid的hook情况:
之后给出了对系统效率的评估:
Related Work
ASM遵循了LSM和TrustedBSD的设计原则。
Conclusion
作者表达了希望AOSP接受ASM的强烈渴望。