Udgaven af Wifibox-projektet 0.10 er tilgængelig og sigter mod at løse problemet med brugen af trådløse adapters i FreeBSD, som ikke har de nødvendige drivere. Drift af de problematiske adapters for FreeBSD sikres ved at køre et gæstesystem med Linux, hvor de oprindelige Linux-drivere til trådløse enheder indlæses.
Installation af gæstesystemet med drivere er automatiseret, og alle nødvendige komponenter er samlet i en klar pakke, wifibox, der startes ved opstart ved hjælp af den medfølgende rc-service. Systemet håndterer også korrekt overgangen til hvilemodus. Omgivelserne kan potentielt anvendes til alle WiFi-kort, der understøttes i Linux, men er hovedsageligt testet på Intel-chips. Derudover er korrekt drift blevet testet på systemer med Qualcomm Atheros og AMD RZ608 (MediaTek MT7921K) trådløse chips.
Gæstesystemet starter ved hjælp af hypervisoren Bhyve, hvor adgangen til det trådløse kort videreføres. For at det fungerer, kræves et system med understøttelse af hardwarevirtualisering (AMD-Vi eller Intel VT-d). Gæstesystemet er baseret på Alpine Linux-distributionen, der er bygget på systembiblioteket Musl og et sæt værktøjer fra BusyBox. Størrelsen af billedet optager cirka 30 MB på disken og bruger omkring 90 MB RAM.
For at oprette forbindelse til det trådløse netværk bruges wpa_supplicant-pakken, hvis konfigurationsfiler synkroniseres med indstillingerne fra det primære FreeBSD-miljø. Den skabte wpa_supplicant Unix-socket videresendes til værtsmiljøet, hvilket gør det muligt at bruge de standardværktøjer, som FreeBSD tilbyder, til at tilslutte og arbejde med det trådløse netværk; herunder kan der bruges værktøjer som wpa_cli og wpa_gui (net/wpa_supplicant_gui).
I den nye version er mekanismen til at videreføre WPA til det primære miljø blevet revideret, hvilket muliggør drift med både wpa_supplicant og hostapd. Kravene til gæstesystemets hukommelse er reduceret. Understøttelsen af FreeBSD 13.0-RELEASE er stoppet.
Derudover kan der nævnes arbejdet med at forbedre de drivere, der tilbydes i FreeBSD til trådløse kort baseret på Intel- og Realtek-chips. Med støtte fra FreeBSD Foundation fortsætter udviklingen af den nye driver iwlwifi, som er inkluderet i FreeBSD 13.1. Driveren er baseret på Linux-driveren og koden fra Linux-net80211-systemet, understøtter standarden 802.11ac og kan bruges med nye trådløse Intel-chips. Driveren indlæses automatisk under boot, når den relevante trådløse kort registreres. Funktionaliteten af de trådløse komponenter i Linux-stakken sikres ved hjælp af lagdelt LinuxKPI. Tidligere blev en lignende driver, iwm, portet til FreeBSD.
Samtidig er udviklingen af drivere til Realtek-trådløse chips RTW88 og RTW89, rtw88 og rtw89, begyndt, som også udvikles ved at overføre de relevante drivere fra Linux og fungerer ved hjælp af lagdelt LinuxKPI. Driveren rtw88 er allerede klar til indledende test, mens driveren rtw89 stadig er under udvikling.
Desuden kan der nævnes offentliggørelsen af detaljer og en færdig exploit relateret til sårbarheden (CVE-2022-23088) i FreeBSD's trådløse stak, som blev rettet i april-opdateringen. Sårbarheden tillader kørsel af brugerdefineret kode på kernel-niveau ved at sende et specielt formateret frame, mens en klient er i netværksskanningstilstand (før tilknytning af SSID). Problemet skyldes en bufferoverløb i funktionen ieee80211_parse_beacon() under analysen af beacon-frames sendt af adgangspunktet. Overløbet blev muligt på grund af manglende kontrol for overensstemmelse mellem den faktiske datastørrelse og størrelsen angivet i headerfeltet. Problemet er til stede i versioner af FreeBSD, der er blevet udgivet siden 2009.

Blandt de seneste ændringer i FreeBSD, der ikke er relateret til den trådløse stak: der er blevet optimeret boot-tid, som på testsystemet blev reduceret fra 10 til 8 sekunder; GEOM-modulet gunion er implementeret for at overføre ændringer, der foretages over en disk, til en anden disk, som er tilgængelig i kun-læse-tilstand; for kernelens crypto API er der forberedt kryptografiske primitive XChaCha20-Poly1305 AEAD og curve25519, som er nødvendige for driveren. VPN WireGuard.
Kilde: opennet.ru
