Root-Lücken in FireEye Appliances

FireEye Root-Lücke

Eine unter IT Sicherheitsleuten prominente Sau, die durch’s Dorf getrieben wird, ist momentan FireEye mit der von Kristian Erik Hermansen bekannt gewordenen Root-Lücke. Diese Lücke soll es erlauben auf Passwörter zu gelangen bzw. die gesamten Geräte zu übernehmen. Bei FireEye’s Lösungen handelt es sich nicht direkt um OpenSource, auch wenn diese intern wohl zum Einsatz kommt. Scheinbar sind die Lücken durch eben diese andere Software verursacht worden, aber das ist momentan noch nicht ganz klar. Viel interessanter ist was FireEye’s Appliances eigentlich machen und wie diese Lücke funktioniert.

FireEye Appliances

FireEye ist bekannt für seine ausgezeichneten Hardware Appliances, die unter anderem mit Erfolg Unternehmen vor Malware schützen, die unbekannt ist. Dabei geht eine Appliance wie folgt vor:

  • Der User möchte Datei abc.exe von einer Webseite herunterladen
  • Die FireEye Appliance sitzt im Kommunikationsweg und lädt die Datei vorerst herunter
  • Innerhalb der FireEye Hardware werden nun viele unterschiedlich konfigurierte Windows Systeme parallel hochgefahren
  • Die vermeintlich bösartige Datei wird in alle sogenannten Sandboxe gestartet und das Verhalten wird analysiert

Es gibt zwei Möglichkeiten, wie die Appliance reagieren kann:

  1. Die Datei wird auf Grund des Verhaltens als bösartig eingestuft: Damit wird sie gelöscht und nicht dem User zur Verfügung gestellt.
  2. Die Datei wird auf Grund des Verhaltens als gutartig eingestuft: Damit wird sie an den User weitergeleitet

Problematiken hier tauchen einige auf. Was passiert beispielsweise, wenn ein Timer in der Malware 30 Minuten wartet? Die Appliance darf nur wenige Sekunden für die Prüfung in Anspruch  nehmen. Damit könnte man nun die Fähigkeiten der FireEye Appliance hier etwas eingrenzen, es kann aber durchaus sein, dass sich der Hersteller mit diesem Problem bereits auseinander gesetzt hat. Mein Wissensstand ist da nicht ganz aktuell, da ich mit alternativen Produkten arbeite.

Root-Lücke im Detail

Es gibt grundsätzlich den Pastebin Link zur Root-Lücke, der jede Menge Informationen bereit stellt. Wir wissen nun nicht genau, welche Appliance Art betroffen sein könnte. Die von mir beschriebene ist eine mir bekannten, es gibt aber noch jede Menge andere Lösungen von FireEye. Aber schauen wir uns den Exploit etwas näher an.

Mit folgender URL gibt es einen Zugriff auf eine wichtige Datei in Linux Systemen, nämlich die Passwortdatei:

  • https://fireeyeapp/script/NEI_ModuleDispatch.php?module=NEI_AdvancedConfig&function=HapiGetFileContents&name=../../../../../../../../../../../etc/passwd&extension=&category=operating%20system%20logs&mode=download&time=…&mytoken=…

Die URL muss man nun auftrennen, um genau zu verstehen, was hier passiert:

  • https://fireeyeapp/:

Hier müsste eigentlich die IP Adresse oder der Name der Appliance stehen. Beispiel: https://10.1.1.4/

  • /script/NEI_ModuleDispatch.php?module=NEI_AdvancedConfig&function=HapiGetFileContents

Dieser Aufruf ruft also eine PHP Datei Namens NEI_ModuleDispatch.php auf. Dort wird die Variable module mit dem Wert NEI_AdvancedConfig&function=HapiGetFileContents gefüllt. Das heißt, es wird die Funktion beginnend mit Hapi etc. aufgerufen, die wohl laut Namen dafür gedacht ist, Inhalte aus Dateien zu lesen.

  • &name=../../../../../../../../../../../etc/passwd&extension=&category=operating%20system%20logs&mode=download

Mit dem kaufmännischen UND können Parameter hintereinander übergeben werden. Wir wollen ja mit der Methode nicht ins Leere greifen, deswegen steht hinter dem Parameter name nun auch der Pfad der Datei. Dieser sieht sehr seltsam aus und beginnt mit vielen ../../. Dies bedeutet, dass sich bei der Ausführung die Datei NEI_ModouleDispatch.php sehr tief in Ordnerstrukturen befindet. Aus denen muss man mit ../../ herausspringen um schließlich in /etc/ zu gehen, um dort die Datei passwd zu finden.

Blog aktiv unterstützen

Im Anschluss folgen noch ein paar Parameter, aber ein wichtiger an der Stelle ist der letzte: mode=download. Darüber wird wohl gesagt, dass der Inhalt nicht einfach irgendwo im RAM liegen soll oder auf einer Konsole ausgegeben wird. Die Datei soll heruntergeladen werden. Und das passiert auch, wie man im Pastbin Post sieht.

Zusätzlich lässt wohl FireEye den Webserver, der diese ganzen URL Aufrufe möglich macht im Kontext des Administrators laufen. Das ist für Tests in Ordnung, aber nicht bei produktiven Systemen. Hier muss ein eigener User im System hinterlegt sein, der nur die nötigsten Rechte hat. Möglichst keiner der andere Nutzer anlegen oder sperren kann, oder schlimmer.

Fazit

FireEye ist nicht dadurch schlecht. Jeder Software Hersteller hat schon öfter Probleme gehabt mit Bugs und Sicherheitslücken. Software ist nun einmal fehlerbehaftet. Daran wird niemand etwas ändern können. Ich halte FireEye’s angebliches monatelanges Schweigen für Fehl am Platz, zumindest in dieser Branche. Eine Lücke muss nicht veröffentlicht werden, bis Hersteller reagieren, um diese dann zu schließen. Jeder Hinweis, muss als ernsthaft betrachtet und von einem Team analysiert werden, denn jede Lücke ist auch ein Imageschaden.

Artikel teilen:

Kommentar verfassen