Alguns colegas e leitores (obrigado Lincoln, Marcelo e Otávio) me enviaram links sobre dois "novos" vetores de ataques bastante comentados nos últimos dias pela comunidade de segurança:
1) ataques e rootkits que agem na BIOS; e
2) bots que infectam modems Linux
Ambos os vetores têm um alcance e escalabilidade potencialmente pequenos, porém são interessantes do ponto de vista da inovação, pois nos tiram do lugar comum de ataques envolvendo buffer overflows em executáveis de arquitetura x86 para windows ou linux, vulnerabilidades em browsers /plugins e engenharia social.
Vamos detalhar um pouco as duas novidades:
Vetor (1) ataques e rootkits que agem na BIOS;
Há mais de 10 anos atrás o temido vírus "Chernobyl" sobrescrevia parte da BIOS, deixando o computador inutilizável (aliás, o que motivou as BIOS com proteção de escrita - que está sendo "bypassada" agora).
Ainda no campo dos ataques ao "Basic Input Ouput System" (1), há mais de três anos (pdf 1, pdf 2, pdf 3 ) alguns pesquisadores de segurança (Loïc Duflot, John Heasman, Joanna Rutkowska, Rafal Wojtczuk e Greg Hoglund - autor do mais famoso livro sobre Rootkits) alertam sobre a viabilidade de exploits e rootkits na BIOS (persistentes à formatação/wipe do HD).
Recentemente os poloneses Joanna Rutkowska (que introduziu o conceito de "BluePill") e Rafal Wojtczuk- da InvisibleThings - publicaram mais um paper (pdf 1) / (pdf 2) demonstrando - com código de prova de conceito - um ataque à memória SMRAM via cache-poisoning em CPUs Intel - dois exploits foram desenvolvidos, um para fazer o dump e o outro para execução arbitrária de código, ambos na memória "protegida" SMRAM , durante a operação do SMM - System Management Mode.
A dificuldade na exploração da vulnerabilidade descrita se deve à necessidade de chegar à memória SMRAM a partir de acesso a registradores específicos para o modelo do processador (daí a necessidade de ser root/administrador ou possuir acesso físico à máquina). Uma boa descrição deste ataque foi feita recentemente no blog "Microsoft Malware Protection Center".
Os argentinos Anibal Sacco e Afredo Ortega (da empresa Core Security - fabricante do ótimo software de PenTest "Core Impact") fizeram uma apresentação há poucos dias (pdf) na conferência Consecwest chamada "Persistent BIOS Infection", na qual são detalhados os métodos de persistência de códigos maliciosos, e são apresentados backdoors stealths em nível de BIOS (por isto independentes de sistema operacional).
Os exemplos que foram demonstrados pelos hermanos são a modificação do shadow em Unix (ou seja, mudança de senha de qualquer usuário, inclusive root) e injeção de código em binários windows - tudo isto é executado a partir de recursos disponíveis ao backdoor rodando na BIOS (shellcodes em 16 bits).
Outro detalhe interessante: como as máquinas virtuais também tem BIOS, foram demonstradas técnicas para infectar múltiplas máquinas virtuais (atenção administradores de VMWare Servers) .
Alguma água vai rolar ainda sobre este tópico - segundo a MMPC, a Intel já sabia destas vulnerabilidades e inclusive a documentou no data sheet de um chipset vulnerável (5100 MCH): "The chipset/platform cannot protect against processors who attempt to illegally access SMM space that is modified in another processor's cache".
Vetor (2): bots que infectam modems MIPS e outros rodando Linux
Para um hacker, invadir computadores isoladamente não é a única abordagem possível de se controlar máquinas remotamente. Como já colocamos anteriormente em duas ocasiões, pode ser mais proveitoso para um atacante ter controle de um roteador que é responsável por distribuir IPs (DHCP) em uma rede, resolver nomes de sites (DNS), etc..
Nos nossos post "linkados" acima, descrevemos o código malicioso ZLOB ou DNSChanger - que depois de infectar uma máquina Windows, direciona seus esforçous de invasão (força bruta de senhas padrão) em roteadores no IP registrado como gateway desta máquina infectada.
Já no caso do PsyB0t - personagem das notícias recentes sobre a botnet rodando em modems Linux (como o Netcomm NB5 ADS, openwrt e dd-wrt), a infecção ocorre de modem linux a modem linux.
Em dezembro de 2008 o pesquisador australiano Terry Baume descobriu a botnet, e uma primeira análise (pdf) do Psyb0t 2.5L foi feita por ele em janeiro deste ano. Uma vulnerabilidade em várias revisões deste modem permitiu que o criador utilizasse exploits para invadir os modems - quando isto não é possível, a botnet tenta senhas padrão (a la ZLOB) para tentar acesso à interface administrativa dos modems.
Falando em história mais uma vez e em exploração de vulnerabilidades de modems: em 2001 o pesquisador Tsutomu Shimomura (sim aquele que prendeu o Kevin Mitnick) - achou e divulgou uma falha no modem ADSL Speed Touch Pro da Alcatel - esta falha não foi corrigida em modems distribuídos em vários países, e juntando ao enredo a famosa prática da "senha padrão" - acabou ocasionando a invasão em massa de modems na Itália (2001) e no Brasil (2003), por exemplo.
Adequando o ataque à realidade de hoje, voltamos à botnet PsyB0t - a primeira a ter como alvo modems ADSL e roteadores - já possui mais de 100 mil modems linux zumbis, é controlada via IRC e já está sendo utilizada para ataques de DDOS (um dos ataques que mais repercutiu foi ao site DRONEBL (ainda sob ataque) - que possui um serviço de listagem para bloqueio (DNSBL) de botnets e possivelmente está atrapalhando o seu crescimento). O ataque tem sido chamado de "Network BluePill" - por sua característica Stealth (as máquinas da rede que confiam no Gateway estão completamente à mercê).
É o primeiro caso de uma botnet tão bem sucedida em Linux, e o primeiro caso de uma botnet em "embedded devices". Certamente é preocupante, e pode ficar pior (nada como um bom FUD) - se somarmos este tipo de ataque (usando senhas default em modems/routers) a DNS Rebinding - veja descrição e video de 2008 no site do Dan Kaminsky.
Percebe-se pelas várias análises já publicadas que o PsyBot é um malware perigoso e bem desenvolvido :
- contém shellcode para vários devices de arquitetura mipsel (mips little-endian)
- não está atacando computadores ou servidores
- utiliza múltiplas estratégias de exploração de modems, incluindo força-bruta de senhas
- extrai / rouba usuários e senhas através de deep packet inspection
- varre por servidores com phpMyAdmin e MySQL vulneráveis e os ataca
- faz o modem se juntar a uma botnet via protocolo IRC, porta tcp 5050.
- desabilita o acesso à interface administrativa do modem (SSH, Telnet, and HTTP) - o que dificulta sua remoção, pois a conexão continua a funcionar, mas você perde a habilidade de configurar o seu router (pode ser um indicativo de que você está infectado).
- troque a senha padrão da interface de administração do modem;
- se certifique que ela não está aberta para a Internet; e
- faça um upgrade de firmware para a última versão.
Conclusões:
É verdade que a grande maioria dos ataques a que estamos expostos são perpetrados explorando falhas simples como engenharia social e utilização de exploits públicos para vulnerabilidades antigas, porém os dois vetores de ataques que descrevemos nos lembram da importância do conceito de segurança em profundidade. Se você puder escolher, utilize placas-mãe não vulneráveis aos ataques de BIOS (veja a lista aqui) e upgrade de firmware e configuração segura de modems de banda larga [ADSL/Cabo]).
Os vetores de ataques descritos não são prevalentes, porém são viáveis e tem um perigoso componente stealth. Este tipo abordagem permite ao atacante um controle de posições privilegiadas (seja no router, seja na BIOS) e como não atuam na camada de sistema operacional dos computadores da rede, podem permanecer sem detecção por muito tempo.
É claro que uma "percepção situacional" apurada e atualizada é fundamental para nos defendermos de novos ataques e de adversários bem preparados, pois a pesquisa de ontem que virou a prova de conceito de hoje pode se transformar no ataque que você pode sofrer ou terá que analisar amanhã...
Parabens pelo artigo Sandro. O mais completo, como sempre! (e obrigado pelo crédito heheh)
ReplyDeleteValeu Otávio, e obrigado (ao Lincoln e Marcelo também) pela sugestão dos assuntos..
ReplyDelete[ ]s,