Windows Server 2016: Sicherheit bei Virtualisierung über Container

Vor kurzem hat Microsoft sein neues Server Betriebssystem Windows Server 2016 angekündigt. Es folgt den Fußstapfen von Windows Server 2012 und bringt den Cloudgedanken sogar noch weiter. Virtualisierung ist zwar jedem bewusst, aber gerade hier ist in den letzten Jahren kein großer Paradigmenwechsel geschehen. Neben vielen Änderungen an Windows möchte Microsoft mittels Docker eine neue Virtualisierung an den Start bringen. Dieses neue Paradigma beherbergt nicht nur rein funktionelle Vorteile sondern auch die ein oder anderen Sicherheit Ansätze, da eine spezielle Container Technik verwendet wird.

Virtualisierung heute

Wer bereits mit Virtualisierung in Berührung gekommen ist, erkennt sofort die vielen Vorteile und möchte von da an nichts anderes mehr verwenden. Wo genau liegt aber große Mehrwert der Virtualisierung? Im privaten, wie im geschäftlichen, spart man sich teure Hardware und den Platz im Rechenzentrum oder auf dem Schreibtisch. Virtualisierung geht aber darüber hinaus. Es lassen sich Systemabbilder generieren, die jeder Zeit wieder eingespielt werden können. Eine enorm große Flexiblität bietet Platz für Fehlertoleranzen und einer nie dagewesenen Backupstrategie.

Im Detail ist eine virtuelle Maschine nichts anderes als ein Betriebssystem samt Applikationen. Alle Funktionen greifen zwar auf die Hardware zu, aber der sogenannte Hyper-Visor (Verwaltung der Virtualisierung) übernimmt Hardwareanfragen und sendet diese entsprechend an das Hostbetriebssystem. Hyper-Visoren heute sind u.a.:

  • Oracle Virtual Box
  • VMware Workstation/Player
  • VMware ESX/ESXi
  • Citrix XenServer / XenApp
  • Microsoft Hyper-V

Jede virtuelle Maschine hat also sein eigenes Windows, seine eigenen Daten, die alle mehrfach vorrätig gehalten werden. Bei 50 Windows Maschinen müsste ein Administrator 50 Systeme gründlich warten. Gleichzeitig müssen laufend Kopien von Kopien von Daten im RAM des Hyper-Visors geladen werden. Dies erzeugt unnötige Last, die vermieden werden kann und genau hier setzt Windows Server 2016 mit der Docker Engine an.

“Virtualisierung” über Container

Der sogenannte Docker Daemon ist unter Linux schon weit verbreitet. Jetzt gibt es eine Schnittstelle zu Windows und diese möchte Microsoft bestmöglichst umsetzen. Momentan sieht Docker eine Möglichkeit vor Nano Server zu starten. Auf dem Container Host bleiben alle Betriebssystemkomponenten des Server, aber jeder Container selbst beinhaltet nur seine spezifischen Aufgaben, die irgendwo getrennt sind vom eigentlichen Container Host. Damit ist es ein einfaches in kurzer Zeit Server hoch zu ziehen, die kleine oder auch große Aufgaben leisten. Ebenso schnell können die Server auch wieder entfernt werden, wenn benötigt.

Und genau hier sitzt auch der IT Sicherheit Gedanke. Wenn es nun einen Container Host auf Windowsbasis gibt, dann ist also jede Sicherheitslücke in Windows und Docker ein Einfallstor für zahlreiche Systeme, die als Nanoserver laufen. Webserver sind hier nur Beispiele. ERP Systeme oder ganze Datenbankserver können hier angedacht werden.

Blog aktiv unterstützen

Sicherheit in Windows Server 2016 mit Docker

Was ist nun das Problem der Container?

Habe ich den Container Host unter meiner Kontrolle, habe ich alle Nanoserver auch im Griff.

Das ist bei anderen Virtualisierungen wie Hyper-V leider ähnlich, aber noch nicht ganz so wild, da jede virtuelle Maschine für sich geschlossen ist. Sie kann verschlüsselt werden und vieles mehr, damit es Angreifern schwer gemacht wird. Im Falle der Container besteht eine stärkere Abhängigkeit zum Container Host, womit ein Angriff erfolgreicher wäre.

Offene Fragen lässt die aktuelle Technical Preview von Microsoft leider übrig. Wie wird der Container genau aussehen aus technischer Sicht? Abgeschottet, wie eine VM oder läuft ein Container nicht ganz im eigenen Kontext wie eine virtuelle Maschine? Alles das ist ausschlaggebend für eine Sicherheitsbewertung, denn wenn sich Microsoft in’s Zeug gelegt hat, dann dürfte mit Windows Server 2016 ein wichtiges neues Betriebssystem auf uns zu kommen.

Anwendungsgebiete: Sicher surfen

Ganz klar fallen mir hier VDI Systeme ein. Wieso das? Ein Nanoserver kann auch lediglich den Dienst Chrome, Firefox oder Internet Explorer starten und als Unterbau seinen Container Host verwenden. Das hat den Vorteil, dass ich in sehr kurzer Zeit ein eigenes System hochziehen kann, dass einen neuen Browser inne hat. Sobald ich mich hiermit infizieren würde, könnte ich den Server einfach löschen lassen und einen neuen Container aufbauen.

Der neue Container ist wie ein Ausgangspunkt und ich habe ein frisches System als User. Damit kommt die Malware vielleicht in das interne Netz, doch ist sie unschädlich gemacht worden. Der User bekommt zumindest nicht selbst den Trojaner auf das Notebook gespielt, denn ein Surfen ist nur über einen Nanoserver möglich, mit vorinstalliertem und gehärtetem Windows.

Darüber hinaus sind momentan die Shielded VMs in Entwicklung. Mit ihrer Hilfe soll der Zugriff von VM auf VM unterbunden werden. Jede virtuelle Maschine wird dadurch isoliert von jeder anderen. Malware wird sich somit höchstwahrscheinlich nicht so einfach verbreiten können. Ich sage deswegen höchstwahrscheinlich, da es selbstverständlich immer sein kann, dass jemand Exploits in Windows Server 2016 kennt und diese verwendet.

Kurzanleitung für Docker

Docker kann in Windows Server 2016 Technical Preview 3 nur über die Powershell bedient werden. Dies ist aber nicht schlimm oder kompliziert und relativ einfach durch zu führen:

Vorbereitung

  • Im ersten Schritt muss die Kommandozeile von Windows mit administrativen Rechten gestartet werden (cmd.exe)
Kommandokonsole
Kommandokonsole
  • Die Powershell lässt sich mit powershell starten
Powershell
Powershell

Erstellung von Docker Container

Um nun einen Container zu erzeugen muss man als erstes wissen, auf welcher Image Grundlage der neue Container erzeugt wird.

docker images

Eines der Images muss nun genommen werden. Wir gehen davon aus, dass es bereits Images gibt und unser Demonstrationsimage ganz einfach windowsdockerimage heißt. Mit einem weiteren Befehl lässt sich nun ein neuer Container anlegen.

docker run -it --name dockerdemo windowsdockerimage cmd

Ab jetzt arbeitet man direkt im Container dockerdemo und kommt mit dem Befehl exit wieder zurück zum Host. Eine Übersicht, über alle Container lässt sich ebenso erhalten

docker ps -a

Fazit

Ich spreche zwar von neuen Paradigmen was die Virtualisierung angeht, tatsächlich ist Docker unter Windows momentan keine Virtualisierung sondern lediglich eine Containerlösung. Das ist weiter nicht schlimm, denn Microsoft setzt momentan alles mögliche in Bewegung, damit Docker auch mit Hyper-V in Verbindung betrieben werden kann. Ebenso folgt eventuell auch eine grafische Oberfläche, da momentan nur eine Bedienung über die Powershell möglich ist.

Artikel teilen:

Kommentar verfassen