¿Dispositivos de hardware para proteger contra BadUSB?

8

¿Se han lanzado dispositivos que protejan contra los ataques de BadUSB?

Estoy particularmente interesado en comprar un concentrador USB que tenga las siguientes protecciones:

  • El concentrador USB en sí no permitirá volver a actualizar su propio firmware o, al menos, requerirá que las nuevas actualizaciones de firmware se firmen con una clave criptográfica sólida (> 2048bits RSA).
  • El concentrador USB no permitirá que el firmware escriba comandos en los dispositivos conectados a él.
  • El concentrador USB tendrá puertos únicos o duales / específicos:
    • Los puertos de "dispositivo de bloqueo" que solo permiten que los dispositivos conectados aquí actúen como dispositivos de bloqueo.
    • Los puertos de "teclado" que solo permiten que los dispositivos conectados aquí actúen como teclado.
    • Los puertos "Mouse" que solo permiten que los dispositivos conectados aquí actúen como un mouse.
    • Los dispositivos de "Teclado / Ratón" que permiten que los dispositivos conectados aquí actúen como un teclado y un mouse, piensan como una combinación de teclado / mouse híbrido.
    • "Otros" puertos que permiten que las cosas sean algo más que un dispositivo de bloque, teclado o mouse. Piense en dongles Bluetooth, cámaras, micrófonos, etc.

¿Ha habido algún dispositivo de hardware que haga algo similar a esto para defenderse contra BadUSB?

    
pregunta Naftuli Kay 21.06.2015 - 19:29
fuente

2 respuestas

2

Espero que alguien me contradiga con argumentos sólidos, pero " El concentrador USB no permitirá que el firmware escriba comandos en los dispositivos conectados a él. ": este parece ser el supuesto equivocado, lo que hace que todos los El sistema de protección de hardware BadUSB se desvanecerá.

De hecho, hay una publicación relacionada y muy informativa: Cómo verificar si el firmware de mi memoria USB se puede reescribir a través del puerto USB ? . Uno podría aprender allí que no hay un comando genérico de "escritura": cada proveedor usa sus propios comandos para este propósito. Peor aún: con algunos proveedores deberíamos hablar más de "trucos" que de comandos reales, LvB menciona " USB stick o USB HDD que, cuando se escribe en una dirección extrema en lugar de escribirlo en el disco, se escribe en la memoria interna ".

¿Cómo podría un hardware así filtrar algo que no se puede detectar y es solo una parte del flujo de comunicación normal del dispositivo?

    
respondido por el WhiteWinterWolf 18.08.2015 - 23:39
fuente
2

Creo que esto no es posible por diseño. Cuando se inventó el USB, se hizo para reemplazar métodos de comunicación engorrosos como los cables paralelos y seriales, interfaces propietarias con un cable y enchufe estandarizados. También abordaría los problemas de programación al estandarizar el modelo de controlador de capa inferior para que los controladores puedan programarse más fácilmente.

Finalmente, diría que el USB existe debido a sus capacidades de conexión en caliente. Esta es una de las características más cómodas de las computadoras de hoy. Recuerdo el dolor en el trasero si se olvidara de conectar el teclado en el momento del arranque (servidor, por ejemplo): algunos de ellos necesitaban un reinicio completo para detectar el teclado PS / 2.

Nadie pensaba en cuestiones de seguridad en ese momento. Las memorias USB no existían, y todos los dispositivos conectados a USB eran más o menos estúpidos. Por lo tanto, USB no utiliza formas estandarizadas de actualizar el firmware o detectar un comportamiento "ilegal".

Un concentrador USB es un dispositivo realmente estúpido: maneja la inserción en caliente de un nuevo dispositivo en la comunicación (AFAIK, interrumpiendo brevemente a todos los demás) y la eliminación. Puede ver cuáles son los requisitos de alimentación de un dispositivo y prohibir que un nuevo dispositivo se conecte si consume demasiada energía. Eso es todo, y está bien así: pueden ser baratos y muy rápidos.

Un concentrador USB no inspeccionará los datos que pasan, ni el controlador. Simplemente no está diseñado para hacerlo, y esto no está escrito en ninguna especificación. Se podría argumentar ahora que restringir el uso del puerto para permitir solo ciertas clases podría ser compatible con las especificaciones PERO: Los dispositivos de clase también son complicados: piense en un transmisor inalámbrico de teclado / mouse combinado. Se mostrará como un dispositivo múltiple, exponiendo tanto un mouse como un componente HID. La mayoría de ellos pueden ejecutarse con controladores de SO básicos, pero también pueden usarse con un software de un proveedor específico para permitir funciones mejoradas como teclas de función adicionales o altas tasas de DPI. Me encanta mi ratón de juego Roccat para tener 3200 dpi por ejemplo. Por lo tanto, después de registrarse como dispositivo de clase, de alguna manera cambia el modo si el controlador correcto está instalado en la PC.

Todas las demás cosas deben ser manejadas por el sistema operativo. Permitir la carga de un controlador o no está totalmente en manos del núcleo del sistema operativo. Existe un software en el mercado para controlar el uso de los puertos USB que podrían comportarse de la forma que desee.

En mi humilde opinión, intenta solucionar el problema incorrecto: si está preocupado por la seguridad del USB, simplemente debe apagar todos los puertos USB o buscar o solicitar un software operativo que pueda lograr las políticas que desea en el nivel del SO Linux, por ejemplo, podría estar restringido para usar solo ciertos controladores USB a través de un núcleo personalizado.

    
respondido por el flohack 28.09.2015 - 15:24
fuente

Lea otras preguntas en las etiquetas