Red de conocimiento informático - Problemas con los teléfonos móviles - Guía de programación USB

Guía de programación USB

Vulnerabilidad BadUSB: esta vulnerabilidad almacena código malicioso en el área de almacenamiento de firmware del controlador del dispositivo USB, en lugar de otras áreas de almacenamiento que se pueden leer a través de la interfaz USB, como Flash, para que el software antivirus o el formateo normal Las operaciones no pueden eliminar el código. En la etapa de diseño de dispositivos USB, se utiliza un método especial para implantar código malicioso en el firmware del controlador del dispositivo USB, de modo que el dispositivo USB engañe al sistema operativo de la PC al acceder a dispositivos como una PC, logrando así un cierto propósito. El artículo que presenta esta vulnerabilidad proviene de un artículo publicado por la revista electrónica en línea estadounidense WIRED () el 31 de julio de 2004: Por qué la seguridad USB se ha roto fundamentalmente. Lo que hay que explicar aquí es que la revista "Wired" es una revista electrónica en línea famosa en los Estados Unidos, que refleja la aplicación de la tecnología informática en todos los aspectos de la vida humana moderna y futura. En cada número, WIRED analiza el futuro de los negocios, la ciencia, el entretenimiento, la educación y la cultura y revela historias sorprendentes de cómo la tecnología está cambiando nuestras vidas. Ya sea tecnología, negocios, nuevos medios, arte y cultura, medio ambiente o los últimos productos, WIRED siempre ha estado a la vanguardia de los informes. En otras palabras, esta noticia no proviene de una organización tradicional de investigación y evaluación de vulnerabilidades de seguridad ni de una revista académica.

Según el artículo original (adjunto), existe la siguiente información:

1. Dos atacantes, Nohl y Lell, pasaron varios meses pirateando el firmware del controlador de un dispositivo USB. Ingeniería inversa. Tenga en cuenta que el dispositivo USB (debe referirse al chip de comunicación USB) tiene un chip controlador. Descubrieron que el firmware de los dispositivos USB se puede reprogramar para inyectar un código de ataque (específicamente, esto significa que el firmware del dispositivo se puede volver a actualizar en el dispositivo después de que se haya inyectado el código de ataque).

2. Ningún fabricante u organización autorizada ha confirmado esta vulnerabilidad todavía. Nohl y Lell se pusieron en contacto con un fabricante de dispositivos USB en Taiwán, cuyo nombre no fue revelado, para emitir una alerta de seguridad, pero el fabricante negó repetidamente la posibilidad de un ataque. Wired se puso en contacto con el USB Implementers Forum, una organización sin fines de lucro, y un portavoz de la organización dio una respuesta estilizada: cuando se utiliza un dispositivo USB, las personas siempre deben confirmar la credibilidad de la fuente del dispositivo.

3. Este artículo y los documentos relacionados son oscuros en detalles y no hay más información.

El siguiente es un análisis de seguridad USB para los ataques descritos en este artículo:

1. La mayoría de los controladores de dispositivos USB son ASIC, es decir, estos controladores están altamente personalizados y no tienen. capacidad de extenderse a otros dispositivos, sin mencionar la ejecución de otro código. Según el artículo original, el ataque necesita modificar el tipo de dispositivo USB, y los puntos finales USB que marcan el tipo de dispositivo USB y diversa información se solidifican en el dispositivo en la mayoría de los casos, porque no es necesario cambiar esta información.

Sin embargo, dado que la mayoría de los controladores de dispositivos USB son ASIC, muy pocos dispositivos pueden resultar infectados. Dada la sensibilidad de los fabricantes a los costes, los dispositivos que fabrican son lo más simples posible y no tienen las condiciones para ejecutar códigos maliciosos. En otras palabras, incluso si infectas algunos dispositivos, es posible que los dispositivos infectados no funcionen y no sean códigos maliciosos. El llamado firmware del controlador USB es principalmente un archivo de configuración para circuitos lógicos. Incluso si se manipula o destruye, sólo puede hacer que el dispositivo no pueda funcionar. Muy pocos fabricantes producen controladores USB universales.

La mayoría de los dispositivos USB no se pueden cambiar mediante actualización/reprogramación del firmware, lo que encarecería mucho el controlador. De hecho, la mayoría de los controladores de dispositivos USB no admiten ninguna reprogramación. Muchos ASIC no tienen un núcleo MCU y dependen completamente de circuitos lógicos, lo que hace que este tipo de ataque sea completamente imposible.

2. La premisa del ataque es la ingeniería inversa del firmware del dispositivo. En primer lugar, los diferentes dispositivos y fabricantes tienen diferentes estructuras de dispositivos y diferentes firmware, por lo que no hay ningún código malicioso que pueda infectarse. La mayoría de los ASIC utilizan núcleos MCU personalizados sin ningún registro externo ni guías de programación, por lo que la ingeniería inversa es imposible. En segundo lugar, los fabricantes suelen tener mucho cuidado en proteger el firmware del dispositivo porque a menudo contiene información confidencial que nunca se hace pública. Finalmente, los fabricantes verifican la validez del firmware mientras el controlador está en ejecución, lo que significa que generalmente firman y verifican el firmware.

Esto hace que los ataques solo sean posibles en un número muy pequeño de dispositivos.

3. Incluso si el atacante descubre que, por alguna razón, puede admitir otras clases de USB y puntos finales cambiando el firmware, y el atacante revierte con éxito el firmware, el atacante también debe escribir el firmware manipulado. dispositivo. El firmware del controlador del dispositivo USB generalmente se almacena en la capa metálica del chip y es de solo lectura, no de escritura. Incluso si el firmware se puede escribir o almacenar en una memoria externa, el atacante aún necesita comandos especiales o equipo especial proporcionado por el fabricante.

4. Según este artículo, el programa malicioso del atacante se encuentra en el espacio del controlador USB. El firmware del controlador USB está completamente aislado del BIOS/firmware/OS de sistemas como PC y solo puede ejecutar comandos USB predefinidos del controlador. Una vez que implica afectar maliciosamente el sistema operativo de la PC a través del comportamiento del USB (como la entrada del teclado y el mouse, etc.), inevitablemente implicará eludir el firewall y obtener permisos del sistema, y ​​es imposible permanecer en silencio.

Pero cabe señalar que el análisis anterior es principalmente para la gran mayoría de los dispositivos USB que realmente utilizamos, la explotación de esta vulnerabilidad, según su descripción original, se realiza a través de un controlador de dispositivo USB desarrollado por soporte; programación universal, complete con éxito la ingeniería inversa del firmware y luego escriba con éxito el firmware en el controlador del dispositivo USB (posiblemente utilizando herramientas de desarrollo directamente). En resumen, se deben hacer los siguientes juicios:

1. Esta vulnerabilidad difícilmente puede usarse para crear una herramienta de ataque similar a un virus de sistema informático, que pueda replicarse y propagarse automáticamente a gran escala, ni tampoco. ¿Se puede utilizar a gran escala?

2. El escenario de explotación de esta vulnerabilidad debería ser el siguiente: el atacante crea una "herramienta espía USB" especial, utiliza un método determinado para conectar esta herramienta USB a la interfaz USB del objetivo y la inserta en ella. Después de la interfaz USB del objetivo, el sistema es engañado para disfrazarse de una tarjeta de red o un teclado, obteniendo así los datos de comunicación de red del objetivo o enviando instrucciones al sistema de PC a través de dispositivos de entrada y salida USB. Instale malware prealmacenado en una ubicación determinada de la herramienta. El valor principal de esta vulnerabilidad es que puede realizar ataques bajo la influencia de dispositivos USB, como herramientas espía, si el sistema de la PC no participa en la instalación del software en la PC. iniciar servicios, etc. acciones, como pretender ser una tarjeta de red, no serán detectadas por el sistema antivirus de la PC. Las condiciones necesarias para este escenario son: utilizar equipo especial para completar la producción de herramientas espía USB; conectarlas a la interfaz USB de destino;

Cabe decir que esta vulnerabilidad no es una vulnerabilidad "catastrófica" como la llaman algunos medios nacionales. Incluso se puede decir que ya nos hemos enfrentado a problemas similares; de hecho, esta vulnerabilidad puede considerarse como una "ejecución automática" USB avanzada, que es difícil de detectar. Cabe señalar que la implementación de esta vulnerabilidad depende de un hardware especial y la aplicación requiere escenarios especiales correspondientes.