Wie kann die Intel-Sicherheitsanfälligkeit bezüglich der Eskalation von Berechtigungen auf einem Linux-System erkannt und gemindert werden (CVE-2017-5689)?

26

Laut dem Intel Security Center-Beitrag vom 1. Mai 2017 liegt eine kritische Sicherheitsanfälligkeit bei Intel-Prozessoren vor, durch die ein Angreifer mithilfe von AMT, ISM und SBT Privilegien erlangen kann (Eskalation von Privilegien).

Da der AMT direkten Zugriff auf die Netzwerkhardware des Computers hat, ermöglicht diese Sicherheitsanfälligkeit einem Angreifer den Zugriff auf jedes System.

In den Versionen 6.x, 7.x, 8.x, 9.x und 10 von Intel® Active Management Technology (AMT), Intel® Standard Manageability (ISM) und Intel® Small Business Technology besteht eine Eskalation der Sicherheitsanfälligkeit bezüglich Berechtigungen .x, 11.0, 11.5 und 11.6, mit denen ein nicht privilegierter Angreifer die Kontrolle über die Verwaltbarkeitsfunktionen dieser Produkte erlangen kann. Diese Sicherheitsanfälligkeit besteht auf Intel-basierten Consumer-PCs nicht.

Intel hat ein Erkennungstool für Windows 7 und 10 veröffentlicht. Ich verwende Informationen von dmidecode -t 4und habe bei der Suche auf der Intel-Website festgestellt, dass mein Prozessor verwendet Intel® Active Management Technology (Intel® AMT) 8.0.

Betroffene Produkte:

Das Problem wurde in den Intel Manageability-Firmware-Versionen 6.x, 7.x, 8.x, 9.x, 10.x, 11.0, 11.5 und 11.6 für Intel® Active Management Technology, Intel® Small Business Technology und Intel beobachtet ® Standard-Verwaltbarkeit. Versionen vor 6 oder nach 11.6 sind nicht betroffen.

Die Beschreibung:

Ein nicht privilegierter lokaler Angreifer kann Verwaltbarkeitsfunktionen bereitstellen, mit denen nicht privilegierte Netzwerk- oder lokale Systemrechte für Intel-Verwaltbarkeits-SKUs erworben werden: Intel® Active Management-Technologie (AMT), Intel® Standard-Verwaltbarkeit (ISM) und Intel® Small Business-Technologie (SBT).

Wie kann ich die Intel-Sicherheitsanfälligkeit bezüglich der Eskalation von Berechtigungen auf einem Linux-System auf einfache Weise erkennen und mindern?

GAD3R
quelle
1
Der Fall ist noch komplizierter, wenn viele von uns VMs verwenden. Wäre es für echte Maschinen ausreichend, auf das Vorhandensein eines Dienstes bei UDP 16992 zu scannen? +1
Rui F Ribeiro
2
Vorbeugende Schritte: Verwenden Sie SPARC (ich weiß, ich weiß, keine praktikable Lösung). Haben Sie ein +1
Fox
3
@ Fox Komischerweise ist die ME-CPU in Intel-Prozessoren heutzutage ein SPARC ;-).
Stephen Kitt
2
@ StephenKitt Wirklich? Möglicherweise muss ich meine Haltung zu Intels Chips überdenken! Fast alle meine Maschinen sind PPC oder SPARC, also muss ich zugeben, dass meine Vorurteile real sind
Fox

Antworten:

18

Der klarste Beitrag, den ich zu diesem Thema gesehen habe, ist der von Matthew Garrett (einschließlich der Kommentare).

Matthew hat jetzt ein Tool veröffentlicht, mit dem Sie Ihr System lokal überprüfen können: Erstellen, Ausführen mit

sudo ./mei-amt-check

und es wird gemeldet, ob AMT aktiviert und bereitgestellt ist, und wenn ja, welche Firmware-Versionen (siehe unten). Die README enthält weitere Details.

Um Ihr Netzwerk auf potenziell anfällige Systeme zu scannen, scannen Sie die Ports 623, 624 und 16992 bis 16993 (wie in Intels eigenem Dokument zur Schadensbegrenzung beschrieben ). beispielsweise

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

scannt das 192.168.1 / 24-Netzwerk und meldet den Status aller Hosts, die antworten. Die Verbindung zu Port 623 ist möglicherweise falsch positiv (andere IPMI-Systeme verwenden diesen Port), aber jeder offene Port von 16992 bis 16995 ist ein sehr guter Indikator für aktiviertes AMT (zumindest, wenn sie angemessen reagieren: mit AMT bedeutet dies) eine HTTP-Antwort auf 16992 und 16993 (letztere mit TLS).

Wenn an den Ports 16992 oder 16993 Antworten angezeigt werden, wird beim Herstellen einer Verbindung zu diesen Ports und beim Anfordern /von HTTP eine Antwort mit einer ServerZeile zurückgegeben, die auf Systemen mit aktiviertem AMT „Intel (R) Active Management Technology“ enthält. Dieselbe Zeile enthält auch die Version der verwendeten AMT-Firmware, die dann mit der im Hinweis von Intel angegebenen Liste verglichen werden kann, um festzustellen, ob sie anfällig ist.

In der Antwort von CerberusSec finden Sie einen Link zu einem Skript, mit dem das oben Genannte automatisiert wird.

Es gibt zwei Möglichkeiten, das Problem „richtig“ zu beheben:

  • Aktualisieren Sie die Firmware, sobald der Hersteller Ihres Systems ein Update bereitstellt (falls jemals).
  • Vermeiden Sie die Verwendung des Netzwerkanschlusses, der AMT bereitstellt, entweder durch Verwendung einer nicht AMT-fähigen Netzwerkschnittstelle in Ihrem System oder durch Verwendung eines USB-Adapters (viele AMT-Workstations, z. B. C226 Xeon E3-Systeme mit i210-Netzwerkanschlüssen, haben nur einen AMT-fähigen Netzwerkanschluss). fähige Netzwerkschnittstelle - der Rest ist sicher, beachten Sie, dass AMT über WLAN arbeiten kann, zumindest unter Windows, so dass die Verwendung von integriertem WLAN auch zu einer Gefährdung führen kann).

Wenn keine dieser Optionen verfügbar ist, befinden Sie sich im Gebiet der Schadensbegrenzung. Wenn Ihr AMT-fähiges System noch nie für AMT bereitgestellt wurde, sind Sie einigermaßen sicher. In diesem Fall kann AMT anscheinend nur lokal aktiviert werden, und soweit ich das beurteilen kann, muss die Firmware Ihres Systems oder die Windows-Software verwendet werden. Wenn AMT aktiviert ist, können Sie einen Neustart durchführen und die Firmware zum Deaktivieren verwenden (drücken, CtrlPwenn die AMT-Meldung während des Startvorgangs angezeigt wird).

Grundsätzlich ist die Sicherheitsanfälligkeit in Bezug auf Berechtigungen zwar recht unangenehm, die meisten Intel-Systeme scheinen jedoch nicht betroffen zu sein. Für Ihre eigenen Systeme, auf denen Linux oder ein anderes Unix-ähnliches Betriebssystem ausgeführt wird, ist für die Eskalation wahrscheinlich ein physischer Zugriff auf das System erforderlich, um AMT überhaupt zu aktivieren. (Windows ist eine andere Geschichte.) Auf Systemen mit mehreren Netzwerkschnittstellen, auf die Rui F. Ribeiro hingewiesen hat , sollten Sie AMT-fähige Schnittstellen genauso behandeln wie administrative Schnittstellen (IPMI-fähig oder die Host-Schnittstelle) für einen VM-Hypervisor) und isolieren Sie ihn in einem administrativen Netzwerk (physisch oder VLAN). Sie können sich nicht darauf verlassen, dass ein Host sich selbst schützt: iptablesusw. sind hier unwirksam, da AMT Pakete vor dem Betriebssystem erkennt (und AMT-Pakete für sich behält).

VMs können Dinge komplizieren, aber nur in dem Sinne, dass sie AMT verwirren und somit verwirrende Scanergebnisse erzeugen können, wenn AMT aktiviert ist. amt-howto(7)Das Beispiel zeigt Xen-Systeme, in denen AMT die Adresse verwendet, die einer DomU über DHCP zugewiesen wurde. Dies bedeutet, dass bei einem Scan AMT auf der DomU aktiv ist und nicht Dom0 ...

Stephen Kitt
quelle
Gibt es keine lokale Möglichkeit, AMT unter Linux auf dem Computer zu erkennen? Mit /proc/cpuinfooder dmidecode?
Dolmen
Bedeutet das, dass ein System vor dieser Sicherheitsanfälligkeit geschützt ist, wenn es auf keinen dieser Ports reagiert, oder dass es dennoch lokal ausgenutzt werden kann?
Comfreak
Die Reduzierung auf Laptops kann in Form der Verwendung von USB-Netzwerkkarten anstelle der integrierten erfolgen.
Michael Mol
1
Sie schreiben "Beachten Sie, dass AMT über WLAN funktioniert, zumindest unter Windows". Ich dachte, dass diese Sicherheitsanfälligkeit unabhängig vom Betriebssystem funktioniert?
Wurtel
1
@wurtel Die Sicherheitsanfälligkeit ist bei kabelgebundenen Schnittstellen vom Betriebssystem unabhängig, bei Wi-Fi-Anwendungen scheint AMT die Zusammenarbeit des Treibers des laufenden Betriebssystems zu erfordern: Es fängt keine Pakete ab, sondern verlässt sich darauf, dass das Betriebssystem entsprechende Pakete an das Betriebssystem weiterleitet (wie ich es verstehe) - beachten Sie, dass ich diese Seite der Dinge nicht getestet habe).
Stephen Kitt
8

Das einfache Erkennen der offenen Ports für diesen Dienst ist nicht ausreichend. Es zeigt nicht an, ob die Version betroffen ist oder nicht. Unser Team hat ein Python-Skript erstellt, das auf unserem Github verfügbar ist: CerberusSecurity / CVE-2017-5689 , das erkennt, ob ein Zielsystem für Remoteangriffe anfällig ist.

Beispielnutzung:

python CVE_2017_5689_detector.py 10.100.33.252-255

Auf diese Weise können Sie überprüfen, ob Sie aus der Ferne ausnutzbar sind. Wenn Sie interessiert sind, haben wir unter http://cerberussec.org/ auch einen kurzen Blogeintrag verfasst, in dem wir diese Sicherheitsanfälligkeit aufgreifen.

CerberusSec
quelle