Cómo proteger su computadora Linux de unidades USB no autorizadas

Publicado: 2023-01-23
Mano de una persona conectando una unidad USB a una computadora.
Más libre/Shutterstock.com
Instale USBGuard para controlar y administrar qué memorias USB se pueden usar en su computadora con Linux. Actuando como una especie de cortafuegos para dispositivos USB, le permite crear un conjunto de reglas que permiten, bloquean o rechazan unidades específicas.

Las memorias USB se pueden usar para robar datos de su computadora con Linux. USBGuard le permite establecer reglas que rigen el uso de dispositivos de memoria USB, como un firewall para dispositivos de almacenamiento USB. Así es como funciona y cómo puede configurarlo.

Tabla de contenido

La memoria USB y sus peligros
¿Qué es USB Guard?
Comportamiento normal con memorias USB en Linux
Instalación de USB Guard
Configuración de una política base
Adición de otro dispositivo USB
Eliminar el acceso de un dispositivo USB

La memoria USB y sus peligros

Probablemente todos tengamos al menos una memoria USB o un dispositivo de almacenamiento USB como una unidad externa USB. Son baratos, efectivos, portátiles y fáciles de usar.

Hoy en día, puede simplemente conectar uno a su computadora Linux para identificarlo como un dispositivo de almacenamiento y montarlo automáticamente. Atrás quedaron los días de tener que montarlos a mano en la línea de comandos. Esta conveniencia significa que cualquiera puede poner uno en una computadora con Linux y copiar datos de la unidad USB a la computadora, o de la computadora a la tarjeta de memoria.

Si otras personas usan su computadora, es posible que desee limitar lo que pueden hacer con las memorias USB. Si su computadora está en su hogar, es poco probable que un oportunista con intenciones maliciosas camine cuando su computadora esté encendida y desatendida, pero eso puede suceder en un lugar de trabajo.

Cómo las unidades USB pueden ser un peligro para su computadora
RELACIONADO Cómo las unidades USB pueden ser un peligro para su computadora

Pero incluso con una computadora en la casa de su familia, es posible que desee limitar el acceso USB. Tal vez sus hijos regularmente tengan amigos para jugar. Bloquear el acceso USB es una precaución sensata para evitar que causen problemas sin darse cuenta.

Cuando alguien encuentra una unidad USB, siente el deseo inmediato de conectarla a algo para ver qué contiene. Las amenazas cibernéticas que se dirigen a las computadoras con Linux son mucho más raras que las diseñadas para las computadoras con Windows, pero aún existen.

¿Qué es USB Guard?

USBGuard puede protegerlo contra amenazas basadas en software que se distribuyen en dispositivos de memoria USB comprometidos, como BadUSB, donde el ataque comienza cuando lo manipulan para que abra lo que parece un documento pero es un ejecutable disfrazado. USBGuard no puede protegerlo contra amenazas basadas en hardware, como dispositivos USB Killer que causan daño físico a su computadora al liberar una descarga de alto voltaje en su máquina.

En realidad, USBGuard le permite configurar reglas para todo tipo de dispositivos USB diferentes, incluidos ratones, cámaras web y teclados. No es solo para dispositivos de memoria USB. Su computadora conoce la ID de cada dispositivo USB, por lo que puede elegir qué dispositivos USB funcionan en su computadora y cuáles no. Es algo así como un cortafuegos para la conectividad USB.

Advertencia: el demonio USBGuard se ejecuta tan pronto como se instala. Asegúrese de configurar USBGuard inmediatamente después de instalarlo. Si no lo hace, todos sus dispositivos USB se bloquearán cuando reinicie su computadora.

Comportamiento normal con memorias USB en Linux

Antes de hacer nada, verificaremos el comportamiento predeterminado en nuestra computadora con Ubuntu 22.10. Es un proceso simple. Insertamos una memoria USB y vemos qué sucede.

Escuchamos un sonido de alerta audible y aparece un icono de tarjeta de memoria en el muelle.

Al abrir el explorador de archivos, se muestra que se ha agregado una entrada a la lista de ubicaciones en la barra lateral. El nombre que se muestra es el que se le dio al dispositivo cuando se formateó.

Al abrir una terminal y usar el comando lsusb , se enumeran los dispositivos USB conectados. La entrada superior es la tarjeta de memoria en cuestión, que resulta ser un dispositivo de la marca TDK.

 susb 

Usando lsusb para enumerar los dispositivos USB conectados

RELACIONADO: Cómo enumerar los dispositivos de su computadora desde la terminal de Linux

Instalación de USBGuard

USBGuard tiene dependencias en usbutils y udisks2 . En las últimas compilaciones de Manjaro, Fedora y Ubuntu que probamos, ya estaban instaladas.

Para instalar USBGuard en Ubuntu, use este comando:

 sudo apt instalar usbguard 

Instalación de USBGuard en Ubuntu con apt

En Fedora necesitas escribir:

 sudo dnf instalar usbguard 

Instalación de USBGuard en Fedora con dnf

En Manjaro, el comando es:

 sudo pacman -S usbguard 

Instalación de USBGuard en Manjaro con pacman

Configuración de una política base

USBGuard tiene un buen truco. Tiene un comando que crea una regla que permite que todos los dispositivos USB actualmente conectados continúen funcionando sin obstáculos. Eso significa que puede crear una configuración de referencia para todos los dispositivos que siempre necesita. Este conjunto de reglas se denomina política base.

USBGuard utiliza tres tipos de reglas.

  • Permitir : las reglas de permiso permiten que un dispositivo específico funcione sin obstáculos, con normalidad. Esto se usa para dispositivos que siempre están conectados, como teclados con cable, mouse, trackballs, cámaras web, etc. También se utiliza para dispositivos que se conectan de forma intermitente y que son conocidos y de confianza.
  • Bloquear : las reglas de bloqueo evitan que los dispositivos USB funcionen. El dispositivo USB no es visible para el usuario en absoluto.
  • Rechazar : las reglas de rechazo también evitan que los dispositivos USB funcionen, pero el dispositivo USB es visible para el usuario que usa lsusb .

USBGuard tiene un buen truco. Tiene un comando que creará una política base con una regla de permiso para cada uno de los dispositivos USB actualmente conectados . Esta es una excelente manera de configurar rápidamente dispositivos que siempre están conectados a su computadora, como teclados y cámaras web. También es una forma conveniente de capturar dispositivos intermitentes confiables. Solo asegúrese de que todos sus dispositivos de confianza estén conectados a su computadora cuando emita el comando.

Cómo controlar el acceso a sudo en Linux
RELACIONADO Cómo controlar el acceso a sudo en Linux

Una peculiaridad extraña requiere que hagas esto como root. Usar sudo con el comando no funciona. Necesitamos usar el comando sudo -i (iniciar sesión) para abrir un shell como root, luego emitir el comando. Asegúrese de usar el comando de exit para salir de la sesión de inicio de sesión raíz una vez que haya terminado.

 sudo -i
 usbguard generar política -X -t rechazar > /etc/usbguard/rules.conf
 salida

La opción -X (–no-hashes) evita que USBGuard genere atributos hash para cada dispositivo. La opción -t (objetivo) establece un objetivo predeterminado para todos los dispositivos USB no reconocidos. En nuestro caso, hemos elegido "rechazar". También podríamos haber elegido "bloquear".

Creación de una política base de USBGuard con una sesión de terminal raíz

Para ver nuestras nuevas reglas, podemos usar cat .

 sudo cat /etc/usbguard/rules.conf 

Usando cat para enumerar las reglas generadas automáticamente en /etc/usbguard/rules.conf

En nuestra computadora de prueba, esto detectó tres dispositivos USB y creó reglas de "permiso" para ellos. Agregó "rechazar" como objetivo para todos los demás dispositivos USB.

Adición de otro dispositivo USB

Ahora, si conectamos el mismo dispositivo de memoria USB que usamos anteriormente, no está permitido que funcione. No se agrega al Dock, no se agrega al explorador de archivos y no recibimos una alerta audible.

Pero debido a que usamos un objetivo de "rechazo" para dispositivos no reconocidos, lsusb puede enumerar sus detalles.

 susb 

Usando lsusb para enumerar los dispositivos USB conectados

Si hubiéramos usado un objetivo de "bloqueo" en nuestra política base, necesitaríamos usar el comando list-devices con la opción -b (dispositivos bloqueados).

 sudo usbguard lista-dispositivos -b 

Uso del comando list-devices para listar dispositivos bloqueados y conectados

Esto muestra los dispositivos USB actualmente conectados, pero bloqueados.

Usaremos parte de la información de este comando para permitir que nuestro dispositivo USB rechazado tenga acceso temporal o permanente. Para dar acceso temporal a nuestro dispositivo, usaremos el número de identificación del dispositivo. En nuestro ejemplo, esto es "10".

 sudo usbguard permitir-dispositivo 10 

Dar acceso temporal a un dispositivo USB

Nuestro dispositivo está conectado y aparece en el dock y en el explorador de archivos. Si le pedimos a USBGuard que enumere los dispositivos bloqueados, no aparece ninguno.

 sudo usbguard lista-dispositivos -b 

USBGUArd no encuentra dispositivos bloqueados

Podemos hacer que el permiso sea permanente usando la opción -p (permanente). Esto crea una regla para nosotros y la agrega a nuestra política.

 sudo usbguard permitir-dispositivo 10 -p 

Otorgar acceso permanente a un dispositivo agregando una regla de permiso a la política

Ahora podemos usar este dispositivo USB con normalidad.

Eliminar el acceso de un dispositivo USB

Si cambia de opinión acerca de un dispositivo USB, tal vez haya perdido una memoria USB y desee eliminar su acceso, puede hacerlo con el comando block-device .

Necesitamos saber el ID del dispositivo. Podemos encontrar esto enumerando los dispositivos permitidos. Tenga en cuenta que es posible que este número no sea el mismo que utilizó para agregar la regla a la lista, así que verifique antes de ejecutar el comando block-device .

 sudo usbguard lista-dispositivos -a 

Obtención del número de ID de un dispositivo USB mediante el comando list-devices

En nuestro caso el ID es “13”. Usaremos esto con el comando block-device y la opción -p (permanente) para eliminar su acceso para siempre.

 sudo dispositivo de bloqueo usbguard 13 -p 

Bloqueo permanente del acceso de un dispositivo USB mediante el comando block-device

Tenga en cuenta que esto desconecta inmediatamente el dispositivo. Solo use este comando cuando haya terminado de usar los datos en el dispositivo.


USBGuard le brinda una forma eficiente y sólida de controlar y administrar qué dispositivos USB se pueden usar en su computadora.

Es su computadora, por lo que es justo que pueda elegir.

RELACIONADO: Cómo montar y desmontar dispositivos de almacenamiento desde la terminal de Linux