手机root也安全

    你是否仍然在为手机安全感到困扰?是否担心手机root之后会带来更大的安全隐患? SEAndroid会帮助你解决困扰!

       SEAndroid基于NSA(美国国家安全局)开发的SELinux(Security-Enhanced Linux) NSALinux社区的帮助下开发了基于Linux的强制访问控制(MAC),在这种访问控制体系的限制下,进程只能访问那些在他的任务中所需要文件,从而从根源上限制了恶意程序的访问。

       SEAndroid实现了强制访问控制,他可以针对特定的程序和文件资源来进行权限的控制,我们权限控制的主体不再是用户,而变成了进程、应用,并且每个进程不可以改变文件资源的访问权限,因为每个文件资源很对不同的进程主体设置了不同的访问权限。系统在编译时预设了访问策略,该策略中包含了很多规则,规则指定了进程主体访问文件资源的权限。在对文件资源访问进行控制的同时,Binder IPCSocketProperties的访问同样纳入到SEAndroid的控制中,这使得每个进程的活动空间就变小了,即使你拥有了root权限,在使用不同进程的时候也并不一定能取得root权限。

       从下图我们可以看到,启动SEAndroid之后的系统,所有文件都包含了安全context

# ls -Z
drwxrwx---    system            cache             u:object_r:cache_file:s0            cache
drwxrwx--x    system            system            u:object_r:system_data_file:s0      data
drwxr-xr-x    root              root              u:object_r:device:s0                dev
-rwxr-x---    root              root              u:object_r:rootfs:s0                init.rc
dr-xr-xr-x    root              root              u:object_r:proc:s0                  proc
…………

       同样的下图是系统运行后的进程context,可以看出不同的进程可以属于各自的domain

# ps -Z
u:r:init:s0              root       1     0     /init
u:r:kernel:s0            root       72    2     mmcqd/0
u:r:kernel:s0            root       2     0     kthreadd
u:r:servicemanager:s0    system     98    1     /system/bin/servicemanager
u:r:rild:s0              radio      104   1     /system/bin/rild
u:r:surfaceflinger:s0    system     105   1     /system/bin/surfaceflinger
…………

       因此,通过规则的设定,可以限制每个domain的权限,下面列举了servicemanager的权限设置TE(type enforcement)

type servicemanager domain;
type servicemanager_exec, exec_type, file_type;
init_daemon_domain(servicemanager)
allow servicemanager self:binder set_context_mgr;
allow servicemanager domain:binder { receive transfer };

          不仅系统进程进行了强制访问控制,不同的 APP 同样进行了权限的区分,根据签名的不同被分到不同的 domain 中。常见的 domain system_app platform_app media_app untrusted_app 等,尤其对于 untrusted_app 的应用访问的资源特别有限。

       目前困扰用户最多的是病毒问题,一种典型的病毒就是通过进程注入关键进程(手机银行客户端等)的方式实现用户信息的监听、控制,给用户带来了极大的威胁。在启动了SEAndroid的系统中,此种病毒被多层次的拦截:1.root权限获取更加困难,shell权限很难将文件放入system_file类型目录下。2.ptrace的权限受到严格的控制,通过adb启动的进程更是无法实现注入,为了更加安全可以关闭ptrace功能。3.被注入的进程的权限被限定到规定的范围内,不能为所欲为。从而彻底的阻止了此类病毒带来的危害,给用户使用手机银行等应用带来了更高的可靠性。

由此可见, root 用户不再是万能的,权限被进行了彻底的隔离,进程的权限被设定到了最小的范围内,不过 root SEAndroid 中变成了一项更具挑战性的工作。关于 SEAndroid 技术的一些细节稍后继续分析。 @ 安卓安全小分队

你可能感兴趣的:(手机安全,SEAndroid,SELinux,IT)