
Erstellen Sie neue Windows-Qubes schnell, mühelos und sicher auf Qubes OS
Neue Windows-Qubes schnell, mühelos und sicher starten
Qvm-Create-Windows-Qube ist ein Werkzeug, um schnell und bequem neue Windows-Qubes mit automatisch integrierten Qubes Windows Tools (QWT)-Treibern zu installieren. Offiziell unterstützt werden Windows 7, 8.1 und 10 sowie Windows Server 2008 R2, 2012 R2, 2016 und 2019.
Das Projekt legt Wert auf Korrektheit, Sicherheit und die Behandlung von Windows als nicht vertrauenswürdiges Gastbetriebssystem während des gesamten Prozesses. Die Installation erfolgt zu 100 % air gapped und bietet optional eine Whonix-Integration auf dem fertigen Windows-Qube für zusätzliche Privatsphäre. Diese Ziele mit möglichst wenigen Codezeilen zu erreichen, um Einfachheit und Minimalismus zu gewährleisten, ist entscheidend.
Weitere Annehmlichkeiten sind die automatische Installation von Paketen wie Firefox, Office 365, Notepad++, Visual Studio und mehr mit Chocolatey, damit Sie in Ihrer neuen Umgebung schnell einsatzbereit sind.
Vorgestellt auf: Hacker News | Stolz auf Platz 10 der Startseite von Hacker News sowie auf dem ersten Platz für Show HN
install.sh in Dom0, indem Sie den folgenden Befehl in Dom0 ausführen:
qvm-run -p --filter-escape-chars --no-color-output <name_of_qube_script_is_located_on> "cat '/home/user/Downloads/install.sh'" > install.shinstall.sh, um dessen Integrität sicherzustellen
qvm-run deaktiviert sie standardmäßig, wenn die Ausgabe in eine Datei umgeleitet wirdchmod +x install.sh && ./install.sh aus
TemplateVM installiert werden, standardmäßig fedora-XX/usr/bin/qvm-create-windows-qubeUm Qvm-Create-Windows-Qube zu aktualisieren, löschen Sie zunächst die windows-mgmt-VM und das Hauptprogramm, indem Sie den folgenden Befehl in Dom0 ausführen:
qvm-remove -f windows-mgmt && sudo rm /usr/bin/qvm-create-windows-qube
Folgen Sie anschließend den Installationsschritten oben, um eine Neuinstallation durchzuführen.
Beachten Sie, dass dadurch auch alle bereits heruntergeladenen Windows-ISOs gelöscht werden. Dies kann wünschenswert sein, falls Microsoft die Windows-ISOs aktualisiert hat (Sie sollten sie dann ohnehin neu herunterladen). Falls Sie jedoch das erneute Herunterladen von Windows-ISOs vermeiden möchten, navigieren Sie in der windows-mgmt-VM zu /home/user/qvm-create-windows-qube/windows/isos und kopieren Sie deren Inhalt in ein anderes (vorzugsweise wegwerfbares) Qube. Kopieren Sie diese ISOs nach der Neuinstallation zurück in das windows-mgmt-VM in das genannte Verzeichnis.
Usage: qvm-create-windows-qube [options] -i -a -h, --help -c, --count Number of Windows qubes with given basename desired -t, --template Make this qube a TemplateVM instead of a StandaloneVM -n, --netvm NetVM for Windows to use -s, --seamless Enable seamless mode persistently across reboots -o, --optimize Optimize Windows by disabling unnecessary functionality for a qube -y, --spyless Configure Windows telemetry settings to respect privacy -w, --whonix Apply Whonix recommended settings for a Windows-Whonix-Workstation -p, --packages Comma-separated list of packages to pre-install (see available packages at: https://chocolatey.org/packages) -P, --pool LVM storage pool to install Windows on (https://www.qubes-os.org/doc/secondary-storage/) -i, --iso Windows media to automatically install and setup -a, --answer-file Settings for Windows installation
### Herunterladen von Windows-ISOs
Mido (`mido.sh`) ist der sichere Microsoft Windows Downloader (für Unix), inspiriert von [Fido](https://github.com/pbatard/Fido) von [Rufus](https://github.com/pbatard/rufus). Es ist in der Lage, den Downloadprozess für einige Windows-ISOs zu automatisieren, die Microsoft hinter einer [Gate-Download-Webschnittstelle](https://www.microsoft.com/de-de/software-download/windows10ISO) versteckt hat. Mido ist robust und lädt Windows-ISOs sicher von offiziellen Microsoft-Servern herunter, die von Qvm-Create-Windows-Qube verwendet werden sollen. Sie finden es unter `/home/user/qvm-create-windows-qube/windows/isos/mido.sh` in `windows-mgmt`.
`windows-mgmt` ist vom Netzwerk getrennt (air gapped). Das bedeutet, dass man, um den Download sicher durchzuführen, das `mido.sh`-Skript in eine andere (disposable) Qube kopieren muss, gefolgt vom Übertragen der neu heruntergeladenen ISO(s) in `windows-mgmt` und sie in das Verzeichnis `/home/user/qvm-create-windows-qube/windows/isos` legen muss. Alternativ kann `windows-mgmt` vorübergehend Netzwerkzugriff erhalten, jedoch wird dies aus Sicherheitsgründen nicht empfohlen.
Einmal generierte Windows-ISOs werden in `/home/user/qvm-create-windows-qube/windows/out` für die spätere Verwendung zwischengespeichert. Wenn Sie ein aktualisiertes ISO mit Mido herunterladen, stellen Sie sicher, dass Sie das gleiche ISO aus dem genannten Cache-Verzeichnis entfernen. Dadurch wird der Cache aus dem aktualisierten ISO neu generiert.
Für fortgeschrittene Leser: Qvm-Create-Windows-Qube verfolgt einen generischen Ansatz zur Handhabung von ISOs, der mit jedem beliebigen Windows-ISO funktioniert. Wenn Sie Ihr eigenes Windows-ISO verwenden möchten, ist wahrscheinlich nur eine sehr geringfügige Anpassung der am besten passenden Antwortdatei (nämlich des Schlüssels `/IMAGE/NAME`) erforderlich, um es zum Laufen zu bringen. Sie können die gültigen `/IMAGE/NAME`-Werte für Ihr ISO erhalten, indem Sie die darin enthaltene `install.wim` mit dem Befehl `wiminfo` parsen (Paket `wimlib-utils` auf Fedora oder `wimtools` auf Debian) oder unter Windows mit dem Windows ADK.
### Erstellen einer Windows-VM
**Wichtig:** Lesen Sie unbedingt den Abschnitt [Bekannte Probleme mit Qubes Windows Tools](https://github.com/ElliotKillick/qvm-create-windows-qube#qubes-windows-tools-known-issues) weiter unten wegen eines kleinen Upstream-Problems.
#### Windows 10
*[Video-Demonstration](https://www.youtube.com/watch?v=cCi2MOUwS_Q)*
`qvm-create-windows-qube -n sys-firewall -oyp firefox,notepadplusplus,office365proplus -i win10x64.iso -a win10x64-pro.xml work-win10`
`qvm-create-windows-qube -n sys-firewall -oyp steam -i win10x64.iso -a win10x64-pro.xml game-console`
#### Windows Server 2019
`qvm-create-windows-qube -n sys-firewall -oy -i win2019-eval.iso -a win2019-datacenter-eval.xml fs-win2019`
#### Windows 10 Enterprise LTSC
- Eine stabilere, minimierte, sicherere und privatere Version von Windows 10, offiziell von Microsoft bereitgestellt
- Diese Version von Windows 10 wird für diejenigen empfohlen, die das Beste an Windows-Sicherheit und -Privatsphäre benötigen
`qvm-create-windows-qube -n sys-firewall -oyp firefox,notepadplusplus,office365proplus -i win10x64-enterprise-ltsc-eval.iso -a win10x64-enterprise-ltsc-eval.xml work-win10`
`qvm-create-windows-qube -n sys-whonix -oyw -i win10x64-enterprise-ltsc-eval.iso -a win10x64-enterprise-ltsc-eval.xml anon-win10`
#### Windows 7
- Nicht empfohlen, da Windows 7 von Microsoft [nicht mehr unterstützt wird](https://github.com/ElliotKillick/qvm-create-windows-qube#advisories), aber es ist das einzige Desktop-Betriebssystem, das der Qubes-GUI-Treiber (in Qubes Windows Tools) unterstützt, wenn nahtlose Fensterintegration oder dynamische Größenänderung erforderlich ist
*[Video-Demonstration](https://www.youtube.com/watch?v=duUM1VLrXIQ)*
`qvm-create-windows-qube -n sys-firewall -soyp firefox,notepadplusplus,office365proplus -i win7x64-ultimate.iso -a win7x64-ultimate.xml work-win7`
## Sicherheit
Qvm-Create-Windows-Qube ist "einigermaßen sicher", wie [Qubes](https://www.qubes-os.org) es verlangt.
- `windows-mgmt` ist vom Netz getrennt (air gapped)
- Der gesamte Einrichtungsprozess der Windows-Qube erfolgt vom Netz getrennt
- Ausnahme: Wenn (und nur wenn) Pakete für die Installation konfiguriert sind, erhält Windows ganz am Ende der Windows-Qube-Installation Zugang zum Internet
- Ganze Klasse von Command-Injection-Schwachstellen im Dom0-Shell-Skript eliminiert, indem es keine Ausgabe von der nicht vertrauenswürdigen `windows-mgmt`-Qube parst
- Nur Exit-Codes werden von `qvm-run` übergeben; keine Variablen
- Dies mildert auch die Folgen einer weiteren [Shellshock](https://en.wikipedia.org/wiki/Shellshock_(software_bug))-Bash-Sicherheitslücke
- Herunterladen der Windows-ISOs wird durch Folgendes gesichert:
- ISOs werden direkt von von Microsoft kontrollierten Subdomains von `microsoft.com` heruntergeladen
- HTTPS TLS 1.2/1.3
- SHA-256-Überprüfung der Dateien nach dem Download
- Jede Datei wird mit der Erweiterung `.UNVERIFIED` gespeichert, bis sichergestellt ist, dass ihre Prüfsumme übereinstimmt
- Mido ist robust in POSIX sh geschrieben (die minimale Dash-Shell wird verwendet, falls verfügbar), sodass die Interaktion mit der Gate-Download-Webschnittstelle von Microsoft sicherer ist
- Für mehr Sicherheit könnte es sogar in einer POSIX-konformen Rust-Shell (z.B. nsh) mit Rust-coreutils (z.B. uutils) ausgeführt werden. Dies ist nicht die Standardkonfiguration.
- Windows wird während des gesamten Prozesses als nicht vertrauenswürdiges Gastbetriebssystem behandelt
- Die Auswirkungen etwaiger theoretischer Schwachstellen bei der Handhabung des Windows-ISO (z.B. Schwachstelle in der Dateisystemparsing) oder der Antwortdatei sind auf `windows-mgmt` beschränkt
- Alle Commits der Maintainer sind immer mit ihren jeweiligen PGP-Schlüsseln signiert
- Sollte die Signierung jemals eingestellt werden, gehen Sie von einer Kompromittierung aus
- Aktueller Maintainer 1: [Elliot Killick](https://github.com/ElliotKillick)
- PGP-Schlüssel ([Code-Signing-Unterschlüssel](https://keys.openpgp.org/search?q=EEEE+6403+CE85+0791+ECB1+F820+7C4E+CB25+B6B1+C0DE)): EEEE 6403 CE85 0791 ECB1 F820 7C4E CB25 B6B1 C0DE
- E-Mail: [[email protected]](https://keys.openpgp.org/search?q=contact%40elliotkillick.com)
- Dieser Schlüssel ist neu seit dem 28. Mai 2024
- Aktueller Maintainer 2: [Frédéric Pierret](https://github.com/fepitre)
- PGP-Schlüssel: 9FA6 4B92 F95E 706B F28E 2CA6 4840 10B5 CDC5 76E2
- E-Mail: [[email protected]](https://keys.openpgp.org/search?q=frederic.pierret%40qubes-os.org)
- Hauptsächlich mit Qubes R4.1-Support befasst
- Siehe den Branch `release4.1` und [qubes-mgmt-salt-windows-mgmt](https://github.com/fepitre/qubes-mgmt-salt-windows-mgmt)
### Windows
#### Wartung
Vergessen Sie nicht, nach der Erstellung Ihrer Windows-Qube alle verfügbaren Updates anzuwenden. Microsoft erstellt häufig aktuelle ISOs für aktuelle Windows-Versionen wie Windows 10. Für diese Windows-Versionen wird empfohlen, regelmäßig die neueste Version mit Mido herunterzuladen, um ein aktuelles Windows-Image direkt einsatzbereit zu haben.
#### Sicherheitshinweise
Windows 7 und Windows Server 2008 R2 haben am [14. Januar 2020] das Ende ihres Lebenszyklus (EOL) erreicht (https://support.microsoft.com/de-de/help/4057281/windows-7-support-will-end-on-january-14-2020).
## Privatsphäre
Qvm-Create-Windows-Qube strebt danach, die privateste Art der Windows-Nutzung zu sein. Viele Qubes-Benutzer sind von Windows (oder einem anderen proprietären Betriebssystem) unter anderem gewechselt, um Microsoft (oder Big Tech im Allgemeinen) zu entkommen. Daher ist es für dieses Projekt von größter Bedeutung, Windows aus sicherer Entfernung nutzen zu können. Oder zumindest aus einer so sicheren Entfernung wie möglich für das, was im Grunde ein riesiger, proprietärer binärer Blob ist.
### Windows-Telemetrie
Konfiguriert Windows-Telemetrieeinstellungen, um die Privatsphäre zu respektieren.
- Opt-out aus dem Customer Experience Improvement Program (CEIP)
- Deaktiviert die Windows-Fehlerberichterstattung (WER)
- Deaktiviert den DiagTrack-Dienst
- Schaltet alle Telemetrie in der Windows 10 "Einstellungen"-Anwendung aus
- Aktiviert die Telemetriestufe ["Sicherheit"](https://docs.microsoft.com/de-de/windows/privacy/configure-windows-diagnostic-data-in-your-organization#diagnostic-data-settings) auf kompatiblen Editionen von Windows 10
- Siehe `spyless.bat` für weitere Informationen
### Whonix-Empfehlungen für Windows-Whonix-Workstation
Alles, was [hier](https://www.whonix.org/wiki/Other_Operating_Systems) bis zu "Even more security" erwähnt wird, ist implementiert. "Most security" besteht darin, eine offizielle Whonix-Workstation selbst aus dem Quellcode zu bauen. Diese Funktion ist nicht offiziell oder von Whonix unterstützt.
Es wird empfohlen, [diese](https://www.whonix.org/wiki/Windows_Hosts) Whonix-Dokumentation zu lesen, um die Auswirkungen der Verwendung von Windows auf diese Weise zu verstehen.
### Einfaches Zurücksetzen des Fingerabdrucks
Es gibt unzählige eindeutige Identifikatoren in jeder Windows-Installation, wie die MachineGUID, Installations-ID, NTFS-Laufwerk-Volume-Seriennummern (VSNs) und mehr. Mit Qvm-Create-Windows-Qube können diese eindeutigen Identifikatoren einfach durch eine Neuinstallation von Windows zurückgesetzt werden.
### Einschränkungen
Fingerprinting ist durch den Hypervisor im Falle einer VM-Kompromittierung möglich. Hier sind einige praktische Beispiele (nicht spezifisch für Windows):
- [Xen clocksource als wallclock](https://phabricator.whonix.org/T389)
- Zeitverschiebungslecks können zumindest durch Konfigurieren der UTC-Zeit im BIOS/UEFI gemildert werden
- Die lokale Zeitzone kann trotzdem für die XFCE Dom0-Uhr und in gewünschten VMs konfiguriert werden, indem `timedatectl set-timezone` bei jedem Booten mit dem von Qubes bereitgestellten Standard `/rw/config/rc.local` ausgeführt wird
- Allerdings bleibt die Zeitkorrelation zwischen VMs trivial
- [CPUID](https://github.com/QubesOS/qubes-issues/issues/1142)
- Im Allgemeinen einige der VM-Schnittstellen, die [hier](https://www.qubes-os.org/doc/vm-interface/) dokumentiert sind (z.B. Bildschirmabmessungen)
## Häufig gestellte Fragen (FAQ)
### Benötige ich eine Windows-Lizenz, um dieses Projekt zu nutzen?
Nein, mit jeder Windows-Installation wird ein eingebetteter Test-Produktschlüssel mitgeliefert, der standardmäßig verwendet wird, wenn kein anderer angegeben wird. Qvm-Create-Windows-Qube gibt in den Antwortdateien explizit keinen Produktschlüssel an, um den Standard-Testschlüssel zu verwenden.
Bei allgemeinen Consumer-Versionen von Windows wie (nicht-Enterprise) 7, 8.1 und 10 verlängern sich diese Testversionen auf unbestimmte Zeit, mit der Maßgabe, dass möglicherweise ein Wasserzeichen oder Popup erscheint, das zur Aktivierung des Produkts auffordert.
Bei Windows Enterprise Evaluation und Server Evaluation wird die Maschine nach Ablauf der Testversion automatisch (und ohne Vorwarnung) heruntergefahren, nachdem sie eine bestimmte Zeit lang in Betrieb war, und zwar durch den Windows License Monitoring Service (`C:\Windows\System32\wlms\wlms.exe`; befindet sich in einem versteckten Ordner). Wenn dies auftritt, wird der genannte Grund für das Herunterfahren in der Ereignisanzeige protokolliert. Um die Testversion zu verlängern, führen Sie `slmgr /rearm` in der Eingabeaufforderung aus. Dies funktioniert für die in `slmgr /dlv` angegebene Anzahl (kann variieren), danach muss das Produkt aktiviert oder neu installiert werden.
Es wird empfohlen, das Produkt zu lizenzieren, wenn die Testversion in allen Fällen abläuft.
Windows-Internetzugriff ist für die Verwendung des Testschlüssels nicht erforderlich (da er in jedem ISO eingebettet ist). Es ist jedoch erforderlich, um Windows mit einem eigenen Produktschlüssel zu aktivieren (es sei denn, Sie führen die Aktivierung telefonisch durch).
### Was ist der Zweck der `windows-mgmt` AppVM? Kann ich sie löschen, sobald die Windows-Installation abgeschlossen ist?
Der Zweck der `windows-mgmt` AppVM besteht darin, alles, was im Rahmen der Windows-Installation geschieht, sicher in einer einzigen virtuellen Maschine zu isolieren. Auf diese Weise ist die Ausnutzung etwaiger Fehler, die beispielsweise im Linux-ISO-Dateisystem-Parsing-Code existieren, im Schadensausmaß begrenzt, falls ein Windows-ISO bösartig sein sollte. Dies ist das Sicherheitsprinzip, auf dem das gesamte Qubes OS aufbaut; es ist bekannt als "Sicherheit durch Isolation" oder "Sicherheit durch Kompartimentierung".
Sie können `windows-mgmt` gerne löschen, wenn Sie sicher sind, dass Sie keine weiteren Windows-VMs erstellen möchten. Wenn es Ihnen jedoch nur um den Speicherplatz geht, können Sie einfach die ISOs unter `/home/user/qvm-create-windows-qube/windows/isos` und `/home/user/qvm-create-windows-qube/windows/out` (in `windows-mgmt`) löschen, um den Großteil dieses Speicherplatzes freizugeben.
### Gibt es sonst noch etwas, das ich wissen sollte?
Aktivieren Sie nicht "Include in memory balancing" (das Kontrollkästchen) in den Windows-Qube-Einstellungen. Diese Funktion von Qubes OS ist derzeit unter Windows instabil und das Aktivieren führt zu häufigen Windows-Abstürzen (BSODs).
## Mitwirken
Sie können beginnen, indem Sie diesem Projekt einen Stern geben! Hochwertige PRs sind ebenfalls willkommen! Werfen Sie einen Blick auf die folgende To-do-Liste, wenn Sie nach Dingen suchen, die verbessert werden müssen. Auch andere Verbesserungen wie elegantere Arten der Aufgabenerledigung, Code-Bereinigung und andere Fehlerbehebungen sind willkommen.
Viele Windows-bezogene [GSoCs](https://www.qubes-os.org/gsoc/) für Interessierte.
Das Logo dieses Projekts stammt von Max Andersen, verwendet mit schriftlicher Genehmigung.
Dieses Projekt ist das Ergebnis einer unabhängigen Initiative und wird nicht offiziell von Qubes OS unterstützt.
## Bekannte Probleme mit Qubes Windows Tools
- Der neue QWT-Installer deaktiviert die Erstellung privater Datenträger standardmäßig
- Dies ist wahrscheinlich auf Stabilitätsbedenken zurückzuführen?
- Kann keine TemplateVM erstellen
### Hinweis zu neueren Xen-Treibern (für ältere Betriebssysteme wie Windows 7)
In Qubes R4.1 enthalten Qubes Windows Tools neuere Treiber, die auf neueren Windows-Versionen wie Windows 10 besser funktionieren. Leider ist auch dokumentiert, dass diese neuen Treiber mit älteren Windows-Versionen wie Windows 7 weniger gut funktionieren. Idealerweise sollten die Korrekturen in einem einzigen Treiber zusammengefasst werden, aber das ist noch nicht geschehen.
Windows 7 ist zu diesem Zeitpunkt ein EOL-Betriebssystem, daher ist dies weniger wichtig. Es gibt jedoch immer noch einige gültige Gründe für die Verwendung (zumindest einer nicht vernetzten) Windows 7-Maschine (z.B. zu technischen Forschungs-/Testzwecken).
Es gibt Community-Mitglieder, die diese Erfahrung (ich kann sie auch bestätigen) im Qubes OS Forum und in einigen Qubes OS GitHub Issues dokumentieren.
#### Mailinglisten-Threads
- [qubes-users](https://groups.google.com/forum/#!topic/qubes-users/AdQcjg7XOFo)
- [qubes-devel](https://groups.google.com/forum/#!topic/qubes-devel/aCCGpYysZTQ)
#### Mit "Windows" getaggte Qubes OS GitHub Issues
- [`C: windows-tools`](https://github.com/QubesOS/qubes-issues/labels/C%3A%20windows-tools)
- [`C: windows-vm`](https://github.com/QubesOS/qubes-issues/labels/C%3A%20windows-vm)
## Todo- [x] Fähigkeit erlangen, zuverlässig Antwortdatei aus jedem ISO-Image mit UDF-Dateisystem zu entpacken/einzufügen/wieder zu verpacken ([ISO 13346](https://en.wikipedia.org/wiki/Universal_Disk_Format), d.h. das Windows-ISO-Format)
- ISO-Dateicontainer sind im Wesentlichen Write-Once-Dateisysteme; man kann nicht einfach eine Datei hinzufügen, ohne ein völlig neues ISO zu erstellen
- Wenn man eine offizielle Microsoft Windows ISO-Datei in einem Hex-Editor öffnet, sieht man deutliche Hinweise darauf, dass sie ein UDF-Dateisystem enthält und oben speziell `ISO-13346` erwähnt wird
- Beachten Sie, dass der Befehl `file` diese ISO-Dateien möglicherweise leicht falsch als das mittlerweile abgelöste ISO-9660-Format identifiziert, aber das liegt wahrscheinlich nur daran, dass „UDF das grundlegende Volume-Deskriptor-Format mit ISO 9660 teilt“
- Dies ist die gleiche Methode wie VMware, wie man im Teil „Creating Disk...“ des untenstehenden Videos sehen kann (Weitere Nachforschungen deuten darauf hin, dass sie `mkisofs` verwenden)
- [ ] In Zukunft wäre es für Qubes am besten, dies durch [Erweiterung des Core-Admin für libvirt-XML-Vorlagen](https://github.com/QubesOS/qubes-issues/issues/5085) zu tun
- Schneller
- Spart Speicherplatz, da kein neues ISO erstellt werden muss
- [x] auto-qwt verwendet D:\\, wodurch QWT das Benutzerprofil auf E:\\ ablegt; es wäre schöner, es auf D:\\ zu haben, damit keine unangenehme Lücke in der Mitte entsteht
- [x] Windows-Antwortdatei so einrichten, dass automatisch der Standard-Testproduktschlüssel für die Windows-Installation verwendet wird, ohne irgendwo Produktschlüssel fest zu codieren (Windows ist hier pingelig)
- [x] Unterstützung für Windows 8.1-10 (Hinweis: QWT unterstützt noch kein anderes Betriebssystem offiziell vollständig, außer Windows 7, aber alles funktioniert außer dem GUI-Treiber)
- [x] Unterstützung für Windows Server 2008 R2 bis Windows Server 2019
- [x] Unterstützung für Windows 10 Enterprise LTSC (Long Term Support Channel)
- Bietet 10 Jahre Sicherheitsupdates, sehr stabil und weniger Bloat als normales Windows 10
- [ ] Unterstützung für Windows 11
- Qvm-Create-Windows-Qube wurde versionenunabhängig für Windows entwickelt, die einzige echte Arbeit hier ist das Erstellen einer Antwortdatei (wahrscheinlich nur geringfügige Änderungen an der für Windows 10) und das Hinzufügen zu `mido.sh` (was jetzt kein Problem mehr ist, nachdem ich die Funktionalität erweitert habe, um von hinter der geschützten Microsoft-ISO-Download-API herunterzuladen)
- Die eigentliche Frage ist, ob Qubes Windows Tools unter Windows 11 funktionieren werden
- Microsoft hat eine fantastische Erfolgsbilanz für Rückwärtskompatibilität sogar auf Kernelebene (weil Unternehmen Rückwärtskompatibilität lieben), also ist es möglich, dass es einwandfrei funktioniert
- Hilfe gesucht, Tester willkommen
- [x] Chocolatey bereitstellen
- [x] Option hinzufügen, Windows zu verschlanken, wie für Qubes [hier](https://www.qubes-os.org/doc/windows-template-customization/) dokumentiert
- [x] `windows-mgmt` air-gapped machen
- [x] Funktionalität von `download-windows.sh` (jetzt `mido.sh`) erweitern, um ISOs von hinter der geschützten Microsoft-ISO-Download-API herunterzuladen
- [ ] Ich habe kürzlich erfahren, dass dies ein [Google Summer of Code](https://www.qubes-os.org/gsoc/)-Projekt von Qubes ist
- [x] Automatisierte Tests hinzugefügt
- Verwendung von Travis CI für automatisiertes ShellCheck
- [x] ACPI-Tabellen, um den in Windows eingebetteten Lizenzschlüssel abzurufen
- Weitere Informationen dazu gefunden, sollte sehr einfach sein, indem man die folgende jinja libvirt-Vorlagenerweiterung in `/etc/qubes/templates/libvirt/xen/by-name/<windows_qube>` platziert
- Danke an @jevank für den [Patch](https://github.com/QubesOS/qubes-issues/issues/5279#issuecomment-525947408)
- [ ] Portierung nach Python
- Dies scheint für Skripte wie `create-media.sh` unnötig zu sein, wo das Python-Skript im Wesentlichen nur externe Programme aufrufen würde
- Dies wäre jedoch sicherlich für das Programm `qvm-create-windows-qube` geeignet
- Dies würde es uns ermöglichen, Daten zwischen Dom0 und der VM auszutauschen, ohne uns um die Möglichkeit von Command Injection oder einem weiteren Shellshock sorgen zu müssen
- [ ] Automatische Auswahl, welche Antwortdatei verwendet werden soll, basierend auf Eigenschaften der Windows-ISO, die mit dem Befehl `wiminfo` extrahiert wurden (Derzeit in Arbeit; siehe Branch)
- `wiminfo` funktioniert genau wie DISM unter Windows
- [ ] Sobald der Core-Admin erweitert wurde, um libvirt-XML-Vorlagen (Antwortdateien) zu ermöglichen (vorheriges Todo, es ist ein blockierendes Issue), könnten wir auch sicher die Eigenschaften der install.wim aus der ISO auslesen, ohne die ISO als Loop-Device mounten zu müssen, mit [`libguestfs`](https://libguestfs.org)
- Ich habe `libguestfs` auch bei QEMU/KVM gesehen, also ist es definitiv ein guter Kandidat für diesen Anwendungsfall
- Beachten Sie, dass `libguestfs` nicht (eine Antwortdatei) in eine ISO schreiben kann, weshalb es keinen Sinn macht, diese Bibliothek zu verwenden, bis wir kein völlig neues ISO mehr erstellen müssen, um die Antwortdatei hinzuzufügen
- [x] Der [Whonix-Dokumentation](https://www.whonix.org/wiki/Other_Operating_Systems) folgen, um Windows-Whonix-Workstation zu erstellen
- [ ] Funktionalität für `create-media.sh` hinzufügen, um MSUs (Microsoft Update-Standalone-Pakete) hinzuzufügen, die während des Windows PE-Durchlaufs (insbesondere „Installation von Updates...“) der Windows-Setup installiert werden sollen
- Wir könnten die derzeit nicht funktionierende QWT-Installation für alte Windows 7 SP1- und Windows Server 2008 (non-R2) ISOs mit [KB4474419](https://github.com/QubesOS/qubes-issues/issues/3585#issuecomment-521280301) reparieren, um SHA-256-Treibersignierungsunterstützung hinzuzufügen
- Die andere Möglichkeit ist, Xen ihre Treiber ebenfalls mit SHA-1 signieren zu lassen, was andere Treiberanbieter zu tun scheinen, aber aus Sicherheitssicht nicht ideal ist
- Ermöglicht es uns, den `allow-drivers.vbs`-Hack loszuwerden, indem der SHA-256 *automatische* Treiberinstallationsfehler in neueren Windows 7-Versionen mit KB2921916 behoben wird (siehe `allow-drivers.vbs` für Details)
- Dieser Windows-Fehler wurde von Microsoft absichtlich gepatcht und entpatcht, um Unternehmen zu einem Upgrade auf Windows 10 zu zwingen
- Ein paar Windows-Sicherheitslücken patchen?
- BlueKeep für Windows 7 out of the box patchen
- Windows Server 2008 R2 Basis-ISO ist ebenfalls out of the box anfällig für ETERNALBLUE und BlueKeep
- Wahrscheinlich lohnt es sich nicht, darauf einzugehen; Benutzer sollten die VM nach der Erstellung einfach aktualisieren
- [ ] Headless-Modus
- Hilfe gesucht
- Welchen Mechanismus gibt es, um dies in Qubes zu erreichen? Etwas im Qubes GUI-Agent/Daemon?
- [ ] Dieses Projekt paketieren, damit seine Auslieferung durch `qubes-dom0-update` optimierter und sicherer erfolgen kann
- [ ] [ReactOS](https://reactos.org)-Unterstützung als Open-Source-Alternative zu Windows hinzufügen
- Dies wäre zumindest gut, bis eine [ReactOS-Vorlage erstellt wird](https://github.com/QubesOS/qubes-issues/issues/2809)
- Vielleicht möchten ReactOS-Entwickler dies nutzen, um ReactOS zu entwickeln
- Oder einfach ReactOS als Vorlage hinzufügen (außerhalb dieses Projekts)
- Allerdings müsste jemand diese Vorlage warten
- Außerdem könnte es wenig Sinn ergeben, wenn QWT/Xen-Treiber nicht funktionieren
- Zumindest für grundlegende Funktionen wie Kopieren/Einfügen und Dateiübertragung
- Interesse von beiden Seiten
- [Qubes OS](https://github.com/QubesOS/qubes-issues/issues/2809)
- [ReactOS](https://reactos.org/forum/viewtopic.php?p=126279#p126279)
- „eines der interessantesten Kooperationsangebote, die wir bisher erhalten haben“
- [ReactOS unbeaufsichtigte Installationen](https://reactos.org/wiki/Create_an_unattended_Installation_CD) scheinen sich von Windows-Installationen zu unterscheiden
- [ ] Das einzige blockierende Problem, das ich finden konnte, ist der QEMU-SCSI-Controller-Typ
- Qubes könnte den Core-Admin erweitern, um die Konfiguration des SCSI-Controllers in der libvirt-Vorlage zu unterstützen
- Diese Lösung scheint besser, da sie laut [diesem](https://github.com/QubesOS/qubes-issues/issues/3651#issuecomment-420914348) Kommentar auch eine Reihe anderer Betriebssysteme beheben würde, deren Installationsprogramm unseren aktuellen SCSI-Controller nicht unterstützt
- ReactOS könnte Unterstützung für unseren aktuellen SCSI-Controller-Typ hinzufügen
- [ReactOS Issue](https://reactos.org/forum/viewtopic.php?t=17529)
- [Qubes OS Issue](https://github.com/QubesOS/qubes-issues/issues/3494)
- Die Bereitstellung eines anderen SCSI-Controllers erweitert die Angriffsfläche nicht, da QEMU in einer Xen-Stub-Domain läuft
- ReactOS ist in der Alpha-Phase, daher wird dies für die meisten Benutzer derzeit wahrscheinlich nicht nutzbar sein
- Hilfe gesucht
- Derzeit kein Zeitplan
## Endziel
Eine Funktion ähnlich (oder besser) wie [VMwares „Easy Install“ für Windows](https://www.youtube.com/watch?v=1OpDXlttmE0) unter Qubes OS haben. VMwares Lösung ist proprietär und nur in ihren kostenpflichtigen Produkten verfügbar.
VirtualBox hat auch [etwas Ähnliches](https://blogs.oracle.com/scoter/oracle-vm-virtualbox-52:-unattended-guest-os-install), aber es ist nicht so funktionsreich.