近年来我们了解到的英特尔ME安全性:关于神秘子系统的7个事实



图片:未飞溅

在过去的几年中,英特尔ME技术一直受到研究人员的审查。 尽管这项技术可以访问计算机上的几乎所有数据并且其妥协性使您可以完全控制机器,但实际上不存在制造商使用它的官方文档和手册,因此这项技术被神秘的气氛所包围。 因此,来自世界各地的研究人员必须独立地了解子系统的工作。

过去几年,我们一直在研究Intel ME,这是我们目前设法找到的有关此神秘子系统的内容。

ME中的漏洞甚至可以使关机的计算机崩溃


在2017年底的Black Hat Europe会议上,Positive Technologies的研究人员Mark Ermolov和Maxim Goryachy 谈到了Intel Management Engine 11中的一个漏洞,该漏洞可能允许攻击者访问设备上的大多数数据和进程。 我们在中心的博客中发布的问题的详细说明

Intel ME中的漏洞允许执行任意代码。 这危及所有技术,例如英特尔保护音频视频路径(PAVP),英特尔平台信任技术(PTT或fTPM),英特尔BootGuard,英特尔软件保护扩展(SGX)等。

您可以使用JTAG调试机制来拦截ME中的数据


通过利用bup模块中的错误,研究人员能够打开一种称为PCH红色解锁的机制,该机制允许通过DFx链(即使用JTAG)完全访问所有PCH设备。 这些设备之一是ME核心本身。 这样就可以调试在ME上运行的代码,读取所有进程和内核的内存,以及管理PCH中的所有设备。 计算表明,在现代计算机中,共有大约50个内部设备,只有ME可以完全访问它们,而主处理器仅具有非常有限的一部分。

此访问级别还意味着,即使计算机处于关闭状态,任何利用此漏洞的攻击者都可以绕过传统的基于软件的保护,并且可以发起攻击。

可以在移动版的ME中激活JTAG


英特尔TXE是ME的移动版本。 漏洞INTEL-SA-00086允许您激活内核子系统的JTAG。 Positive Technologies研究人员已经为技嘉Brix GP-BPCE-3350C平台开发了JTAG PoC 。 该实用程序可用于激活Intel TXE的JTAG。

可以使用未记录模式禁用子系统


在对英特尔管理引擎(ME)11版本的内部体系结构进行的研究中,Maxim Goryachy和Mark Ermolov 能够检测出一种在初始化设备并启动主处理器后禁用该技术的机制 。 他们发现,尽管不可能在现代计算机上完全禁用ME,但是子系统中有一种未记录的模式,称为High Assurance Platform(HAP)。 研究人员能够检测到特殊的HAP位,该位的安装使Intel ME在加载的早期阶段处于关机模式。

High Assurance Platform的名称是与美国国家安全局(NSA)相关的信任平台程序。 在线提供有关程序说明的演示文稿 。 可能是应美国政府服务的要求引入了此机制,该服务旨在减少通过辅助渠道泄漏数据的可能性。

ME安全漏洞影响了MacBook


今年6月,Apple以代码CVE-2018-4251 发布了涵盖ME中漏洞的更新。 这次,该错误包含在Intel ME制造模式组件中-这是一种服务运行模式,旨在在生产阶段配置,配置和测试最终平台。 此模式允许您设置存储在一次写入存储器(FUSES)中的关键平台参数。 在设备开始销售并交付给用户之前,必须将其关闭。

英特尔公共文档中没有描述此模式及其潜在风险。 普通用户无法自己关闭它,因为从英特尔ME系统工具包管理他的实用程序尚未正式提供。

该漏洞使具有管理员权限的攻击者可以未经授权访问固件的关键部分,在其中写入易受攻击的Intel ME版本,并通过其操作秘密地将其自身固定在设备上。 将来,他将能够完全控制计算机并从事间谍活动,而不会被发现。

脆弱的英特尔芯片组在全球范围内使用,从家用和办公笔记本电脑到企业服务器。 英特尔先前发布的更新并未排除利用漏洞CVE-2017-5705,CVE-2017-5706和CVE-2017-5707的可能性,因为如果攻击者拥有对ME区域的写访问权限,则他始终可以记录ME的漏洞版本并利用此漏洞。在她里面。

英特尔两次在ME中修补相同的错误


7月初,英特尔发布了两个安全公告( SA-00112SA-00118 ),其中描述了英特尔管理引擎固件中的修复程序。 这两个安全公告都描述了使攻击者能够在内部PCH处理器(分钟IA)上执行任意代码的错误。

这些错误类似于Positive Technologies安全专家于2017年11月发现的错误( SA-00086 )。 但是,故事并没有就此结束,随后英特尔在ME中发布了新的漏洞修复程序。

SA-00118中描述的CVE-2018-3627在公告中被标记为逻辑错误(这不是缓冲区溢出),这导致执行任意代码。 对于其操作,攻击者需要本地访问,而SA-00086中提到的漏洞仅在OEM进行的系统配置错误的情况下可以在本地利用。 这种情况使漏洞更加危险。

对于CVE-2018-3628(在SA-00112中进行了描述),情况甚至更糟。 Management Engine固件的AMT进程中的漏洞会导致远程执行代码,并且攻击者无需拥有AMT管理员帐户,就像使用SA-00086中的CVE-2017-5712一样。

英特尔将该错误描述为“ HTTP处理程序中的缓冲区溢出”,这表明有可能在未经授权的情况下远程执行代码。 这是所有英特尔平台用户都担心的最坏情况。

有几种方法可以打开ME加密密钥


在这次“冒险”中,英特尔ME并没有结束。 已经在秋天,该公司不得不修复子系统中的另一个错误,这导致了英特尔ME中加密密钥的泄露-积极技术研究人员Dmitry Sklyarov和Maxim Goryachiy发现了该错误。

英特尔ME(管理引擎)使用MFS(据说是ME File System的缩写)来存储数据。 MFS安全机制主动使用加密密钥。 机密性密钥用于确保存储在MFS中的数据的机密性,而完整性密钥则用于控制完整性。 根据重要程度,放置在MFS中的数据分为两类,并由不同的密钥集保护。 Intel密钥用于最敏感的数据,而非Intel密钥用于其他所有内容。 因此,使用了四个密钥:Intel完整性密钥,Non-Intel Integrity密钥,Intel保密性密钥和Non-Intel保密性密钥。

利用Mark Ermolov和Maxim Goryachy先前发现的漏洞,您可以获取所有四个密钥并完全破坏MFS安全机制。 英特尔已经发布了一个更新来关闭此漏洞。 SVN(安全版本号)的值增加了-此步骤是更新所有密钥,并使MFS安全性恢复到计划的级别。 获取更新的ME固件(具有新的SVN值)的MFS密钥应该是不可能的。

但是,早在2018年,Positive Technologies研究人员就发现了漏洞CVE-2018-3655,该漏洞已在Intel-SA-00125中进行了描述。 问题的实质在于,非Intel密钥取决于SVN的值以及子系统的底层不变密钥。 而且,如果您使用JTAG调试(可以使用先前的漏洞启用此功能)可以获取此秘密。 了解子系统的基本机密后,您就可以计算两个非Intel密钥-所有这些都已经在新的固件版本中。

因此,攻击者可以使用更新的SVN值来计算固件的Non-Intel Integrity密钥和Non-Intel机密性密钥,从而损害依赖于这些密钥的MFS安全机制。

接下来是什么


不久前,我们在博客上发布了MacBook中漏洞CVE-2018-4251的详细分析 。 现在,Mark Ermolov和Maxim Goryachy在HiTB 2018大会上将讨论攻击者如何利用它进行攻击。 我们还将讨论保护方法-例如,使用我们专家的专用工具

Source: https://habr.com/ru/post/zh-CN430132/


All Articles