Como proteger seu computador Linux de unidades USB não autorizadas

Publicados: 2023-01-23
A mão de uma pessoa conectando uma unidade USB a um computador.
Freer/Shutterstock.com
Instale o USBGuard para controlar e gerenciar quais pen drives podem ser usados ​​em seu computador Linux. Atuando como uma espécie de firewall para dispositivos USB, permite criar um conjunto de regras que permitem, bloqueiam ou rejeitam unidades específicas.

Cartões de memória USB podem ser usados ​​para roubar dados do seu computador Linux. USBGuard permite definir regras que regem o uso de cartões de memória USB, como um firewall para dispositivos de armazenamento USB. Veja como funciona e como você pode configurá-lo.

Índice

O stick de memória USB e seus perigos
O que é USBGuard?
Comportamento normal com pendrives no Linux
Instalando o USBGuard
Configurando uma política básica
Adicionando outro dispositivo USB
Removendo o acesso de um dispositivo USB

O stick de memória USB e seus perigos

Provavelmente todos nós temos pelo menos um stick de memória USB ou dispositivo de armazenamento USB como uma unidade externa USB. Eles são baratos, eficazes, portáteis e fáceis de usar.

Hoje em dia, basta conectar um ao seu computador Linux para identificá-lo como um dispositivo de armazenamento e montá-lo automaticamente. Já se foram os dias em que era necessário montá-los manualmente na linha de comando. Essa conveniência significa que qualquer um pode colocar um em um computador Linux e copiar dados da unidade USB para o computador ou do computador para o cartão de memória.

Se outras pessoas usarem seu computador, convém limitar o que elas podem fazer com os cartões de memória USB. Se o seu computador estiver em sua casa, é improvável que um oportunista com intenções maliciosas passe por perto quando seu computador estiver ligado e sem vigilância, mas isso pode acontecer em um local de trabalho.

Como as unidades USB podem ser um perigo para o seu computador
RELACIONADO Como as unidades USB podem ser um perigo para o seu computador

Mas mesmo com um computador na casa de sua família, convém limitar o acesso USB. Talvez seus filhos recebam regularmente amigos para brincar. Bloquear o acesso USB é uma precaução sensata para impedir que eles causem problemas inadvertidamente.

Quando alguém encontra uma unidade USB, há um desejo imediato de conectá-la a algo para ver o que há nela. As ameaças cibernéticas que visam computadores Linux são muito mais raras do que aquelas projetadas para computadores Windows, mas ainda existem.

O que é USBGuard?

USBGuard pode protegê-lo contra ameaças baseadas em software que são distribuídas em cartões de memória USB comprometidos, como BadUSB, onde o ataque começa quando você é manipulado para abrir o que parece ser um documento, mas é um executável disfarçado. O USBGuard não pode protegê-lo contra ameaças baseadas em hardware, como dispositivos USB Killer, que causam danos físicos ao seu computador, liberando uma descarga de alta voltagem em sua máquina.

Na verdade, o USBGuard permite configurar regras para todos os tipos de dispositivos USB diferentes, incluindo mouses, webcams e teclados. Não é apenas para cartões de memória USB. Seu computador conhece a ID de cada dispositivo USB, portanto, você pode escolher quais dispositivos USB funcionam em seu computador e quais não. É algo como um firewall para conectividade USB.

Aviso: O daemon USBGuard é executado assim que é instalado. Certifique-se de configurar o USBGuard logo após instalá-lo. Caso contrário, todos os seus dispositivos USB serão bloqueados quando você reiniciar o computador.

Comportamento normal com pendrives no Linux

Antes de fazer qualquer coisa, verificaremos o comportamento padrão em nosso computador Ubuntu 22.10. É um processo simples. Inserimos um stick de memória USB e vemos o que acontece.

Ouvimos um som de alerta audível e um ícone de stick de memória aparece no dock.

Abrir o navegador de arquivos mostra que uma entrada foi adicionada à lista de locais na barra lateral. O nome exibido é aquele dado ao dispositivo quando ele foi formatado.

Abrir um terminal e usar o comando lsusb lista os dispositivos USB conectados. A entrada principal é o cartão de memória em questão, que por acaso é um dispositivo da marca TDK.

 lsusb 

Usando lsusb para listar dispositivos USB conectados

RELACIONADO: Como listar os dispositivos do seu computador no terminal do Linux

Instalando o USBGuard

USBGuard tem dependências de usbutils e udisks2 . Nas versões mais recentes do Manjaro, Fedora e Ubuntu que testamos, elas já estavam instaladas.

Para instalar o USBGuard no Ubuntu, use este comando:

 sudo apt instalar usbguard 

Instalando USBGuard no Ubuntu com apt

No Fedora você precisa digitar:

 sudo dnf instalar usbguard 

Instalando o USBGuard no Fedora com dnf

No Manjaro, o comando é:

 sudo pacman -S usbguard 

Instalando USBGuard no Manjaro com pacman

Configurando uma política básica

USBGuard tem um truque legal. Ele possui um comando que cria uma regra permitindo que todos os dispositivos USB atualmente conectados continuem funcionando sem impedimentos. Isso significa que você pode criar uma configuração de linha de base para todos os seus dispositivos sempre necessários. Esse conjunto de regras é chamado de política de base.

USBGuard usa três tipos de regras.

  • Permitir : as regras de permissão permitem que um dispositivo especificado opere sem impedimentos, normalmente. Isso é usado para dispositivos que estão sempre conectados, como teclados com fio, mouses, trackballs, webcams e assim por diante. Também é usado para dispositivos que são conectados de forma intermitente e que são conhecidos e confiáveis.
  • Bloquear : as regras de bloqueio impedem a operação de dispositivos USB. O dispositivo USB não está visível para o usuário.
  • Rejeitar : as regras de rejeição também impedem a operação de dispositivos USB, mas o dispositivo USB fica visível para o usuário usando lsusb .

USBGuard tem um truque legal. Ele possui um comando que criará uma política básica com uma regra de permissão para cada um dos dispositivos USB conectados no momento. Essa é uma ótima maneira de configurar rapidamente dispositivos que estão sempre conectados ao seu computador, como teclados e webcams. Também é uma maneira conveniente de capturar dispositivos intermitentes confiáveis. Apenas certifique-se de que todos os seus dispositivos confiáveis ​​estejam conectados ao seu computador quando você emitir o comando.

Como controlar o acesso sudo no Linux
RELACIONADO Como controlar o acesso sudo no Linux

Uma peculiaridade estranha exige que você faça isso como root. Usar sudo com o comando não funciona. Precisamos usar o comando sudo -i (login) para abrir um shell como root e, em seguida , emitir o comando. Certifique-se de usar o comando exit para sair da sessão de login root assim que terminar.

 sudo -i
 usbguard gerar política -X -t rejeitar > /etc/usbguard/rules.conf
 saída

A opção -X (–no-hashes) impede que o USBGuard gere atributos de hash para cada dispositivo. A opção -t (destino) define um destino padrão para todos os dispositivos USB não reconhecidos. No nosso caso, escolhemos "rejeitar". Também poderíamos ter escolhido “bloquear”.

Criando uma política USBGuard básica com uma sessão de terminal raiz

Para ver nossas novas regras, podemos usar cat .

 sudo cat /etc/usbguard/rules.conf 

Usando cat para listar as regras geradas automaticamente em /etc/usbguard/rules.conf

Em nosso computador de teste, ele detectou três dispositivos USB e criou regras de “permissão” para eles. Ele adicionou “rejeitar” como alvo para todos os outros dispositivos USB.

Adicionando outro dispositivo USB

Agora, se conectarmos o mesmo stick de memória USB que usamos anteriormente, ele não poderá operar. Ele não é adicionado ao dock, não é adicionado ao navegador de arquivos e não recebemos um alerta sonoro.

Mas como usamos um alvo “rejeitar” para dispositivos não reconhecidos, lsusb pode listar seus detalhes.

 lsusb 

Usando lsusb para listar dispositivos USB conectados

Se tivéssemos usado um alvo “bloquear” em nossa política base, precisaríamos usar o comando list-devices com a opção -b (dispositivos bloqueados).

 sudo usbguard list-devices -b 

Usando o comando list-devices para listar dispositivos bloqueados e conectados

Isso mostra os dispositivos USB atualmente conectados, mas bloqueados.

Usaremos algumas das informações desse comando para permitir que nosso dispositivo USB rejeitado tenha acesso temporário ou permanente. Para conceder acesso temporário ao nosso dispositivo, usaremos o número de identificação do dispositivo. No nosso exemplo, é "10".

 sudo usbguard permitir-dispositivo 10 

Concedendo acesso temporário a um dispositivo USB

Nosso dispositivo está conectado e aparece no dock e no navegador de arquivos. Se pedirmos ao USBGuard para listar os dispositivos bloqueados, nenhum será listado.

 sudo usbguard list-devices -b 

USBGUard encontrando nenhum dispositivo bloqueado

Podemos tornar a permissão permanente usando a opção -p (permanente). Isso cria uma regra para nós e a adiciona à nossa política.

 sudo usbguard permitir-dispositivo 10 -p 

Conceder acesso permanente a um dispositivo adicionando uma regra de permissão à política

Agora podemos usar este dispositivo USB normalmente.

Removendo o acesso de um dispositivo USB

Se você mudar de ideia sobre um dispositivo USB—talvez tenha perdido um stick de memória USB e queira remover seu acesso—você pode fazê-lo com o comando block-device .

Precisamos saber o ID do dispositivo. Podemos encontrar isso listando os dispositivos permitidos. Observe que esse número pode não ser o mesmo que você usou para adicionar a regra à lista, portanto, verifique antes de emitir o comando block-device .

 sudo usbguard list-devices -a 

Obtendo o número de ID de um dispositivo USB usando o comando list-devices

No nosso caso, o ID é “13”. Usaremos isso com o comando block-device e a opção -p (permanente) para remover seu acesso para sempre.

 sudo usbguard block-device 13 -p 

Bloqueando permanentemente o acesso de um dispositivo USB usando o comando block-device

Observe que isso desconecta imediatamente o dispositivo. Use este comando somente quando terminar de usar quaisquer dados no dispositivo.


O USBGuard oferece uma maneira eficiente e robusta de controlar e gerenciar quais dispositivos USB podem ser usados ​​em seu computador.

O computador é seu, então é justo que você escolha.

RELACIONADO: Como montar e desmontar dispositivos de armazenamento do terminal Linux