毛文波博士:通过VMM使系统更安全可信

来源:IT168 作者:IT168
    毛文波:非常感谢大家,感谢陆教授给我这个机会,今天跟行业,业界顶尖高手有这个交流的机会,我非常重视这个机会,也感谢大家留到最后听我做报告。

  可以看到这个题目有点不一样,陆教授建议我用更加技术的题目,所以我还是把技术的题目放在底下了。我先介绍一下EMC中国实验室在开源方面做的一些工作,做了哪些工作,我们得益于有这样的工作,我们收获了哪些益处,然后我再介绍一下陆教授建议我着重介绍的,作为一个例子,就是用VMM来解决进程隔离的问题。


  在这个项目里面我着重介绍我们和中国的大学做了许多的合作。首先讲一下我们为什么要做开源的工作,今天很多高手的演讲题目里面都讲到这个问题,EMC是一家公司,公司最重要的内容就是获取利益,我现在分几个方面说一下,也就是说在这方面哪怕EMC作为一个商业的公司,有那么一个根本获利的前提之下,我们仍然认为我们可以把事情做得更好,我们可以用一种“君子爱财取之有道”的方法,可以用好的方法。

  我们认为开源首先是知识共享的有效的方式。因为开源很多人可以一起工作,工作的时候知识产生了更多的知识,那么开源是最有效的方式。具体来说我们和大学做很多合作,大学很愿意,他们认为这个东西是很有意义的,对他们的研究,对于他们发表论文方面有意义,所以开源在这方面有优点。那么开源有意很多问题是会考虑到这是一个标准化的问题。行业里面发展的过程避免不了标准的过程,整个目前我们所知道成功的标准,行业的标准,都是行业里面先做出来,然后获得了很多用户,然后这个东西就变成了标准,或者叫事实标准,那么开源在做标准化方面有很重要的一个贡献。因为它共享它的知识,用最好的方法,用工程师最喜爱的方法来共享这个知识。就是源代码。

  好,我们和大学合作的时候做了很多很有意义的一些事情,我在下一个幻灯片里面会跟大家具体的介绍。这就是我们想说的从开源回到开源,我们希望我们的工作在我们做到比较圆满的情况下,今后还要进入比如说在一个比较理想的情况下,进入Linux下一个版本。那么最后一条我想说一下我们的开源工作实际上是我们的一个战略的考虑,我们管它叫研究2.0。这个研究2.0呢实际上是受到了WEB2.0的启发,我现在用一句Linux命令,叫CH MORDSevenSeven,我不用介绍这句命令的意思,但是开源大家都来参与,大家都来可以读,写,执行,大家一起来做,而1.0呢就是一个我来说,我是权威,我说你们听,一句都不要参与。我们现在用这个模型把这个,实际上WEB2.0,就可以想象WIKI是什么样的情况,大家来参与大家来修改,我们想把这个模型变成研究方面的。

  下面简单的列举一下我们做了哪些工作,虽然我们起步比较晚,EMC研发方面,软件方面来到中国实际上是最近的事情,2006年才开始的,2006年以前在软件开发在中国是0,所以我们采取走大学合作的道路,我们的EMC中国实验室是2007年5月成立的,我们和大学合作做了一些比较有意义的工作,我今天所要介绍的是用一个开源的VMM来实现进程隔离,我们在可信计算方面做了一些工作,最早的可信计算一个Driver,这个是IBM做的开源的TPM,就是可信模块,可信平台模块的TPM的驱动程序。

  我们还有像OS的一个模块,里面有加强可信的一个模块,这是德国的一个大学做的东西,我们和武汉大学进行合作。我说一下大学合作的情况,今天主要介绍一下和复旦大学做的合作,还有TPM的Driver我们和武汉大学做的合作,我们还和华中大学做合作,还有文件搜索,刚才Google的专家介绍了,我们在文本管理方面和人民大学进行做,刚才我提到了Web2.0,我们认为WIKI是WEB2.0的反映,我们自己认为过去一些产品,EMC的文档方面过去是1.0的版本,我们想把2.0的东西融合进来,在这方面我们和复旦大学有很好的合作,这是简单列举一下,目前在开源项目方面和大学的合作。

  下面我介绍技术的范例,我们用进程隔离来实现。进程隔离有一定强制性的问题,进程隔离是在一个平台上,一般在一个OS平台上,这个OS尤其是我用商用 OS,我认为Linux也是一个商用OS,在这个上面都是多进程的,那么过去呢为了OS做为一个资源管理的一个程序,它过去的情况是要多用户使用一个硬件平台,所以造成了很多进程,用了分时共享的方法,那么为了追求效益,它把进程之间的隔离做得比较差,一会儿我会介绍为什么做得比较差,造成进程之间可以读你的东西,如果我有点优先权更容易做这件事,大家知道有很多攻击的手段,都是因为进程隔离做得比较差造成的结果。那么这个可以看到,我又提到了如果是对于一个权限比较高的用户,比如说系统管理员,怎么管住他,这个管住的方法也有一个行业的标准。它是用一个硬件,如果现在买一个Server,如果上面没有一个可信平台模块,TPM,没有这么一个硬件的话,您很有可能没有买到好机器,现在根据IDC的好几年前的推测,实际上应该在2007年的时候超过50%的平台都已经有了,Server都已经出来了。它就是一个很的硬件模块,装在主板上,它有一些密码程序在里面,它里面有技术产生器等等,还有计算器,目的就是把平台上面的软件环境给记录下来,它本身又是具有一定的所谓的抗物理攻击的一些性能,一般来说要设法打开它,一般来说就破坏掉,它不会为你服务了,那么在这种情况下,里面可以做一些事情。使得系统管理员想要有很好的优先权,比如说他想读你的内存内容,你作为Guest,比如说语音计算,或者在多注册的计算环境下,怎么样是不是很担心Server把我的内容给跨过去,或者Server会担心破坏其他的进程的完整性。这个时候呢实际上就需要有一个硬件模块来解决这个问题。OK,这是一个行业标准。

  它除了硬件模块以外,还有TSS,一整套的软件系统。TCG的故事讲的是比较完美的,这个是装在系统上,作为一个外设,它的意思就是通过这个总线,从最早的开始,一直到OS,一直到理想情况,都得到一(哈西),得到一个然后再(哈西)一下,存在里面的目的就是我想把我的问题放到Server运算的时候,我对这个环境很感兴趣,我想问一下这个环境到底怎么样,这个TPM就可以回答我的问题,我送一个随机数,这里面有数字签名,把这个环境说一下,比如说这个是OS,哪个OS,我想说的是,PC机说的是一般的OS,我认为一般的OS不能解决这个问题,一般的OS设计得比较差,我们想OS下面有一个静态的模块,我们把这个VMM度量一下,然后我就问一下你是不是有我需要的VMM,如果有的话我可以放心的把我的东西放过去运行,这是PC机的想法和思路是这样的。那么由于TPM是抗物理攻击性的,所以想要让系统欺骗远程用户的询问是比较难的一件事儿。

  那么现在呢很容易的软件攻击的方法,在网络上多得是,这是很容易的,所以我们就想把软件的一些攻击的手段用TPM保护起来。当然我们用虚拟化的手段,这一张图可以很清楚的看到,我们在底下有一个硬件,在上面可以开许多不同的VMM,这些有的是Guest的等等,这些都是被TCB保护起来的。由于TPM有度量的功能,它把这个VMM,就是我们修改过的把它给度量一下然后存起来,再往上呢,OS我们一般就不再度量了,这个开源的工作我们是在Linux上做的。我们不相信Linux是可信的,但是我们不担心,在上面我们有用户需要处理的东西,递交给Server运行,但是用户不希望Server看到所有的东西,这样我们就把它保护起来,保护的方法我一会儿介绍。

  这个VMM我们用它的功能,它的优先权很高,它又是静态的,所以它可以度量下来,经过度量以后可以说,我们在讨论公开源代码的情况,这是一个玻璃的盒子,是一个透明的,可以把错误找出来,而度量呢,实际上形成了一个钢化的盒子,如果不把它度量,不把它分化,如果没有这样做的话,很多人很担心,我们把度量完了以后呢,改过的东西是不会通过我们刚才所说的报告,我希望你那边的是一个什么版本,是不是我同意的版本,里面有可能有漏洞,但是别人不能去修改它,这里面还有一个假定的前提,整个这个过程目前不一定是完全完美的,但是我们朝这个思路走,如果这个里面比较小的一个OS,如果它没有漏洞的话,那么这个里面应该是工作的。但是虽然说它比Linux要小得多,但是还很是复杂的一个东西。不管怎么样度量完了以后,这个时候可以通过报告的方法,把它这个结果拿过来,如果想要这个VMM,一个黑客想要让VMM为黑客服务的话,这个黑客最好的办法应该去攻击这块硬件。那是最容易的,或者它要设法找到(哈西)的碰撞,这是很难的。OK在这个前提下,我们就管这个VMM高度MMVMM,我们想要用它做什么事情呢?
  
  我们现在回到商用的OS,内存管理器是怎么做的,商用OS内存管理,它有一个逻辑页面和物理内存的Local map,这个map不会这么简单,但是原理是这样的,这个MAP在过去发展过程中呢,为所有的服务,比如说大家写东西的时候经常就自动存储了,这就是避免突然断电的时候,写过的程序还存在,这就是管理内存镜像的时候,用的地址是共享的。就是那片蓝的那片,它和物理完全无关的,而绿色的那是User逻辑内存。由于这个原因有各种各样的攻击手段来从一个进程跑到另一个进程。下一个进程以后这个Conal又可以下去,冒充另外一个来攻击,如果不去攻击就没有事,如果去攻击就有许多办法,如果有开源的攻击程序,如果大家想要下载的话,可以找到攻击程序,也可以看,可以在Linux上,比如说可以看别人的内存。别人存到磁盘上的东西都可以时时的读出来,这些攻击程序都存在的,是因为过去设计的共享资源方面和管理方面有问题。那么我们现在采取什么办法呢?

  我们说OS没有办法处理,OS太复杂了,OS本身是动态的,OS本身可以修改自己,比如说OS有错误的时候,就把OS改掉了,所以度量OS是没有意义的那么我们就想搞VMM,搞VMM的时候,原来的OS仍然想使用,OS不是有这个问题吗,有一个方法,这个VM M优先权很高,这个进程会发生中断,这样会被VMM截获,实际上是把User map存在地址里面,这是一个专用的地址。VMM可以这样管理的。它抹掉以后呢,用这个办法,比如说我们又回到原来的,我有一个攻击程序,它经过一个程序,Conal为他服务的时候,它进入了Conal,这为下一步为Bob服务的时候,Conal想攻击的时候,Bob地址不存在了,找不到了,以这样的办法来实现了进程隔离。这个进程隔离的方法是没有修改OS的。只是把在VMM截获了以后进行了一些处理,这是一个比较简单的方法。但是我还没有回答一个问题,比如说在Conal的时候,实际上这个User的地址找不到了,通常的情况下是成立的,但是有些情况下,正在做文档的时候,找不到的话就没有办法存储,所以对于这样的情况下我们就把它截获下来以后,把User内容进行加密。所以这件事是从效益上考虑,我们完全可以用加密的方法,但是我们不用,如果 Conal不需要知道User内存地址的时候,我们就把地址内存给拦断就可以了。这样我们也有一个很好的效益。所以这个图片是在Conal必须要知道 User地址内容的时候,我们就用加密的办法。

  这是大概的一些技术细节,当然这是很高层的说法,下面就是简单说一个应用。我们叫做可信网格基础设施的应用。网格的意思就是应该把你的任务提交出去,让基于服务的一些有大量资源的服务商为您提供,这中间就需要一些中间商为您做Server loval这就是一个典型的环境。也就是用户租用资源,他并不享有资源,他把任务提交给资源,这个时候呢进程隔离就是非常重要的一件事,也就是用户需要知道你那些服务提供商,它是不是具有这个内存进程的隔离,反过来提供商也想知道用户会不会过来攻击我,如果我能把我的服务对象都做好了进程隔离,就像刚才那个图上一样,有进程隔离特性的,这样的话我就知道您也许可能会来破坏,但是我的其他的进程是破坏不了的。这是一个我相信在今后用网格说明这个问题,实际上这个进一步发展,像语音计算,比如说现在大家提很多次的,让你自己组建一个计算环境,他们在一年的某一个时间有许许多多的任务做,尤其是到了圣诞节附近,他们要处理,但是过了这个时期很多就空下来了,这样他们想不就浪费了嘛,所以他们就想了一个用语音计算方法把这个租出去,我认为如果想要做高端的服务,有安全机制的,双向的安全机制,用户担心你来攻击我,或者你来看我的数据,而反过来Server又担心用户攻击我,这种情况下是比较高端的服务,我认为这样的话这些工作应该是需要的,当然我们做得还是很初步的,今天跟大家共享一下。这个项目名字叫“道理”我刚才说到了,这些东西是我们得益于开源,我们用了设计,我们用了许多开源的东西,我们希望今后应该回馈给开源,但是目前我们做的工作还是很有限的。

  目前还是主要在一些概念上面做工作,我相信我们会完善,尤其是跟大家交流了以后,大家可以检查一下我们做得对不对,大家可以交流,我们再一起把它做好,做好以后我希望在今后会有一个反馈。这样可以让远程的使用者知道,到这儿来使用是放心的。

  那么这些过程当中呢,我们在项目里面有这些大学参加,我们做了很多有意义的工作,时间关系我不一一列举了,我简单的说一下,有复旦大学,武汉大学,清华大学,华东师范大学,我今天就介绍到这里,谢谢大家。

  提问者:你们怎么做的?

  毛文波:这个TPM里面有(哈西)函数,它作为一个外设,我刚才说了它的功能是在偷听任何一个UP loading的过程。

  提问者:这个Base是可信的。

  毛文波:是的。

  提问者:还有一个问题,负责这个一旦被攻击成功了以后,我们怎么样能够知道第二次读的(哈西)是可信的?

  毛文波:这个问题非常好,我刚才说到了目前的东西很有可能不一定很完美,就是它有可能是被攻击,有可能它是开源的,如果这个设计被攻击了,这个攻击有两种,如果一个黑客找到里面有一个漏洞,这个漏洞不需要他做修改,开源里面有两种攻击法,一种是主动攻击,我找出一个方法修改你的东西,然后把它发布出去了,别人不知道,这个时候是相当恶意的攻击,还有一种是被动攻击。这件事对于被动攻击由于(哈西)没有变,所以应该它能够成功的,主动攻击它不应该成功,它除非把(哈西)结果把原先的设计能够碰撞上,这是很难的。

  提问者:如果改的内容攻击成功了,既然可以改了VMM的,就可以改OS,可以改Guest,那么从某个Guest上过来访问要值,这时候可能没有访问到要值,拿到一个假的回来。

  毛文波:这个TPM去Load的时候,把这个设计给度量了以后,存在TPM里面,当用户使用服务的时候,会对我进行询问,他问我你上面是VMM123,设计 123,是不是存在TPM里面了,这个回答是TPM回答的,TPM必须要签名,你发一个很大的数给我,你知道我的TPM的公要,你必须要回答询问,我自己再把我所希望要的那个设计123我也验证一下,验证通过我就确信,这个系统,因为这是硬件装在里面的,我就确信这个服务器在底下运行的设计123。我不知道回答您的问题没有。谢谢。

  主持人:非常感谢毛博士,今天下午的报告到此结束了。 

(责任编辑:A6)


时间:2008-02-21 13:37 来源:IT168 作者:IT168 原文链接

好文,顶一下
(0)
0%
文章真差,踩一下
(0)
0%
------分隔线----------------------------


把开源带在你的身边-精美linux小纪念品
无觅相关文章插件,快速提升流量