Microsoft hat Hyperlight eingeführt, einen Hypervisor zur Isolierung einzelner Funktionen in Anwendungen

Das Unternehmen Microsoft hat das Projekt Hyperlight vorgestellt, das einen Hypervisor entwickelt, der für die Integration in Anwendungen konzipiert ist, um den isolierten Betrieb von unsicherem oder besonders schützenswertem Code zu ermöglichen. Der Hypervisor wird als gemeinsam genutzte Bibliothek bereitgestellt, die die Ausführung einzelner Funktionen in leichten virtuellen Maschinen (micro-VM) ermöglicht und den Datenaustausch mit diesen Funktionen organisiert. Der Code des Projekts ist in Rust geschrieben und wird unter der Apache 2.0 Lizenz vertrieben.

Im Vergleich zum Start herkömmlicher virtuelle Maschinen Hyperlight ermöglicht niedrige Latenzen und minimale Overheads. Bei Hyperlight betragen die Latenzen beim Erstellen von virtuellen Maschinen 1-2 Millisekunden, was die Nutzung von Isolierung auf der Ebene des Funktionsstarts ermöglicht. Zum Vergleich: Der Start einer herkömmlichen virtuellen Maschine erfolgt in mindestens 120 Millisekunden, während der Start einer isolierten Sandbox-Umgebung zur Ausführung von WebAssembly-Code mit dem Wasmtime-Runtime 0,03 Millisekunden in Anspruch nimmt.

Zur Isolierung auf der Linux-Plattform wird die Verwendung von KVM- und mshv-Hypervisoren (Microsoft Hypervisor in Azure Linux), und auf der Windows-Plattform – WHP (Windows Hypervisor Platform) und WSL2 (Windows Subsystem for Linux 2) mit KVM unterstützt. Die macOS-Plattform wird bisher nicht unterstützt. Ein separates Kernel und Betriebssystem in virtuellen Maschine werden nicht verwendet. Die Konfiguration für die virtuelle Maschine wird in Form eines eigenständigen, ladbaren Programms erstellt, das den Code der auszuführenden Funktion in einer Runtime-Hülle und einem spezialisierten minimalen Kernel enthält. In der virtuellen Maschine wird ein einheitlicher linearer Speicherbereich verwendet, und es wird eine virtuelle CPU zugewiesen, ohne Gerätezuordnung und ohne Prozessaufteilung.

Der Entwicklungsprozess basiert auf der Verknüpfung des Hauptcodes der Anwendung mit der Hyperlight Host-Bibliothek, die den Start von virtuellen Maschinen koordiniert, sowie dem Code der in isolierten Modus ausgeführten Funktionen (Gastfunktionen) mit der Hyperlight Guest-Bibliothek, die eine API für die Interaktion mit dem externen Teil der Anwendung und Möglichkeiten für die isolierte Ausführung von Code ohne Betriebssystemumgebung bereitstellt.

Microsoft hat Hyperlight eingeführt, einen Hypervisor zur Isolierung einzelner Funktionen in Anwendungen

Die bereitgestellte Schicht zur Interaktion zwischen der Host-Anwendung und den isolierten Funktionen ermöglicht nicht nur den Aufruf isolierter Funktionen aus Host-Anwendungen, sondern auch umgekehrt, den Zugriff auf die Funktionen der Host-Anwendungen aus den isolierten Funktionen. Die Liste der von isolierten Funktionen aufrufbaren externen Funktionen ist streng reguliert. Standardmäßig ist der Zugriff aus isolierten Funktionen auf ein minimales API beschränkt, das das Senden von Nachrichten an die Host-Anwendung ermöglicht.

In Zukunft plant Microsoft, das Projekt an die gemeinnützige Organisation Cloud Native Computing Foundation (CNCF) zur gemeinsamen Entwicklung auf einer neutralen Plattform zu übergeben, die nicht von einzelnen Anbietern abhängig ist. Die Organisation CNCF arbeitet unter dem Dach der Linux Foundation und betreut die Entwicklung von Projekten wie Kubernetes, etcd, Cilium, Containerd, cri-o, Flux, Helm, Istio und gRPC.

Quelle: opennet.ru

60GB SSD 8Gb DDR4