通过USB调试攻击固件安装后门以实现“邪恶女佣”攻击

写在前面的话

调试机制是赞助跟踪险些所有平台上的故障源的标准组件。一样平常主要在平台临盆之前应用,但也常常用于翻新和修复返回的平台。安然钻研职员可以多次应用调试特点测试进击,包括定位和应用JTAG,应用USB调试以及应用debug查找系统治理模式(SMM)中的破绽。我们进行安然钻研,用于谋略根基举措措施的硬件根基创建实用的防御。我们确认,经由过程USB进行的调试可以造访在UEFI固件和运行时SMM固件中安装持久的rootkit,而这些系统不能安然地设置调试策略( CVE-2018-3652)。这种破绽将容许具有设备物理造访权限的进击者可以履行“Evil Maid”进击。正如其他人所报道的,警备这种类型的进击是相称艰苦的。为了供给对这种要挟的可见性,我们为开源的CHIPSEC框架宣布了一个模块,以检测脆弱的系统。

保护固件

每次谋略机启动时,固件保护机制都必须履行固件以初始化可用设置设置设备摆设摆设中的固件,这为软件履行创建了预期的安然情况。假如恶意软件能够变动某些设置设置设备摆设摆设,则可以经由过程在特权模式下履行或从新设置设置设备摆设摆设系统,以违反软件正常运行的预期安然情况以及违反安然属性,并将其权限提升到高于其它软件的权限,此中最直接的措施是改动固件。

当然,具有物理造访权限的进击者可以简单的连接固件编程器就可以改动固件,从理论上来说,这确凿必要具体的设备信息,但实际上在大年夜多半环境下这些信息都很轻易获取。其根滥觞基本因就在于大年夜多半固件存储在串行可编程接口(SPI)闪存芯片上,这就为读取和写入存储芯片创建了物理标准,SPI闪存编程器相对轻易购买或创建。为了在不破坏系统的环境下得到造访权限,进击者还必要弄清楚要改变的内容。然而,有一位钻研职员(Dmytro Oleksiuk)却开拓了一种通用的观点验证后门,根据这个样本,进击者可以轻松的将这个后门安装到大年夜多半固件模块中。这意味着,这些对象和技巧的易用性和可用性,可使得非专业的进击者以致是“脚本小子(script kiddie)”很轻易的就可以造访固件rootkit。Eclypsium的安然专家做了一个测试,他们能就在不到4分钟的光阴里就在企业所用的条记本电脑上安装此rootkit,并且实现物理造访,你可以看此视频懂得全部历程。

改动固件的另一种措施是经由过程特权软件,为了防御此类进击,固件应在向导时代尽早设置设置设备摆设摆设与固件存储相关的保护位。完成此操作后,正常的软件(以致包括提升内核权限的恶意软件)将无法履行固件存储写入,直到从新启动时,固件再次履行保护自身的历程。然则,即便这样,固件仍会以某种要领写入存储器并进行代码和设置设置设备摆设摆设更新。这虽然可以经由过程从新启动来完成,但并不是在所有环境下都可以实现。别的,在运行不时代的SMM中履行的可托代码可用于绕过保护并写入固件存储。据此来看,SMM是进击者考试测验安装持久性固件rootkit的主要目标。

应用SMM固件调试

如上所述,钻研职员已经证实经由过程调试功能可用于查找固件破绽并直接绕过基于软件的保护。实际上,经由过程调试功能发明破绽不停是进击者最爱好的措施。钻研职员的阐发注解,在启用调试机制的系统上,物理进击会比没有启用调试机制的时刻更轻易。由于这种环境下进击者是不必要特殊的固件编程器,也不必要打开法度榜样。经由过程应用可用的公开对象,他们只需经由过程插入一个外部USB即可安装持久rootkit,绕过安然启动和许多其他安然功能。

钻研职员已经证实可以在SMM中停息系统并从系统高低文中对内存进行随意率性变动,这样进击者就可以得到SMM履行的高档权限。别的,便是经由过程编写代码来改动固件存储,此类进击者可以使用现有的固件rootkit来安装持久性恶意软件。虽然这具有重大年夜的安然隐患,但对付调试机制来说,这也是其一个预期的调试目的。不幸的是,有些系统无法在运行中关闭这些调试功能。

调试造访

对付安然职员来说,为了懂得系统的风险,紧张的是要知道运行系统上是否启用了调试机制。不幸的是,这个懂得历程并不轻易,对技巧的要求很高。为此,Eclypsium的安然专家开拓了一个开源CHIPSEC模块来供给赞助,该模块主要反省运行系统上的两个主要组件:

1.CPU调试功能

2.直接连接接口让我们深入到这些反省中,并将其分化为组件。首先,CPU调试功能的状态位于IA32_DEBUG_INTERFACE模型特定寄存器(MSR)中。在英特尔软件开拓职员手册中,我们可以看到此MSR的细分:

假如我们轻忽保留位,我们可以看到3个有趣的器械:

1.启用位。

2.一个锁定位。

3.发生调试位。

假如根据此规范,默认环境下,调试是禁用和解锁的。使用宣布的chipsec模块,钻研职员反省了调试是否被禁用和锁定,而这些调试则是固件在运行中设置的安然设置设置设备摆设摆设。经由过程履行这些模块,反省将经由过程。别的,钻研职员还反省了调试发生位,但根CHIPSEC掩护职员的说法,这个反省会发生误报的环境,是以Eclypsium的安然专家抉择不依附于这个反省结果得出反省是否经由过程或掉败的抉择。

然则,CPU调试只是调试机制问题的一部分,下一步是反省直接连接接口(DCI)的状态。此功能在之前曾在被钻研者使用过,DCI会被记录在每个谋略机平台的芯片组数据表中,例如“Intel 100系列和Intel C230系列芯片组系列平台节制器集线器(PCH)数据表第2卷”,名称为“DCI节制寄存器”。

只管该寄存器彷佛存在于由intel制造的芯片组中,但它仅在此特定命据表中记录。在该寄存器内部,在过多的保留位之间,我们找到“Host DCI Enable”位或HDCIEN。假如启用,芯片组将经由过程USB供给调试功能。是以,反省异常简单; 安然设置设置设备摆设摆设会禁用DCI,该位应为0。只有当上述两项反省都注解没有启用调试功能时,我们才会斟酌安然地设置设置设备摆设摆设系统并从我们的chipsec模块返回PASSED。至于CPU调试功能MSR中的“Debug Ocured”位,我们抉择遵照CHIPSEC掩护者的建议,只有在设置了该位时才显示警告。理论上,它表示在向导时代的某个时候启用了调试。可以在上的github上找到CHIPSEC我们的模块是debugenabled.py安装chipsec后,您可以应用以下敕令行零丁运行此模块:

[1] [2]下一页

我们已经察看到一些系统呈现故障,但很难知道还有若相干统受到影响。英特尔宣布了一份安然看护布告(CVE-2018-3652),内容涉及一些未安然设置调试策略的系统。假如您的系统受到影响,我们建议您运行反省并亲身查看。

缓解步伐

理论上,对固件保护机制是个不错的设法主见,但现实中,进击者经由过程对固件保护机制的改动,可以获取对敏感系统的完全物理节制。假如一个系统未能经由过程固件保护机制的反省,则纵然在异常有限的光阴段内,任何人都可以得到系统的物理造访。只需插入USB端口并运行公开的脚本代码,进击者就可以绕过险些所有的安然技巧。例如,进击者可能会应用自己开拓的恶意软件或rootkit感染固件,而且他们可以在不打开软件的环境下进行操作。

某些系统可能在BIOS或固件设置菜单中具有启用或禁用调试功能的设置。禁用该设置后,安然治理员可以反省该设置设置设备摆设摆设是否经由过程上文提到的`chipsec`测试模块。在这种环境下,应用强密码或其他机制保护这些设置异常紧张。

在其他环境下,你可能必要联系系统开拓商并扣问是否有安然禁用调试造访的版本。

结论

在本文中,Eclypsium的钻研职员钻研了应用USB调试来绕过安然步伐并安装固件rootkit的进击。虽然应该在系统运行中禁用调试机制,然则今朝它仍是进行快速安然反省来确定你的系统是否受到影响的好法子。钻研职员盼望用他们的钻研,赞助组织理解和防御“邪恶女仆”进击。跟实在时嵌入式系统的繁杂程度赓续前进,低效率的调试措施的资源日益增添。鉴于当前嵌入式利用的繁杂性还有继承上升的趋势,对这些系统的调试将成为开拓商斟酌的关键身分。

上一页[1] [2]

赞(0) 打赏
分享到: 更多 (0)
免责申明:本站所有资料均来自于网络,版权归原创者所有!本站不提供任何保证,不保证真实性,并不承担任何法律责任

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

阿里云优惠网 更专业 更优惠

阿里云优惠券阿里云大礼包