VMWare mit Bitlocker ohne TPM und ohne USB Stick verschlüsseln

Gerade gestern habe ich mich wieder gefragt, wie schaffe ich es meine selbstgeschriebene PHP Anwendung bei einem externen Kunden zu installieren, ohne das dieser Zugriff auf die *.php Dateien bekommt.

Die Idee eine lauffähige Umgebung in einer VM  aufzusetzen und diese beim Kunden im VMWare Player oder VMWare Server abspielen zu lassen hatte ich dabei schon vorher. Allerdings kann der VMWare Player mit Boardmitteln bereits VMDK Dateien außerhalb der eigentlichen virtuellen Maschine mounten. So ist es möglich vom Host- oder jedem anderen System auf den Inhalt der virtuellen Platte zugreifen und sich so Zugriff auf meine PHP Anwendung verschaffen.

Ich schilderte Kollegen mein Problem und so kam die Idee auf, die Festplatte mit BitLocker zu verschlüsseln und so zumindest den Zugriff zu erschweren. Es hat mich zwei volle Abende gekostet, bis ich die virtuelle Festplatte mit BitLocker verschlüsseln konnte. Folgende Probleme traten dabei auf:

1. Auf meinem Rechner und auf dem des Kunden ist (wahrscheinlich) kein notwendiger TPM Chip vorhanden

Windows benötigt für eine möglichst autarke Lösung einen solchen Hardware Chip im Computer. Leider besitzt mein relativ neues HP Notebook einen solchen noch nicht und bei einem Kunden kann man auch nicht davon ausgehen, dass dessen Server/PCs so einen Chip besitzen. Deshalb entfällt diese Möglichkeit beim Einsatz vom BitLocker schonmal.
Alternativ lässt sich ein Sicherheitsschlüssel auf einem USB Stick platzieren, der dann immer angesteckt sein muss, wenn der Rechner läuft. Dazu muss allerdings erst die Gruppenrichtlinie auf dem PC angepasst werden. Dazu habe ich diesen Artikel hier bei Andreas Kroschel  im Blog gefunden.

2. USB Stick bereits beim Booten für die VM verfügbar machen

Kurzum gesagt: Geht nicht. VMWare bietet leider keine Möglichkeit für das Gastbetriebssystem bereits beim Start auf eingehängte USB Speichermedien zuzugreifen.

Auch wenn es mir letztlich nichts genützt hat, hier eine Randnotiz: ´Mir noch die Idee, dass es doch sinnvoller Weise die Möglichkeit geben müsste, einen USB Stick für die VM zu emulieren, ähnlich wie das für CD Images und ISOs auch funktioniert. Leider habe ich auch dazu keine Lösung im Internet gefunden.

Die Lösung

Die Idee war fast gestorben, da bin ich beim googlen noch über die Webseite von Ivan Versluis gestolpert, der in seinem Blog eine Lösung präsentiert, wie der BitLocker Key sich auch auf eine Diskette verfrachten lässt und das ganze auch noch am Beispiel einer VM demonstriert.

Letztlich war die Kombination beider erwähnten Artikel die Lösung, um eine autarke VM zu erhalten, die beim Kunden ohne zusätzliche Peripherie installiert werden kann und zudem noch ausreichenden Schutz der eigentlichen VM bietet. Über das „ausreichend“ lässt sich sicher streiten, da der notwendige Key zum entschlüsseln der Festplatte mitgeliefert wird. Dennoch halte ich es auch für den geübten Gauner für eine Herausforderung so den Zugriff auf die Daten zu bekommen.

Das Vorgehen

Kurz gesagt noch die wichtigsten Schritte in der Reihenfolge

  1. Windows Ultimate oder Windows Enterprise in eine VM installieren
  2. (optional) VMWare Tools installieren
  3. Gruppenrichtlinien bearbeiten wie im Artikel von Andreas Kroschel beschrieben
  4. BitLocker starten und die vorbereitenden Maßnahme durchführen (Partitionierung mit anschließendem Neustart)
  5. BitLocker Assistenten abbrechen und mit der Beschreibung von Ivan Versluis fortfahren
  6. Disketten Image erstellen, einbinden und in der VM formatieren
  7. Commadline mit Administratorrechten starten und „cscript C:\Windows\System32\manage-bde.wsf -on C: -rp -sk A:“ ausführen
  8. (optional) angezeigten Key für den Restore aufschreiben bzw. sichern
  9. System neustarten
  10. Im Bios die Boot Reihenfolge ändern, sodass direkt von Festplatte und nicht vom Floppy gebootet wird
  11. Festplatte wird beim nächsten hochfahren verschlüsselt

Fazit

Letztlich ist das Vorgehen für die Bitlocker Verschlüsselung der VM relativ einfach und schnell zu machen. In einer zweiten VM habe ich das ganze in weniger als 15 Minuten durchgeführt.  Ärgerlich für mich bzw. für den Kunden ist, dass immernoch eine Lizenz für Windows Ultimate (150 EUR) gekauft werden muss, allerdings ist das für mich das kleinere Übel, wenn dadurch meine sonst ungeschützte PHP Anwendung ein bisschen sicherer läuft.