Un prototipo de malware expone los peligros de compartir dispositivos USB

Ricardo Cambre
14 30 40
Noticias » Tecnología
Los investigadores de seguridad Karsten Nohl y Jakob Lell aseguran que compartir libremente dispositivos USB entre equipos no es una buena idea para los que valoran su seguridad. Como prueba de concepto, los expertos de SR Labs han desarrollado el malware BadUSB para exponer las vulnerabilidades fundamentales de los aparatos que hacen uso del popular conector.

La colección de software malicioso que se presentará la próxima semana en la Black Hat de Las Vegas es capaz de infectar equipos de forma totalmente invisible. Lanzado desde el firmware de los dispositivos, BadUSB permite ejecutar inadvertidamente multitud de hacks entre los que se encuentra la redirección de tráfico en Internet o la introducción de comandos maliciosos.

"Si pones cualquier cosa en tu ranura USB, eso requiere mucha confianza", explica Nohl a Ars Technica. "Sea lo que sea, siempre podría haber algún código en el dispositivo que se ejecuta de forma automática. Siempre que alguna persona conecta un dispositivo USB a tu ordenador, se lo confías por completo. Es el equivalente a decir 'aquí está mi ordenador; me voy por ahí durante 10 minutos. Por favor, no hagas nada malo'".

Debido a que BadUSB se encuentra en el firmware de los dispositivos conectados, su detección y eliminación es imposible con los procesos de "limpieza" tradicionales a base de antivirus. En teoría, esta vulnerabilidad se puede explotar con cualquier aparato USB que utilice un firmware de control programable, incluyendo algunos teclados o ratones.

Los investigadores explican que este tipo de infección se puede transmitir del dispositivo USB al ordenador y viceversa, por lo que recomiendan utilizar estos aparatos como "agujas hipodérmicas" que no se comparten entre usuarios. "La próxima vez que tengas un virus en tu ordenador, prácticamente tienes que suponer que tus periféricos están infectados, y los ordenadores de otras personas que han conectado esos periféricos también", añade Nohl.
40 comentarios
  1. Claro, pero luego le digo a alguien que no me mola que conecte su USB en mi pc (como hago ahora) y todos me miran como a un raro y un paranoico.

    No me fio de lo que hay en sus equipos ni en como los usan!! [sonrisa] Bueno, un poco paranoico si soy.
  2. lo mas facil? no tener nada en el ordenador, manda huevos.
  3. Si no hacía falta que se molestasen en crear dicho malware, la peña no tiene -por lo general- ni puñetera idea de como se transmiten los virus por mucho que se lo quieras explicar y van pinchando los pendrives por ahí como Pedro por su casa.
  4. Y digo yo, que se pueda ejecutar código desde cualquier firmware ¿no es un grave fallo de vulnerabilidad?. Algo tan de bajo nivel no debería tener ningún privilegio en ningún sistema.
  5. Lo que quiero saber es por que demonios el firmware de un teclado o disco USB necesita ser reprogramable en primer lugar.

    Edito: bueno, aparentemente la mayoria no son en efecto tan faciles de "reprogramar":

    I make a living designing and selling USB controllers and I can say this article is very sensationalist and it is only telling a half-truth. Yes, some USB devices rely on firmware for fundamental operation and yes, the device firmware of *SOME* USB devices can be field-upgraded or otherwise updated, but to claim that USB itself is fundamentally broken due to this limited attack vector is nonsense.

    There are three things that make this attack very specific and difficult to execute:

    1) Most USB device controllers are ASIC's, or Application Specific Integrated Circuits. They are usually highly optimized to perform their intended function very well, and they usually do not have extensibility to become other devices. For example, one of my company's products is a USB 3.0 to SATA Bridge, which is used in USB 3.0 external drives. Our USB 3.0 to SATA bridge contains USB endpoints for USB Mass Storage Class and that's it. Even if you re-programmed our device firmware, all it could be is a USB Mass Storage Class device since the USB endpoint number and types are fixed in hardware. We did this to make the chip as lean as possible. It is impossible to program our chip to become a functional networking controller or a keyboard device since we don't support those features on the silicon.

    >>>> Not All USB Devices can be infected! Even if you managed to infect the device, chances are you'd brick it rather than make it into something malicious. Manufacturers are usually cost sensitive and they find ways to trim costs everywhere they can ~ releasing general-purpose controllers for commodity devices is, by definition, wasteful.

    2) Device manufacturers are generally very protective of their device firmwares, since the device firmwares usually contain stuff device manufacturers don't want other people to know about such as work-arounds for bugs in the silicon, or proprietary algorithms which may enhance performance or reliability, etc. The source code for most device firmwares are never published, and even if they are, there is very little documentation or active support. Finally, device manufacturers often have at least rudimentary checks in place within their controllers to check if the firmware is "valid" though these checks can vary between cryptographic hashing to simple checksums to length checks.

    >>>>> Getting access to and mucking around with a device's firmware is hard. Many ASICs use customized MCU cores and without published register/programming guides, it is very difficult to reverse-engineer.

    3) Assuming that you've found a USB device controller that for some reason can be programmed arbitrarily to support other USB classes and endpoints and assuming again you found the firmware source code or otherwise reverse-engineered the device's firmware, you still need to be able to program the device. The vast majority of USB 2.0 and 1.1 devices have fixed firmwares that cannot be updated. The firmware code is often stored on a metal layer in the silicon itself, and there is no way for it to be changed. If the firmware is stored on an external memory device, you still need to find a method to reprogram it, either using (undocumented) vendor commands or using a dedicated hardware.

    >>>>> Most USB device controllers don't support being reprogrammed at all, even if they run on firmware. Some ASIC's don't have an MCU and instead rely purely on a logical state machine so that entire subclass is immune. Many IC's have a MASK ROM such that the firmware program is stored in some type of unwritable read-only medium and they are totally immune to this attack as well.


    http://arstechnica.com/civis/viewtopic. ... #p27319665

    Vamos, que si este tio esta en lo cierto, para hacer ataques dirigidos y especificos, puede valer. Para hacer ataques e infecciones masivas no tanto.
  6. Señores/as, estamos ante un fallo crítico del nivel del HeartBleed de SSL, que hará necesario revisar los protocolos de Handshake de USB, sistema que usan billones de dispositivos... si se propaga con esa facilidad... abrochense los cinturones!!!
  7. Solución: condones para USB (o DIUs para pc [carcajad] )
  8. blackmasquerade escribió:Lo que quiero saber es por que demonios el firmware de un teclado o disco USB necesita ser reprogramable en primer lugar.

    Edito: bueno, aparentemente la mayoria no son en efecto tan faciles de "reprogramar":

    Vamos, que si este tio esta en lo cierto, para hacer ataques dirigidos y especificos, puede valer. Para hacer ataques e infecciones masivas no tanto.


    Exacto, el factor clave es el vector de propagación. Si la posibilidad de "adquirir" el virus en un sistema infectado es mínima, no lo veo crítico.

    Aun asi es interesante el método de "autenticar" firmwares de forma similar a certificados SSL. Creo que sería la solución.
  9. Yo la verdad que no guardo ningún tipo de información relevante en mi pc, pero desde luego, el que lo haga, no debería de meter alegremente un dispositivo cualquiera. Esto no hace más que certificar lo que muchos suponíamos.
  10. Djalma83 escribió:Yo la verdad que no guardo ningún tipo de información relevante en mi pc, pero desde luego, el que lo haga, no debería de meter alegremente un dispositivo cualquiera. Esto no hace más que certificar lo que muchos suponíamos.


    ¿No introduces alguno de estos datos en tu equipo? --> Tarjetas de credito, datos bancarios, contraseñas de sitios webs ............
Ver más comentarios »