手机root也安全

来源:互联网 发布:淘宝上传的图片不清楚 编辑:程序博客网 时间:2024/04/29 05:54

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

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

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

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

# ls -Zdrwxrwx---    system            cache             u:object_r:cache_file:s0            cachedrwxrwx--x    system            system            u:object_r:system_data_file:s0      datadrwxr-xr-x    root              root              u:object_r:device:s0                dev-rwxr-x---    root              root              u:object_r:rootfs:s0                init.rcdr-xr-xr-x    root              root              u:object_r:proc:s0                  proc…………

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

# ps -Zu:r:init:s0              root       1     0     /initu:r:kernel:s0            root       72    2     mmcqd/0u:r:kernel:s0            root       2     0     kthreaddu:r:servicemanager:s0    system     98    1     /system/bin/servicemanageru:r:rild:s0              radio      104   1     /system/bin/rildu: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中。常见的domainsystem_appplatform_appmedia_appuntrusted_app等,尤其对于untrusted_app的应用访问的资源特别有限。

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

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