云计算安全解决方案白皮书(一)
云计算安全解决方案白皮书
Jack zhai
研究云的安全有两三年了,但形成完整的安全思路,还是去年的事,这也是“流安全”思路形成的主要阶段。云计算的安全问题之所以突出,是因为虚拟机的动态迁移,以及多业务系统交织在一起,这让传统的网卡边界就是安全部署点的方法不在适用。流安全不再关注被保护服务器的物理位置,转而关注访问该服务器的数据流。通过对数据流的重新“路由”,保证对数据流的安全清洗,从而实现对服务器的网络保护。在访问控制模型中,有一类流模型,就是针对数据流进行保护的。
为了让大家容易理解基于流安全的云计算安全方案,我编写了这个白皮书,与大家交流。文档挺长,特分成四个部分。
0. 本方案适用范围:
云计算建设一般分为公有云与私有云,其安全需求是不同,安全防护思路也不相同。
公有云以阿里云、腾讯云等互联网运营商为代表,独立建设云服务为企业、个人提供云服务。选用这种云服务的用户,多数是对敏感性要求不高的,主要的便宜、快捷。同时,云服务提供商为了降低运营成本,大多采用在开源虚拟化平台上进行二次开发,不仅整个架构平台可以自己重新架构,而且可以增加自己对虚拟机的安全管理,如流量限制,内置安全软件进行安全监控,或者直接进行病毒查杀等等。总之,公有云的安全基本上是由云服务商来管理,用户可以根据自己的需要选择,若是有些敏感的信息,可以选择桌面的加密软件。
私有云的情况则不同,因为私有云的建设者,大多数技术力量不是很强,没有自行开发、运维虚拟化平台的能力,选择采用第三方的、较为成熟的云计算管理平台是常见的,用户则更关心自己的新业务开发。采用私有云方式的用户,一般其IT设施较多,业务对网络要求较高,多数有自己的城域网,有些还有专用的广域网,在安全上一般应该满足等级保护的国家要求。为了提高IT设备的利用率,加强对业务支持的灵活性,选用资源虚拟化管理,或者之间迁移到云服务平台。如政府、军队、央企、科研机构等,
本文主要是针对私有云,并且是在一个虚拟化池中不只是运行一种业务的场景,提出的云计算安全解决方案设计思路,不仅适合针对每个业务系统提供单独安全保障的需求,而且适合不同虚拟化管理平台的统一安全管理。
一、云计算其实是所有软件人的“梦”
1、云计算是一种新的IT服务模式体验
能够不受计算机处理能力的限制,能够有取之不尽的内存与外存空间,这对于每一个软件编程人员来说,无疑具有巨大的诱惑力。为了提高处理速度而绞尽脑汁设计的精巧算法,为了节省内存而反复优化的代码…而真正实现业务系统的逻辑、管理往往沦为“不重要的”。以至于很多人认为:计算机编程高手就意味着精于编程技巧,而应用系统开发只是软件工程,我们常说的“码农”。
云计算技术的出现让这个问题成为历史,增加处理能力,就是增加几个CPU,动态添加内存都不再是障碍,甚至已经出现了内存数据库,空间还是问题吗?因为云计算的特点之一是具有弹性的处理能力。
对于计算机的用户,能够随时随地接入主机系统,忙碌的办公室、温馨安逸的家、旅途中的宾馆、休假时的海滨,甚至行驶的汽车上、飞机上、轮船上…随时交流通信、随时编写方案、随时设计蓝图、随时项目审批、随时网上冲浪……云计算让这些梦想变成了可能,因为云计算还有一个显著特点:随时随地接入网络。
当然,得到如此“梦想”的服务,不只是高端富豪才能享用的,就像“自来水”一样,价格便宜,使用多少就付多少钱。可度量的、按需的服务是云计算的另一大特点。
以上是美国NIST定义云计算五大特点中的三个,这已经足够吸引所有计算机人士的眼球的了。因此,2013年还有很多专家称云计算落地还有待时日,到了2014年,政府与企业的IT建设立项不与云沾边的已经很少了,2015年一开始,一窝蜂似的涌出很多的云计算项目要落地实施。其实我们回想一下,这几年,我们身边基于云计算的服务与新应用:即时通信、社交网络、搜索引擎、电子政务、智慧城市、电商购物、影视媒体、大型游戏、安全态势分析、领导决策支持…
2、了解一下云计算的体系结构
云计算是一种新技术,也是一种新型的IT服务模式。你知道吗?支持云计算服务商的后台基础技术其实是资源管理的虚拟化技术。我们先看一下云计算的系统结构:
与传统IT架构不同的地方,是在IT基础设施与系统软件(操作系统)之间增加个一个虚拟化管理层,业务系统“看到”到不再是物理服务器,而是虚拟机(VM)。
正是因为对数据中心的IT基础实施采用了虚拟化管理技术,虚拟计算机可以动态调整CPU的个数、内存的大小,所以云计算才能够提供弹性的服务能力。按照用户业务运行的实际需求,动态分配处理能力给每个用户,这就是服务器虚拟化管理的核心之一。当然你需要的服务能力不能超过所有硬件服务器服务能力的总和。
这种虚拟化管理平台软件不同于传统的计算机操作系统,目前比较流行的有:VmWare、KVM、Xen、Hyper-V等,其他管理平台多是在KVM、Xen等开源平台上继续开发出来的。
服务器虚拟化技术的核心是生成与管理虚拟机(VM),不同平台技术上有差异,但大体思路是一致的。我们看一下VMWare平台的虚拟机架构:
Xen平台的虚拟机架构类似,但有个0号控制虚拟机:
虚拟机最基本的组成是CPU、内存、网卡、磁盘(外存),其他虚拟硬件按需添加,如光驱、软件、USB等。多个虚拟机共享一个物理服务器的硬件资源,对于多用户、多进程的操作系统来说这也不是什么难的事情,但如何将两个虚拟机安全隔离就是管理上关注的事情了。两个应用软件“跑”在一起,还有兼容问题呢,何况是两个虚拟机?用户使用虚拟机,对他来说,应该是一台“独立的”计算机,若他知道还有人与他一起“合租”,邻里关系不能熟视无睹吧。如何做到让用户感觉是跟自己的是一样的呢?
3、了解虚拟化技术
在一个服务器内实现多个虚拟机共享技术是第一步,要想真正支持弹性服务能力,没有上限的,就一定要突破多台服务器的联合技术,整体的服务能力才有增大。
从早先的双机热备,到服务器集群,再到网格计算,人们在把多台设备虚拟到一起的道路上,探索了很长的一段时间。目前流行的实现服务器虚拟化技术有如下两种模式:
负载控制+“一虚多”:先建立一个总服务台,进行并行管理。把一个任务分成多个子任务,每个任务申请一个VM,最后处理的结果再返回用户。保证子任务对服务能力的需求不超过单个物理服务器。比如Google、百度的搜索服务,把搜索分成不同类别、资源的子搜索,搜索的时间才会到人满意的程度;
“多虚一”+“一虚多”:把多个物理设备虚拟成一个大的设备,成为一个很大处理能力的“巨型机”,再按需分给每个用户。这是资源虚拟化的理想方式,真正做到了用户申请的VM不受物理服务器的限制,不关心处理能力的承受问题。
不论是哪种虚拟化技术,目的都是在物理硬件与用户需求计算机之间建立一个虚拟层,由这个虚拟管理层负责把用户任务分配给具体的硬件资源,用户“看到的”是虚拟CPU、虚拟内存…既然硬件都是虚拟的,当然其大小就可以由虚拟管理者动态调整。管理虚拟层一方面要管理下层具体的硬件,驱动它们最大效率地工作,一方面要针对每个虚拟机提供出虚拟的硬件接口,让虚拟机的操作系统“正常”调用硬件资源工作。
4、虚拟网络的“诞生”
计算机是通过网卡连接网络与外界互联的,所以,传统的网络边界节点就是网卡,网卡收发的是网络TCP/IP协议的数据包,支持的网络路由交换协议。网卡是服务器与网络互通的必经路径点。连接网卡的网线就是通过网络进入服务器的“唯一”大门(直接到服务器控制端或串口接入控制端,需要接近物理设备,属于物理安全与运维管理范畴,这里不讨论),传统的网络安全措施,部署在网卡的前面,是最佳的防护位置。
虚拟机(VM)的产生让网络有了不同,每个VM也都有自己的虚拟网卡,这些虚拟网卡需要一个虚拟交换机将他们“连接”起来,再通过上行链路(服务器的物理网卡)连接到外边的网络上。
这个虚拟处理来的交换机,并不是把物理网卡与虚拟网卡简单的分时镜像,因为两个VM之间也会通信,这是的流量就无需到物理网卡去“兜一圈”了,通过虚拟交换机就可以进行“转发”,实际上是物理服务器的内存里搬移个地方,但是虚拟交换机应该与物理交换机一样支持TCP/IP各种交换协议。每个VM都有自己独立的IP地址(可以通过NAT技术对外界只有一个IP)。逻辑网卡的功能与物理网卡应该一样,同样处理TCP/IP的协议栈。
有了虚拟网卡、虚拟交换机,虚拟网络就诞生了。在云计算架构里,网络概念发生了延伸,对网络的理解从传统的网络边界---网卡,延伸到服务器的内部---VM的虚拟网卡。
5、虚拟机不仅仅是虚拟的
VM与物理计算机,用户使用起来是没有差别的。但管理这看来,是不同的。物理计算机是硬件实物,一般来说服务器的物理位置是固定的,要迁移是很麻烦的(涉及到网络IP的规划与路由设计,这里说的是服务器端,不是终端,可以使用动态IP);VM其实只是一个“文件”,迁移就是一个文件拷贝的操作。因此,采用虚拟化技术最为实惠的一大好处,就是VM可以动态迁移。
虚拟机动态迁移为IT管理带来的优势是显而易见的:
没有业务处理时,VM休眠,释放全部的物理资源给其他用户使用;
发现VM运行的服务器能力不足时,可以动态迁移几个VM到其他的物理服务器上,在不中断业务的情况下,动态调整服务能力的供给;
IT系统升级或更新硬件时,先把VM迁移出,升级完后再迁移回来,完全不影响应用服务状态,无需像从前那样,要业务系统退出、数据备份、硬件升级、重装系统、重启业务服务、恢复数据、同步操作等等;
系统容灾变得简单易行。以往是建设备份机房,投资大,平时也用不上;有了动态迁移技术,可以在两地机房建立一体的虚拟化池,在一地出现大灾难时,业务自动将业务VM迁移到另一地的机房服务器中,自动实现系统容灾。近几年,传统设计的两地三中心(同城备份、异地容灾)IT基础架构,已经被“双活”、“多活”数据中心的架构所代替,核心就是采用虚拟化的迁移技术;
快速重启备份系统。业务系统有Bug,系统逻辑宕机,要尽快恢复业务是所有IT管理者都需要的。传统采用双机热备或冷备机方式,重启硬件的时间是不可缺少的。有了虚拟化技术,可以建立不同时间段VM的动态文件镜像,发现宕机,立即启动备份VM,无论是恢复时间,还是最小损失窗口都有大幅度地提升;
VM动态迁移,带来的直接问题,就是IP管理。用户访问服务器是通过URL,再定位到IP地址,所以VM如何迁移,其IP地址应该是不变的。传统数据中心采用三层网络结构(接入、汇聚、核心),不同业务系统划分VLAN进行隔离,保障业务边界安全,VLAN之间的通信是通过三层路由网关转发。现在VM动态迁移,不知道在哪个物理服务器中,甚至到了异地数据中心的服务器里,三层路由在哪里做合适呢?若大家都放在一个二层VLAN里,好像又不安全,广播包太多也是问题。这就是目前很多数据中心采用“大二层”网络架构的原因所在。简单地理解大二层,就是大家可以在一个网段,又可以做一些逻辑域,一个VLAN的设备还在一个广播域,跨设备的VLAN之间建立“通道”,保障它们是一个逻辑的整体。
6、云计算让网络迈向一个新的时代
云计算采用了资源虚拟化,把物理网络从传统的物理网卡,延伸到物理服务器的“内部”,虚拟机的虚拟网卡上。VM的动态迁移,让我们对“设备”的管理,从物理的改变为逻辑的。
一方面,开发者不再关心服务器的处理能力;另一方面,用户也不再关心自己业务服务器在什么地方。传统的网络是七层架构,现在网络层上,“生出”一个“逻辑网络层”,虚拟化了服务器的计算资源,也虚拟化了网络资源。
采用了虚拟化技术,IT管理者已经无法像以前一样把某个业务系统与物理的服务器、存储、网络设备相对应,他们看到的只是某个业务系统访问的信息流,业务系统的虚拟网络拓扑。
传统的网络管理统治时代即将过去,面向对业务信息流的管理时代即将开启。
<下部分将介绍业界提供的云计算安全方案,并对其优缺点进行分析......>
相关文章:

一种注册表沙箱的思路、实现——研究Reactos中注册表函数的实现3
这篇我们看一个”容错“”节省“的实例。一下是一个Win32API的声明(转载请指明出处) LONG WINAPI RegEnumKeyEx(__in HKEY hKey,__in DWORD dwIndex,__out LPTSTR lpName,__inout LPDWORD lpcName,__reserved LPDWORD lp…
腾讯Angel升级:加入图算法,支持十亿节点、千亿边规模!中国首个毕业于Linux AI基金会的开源项目...
出品 | AI科技大本营(ID:rgznai100)【导语】Angel 是腾讯的首个AI开源项目,于 2016 年底推出、2017年开源。近日,快速发展的 Angel 完成了从 2.0 版本到 3.0 版本的跨越,从一个单纯的模型训练系统进化成包…

如何在JSP页面中获取当前系统时间转
出自:http://hi.baidu.com/itfuck_/item/803662469cdf7baa61d7b945 1: import java.util.*; int y,m,d,h,mm; Calendar c Calendar.getInstance(); y c.get(Calendar.YEAR); //年 m c.get(Calendar.MONTH) 1; //月 d c.get(Calendar.DAY_OF_MONTH); //日 …
如何用Python实现超级玛丽的界面和状态机?
作者 | marble_xu编辑 | 郭芮来源 | CSDN博客小时候的经典游戏,代码参考了github上的项目Mario-Level-1(https://github.com/justinmeister/Mario-Level-1),使用pygame来实现,从中学习到了横版过关游戏实现中的一些处理…

一种注册表沙箱的思路、实现——研究Reactos中注册表函数的实现4
今天为了KPI,搞了一天的PPT,搞得恶心想吐。最后还是回到这儿,这儿才是我的净土,可以写写我的研究。 这儿讲一些Reactos中一些明显的错误。(转载请指明出处) 在Reactos的RegQueryInfoKeyW中有段这样的实现 i…

Netscaler 认证,访问报http 5000 内部错误
在VDI项目中,Netscaler经常与AD不在同一网络,有时在icaprofile中写的SF或WI的FQDN,访问VDI,会报http 5000 内部错误;解决办法如下:1.NS无法解析Storefont或WI的主机名,需要修改icaprofile 中SF或…
解读 | 2019年10篇计算机视觉精选论文(中)
导读:2019 年转眼已经接近尾声,我们看到,这一年计算机视觉(CV)领域又诞生了大量出色的论文,提出了许多新颖的架构和方法,进一步提高了视觉系统的感知和生成能力。因此,我们精选了 20…
PE文件和COFF文件格式分析--概述
刚工作的时候,我听说某某大牛在做病毒分析时,只是用notepad打开病毒文件,就能大致猜到病毒的工作原理。当时我是佩服的很啊,同时我也在心中埋下了一个种子:我也得有这天。随着后来的工作进行,一些任务的和这…

2015第22周六Java反射、泛型、容器简介
Java的反射非常强大,传递class, 可以动态的生成该类、取得这个类的所有信息,包括里面的属性、方法以及构造函数等,甚至可以取得其父类或父接口里面的内容。 obj.getClass().getDeclaredMethods();//取得obj类中自己定义的方法&…

中服公司企业信息化的ERP系统选择
中服公司企业信息化的ERP系统选择一、 中服公司概况 1. 组织概况 中服公司创建于1950年9月,是国家120家企业集团试点单位之一,主要经营各类纺织原料、半成品、服装、针棉毛织品以及其他商品的进出口业务,同时通过合资、联营等方…
PE文件和COFF文件格式分析--MS-DOS 2.0兼容Exe文件段
MS 2.0节是PE文件格式中第一个“节”。其大致结构如下:(转载请指明来源于breaksoftware的csdn博客) 在VC\PlatformSDK\Include\WinNT.h文件中有对MS-DOS 2.0兼容EXE文件头的完整定义 typedef struct _IMAGE_DOS_HEADER { // DOS .EXE h…
时间可以是二维的?基于二维时间图的视频内容片段检测 | AAAI 2020
作者 | 彭厚文、傅建龙来源 | 微软研究院AI头条(ID: MSRAsia)编者按:当时间从一维走向二维,时序信息处理问题中一种全新的建模思路由此产生。根据这种新思路及其产生的二维时间图概念,微软亚洲研究院提出一种新的解决时…

《燃烧的岁月》
温含着优美的文句中,字里行间,透过一层薄薄的纸,牵挂起往事如烟,曾经的努力和成长,透过那以视频同时走过的路,默默无闻,牵挂着的是一句句唯美的文笔,留下情感的诗句文笔,…

PE文件和COFF文件格式分析——签名、COFF文件头和可选文件头1
本文将讨论PE文件中非常重要的一部分信息。(转载请指明来源于breakSoftware的CSDN博客) 首先说一下VC中对应的数据结构。“签名、COFF文件头和可选文件头”这三部分信息组合在一起是一个叫IMAGE_NT_HEADERS的结构体。 typedef struct _IMAGE_NT_HEADERS6…
遇到bug心寒了?用Enter键即可解决!
本文图片来自网络做程序员难不难?很难!做个程序员压力大不大?超级大!!测试bug时(图片来自网络)当找到Bug,开始修改的你……(图片来自网络)那怎么办࿱…

8月第1周安全回顾 0Day漏洞成企业最大威胁 应重视网络监听
文章同时发表在:[url]http://netsecurity.51cto.com/art/200708/52822.htm[/url]本周(0730至0805)安全方面值得关注的新闻集中在安全管理、安全威胁和安全产品方面。安全管理:0Day漏洞***成为企业信息安全的最大威胁新闻ÿ…

最大匹配、最小顶点覆盖、最大独立集、最小路径覆盖(转)
在讲述这两个算法之前,首先有几个概念需要明白: 二分图: 二分图又称二部图,是图论中的一种特殊模型。设G(V,E)是一个无向图,如果顶点V可以分割为两个互不相交的子集(A,B),并且图中的每条边(i,j)所关联的两个顶点i和j分别属于这两个…
一种在注入进程中使用WTL创建无焦点不在任务栏出现“吸附”窗口的方法和思路
最近一直在做沙箱项目,在项目快接近结尾的时候,我想给在我们沙箱中运行的程序界面打上一个标记——标识其在我们沙箱中运行的。我大致想法是:在被注入程序的顶层窗口上方显示一个“标题性”窗口,顶层窗口外框外显示一个“异形”的…

转:ASP.NET状态保存方法
ASP.NET状态保存分为客户端保存和服务器端保存两种:使用客户端选项存储页信息而不使用服务器资源的这些选项往往具有最低的安全性但具有最快 的服务器性能,因为对服务器资源的要求是适度的。但是,由于必须将信息发送到客户端来进行存储&#…
时至今日,NLP怎么还这么难!
作者 | 刘知远在微博和知乎上关注自然语言处理(NLP)技术的朋友,应该都对#NLP太难了#、#自然语言理解太难了#两个话题标签不陌生,其下汇集了各种不仅难煞计算机、甚至让人也发懵的费解句子或歧义引起的笑话。然而,这些例…
Quartz定时任务学习(四)调度器
org.quartz.Scheduler 类层次 作为一个 Quartz 用户,你要与实现了 org.quartz.Scheduler 接口的类交互。在你调用它的任何 API 之前,你需要知道如何创建一个 Scheduler 的实例。取而代之的是用了某个工厂方法来确保了构造出 Sheduler 实例并正确的得到初…

反汇编算法介绍和应用——线性扫描算法分析
做过逆向的朋友应该会很熟悉IDA和Windbg这类的软件。IDA的强项在于静态反汇编,Windbg的强项在于动态调试。往往将这两款软件结合使用会达到事半功倍的效果。可能经常玩这个的朋友会发现IDA反汇编的代码准确度要高于Windbg,深究其原因,是因为I…

项目计划书的内容
1.引言 1.1计划的目的 1.2项目的范围和目标 1.2.1范围描述 1.2.2主要功能 1.2.3性能 1.2.4管理和技术约束 2.项目估算 2.1使用的历史数据 2.2使用的评估技术 2.3工作量、成本、时间估算 3.风险管理战略 3.1风险识别 3.2有关风险的讨论 3.3风险管理计划 3.3.1风险计划 3.3.2风险…
不用写代码就能学用Pandas,适合新老程序员的神器Bamboolib
作者 | Rahul Agarwal译者 | 陆离编辑 | Jane出品 | AI科技大本营(ID:rgznai100)曾经,你有没有因为学习与使用 Pandas 进行数据检索等操作而感到厌烦过?实现同样的功能,Pandas 给用户提供了很多种方法&…

后海日记(8)
来深圳已经这么长时间了,深圳给我的感觉总体很好,天那么蓝,空气也很清新,总的来说很不错。 努力学习,早日成才。 加油!版权声明:本文为博主原创文章,未经博主允许不得转载。 转载于:…

反汇编算法介绍和应用——递归下降算法分析
上一篇博文我介绍了Windbg使用的线性扫描(linear sweep)反汇编算法。本文我将介绍IDA使用的递归下降(recursive descent)反汇编算法。(转载请指明来源于breaksoftware的csdn博客) 递归(recursiv…
如何快速get到AI工程师面试重点,这12道题必备!
作者 | JP Tech译者 | 刘畅编辑 | Jane出品 | AI科技大本营(ID:rgznai100)【导读】2020 年的三月春招要来了,现在想要 Get 一个算法工程师的实习或全职机会,已经不是一件易事了。如果现在着手复习,茫茫题海…

金邦黑金刚4G内存 VS Vista系统
我的机器配置是 Intel Core 2 4320CPU 金邦黑金刚2G DDR2 800*2 P965P-DS3主板 N 8600GTS 为什么在Vista中 只识别了3.5G 我升级了主版BIOS 主版最高支持8G,哎结果网上一看,才明白。。。现在的系统不是很好的支持4G的内存。…

程序员的量化交易之路(25)--Cointrader之MarketData市场数据实体(12)
转载需注明出处:http://blog.csdn.net/minimicall,http://cloudtrade.top/ 前面一节我们说到了远端事件。其中,市场数据就属于远端事件。市场数据有什么?我们通过代码来回答这个问题: package org.cryptocoinpartners.…
滴滴开源在2019:十大重点项目盘点,DoKit客户端研发助手首破1万Star
整理 | Jane出品 | AI科技大本营(ID;rgznai100)2018 年,科技企业纷纷布局开源战略后迎来的第一个“丰收年”。但对滴滴来说,2019 年才迎来其第一波开源小高潮。自2017年滴滴零星开源数个项目后,滴滴开源项目…