如何检测和缓解Linux系统上的Intel特权升级漏洞(CVE-2017-5689)?


26

根据2017年5月1日英特尔安全中心发布的信息,英特尔处理器上存在一个严重漏洞,该漏洞可能允许攻击者使用AMT,ISM和SBT获得特权(特权升级)。

由于AMT可以直接访问计算机的网络硬件,因此该硬件漏洞将使攻击者可以访问任何系统。

英特尔®主动管理技术(AMT),英特尔®标准可管理性(ISM)和英特尔®小型企业技术版本的固件版本6.x,7.x,8.x 9.x,10中存在特权提升漏洞.x,11.0、11.5和11.6,它们可以允许没有特权的攻击者控制这些产品提供的可管理性功能。在基于Intel的消费类计算机上不存在此漏洞。

英特尔已经发布了适用于Windows 7和10 的检测工具。我正在使用来自dmidecode -t 4英特尔网站的信息,并且通过在英特尔网站上搜索发现自己的处理器正在使用Intel® Active Management Technology (Intel® AMT) 8.0

受影响的产品:

在针对英特尔®主动管理技术,英特尔®小型企业技术和英特尔的英特尔可管理性固件版本6.x,7.x,8.x 9.x,10.x,11.0、11.5和11.6中已发现该问题。 ®标准可管理性。6之前或11.6之后的版本不受影响。

说明:

无特权的本地攻击者可以提供可管理性功能,以获取有关英特尔可管理性SKU的非特权网络或本地系统特权:英特尔®主动管理技术(AMT),英特尔®标准可管理性(ISM)和英特尔®小型企业技术(SBT)

如何轻松检测和缓解Linux系统上的Intel特权升级漏洞?


1
当我们许多人使用虚拟机时,情况变得更加复杂。对于真实机器,在UDP 16992上扫描服务是否存在就足够了吗?+1
Rui F Ribeiro'5

2
预防步骤:使用SPARC(我知道,我知道,这不是可行的解决方案)。拥有+1
Fox

3
@Fox如今已经足够有趣,英特尔处理器中的ME CPU是SPARC ;-)。
史蒂芬·基特

2
@StephenKitt真的吗?我可能不得不重新考虑我对英特尔芯片的立场!几乎所有我的机器是PPC或SPARC,所以我不得不承认我的偏见是真实的
福克斯

Answers:


18

我在该问题上看到的最清晰的帖子是Matthew Garrett的帖子(包括评论)。

Matthew现在发布了一个工具,可以在本地检查系统:构建,运行

sudo ./mei-amt-check

并报告是否启用和配置了AMT,以及是否启用了固件版本(请参见下文)。该自述有更多的细节。

要扫描网络中可能存在漏洞的系统,请扫描端口623、624和16992至16993(如英特尔自己的缓解文档所述);例如

nmap -p16992,16993,16994,16995,623,664 192.168.1.0/24

将扫描192.168.1 / 24网络,并报告所有响应主机的状态。能够连接到端口623可能是一个误报(其他IPMI系统使用该端口),但是从16992到16995的任何开放端口都可以很好地表明已启用AMT(至少在它们做出适当响应的情况下:对于AMT,这意味着在16992和16993上使用HTTP响应,后者使用TLS)。

如果在端口16992或16993上看到响应,则在启用AMT的系统上,连接到端口并/使用HTTP 请求将返回一条响应,其中Server包含“ Intel(R)Active Management Technology”。同一行还将包含正在使用的AMT固件的版本,然后可以将其与英特尔咨询中列出的列表进行比较,以确定它是否容易受到攻击。

有关自动执行上述操作的脚本的链接,请参见CerberusSec的答案

有两种方法可以“适当”解决此问题:

  • 一旦系统的制造商提供了更新,就升级固件(如果有);
  • 避免通过系统上不支持AMT的网络接口或使用USB适配器使用提供AMT的网络端口(许多AMT工作站,例如具有i210网络端口的C226 Xeon E3系统,只有一个AMT-支持网络的接口-其余的都是安全的;请注意,AMT至少可以在Windows上通过wi-fi工作,因此使用内置wi-fi也会导致麻烦。

如果这些选项都不可用,那么您处于缓解区域。如果从未为AMT配备可支持AMT的系统,则说明您相当安全;在那种情况下,启用AMT显然只能在本地完成,据我所知,这需要使用系统的固件或Windows软件。如果启用了AMT,则可以重新引导并使用固件将其禁用(CtrlP在引导过程中显示AMT消息时按)。

基本上,尽管特权漏洞非常严重,但似乎大多数英特尔系统实际上并未受到影响。对于运行Linux或其他类似Unix操作系统的您自己的系统,升级可能首先需要对系统进行物理访问以首先启用AMT。(Windows是另一回事。)如Rui F Ribeiro指出的那样,在具有多个网络接口的系统上,您应该以与对待任何管理接口(具有IPMI功能或主机接口)相同的方式对待具有AMT功能的接口。 (适用于VM虚拟机管理程序),并将其隔离在管理网络(物理或VLAN)上。您不能依靠主机来保护自己:iptables这在这里是无效的,因为AMT会在操作系统之前看到数据包(并将AMT数据包保留给自己)。

VM会使事情复杂化,但仅在某种意义上,如果启用了AMT,它们会混淆AMT,从而产生令人困惑的扫描结果。amt-howto(7)给出了Xen系统的示例,其中AMT使用通过DHCP分配给DomU的地址(如果有的话),这意味着扫描将显示AMT在DomU而不是Dom0上处于活动状态...


是否没有本地方法可以从计算机上的Linux中检测AMT?使用/proc/cpuinfodmidecode
支石墓

这是否意味着如果系统不响应这些端口中的任何一个,则可以抵御此漏洞,或者仍然可以在本地对其进行利用?
comfreak

笔记本电脑上的缓解措施可以采取使用USB NIC而不是内置NIC的形式。
Michael Mol's

1
您写道:“请注意,AMT至少可以在Windows上通过wi-fi运行”。我以为这个漏洞独立于操作系统而起作用?
Wurtel '17

1
@wurtel该漏洞与有线接口的操作系统无关,但是在wi-fi AMT上似乎需要运行中的操作系统驱动程序的配合:它不会拦截数据包,而是依赖于操作系统将适当的数据包转发给它(据我所知) —请注意,我还没有测试这一方面。
史蒂芬·基特

8

仅检测此服务的开放端口是不够的,它不能指示版本是否受到影响。我们的团队在github上创建了一个python脚本:CerberusSecurity / CVE-2017-5689,用于检测目标系统是否容易受到远程攻击。

用法示例:

python CVE_2017_5689_detector.py 10.100.33.252-255

这应该使您能够检查是否可以被远程利用。如果您有兴趣,我们还会在http://cerberussec.org/上写一篇简短的博客文章,介绍我们对该漏洞的看法。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.