Überblick: Windows Server 2016 Shielded Virtual Machines

    Hyper-V Shielded VMsShielded VMs ver­hin­dern den unbe­fugten Zu­griff auf ent­haltene Anwen­dungen und Daten. Ein Hyper-V-Host muss erst als ver­trauens­würdig ein­gestuft werden, damit er solche VMs über­haupt booten kann. Die Ver­schlüs­selung der VHDs schützt zusätzlich vor neu­gierigen Blicken. Für dieses Feature benötigt man jedoch eine Guarded Fabric als Infra­struktur.

    Virtuelle Maschinen kapseln generell Betriebssystem, Anwendungen und Daten, und das häufig in einer einzigen VHD. Anwender mit administrativen Rechten für Hyper-V können ein solches virtuelles Laufwerk relativ einfach kopieren, in einer VM auf einem anderen Host mounten und dort inspizieren.

    Schutz für VMs in Private und Public Clouds

    Die Mobilität von virtuellen Maschinen, in denen häufig auch unternehmens­kritische Applikationen laufen, verlangt jedoch nach einem starken Schutz vor Missbrauch und Diebstahl. Das gilt erst recht dann, wenn Unter­nehmen ihre Workloads in die Public Cloud auslagern und Administratoren des Providers vom Inhalt der VM fernhalten wollen.

    Shielded VMs auf Hyper-V 2016 widerstehen somit in einer Private Cloud robust Bedrohungen und schirmen Mandanten in der Public Cloud noch strikter ab. Derart geschützte virtuelle Maschinen verrichten ihren Dienst in einer Guarded Fabric, bestehend aus dem Host Guardian Service (HGS) und den Guarded Hosts.

    Beglaubigung und Verschlüsselung

    Diese isolierten VMs können auf Guarded Hosts nur starten, wenn der HGS solche als vertrauens­würdig einstuft. Dafür stehen zwei verschiedene Beglaubi­gungsmodi zur Verfügung, die Admin-trusted Attestation (AD-Trust, Kerberos) und die strengere TPM-trusted Attestation (TPM 2.0, Hardware-basiert). Beide habe ich in diesem Beitrag bereits anhand der Technical Preview gegenübergestellt.

    Bei späterer HGS-Initialisierung sollte man sich für einen von beiden entscheiden, es kann jedoch auch vom Admin-based in den TPM Modus umgeschaltet werden.

    Erstere Methode ist etwas einfacher in der Konfiguration, setzt jedoch eine Vertrauens­stellung zwischen der Domäne des Guarded Hosts und dem HGS-Forest voraus. Die Echtheit eines Hosts wird dann nur durch seine Mitgliedschaft in einer Sicherheits­gruppe attestiert.

    Wichtige Sicherheits­features wie Measured Boot oder die Überprüfung der Code-Integrität fallen hier unter den Tisch. Nachdem fast jede aktuelle Hardware mittlerweile ein Trusted Platform Module v2.0 installiert hat, sollte im Rechenzentrum das striktere Modell auf Basis des TPM zum Zuge kommen.

    Eine der Sicherheits­komponenten, um virtuelle Maschinen gegen Diebstahl und Fremdeinblicke zu schützen, ist die Verschlüsselung von System- und Datenlaufwerken. Damit das funktioniert, lässt sich nun für die Verschlüsselung einer VM mit BitLocker ein unabhängiges virtuelles TPM implementieren.

    Komponenten einer Guarded Fabric

    Wie eingangs erwähnt, setzt sich die Guarded Fabric aus unterschiedlichen Mitspielern zusammen, dazu gehören:

    • Der Host Guardian Service (HGS) mit Empfehlung für einen 3-Knoten Cluster (Bare Metal).
    • Mindestens ein geprüfter Guarded Host, welcher die geschirmten VMs ausführt
    • Shielded VMs mit Secure Boot, aktiviertem vTPM und verschlüsselten Laufwerken.

    Shielded VM mit aktiviertem vTPM

    Auf den Servern für den Host Guardian-Dienst kann Windows Server 2016 in der Standard Edition eingesetzt werden, während die Guarded Hosts eine Datacenter Edition benötigen. Die Shielded Virtual Machines müssen in der Generation 2 konfiguriert sein und dürfen Gäste ab Windows Server 2012 ausführen.

    Eine Installation der HGS-Rolle zieht einige zusätzliche Features und Rollen mit an Bord, um später Guarded Hosts für vertrauenswürdig zu erklären (siehe folgenden Screenshot der GUI Variante).

    Windows Server 2016 Standard mit HGS-Rolle Shielded VMs können mit dem System Center Virtual Machine Manager ausgerollt werden oder manuell via PowerShell. Außerdem besteht die Möglichkeit, schon existierende VMs abzuschirmen und anschließend auf Guarded Hosts zu importieren.

    Als eine Vorstufe zur Shielded VM dienen die Encryption-supported VMs, welche auch auf Guarded Hosts platziert werden. Sie verwehren dem Administrator jedoch nicht die Nutzung der VM-Konsole oder von Integrationsdiensten wie PowerShell Direct. Shielded VMs sind dagegen stark eingeschränkt und dürfen vom Fabric Administrator nicht konfiguriert werden.

    Attestierung von Guarded Hosts

    Um das Zusammenspiel von Host Guardian-Dienst und Guarded Hosts in der Gesamtheit zu verstehen, lohnt sich ein Blick auf den Prozess, der für die Attestierung von Hosts und somit für die Startfreigabe von geschirmten VMs erforderlich ist. Folgendes Diagramm verdeutlicht diesen Ablauf:

    Ablauf einer Attestierung von guarded Hosts und Shielded VMs (Quelle: In Anlehnung an Microsoft)

    Bevor eine geschirmte VM auf einem Guarded Host gestartet oder dorthin live migriert werden kann, muss dieser als unbedenklich bescheinigt werden. Dafür sollte er dem KPS ein gültiges "Gesundheitszertifikat" präsentieren können.

    Durch Senden einer Aufforderung zur Beglaubigung an den HGS entscheidet dieser in einem der bereits angesprochenen Modi:

    • Beim Admin-trusted Modus geht ein Kerberos-Ticket vom Hyper-V Host aus, um zu ermitteln, ob dieser einer globalen Sicherheitsgruppe im AD angehört. Der Host Guardian-Dienst muss das bestätigen, um als Guarded zu gelten.
    • Im TPM-trusted Modus sendet der Host einige Informationen mehr über seine Vertrauenswürdigkeit. Dazu zählen die TPM-Identifizierung, das TCG-Log mit Informationen rund um die Boot-Prozesse und Informationen zur Code-Integrität.

    Eine Beglaubigung erfolgt beim Starten des Guarded Hosts und danach in Intervallen von 8 Stunden. Wenn der Host kein Zertifikat vorweisen kann, wird der Bescheinigungs­prozess auch ausgelöst.

    Verläuft er erfolgreich und der Host wird als guarded eingestuft, dann erhält er das Zertifikat, welches er dem Key Protection Service vorzeigen muss, um einen Schlüssel zum Start der VM zu erhalten. Diese verschlüsselten Keys lassen die gewählte VM des Guarded Host starten, sobald auch dieser Prozess erfolgreich verlaufen ist. Keys werden im isolierten Virtualization-based Security (VBS) Bereich des guarded Host verschlüsselt hinterlegt.

    Keine Kommentare