Quando a Senha Não É Suficiente: O Ataque de Fault Injection que Invade Sistemas Sem Saber a Password
Quando a Senha Não É Suficiente: O Ataque de Fault Injection que Invade Sistemas Sem Saber a Password
Existe um tipo de ataque informático que não precisa de saber a senha. Não tenta adivinhar, não usa força bruta, não explora vulnerabilidades de software. Atua a um nível mais fundamental — interfere diretamente com a eletricidade que alimenta o processador no momento exato em que este tenta verificar se a senha está correta.
Chama-se Fault Injection por voltagem — ou voltage glitching — e é uma das técnicas mais fascinantes e menos conhecidas da cibersegurança de hardware.
A Ideia Por Trás do Ataque
Para perceber o fault injection, é necessário perceber como um sistema de verificação de senha funciona a nível de hardware.
Quando introduzes uma senha num dispositivo — seja um cofre digital, uma fechadura eletrónica ou um microcontrolador de segurança — o processador executa uma sequência de operações para comparar o que introduziste com o que está armazenado. Se a comparação falha, o sistema regista um acesso negado e, dependendo da implementação, pode bloquear tentativas futuras.
O fault injection explora um ponto específico desta sequência: o momento exato em que a verificação ocorre. Se conseguires introduzir uma interrupção no fornecimento de energia do processador precisamente nesse momento, o dispositivo pode reiniciar antes de registar o resultado da verificação — ou pode corromper a memória temporária de tal forma que a verificação fica incompleta e o sistema avança como se a autenticação tivesse sido bem-sucedida.
Não precisas de saber a senha. Precisas de controlar a eletricidade com precisão suficiente para acertar no momento certo.
A Demonstração Prática: Arduino e Glitcher
A demonstração mais acessível desta técnica usa componentes que custam menos de 50 euros no total: um Arduino para simular o sistema alvo e um glitcher — um segundo microcontrolador configurado para controlar quedas de voltagem com precisão de microssegundos.
O circuito de demonstração funciona assim: o Arduino é programado com uma senha correta definida. Um LED vermelho pisca para senhas incorretas; um LED verde acende para acesso concedido. Sem o glitcher, qualquer senha errada resulta invariavelmente no LED vermelho.
Com o glitcher ativo, o atacante envia uma senha incorreta — qualquer sequência aleatória — e simultaneamente provoca uma queda de voltagem milimetricamente controlada. A duração da queda é o parâmetro crítico: demasiado curta e o sistema ignora-a; demasiado longa e o dispositivo reinicia completamente sem processar nada.
Nos testes iniciais, com a duração de queda insuficiente, o sistema continua a responder com acesso negado. Aumentando ligeiramente a duração — frações de milissegundo — o momento de interferência passa a coincidir com a verificação de senha. O LED fica verde. O acesso é concedido sem que a senha correta tenha sido introduzida.
O Que Está a Acontecer Fisicamente
O que acontece internamente ao processador durante um glitch de voltagem é uma questão de física de semicondutores.
Os processadores modernos são circuitos que dependem de tensão estável para operar de forma previsível. Quando a voltagem cai abaixo do limiar mínimo de operação, os flip-flops — os elementos básicos de memória do circuito digital — podem mudar de estado de forma imprevisível. Bits que eram 0 podem tornar-se 1 e vice-versa.
Se isso acontecer durante o processo de verificação de senha — especificamente no ciclo de clock em que o resultado da comparação está a ser avaliado — o bit que determina "acesso negado" pode flutuar para "acesso concedido". A memória que guardava o resultado da verificação fica corrompida antes de ser lida, e o sistema avança como se a verificação nunca tivesse ocorrido.
É por isso que o atacante não precisa de saber a senha: não está a afetar a verificação em si, mas a impedir que o resultado da verificação chegue ao ponto de decisão.
As Implicações de Segurança
O fault injection por voltagem tem implicações sérias para dispositivos que dependem de verificação por senha para controlo físico de acesso:
Cofres eletrónicos com microcontroladores simples que não implementam proteção contra variações de tensão são vulneráveis a este tipo de ataque se o atacante tiver acesso físico ao circuito de alimentação.
Módulos de segurança em IoT — fechaduras inteligentes, sistemas de controlo industrial — implementados em microcontroladores de baixo custo sem medidas de proteção de hardware podem ser comprometidos da mesma forma.
Dispositivos de autenticação que não têm mecanismos de deteção de falhas de tensão podem ser contornados por um atacante com acesso físico ao hardware.
Como os Sistemas Resistem a Este Ataque
Os sistemas de segurança de hardware projetados para resistir a fault injection implementam várias contramedidas:
Sensores de voltagem: Circuitos que monitorizam continuamente a tensão de alimentação e reagem a quedas abruptas — desligando o sistema, apagando dados sensíveis ou entrando num modo de bloqueio — antes que a voltagem caia ao ponto de comprometer a operação do processador.
Redundância de verificação: Em vez de verificar a senha uma vez, os sistemas robustos verificam múltiplas vezes em sequência. Para um glitch ter sucesso, teria de acertar em todas as verificações — uma probabilidade muito menor.
Deteção de reinicializações anómalas: Os sistemas que registam e analisam padrões de reinício podem detetar um padrão de múltiplos reinicios consecutivos — característico de tentativas de glitching — e entrar em modo de bloqueio.
Microcontroladores com proteção integrada: Os processadores de segurança modernos, como os usados em cartões bancários e módulos TPM, incluem circuitos de deteção de ataques físicos como parte integrante do design. Não são apenas software — são física.
A Segurança Física Que Muitos Ignoram
O fault injection é um lembrete de que a segurança digital não existe no vácuo. As senhas mais complexas do mundo não protegem um sistema se o atacante tiver acesso físico ao hardware e o hardware não estiver desenhado para resistir a interferência física.
É a velha frase da segurança informática em ação: quem tem acesso físico tem acesso total — a não ser que o hardware tenha sido especificamente projetado para negar isso.
Para a maioria dos dispositivos de consumo, o modelo de ameaça não inclui ataques físicos sofisticados. Para sistemas de segurança crítica — cofres, controlo de acesso, dispositivos médicos, infraestrutura industrial — ignorar este vetor de ataque é um erro que pode ter consequências reais.
O circuito com um Arduino e um glitcher barato é uma demonstração académica. Os ataques reais usam equipamento mais preciso e são executados por quem tem tempo, motivação e capacidade técnica para os repetir até acertar. A defesa começa por reconhecer que o problema existe.