2020-12-31 11:20:13 阅读(150)
飞行项目的整体结构,底层基础结构是由通用服务器组成的Linux集群,不使用高端服务器和存储。飞天的功能是通过服务提供的。下图中所有蓝色框(指各种云计算服务)都是外部服务窗口,但这里的蓝色框并不意味着阿里巴巴云提供的所有服务,还有许多其他服务不包括在内。在顶层,飞天项目是阿里云整个产品和服务的技术基础,以上是各种应用。飞天平台强调做多租户,因为众所周知,云计算的好处是灵活性,另一个是帮助你降低成本。下图是飞天系统结构的介绍。盘古和伏羲是整个飞天系统中最基本的两个系统。如果你以前知道这些信息,你应该非常熟悉这张图片。飞天基础系统携带多个云产品,ECS/SLB、OSS、OTS、OSPS、包括ODPS系统。安全机制在飞天和飞天携带的云产品中起着至关重要的作用。主要工作包括几个方面,一个是访问控制机制,另一个是安全沙箱。访问控制机制包括盘古文件的访问、阅读和认证机构,以及ODPS、OTS、OSS和其他系统基于飞行,飞行将帮助他们支持所有上层安全措施的基本机制。特别是ODPS系统,其所有访问控制机制和安全沙箱系统都得到飞行安全提供机制的支持。我们今天要讨论的问题是,首先,我们将从攻击者的角度来看云计算系统可以使用哪些Attacksurfaces。然后看看当前的开源产品,从这个角度来看,更著名的产品是如何解决安全问题的。而linux系统为安全沙箱提供了安全机制。最后,我们对飞天安全沙箱的方案有了具体的了解。首先,让我们来看看典型的云计算环境,从上到下支持用户代码的运行。通常,为了使用户代码能够执行高级语言,我们都有一层高级语言的虚拟机,如JVM,Cpython。以后有些系统会跑JS,这里对应V8。这些虚拟器通常由C语言开发,相对来说是一个独立的系统,下一层是Libc库,对应C语言的so。下一层是LinuxKernel。事实上,如果系统使用虚拟机器,将会有一个物理机器,这个共享不讨论这个问题。对于这样的系统来说,如果Usercode的恶意代码需要逐步渗透才能获得LinuxKernel的root权限。入侵者要想达到最终目标,首先要突破高级语言虚拟机的安全防护,比如Java的SecurityManager机制。然而,根据近年来的漏洞,JVM安全沙箱入侵并不难,可以假设它将被突破。通过JVM提供的Navtive调用,它可以直接调用到Libc。对于入侵者来说,Libc的主要目的是获得当前进程的权限。最后一层是LinuxKernel。在云计算平台上,运行用户代码的过程不会是root。想象一下,root不会为最终用户区域运行此代码。当入侵者真正通过前基层的安全保护机制,成功突破root权限时,他已经控制了这台机器。我们可以想象,在像云计算这样的集群中,我们通常会运行成千上万的例子。如果我们最大限度地发挥这个例子的数量,在执行此代码后,我们是否可以获得整个集群中所有机器的权限。这是一件可怕的事情。即使我们可以在一定程度上控制用户提交的数量,云计算平台通常使用相同的机器同时处理多个用户。如果一台机器被用户集中到root,入侵者可以看到上述所有数据和密钥。接下来,让我们来看看一些安全产品在行业中做得很好,以及如何解决用户隔离问题的安全沙箱。首先,让我们来看看Docker目前使用的机制。这张图主要使用三个纬度,两个纬度产生LXC,使用Namespaces和Namespaces,可以在很多方面实现一定的隔离能力。这种能力需要2.6.x以后才能部分开始使用。Cgroups机制保证了操作系统资源的合理管理。此外,Docker还启用了AUSF的分层文件系统。在传统的文件系统中,我们可以认为它是一个垂直的文件系统,你写哪个文件,这个文件直到硬件,AUSF可以叠加。层层叠加的文件夹会映射成相同的文件夹。在Docker中,底部的image用于制作系统环境,中间将制作APP,顶部是用户运行期。这些东西将被Docker封装成层层,以实现类似于集装箱的部署能力。对于Docker来说,Docker在攻击者眼中看到了什么?刚才的图片也差不多,整个系统有一个Dockercontainer,右边是Dockerengine。如果您直接在Docker上部署C过程,以下两层为C程序。对于恶意用户来说,要想获得机器的root权限,需要在kernel中突破secomp,才能突破Iibc上的措施。-bpf,这是kernel提供的一种安全机制,允许您定义某个过程所能进行的系统过滤。第三层突破,seccomp-bpf可以做出额外的安全判断。如果你也突破了这一点,其实这台机器也是直接root掉的。 接下来我们来看看googlechrome的沙箱。使用SUID/Chrome的ChromeNamespacessandbox,这也是利用linxcontainer机制。使用seccompp-legacy。在seccomp-bpf之前,google使用secomp-legacy。seccomp-legacy的使用限制很大。也使用过seccompp-bpf。刚才我们看了两个行业的安全产品,可以简单总结一下,沙箱有哪些安全机制可以使用?参考这张图,首先,对于JVM来说,我们可以使用JavasecurityManager和Clasloader机制。如果是LinuxKernel,那么我们也可以直接使用KernelNamespaces,Cgroup,Chroot、umount。这些东西已经包装在LXC中使用,通常一起使用可以产生更好的效果。然后是aufs,2.6开始支持。Seccomp-bpf是3.5。如果版本不够,你必须使用其他方案来过滤内核层。另一方面,云计算中的安全沙箱有哪些层次可以防御?JVM有必要防御吗?Java安全沙箱不是很难打破,它不想要吗?正如我们刚才所说,安全沙箱没有绝对安全的设计。如何尽可能可靠地保护安全?多层防御能有效提高安全防护能力。二是提供安全机制的进层隔离。在kernelspace中,第三层要有安全过度。 基于现有的安全机制,至少可以认为目前可以直接使用的保护措施就是这些。刚才我们看到了一些安全机制,接下来我们来看看沙箱中使用的飞行安全机制。事实上,我们前面提到的这些,都是用来使用的。 飞行安全沙箱,就是这样一个系统。简单来说,这张图和我们之前的两张图差不多。最终的方案,我们的方案融合了前两个优势。这一层的Usercode可以放在C语言下,Iibc可以有一些拦截。这个地方是基于IPC的,所以你在当前过程中要做的破坏或事情不会影响另一个过程。最后是Linuxcontainer,我们有一层内核过滤机制来保证。我们今天的分享还是比较集中的,那就是沙箱和安全机制。我们看到了行业内一些主要安全产品的实现及其使用安全机制。最后,针对飞行安全沙箱的具体案例,我们了解了如何整合各种安全机制,实现与著名安全产品具有相同等级保护能力的安全沙箱。
以上就是关于通过对沙箱机制的使用,可以有效维护云计算服务器的安全。的相关介绍,更多通过对沙箱机制的使用,可以有效维护云计算服务器的安全。相关内容可以咨询我们或者浏览页面上的推荐内容。我们将让你对通过对沙箱机制的使用,可以有效维护云计算服务器的安全。有更深的了解和认识。
推荐阅读
最新文章
猜你喜欢以下内容:
一 客户顾问-张三 一