BadUSB: como um pendrive vira teclado hacker e como se proteger

Em janeiro de 2022, o FBI alertou empresas americanas sobre pacotes pelo correio que chegavam com um pendrive dentro: ora uma carta falsa do Departamento de Saúde sobre regras de COVID, ora uma caixa de presente "da Amazon" com cartão-presente de brinde. Quem espetava o dispositivo no computador não via nenhum arquivo. O que acontecia era pior: o "pendrive" se apresentava como teclado e começava a digitar sozinho. Isso é o BadUSB.
O que é BadUSB?
BadUSB é uma classe de ataque em que um dispositivo USB se declara ao computador como outro tipo de aparelho — normalmente um teclado — e passa a "digitar" comandos que o usuário nunca escreveu. O sistema operacional confia em teclados por padrão, então aceita a entrada sem pedir permissão.
O nome vem da pesquisa apresentada por Karsten Nohl e Jakob Lell, da SR Labs, na Black Hat USA de 7 de agosto de 2014. Eles fizeram engenharia reversa do firmware do microcontrolador dentro de pendrives comuns e mostraram que dava para reescrevê-lo. O código malicioso mora no firmware, não na memória flash onde ficam os arquivos. Apagar o conteúdo ou formatar o pendrive não remove nada, e os antivírus da época não varriam esse firmware. Segundo a cobertura da Security Affairs e do eWeek, a demonstração incluiu pendrive que imitava teclado e até um que fingia ser placa de rede para trocar o DNS da máquina.
Como um pendrive vira teclado?
Todo dispositivo USB, ao ser conectado, informa ao computador sua classe: armazenamento, áudio, rede, ou HID (Human Interface Device, a classe de teclados e mouses). Quem decide o que o aparelho diz ser é o firmware. Um dispositivo com firmware modificado pode se declarar HID e enviar sequências de teclas gravadas de antemão, na velocidade de uma máquina.
Existem versões prontas, vendidas abertamente para testes de intrusão autorizados: o USB Rubber Ducky, da Hak5, tem aparência de pendrive e usa uma linguagem de script própria (DuckyScript) para definir o que será "digitado". Há também cabos com a eletrônica escondida dentro do conector, como o O.MG Cable. Para quem está do lado de lá do cabo, tudo parece um carregador ou um pendrive qualquer.
O truque funciona porque a pessoa que "digita" tem as mesmas permissões do usuário logado. Um payload típico abre um terminal, baixa algo da internet e executa. Se o usuário for administrador, o estrago é maior.
O caso FIN7: BadUSB pelo correio
O alerta do FBI, noticiado pelo Bleeping Computer em 7 de janeiro de 2022, atribuiu os envios ao grupo financeiro FIN7. Os pacotes, enviados por USPS e UPS, miravam empresas de transporte, seguros e, a partir de novembro de 2021, do setor de defesa. Os dispositivos eram placas LilyGO vendidas na internet e, segundo o FBI, registravam-se como teclado, o que funciona mesmo com o armazenamento removível desabilitado. Os comandos eram de PowerShell para baixar e instalar cargas maliciosas, incluindo ransomware, como relataram Bleeping Computer, Bitdefender e Tripwire.
A lição aqui é de engenharia social: a parte técnica é banal, o que faz o ataque funcionar é a embalagem convincente e a curiosidade de quem recebe.
BadUSB é a mesma coisa que juice jacking?
Não. No juice jacking o ataque vem de um carregador ou porta pública comprometida; no BadUSB o ataque está dentro do próprio dispositivo que você conecta. Os dois exploram a confiança em portas USB, e as defesas se sobrepõem. O post sobre juice jacking cobre o outro lado dessa moeda. Já o keylogger é um destino comum desses ataques: o primeiro comando digitado costuma instalar algo que fica.
Como se proteger de BadUSB
- Nunca conecte pendrive achado, recebido pelo correio ou brinde de evento. É a defesa mais barata e a mais eficaz.
- Bloqueie o computador ao se afastar (Windows + L). Um dispositivo espetado numa máquina bloqueada tem muito menos o que fazer.
- Não trabalhe como administrador no dia a dia. Conta comum limita o que os comandos digitados conseguem alterar.
- Desative portas USB que ninguém usa em servidores e máquinas de uso fixo (BIOS/UEFI ou política corporativa).
- Em empresas, use lista de dispositivos permitidos. Bloquear só "armazenamento removível" não basta, porque o BadUSB aparece como teclado.
Como detectar no Windows
Para ver quais teclados o Windows reconhece neste momento, use o PowerShell:
Get-PnpDevice -Class Keyboard -PresentOnly | Select-Object FriendlyName, InstanceId, StatusSe aparecer um teclado que você não conectou, investigue. Para ter histórico, ative a auditoria de eventos Plug and Play. Ela gera o evento 6416 ("um novo dispositivo externo foi reconhecido") no log de Segurança:
auditpol /set /subcategory:"Plug and Play Events" /success:enable
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=6416} -MaxEvents 10Em português, o nome da subcategoria muda conforme o idioma do Windows; confira com auditpol /list /subcategory:*. O post sobre logs de auditoria do PowerShell ajuda a registrar o que esses comandos digitados executaram.
Para bloqueio de verdade em ambiente corporativo, a Política de Grupo tem as regras de Restrições de instalação de dispositivo (Configuração do Computador, Modelos Administrativos, Sistema, Instalação de Dispositivos), que permitem liberar só IDs ou classes específicas. Teste antes: uma regra mal feita derruba também o teclado e o mouse legítimos.
E no Linux?
No Linux, o USBGuard mantém uma lista de dispositivos autorizados e bloqueia o resto. Instale pelo gerenciador de pacotes, gere uma política com os dispositivos que já estão conectados e liste o que o sistema vê:
sudo apt install usbguard
sudo usbguard generate-policy | sudo tee /etc/usbguard/rules.conf
sudo systemctl enable --now usbguard
sudo usbguard list-devicesGere a política com o notebook limpo e só com seus periféricos conectados. A partir daí, dispositivo novo fica bloqueado até você autorizar com usbguard allow-device.
A lição maior
O BadUSB mostra uma falha de desenho: o USB nasceu para ser plug and play, e o computador acredita no que o dispositivo diz sobre si mesmo. Em 2014 a pesquisa já avisava que não havia correção simples, e a recomendação de Nohl era tratar como contaminado qualquer USB que tenha encostado em um computador não confiável. Doze anos depois, a defesa continua sendo comportamento: não conectar o que você não conhece e limitar o que cada porta aceita. Se quiser seguir pelo lado do hardening, veja também o guia de 10 configurações para deixar o Windows 11 mais seguro.




Comentários