分享

危险的外围设备:Windows和Linux计算机内部的重大隐患

 kaller_cui 2020-02-20

编者按





外设的问题

WiFi适配器,USB集线器,触控板,笔记本电脑摄像头和网络接口卡中的未签名固件为恶意攻击者入侵笔记本电脑和服务器提供了多种途径。

在新的研究中,Eclypsium在来自Lenovo,Dell,HP和其他主要制造商的计算机中使用的WiFi适配器,USB集线器,触控板和相机中发现了未签名的固件。然后,展示了通过网络接口卡对服务器的成功攻击,该网络接口卡具有三大服务器制造商各自使用的未签名固件。一旦任何这些组件上的固件通过Eclypsium描述的问题感染了恶意软件,则该恶意软件就不会被任何软件安全控制程序检测到。尽管以前曾进行过大量公开的攻击,但外围设备制造商对固件签名的改进一直很慢,使数百万个Windows和Linux系统面临固件攻击的风险,这些固件可能泄露数据,破坏操作并投递勒索软件。




未签名固件的问题

自从方程式组织的HDD植入被发现已有五年,这一事件向业界展示了固件被黑客入侵的现实以及外围设备中未签名的固件所带来的潜在危险。尽管最近几年取得了一些进步,但相关研究表明,许多行业仍对未签名固件的风险视而不见。在四项单独的新研究中,Eclypsium在各种企业设备的WiFi适配器,USB集线器,触控板和相机中发现了未签名的固件。

不幸的是,这些问题可能会严重破坏设备的安全性和操作,并且往往很难修复。破坏诸如网卡,驱动器和其他外围设备之类的组件可以完全禁用设备,或者为攻击者提供窃取数据,投递勒索软件,成为安全的盲区。Eclypsium的这项新研究表明,这些弱点在笔记本电脑和服务器的各个组件中普遍存在,为恶意攻击提供了多种可能途径。





固件:几乎每个组件中的大脑

在安全性方面,大多数注意力都集中在系统的最可见组件上,例如操作系统和应用程序。但是,为了应对日益增长的威胁,许多组织已开始在其漏洞管理和威胁防御模型中添加固件。
在许多情况下,这些努力仅限于系统固件(位于设备主板上的UEFI或BIOS)。但是,实际上设备中的每个组件都有自己的固件和潜在的风险,包括网络适配器,图形卡,USB设备,相机,触摸板和触控板等。

在几乎每种情况下,这些组件都由固件控制。固件可以刻录到设备本身的集成电路中,或者组件可以具有自己的闪存,用于存储固件。在其他情况下,固件可以在启动时由操作系统动态提供。无论固件如何存储,此固件都可以像微型计算机一样操作,以控制该特定组件的低级行为。正如我们将看到的那样,从笔记本电脑到服务器再到网络设备,此代码通常很容易受到攻击。





未签名固件的风险

问题在于,外围设备通常缺乏我们认为理所当然的安全最佳实践,它们在操作系统和其他更可见的组件(例如UEFI或BIOS)中是理所当然的。特别是,许多外围设备在运行代码之前不会验证固件是否已使用高质量的公钥/私钥正确签名。这意味着这些组件无法验证设备加载的固件是否可靠且值得信赖。攻击者可能只是插入恶意或易受攻击的固件镜像,组件就会盲目地信任并运行该固件镜像。

另外,像我们以前的Screwed Drivers研究和最近 live-off-the-land攻击已经证明,可以使用易受攻击的驱动程序绕过保护,并使勒索软件能够不受干扰地进行攻击。无需特殊权限就可以更新许多组件,从而导致一种非常简单而强大的攻击方案:

  1. 攻击者可以通过任何方法访问设备,例如通过电子邮件或恶意网站传递的恶意软件,或邪恶的女仆攻击。拥有基本的用户特权,攻击者/恶意软件可以将恶意固件写入易受攻击的组件。

  2. 如果该组件不需要正确签名固件,则攻击者的代码将由该组件加载并运行。

  3. 然后,攻击者可以使用该组件的独特功能和特权来发起攻击。

攻击者滥用固件的方式自然会因组件而异。例如,网络适配器上的恶意固件可能允许攻击者嗅探,复制,重定向或更改流量,从而导致数据丢失,中间人攻击和其他攻击。基于PCI的设备可以实现直接内存访问(DMA)攻击,可以轻松窃取数据或完全控制受害系统。摄像头可用于从用户环境中捕获数据,而受损的硬盘驱动器可使攻击者隐藏代码和工具,而不会被操作系统看到。但是,总体问题仍然相同。如果某个组件不需要签名的固件,则攻击者通常可以无需特殊权限即可轻松地控制该组件。




新研究:外围设备固件不安全的示例

1.联想笔记本电脑中的触摸板和TrackPoint固件

Eclypsium的研究人员最近分析了联想ThinkPad X1 Carbon 6th Gen笔记本电脑。当使用该特定设备进行分析时,相信许多其他型号甚至其他供应商也会遇到相同的问题。具体地说,联想将Synaptics用作其触摸板的ODM,使用这些组件的其他制造商也可能同样容易受到攻击。

在设备内部,Eclypsium特别关注以下固件:

  • 触摸板固件:pr2812761-tm3288-011-0808.img

  • TrackPoint固件:PSG5E5_RANKA_fv06.bin

Eclypsium发现触摸板和TrackPoint使用不安全的固件更新机制。具体来说,在应用固件更新之前,不需要在设备级别进行加密签名验证。由于缺乏控制,因此可以通过软件修改固件镜像,以在这些组件中运行任意恶意代码。
联想表示,ODM在当前产品中没有解决此问题的机制。

2. HP笔记本电脑中的HP Wide Vision FHD相机固件

Eclypsium研究了HP为Spectre x360 Convertible 13-ap0xxx笔记本电脑中的HP Wide Vision FHD摄像机分发的固件更新。我们发现固件更新未加密,并且缺少真实性检查。分析发现,可以使用HP提供的更新工具修改固件以更改USB描述符。
HP Wide Vision FHD摄像机是SunplusIT生产的USB摄像机模块。HP支持为HP Spectre x360 Convertible 13-ap0xxx笔记本电脑上使用的相机提供了固件更新(sp93170.exe)。该固件更新程序包括SunplusIT基于Windows的固件更新工具以及固件镜像。
固件镜像不包括任何形式的密码签名或其他真实性信息。基于Windows的固件更新工具接受已修改以调整USB描述符内容的固件文件。可以利用这种修改USB描述符的功能来禁用该设备或使该设备被识别为其他类型的USB设备。一旦发现处理器体系结构的其他详细信息,即可通过实现USB HID设备(例如Rubber Ducky)将摄像头模块的行为更改为恶意软件。
通过修改使用该工具更新的设备上的USB描述符来确认此漏洞。特别要注意的是,即使是普通用户,SunplusIT固件更新程序也可以成功更新设备。固件更新应要求管理员访问权限。

HP表示,他们正在固件更新中,并且下一代相机将在未来的型号中签名固件。HP已发布安全公告,其缓解措施位 于HP Security Bulletin Archive。

3.戴尔XPS笔记本电脑上的WiFi适配器

Eclypsium的研究人员还展示了在运行Windows 10的Dell XPS 15 9560笔记本电脑上修改WiFi适配器固件的能力。该适配器是Killer Wirelessn / a / ac1535。Windows10将检查以确认驱动程序是否正确签名,并且在设备管理器中查看时,驱动程序旁边会显示一个小证书图标,如下所示。

当修改WiFi适配器的固件镜像时,可以看到该图标消失了。

如上图所见,证书图标不再显示。而且,尽管该图标不见了,但仍然能够以潜在的恶意方式修改固件,并且驱动程序仍然可以成功将其加载到设备中。
Eclypsium向提供杀手级无线网卡芯片组和驱动程序的高通公司以及向Microsoft检查此驱动程序已签名的Microsoft均报告了此问题。高通公司回应说,他们的芯片组从属于处理器,并且运行在CPU上的软件应负责验证固件。他们表示,没有计划为这些芯片添加签名验证。但是,Microsoft回应说,由设备供应商来验证加载到设备中的固件。

这产生了一个有趣的问题,即强制使用有效的已签名驱动程序和固件应由谁负责。鉴于特权攻击者可以轻松替换驱动程序文件并绕过所有假设的检查,因此该驱动程序似乎是一个很差的选择。剩下的就是设备和操作系统。尽管在这两种选择之间,责任仍然不明确,而且正如我们所看到的,常常没有完全解决。

4. USB集线器固件

作为未签名固件广泛使用的另一个例子,Eclypsium分析了Linux供应商固件服务,这是一个允许硬件供应商上传固件更新的安全门户。通过此资源,可以专注于更新协议并轻松查看哪些已签名,哪些未签名。虽然可以看到某些更新协议与传输有关,但还有许多其他协议是用于实际更新过程的协议。

例如,VLI USB集线器固件未签名。





固件攻击演示

接下来,看看如何将未签名的固件作为真实世界攻击的一部分被滥用。就像我们将看到的那样,控制外围组件的攻击者不仅可以将组件的功能用于恶意目的,而且还可能获得新的特权,甚至可以控制整个系统。
在此演示中,研究人员正在攻击网络接口卡(NIC)芯片组中的未签名固件。对NIC的恶意攻击可能会对服务器产生深远的影响,远程破坏操作系统,投递远程后门,窥探和泄露原始网络流量,并绕过操作系统防火墙来提取数据或投递勒索软件。此类攻击可能会根据信号断开服务器与网络的连接,从而破坏整个数据中心的连接。
众多研究人员强调了NIC中未签名固件的危险,例如Arrigo Triulzi的“Project Maux presentations”演示 和LoïcDuflot等人所做的 “Can you still trust your network card?”演示 。
Eclypsium攻击的NIC中的Broadcom BCM5719芯片组通常用于多家制造商的服务器中,并且已知不会对从主机上载的固件执行签名验证。有多个公共项目在进行逆向工程并重新实现此NIC的固件,例如https://github.com/meklort/bcm5719-fw和https://github.com/hlandau/ortega,这降低了攻击者的门槛。
服务器具有用于设备带外管理的基板管理控制器(BMC),并且大多数服务器将能够配置BMC与主机系统共享NIC。在这种安排下,具有一个物理网络连接,该物理网络连接到外部设备就像两个不同的网络适配器,每个适配器都有自己的MAC地址。根据设计,主机软件(即使在内核级别)也看不到任何BMC通信。但是,如果将自己的固件加载到BMC配置为与主机共享NIC的系统中的NIC中,则可以访问无法单独从主机访问的流量。
使用这种方法,可以检查BMC网络数据包的内容,将这些内容提供给主机上运行的恶意软件,甚至即时修改BMC流量。这也可以用来阻止从BMC发送到中央日志记录服务器的警报,选择性地将它们重定向到其他服务器,将流量复制并发送到远程位置进行分析,以及与远程命令和控制建立传出网络连接直接从NIC本身获取服务器,而主机或BMC却不知道发生了任何事情。

更糟糕的是,由于该卡已连接到PCI总线,因此攻击者可能会使用DMA攻击来完全控制服务器。如Eclypsium之前所做的DMA攻击,使潜在的攻击者可以绕开主CPU和OS,直接从受害系统读取和写入内存。通过覆盖内存,攻击者可以控制内核执行,以执行几乎任何形式的恶意活动。因此,攻击者可以利用网卡中的漏洞来完全控制整个服务器的内核。





整个行业的固件安全问题

外围设备中未签名固件的问题是一个广泛的问题,影响了众多品牌及其ODM供应商。在方程式组织的HDD植入方式被披露之后,许多HDD和SSD供应商进行了更改,以确保其组件仅接受有效的固件。但是,许多其他外围组件尚未效仿。而且鉴于组件供应商经常与各种设备供应商合作,因此单个易受攻击的组件很容易最终出现在多个产品中。
同样重要的是,这些问题几乎适用于所有类别的Windows和Linux设备,从笔记本电脑到服务器。Apple会在每次将驱动程序包中的所有文件(包括固件)加载到设备之前对其进行签名验证,以减轻这种攻击。相反,Windows和Linux仅在最初安装该软件包时才执行这种类型的验证。最终,设备本身需要在允许固件更新之前执行签名验证,而不是依赖操作系统来执行此任务。

不幸的是,未经签名的固件带来的问题不容易解决。如果该组件并非旨在检查签名的固件,则通常无法通过固件更新进行修复。在许多情况下,设备或产品线中的根本问题根本无法解决,这意味着该产品线中的所有设备在其整个生命周期中都将继续受到攻击。





结论

外围设备中未签名的固件仍然是网络安全的一个被忽视的重要方面。根据组件的功能,未签名的固件可能会导致数据完整性和隐私损失,并使攻击者能够获得特权并躲避传统的安全控制。鉴于未签名固件的广泛性,企业应扫描其设备中是否有易受攻击的组件,并应在采购过程中评估新设备的固件状态。如果您想了解更多有关此问题或与固件安全性有关的任何问题,请与我们联系research@eclypsium.com。

参考资源

1、PERILOUS PERIPHERALS: THE HIDDEN DANGERS INSIDE WINDOWS & LINUX COMPUTERS,www.eclypsium.com

2、https://www./peripherals-unsigned-firmware-expose-windows-linux-computers-attacks

天地和兴工控安全研究院编译

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多