首页
社区
课程
招聘
[原创]SEAndroid之IPC
发表于: 2013-4-19 10:43 13335

[原创]SEAndroid之IPC

2013-4-19 10:43
13335

SELinux在系统级增加了强制访问控制,每个VFS node均在Security Server的控制之中。IPC是系统的重要功能,未经授权的使用均会给系统带来安全隐患,所以本文重点对SEAndroid在IPC中安全功能进行分析,作为Android的主要通信工具socket和binder,在SEAndroid均增加了权限的控制,下面分别对两个进行简要的分析。
一、        binder
为了增加binder的权限控制,首先在kernel的policy中增加一个class,并且增加了几个方法,

{ "binder", { "impersonate", "call", "set_context_mgr", "transfer", "receive"} },
# binder_call(clientdomain, serverdomain)
# Allow clientdomain to perform binder IPC to serverdomain.
define(`binder_call', `
# First we receive a Binder ref to the server, then we call it.
allow $1 $2:binder { receive call };
# Receive and use open files from the server.
allow $1 $2:fd use;')
.binder_set_context_mgr =	selinux_binder_set_context_mgr,
.binder_transaction =		selinux_binder_transaction,
.binder_transfer_binder =	selinux_binder_transfer_binder,
.binder_transfer_file =		selinux_binder_transfer_file,
static int selinux_binder_set_context_mgr(struct task_struct *mgr)
{
	u32 mysid = current_sid();
	u32 mgrsid = task_sid(mgr);
	return avc_has_perm(mysid, mgrsid, SECCLASS_BINDER, BINDER__SET_CONTEXT_MGR, NULL);
}

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

上传的附件:
收藏
免费 6
支持
分享
最新回复 (2)
雪    币: 33
活跃值: (145)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
2
由于Android行业化应用越来愈多,对SE的研究越来越多了,例如trustdroid。
SE目前实现太复杂了,另外仅提供kernel的MAC,框架层的也需要啊。类似的机制已经有厂商实现了,如三星S4 Knox!
2013-5-18 21:57
0
雪    币: 74
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
框架层MAC也提供了,只是没有被AOSP merge进去。4faK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4y4W2L8r3W2F1N6i4S2H3M7X3!0B7k6h3y4@1i4K6u0W2L8%4u0Y4i4K6u0r3i4K6N6q4M7$3g2S2L8X3c8J5L8$3W2V1i4K6u0r3M7r3q4H3k6i4u0K6i4K6u0r3e0V1c8e0f1K6t1H3x3e0y4Q4x3X3c8e0c8f1q4F1k6s2u0G2K9h3c8Q4x3X3c8b7j5i4m8W2M7W2)9J5k6i4m8V1k6R3`.`.
2013-5-24 13:28
0
游客
登录 | 注册 方可回帖
返回