Investigación de un dongle RJ45 “malvado”
(lcamtuf.substack.com)- Se difundió la afirmación de que un adaptador Ethernet a USB comprado en China llevaba malware integrado, pero las pistas verificadas apuntaban más bien a la forma en que se distribuían los controladores de un viejo chip RJ45 a USB
- Los “elementos en ruso” del escaneo de CrowdStrike Falcon coincidían con características del EXE autoextraíble de 7-Zip de Igor Pavlov, y el contenido del archivo también parecía coincidir con el controlador público para el SR9900 de CoreChips Shenzhen
- El SR9900 es un chip del que casi no hay información, pero parece ser un clon directo del Realtek RTL8152B, en línea con el contexto de los dispositivos USB 2.0 y 100BASE-TX que ofrecían sus controladores mediante almacenamiento propio alrededor de la era de Windows 7
- La memoria flash SPI de 512 kB tipo 25x40 del PCB no resultó ser un almacén para capturar paquetes, sino una configuración en la que una herramienta de producción grababa tal cual una imagen ISO 9660 y controladores de Windows para usarla como un CD-ROM virtual
- El código del microcontrolador USB y Ethernet dentro del SR9900 sigue siendo un área no confirmada, pero este caso por sí solo no ofrece base suficiente para concluir de inmediato que un “hardware extraño” sea malicioso
Punto de partida de la sospecha sobre hardware malicioso en la cadena de suministro
- En seguridad informática, las afirmaciones sobre sabotaje masivo de la cadena de suministro aparecen con frecuencia, pero se parte de la premisa de que en la práctica la mayoría suelen ser falsas
- No porque este tipo de ataques sea imposible, sino porque ejecutarlos es complejo, lento y arriesgado
- En la realidad, suele ser mucho más simple robar credenciales o lograr que alguien descargue archivos maliciosos
- La polémica creció cuando un joven fundador afirmó en redes sociales que un adaptador Ethernet a USB comprado en China venía con malware preinstalado
- La afirmación incluía expresiones como evasión de máquinas virtuales, captura de pulsaciones de teclado y uso de elementos en ruso
- Las publicaciones relacionadas obtuvieron millones de visualizaciones, pero la información técnica concreta seguía siendo poco clara
Revisión del escaneo público y de los archivos del controlador
- El reporte de escaneo de CrowdStrike Falcon compartido por quien publicó el caso era ambiguo y se parecía más a una pista confusa que a una prueba concluyente
- El binario analizado era un EXE autoextraíble basado en 7-Zip, el programa de compresión de código abierto creado por Igor Pavlov
- Los elementos en ruso pueden interpretarse como rastros derivados de la nacionalidad de su autor
- El hecho de ser un archivo autoextraíble para instalar controladores explica la mayor parte del comportamiento que parecía sospechoso
- El contenido del archivo parecía coincidir con el controlador público firmado 2.0.7.0 para un chip RJ45 a USB fabricado por CoreChips Shenzhen
- En el archivo
.infincluido, la empresa también usa el nombre Corechip Semiconductor
- En el archivo
El chip SR9900 y el contexto de un diseño antiguo
- El controlador hace referencia a un chip llamado SR9900
- Casi no hay información pública sobre el chip ni sobre su fabricante
- La investigación concluyó que el SR9900 parecía ser un clon directo del Realtek RTL8152B
- En la descripción del producto en inglés se insinúa que “SR” significa “Supereal”, y la marca Supereal también aparece en el contexto de los chips FTDI FT232RL falsos que causaron problemas en la industria en el pasado
- Este linaje importa porque el diseño original de Realtek es antiguo y se basa en una hoja de datos de 2013
- El dispositivo soporta 100BASE-TX y USB 2.0
- Esto encaja con las prácticas de periféricos de la época de Windows 7
- En ese momento, las unidades de CD-ROM estaban desapareciendo, pero tampoco era fácil asumir que todas las computadoras estuvieran siempre en línea
- Que algunos periféricos se presentaran como un dispositivo de almacenamiento masivo con sus propios controladores era algo natural en ese contexto
- Desde la perspectiva de seguridad, no era claramente mejor ni peor que otros métodos improvisados de la época para entregar archivos de controladores
El uso real de la memoria flash SPI
- En las fotos del desmontaje se veía un PCB sencillo con un IC de memoria flash serial tipo 25x40 montado junto al SR9900
- La pregunta clave era si la memoria flash de 512 kB se usaba para firmware o como almacén de paquetes capturados
- La documentación del SR9900 y del RTL8152B no explicaba lo suficiente el propósito del chip flash acompañante, y tampoco se encontraron en búsquedas de imágenes de esquemas diseños del chip original de Realtek con algo conectado a sus pines seriales
- El propio bus SPI es simple
- El host suministra la señal de reloj a la velocidad que desea
- En cada flanco ascendente del reloj, el periférico lee 1 bit de “serial in” y el host lee 1 bit de “serial out”
- No hay handshake, encabezados, bits de paridad ni control de flujo
- Una lectura típica de memoria flash serial consiste en enviar el comando READ 0x03 y una dirección de 3 bytes, tras lo cual se reciben los datos de forma continua
- Por eso también era posible comprar un dongle real y volcar el contenido de la memoria
- Tras encontrar el original en chino en el sitio de CoreChips y buscar más, aparecieron viejos posts de foros chinos y archivos con descarga de pago y contraseña relacionados con la “herramienta de producción masiva para Windows de la serie de chips SR9900”
- Se descargó
SR9900(A)设计资料1018.rarpor 2.99 dólares para revisarlo - El archivo incluía la herramienta de producción SR9900Efuse, con una interfaz de estilo retro
- Se descargó
- La imagen de sistema de archivos ISO 9660 de 168 kB incluida contenía el controlador autoextraíble de Windows
- La herramienta de producción grababa el archivo
.isotal cual en la memoria flash SPI - El chip funcionaba como una especie de CD-ROM “definido por software” que reemplazaba a un CD-ROM físico
- La imagen de disco puede descargarse aquí y la contraseña es
rj45
- La herramienta de producción grababa el archivo
- La imagen de CD-ROM fue creada con “ULTRAISO V9.3 CD & DVD CREATOR, (C) EZB SYSTEMS”
- UltraISO se presenta como una herramienta con aire de la era Windows XP
- Como requisito de ejecución, pide un Intel Pentium de 166MHz o superior
Función opcional de CD-ROM virtual y límites pendientes
- El archivo principal también incluía el documento
SR9900(A)设计前必看.docx- Según una traducción automática, al usar el SR9900 como tarjeta de red USB, el SPI puede emplearse como una unidad óptica virtual para instalar el controlador de Windows
- En la memoria flash SPI se puede grabar previamente el controlador del SR9900 para Windows
- Se indica explícitamente que el uso del chip flash es opcional
- Lo extraño en este caso terminó siendo no un comportamiento malicioso, sino un método antiguo de distribución de controladores para periféricos
- Incluso sin un laboratorio de hardware, fue posible resolver las dudas principales solo con búsquedas en materiales públicos y paciencia
- La parte que aún no se ha verificado por completo son los dos pequeños núcleos de microcontrolador dentro del IC SR9900
- En su interior hay núcleos USB y Ethernet, y cada uno ejecuta código interno
- Si se asumiera la implicación del fabricante del chip, podría ser posible mirar dentro
- Realtek ofrece un controlador Linux de código abierto para el RTL8152, y ese controlador aplica parches de firmware desde la memoria
- A simple vista, no parecía haber cifrado ni firmas aplicadas
- No puede descartarse por completo la posibilidad de un dongle USB malicioso
- Se menciona que, si se tratara de un científico del programa nuclear iraní, habría motivos para preocuparse
- Si se tratara del CISO de una empresa civil estratégicamente importante, tendría sentido mantener cierto nivel de cautela
- En redes domésticas, este caso por sí solo no ofrece base suficiente para considerarlo una amenaza inmediata
1 comentarios
Opiniones en Hacker News
Esa expresión se presta a malentendidos. El problema no era tanto el chip falso en sí, sino que, cuando detectaba una falsificación, el driver oficial de FTDI cambiaba a 0000 el PID del hardware que estaba en funcionamiento, haciendo que ya no fuera reconocido: http://www.rei-labs.net/changing-ftdi-pid/
Me dio risa la frase “requiere Intel Pentium 166MHz o superior”. El artículo también es divertido, y me encanta ese género de “una persona inteligente se aburre y lleva hasta el final una conclusión que, con sentido común, parecería obvia, pero demostrarla requiere una creatividad y perseverancia inesperadas”
estaba listo para ir a la Dark Web (amazon.com) y comprar un dongle para volcar el contenido del chip de memoriaTambién es más cómodo decir que uno es la víctima y que descubrió una conspiración, que aceptar que esto era simplemente un resultado remendado común en ingeniería. Aplausos para el autor
No quiero decir que el spyware chino no sea un problema. Pero si no tienes la capacidad técnica básica para distinguirlo, no deberías andar corriendo gritando “¡China! ¡China! ¡China!”. Así es como los políticos toman noticias falsas y las usan como excusa para políticas estúpidas, y eso es dañino para la sociedad
En cuanto vi el tuit de este dongle “malicioso”, reconocí que era exactamente el mismo aparato con el que había trabajado antes. Más que malicioso, es simplemente molesto.
https://blog.brixit.nl/making-a-usb-ethernet-adapter-work-sr...
En mi caso deshabilité el módulo flash SPI para que no apareciera como unidad de CD, pero el autor de este artículo incluso encontró la documentación que indica que SPI es opcional. Curiosamente, ahora este artículo hasta ofrece herramientas para reflashearlo y convertirlo en un verdadero dongle RJ45 malicioso
Parece que pusieron una huella para diodo en encapsulado SOT23 de 3 pines y, como no tenían stock de esa pieza especial, soldaron un diodo SOD323 entre dos pines, inclinado unos 30 grados
Si es una consecuencia no intencional, en el mejor de los casos eso era seguridad por oscuridad desde el principio, y lo correcto es que salga a la luz para que la gente no dependa de ella
autorun.infal CD falso?Me gusta bastante la idea de que un dispositivo USB se haga pasar por almacenamiento para ofrecer su propio driver. Supongo que la forma “correcta” hoy sería subir todo a servidores de Microsoft y que, al conectarlo, descargue lo necesario, pero he lidiado lo suficiente con cosas que exigen instalar drivers manualmente como para saber que no es tan fácil como parece. Por ejemplo, con mucha frecuencia tengo que descargar drivers ADB específicos de cada proveedor.
En cualquier caso, que un periférico ayude con la configuración inicial es una solución inteligente, y si el driver está dentro del dispositivo resulta un poco más fácil que andar buscando la fuente oficial de descarga
Pero los múltiples modos de funcionamiento hicieron que configurar dispositivos como dongles USB 4G/LTE fuera complicado. Pueden aparecer como almacenamiento USB, como algún tipo de dispositivo serial o como algo parecido a un módem CDC-ACM, y para cambiarlos al modo correcto hay que combinar herramientas con comandos AT específicos del proveedor. Me gustaría volver a dispositivos simples que, al conectarlos, cumplan de inmediato su función
No sé cuál sea el estado del arte actual, pero durante mucho tiempo fue común poner una pequeña flash en los IC de periféricos USB para guardar el VID/PID y otra información de configuración USB. Así, al conectarlo, el dispositivo podía enumerarse correctamente y asociarse con el driver adecuado. Según el momento del diseño, quizá la capacidad más pequeña fácil de conseguir en la cadena de suministro era de 512kB, así que no era raro usar un chip así para guardar unas cuantas decenas de bytes.
La parte del ISO es un poco extraña, pero, francamente, es una forma creativa de esquivar políticas de seguridad de TI corporativa que restringen el almacenamiento masivo USB. Las unidades ópticas usan otra clase de dispositivo y probablemente evaden la mayoría de las restricciones; si se enumera como un dispositivo compuesto que combina unidad óptica y adaptador de red, parece que podría instalar su propio driver incluso en una computadora donde las “unidades USB” estén bloqueadas
Lo raro es que agregaran flash, aumentando el costo, pero omitieran los componentes de aislamiento magnético. Solo hay capacitores en serie, y el conector también es pequeño, así que no parece que incluya componentes magnéticos integrados; además, no tendría sentido poner también capacitores en serie
Me enojaría muchísimo si descubriera que el dongle USB Ethernet que compré no tiene componentes de aislamiento magnético
Si preguntas si existen dongles USB Ethernet “maliciosos”, por supuesto que sí. Solo que este no es uno de ellos
https://hak5.org/products/lan-turtle
Desde el punto de vista de un purista de RJ45, esto debería llamarse 8P8C. Me retiro
Por ejemplo, he visto “dongles RJ45” que convierten USB a serial RS232 para puertos de consola de muchos equipos de red
Si te importa el rendimiento en USB-1000BASE-T y, hoy en día, en los dongles 2.5GBaseT en general, conviene conocer la diferencia entre que sea un dispositivo USB y que sea un dispositivo PCI Express
Después de conectarlo en caliente a una laptop con un kernel Linux reciente, basta ver si aparece en
sudo lsusb -vo ensudo lspci -vLos dispositivos PCIe nativos rinden mucho mejor, pueden alcanzar la velocidad de línea de 2.5GBASE-T y se comunican con el host mediante una implementación de Thunderbolt sobre USB. Los dispositivos solo USB también pueden funcionar decentemente, pero son baratos por una razón. Claro que algunas laptops de gama baja quizá ni siquiera tengan implementación de Thunderbolt, así que también hay que tomar eso en cuenta
Aun así, básicamente sigue siendo un dongle, y en una Mac da 9.4 Gbit/s con iperf3. Por supuesto, aparece como dispositivo PCIe
[1] https://www.amazon.com/gp/product/B0DHSWSSBY
Si solo tienes un puerto USB y te importa el rendimiento, la diferencia más grande probablemente sea si el dispositivo Ethernet USB implementa CDC-NCM o solo CDC-ECM. CDC-ECM envía los frames uno por uno al driver y el driver tiene que verificarlos y procesarlos uno por uno, lo que genera mucho trabajo de CPU, mientras que el CDC-NCM más nuevo agrupa los frames antes de enviarlos
En mi laptop, un dongle ECM de 1 Gbit también alcanza velocidad gigabit, pero usa un núcleo de CPU al 100%; un dongle NCM de 1 Gbit casi no usa CPU
Hacer una conexión dañina por un puerto Ethernet es extremadamente difícil, pero hacer una conexión dañina por un puerto USB es muy fácil. Hay que llamarlo por lo que es. Es un dongle USB malicioso que además trae un conector Ethernet