Достъпен е новият проект Wifibox 0.10, насочен към решаване на проблема с използването на безжични адаптери в FreeBSD, за които липсват необходимите драйвъри. Работата на проблемните адаптери за FreeBSD се осъществява чрез стартиране на гостуваща система с Linux, в която се зареждат родни за Linux драйвъри на безжични устройства.
Инсталацията на гостуващата система с драйвери е автоматизирана, а всички необходими компоненти са оформени в готов пакет wifibox, който се стартира при зареждане с помощта на доставената rc-служба. В това число се обработва и правилният преход в спящ режим. Околната среда потенциално може да се прилага за всички WiFi карти, поддържани в Linux, но е тествана основно на чипове Intel. Също така е проверена коректната работа на системи с безжични чипове Qualcomm Atheros и AMD RZ608 (MediaTek MT7921K).
Гостуващата система се стартира с помощта на хипервизор Bhyve, в който се организира пробиването на достъпа до безжичната карта. За работа е необходима система с поддръжка на хардуерна виртуализация (AMD-Vi или Intel VT-d). Основата на гостуващата система е базирана на дистрибуция Alpine Linux, изграден на системната библиотека Musl и набор от утилити BusyBox. Размерът на образа на диска е приблизително 30МБ и изисква около 90 МБ оперативна памет.
За свързване към безжичната мрежа се използва пакетът wpa_supplicant, конфигурационните файлове на които се синхронизират с настройките от основната среда FreeBSD. Създаденият wpa_supplicant управлява Unix-сокет, който се пробива в хост-околната среда, което позволява използването на стандартните утилити на FreeBSD за свързване и работа с безжичната мрежа, като например утилитите wpa_cli и wpa_gui (net/wpa_supplicant_gui).
В новото издание е преработен механизмът на пробиване на WPA в основната среда, което позволи работа както с wpa_supplicant, така и с hostapd. Намален е необходимият обем памет за гостуващата система. Поддръжката на FreeBSD 13.0-RELEASE е прекратена.
Допълнително може да се спомене работата по подобряване на предложените във FreeBSD драйвери за безжични карти с чипове Intel и Realtek. С подкрепата на организацията FreeBSD Foundation продължава развитието на новия драйвер iwlwifi, включен в състава на FreeBSD 13.1. Драйверът е основан на Linux-драйвера и кода от Linux-подсистемата net80211, поддържа стандарта 802.11ac и може да се използва с нови безжични чипове Intel. Драйверът се зарежда автоматично по време на стартиране при откриване на необходимата безжична карта. Работата на компонентите на безжичния стек на Linux се осигурява с помощта на слоя LinuxKPI. По-рано подобен начин за FreeBSD беше портирован драйвера iwm.
Паралелно започна разработката на драйверите rtw88 и rtw89 за безжични чипове Realtek RTW88 и RTW89, които също се развиват чрез пренос на съответните драйвери от Linux и работят с помощта на слоя LinuxKPI. Драйверът rtw88 вече е готов за първоначално тестване, а драйверът rtw89 все още е в етап на разработка.
Освен това, може да се спомене публикацията на детайли и готов експлоит, свързани с уязвимост (CVE-2022-23088) в безжичния стек на FreeBSD, която беше отстранена в априлското обновление. Уязвимостта позволява изпълнението на свой код на ниво ядро чрез изпращане на специално оформен кадър, когато клиентът е в режим на сканиране на мрежата (в стадия преди свързването на SSID). Проблемът е причинен от препълване на буфера във функцията ieee80211_parse_beacon() при анализ на beacon-кадрите, предавани от точката за достъп. Препълването стана възможно поради липсата на проверка на съответствието между фактическия размер на данните и размера, указан в заглавното поле. Проблемът се проявява в версиите на FreeBSD, създадени от 2009 година и нататък.

Среди несвързаните с безжичния стек неотдавнашни промени във FreeBSD: извършена е оптимизация на времето за зареждане, което на тестовата система е намалено от 10 на 8 секунди; реализиран е GEOM-модул gunion за извеждане на друг диск измененията, извършвани върху диска, достъпен в режим само за четене; за crypto API на ядрото са подготвени криптографски примитиви XChaCha20-Poly1305 AEAD и curve25519, необходими за драйвера. VPN WireGuard.
Източник: opennet.ru
