您位于: 首页 OWASP峰会 OWASP2010中国峰会 Professor Yu:云计算及应用安全

Professor Yu:云计算及应用安全

 

美国 NC State 大学副教授 Professor Yu

 

演讲实录:

于教授:我是美国NC State大学的副教授,在云计算的应用和管理,信用系统孩子安全政策方面的工作。题目写的比较大,我讲一个比较具体的问题。

 

现在大家都在谈云计算,什么叫云计算呢,其实有很多不同的解释,大家的解释都不一样,我从UT上讲,它是基于互联网的一种计算模型,计算方式, 大家通过分享资源,而且当前需要资源的时候,要采用这个资源。云计算的两种方式,一个是云提供基本计算的环境,基本计算的资源,比如说像里面给你提供多少 的CPU,多大的硬盘,多少网络的能力,我就给你建造这样一个计算的环境,而另外一种形式呢,是能提供更复杂的高端的服务,不再是一个简单的计算机的概念 了,它可以提供不同的名字来,可以提供某一个具体的功能,尤其是不同的服务,你可以把这些服务组合起来变成自己的服务,你可以很快地建立自己的服务,而不 需要从头做这个。

 

比如这个例子数据的数理方面的服务,或者说数据管理方面的服务,或者监控各种各样的服务,我们今天看这样情况下的安全问题。当前的云计算经常使 用的是所谓的多客户的云计算环境,我是一个服务者,我不止服务一个人,可以同时服务好多人。在一台机器上我可以同时给甲和乙服务。在一个系统里面有不同的 Systems,在虚拟机上我可以有不同的服务,每一个虚拟机上我都可以看成一个服务点。比如在T3上,我有两个虚拟机。我可以在P3上,我可以提供F1 和F2两个不同的服务。SO的模型是这样,用户首先提供需求我需要这些服务,把他们组合起来然后变成我自己的服务,然后他们通过一个门户服务器,提交他的 需求。门户服务器它和其它的服务企进行联系,哪些服务做这些服务,根据这个组成一个流,S1进行数据处理之后再给S2,最后结果返回之后再给用户,这样用 户可以在很短的时间内组成一个更复杂的服务。

 

你可以选择S1和S2提供服务,S1比较贵,S2比较便宜,我可以根据自己的需求组成一个服务流,给我们很强大的功能,而且很有效地组成一个服 务,而且价格也很低,所以说,现在有很多公司开始做这个系统,而且很多应用,比如说用 Datafdow processing.所以说,在这个数据流处理这种应用里,基本的流程,从用户来说,每次就给门户提供一些处理,最后把结果返回用户的手中。

 

一个问题就是说,当然这个系统有好处,有很多安全方面的问题。今天上午演讲者跟我们说了,大家说了云计算是安全的恶梦,既然公司上了,有云计 算,我们怎么解决这个问题,确实云计算有很多不同的问题,首先一点,通讯方面的,你现在经过的是Internet方面的数据不会改变。另外,你在公司甲和 公司乙的程序,你怎么保证这两个程序不互相干扰,或者甲通过云计算偷乙公司的数据,这是一个问题,比如我的数据给第三方了,我能不能信任第三方,我这个数 据重要,我是不是还能给第三方,我们工作的是服务完整性的问题,服务完整性就是说,我把这个数据给了S1了,他说你要进行这些处理,那么我怎么知道你是真 正进行了这些数据,比如你进行数据挖掘,我怎么知道你做的就是相关性的东西。

 

在这个例子里面,在S4这个机器上,本来你是提供服务F2,我没有用F2了,用F0了,我怎么知道这个结果,这个问题更复杂,在云里面,这个坏的人并不只是他自己,很少在攻击中是一个人,不是你一个人在战斗,有很多同盟在里面,进行合作对你数据服务的完整性进行攻击。

 

当然云可以看作是很大规模的分布置的计算环境,在以前的工作研究怎么在分布式系统中提高他的安全性,我们现在看了一些其它的以前的工作,但是呢,他们都不是提供一个很有延展性的,很好的方法能研究这个问题,我基于时间问题就不做具体的介绍了。

 

最近呢,也有一些工作说我们要保证数据的服务的完整性,但是经常他们关键的问题就是说,我有一个软件到第三方的环境,我怎么保证他们不被第三方 修改,提供的这些解决方法,我或者在第三方有一个可信任的硬件,可信任的芯片或者是可信任的软件,他们可以一直查第三方系统的状态,如果这个状态不对的, 可以报的。这个假定是比较强烈的一个假定,在刚才的环境中,第三方的搜索中,你不能装一个硬件或者芯片在系统中,你不能可能把第三方的软件告诉给他。所以 我们提供的基本的思路就是在云计算里面,同一个服务你可能有很多不同的服务厂家给你提供这个服务,我们就可以用这种自然的来进行厂商之间互相的判定,如果 我这个数据给A和B进行处理,如果他们都是好,都是对的,那结果就是一样的,如果他们俩都不是好的,那结果就不是一样的,根据他们之间结果不同的分析,我 们可以做更多的分析,可以分析哪些人是好的,哪些人是坏的,这是我们的一个基本假定,我们这个服务的提供者有可能是恶意的,但是我们那个假定用户本身还有 门户网站是可以信任的,然后我们还有一些中药企业已经被应用在系统中了。我们还有假定就是说,好的提供者总的数量比坏的多,如果一个云里面大部分都是坏 的,这个云就没办法用了。

 

基本的想法就是说,我们进行随机的数据认证,有些时候同一个数据同时给两个人或者给三个人,然后用这个结果来谈定这些服务者之间的关系,一个数 据把单位同时建立两个数据流的服务,一个是S1、S2到C,另一个从S2到C,两个结果应该是一样。那我就可以在这两个人之间画一个图,这两个人是一致 的。另外我做了一次数据认证,我走另外两条路,他们的结果是不一样的,经过分析,我们可能说,现在这个S1和S3之间他们俩不一致的,他们两个之间肯定有 一个是有问题的,经过大量的随即的认证,我们就可以构建这样一个图,这个图之间包括哪两个人之间总是一致的,而哪两个人很多时间是不一致的。S1和S3之 间30%的时候他们是不一样的,S4和S6之间60%是不一样的。

 

我们讲攻击者或者恶意的提供者他不会用简单的策略来提供数据。他可能错误的数据提供两次,我的数据错误的时候需要我的朋友一块儿跟我提供错的数 据,加强上面我们对云的影响,所以我们必须要有一个模型来建造模型来表达恶意攻击者的特点,两个参数,一个参数就是说,在给定一个数据,这个共聚者他有多 大概率去提供错的信息,同时在他提供错的信息之后,其它的同盟者会帮助他。根据这个模型呢,找到了一些攻击的模式,比如说第一种每个人都自己决定给错的信 息还是不给错的信息。第二,有的人不是提供错误的信息,在提供错误的信息的自己,他的朋友都帮助他,根据不同的例子我们可以找到这些图是什么样,对于好的 服务提供者,他们肯定是组成了一个团,因为他们之间总是一致的。根据这个的话,我就可以找到一个团,如果是最大的团,这里的联系服务者都是正确的,都是好 的,因为他们没有很任何人发生过冲突,但是小的团不一定是好的,因为这些攻击者他们一起合作。

 

所以我们说有一些命题根据这个图,我们可以找到一些团,找到这个团之后根据这个团的大小我们可以判定这些东西和点是好的还是坏的,就不谈具体的算法的问题了。

 

我们这个系统,我们把这个在IBM 云计算的数据平台里面实现了,这里面的话,显然有一个渠道,如果你有很多的数据用来做随机的数据测试的话,保证更高的Detection Rate,因为你的很多数据重复发很多边,所以在你选择的时候,注意参数的选择来达到一个更好的平衡。

 

然后我们还把这个想法用到一个 Map Reduce,这是google提供的一个阶段,把这些任务分到不同的节点上进行计算,再把这些发到另外的地方把这个结果返回出来。在很多的搜索引擎里, 对这个进行大量的数据分析,在有一天的话,我这个小公司需要做大量的数据分析的时候,我需要把我的工作放在研究上去。我可以找很多的服务器作为Map Reduce进行数据分析,把它进行了一些更新,加入了我上面讲的想法这个方法,来更好地提供数据的服务完整性。

 

我们证明我们这个系统,我们这个实现可以完成Reduce,你给了坏的数据,我们找到你,你不能说不是你给的数据。它是比较简单的,没有特别复 杂的密码学,它可以抵抗。另外重要一点,我们的Performance,加了一些新的数据,你很容易可以和现在的实现结合现在。这是我们在实现里面加的一 个新的数据在里面。

 

我们想说的就是在云计算里面,大家不应该除了关注数据的隐私,而且要注重怎么提供服务的完整性的问题,希望更好地保证,把它作为一个基本的服务方式来保证云计算服务的安全,谢谢大家。