Wifibox 0.10 – Eine Umgebung zur Verwendung von Linux-WLAN-Treibern unter FreeBSD

Es ist eine Version des Wifibox 0.10-Projekts verfügbar, um das Problem mit der Verwendung von WLAN-Adaptern durch FreeBSD zu beheben, denen die erforderlichen Treiber fehlen. Für FreeBSD problematische Adapter werden durch die Ausführung eines Linux-Gastsystems bereitgestellt, das native Linux-Treiber für drahtlose Geräte lädt.

Die Installation des Gastsystems mit Treibern erfolgt automatisiert und alle notwendigen Komponenten werden als fertiges wifibox-Paket gepackt, das beim Booten über den mitgelieferten rc-Dienst gestartet wird. Auch der Übergang in den Schlafmodus wird korrekt verarbeitet. Die Umgebung kann möglicherweise auf alle unter Linux unterstützten WLAN-Karten angewendet werden, wurde jedoch hauptsächlich auf Intel-Chips getestet. Wir haben auch den korrekten Betrieb auf Systemen mit Qualcomm Atheros und AMD RZ608 (MediaTek MT7921K) Wireless-Chips getestet.

Der Start des Gastsystems erfolgt über den Bhyve-Hypervisor, der die Zugriffsweiterleitung auf die WLAN-Karte organisiert. Erfordert ein System, das Hardwarevirtualisierung unterstützt (AMD-Vi oder Intel VT-d). Das Gastsystem basiert auf der Alpine Linux-Distribution, die auf der Musl-Systembibliothek und dem BusyBox-Utility-Set basiert. Die Bildgröße auf der Festplatte beträgt etwa 30 MB und verbraucht etwa 90 MB RAM.

Um eine Verbindung zu einem drahtlosen Netzwerk herzustellen, wird das Paket wpa_supplicant verwendet, dessen Konfigurationsdateien mit den Einstellungen aus der FreeBSD-Hauptumgebung synchronisiert werden. Der von wpa_supplicant erstellte Unix-Steuersocket wird an die Hostumgebung weitergeleitet, sodass Sie die standardmäßigen FreeBSD-Dienstprogramme für die Verbindung und Arbeit mit einem drahtlosen Netzwerk verwenden können, einschließlich der Dienstprogramme wpa_cli und wpa_gui (net/wpa_supplicant_gui).

In der neuen Version wurde der Mechanismus zur Weiterleitung von WPA an die Hauptumgebung neu gestaltet, wodurch die Arbeit sowohl mit wpa_supplicant als auch mit hostapd möglich wurde. Der Speicherbedarf des Gastsystems wurde reduziert. Die Unterstützung für FreeBSD 13.0-RELEASE wurde eingestellt.

Darüber hinaus sind Arbeiten zur Verbesserung der in FreeBSD angebotenen Treiber für WLAN-Karten auf Basis von Intel- und Realtek-Chips zu erwähnen. Mit Unterstützung der FreeBSD Foundation wird die Entwicklung des neuen iwlwifi-Treibers fortgesetzt, der in FreeBSD 13.1 enthalten ist. Der Treiber basiert auf dem Linux-Treiber und Code des Linux-Subsystems net80211, unterstützt 802.11ac und kann mit neuen Intel-Wireless-Chips verwendet werden. Der Treiber wird beim Booten automatisch geladen, wenn die richtige WLAN-Karte gefunden wird. Die Komponenten des Linux-Wireless-Stacks werden von der LinuxKPI-Schicht unterstützt. Zuvor wurde der iwm-Treiber auf ähnliche Weise auf FreeBSD portiert.

Parallel dazu begann die Entwicklung von rtw88- und rtw89-Treibern für die Funkchips Realtek RTW88 und RTW89, die ebenfalls durch Portierung der entsprechenden Treiber von Linux entwickelt werden und auf der LinuxKPI-Schicht arbeiten. Der rtw88-Treiber steht für erste Tests bereit, während sich der rtw89-Treiber noch in der Entwicklung befindet.

Darüber hinaus können wir die Veröffentlichung von Details und einen fertigen Exploit im Zusammenhang mit der im April-Update behobenen Schwachstelle (CVE-2022-23088) im FreeBSD-Wireless-Stack erwähnen. Die Sicherheitslücke ermöglicht die Ausführung von Code auf Kernel-Ebene durch Senden eines speziell gestalteten Frames, wenn sich der Client im Netzwerk-Scan-Modus befindet (in der Phase vor der SSID-Bindung). Das Problem wird durch einen Pufferüberlauf in der Funktion ieee80211_parse_beacon() beim Parsen der vom Access Point übertragenen Beacon-Frames verursacht. Der Überlauf wurde dadurch ermöglicht, dass nicht überprüft wurde, ob die tatsächliche Größe der Daten mit der im Header-Feld angegebenen Größe übereinstimmt. Das Problem manifestiert sich in FreeBSD-Versionen, die seit 2009 erstellt wurden.

Wifibox 0.10 – Umgebung zur Verwendung von Linux-WLAN-Treibern in FreeBSD

Zu den jüngsten nicht-drahtlosen Stack-Änderungen in FreeBSD gehören: Optimierungen der Startzeit, die auf dem Testsystem von 10 Sekunden auf 8 Sekunden reduziert wurden; implementiertes GEOM-Modul gunion, um Änderungen, die auf einer im schreibgeschützten Modus verfügbaren Festplatte vorgenommen wurden, auf eine andere Festplatte zu übertragen; Für die Kernel-Krypto-API wurden die für den VPN WireGuard-Treiber erforderlichen kryptografischen Grundelemente XChaCha20-Poly1305 AEAD und Curve25519 vorbereitet.

Source: opennet.ru

Kommentar hinzufügen