当前位置: 首页 > 科技观察

美国国家安全局硬盘固件黑客技术曝光

时间:2023-03-19 15:42:46 科技观察

最近发现的间谍网络“方程组”最令人震惊的部分是其神秘的模块,可以用恶意代码重新编程硬盘固件。揭露此事的卡巴斯基研究人员表示,颠覆计算机胃肠道——硬盘固件——的能力“闻所未闻”。这个黑客工具被认为是美国国家安全局(NSA)的杰作。它通过重写硬盘驱动器的固件来获得对计算机系统的上帝般的控制。即使是软件更新也无法阻止它长期潜伏。该模块名为“nls_933w.dll”,曾用于卡巴斯基发现的间谍平台“EquationDrug”和“GrayFish”,是发现的第一个此类模块。它还具有另一个功能:在硬盘驱动器上创建隐藏的存储空间,供攻击者在一定时间后检索被盗数据。此功能允许像EquationTeam这样的间谍通过将所需文档存储在不会加密的存储中来规避硬盘驱动器加密。到目前为止,卡巴斯基已经确定了500名方程组受害者,但只有五名在他们的系统上留下了固件重写模块。重写模块似乎只能在具有特殊监控价值的关键系统上存活。卡巴斯基全球研究分析团队负责人KostinLayo认为,这些是未连接到互联网并受到硬盘加密保护的高价值计算机。关于固件改写模块,目前的理解是这样的:工作原理硬盘上有一个控制器,基本上相当于一个微型计算机,包括一个存储芯片或flashROM(只读存储器)来存放驱动程序。硬盘驱动器的固件代码。当计算机感染方程式毒药或角鲨代码时,将固件改写模块植入系统,与主控服务器连接获取恶意代码,写入固件替换原有固件代码。研究人员发现了两个版本的重写模块:一个是2010年编译的,用于方程式毒药;另一个在2013年编译并用于Dogfish。木马化的固件允许攻击者潜伏在系统中,即使软件更新不影响它。即使受害人怀疑自己的电脑被感染,想要擦除旧操作系统,安装新操作系统来清除恶意代码,恶意固件代码模块仍然可以不受影响地留在系统中。它可以重新连接到主控服务器,并安装其他已从系统中移除的恶意组件。即使厂商自己发布固件更新,恶意固件代码也可能仍然存在。由于某些固件更新仅替换固件的某些部分,这意味着承载恶意代码的部分很可能不会被更新覆盖。受害者唯一的解决办法是扔掉受感染的硬盘,换上新的。这种攻击之所以有效,是因为固件在设计时并未考虑到安全性。硬盘制造商不会像软件制造商为软件添加签名一样,对安装在硬盘中的固件进行加密签名。自然地,没有内置验证机制来验证签名固件。这也为其他人修改固件留下了可能性。固件也是隐藏恶意软件的最佳场所,因为防病毒扫描根本不会检查它。用户也没有很好的方式来读取固件并手动检查是否被篡改。固件改写模块可以对IBM、希捷、西部数据、东芝等十余家厂商的硬盘固件进行改写。“你知道拿到硬盘固件有多难吗?你需要了解很多细节,CPU、固件架构,以及它们是如何工作的,”Rayu说。卡巴斯基研究员称其为“一项令人震惊的技术成就,充分展示了‘方程组’的能力。”一旦固件被木马化版本替换,重写的模块就会创建与系统中其他恶意模块(API)通信的API,并访问硬盘驱动器上攻击者想要隐藏被盗数据的隐藏扇区。他们将这些数据放在硬盘驱动器上所谓的“服务区”中,这是驱动器为自身内部操作存储数据的地方。#p#隐藏存储区在本次固件木马事件曝光期间,攻击者可以利用隐藏扇区存储数据这一特性并没有太多解释,但它是固件入侵的重要一环。同时,也引发了攻击者究竟是如何做到这一点的一系列疑问。由于没有写入被感染系统的实际固件木马代码副本,因此此次攻击仍有许多谜团,但我们仍然可以做出一些推测。加载固件的ROM芯片中有少量内存空间未被使用。如果ROM芯片的容量是2M字节,那么固件可能只占用其中的1.5M,留下0.5M的空间给攻击者隐藏他们想要窃取的数据。如果目标主机打开了磁盘加密,这个空间就非常有用。由于EquationPoison和Dogfish恶意软件都在Windows系统上运行,它们可以在文件被加密之前获取文件副本,并将它们存储在这个未加密的隐藏空间中。然而,芯片上并没有太多的数据和文件空间,攻击者只能挑选一些价值相当的东西来逃避加密。“鉴于Dogfish恶意软件在系统启动时启动并运行,他们还能够捕获加密密钥并将其存储在这个隐藏的存储区域中。”然后当局可以访问计算机,可能通过边境封锁或可能通过美国国家安全局所谓的“海关机会”,然后从隐藏的存储区域提取捕获的密钥以解锁硬盘驱动器。Rayo认为这种策略仅限于无法访问互联网且具有加密硬盘驱动器的机器。他们发现的五台受感染机器中的一台没有互联网连接,用于特殊的安全通信。“固件木马的所有者只有在没有其他办法的特殊情况下才会使用它。想想奥萨马·本·拉登,他住在与外界隔绝的沙漠中,没有互联网或电子足迹。如果你想登录从他的电脑中获取信息,你能做些什么呢?你只能把文件放在一个隐藏的存储区,等一两年后再回来窃取。这种方法获得的好处是明确和具体的。”不过,Rayu也相信攻击者的脑海中应该有更大的蓝图。到时候,如果他们能够物理接触到被感染的系统,就可以脱离隐藏区域。“拿到所有的明文文件。”如果能把操作系统的整个目录复制到一个隐藏扇区备份,就不需要密钥了。但是固件所在的闪存芯片对于大量数据来说太小了。因此,攻击者需要更大的隐藏存储空间。幸运的是,还有空间。硬盘的服务区有很大的扇区,可以被强行征用以存储大量的文件缓存,甚至是从计算机其他部分删除的文件副本。这个服务区也叫保留区或系统区,用来存放固件等硬盘运行所需的数据,但其中很大一部分是空闲空间。以色列Restore公司的数据恢复专家ArielBerkman在2013年2月发表了一篇有趣的文章,指出:“这些区域不仅不会被常规工具清理,杀毒软件和计算机取证工具也无法访问。”伯克曼指出,一块西部数据硬盘有141MB预留给服务区,但只有12MB??被使用,剩下的空间可以作为隐藏存储。如果要在服务区写入数据,就必须知道具体的指令,每个厂商都没有公开,所以攻击者首先要搞清楚这些指令是什么。一旦他们弄明白了,“通过将供应商特定命令(VSC)直接发送到驱动器,攻击者可以操纵这些服务区域来读取和写入否则无法访问的数据”。编写一个程序自动将文件复制到这个区域也是可行的,尽管这个任务有点微不足道。伯克曼自己写了一个概念验证程序,可以将一个94MB的文件读写到服务区,但这个程序有点不稳定,可能会导致数据丢失或硬盘崩溃。但是,这种隐藏大量数据的方式存在一个问题:仅通过检查服务区的已用空间就可以发现隐藏数据的存在。如果该扇区应该有129MB的可用空间,但只剩下80MB,这意味着那里有不应该存在的东西。然而,一份写于2006年但直到上个月才公布的泄露的NSA文件表明该机构可能已经解决了这个问题。美国国家安全局实习生的解决方案文件基本上是美国国家安全局为其所谓的“延续部门”开发未来间谍能力的愿望清单。“延续部”中有一个攻击小组,利用重写固件、基本输入输出系统(BIOS)、总线(BUS)和驱动程序的方法,建立并维持对被入侵主机的长期控制。该文件列出了NSA实习生需要为攻击团队解决的大量项目。其中之一就是“隐藏存储”项目,该项目通过开发硬盘固件植入程序来防止硬盘上的隐藏存储被发现。为达到此效果,植入程序需要阻止系统发现磁盘上的真实可用空间量。“该项目的想法是修改特定硬盘驱动器的固件,使其通常只能识别一半的可用空间,”文件中写道。“它将识别的容量数据返回给操作系统,而不提供任何访问额外空间的方法。”硬盘驱动器上只有一个分区会出现在分区表中,而其他分区——存储隐藏数据的地方-保持隐形,更不容易接近。修改后的固件中留下了一个特殊的钩子,只有在主机重启并且硬盘接收到特定命令时才能解锁隐藏的存储空间。解锁后,隐藏分区在分区表中可见并保持可访问状态,直到另一个特定命令锁定该分区。美国国家安全局检索隐藏数据计划的细节从这份已有八年历史的文件中不得而知。同样令人困惑的是,实习生是否真的开发了符合美国国家安全局既定目标的固件植入程序。不过,文件中提到一件事:实习生必须在任务签订后的六个月内拿出一个项目解决方案,考虑到NSA在其他事项上表现出的创造力,我们毫不怀疑他们做到了。原文地址:http://www.aqniu.com/neotech/6798.html