分享

云平台搭建指导:阿里飞天体系结构及安全访问控制的设计与实现

本帖最后由 howtodown 于 2015-3-17 00:32 编辑
问题导读问题导读

1.飞天云平台安全访问控制如何设计的,思路是什么?
2.阿里飞天的体系结构主要包括哪两大块?




一:云计算安全体系中的沙箱机制和技术剖析
飞天安全平台技术专家李雪峰重点介绍了阿里飞天的体系结构,主要包括两大块,一块是盘古系统,还有一个是伏羲系统。如下图,图上有ECS/SLB、OSS、OTS、OSPS、包括ODPS的系统。

1.png

所有的飞天访问控制机制,包括从盘古文件的访问、读取和认证机构、 ODPS、OTS、OSS等系统基于飞天做,飞天会帮它们做所有上层的安全措施基础机制支撑工作。目前比较重要的是ODPS系统,在ODPS里面所有的访问控制机制和安全沙箱的系统,都是基于整个飞天的下层安全机制打造的。这也是所要分享的主题,主要从以下几个方面来探讨:

第一,从攻击者的角度看一下云上的系统有哪些Attack Surfaces可以利用;
第二,看目前开源的产品,比较著名的产品是如何进行防,以及做哪些工作的;
第三,了解目前Mechanisms系统可以为我们做哪些安全机制;
第四,安全沙箱所做的安全解决方案。


2.png


首先,雪峰用一张图展示了典型的云计算环境。如图:从上到下,通常来说用户代码第一层进行执行,再下一层是Libc的库,这个对应的是C语言的SO。再往下一层是Linux Kernel。入侵者如果想要到达最终目标,首先要突破第二层的安全防护,当入侵者写了一个代码上传到云空间站,它有非常大的概率,如果说它想去渗透你的主机和平台,对于本地语言,也就是虚机里面所提供的,它可以直接供给到Iibc。到了Iibc,对典型的云计算环境,我们会有自己的安全实现,会在里面做一些安全的加强工作。Iibc对入侵者来说,主要目的是要拿到当前进程的情况。

接下来雪峰以目前比较火的Docker为例,讲解了Docker的安全防御机制。对于Docker来说,整个系统有一个Docker container,右边是DockerEngine。如果你在Docker上直接布C进程,下面两层是C的程序。对于恶意用户来说,如果想到到所在及其的root权限,要突破你在Iibc上做的措施,然后有一个seccomp-bpf,这实际是一个安全机制,允许你定义某一个进程所能进行的系统过滤。第二、第三层攻破,seccomp-bpf可以进行额外的安全判断。你如果把这个也突破了,其实这台机器也直接root掉了。

安全沙箱没有绝对安全的设计,如何在安全上做到最高层次的保证?雪峰提到,主要做到以下两点:
  • 进层隔离,就是提供安全机制。
  • 在kernel space里面安全过虑。
总体来说,本次分享还是比较聚焦的,让我们对云计算安全体系中的沙箱机制有了一个初步的了解,对于飞天系统的安全产品防护方案也有了一个全新的认识。

二:飞天云平台安全访问控制的设计与实现揭秘
飞天安全平台技术专家杨孟哲让大家了解了阿里云的飞天和云平台架构设计。
首先,从访问控制的概念说起。访问控制要有主体,一个人也好,一个进程也好,要有发起访问的人。然后有客体和真正的操作,同样的道理,我们可能有很多的客体和它们的操作,这样的简单表格就完成了访问控制的设计。

3.png

主流的访问控制实现,主要有两个思路。

第一 :ACL。ACL是以客体作为出发点,我们有文件和表的两样东西,我们在这个客体上面可以附上一个列表,上面写某个客体有什么权限。我们可以定义出这样的列表,当Alice访问的时候,有权限我们就放过,没有权限我们就不放过。
第二:Capabilit。这个概念可能大家听少比较少,却经常用到。孟哲举例说:比如,我从杭州坐高铁过来,高铁的这件事上,或者说火车票机制上,本质上就是机遇capability的访问控制。我们可以给Alice这个人发一张票,上面写着对文件、对表有读的权限,Alice要访问的时候出示表,我们检查,有权限我们就放过。

ACL和Capability的区别

4.png

这两个理念在不同的场景下有不同的应用,在此给大家做一个对比,方便大家应用。

第一:认证方面;作为ACL来说,认证是必须的。访问控制列表,上面写着Alice有读写权限,但是你不知道访问你的人是Alice还是Bob,你就根本无法使用。而Capability认证是可选的。

第二:授权操作;ACL里面授权必须在客体进行,也就是文件的访问列表上加一项。完成授权,必须操作客体。而对Capability来说,授权操作是独立的,没有必要进火车站的那一刻做授权,只需要提前或者是在有时间的时候去买票就可以了。

第三,安全保障;对ACL来说,必须要保护好ACL的数据安全,如果客体可以篡改那就是不安全的。对capability来说,签发和验证的密钥必须是安全的,使你没有能力或者说比较困难、难以伪造这样的一个权限。

第四,委派;这也是访问控制经常有的概念。在ACL的访问控制列表里面,基本是走的授权流程。在capability的机制里面,委派是很简单的事情,主体可以直接委派,没有其他繁琐的流程。

第五:撤销授权;在ACL里面非常容易,管理员把某个人的格子删掉就可以了,但是在capability是非常大的难题。无法从别人的计算机或者是别人的手里删除,也无从知道别人是否把这个数据拷贝了无数次。




已有(1)人评论

跳转到指定楼层
Redgo 发表于 2015-4-2 16:39:07
哎,看完之后发现成功又离我远了一些
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条