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

危险外设:Windows和Linux系统计算机内部安全隐患研究

时间:2023-03-16 11:02:03 科技观察

WIFI适配器、USB集线器、触摸板、笔记本电脑摄像头、网络接口卡中未签名的固件为恶意攻击者提供了破坏笔记本电脑和服务器的机会有很多方法。在其最新研究中,Eclypsium在联想、戴尔、惠普和其他主要制造商的计算机中使用的WiFi适配器、USB集线器、触控板和相机中发现了未签名的固件。然后,我们通过三个主要服务器制造商各自使用的带有未签名固件的网络接口卡演示了对服务器的成功攻击。当这些组件上的固件被感染时,任何软件安全控制都不会检测到恶意软件。尽管之前发生过残酷的攻击,但外围设备制造商在针对固件签名方面行动迟缓,导致数百万Windows和Linux系统面临固件攻击的风险,这些攻击可能会导致数据泄露、操作破坏、勒索软件等。未签名固件问题自从EquationGroup的HDD植入事件的发现让业界对固件黑客攻击的能力以及外围设备中未签名固件带来的潜在危险开阔了眼界已经过去了五年。尽管近年来取得了一些进展,但我们的研究表明,许多行业仍然对未签名固件的风险视而不见。在四项独立的新研究中,我们在各种企业设备的WiFi适配器、USB集线器、触控板和相机中发现了未签名的固件。不幸的是,这些问题会对设备的安全性和操作造成严重破坏,而且通常很难修复。破坏网卡、驱动器和其他外围设备等组件可能导致设备完全禁用,或允许攻击者窃取数据、提供勒索软件和逃避安全管理。新的Eclypsium研究表明,这些弱点普遍存在于笔记本电脑和服务器的各种组件中,为恶意攻击提供了多种途径。固件:大多数组件的大脑谈到安全性时,大多数注意力都集中在系统中最可见的组件上,例如操作系统和应用程序。然而,为了应对日益增长的威胁,许多组织已开始将固件管理纳入其漏洞管理和威胁防御模型。在许多情况下,这些努力仅限于系统固件(位于设备主板上的UEFI或BIOS)。然而,实际上设备中的每个组件都有自己的固件和潜在风险,包括网络适配器、显卡、USB设备、相机、触摸板、触控板等。您可以参考我们的在线“了解您自己的设备”资源(超链接:https://eclypsium.com/know-your-own-device/)来浏览当今设备中一些常用的支持固件的组件。这些组件几乎都由固件控制。固件可以烧录到设备本身的集成电路中,或者组件有自己的闪存来存储固件。此外,固件也可以在启动时由操作系统动态提供。无论固件如何存储,它都可以像微型计算机一样运行以控制该特定组件的低级行为。正如我们将看到的,此代码通常容易受到从笔记本电脑到服务器再到网络设备的攻击。未签名固件的风险问题在于,外围设备通常缺乏安全最佳实践,而这些最佳实践在操作系统和其他更可见的组件(如UEFI或BIOS)中是理所当然的。特别是,许多外围设备在运行代码之前不会验证固件是否已使用高质量的公钥/私钥正确签名。这意味着这些组件无法验证设备加载的固件是否可靠和值得信赖。攻击者可以简单地插入恶意或易受攻击的固件映像,组件将盲目信任并运行该固件映像。此外,正如我们之前的《Screwed Drivers》研究和最近的“陆上攻击”所证明的那样,易受攻击的驱动程序可用于绕过保护并允许勒索软件不间断地进行攻击。许多组件可以在没有特殊权限的情况下更新,并且出现了一个非常简单但强大的攻击场景:攻击者可以通过任何方法访问设备,例如通过电子邮件或恶意网站传播的恶意软件,或者邪恶的女佣攻击。拥有基本用户权限后,攻击者/恶意软件可以将恶意固件写入易受攻击的组件。如果该组件不需要正确签名的固件,攻击者的代码将由该组件加载并运行。然后,攻击者可以使用该组件的独特功能和特权发起进一步的攻击。攻击者滥用固件的方式因组件而异。例如,网络适配器上的恶意固件可能允许攻击者嗅探、复制、重定向或更改流量,从而导致数据丢失、中间人攻击和其他攻击。基于PCI的设备可以启用直接内存访问(DMA)攻击,这种攻击可以轻松窃取数据或完全控制受害系统。摄像头可用于从用户环境中捕获数据,而受损的硬盘驱动器允许攻击者隐藏操作系统中的代码和工具。但是,归根结底,如果某个组件不需要对固件进行身份验证,攻击者通常可以轻松控制该组件,而无需特殊权限。新研究:外围设备中不安全固件的示例1.联想笔记本电脑中的触摸板和TrackPoint固件Eclypsium的研究人员最近分析了联想ThinkPadX1Carbon第六代笔记本电脑。当我们使用这个特定的设备进行分析时,我们感觉许多其他型号甚至其他厂商的产品都存在同样的问题。具体来说,联想使用Synaptics作为其触摸板的ODM,使用该组件的其他制造商可能同样容易受到攻击。在设备内部,我们特别关注以下固件:触摸板固件:pr2812761-tm3288-011-0808.img小红帽固件:PSG5E5_RANKA_fv06.bin我们发现触摸板和小红帽使用了不安全的固件更新机制.具体来说,在应用固件更新之前,不需要在设备级别进行加密签名验证。缺少此限制允许攻击者通过软件修改固件映像以在这些组件中运行任意恶意代码。联想表示,ODM没有机制来解决当前产品中的这个问题。2.HP笔记本电脑中的HPWideVisionFHD摄像头固件Eclypsium研究了HPSpectrex360Convertible13-ap0xxx笔记本电脑中HPWideVisionFHD摄像头的固件更新。我们发现固件更新未加密且缺乏真实性检查。攻击者可以使用惠普提供的更新工具修改固件来改变USB描述符。HPWideVisionFHDCamera是凌阳科技出品的一款USB摄像头模组。HP为其HPSpectrex360Convertible13-ap0xxx笔记本电脑上使用的摄像头提供了固件更新(sp93170.exe)。固件更新器包括凌阳科技基于Windows的固件更新工具和固件镜像。固件映像没有任何形式的加密签名或其他真实性信息。基于Windows的固件更新工具可以接受修改后的固件文件以适应USB描述符内容。可以使用此功能修改USB描述符以禁用设备或将其识别为不同类型的USB设备。一旦处理器架构的其他细节被发现,USBHID设备(例如RubberDucky)可用于将相机模块的行为更改为恶意软件。我们通过修改使用此工具更新的设备上的USB描述符确认了此漏洞的存在。特别需要注意的是,即使是普通用户,凌阳固件更新器也可以成功更新设备。固件更新应该需要管理员访问权限。惠普表示他们正在更新固件,并希望在下一代相机型号中使用经过认证的固件。HP已在HP安全公告存档中发布了包含缓解措施的安全公告。3.戴尔XPS笔记本电脑上的WiFi适配器Eclypsium研究人员还展示了修改运行Windows10的戴尔XPS159560笔记本电脑上的WiFi适配器固件的能力。有问题的适配器是KillerWireless-n/a/ac1535。Windows10检查以确保驱动程序已正确签名,并且在设备管理器中查看时驱动程序旁边会出现一个小证书图标,如下所示。当我们修改WiFi适配器的固件镜像时,我们会看到图标消失了。正如我们所见,证书图标不再显示。此外,尽管图标消失了,我们仍然能够恶意修改固件,并且驱动程序仍然能够成功地将其加载到设备中。我们已将此问题报告给高通和微软。高通为KillerWireless卡提供芯片组和驱动程序,而微软检查这些驱动程序是否已签名。高通回应称,他们的芯片组从属于处理器,应该是CPU上运行的软件负责验证固件。他们说,目前没有计划在芯片中添加签名验证。不过,微软回应称,由设备供应商来验证加载到设备中的固件。这就提出了一个有趣的问题:谁负责确保驱动程序和固件已签名?特权攻击者可以轻松替换驱动程序文件并绕过所有使驱动程序看起来如此脆弱的假定检查。此外,它是设备和操作系统。在这两种可能性中,责任仍然不明确,问题往往没有得到完全解决。4.USB集线器固件作为广泛使用未签名固件的另一个例子,我们转向Linux供应商固件服务,这是一个允许硬件供应商上传固件更新的安全门户。有了这个资源,我们可以更专注于更新协议,轻松查看已签署和未签署的协议。我们发现一些更新协议与传输相关,但许多其他协议用于实际更新过程。例如,VLIUSB集线器固件未签名。固件攻击演示接下来,让我们看看未签名的固件如何在真实攻击中被滥用。控制外围组件的攻击者不仅可以利用该组件的功能进行恶意攻击,还可能获得新的权限,甚至控制整个系统。在此演示中,我们攻击了网络接口卡(NIC)芯片组中的未签名固件。对NIC的恶意攻击可能会对服务器产生深远影响:远程破坏操作系统、提供远程后门、窥探和渗漏原始网络流量、绕过操作系统防火墙以提取数据、提供勒索软件等等。这种类型的攻击会根据信号断开服务器与网络的连接,从而破坏整个数据中心的连接。许多研究人员都强调了NIC中未签名固件的危险,例如ArrigoTriulzi的ProjectMauxtalk,Lo?cDuflot的《您是否仍可以信任网卡》等。我们攻击的NIC中的BroadcomBCM5719芯片组目前用于多家制造商的服务器,并且不执行签名验证主机上传的固件。目前有很多开源项目在做逆向工程,重新实现这个网卡固件,比如https://github.com/meklort/bcm5719-fw和https://github.com/hlandau/ortega,进一步减少了攻击临界点。服务器的底板管理控制器(BMC)用于设备的带外管理,大多数服务器可以配置BMC与主机系统共享NIC。在这种安排下,您的物理网络连接到外部设备就好像有两个不同的网络适配器,每个适配器都有自己的MAC地址。按照设计,主机软件(即使在内核级别)看不到任何BMC通信。但是,如果您将自己的固件加载到上面配置的NIC中,您将能够访问通常无法单独从主机访问的流量。通过这种方式,我们可以检查BMC网络数据包的内容,将这些内容提供给主机上运行的恶意软件,甚至可以即时修改BMC流量。也可用于阻止从BMC发送到中央日志服务器的警报,有选择地将它们重定向到其他服务器,将流量复制并发送到远程位置进行分析,并直接使用NIC网络连接到远程命令和受控服务器,而无需主机或BMC知道发生了什么。更糟糕的是,由于该卡连接到PCI总线,攻击者可以使用DMA攻击来完全控制服务器。与我们之前的研究一样,DMA攻击允许潜在的攻击者绕过主CPU和操作系统直接从受害系统读取和写入内存。通过覆盖内存,攻击者可以控制内核执行以执行几乎任何形式的恶意活动。因此,攻击者可以利用网卡中的漏洞,完全控制整个服务器的内核。外围设备中的未签名固件是一个广泛的问题,涉及许多品牌及其ODM供应商。在EquationGroup的驱动器植入事件曝光后,许多HDD和SSD供应商进行了更改,以确保其组件仅接受经过认证的固件。然而,许多其他外围组件尚未效仿。鉴于组件供应商经常与各种设备供应商合作,单个易受攻击的组件很容易出现在多个产品中。同样重要的是,这些问题几乎适用于每一类Windows和Linux设备,从笔记本电脑到服务器。每次将驱动程序包(包括固件)加载到设备上时,Apple通过验证驱动程序包中所有文件的签名来减轻这种攻击。相比之下,Windows和Linux仅在最初安装包时执行此类验证。设备本身需要在允许固件更新之前执行签名验证,而不是依赖操作系统来执行此任务。不幸的是,未签名固件带来的问题并不容易修复。如果该组件并非设计用于检查签名固件,则通常无法通过固件更新进行修复。在许多情况下,设备或产品线中的根本问题完全没有解决,这意味着该产品线中的所有设备在其整个生命周期中都面临着攻击。结论外围设备中未签名的固件仍然是网络安全的一个被忽视的方面。根据组件的功能,未签名的固件可能导致数据丢失、完整性受损、隐私受损,并使攻击者能够获得特权并逃避传统的安全控制。鉴于未签名固件的广泛使用,组织应扫描其设备以查找易受攻击的组件,并应在采购过程中评估新设备的固件状态。