O Linux tenta abandonar o protocolo RNDIS notoriamente inseguro do Windows

O Linux tenta abandonar o protocolo RNDIS inseguro do Windows

O protocolo proprietário da Microsoft, Remote Network Driver Interface Specification (RNDIS), começou com uma boa ideia. Ele permitiria que os fabricantes de hardware adicionassem suporte de rede a dispositivos USB sem precisar construí-los do zero. Havia apenas um pequeno problema. O RNDIS não possui segurança alguma.

Como Greg Kroah-Hartman, o membro da Linux Foundation responsável pelos lançamentos estáveis do kernel Linux, escreveu em novembro de 2022 na lista de discussão do Linux Kernel (LKML), “O protocolo RNDIS da Microsoft é, como projetado, inseguro e vulnerável em qualquer sistema que o utilize com hosts ou dispositivos não confiáveis. Como o protocolo é impossível de ser tornar seguro, basta desabilitar todos os drivers RNDIS para evitar que alguém os utilize novamente.”

Também: Os melhores serviços de VPN: testados e avaliados por especialistas

Ele acrescentou, em outra mensagem, “O protocolo nunca foi projetado para ser utilizado com dispositivos não confiáveis. Ele foi criado, e implementamos suporte a ele, quando confiávamos nos dispositivos USB que conectávamos aos nossos sistemas, E confiávamos nos sistemas aos quais conectávamos nossos dispositivos USB.”

Isso não é mais o caso. Kroah-Hartman concluiu: “Hoje, com hosts e dispositivos não confiáveis, é hora de aposentar este protocolo. Como mencionei nos comentários do patch, o Android desabilitou isso há muitos anos em seus dispositivos, sem perda de funcionalidade.”

Bem, isso é bastante simples. Então, por que ainda estamos falando sobre isso hoje?

O que aconteceu foi que os usuários começaram a se preocupar que isso interromperia o suporte de tethering USB em rede. Acontece que mais pessoas do que se imagina estavam usando a rede por meio de dispositivos USB conectados a celulares, Ethernet e Wi-Fi.

Segurança? O que é isso?

Também: Dois truques que tornam o uso da linha de comando do Linux muito mais fácil

Como Kroah-Hartman disse em uma mensagem de acompanhamento no LKML em janeiro de 2023: “Eu acho que os sistemas que usam isso sempre terão que confiar que o dispositivo conectado a eles é “confiável”. Parece uma maneira fácil de obter acesso a um sistema “bloqueado” se você precisar.”

Ele não está errado. Existem razões pelas quais empresas preocupadas com a segurança não permitem dispositivos conectados via USB nas instalações e esse é um deles.

Mas agora, cansado de ter uma vulnerabilidade de segurança do Windows embutida no Linux, Kroah-Hartman decidiu que já era suficiente. Ele desabilitou todos os drivers de protocolo RNDIS no repositório Git do Linux.

Isso significa que, embora o código RNDIS ainda esteja no kernel Linux, se você tentar compilar o Linux usando esse novo patch, todos os seus drivers RNDIS ficarão inoperantes e não serão compilados. Isso é um passo antes de eliminar completamente o RNDIS do Linux.

Também: Os melhores laptops Linux no momento

Há outra maneira de oferecer suporte à rede por meio de USB. Trata-se do protocolo Network Control Model (NCM). Ele tem a vantagem de ser seguro e já é suportado no Linux.

Essa abordagem, no entanto, preocupa Maciej Żenczykowski, desenvolvedor de rede do Google Linux Kernel. Isso porque o CDC-ECM não é bem suportado em telefones Android. Os únicos telefones Android que ele conhece “que mudaram para NCM em vez de RNDIS para tethering USB são o Google Pixel 6+ e os mais novos smartphones Pixel”.

E isso é um problema porque as pessoas usam o driver RNDIS em laptops Linux para fazer tethering USB com telefones Android. Portanto, de acordo com Żenczykowski, “isso quebrará o tethering USB da *grande maioria* dos telefones Android – provavelmente incluindo a maioria dos que estão sendo fabricados e vendidos atualmente.”

Então, com preocupações de segurança de um lado e preocupações de interoperabilidade de outro, o que acontecerá em seguida? Fique ligado para ver se este patch será enviado para a janela de mesclagem do kernel Linux 6.7 e se ele será incluído na próxima versão do Linux.