SE for Android 系列之整体概要(一)

引言

由于目前关于SE for Android的介绍相对比较缺泛,因此本文的主要目的就是对整个SE for Android进行详细的介绍,同时可以作为相关工具、命令行、策略构建工具以为策略文件格式的使用说明书。


术语

先了解一下三个重要的术语,分别是SE for Android、AOSP和SEAndroid。

SE for Android

用于描述整套SELinux mandatory accss control(MAC)以及Middle-ware mandatory access control(MMAC)在Android上的实现。

AOSP

AOSP即是指Android的源码版本,其下载地址为Google分布(http://source.android.com/source/downloading.html),其中从Release 4.3开始,AOSP源码已经包含SELinux的支持,相关的说明见http://source.android.com/devices/tech/security/se-linux.html

AOSP中包含SELinux MAC的核心功能以及一些简单的策略,系统上所有的进程domains都是unconfined的状态。而且Install MMAC框架和策略也没有添加过多的限制,详情可以查看“所支持的MAC服务”一节的内容。

AOSP的原则是所有的第三方应用都是平等对待,这意味着第三方的应用不能运行在不同的domains中,也无法为其单独配置MAC/MMAC策略。AOSP只对系统应用进行策略限制。

SEAndroid

SEAndroid就是指在AOSP发行版本的基础上添加了一系列功能之后的版本(相当于是SELinux的功能加强版),这些功能如下所列:

a) 安全加强的MAC策略,以保证所有进程的domain都是被定义,同时SELinux的默认模式是enfocing;

b) 安全加强的MMAC策略;

c) 增加了Intent MMAC的支持;

d) 增加了Content Provider MMAC的支持;

e) 增加了Revoke permissioin(权限吊销) MMAC的支持;


这些功能的详细描述,见“所支持MAC服务”一节


SE for Android的项目编译

一共有5种不同的SE for Android的项目构建方式,分别是:

1) 标准的AOSP版本(从4.3版开始),这个版本不需要额外的代码补充,其他四种方式都需要从 https://bitbucket.org/seandroid/manifests获取额外的代码;

2) git checkout master——包含安全加强的SELinux MAC + 安全加强的Intall MMAC;

3) git checkout intent_mac——包含安全加强的SELinux MAC + 安全加强的Intall MMAC + Intent MMAC;

4) git checkout cp_mac ——包含安全加强的SELinux MAC + 安全加强的Intall MMAC + Intent MMAC + Content Provider MMAC;

5) git checkout revoke-perms——包含安全加强的SELinux MAC + 安全加强的Intall MMAC + Revoke permissions策略;

Android源码的git地址是https://android.googlesource.com,SEAndroid enhancements的git地址是https://bibucket.org/seandroid.


有用的链接

关于如何实现和测试集成了SELinux功能的AOSP发行版本:http://source.android.com/devices/tech/security/se-linux.html

关于目前SEforAndroid与跟AOSP的合并情况、如何获取代码、如何安装、有哪些功能: http://selinuxproject.org/page/SEforAndroid

Security Enhanced (SE) Android: Bringing Flexible MAC to Android : http://www.internetsociety.org/sites/default/files/02_4.pdf (强烈推荐阅读)

关于三星的"KNOX"的详细介绍:http://www.samsung.com/global/business/business-images/resource/white-paper/2013/05/Samsung_KNOX_whitepaper_April2013_v1.1-0.pdf



接下来的章节将包含下列内容

  • MAC和Middleware MAC的介绍
  • 为了支持MAC功能,Android源码上的变化
  • 增加kernel LSM/SELinux的支持
  • 与SE for Android功能相关的Classes & Permissions
  • 为支持SE for Android所增加的SELinux命令和方法 
  • init为支持SELinux的扩展
  • 策略构建和编译
    • 编译文件的位置
    • 策略布尔值
    • 策略配置文件
    • Install / run time MMAC 配置文件
    • Intent MMAC配置文件
    • Content Provider MMAC配置文件
    • Revoke permissions MMAC配置文件
  • 日志和审计
  • libselinux添加的函数

请继续阅读《SE for Android 系列之整体概要(二)》



你可能感兴趣的:(android,mac,安全,selinux,SEforAndroid)