Wifibox 0.10 - асяроддзе для выкарыстання WiFi-драйвераў Linux ва FreeBSD

Даступны выпуск праекта 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 года.

Wifibox 0.10 - асяроддзе для выкарыстання WiFi-драйвераў Linux ва FreeBSD

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

Крыніца: opennet.ru

Дадаць каментар