>>返回主页
清华大学教授/微电子学研究所所长助理 刘雷波:处理器动态安全监控技术和应用

2018-10-17 16:00

刘雷波.jpg

   刘雷波:下面我介绍一下刚才山总提到的处理器动态安全监控技术和一些细节的东西。

  什么叫动态安全,我们有一个出发点和传统的技术有很大的区别,硬件里的问题很多时候是运行中出现的,比如有可能是由你不断变化的数据触发的。一定是在处理器运行过程当中,对它里面潜在的问题进行检查和处理。先讲讲出发点,大家知道微电子技术发展到现在,现在可以在单个芯片上集成200亿到300亿颗粒晶体管,现在可以做到7nm,在这么多亿颗晶体管当中,我们如果要植入一个硬件木马或者恶意硬件,大致需要消耗几颗到几十颗晶体管就可以了。在几百亿颗晶体管当中我们找出可能存在问题的,这个无异于大海捞针。

  看一下芯片的设计生产过程,从设计开始要用很多IP,要用标准单元库,设计以后做生产,生产以后可能还要做封装,所有这些流程全部走完,实际上有成上千甚至上万家企业,遍布在世界各地来一块参与这个芯片从概念到产品的过程。这个过程当中不可能通过重点检查其中几个单位几个部分来发现里面可能存在的问题,整个过程非常难以处理、难以监管。另外一个,比如处理器当中本身就存在大量的前门,比如微码,出现问题修复掉,进行调试,这个功能还可以引入一些特定功能在里面,更何况咱们今年1月份出现的这个漏洞,本身是个技术原理的问题,我们为了获得性能的提高,当时还不知道,现在知道我们牺牲了安全,更何况存在设计水平有限,相关的设计人员设计时也没那么注意,也可能带来安全问题。从学校来看,一个复杂的芯片,有这么多颗晶体管,整个过程这么复杂,里面可能有恶意硬件,可能有后门,可能有前门被利用,这种情况下我们怎么解决这个芯片的安全问题。信息安全这个词大致在十年前学术界刚刚出现,这个问题长期以来没有引起重视,大家一谈安全就是系统安全、网络安全,但实际上整个安全都是在芯片之上,我们怎么保住它的安全。

  方案,不论它是什么样的处理器,把它的运行能够输入和输出,能够被我先拿到,我拿到以后,所有的访问memoryI/O,数据我都可以拿到,拿到以后我可以在里面做相应的分析和操作,同时可以看到处理器里执行的指令以及相应的memory的一些值,无论里面有多少晶体管,里面有没有不符合预期的行为,如果这个之后出现了其他的额外的没有设定的操作,一定存在这样那样的问题,有可能就是我们需要找到的问题。整个过程分成几个不同的技术,一个是把数据流抓到,数据的速率非常快,需要精准跟踪、实时解析。第二,把数据拿到后,RCP在这个里面要做相应的处理,用它来判断这个CPU运行是不是符合我们预期。第三,如果发现问题,根据用户的需要进行管控,正常的方法是我可以在哪一段时间把数据尽量多收集一些。一方面跟我们的指令手册对比,另外一方面,可以跟它的指令解析和软件的方式结合起来,这样就可以把里面可能出现的带来的危害攻击找到。这是我们做的RCP芯片,一方面和外设通过PCIe连接起来,另外一方面和memory实现高速连接。BIOS,从安全启动开始,整个过程都得在RCP下,所有的BIOS软件都要经过RCP检查。

  为什么叫动态可重构,这是一个非常新的技术,整个运行当中,功能在动态改变,换句话说,没有指令的东西去检查有指令的东西,本身它自己被恶意硬件、硬件木马攻击的概率大幅下降。看一下这个例子,由于本身检查的这块芯片存在部分动态重构它的功能,它本身遭到攻击的概率大幅下降,下面用一个示意图来说明这个问题,大致上是这个位置,当我可以动态变化的时候,我遭到别人攻击的概率大幅下降,采用这样的方式,把我自身的安全性提高,基于此才检查其他的操作。这是检测幽灵v1攻击的例子,比如左上角,当预测的时候究竟执行什么操作,这个操作是要被取消掉的,因为它是个非法操作,但是我们通过硬件检测的方式可以知道这个操作确实发生了。第一,是动态的抓住,在芯片运行当中抓住,第二,这是我们通过第三方的硬件来找到里面的问题,这和目前市面上所有商业的手段是不一样的。为什么现在我们的方法很难解决问题,比如有熔断,像微软的方法是KPTI,他这种方法是可以做,把熔断的问题解决了,但是性能下降。如果有更复杂的I/O操作,性能下降会到50%左右。软件是信息量不够,硬件当然可以解决,基于处理器这几年的发展技术,比如cache技术,以及相应的乱序执行技术,你如果不用这些技术,要解决这些问题,不用这些技术,一旦你用,性能会下降很多。这是对付漏洞的机制,也可以扩展到对应相应的恶意硬件,这三部分,检测、分析预警、抵御,分析预警是传统软件方法,这个不讲了。在检测上,引入硬件数据,比如cache访问、外存访问,这些数据访问后就可以大大缩小软件定位攻击代码的范围。这是传统的方式,如果仅仅用软件,可以看看它究竟有没有数据被反复读,还有PF Error,以及分支预测、cache命中带来的PMC变化,这些变化里真的有可能是恶意攻击发生了,但是信息量远远不够。这时候再引入硬件这边Flush Cache的行为发生以及芯片访存的行为。利用这个技术,澜起做了津逮芯片,重新设计BIOS、虚拟机以及一系列软件。这个平台当中最关键的技术是动态安全检查,我们经常有一个想法,能不能出厂之前查一遍,合格了盖一个章,基本上没有道理,所有这些恶意行为的操作、攻击的发生,实际上是运行里才会出现。这种情况90%以上的问题都是这类问题,我们该怎么处理。安全启动,这是把BIOS重新设计以后,可以通过RCP对立面的数据是否经过签名来进行验证,另外微码更新,这里面会不会存在问题。还有ME安全管控、加解密引擎,用RCP来进行密文的处理,以及熔断幽灵等防范,这些东西都在我们方案中进行了比较完整的考虑。

  最后总结一下,针对硬件安全问题,经常我们会把硬件安全问题、软件问题和系统、网络问题混到一起,这类问题我们进行了深入的考虑,这里有相应的技术提出来,硬件当我们在拿到之前、拿到之后没法判断是否有问题的时候,在运行过程当中一旦有问题我们就可以进行相应的处理,通过这样的方式来提高我们的硬件安全,再基于这个硬件安全可以提高整个软件安全和信息安全。谢谢大家!

  

0