Protocolul proprietar al Microsoft, Remote Network Driver Interface Specification (RNDIS), a pornit de la o idee bună. Aceasta ar permite furnizorilor de hardware să adauge suport de rețea la dispozitivele USB fără a fi nevoiți să le construiască de la zero.
A existat o singură mică problemă. RNDIS nu are niciun fel de securitate.
După cum a scris Greg Kroah-Hartman, membru al Fundației Linux și responsabil pentru versiunile stabile ale nucleului Linux, în noiembrie 2022 pe lista de corespondența Linux Kernel (LKML).
Protocolul Microsoft RNDIS este, așa cum a fost conceput, nesigur și vulnerabil pe orice sistem care îl folosește cu gazde sau dispozitive care nu sunt de încredere. Deoarece protocolul este imposibil de securizat, dezactivați pur și simplu toate driverele RNDIS pentru a împiedica pe oricine să le folosească.
Acesta a adăugat, într-nu alt mesaj: „Protocolul nu a fost niciodată conceput pentru a fi utilizat cu dispozitive care nu sunt de încredere. A fost creat și am implementat suportul pentru el atunci când aveam încredere în dispozitivele USB pe care le conectam la sistemele noastre și aveam încredere în sistemele în care conectam dispozitivele USB”.
Acum nu mai este cazul. Kroah-Hartman a concluzionat: „Astăzi, cu gazde și dispozitive care nu prezintă încredere, este timpul să retragem acest protocol. Așa cum am menționat în comentariile privind corecțiile, Android a dezactiva acest lucru cu mulți ani în urmă în dispozitivele sale, fără nicio pierdere de funcționalitate”.
Utilizatorii au început să se îngrijoreze că acest lucru le va perturba suportul pentru conectarea prin USB în rețea. Se pare că mai mulți oameni decât ați putea crede se conectau în rețea prin intermediul dispozitivelor USB, Ethernet și Wi-Fi.
După cum a spus Hartman într-un mesaj pe LKML în ianuarie 2023: „Cred că sistemele care folosesc acest lucru vor trebui să aibă întotdeauna încredere în faptul că dispozitivul conectat la ele este „de încredere”. Pare a fi o modalitate ușoară de a obține acces la un sistem „blocat” dacă ai nevoie vreodată.”
Există motive pentru care companiile preocupate de securitate nu permit accesul la dispozitive conectate prin USB în sediu, doar acesta este unul dintre ele.
Dar acum, sătul și obosit să aiba un exploit de securitate Windows încorporat în Linux, Hartman a decis că e de ajuns. El a dezactivat toate drivere-le protocolului RNDIS din depozitul Git al Linux.
Asta înseamnă că, în timp ce codul RNDIS se află în nucleul Linux, dacă încercați să construiți Linux folosind acestă nouă corecție, toate drivere-le RNDIS vor fi distruse și nu se vor construi. Acest lucru este cu un pas mai mic față de eliminarea RNDIS din Linux.
Mai există o altă modalitate de a susține crearea de rețele prin USB. Acesta este protocolul Network Control Model (NCM). Acesta are avantajul de a fi sigur și de a beneficia deja de suport în Linux.
Totuși, această abordare îl îngrijorează pe Maciej Żenczykowski, dezvoltator de rețele pentru Google Linxu Kernel. Asta pentru că CDC-ECM nu are un suport bun în telefoanele Android. Singurele telefoane Android de care știe el și care au trecut la NCM în loc de RNDIS pentru conectarea prin USB sunt Google Pixel 6+ și smartphone-urile Pixel mai noi.
Și aceasta este o problemă, deoarece oamenii folosesc drivere-ul RNDIS pentru laptopurile cu Linux pentru a se conecta prin USB la telefoanele Android. Așadar, potrivit lui Żenczykowski: „acest lucru va întrerupe conectarea prin USB de pe majoritatea telefoanelor Android – incluzând probabil majoritatea celor care sunt fabricat și vândute în prezent”.
Așadar, având învedere preocupările legate de securitate pe de o parte, și cele legate de interoperabilitate pe de altă parte, ce se va întâmpla în continuare?
Urmărim dacă corecția va fi trimisă în intervalul de fuziune a nucleului Linux 6.7 și dacă va ajunge în următoarea versiune de Linux.