Bundesamt für Sicherheit in der Informationstechnik

G 5.149 Missbräuchliche Nutzung von Gastwerkzeugen in virtuellen IT-Systemen

Bei vielen Virtualisierungsprodukten werden in den virtuellen IT -Systemen sogenannte Gastwerkzeuge installiert. Mit diesen Gastwerkzeugen können zum Einen die für Betriebssystemvirtualisierung notwendigen Gerätetreiber für virtuelle oder emulierte Geräte wie Netzwerkkarten, Festplatten oder Grafikkarten bereitgestellt werden. Zum Anderen werden mit diesen Werkzeugen innerhalb der virtuellen IT-Systeme Programme zur Kommunikation mit dem Hypervisor oder dem Hostbetriebssystem, zur Steigerung der Leistung des virtuellen IT-Systems und zur Vereinfachung der Bereitstellung neuer virtueller IT-Systeme installiert. Mit Hilfe der Gastwerkzeuge können des Weiteren die virtuellen IT-Systeme überwacht werden. Der Hypervisor oder das Hostbetriebssystem überwacht hierüber beispielsweise die Verfügbarkeit und die Leistung des Gastes.

Die Gastwerkzeuge werden wegen ihrer systemnahen Funktion häufig mit sehr hohen Berechtigungen ausgeführt. Häufig laufen sie im Kontext und damit mit den Rechten des Betriebssystemkerns der virtuellen Maschine.

Funktionen wie die Überbuchung von Hauptspeicher oder Massenspeicherplatz für virtuelle IT-Systeme werden zwischen dem Hypervisor und dem virtuellen IT-System durch die Gastwerkzeuge koordiniert. Diese Funktionen stellen einen wesentlichen Mehrwert der Virtualisierungstechnik im Rechenzentrumsbetrieb dar.

Bei einigen für die Software-Entwicklung spezialisierten Virtualisierungsprodukten ist weiterhin eine Möglichkeit für den komfortablen Aufbau komplexer Testszenarien vorgesehen. Dies wird häufig ebenfalls über die Gastwerkzeuge realisiert oder unterstützt. Hierzu haben die Gastwerkzeuge Schnittstellen, um Skriptdateien auf virtuelle IT-Systeme zu übertragen. Diese Skripte können dann ebenfalls über die Gastwerkzeuge im virtuellen IT-System ausgeführt werden. Es können alle in dem virtuellen IT-System verfügbaren Skriptsprachen genutzt werden. Der Start der Skripte kann entweder beim Systemstart, der Anmeldung eines Benutzers oder auch zu jeder anderen beliebigen Zeit angestoßen werden. Die Schnittstellen benötigen in der Regel keine Netzverbindung zwischen den Gastsystemen, sondern werden über den Hypervisor oder das Hostbetriebssystem bereitgestellt.

Diese Schnittstellen für Skripte können durch einen Angreifer ausgenutzt werden, um eine unerwünschte und nicht mit klassischen Mitteln kontrollierbare Kommunikation über mehrere virtuelle IT-Systeme hinweg aufzubauen. Hierbei überträgt der Angreifer die Daten über die Schnittstelle zum Transport von Skriptdateien.

Weiterhin ist es einem Angreifer bei den beschriebenen für die Software-Entwicklung konzipierten Virtualisierungsprodukten möglich, mittels der Gastwerkzeuge von einem virtuellen IT-System aus eigene Skriptdateien auf ein anderes virtuelles IT-System zu übertragen. Diese können mit den Rechten, mit denen die Gastwerkzeuge laufen, ausgeführt werden. Auf Grund der weit reichenden Berechtigung der Gastwerkzeuge ist dies besonders kritisch, da damit beliebige Aktionen in dem betroffenen Gastsystem ausführbar sind. Es können beispielsweise Schadprogramme gestartet, Benutzer angelegt, Gruppenmitgliedschaften verändert oder die Konfiguration des Betriebssystems des virtuellen IT-Systems manipuliert werden.

Denial of Service durch Überbuchung von Ressourcen

Einige Virtualisierungsprodukte ermöglichen die Überbuchung verschiedener Ressourcen wie Festplattenplatz oder RAM . Konkurrieren beispielsweise zwei virtuelle IT-Systeme um Arbeitsspeicher, kann das Hostbetriebssystem oder der Hypervisor die Gastwerkzeuge anweisen, virtuelles RAM in dem einen virtuellen IT-System zu reservieren. Die physikalische Repräsentation dieses Speichers wird nun durch das virtuelle IT-System nicht genutzt. Der Hypervisor kann diesen physikalischen Speicher dem anderen virtuellen IT-System als virtuelles RAM zur Verfügung stellen. Andersherum kann ein virtuelles IT-System über die Gastwerkzeuge auch Hauptspeicher anfordern.

Hat ein Angreifer ein virtuelles IT-System unter seiner Kontrolle, könnte er über ein Schadprogramm so viel Hauptspeichern anfordern, dass dieser für andere virtuelle IT-Systeme knapp wird. Hierdurch wird die Leistungsfähigkeit der anderen virtuellen IT-Systeme bis hin zu einer Denial of Service-Attacke beeinflusst. Der gleiche Effekt tritt auf, wenn ein Angreifer von außen auf einen Dienst eines virtuellen IT-Systems in der Weise zugreift, dass dieser sehr viel Speicher belegt.

Wird eine Funktion zur Überbuchung von Festplattenplatz genutzt, existiert meist ebenfalls eine Möglichkeit, diesen Speicher wieder frei zu geben. Dies geschieht dadurch, dass unbenutzter Speicherplatz zusammengefasst und als frei markiert wird.

Löst ein Angreifer einen solchen Prozess in einem virtuellen IT-System aus, werden die Speichersysteme stark belastet. Auch hierdurch kann die Leistungsfähigkeit anderer IT-Systeme verringert werden.

Beispiele:

  • Ein Systemhaus bearbeitet Softwareentwicklungsaufträge für verschiedene Kunden. Hierzu wird durch das Systemhaus eine auf Entwicklungsaufgaben spezialisierte Virtualisierungsumgebung betrieben, da für die Entwicklung von Client-Server-Anwendungen umfangreiche Testszenarien aufgebaut werden müssen. Die Testsysteme für diese Szenarien werden über mehrere Vorlagen für verschiedene virtuelle Server und Clients bereitgestellt, die bei Bedarf kopiert und an das jeweilige Testszenario angepasst werden.
    Aufgrund der schlechten Auftragslage des Systemhauses müssen einige Entwickler entlassen werden. Einer der entlassenen Entwickler will sich für seine Entlassung rächen und entwickelt ein Skript, dass ein virtuelles Testsystem immer wieder auf den Ursprungszustand der Vorlage zurücksetzt, sobald sich ein Benutzer zum zweiten Mal an dem virtuellen System anmeldet. Dabei sieht es so aus, als hätte der Benutzer, der sich angemeldet hat, den Rücksetzvorgang ausgelöst. Tatsächlich wird dieses Skript jedes mal durch die Virtualisierungssoftware in das Testsystem eingebracht, sobald es zum zweiten Mal gestartet wird. Zusätzlich überträgt sich das Skript selbständig über eine Virtualisierungsfunktion auf jedes in der virtuellen Infrastruktur laufende virtuelle Testsystem.
    Die Verantwortlichen des Systemhauses vermuten einen Wurmbefall ihrer Systeme und beauftragen ein IT-Beratungsunternehmen mit der Durchführung einer Netzanalyse, um die Ursache des Problems zu ermitteln. Das Beratungsunternehmen kann aber keine Auffälligkeiten im Netz des Systemhauses feststellen. Nur durch einen Zufall bemerkt einer der Entwickler den von seinem ehemaligen Kollegen durchgeführten Angriff auf die Testumgebung.
    Durch die Fehlersuche und die Störung des Testbetriebs wurden erhebliche personelle Ressourcen gebunden und Termine nicht eingehalten. Dadurch entstand dem schon finanziell geschwächten Systemhaus weiterer Schaden.
  • Ein Dienstleister betreibt eine Webserverfarm für mehrere Kunden. Um Hardwarekosten zu sparen, hat er die Webserver virtualisiert. Dabei stellt er den Kunden für deren virtuelle Systeme in Summe sehr viel mehr Hauptspeicher zur Verfügung als in der virtuellen Infrastruktur tatsächlich vorhanden ist. Da die Webserver der Kunden in der Regel nur schwach ausgelastet sind, kommt es zu keinen spürbaren Performanceeinschränkungen in den virtuellen Systemen.
    Einer der Webserver der Kunden wird nun Opfer eines Denial of Service-Angriffs. Dabei verbraucht dieses virtuelle IT-System sehr viel Hauptspeicher. Dieser Speicher steht allerdings in dem physischen Virtualisierungsserver, auf dem der virtuelle Webserver läuft, nicht als frei zur Verfügung, sondern wird von anderen virtuellen Webservern genutzt. Um dem angegriffenen System diesen Speicher zur Verfügung stellen zu können, muss dieser von anderen virtuellen IT-Systemen freigegeben werden. Der Hypervisor des Virtualisierungsservers verknappt somit den Hauptspeicher für alle anderen unter seiner Kontrolle laufenden, virtuellen Webserver. In der Folge steigen die Antwortzeiten der virtuellen Webserver stark an. Teilweise kommt es hier zu Verbindungsabbrüchen, so dass auch die virtuellen Webserver, die nicht direkt Ziel des DoS-Angriffs waren, nicht mehr verfügbar sind.

Stand: 12. EL Stand 2011