Quando pensamos em ciberameaças, nós do Laboratório da ESET LATAM vemos com frequência ransomwares, trojans bancários (especialmente no Brasil), botnets e worms. Assim, outros tipos de malwares nocivos que executam mais discretamente no sistema acabam recebendo menos de nossa atenção; como é o caso de malwares de firmware (bootkits).
Bootkits são executados antes mesmo do carregamento do sistema operacional (SO) e procuram por componentes do SO para modificar ou subverter seus comportamentos. O fato de bootkits serem executados cedo no sistema confere a eles a possibilidade de permanecer escondidos e serem persistentes, sobrevivendo a reformatação de HD ou reinstalação de SO.
Esse tipo de ameaça atinge firmwares de BIOS e UEFI de diferentes formas, como flashing, atualização ou exploração de vulnerabilidades de firmware, apenas para dar alguns exemplos. Atualmente, as características avançadas que fazem do UEFI uma plataforma atrativa também abre caminhos para novas vulnerabilidades que não existiam na era de BIOS mais rígidas. Por exemplo, a habilidade de rodar módulos personalizados torna possível criar malwares que serão executados pelo UEFI antes de que qualquer solução de anti-malware, ou mesmo o SO, serem inicializados.
Essas características fazem dos bootkits uma almejada ferramenta para ataques avançados. Apesar do conceito de bootkit ter sido implementado há muitos anos, pelo menos desde 1986, a evolução das ameaças cibernéticas impõem novos desafios e preocupações aos usuários de computadores.
Por que se preocupar com bootkits?
Quando pensamos em segurança, levamos em consideração o risco. É sabido que o risco é uma composição da possibilidade de um incidente com seu impacto potencial, de maneira que enquanto o impacto potencial de um bootkit é inegavelmente enorme, o que se pode afirmar a respeito da possibilidade de se deparar com essa ameaça?
Para buscar respostas, devemos analisar duas questões: se por um lado, temos que identificar atores e cenários que podem se beneficiar de bootkits e ponderar se estes se tornarão mais ou menos comuns no futuro; por outro lado, devemos avaliar nossas capacidades de detectar esta ameaça, caso contrário, “possibilidade” não passará de uma questão etérea.
Para identificar atores e cenários, vejamos a evolução dos bookits e os casos mais notórios do passado. Traçando uma linha do tempo, vê-se claramente que a ameaça está se tornando cada vez mais frequente.
Mebromi, conhecido por ser o primeiro bootkit “in the wild” (ou seja, difundido entre os usuários de computador), abrange um rootkit de BIOS, rootkit de MBR, rootkit de modo kernel, um arquivo PE e um Trojan downloader, executados de tal maneira que o sistema comprometido faz requisições em busca de conteúdos externos – que podem ser virtualmente qualquer malware – toda vez que o sistema é inicializado. Para realizar o ataque, Mebromi escala privilégio carregando seu código em modo kernel para ganhar acesso à BIOS.
É interessante notar que a partir de 2014, outros bootkits detectados “in the wild” foram frequentemente relacionados, direta ou indiretamente, a hacking governamental.
Nas revelações do NSA ANT catalog em 2014, foi revelado o DEITYBOUNCE – uma aplicação que provia acesso persistente a servidores PowerEdge da Dell através da exploração de vulnerabilidades no firmware da BIOS e utilizava o Modo de Gerenciamento do Sistema (SSM, “System Management Mode”) para obter uma execução periódica enquanto o sistema operacional era carregado. Seu uso era similar ao Mebromi, onde novamente payloads são baixados e executados durante o processo de boot do sistema.
Em 2015, foi a vez do “HT rkloader”, exposto após o vazamento do Hacking Team. Diferente da NSA, o Hacking Team não é uma agência governamental. No entanto, o Hacking Team vende ferramentas de invasão e vigilância para diferentes governos. Em particular, o “HT rkloader” foi o primeiro caso de rootkit para UEFI descoberto “in the wild”.
Como já podíamos imaginar, o vazamento das ferramentas do Equation Group da NSA pelos Shadow Broakers trouxeram mais bookits à luz. O catálogo de ferramentas vazadas continham alguns “implantes”, como o BANANABALLOT, um módulo de BIOS associado a um “implante” (provavelmente BANANAGLEE), e o JETPLOW, um implante de firmware persistente para Cisco ASA e dispositivos PIX para a instalação do BANANAGLEE.
Finalmente, neste ano, as revelações do Vault7 da CIA trouxeram à tona ferramentas governamentais que também atacavam firmwares. O ataque explorava uma vulnerabilidade no S3BootScript (corrigida em 2015) para instalar componentes de UEFI em sistemas Apple.
Esses são apenas alguns exemplos de bootkits detectados, utilizados em ataque reais (não apenas provas de conceito), que somente ficamos sabendo devido a grandes (e raros) incidentes de vazamento. No entanto, já é possível perceber o apetite de atores avançados por ataques que comprometem firmwares.
Mesmo assim, você talvez se pergunte: como isso pode interferir em nossas “vida comuns”? Aqui devemos, novamente, olhar o passado e perceber que vivemos tempos difíceis. A pandemia do WannaCryptor (mais conhecido como WannaCry) é um exemplo do que pode dar errado quando ferramentas avançadas de hacking caem em mãos erradas.
Além disso, temos visto muitos casos de ataques nas cadeias de fornecimento, de maneira que os dispositivos são infectados antes mesmo de serem utilizados por seus eventuais donos. Um ataque na cadeia de fornecimento de firmware poderia afetar um enorme número de usuários e permanecer longe do radar por um longo período de tempo.
Portanto, é extremamente importante possuir a capacidade de detectar infecções furtivas em firmwares, o que nos traz ao segundo aspecto a ser analisado neste post.
Nossas capacidades de defesa
Nada pior ou mais perigoso do que a falsa sensação de segurança. O caso de Edward Snowden e os demais aqui citados são chamadas de despertar para toda a indústria de segurança a respeito de malwares em firmware.
O VirusTotal, em um post intitulado “Putting the spotlight on firmware malware”, anunciou novos recursos para caracterizar em detalhes imagens de firmware, se são legítimas ou maliciosas.
Desde 27 de janeiro de 2016, dia do anúncio da nova funcionalidade do VirusTotal, é possível submeter imagens de UEFI para análise, sendo que essas contêm “precisamente os códigos executáveis que poderiam ser fontes maliciosas para ataques”, conforme observado pelo autor do post.
Essa é uma grande contribuição para a segurança do ciberespaço como um todo, já que uma interface simples e conhecida foi colocada à disposição de todos para a análise de malware em firmwares. Porém, sua maior desvantagem é o procedimento para extrair a imagem antes de submetê-la a análise.
O VirusTotal sugere algumas ferramentas capazes de realizar essa tarefa. Estas são, no entanto, concebidas para usuários experts, e não para leigos. Este não é tão somente o único aspecto limitante para a extração da imagem do firmware, há também o fato dessas ferramentas serem desenvolvidas explicitamente para ambientes de testes, por razões que vão desde o aumento da superfície de ataque em sistemas onde estão instaladas, até um possível erro em sua execução que poderia deixar o sistema operacional inutilizável.
Outra opção é contar com uma solução de segurança que permita scanear firmwares de UEFI sem a necessidade de ferramentas adicionais e que seja capaz de detectar malwares escondidos.
A descoberta de ameaças avançadas que buscam comprometer firmwares, sendo utilizada em ataques reais, é muito preocupante – especialmente porque são executadas desapercebidamente nos sistemas. Soma-se o fato da detecção desse tipo de malware ser árdua e difícil (quase impossível, pouco tempo atrás), possivelmente fornecendo uma falsa sensação de segurança a muitas de suas vítimas.
No entanto, há males que vêm para o bem. Esse infindável jogo de gato e rato nos permite manter a proteção.