Los dispositivos USB normalmente se identifican por el proveedor y el ID del dispositivo y, en Linux, el soporte para dispositivos USB se maneja con udev . Podría escribir reglas udev para rechazar todos los dispositivos, guardar para una lista específica (blanca). Consulte, por ejemplo, esta pregunta .
Sin embargo, esto podría no traer la seguridad que deseas. De hecho, todos los dispositivos de un modelo específico de un proveedor determinado compartirán la misma ID. Si permite, a través de su lista blanca, un dispositivo con ID 08e6: 3438, también se permitirá cualquier dispositivo que afirme tener esa ID. Un dispositivo hostil puede anunciar perfectamente cualquier identificación que desee mostrar. Para tener una lista blanca real, necesitaría que cada dispositivo individual contenga un identificador específico que el atacante no pueda adivinar (es decir, una clave ). No hay nada de ese tipo en el protocolo y dispositivos USB existentes.
Una lista blanca de este tipo sería, en cualquier caso, redundante con el control físico. Como usuario humano tangible frente a la máquina, depende de usted decidir si insertará o no un dispositivo específico en el puerto USB. Si desea insertar un dispositivo determinado que tenga en la mano, puede modificar las reglas para permitirlo; y si no inserta el dispositivo, tampoco necesitará la lista blanca. El filtrado de dispositivos USB sería más útil en situaciones en las que los usuarios de no de confianza pueden acceder a los puertos físicos. Esta es, sin duda, una situación bastante mala para empezar, ya que esto significa que los usuarios que no son de confianza tienen algún nivel de acceso físico al hardware. Esto podría aplicarse a los kioscos de autoservicio en tiendas de fotografía, pero en tales casos, se supone que el usuario no confiable debe traer su propio dispositivo USB, por lo que la inclusión en listas blancas deja de tener sentido.