K dispozici je vydání projektu Wifibox 0.10, které se zaměřuje na řešení problému s použitím bezdrátových adaptérů ve FreeBSD, pro které chybí potřebné ovladače. Funkčnost problémových adaptérů pro FreeBSD je zajištěna spuštěním hostitelského systému s Linuxem, do kterého se načítají ovladače bezdrátových zařízení přímo pro Linux.
Instalace hostitelského systému s ovladači je automatizována a všechny potřebné komponenty jsou uspořádány jako hotový balíček wifibox, který se spouští při startu pomocí dodávané rc služby. Správně se také zpracovává přechod do spánkového režimu. Toto prostředí může být potenciálně použito pro jakékoli WiFi karty podporované v Linuxu, ale bylo testováno převážně na čipech Intel. Byla také ověřena správná funkčnost na systémech s bezdrátovými čipy Qualcomm Atheros a AMD RZ608 (MediaTek MT7921K).
Hostitelský systém se spouští pomocí hypervizoru Bhyve, ve kterém je uspořádán přístup k bezdrátové kartě. K práci je zapotřebí systém s podporou hardwarové virtualizace (AMD-Vi nebo Intel VT-d). Základ hostitelského systému je založen na distribuci Alpine Linux, která je postavena na základní knihovně Musl a sadě nástrojů BusyBox. Velikost obrazu zabírá na disku přibližně 30 MB a spotřebovává asi 90 MB operační paměti.
Pro připojení k bezdrátové síti se používá balíček wpa_supplicant, jehož konfigurační soubory jsou synchronizovány s nastavením z hlavního prostředí FreeBSD. Vytvářený řídicí Unix socket z wpa_supplicant je přesměrován do hostitelského prostředí, což umožňuje používat standardní nástroje FreeBSD pro připojení a práci s bezdrátovou sítí, včetně nástrojů wpa_cli a wpa_gui (net/wpa_supplicant_gui).
V novém vydání byl přepracován mechanismus přesměrování WPA do hlavního prostředí, což umožnilo zajištění funkčnosti jak s wpa_supplicant, tak i s hostapd. Byla snížena potřebná velikost paměti pro hostitelský systém. Byla ukončena podpora FreeBSD 13.0-RELEASE.
Je také třeba zmínit práci na zlepšení nabízených ovladačů pro bezdrátové karty na čipech Intel a Realtek ve FreeBSD. S podporou organizace FreeBSD Foundation pokračuje vývoj nového ovladače iwlwifi, který je součástí FreeBSD 13.1. Ovladač je založen na ovladači Linux a kódu z Linux subsystému net80211, podporuje standard 802.11ac a může být používán s novými bezdrátovými čipy Intel. Ovladač se automaticky načítá během spuštění, když je zjištěna potřebná bezdrátová karta. Funkčnost komponent bezdrátového stacku Linux je zajištěna pomocí vrstvy LinuxKPI. Dříve byl podobným způsobem portován ovladač iwm pro FreeBSD.
Současně začal vývoj ovladačů rtw88 a rtw89 pro bezdrátové čipy Realtek RTW88 a RTW89, které se také vyvíjejí přenosem příslušných ovladačů z Linuxu a fungují pomocí vrstvy LinuxKPI. Ovladač rtw88 je již připraven k počátečnímu testování, zatímco ovladač rtw89 je stále ve fázi vývoje.
Dále lze zmínit publikování podrobností a hotového exploit, které se týkají zranitelnosti (CVE-2022-23088) v bezdrátovém stacku FreeBSD, která byla odstraněna v dubnové aktualizaci. Zranitelnost umožňuje vykonávat svůj kód na úrovni jádra prostřednictvím odesílání speciálně formátovaného rámce, když je klient v režimu skenování sítě (ve fázi před přiřazením SSID). Problém je způsoben přetečením vyrovnávací paměti ve funkci ieee80211_parse_beacon() při analýze beacon rámců, které odesílá přístupový bod. Přetečení bylo možné kvůli absenci kontroly shody skutečné velikosti dat a velikosti uvedené v poli hlavičky. Problém se projevuje ve verzích FreeBSD, které byly vytvářeny od roku 2009.

Mezi nedávnými změnami ve FreeBSD, které nejsou přímo spojeny s bezdrátovým stackem: byla provedena optimalizace času načítání, která byla na testovacím systému zkrácena z 10 na 8 sekund; byl implementován GEOM modul gunion pro přesunutí změn provedených na disku dostupném v režimu pouze pro čtení na jiný disk; pro kryptografické API jádra byly připraveny kryptografické primitivy XChaCha20-Poly1305 AEAD a curve25519, které jsou nezbytné pro ovladače. VPN WireGuard.
Zdroj: opennet.ru
