Cómo proteger su computadora Linux de unidades USB no autorizadas
Publicado: 2023-01-23Las 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.
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.
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
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
En Fedora necesitas escribir:
sudo dnf instalar usbguard
En Manjaro, el comando es:
sudo pacman -S usbguard
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.
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".
Para ver nuestras nuevas reglas, podemos usar cat
.
sudo cat /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
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
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
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
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
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
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
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