No último dia 15 a FireEye publicou a descoberta de roteadores Cisco “infectados” com a ameaça que foi chamada SYNful Knock. Até o momento 199 roteadores (1841, 2811 e 3825) foram encontrados com este malware (nenhum no Brasil).
Não sei bem se infectado é o termo correto, já que na verdade alguém modificou o software incluindo esta “funcionalidade” e então colocou o software modificado nos roteadores. Acredita-se que para isso (trocar o software) não foi utilizada nenhuma vulnerabilidade do IOS original, e que tenham aproveitado de equipamentos mal configurados (utilização de senha padrão ou fraca), ou do acesso físico aos dispositivos.
Roteadores utilizando este IOS modificado permitem a conexão com redes CnC (Command and Control) e acesso remoto privilegiado. Com isso podem monitorar e roubar informações, “saltar” para outros equipamentos na rede e até mesmo alterar o código do malware, conforme desejo de seu desenvolvedor.
A Cisco já postou vídeo com um alerta para os consumidores, criou um página de reposta com todas as informações, criou uma nova regra para Snort, que detecta equipamento infectados, uma série de posts sobre o assunto, e ainda um scanner que pode detectar equipamentos comprometidos.
Os pesquisadores acreditam que é possível verificar se um equipamento está comprometido com o comando show platform, conforme abaixo.
Output de um roteador NÃO infectado
BrainRT01#show platform | include RO, Valid
16M 0x60000000:0x61FFFFFF 0x00000000:0x01FFFFFF CacheMode=3, RO, Valid
4M 0x62000000:0x627FFFFF 0x02000000:0x027FFFFF CacheMode=3, RO, Valid
4M 0x62800000:0x62FFFFFF 0x02800000:0x02FFFFFF CacheMode=3, RO, Valid
4M 0x63000000:0x637FFFFF 0x03000000:0x037FFFFF CacheMode=3, RO, Valid
1M 0x63800000:0x639FFFFF 0x03800000:0x039FFFFF CacheMode=3, RO, Valid
BrainRT01#
Algumas área da memória permitem apenas leitura, mas no software adulterado estas áreas foram modificadas para permitirem a escrita, e assim o comando não trará nenhum output.
Output de um roteador INFECTADO (exemplo)
BrainRT01#show platform | include RO, Valid
BrainRT01#
Lembro de uma apresentação do Adilson Florentino (do blog Netfinders), no Web Security Forum, chamada “IOS Trojan – Quem é o dono do seu roteador?”. Nela o Adilson alertava justamente para o risco de alguém ter acesso ao seu equipamento e instalar um trojan, que permitiria acesso a sua rede.
Na ocasião o “perigo” mais claro estava no EEM, que permite alguém criar um código no próprio roteador, liberando acesso remoto (via túnel GRE, por exemplo) e ainda maquiar o output dos comandos shows para não ser detectado.
Mas isso já faz uns quatro anos… evoluíram bastante.
Cisco IOS Image File Verification
No próprio Cisco IOS temos a opção para verificar a autenticidade e integridade do software que está sendo utilizado.
Basta usar o comando verify /md5 filesystem:filename [md5-hash] parar calcular o hash MD5 do software apontado e comparar com o hash informado pelo usuário.
Verificando a autenticidade e integridade do IOS
BrainRT01#verify /md5 flash:/c1841-advipservicesk9-mz.151-4.M10.bin 08cd5b9afd7da78307b392675769fb9e
(output omitido)
…………………………………………………………………………………………………………………………………………….
…………………………………………………………………………………………………………………………………………….
…………………………………………………………………………………………………………………………………….Done!
Verified (flash:/c1841-advipservicesk9-mz.151-4.M10.bin) = 08cd5b9afd7da78307b392675769fb9e
O hash pode ser obtido no site da Cisco (na área de download), e este é um processo normal quando fazemos a atualização do software em roteadores. Agora devemos usarmos esta funcionalidade para verificar se o equipamento não está infectado.
IOS alterado ou corrompido
BrainRT01#verify /md5 flash:/c1841-advipservicesk9-mz.151-4.M10.bin 08cd5b9afd7da78307b392675769fb91
(output omitido)
…………………………………………………………………………………………………………………………………………….
…………………………………………………………………………………………………………………………………………….
…………………………………………………………………………………………………………………………………….Done!
%Error verifying flash:/c1841-advipservicesk9-mz.151-4.M10.bin
Computed signature = 08cd5b9afd7da78307b392675769fb9e
Submitted signature = 08cd5b9afd7da78307b392675769fb91
Até a próxima.