首页
社区
课程
招聘
[原创]手机root也安全
发表于: 2013-4-18 15:55 10948

[原创]手机root也安全

2013-4-18 15:55
10948
你是否仍在为手机安全感到困扰?是否担心手机root之后会带来更大的安全隐患? SEAndroid会帮助你解决困扰!
        SEAndroid基于NSA(美国国家安全局)开发的SELinux (Security-Enhanced Linux), NSA在Linux社区的帮助下开发了基于Linux的强制访问控制(MAC),在这种访问控制体系的限制下,进程只能访问那些在他的任务中所需要文件,从而从根源上限制了恶意程序的访问。
        SEAndroid实现了强制访问控制,他可以针对特定的程序和文件资源来进行权限的控制,我们权限控制的主体不再是用户,而变成了进程、应用,并且每个进程不可以改变文件资源的访问权限,因为每个文件资源很对不同的进程主体设置了不同的访问权限。系统在编译时预设了访问策略,该策略中包含了很多规则,规则指定了进程主体访问文件资源的权限。在对文件资源访问进行控制的同时,Binder IPC、Socket、Properties的访问同样纳入到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用户不再是万能的,权限被进行了彻底的隔离,进程的权限被设定到了最小的范围内。关于SEAndroid技术的一些细节稍后继续分析。

@安卓安全小分队
http://weibo.com/androidsecurity

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费
支持
分享
最新回复 (7)
雪    币: 185
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
小分队搬过来的略慢了。 这个发表很久了吧。
2013-4-18 16:03
0
雪    币: 761
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
这和ios类似,但是希望不要在功能上有太多缺失。
2013-4-18 17:06
0
雪    币: 33
活跃值: (145)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
4
seandroid基本没有价值,适合封闭系统或者行业应用。
SE的本质就是MAC。MAC能解决安全问题吗。。。。UAC和MAC互补,但都不能解决问题。
2013-4-18 17:25
0
雪    币: 35
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
有点水。
2014-6-15 19:13
0
雪    币: 35
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
SEAndroid对于这么大的用户量,这么复杂的用户场景,基本没啥用武之地。SEAndroid目前最大的方向是:anti-root。其他的,如数据保护,应用分级等等,任重道远。
2014-6-15 19:14
0
雪    币: 6818
活跃值: (153)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
支持下!!!!!!
2017-2-18 03:33
0
雪    币: 4366
活跃值: (353)
能力值: ( LV10,RANK:160 )
在线值:
发帖
回帖
粉丝
8
微博已经不更新了吗......
2018-8-2 22:48
0
游客
登录 | 注册 方可回帖
返回

账号登录
验证码登录

忘记密码?
没有账号?立即免费注册