USBGuard: Cómo proteger los puertos USB en Linux
1. Qué es USBGuard
Es un software que está diseñado expresamente para proteger su computadora contra dispositivos USB “hackers”, mediante la implementación de listas blancas básicas y listas negras basadas en atributos de los dispositivos. Cuando conecte un dispositivo USB, USBGuard explorará el dispositivo. A continuación, busca secuencial mente en su archivo de configuración para comprobar si ese dispositivo está permitido o rechazado. Lo bueno de USBGuard es que utiliza una característica que se implementa directamente en el kernel de Linux.
USBGuard no viene instalado de forma predeterminada, según mi conocimiento, en ninguna de las principales distribuciones de Linux. Pero puede instalar USBGuard en cualquier distro Linux (Fedora, Debian, Ubuntu, Arch Linux, Linux Mint, Elementary OS, Kali Linux, etc.) usando el código fuente. Así que pasemos a ello…
2. Cómo instalar USBGuard
//para ubuntu
sudo apt install usbguard
En mi caso, utilizo Fedora y utilizo los siguientes comandos: (también funciona para CentOS)
$ sudo yum install yum-plugin-copr
$ sudo yum copr enable mildew/usbguard
//Completamos la instalación con lo siguiente
$ sudo yum install usbguard
$ sudo yum install usbguard-applet-qt
Si no utilizas ni Ubuntu, ni Fedora puedes consultar la instalación aquí.
Una vez instalado, tomemos en cuenta algunos ajustes de USBGuard:
- usbguard-daemon.conf: Cuando está configurado, el daemon explora cada dispositivo USB que se inserta en el sistema. A continuación, el daemon explora secuencialmente las reglas existentes y, cuando se encuentra una regla de coincidencia, autoriza (allows), desautoriza (blocks) o elimina (rejects) el dispositivo.
- Mediante el parámetro “usb-device-id“, puede habilitar todos los dispositivos USB que aprueba y bloquear o rechazar cualquier otro dispositivo que alguien intente insertar en un puerto. También puede desactivar los puertos vacíos mediante el parámetro “port-id“.
3. Configurar USBGuard
Para comenzar a proteger su sistema, puede usar el comando shell USBGuard y su subcomando generate-policy y así generar una política inicial para su sistema. La herramienta genera una política de permisos para todos los dispositivos conectados actualmente a su sistema.
Para conseguir una política inicial, siga este ejemplo:
usbguard generate-policy > rules.conf
vi rules.conf (editar/modificar)
//Creamos la configuración inicial
sudo install -m 0600 -o root -g root rules.conf /etc/usbguard/rules.conf
sudo systemctl restart usbguard
Por ahora, cualquier dispositivo que conecte a su máquina no funcionará (a menos que aparezca como ‘allow‘ en la lista de la imagen anterior), aunque parezca haber sido detectado. Antes de pasar a aplicar ciertas reglas, es importante listar todos los dispositivos USB conectados al sistema ejecutando el comando lsusb. Tome nota del identificador y serial del USB que lo necesitamos más adelante.
Una vez hecho lo anterior, usted empieza a especificar sus reglas. Por ejemplo, para mi Caso Práctico:
//Para mi caso, simplemente lo he editado
block id 03f0:5307 ....
//Usted puede añadir, modificar o eliminar las listas
Entonces, el dispositivo “v165w” quedará bloqueado y no se visualizará en el ordenador. Si usted quiere permitir un dispositivo USB “Nombre”, realice lo siguiente:
allow [ID USB] name "Nombre" serial "[Serial del USB]" via-port "1-2" hash "[Hash del USB]" reject via-port "1-2"
Esto permitirá que ese dispositivo – y ningún otro – se ejecute, pero sólo se ejecutará si está en un puerto específico. ¿Por qué utilizar hash? porque hash es el valor más específico que podemos utilizar para identificar un dispositivo en USBGuard.
- Si utilizas Windows te puede interesar este truco: Usar USB como llave de Seguridad para Bloquear la PC
Por lo tanto, si usted no quiere que sus servidores o PCs puedan verse vulnerados por una memoria USB, instalar y configurar USBGuard es una necesidad. ¿Cómo asegura que usted o su empresa tienen medidas de seguridad USB? ¡Comparta con los demás