Group of Software Security In Progress

GoSSIP @ LoCCS.Shanghai Jiao Tong University

Flexible and Fine-grained Mandatory Access Control on Android for Diverse Security and Privacy Policies

论文下载:https://www.informatik.tu-darmstadt.de/fileadmin/user_upload/Group_TRUST/PubsPDF/flaskdroid.pdf

Abstract & Introduction

作者提出,现有的android安全模型存在的问题:

  • 强制访问控制仅限于特定层,并且支持的策略不够灵活
  • 控制粒度不够细
  • 攻击模式多种多样,现有模型难以应对

基于以上问题,作者提出一种灵活的细粒度的强制访问控制模型flaskdroid

Background

Android系统结构:

  • 内核层
  • 中间软件层
  • 应用层

SE Linux特点: 基于角色的强制访问控制,底层是基于类型的机制。主体客体都被标明类型,默认所有访问都是被禁止的,只有明确标明allow才可能被允许。

allow TSub TObj CObj OC

TSub 是主体类型标示符,TObj是客体类型标示符,Cobj是客体类型中的子类,Oc是操作 SElinux还支持通过修改特定比特位的方式动态修改安全策略 userspace object managers运行在用户层,用来控制对客体的访问,执行访问控制规则 SEAndroid增加了android特有的结构的访问控制,例如增加用户态对底层服务的访问控制

Requirements Analysis

作者总结了了目前对Android的攻击方法:

  • 权限过高的第三方应用(窃取隐私)
  • 恶意第三方应用(执行恶意行为,例如发送扣费短信)
  • Confused deputy attacks(利用未被保护的系统API接口以及第三方APP的接口进行提权操作,LaunchAnywhere)
  • Collusion attacks 利用其它信道绕过权限限制(soundcomber attack)
  • Sensory malware
  • Root Exploits

安全系统架构的需求:

  • 需要实现多层联合访问控制
  • 兼顾多方策略(设备制造商,APP开发者,用户,以及其他第三方)
  • 依据当前环境做出不同判断
  • 满足各种各样的用户需求(例如对ContentProvider的细粒度保护)

FlaskDroid Architecture

Fig

内核态基于SE Android 用户态的user-space security server是访问控制的决策中心,与SE Android交互,利用用户态丰富的语义信息,动态修改比特位实施不同策略 同样处于用户态的Userspace object manager包括:package管理服务,activity管理服务,还有service以及contentprovider的管理服务 context provider用来提供给决策中心设备当前的上下文状态,收集各种信息,例如网络状态和地理位置信息 策略:

Fig

定义了新的默认类型,app和intent的类型扩展,与上下文有关的定义 允许自定义类型,在app安装期间由package管理服务导入

Use-cases / Instantiations

应用场景举例:

  • 增强系统服务以及contentproviders的隐私保护(例如对数据库服务的访问控制能精确到某一张表,facebook只能读取friend和family)
  • APP开发时增强安全策略(例如购物APP只想调用有特定签名的支付组件,或者在支付过程中个人记账软件不能获得网络使用权限)

Evaluation and Discussion

通过人工正常使用三天,分析LOG,加上测试时总结的一些规则,一共109条正常访问规则,111种类型,18个子类,没有第三方策略 对于已知的攻击模式都能做到很好的拦截,测试用的APP是根据相关论文和网络下载得到的

  • 通过限制root用户权限阻止了root exploits以及有root权限的恶意软件
  • 通过细粒度的审查,阻止了过度授权以及窃取信息的app,同时也阻止了confused deputy攻击
  • 通过对上下文的审查,阻止了针对于传感器的攻击

对于collusion attack,由于很总结定位,只能对已知的模型进行防护,如果攻击者用到隐藏信道,防护困难很大 由于SE Android是运行在内核态的,如果攻击者使用内核层的exp,防护也就失效了

Fig

开销没有问题

Fig