Audacious

Posted by Maxul's Sketch Notes on July 31, 2017

题目: AUDACIOUS: User-Driven Access Control with Unmodified Operating Systems

作者: Talia Ringer, Dan Grossman, Franziska Roesner

单位: University of Washington

出版: ACM Conference on Computer and Communications Security 2016

解决问题:

  • 现代系统对应用施行最小特权原则。移动端操作系统只给应用用户授权过的资源,如摄像头、定位。
  • 然而安卓机授权的时机是在安装时,此时用户并不清楚应该给应用什么权限。
  • Access control gadgets会在用户真正点击相应UI后授予应用资源。这个方法要求修改底层的OS。
  • AUDACIOUS旨在解决不修改OS的情况下提供和之前工作一样的安全保证。

贡献点:

  1. 无需修改底层OS,利用可信的用户态库实现用户自定义(user-driven)的访问控制;
  2. 在安卓上实现了该想法,称为 AUDACIOUS (Android User-Driven Access Control in Only User Space);
  3. 和实际应用结合进行实测。

本文的ACG保证:

  1. 应用只能访问用户用意的资源;
  2. 应用只能在用户同意的上下文语境下访问资源;
  3. 应用不能以相同的行为实现别的目的(静态分析)。

注:原文和翻译起来都比较费解。举例如下:应用在请求摄像头权限时用户同意了,应用可以拍照并写入本地存储,单并不意味从此应用就一直持有摄像头访问权限,ACG保证只有当用户按住应用提供的特定UI按钮时才授予权限,而不是任意时刻

威胁模型:

  1. OS可信且不被攻破;
  2. 可信库实现正确;
  3. 静态分析工具和其输出无误;
  4. 对手有能力滥用可信库、误导用户使用甚至绕过库;
  5. 不考虑原生代码、phishing-style攻击和旁路攻击。

设计:

  • 事件流:用户和UI的操作,User → UI seen;
  • UI语境:(UI可以欺骗用户去点击);
  • 资源流:UI ACG → ACG* → …

局限:

  1. 用户库使TCB增加;
  2. 库升级时要求应用跟着打补丁;
  3. 模型的灵活性可能导致权限的不一致性;
  4. 应用局限:反射机制的滥用可以绕过任何安全库。该点能借助静态分析手段解决。

笔者注:另一个缺点是,必须修改应用本身。

思考:

  • 考虑桌面端应用的资源:CPU、内存、桌面显示、存储和网络(IP地址)、摄像头、USB、声卡等。有些资源是对全体应用所打开的,如CPU、内存、网络等,在使用空间上做一些限制;有些资源使用可能征询用户意见,如摄像头、USB等;有些则没有任何限制,如持久性存储和桌面显示,前者恶意应用可以肆意消耗空间,后者可以无限出现弹窗干扰用户使用。