首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从根儿上干掉你:固件和物理攻击(上)——攻击技术

来源:知乎;作者:刘巍然-学酥;转自:网信防务

前言

现在这个时代,组装个台式机已经不是个难事了。有点经验的人,打开台式机一看,估计就知道里面哪个部分是干什么用的了。什么显卡啊、声卡啊、网卡啊、CPU啊,一目了然。不过,在服务器中可就不是那么回事了。先来个图,谁能告诉我这都是什么服务器?这都是服务器的什么部分?

估计大家都不太清楚…实际上,左边的图是:

而右边的图是:

画红色圈的地方都是恶意设备。这玩意,非专业人士完全看不出来啊… 对了,就是因为看不出来,这东西才能默默地安装在服务器上,用于窃取用户数据的。有的知友们说了:我们不怕,密码学保护我们!不过,这里面有个很直接也很简单的问题,密码学确实能保护数据隐私,但是解密的时候你怎么也得输入密码吧?解密过程总得在计算机中运行吧?举个简单的例子,很多浏览器都支持“记住密码”功能,不过有谁知道浏览器是怎么记住密码的吗?来看个简单的例子,这是谷歌浏览器对于我网页中密码的存储情况:

好吧…请允许我对图片处理一下,只留个邮箱。好家伙,点击【显示】,密码全都显示出来了啊!

谷歌不是号称厉害吗?这问题都解决不了?谷歌说了:如果你电脑能让外人使用,那这个外人也是可以信任的啊,有什么问题?

那不行,不能这么存!谷歌说了:那好啊,登录了我才存你密码,你密码用登录的密码加密,行不?

但是,用的时候还是要把密码恢复出来才能填写在表单里面。那攻击者乐呵了,只要密码被恢复出来过,那就好办!怎么办呢?我们来总结下视频中列举的方法吧。

1 Boot Integrity Attack

服务器或者计算机启动的时候,我就开始搞你!方法很简单。想必有知友们用过老毛桃等工具吧?系统启动不了的时候,用这个工具就能重装系统,对电脑修复什么的。

不过不知道大家注意过没有,这种工具还有一个功能:重置计算机登录口令。这是怎么做到的呢?很简单。反正你从U盘启动了对吧?U盘启动了,电脑就得听U盘里面操作系统的话了,U盘里面的操作系统可以任意添加、修改、删除硬盘里面的东西,当然也包括操作系统文件喽。只要我把操作系统中存放用户密码的文件重置了,密码也就没了。

不过,这种方法有个小问题,那就是我们得先把主板上的启动模式改成从USB启动。如果我想防止别人用这种方法重置我电脑的登录密码,我把主板BIOS锁定了不就行了?Boot Integrity Attack就是这样一种攻击方法,直接对BIOS进行攻击,从而篡改启动信息,令攻击设备得到系统的完全控制权。令人惊讶的是,这种攻击方法早就被使用了,而且是大名鼎鼎的NSA用的。NSA是哪里?棱镜门都知道吧?棱镜门的发起者就是NSA,美国国家安全局嘛。

NSA的攻击方式可是多种多样。大家可能只知道NSA在RSA公司的产品里面安装后门这回事吧?远不止这么点攻击方法。NSA和很多公司都签订了协议,或者应用了很多技术,攻击某些公司的特定设备,比如:

DeityBounce就是利用这种技术,通过USB设备攻击BIOS,对BIOS进行篡改,从而得到系统的全部访问权限。攻击方法呢?很简单,往服务器插个类似U盘的东西就行了… 我们还会看到,NSA可不仅仅攻击Dell的设备,还有很多其他的公司的设备也遭到了攻击:

当然了,这是2008年就被披露的了,现在这些设备是否安全我就不知道了。不过,大家想一想,公司或者学校上一次更换网络硬件设备是什么时候… 嗯,想想的话,有点后怕啊… 还有一些其他NSA采用的技术,比如攻击硬盘固件的主引导区,从而获取硬件控制权限:

实际上,不光是硬盘、BIOS,几乎所有的固件设备都存在漏洞。比如鼠标和键盘中可能植入记录操作的设备;USB驱动程序可能有漏洞,被植入后门,等等等等。

2 Direct Memory Access Attack

回到上面的问题,密码总是会被恢复的对吗?那密码恢复后总有个存储的位置吧?这个位置就是我们的内存了。黑帽子们了解了这个,开心了。那我弄个设备,把内存中的所有数据都记录下来,然后远程发送给黑帽子,不就行了?

Direct Memory Access Attack就是这样一种攻击方式。在服务器中放置一个设备,这个设备可以随时将内存中的信息读取并记录下来,然后远程发送。NSA也使用了这个技术进行攻击。GINSU就是NSA的攻击方法工程。它是一个带有无线功能的硬件设备。把这个设备插到服务器上,就可以对内存信息直接访问,然后通过无线信道发送给黑帽子。

不仅如此,我们还可以使用硬件接口执行Direct Access Attack。早期iPod的硬件接口就有这样的漏洞。在iPod接口中插入一个设备,扩展出一个PCI接口,就能够通过这个PCI接口读取内存数据了。

3 Physical Memory Extraction

上述两种攻击方法虽然好,但是总得弄个什么硬件设备吧?专业人士一来就能看出来。那么,能不能不插硬件就能读取内存数据呢?当然有!不过这要利用内存的一个特性:易失特性。

什么叫易失特性呢?内存的数据读写速度很快,但是没法长时间保存数据。掉了电了、重置了什么的,都会导致内存数据的丢失。我想所有知友们都有过没有Ctrl+S追悔莫及的经历吧?这就是因为计算机死机时,内存中的工作还没有保存,写入到硬盘中,从而导致了数据丢失。

不过,问题来了:内存真的具有易失特性吗?答案是:不一定。要是搞点什么,内存没准就能保留一会数据了。

Princeton大学的研究者们发现了这么一个特性:电脑运行一段时间后关闭。关闭后立即把内存条拆下来,然后冷却。奇迹出现了… 内存中的数据还是在丢失,但是数据丢失速度大大降低了!实际上,这么一来内存中的数据可以保留1分钟左右的时间。

这方法有用吗?真的有用!演讲者称,他一个法律的同事,就是通过这种方法进行取证,成功率很高哦!

不过,拆内存总不是个好办法… 那干脆,黑帽子说了,我们找个机会,偷偷摸摸把服务器上的内存换了。花个大价钱,弄个不具有易失特性,但是读写速度依然很快的内存(这种内存当然更贵了…)给它换上。这样,内存中的数据不就可以长时间保留了嘛。的确有这种攻击方法。黑帽子们更狠,这个内存不光具有非易失特性,还TMD有个硬盘… 随时随地把内存数据往硬盘里面拷。过个几年,找个机会把这个设备拆回去分析,就能得到数据了。

4 防护方法?

这么多神奇的攻击方法,能防护吗?当然了,魔高一尺道高一丈嘛!不过,我今天得睡了,防护措施,我们下周继续。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190114B16LZ800?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券