Este disponibilă versiunea 0.10 a proiectului Wifibox, destinat să rezolve problema utilizării adaptoarelor wireless în FreeBSD pentru care lipsesc driverele necesare. Funcționarea adaptoarelor problematice pentru FreeBSD se realizează prin rularea unui sistem gazdă cu Linux, care încarcă driverele native pentru dispozitivele wireless din Linux.
Instalarea sistemului gazdă cu drivere este automatizată, iar toate componentele necesare sunt ambalate într-un pachet gata făcut numit wifibox, care se activează la pornire prin intermediul serviciului rc livrat împreună. De asemenea, este gestionată corect trecerea în modul de repaus. Mediu poate fi utilizat potențial pentru orice plăci WiFi suportate în Linux, dar a fost testat în principal pe cipuri Intel. De asemenea, a fost verificată funcționarea corectă pe sisteme cu cipuri wireless Qualcomm Atheros și AMD RZ608 (MediaTek MT7921K).
Sistemul gazdă este pornit prin intermediul hypervizorului Bhyve, care organizează redirecționarea accesului la placa wireless. Pentru a funcționa, este nevoie de un sistem care suportă virtualizarea hardware (AMD-Vi sau Intel VT-d). Structura sistemului gazdă se bazează pe distribuția Alpine Linux, construită pe baza bibliotecii sistemului Musl și a setului de utilitare BusyBox. Dimensiunea imaginii ocupă aproximativ 30MB pe disc și consumă în jur de 90MB de memorie RAM.
Pentru conectarea la rețeaua wireless se folosește pachetul wpa_supplicant, fișierele de configurare ale căruia sunt sincronizate cu setările din mediul principal FreeBSD. Sockets Unix pentru gestionarea wpa_supplicant-ului sunt redirecționate în mediul gazdă, ceea ce permite utilizarea uneltelor standard FreeBSD pentru conectarea și lucrul cu rețeaua wireless, inclusiv pot fi utilizate uneltele wpa_cli și wpa_gui (net/wpa_supplicant_gui).
În noua versiune, mecanismul de redirecționare WPA în mediul principal a fost revizuit, ceea ce a permis funcționarea cu atât wpa_supplicant, cât și cu hostapd. S-a redus cantitatea de memorie necesară pentru sistemul gazdă. Suportul pentru FreeBSD 13.0-RELEASE a fost întrerupt.
În plus, se poate menționa îmbunătățirea driverelor propuse în FreeBSD pentru plăcile de rețea wireless cu cipuri Intel și Realtek. Cu sprijinul organizației FreeBSD Foundation, continuă dezvoltarea noului driver iwlwifi, inclus în FreeBSD 13.1. Acest driver se bazează pe driverul Linux și codul din subsistemul Linux net80211, suportând standardul 802.11ac și putând fi utilizat cu noi cipuri wireless Intel. Driverul se încarcă automat în timpul boot-ului la detectarea plăcii de rețea necesare. Funcționarea componentelor stivei wireless Linux este asigurată prin intermediul stratului LinuxKPI. Anterior, driverul iwm a fost portat în mod similar pentru FreeBSD.
Paralel, a început dezvoltarea driverelor rtw88 și rtw89 pentru cipurile wireless Realtek RTW88 și RTW89, care sunt, de asemenea, dezvoltate prin transferul driverelor corespunzătoare din Linux și funcționează cu ajutorul stratului LinuxKPI. Driverul rtw88 este deja gata pentru testare inițială, în timp ce driverul rtw89 este încă în dezvoltare.
În plus, se pot menționa publicarea detaliilor și a unui exploit gata legat de vulnerabilitatea (CVE-2022-23088) din stiva wireless FreeBSD, remediată în actualizarea din aprilie. Vulnerabilitatea permite executarea de cod la nivel de kernel prin trimiterea unui pachet special format în momentul în care clientul se află în modul de scanare a rețelei (în stadiul anterior asocierii SSID). Problema este cauzată de un overflow de buffer în funcția ieee80211_parse_beacon() la analiza pachetelor beacon trimise de punctul de acces. Overflow-ul a fost posibil din cauza lipsei unei verificări între dimensiunea reală a datelor și dimensiunea specificată în câmpul de antet. Problema se manifestă în versiunile FreeBSD create din 2009.

Printre modificările recente care nu sunt legate de stiva wireless din FreeBSD: a fost optimizat timpul de boot, care pe sistemul de testare a fost redus de la 10 la 8 secunde; a fost implementat modul GEOM gunion pentru a transfera pe un alt disc modificările efectuate pe discul disponibil în modul doar citire; pentru API-ul criptografic al kernelului, au fost pregătite primitivele criptografice XChaCha20-Poly1305 AEAD și curve25519, necesare pentru driver. VPN WireGuard.
Sursa: opennet.ro
