目录导航
安全漏洞允许固件植入在操作系统更新后仍然存在,并绕过 UEFI 安全启动、英特尔 Boot Guard 和基于虚拟化的安全性。
加利福尼亚州帕萨迪纳市 – 2022 年 3 月 8 日– 固件安全专家Binarly宣布在 UEFI 固件的各种实施中发现并协调披露了 16 个新的高严重性漏洞,这些漏洞影响多个惠普企业设备,包括笔记本电脑、台式机、销售点系统和边缘计算节点。
在 HP UEFI 固件中发现了这些漏洞(CVSS 7.5 – 8.8 高严重等级),其中一些问题会影响 AMD 参考代码 (BRLY-2021-004 / CVE-2021-39298)。
在整个固件语料库上使用 Binarly 的内部代码相似性技术,对属于 Dell 设备的一个固件(最初在 HP 设备上发现的漏洞)触发检测,从而得出该漏洞存在于某个参考文件中的结论代码。进一步的调查将此代码连接到 AMD 的固件驱动程序 (AgesaSmmSaveMemoryConfig),该驱动程序广泛分布于整个计算生态系统。
Binarly 向 CERT/CC 报告了新发现,以简化对所有这些漏洞的多供应商披露。
该公司不断与惠普和 CERT/CC 团队合作,以了解漏洞的范围并减少对全球企业基础设施部署的影响。
今年 2 月,Binarly 报告了 23 个影响整个企业设备生态系统的关键固件安全漏洞。(请参阅SecurityWeek和ZDNet上的完整媒体报道)。
在 Binarly 发现之前,美国国土安全部 (DHS) 和商务部的领导发布了一份新的联合报告草案,该报告将固件安全性确定为美国软件供应链面临的主要威胁。“保护固件层的安全经常被忽视,但它是设备中的单点故障,并且是攻击者可以大规模破坏设备的最隐秘方法之一,”
“攻击者可以破坏操作系统和虚拟机管理程序的可见性,绕过大多数安全系统,隐藏并在网络和设备中长期存在,同时进行攻击操作,并造成不可挽回的损害,”这两家美国机构表示。
许多设备制造商和固件开发公司低估了已知漏洞带来的第三方风险的影响。二进制遥测数据显示,即使是某个供应商的已知和已修复漏洞,其他供应商几个月内仍无法修补。
“安全始终是惠普的重中之重,我们重视 Binarly 所做的工作,并感谢他们负责任地向惠普报告。请关注我们的安全公告以获取更新。我们鼓励我们的客户始终保持他们的系统是最新的。” ,HP PSIRT 说。
惠普披露信息可在以下网址获得:
https://support.hp.com/us-en/document/ish_5661066-5661090-16
https://support.hp.com/us-en/document/ish_5817864-5817896-16
漏洞及其影响的细分:
CVE ID | 二进制 ID | 描述 | CVSS评分 |
---|---|---|---|
CVE-2021-39297 | BRLY-2021-003 | DXE堆栈缓冲区溢出(任意代码执行) | 7.7 高 |
CVE-2021-39298 | BRLY-2021-004 | SMM 标注(权限提升) | 8.8 高 |
CVE-2021-39299 | BRLY-2021-005 | DXE堆栈缓冲区溢出(任意代码执行) | 8.2 高 |
CVE-2021-39300 | BRLY-2021-006 | DXE堆栈溢出漏洞(任意代码执行) | 8.2 高 |
CVE-2021-39301 | BRLY-2021-007 | DXE堆栈溢出(任意代码执行) | 7.7 高 |
CVE-2022-23924 | BRLY-2021-032 | SMM堆缓冲区溢出(任意代码执行) | 8.2 高 |
CVE-2022-23925 | BRLY-2021-033 | SMM内存损坏(任意代码执行) | 8.2 高 |
CVE-2022-23926 | BRLY-2021-034 | SMM内存损坏(任意代码执行) | 8.2 高 |
CVE-2022-23927 | BRLY-2021-035 | SMM内存损坏(任意代码执行) | 8.2 高 |
CVE-2022-23928 | BRLY-2021-036 | SMM内存损坏(任意代码执行) | 8.2 高 |
CVE-2022-23929 | BRLY-2021-037 | SMM内存损坏(任意代码执行) | 8.2 高 |
CVE-2022-23930 | BRLY-2021-038 | SMM内存损坏(任意代码执行) | 8.2 高 |
CVE-2022-23931 | BRLY-2021-039 | SMM内存损坏(任意代码执行) | 8.2 高 |
CVE-2022-23932 | BRLY-2021-040 | SMM 标注(权限提升) | 8.2 高 |
CVE-2022-23933 | BRLY-2021-041 | SMM 标注(权限提升) | 8.2 高 |
CVE-2022-23934 | BRLY-2021-042 | SMM内存损坏(任意代码执行) | 8.2 高 |
受影响的设备种类繁多,从笔记本电脑和台式机到零售销售点系统。通过利用所披露的漏洞,攻击者可以利用它们在固件中执行特权代码执行,低于操作系统,并可能提供持久的恶意代码,这些代码在操作系统重新安装后仍然存在,并允许绕过端点安全解决方案 (EDR/AV),安全启动和基于虚拟化的安全隔离。“Binarly 认为,缺乏与 UEFI 固件相关的常见固件利用技术和原语的知识库使得这些故障在整个行业中可重复出现。我们正在努力通过在我们的咨询中提供全面的技术细节来填补这一空白。这个知识库对于为设备安全开发有效的缓解和防御技术至关重要。”
Binarly 创始人兼首席执行官 Alex Matrosov 说。
漏洞详情
今天,Binarly 的安全研究实验室宣布发现并协调披露了 UEFI 固件的各种实施中的 16 个高严重性漏洞,这些漏洞影响了惠普的多个企业产品,包括笔记本电脑、台式机、销售点系统和边缘计算节点。
一个月前,我们宣布在主要的独立 BIOS 开发人员 (IBV) 软件之一中发现了 23 个高影响漏洞。这些漏洞不仅影响了单个供应商,还影响了在其固件软件中采用相同代码的所有供应商。Binarly 证实,所有这些漏洞都在几个主要的企业供应商生态系统中发现,并且 CERT/CC ( VU#796611 ) 帮助通知了受影响的各方。
之前披露的一些影响 Siemens 设备的漏洞的 CVSS 评分为 9.8 严重。Binarly 团队发现并影响了大多数 Siemens SIMATIC 工业控制器的五个漏洞获得了严重的高严重性评分。西门子安全公告 ( SSA-306654 ) 在初始披露日期后三周发布。由于连接到固件中实施的受影响存储组件,这些漏洞的严重程度有所提升:AhciBusDxe ( BRLY-2021-016/CVE-2021-45969 )、IdeBusDxe ( BRLY-2021-015/CVE-2021-45970 ) ), SdHostDriver ( BRLY-2021-012/CVE-2021-45971) 和FvbServicesRuntimeDxe ( BRLY-2021-027/CVE-2021-42554 )。攻击者可以通过将权限升级到 SMM 来控制对 SPI 闪存存储的读/写/擦除访问,以执行FvbServicesRuntimeDxe中的任意代码。这种漏洞的影响确实至关重要,因为攻击者可以实现 SPI 闪存存储中最高级别的持久性之一,因为恶意植入物可以在软件固件更新过程中幸存下来。
最初披露的所有这些异步部分仅证实了我们对我们之前的一篇博客中描述的固件供应链问题的担忧,“固件供应链安全性被破坏了,我们可以修复它吗? ”。美国政府最近在“支持美国 ICT 行业的关键供应链评估”报告中提高了对固件供应链主要弱点的认识。
在许多情况下,固件是供应链所有层与终端客户设备之间的单点故障。

3 月 23 日, Binarly 首席执行官Alex Matrosov将在“ The Maritime and Control Systems Cybersecurity Con – Hack the Port ”会议上讨论固件供应链安全漏洞及其影响。
同时,HP PSIRT 和 CERT/CC 团队密切合作,缩短协调披露流程的时间,从而更快地修复行业问题。披露的第一部分 (VU#917518) 包括五个漏洞,与我们的 OffensiveCon 演示“ UEFI 固件漏洞:过去、现在和未来”在同一天公开,我们展示了对上述一些问题的利用。

HP 协调披露的第二部分 (VU#683814) 今天公开,另外还有 11 个高影响漏洞。在过去的几个月里,Binarly 与 CERT/CC 和 HP PSIRT 团队密切合作,以确认漏洞、提供更多技术细节、评估相关风险并完成负责任的披露流程。

Binarly 团队通过在现场利用 Binarly Platform Anomaly Checker 发现了所有这些漏洞。为了了解这些异常的性质,我们深入挖掘了反汇编代码,发现这些已识别问题中的大多数都是可利用的漏洞。
Binarly 团队认为,缺乏与 UEFI 固件相关的常见固件利用技术和原语的知识库使得这些故障在整个行业中可重复出现。我们正在努力通过在我们的咨询中提供全面的技术细节来填补这一空白。该知识库对于开发有效的设备安全缓解措施和防御技术至关重要。
由于可信平台模块 (TPM) 测量的限制,固件完整性监控系统无法检测到对所有已发现漏洞的主动利用。由于固件运行时可见性的设计限制,远程设备健康证明解决方案不会检测到受影响的系统。
惠普披露信息可在以下网址获得:
PSR-2021-0112: support.hp.com/us-en/document/ish_5661066-5661090-16
PSR-2021-0174: support.hp.com/us-en/document/ish_5817864-5817896-16
漏洞 | 问题数量 | 二进制 ID | CVE ID |
---|---|---|---|
SMM 标注(权限提升) | 3 | BRLY-2021-004 BRLY-2021-040 BRLY-2021-041 | CVE-2021-39298 CVE-2022-23932 CVE-2022-23933 |
SMM 内存损坏 | 9 | BRLY-2021-032 BRLY-2021-033 BRLY-2021-034 BRLY-2021-035 BRLY-2021-036 BRLY-2021-037 BRLY-2021-038 BRLY-2021-039 BRLY-2021-042 | CVE-2022-23924 CVE-2022-23925 CVE-2022-23926 CVE-2022-23927 CVE-2022-23928 CVE-2022-23929 CVE-2022-23930 CVE-2022-23931 CVE-2022-23934 |
DXE 内存损坏 | 4 | BRLY-2021-003 BRLY-2021-005 BRLY-2021-006 BRLY-2021-007 | CVE-2021-39297 CVE-2021-39299 CVE-2021-39300 CVE-2021-39301 |
不幸的是,我们报告的漏洞中的大多数问题都是可重复的故障,其中一些是由于代码库或遗留组件的复杂性引起的安全关注较少,但仍广泛用于该领域。
在许多情况下,可以通过多次迭代修复相同的漏洞,但攻击面的复杂性仍然可以为攻击者的成功留出空间。大多数可用于源代码分析的企业工具都不适合查找特定于固件的错误。有多种原因,最明显的原因之一是内存管理功能的实现与非固件特定软件相比存在差异。当在源代码级别没有检测到漏洞时,这会导致错误的安全感。
此类问题的最佳示例之一可能是 American Megatrends (AMI) UsbRt 组件(与 HP 披露无关),正如我们在 OffensiveCon 演示中强调的那样,该组件具有近 6 年的成功攻击历史。Binarly 平台继续在企业基础设施中大规模检测易受攻击的 AMI UsbRt 版本,受影响设备的数量非常可怕。

但是一些供应商继续向他们的客户提供虚假声明,这只会加剧此类问题,并增加整个行业修复这些漏洞的时间。这种供应商的行为和策略可以在短期内隐藏问题,但不幸的是给行业带来了不必要的安全风险。一个完全相反的例子是 Insyde 和 Binarly 之间在披露方面的合作,这种透明度对大规模降低安全风险和提高客户意识产生了积极影响。
回到目前的披露,在整个固件语料库上使用 Binarly 的内部代码相似性技术,在属于戴尔设备的一段固件上触发了检测(漏洞最初是在 HP 设备上发现的),这使我们得出结论:该漏洞 ( BRLY-2021-004 ) 存在于一些参考代码中。进一步调查将此代码连接到 AMD 的固件驱动程序 ( AgesaSmmSaveMemoryConfig ),该驱动程序广泛分布于整个设备生态系统。
BRLY-2021-004 是滥用EFI_BOOT_SERVICES和EFI_RUNTIME_SERVICES的一个很好的例子,因为在系统管理模式 (SMM) 中运行此类代码是不安全的。能够在非特权 DXE 运行时阶段执行代码的攻击者可以利用此漏洞将特权提升到 SMM。
来自 HP 设备的反编译易受攻击的 SMI 处理程序代码如下所示:

来自戴尔设备的反编译易受攻击的 SMI 处理程序代码如下所示:

HP 对 EFI 变量的重命名导致在不同设备中检测相同问题时出现一些延迟。Binarly 大力投资开发用于深度代码检查的尖端技术。该漏洞研究是由我们的一个客户环境中的异常检测触发的,使我们能够向 CERT/CC 报告问题,以便在整个行业范围内提供修复。
自年初以来,Binarly 已经公开披露了 41 个高影响漏洞。其中大多数针对企业设备,例如服务器、工业系统和网络设备。
Binarly 的第一要务是构建有效的安全解决方案来保护我们的客户设备。但是,如果没有深入的研究,创新技术就无法实现。进攻性研究是发展尖端防御技术的关键。
在我们之前的博客中,我们已经讨论了固件漏洞的利用后影响,这些漏洞可能导致设备上的长期持久性。固件植入是攻击者获得持久性的最终目标。攻击者可以将恶意植入物安装在固件的不同级别,作为修改后的合法模块或独立驱动程序。攻击者针对未授权的非 SMM DXE 运行时驱动程序或应用程序的影响通常被低估。这种恶意 DXE 驱动程序可以绕过安全启动并影响进一步的启动阶段。
植入物名称 | 植入物名称 | 发现年 |
---|---|---|
MoonBounce | DXE 运行时应用程序 | 2022 |
ESPecter | EFI 引导加载程序 (bootmgfw.efi) | 2021 |
FinSpy | EFI 引导加载程序 (bootmgfw.efi) | 2021 |
MosaicRegressor | DXE 运行时应用程序 | 2020 |
Lojax | DXE 运行时应用程序 | 2018 |
HackingTeam Rkloader | DXE 运行时应用程序 | 2015 |
Binarly 开发了以下方案来演示不同类型的漏洞 ( Issue )、利用技术 ( Exploitation ) 和成功结果 ( Result ) 之间的逻辑联系,从而导致安全风险 ( Impact )。

通过使用此方案,您可以导航各种类型的漏洞并了解其影响,这对于计算安全风险和构建威胁模型至关重要。
了解影响对于事件响应和基础设施安全团队至关重要。对影响的正确理解可以让企业从一开始就做出正确的决策,及时做出反应,降低额外的风险。
我们希望提高人们对因GetVariable()服务滥用而发现的重复失败的认识。这些漏洞可以通过我们在大约两年前为我们的 Black Hat Europe 2020 研究论文“ efiXplorer: Hunting for UEFI Firmware Vulnerabilities at Scale with Automated Static Analysis ”实施的简单启发式方法找到。Binarly Platform 可大规模检测大量此类问题。
在BRLY-2021-003/CVE-2021-39297漏洞的案例中,我们使用我们的efiXplorer工具强调了一种非常常见的滥用GetVariable()服务的类型:

之前在我们题为“固件供应链是硬编码”的博客文章中详细讨论了相同类型的GetVariable()服务滥用。通常,此类漏洞很容易被利用,并且在大多数情况下,它们会导致堆栈溢出。
我们的研究团队开发了概念证明 (PoC) 代码,以证明利用此类问题的简单性并提高行业意识。此咨询报告中提供了 PoC 代码。下图显示了负责 HP 硬件诊断工具的易受攻击的 DXE 应用程序的利用 PoC,该工具在 HP 服务器设备上广泛可用:

接下来,这里是另一个由滥用GetVariable()服务导致经典堆栈缓冲区溢出引起的类似问题的示例。这个漏洞(BRLY-2021-021/CVE-2021-42059)是几周前在我们之前的漏洞披露中披露的。

此咨询报告中提供了 PoC 代码。下图显示了易受攻击的 DXE 驱动程序的利用 PoC,该驱动程序在 BullSequana Edge 服务器设备上广泛可用:

GetVariable()服务滥用广泛传播并且在利用方面非常可靠。存在此类漏洞是因为GetVariable()服务的原始 EDKII 实现未以安全方式实现。常见的静态分析工具无助于检测此类问题。
标题为“ Zen and the Art of SMM Bug Hunting | Zen and the Art of SMM Bug Hunting | 查找、缓解和检测 UEFI 漏洞”,作者 Assaf Carlsbad。我们强烈建议使用Binarly efiXplorer IDA 插件,该插件包括漏洞检查器功能,可在 DXE 和 PEI 启动阶段检测GetVariable()滥用,以减少此类漏洞的攻击面。
Binarly 漏洞披露的目标之一是提高认识并帮助供应商大规模识别所有易受攻击的设备。出于这些原因,我们开发了 FwHunt 技术。在协调披露的结果公开并且受影响的供应商发布补丁后,我们也会发布相应的FwHunt 规则。Binarly SaaS 平台的客户可以更早地收到影响和易受攻击的设备的通知,以便提前为即将到来的修复做好准备。
所有针对 HP 漏洞的 FwHunt 规则都在 Binarly 的GitHub 存储库中公开可用,感兴趣的各方可以利用它们来确定其企业基础设施中易受攻击的设备的范围。此外,这些规则正被推送到 Linux 供应商固件服务 (LVFS),以增强全球企业环境中的供应链安全性和意识。
与 HP 设备上的固件相关的所有问题的 FwHunt 检测如下所示:

最近的报告“支持美国 ICT 行业的关键供应链评估”提高了对固件问题的认识,但行业需要正确的工具来大规模检测和应对此类问题。
固件也可以成为攻击成本相对较低的有利可图的目标。在过去的几年里,黑客越来越多地针对固件发起破坏性攻击。
转载请注明出处及链接