人的差别在于业余时间,而一个人的命运决定于晚上8点到10点之间。 北京安全测试精英QQ群:164265622 北京白盒测试精英QQ群:164265999 北京性能测试精英QQ群:164266156 北京自动化测试精英群:212723528 北京软件测试精英QQ群:86920845

转:浅谈云安全(一)

上一篇 / 下一篇  2012-02-03 15:43:58 / 个人分类:安全测试

[ 目录 ]
一 背景及描述
二 什么是云
三 什么是云安全
四 如何对云进行安全设计
五 对SAE的一次授权安全评估检测

一 背景及简述

由于国外的服务器访问较慢并且经常性的出现无法访问的情况,我们较早就与SAE合作将WooYun项目迁移至了较为稳定的SAE平台,后来与新浪SAE在安全方面也建立了合作关系,其中就包括此次安全评估测试。另外一方面,目前业界对云安全的讨论更多的都是在理论方面,很多的专家学者乃至安全研究人员和黑客都在讨论云安全,却很少有对实际的生产环境的云进行评估分析甚至入侵的案例,80sec也一直对云安全有自己的想法,但是缺乏实际的案例所以一直也没有相关的文档产出,我们在SAE对这些安全问题修复之后,经过SAE方面允许将此次对一个典型的paas云的评估过程公开,顺便提一些我们80sec在云安全方面的一些粗浅的想法,相关的一些详细安全问题也会被同步提交到乌云-漏洞报告平台上,说安全不如做安全:)

二 什么是云

我们理解的云是一种新的资源使用方式,包括存储,数据,计算,网络……等等,这种资源相比传统的资源来讲,更接近一种基础能源,需要多少就用多少,类似于基础设施里的水和电的这种弹性,按照用多少进行付费,到目前为止,我们都很难对云有一个精确的定义,我们站在安全的角度只能粗浅的将云分为:

私有云:为企业内部业务服务的,具有无限计算能力和无限存储能力的云服务;
公有云:为外部用户提供服务的,在计算能力和存储能力不限的基础上,可能会与公司核心资源一起以saas的形式提供给外部用户服务的云;

同样,按照云实际的表现形式和作用又可以分为iaas,paas,saas,不同类型的云是资源本质上的不同,下一层为上一层服务,iaas提供网络和系统层面上的资源细粒度划分,paas依赖于iaas可以做到将存储,计算,数据等资源开放给第三方开发者,而借助paas提供的平台,可以在之上实现各种各样的软件层面的saas结合公司核心资源以给用户提供服务;

三 什么是云安全

安全永远是对数据而言,安全的本质是数据的安全,包括可用,保密和不可篡改,安全上的一个挑战是云安全本质上改变了数据的处理方式,从传统的数据拥有者对安全负责变成数据处理者和数据拥有者同时对安全负责。
云安全带来的另外一个挑战是一个矛盾,对于使用者而言如果我要使用云,因为我可能会将敏感数据传到云上,我要先确保云是安全的,而如果我是一个云的建设者,我要对云安全负责,我得首先确认云里的数据处理和协作方式,而在数据规模和具体应用还不成熟的情况下,做到这一点会有难度,我无法保护一个威胁模型都不成熟的系统,所以目前一方面出现一个云安全先于云计算发展的局面,但是同时云安全因为云计算业务发展不够导致会处于一个理论和策略层面的情况;
不同的云,因为实际的业务目标和蕴含的数据不同,会有不同的安全威胁从而会有不同的云安全,譬如paas所需要考虑的东西和一个iaas需要考虑的安全会是完全不同的,同样私有云的安全目标和公有云的安全目标也会完全不同,依然是很久之前80sec提到的,不理解上下文的安全是没有意义的;

四 如何对云进行安全设计

我相信任何一个事物的安全性会由如下方面造成,它本身蕴含的价值,这种价值所吸引带来的风险,是否有考虑到这种风险的防护及实际的解决方案,解决方案是否得到正确的实现,正确实现解决方案后是否形成有效的体系进行管理和运维,任何一个环节的缺失都会带来不安全性;
对于云,我们相信没有统一的云安全,所以只能选择一个目前较为典型的例子paas来谈我们对云安全设计的浅显看法,我们将考虑如下几个维度:

a) 资产价值:我们需要了解到该业务核心的价值所在,不同价值的数据会导致不同的安全威胁,譬如对于paas来讲,我们就很不赞成将私服(你懂的),银行等系统运行于paas之上,它不适合你,而且高价值的资产引入将提高云的风险;

b) 安全风险:特定的资产会遭受不同的安全风险,一个涉及国家机密的网站所可能承受的安全风险和一个个人Blog必定是完全不同的,分析我们所可能承受的风险,譬如拒绝服务,用户数据被非法访问,对内部网络的渗透等等;

c) 威胁建模:根据云可能承受的风险以及会造成这些风险的途径,重点在于分析系统的体系结构,安全域以及各安全域的边界,并且建立威胁模型譬如在paas云平台和internet的边界方面需要考虑的包括外网的网络攻击,恶意扫描等,对于用户数据和平台数据边界间应该考虑恶意代码对平台数据,甚至因为paas多用户的特殊性,应该考虑用户数据间边界的威胁;在这之外还要考虑平台对内部数据中心的影响;

d) 安全策略:基于上述的威胁建模,我们可以针对各种威胁进行必要的安全策略以杜绝和弱化风险,譬如要求在paas云边界上部署防火墙,在平台和内部网络之间部署入侵检测及监控系统;对于平台和用户以及用户与用户之间要求做到安全隔离等等;

e) 技术控制:对于策略如何能够具体的落实到执行,是一件较难的事情,同时也是最重要的一部分工作,大多数的企业也最缺少对这块的技术评估,没有足够的技术支撑,安全策略也只是一纸空文;这部分基本应该包括安全基线,访问控制,异常监控

可以看到,我们的安全设计是以数据和风险驱动的安全设计,以新浪云SAE为例,我们可以将涉及的数据按照属性和安全等级分为若干安全区域,各安全区域内实现相应等级的安全控制,区域间的访问行为需要受到严格的监控和审计:

a) 新浪内部数据(位于新浪IDC内部,未授权对新浪内部收据的访问将导致危害)
b) SAE平台数据(平台支撑整个用户数据的安全,安全等级较高)
c) SAE用户数据(可以再细化为用户数据A,用户数据B)

这几个区域的属性完全不同,对于访问需要做不同访问控制,对于内部数据,应该是和平台本身进行完全隔离,这部分可以通过划分独立的网络来进行控制,理论上我们信任内部网络,但是如果平台足够重要我们可以一样将其来自内部的访问和请求进行隔离;对于平台数据和用户之间应该是完全隔离,这部分是基于主机和一些后台服务的,所以可以通过网络和主机上的沙盒进行控制;对于用户之间的数据,因为安全性一样需要隔离,这部分需要在应用层实现一套隔离机制;对于平台和外网之间的隔离,我们需要严格防御譬如拒绝服务ddos以及一些常见的应用漏洞;
这几个部分如果没有做好,就会导致安全问题,我们无论是实现还是评估都是从这几个部分来考虑;


TAG:

 

评分:0

我来说两句

Open Toolbar