Linux intenta deshacerse del protocolo RNDIS notoriamente inseguro de Windows

Linux se deshace de protocolo RNDIS inseguro de Windows

El protocolo propietario de Microsoft, Remote Network Driver Interface Specification (RNDIS), comenzó con una buena idea. Permitiría a los proveedores de hardware agregar soporte de redes a dispositivos USB sin tener que construirlos desde cero. Solo había un pequeño problema. RNDIS no tiene prácticamente ninguna seguridad.

Como escribió Greg Kroah-Hartman, el miembro de la Linux Foundation responsable de las versiones estables del kernel de Linux, en noviembre de 2022 en la Linux Kernel Mailing List (LKML), “El protocolo Microsoft RNDIS es, tal como está diseñado, inseguro y vulnerable en cualquier sistema que lo use con hosts o dispositivos no confiables. Debido a que el protocolo es imposible de asegurar, simplemente desactiva todos los controladores RNDIS para evitar que alguien los use nuevamente”.

También: Los mejores servicios de VPN: probados y revisados por expertos

Agregó, en otro mensaje, “El protocolo nunca fue diseñado para ser utilizado con dispositivos no confiables. Se creó, e implementamos soporte para él, cuando confiábamos en los dispositivos USB que conectábamos a nuestros sistemas, Y confiábamos en los sistemas a los que conectábamos nuestros dispositivos USB”.

Eso ya no es así. Kroah-Hartman concluyó: “Hoy, con hosts y dispositivos no confiables, es hora de jubilar este protocolo. Como mencioné en los comentarios del parche, Android lo desactivó hace muchos años en sus dispositivos, sin pérdida de funcionalidad”.

Bien, eso es lo suficientemente simple. Entonces, ¿por qué seguimos hablando de esto hoy?

Lo que sucedió fue que los usuarios empezaron a preocuparse de que esto afectara su soporte de anclaje de red USB. Resulta que más personas de las que podrías pensar estaban conectándose en red a través de dispositivos USB celulares, Ethernet y Wi-Fi.

¿Seguridad? ¿Qué es eso?

También: Dos trucos que hacen que usar la línea de comandos de Linux sea mucho más fácil

Como dijo Kroah-Hartman en un mensaje de seguimiento en la LKML en enero de 2023, “Supongo que los sistemas que usan esto siempre tendrán que confiar en que el dispositivo conectado a ellos es ‘confiable’. Parece una forma fácil de acceder a un sistema ‘bloqueado’ si alguna vez lo necesitas”.

No está equivocado. Hay razones por las que las empresas conscientes de la seguridad no permiten dispositivos conectados por USB en sus instalaciones, y esta es una de ellas.

Pero ahora, cansado de tener una vulnerabilidad de seguridad de Windows incorporada en Linux, Kroah-Hartman ha decidido que ya era suficiente. Ha desactivado todos los controladores del protocolo RNDIS en el repositorio Git de Linux.

Eso significa que aunque el código RNDIS todavía está en el kernel de Linux, si intentas compilar Linux utilizando este nuevo parche, todos tus controladores RNDIS estarán rotos y no se construirán. Esto es un paso corto de eliminar completamente RNDIS de Linux.

También: Los mejores laptops con Linux en este momento

Hay otra forma de admitir la conexión en red a través de USB. Se trata del protocolo Network Control Model (NCM). Tiene la ventaja de ser seguro y ya es compatible con Linux.

Ahora bien, esto preocupa a Maciej Żenczykowski, un desarrollador de redes del kernel de Linux de Google. Esto se debe a que CDC-ECM no está bien soportado en los teléfonos Android. Los únicos teléfonos Android que él conoce “que han cambiado a NCM en lugar de RNDIS para el anclaje USB son los Google Pixel 6+ y los nuevos smartphones Pixel”.

Y eso es un problema porque la gente usa el controlador RNDIS de Linux en laptops para conectarse en red a través de los teléfonos Android mediante USB. Entonces, según Żenczykowski, “esto romperá el anclaje USB en la *gran* mayoría de los teléfonos Android, probablemente incluyendo la mayoría de los que se fabrican y venden actualmente”.

Entonces, con preocupaciones de seguridad por un lado y preocupaciones de interoperabilidad por otro, ¿qué sucederá a continuación? Manténganse al tanto para ver si este parche se presenta en la ventana de fusión del kernel de Linux 6.7 y si se incluirá en la próxima versión de Linux.