NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

阿里云课堂:云安全的架构设计与实践之旅

  • 2014-10-28
  • 本文字数:2933 字

    阅读完需:约 10 分钟

10 月 25 日下午,阿里云课堂第二期《云安全的架构设计与实践》在上海光大会展中心国际大酒店举行。此次公开课试图让更多的开发者深入了解到云安全架构那些事儿。当然云安全的架构设计背后有大量的技术积累做支撑,远非几个小时的分享交流就能剖析清楚。未来几个月,阿里云还将与 InfoQ 等技术媒体社区携手在全国 12 个城市开展阿里云技术公开课,通过与讲师面对面地交流,使开发者真正了解云计算、更深入地用好云计算。虽然阿里云课堂的步调稍晚,但是我们会用心走好每一步,欢迎关注阿里云公开课,希望我们不要再错过!

本期公开课我们邀请到阿里云飞天系统两位资深安全技术专家李雪峰(花名虚舟)和杨孟哲(花名孟哲);两位讲师分别就《云计算安全体系中的沙箱机制和技术剖析》、《云平台安全访问控制的设计与实现揭秘》这两个话题进行了分享。本文将对这两个分享做下简单的回顾。

主题一:云计算安全体系中的沙箱机制和技术剖析

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

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

第一,从攻击者的角度看一下云上的系统有哪些 Attack Surfaces 可以利用;

第二,看目前开源的产品,比较著名的产品是如何进行防,以及做哪些工作的;

第三,了解目前 Mechanisms 系统可以为我们做哪些安全机制;

第四,安全沙箱所做的安全解决方案。

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

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

安全沙箱没有绝对安全的设计,如何在安全上做到最高层次的保证?雪峰提到,主要做到以下两点:

  1. 进层隔离,就是提供安全机制。
  2. 在 kernel space 里面安全过虑。

总体来说,本次分享还是比较聚焦的,让我们对云计算安全体系中的沙箱机制有了一个初步的了解,对于飞天系统的安全产品防护方案也有了一个全新的认识。

主题二:云平台安全访问控制的设计与实现揭秘

飞天安全平台技术专家杨孟哲以一种比较轻松的方式让大家了解了阿里云的飞天和云平台架构设计。

首先,从访问控制的概念说起。访问控制要有主体,一个人也好,一个进程也好,要有发起访问的人。然后有客体和真正的操作,同样的道理,我们可能有很多的客体和它们的操作,这样的简单表格就完成了访问控制的设计。

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

第一 :ACL。ACL 是以客体作为出发点,我们有文件和表的两样东西,我们在这个客体上面可以附上一个列表,上面写某个客体有什么权限。我们可以定义出这样的列表,当 Alice 访问的时候,有权限我们就放过,没有权限我们就不放过。

第二:Capabilit。这个概念可能大家听少比较少,却经常用到。孟哲举例说:比如,我从杭州坐高铁过来,高铁的这件事上,或者说火车票机制上,本质上就是机遇 capability 的访问控制。我们可以给 Alice 这个人发一张票,上面写着对文件、对表有读的权限,Alice 要访问的时候出示表,我们检查,有权限我们就放过。

ACL**** 和 Capability 的区别

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

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

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

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

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

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

为了给大家讲得更生动一些,孟哲结合下阿里云的 ODPS 产品来给现场的开发者们演示,让大家对这两个概念更形象化的区分开来。

从访问控制的概念入手,从抽象到具象,从概念从实例,包括一些实现上的设计理念,不同场景下使用不同的访问控制策略,整个流程清晰明了。至此本次公开课的课程介绍便告一段落。

自由讨论:OpenSpace 环节

两个分享结束后,是茶歇和 OpenSpace。OpenSpace 是供参会者和讲师充分沟通的环节,不过在现场从茶歇开始,两位讲师就没有获得休息的机会,一直被参会者包围直到活动结束。

许多参会者在微博上发表了评论:

@菜鸟成长日记:今天听了,控制相关的干货不少,赞。

#阿里云技术探秘之旅#小编 @丹心随梦格式化现场感受:雪峰老师睿智沉稳,从飞天访问控制机制、安全沙箱机制、云安全技术等方面详尽剖析,解读了飞天安全那些事儿;孟哲老师风趣幽默,揭秘了云计算安全访问控制的三要素,让大家了解到飞天底层的访问控制和我们所看见的云服务之间的关系。哇哦,长见识了,听不够呀 ^_^

这一期的结束也预示着下一期的开始,我们的技术之旅还在继续。“双 11”大促即将来临,牵动着多少电商人的心,“按秒作业”的“疯狂模式”,痛并快乐的一天,每一分每一秒都是对技术人员的有力见证。在这个逛欢的背景下,淘宝后台有哪些技术在支撑?下一期公开课,我们将为您揭秘其背后的故事,让我们拭目以待。

如果您希望在阿里云公开课上讨论一些技术话题或其他建议,请通过 @InfoQ 或者 @阿里云告诉我们,下期再见。

2014-10-28 00:545608
用户头像
Kitty 极客邦科技会议主编

发布了 27 篇内容, 共 12.0 次阅读, 收获喜欢 40 次。

关注

评论

发布
暂无评论
发现更多内容

华为前端工程师分享:查明网站访问故障原因,教你4招快速应对

华为云开发者联盟

高可用 网站 CDN 云安全 DNS故障

(VMware)ubuntu 环境下搭建 docker 镜像私服

逸少

Docker 镜像仓库

【LeetCode】雪糕的最大数量Java题解

Albert

算法 LeetCode 7月日更

阿里+头条+抖音+百度+蚂蚁+京东面经,都是精髓!

欢喜学安卓

android 程序员 面试 移动开发

「项目管理100问」之一篇优秀的周报是怎样炼成的?

万事ONES

项目 周报 ONES

Redisson 分布式锁源码 01:可重入锁加锁

程序员小航

Java redis 源码 分布式锁 redisson

Go 学习笔记之 命名

架构精进之路

Go 语言 7月日更

阿里云ECS Cloudbuild开发者大赛重磅开启!40万奖金燃爆这个夏天!

弹性计算百晓生

云计算 阿里云 开发者大赛

从零开始学习3D可视化之事件卸载、事件暂停

ThingJS数字孪生引擎

大前端 3D可视化 数字孪生 事件

PowerShell 数组

耳东@Erdong

PowerShell 7月日更

「免费开源」基于Vue和Quasar的前端SPA项目crudapi后台管理系统实战之联合索引(十一)

crudapi

Vue crud crudapi quasar 联合索引

JAVA 设计模式系列——工厂模式

加百利

7月日更

如何基于阿里云持久内存实例搭建高性价比Redis应用?

弹性计算百晓生

redis 阿里云 Redis 核心技术与实战 弹性计算

如何用EasyRecovery找回已经删除的图片?

淋雨

EasyRecovery 文件恢复 硬盘数据恢复

用 Docker 工具管理 WebAssembly 应用程序

WasmEdge

Docker rust 云原生 webassembly

ONES 课堂:敏捷开发和迭代

万事ONES

项目管理 敏捷开发 ONES 迭代

08 | 指针系列(二):记住,指针变量也是变量

Nydia

【Flutter 专题】98 易忽略的【小而巧】的技术点汇总 (六)

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 7月日更

流量为王时代的短视频平台如何确保内容质量?|【话题讨论】

老猿Python

技术 内容审核 流量为王 负能量

对象存储手把手教一 | 用户数据访问控制管理ACL

QingStor分布式存储

云原生 对象存储 分布式存储

.NET CORE 对象池简述

喵叔

7月日更

阿里+头条+腾讯等大厂Android面试题分享,神操作!

欢喜学安卓

android 程序员 面试 移动开发

Java零基础学习路线图(2021版)

Java入门到架构

Java 书籍

架构实战营 模块七作业

netspecial

架构实战营

ES6中扩展运算符的8种用法

devpoint

数组去重 ES6 扩展运算符

Rust从0到1-Cargo-自定义构建

rust build cargo 构建

数据结构——树和二叉树

若尘

数据结构 二叉树

多项目并行,项目经理如何有效管理项目进度?

万事ONES

研发管理工具 ONES 项目经理 项目管理工具

Ant蚂蚁挖矿系统软件开发资料

云小课 | ModelArts Pro 自然语言处理套件:高效构建行业高精度文本处理模型

华为云开发者联盟

AI nlp ModelArts Pro 开发套件 文本处理模型

Watt瓦特系统APP开发搭建

阿里云课堂:云安全的架构设计与实践之旅_安全_Kitty_InfoQ精选文章