- Várias vulnerabilidades do UEFI podem levar a ataques contra o Linux, o Windows e o Mac
- O problema com o LogoFAIL persiste mesmo após a reinstalação do sistema operacional
- Isso também amplia os riscos da cadeia de suprimentos para o próprio hardware
Pesquisadores de segurança, conhecidos por seus métodos curiosos e não convencionais, analisaram recentemente a UEFI (Unified Extensible Firmware Interface), revelando vulnerabilidades significativas conhecidas como “LogoFAIL”. Esses especialistas, que investigam sistemas para descobrir formas incomuns de explorá-los, descobriram que a UEFI, a versão moderna que substituiu o BIOS tradicional, está suscetível a certas falhas — que têm impactos de amplo alcance.
Especificamente, os pesquisadores descobriram que as bibliotecas utilizadas por diversos integradores de sistemas e fornecedores na UEFI de suas placas-mãe são vulneráveis. Essas bibliotecas podem ser manipuladas para realizar operações imprevistas por meio de imagens criadas especificamente para esse fim e exibidas durante a inicialização do sistema, como logotipos e banners. Essa manipulação contorna efetivamente recursos de segurança como o Secure Boot, induzindo o sistema operacional subsequente em erro.
Então, quais são os riscos que as vulnerabilidades do LogoFAIL representam e o que isso significa para você?
Conhecimentos préviosEntendendo a UEFI
UEFI significa Unified Extensible Firmware Interface (Interface Unificada e Extensível de Firmware), uma versão avançada do antigo BIOS. Trata-se, essencialmente, de um sistema operacional compacto que gerencia a inicialização do hardware e a segurança preliminar do sistema antes de transferir o controle para o sistema operacional principal. A UEFI supervisiona inúmeras funções, incluindo a frequência da CPU, o gerenciamento de energia e temperatura, os tempos de memória e as operações dos periféricos. Alguns sistemas UEFI chegam a oferecer conectividade de rede para atualizações de firmware sem a necessidade de um sistema operacional. Ao contrário do BIOS, o UEFI oferece uma experiência visual consistente ao exibir uma imagem durante a inicialização, que permanece visível durante toda a inicialização do UEFI e até a fase de inicialização do sistema operacional. Isso difere do BIOS, que normalmente envolve mudanças na resolução da tela e reinicializações no modo de texto antes que os drivers do sistema operacional sejam ativados. FuzzingO fuzzing é um método de teste utilizado por desenvolvedores e profissionais de TI para avaliar a robustez do software. Ele consiste em enviar uma ampla variedade de entradas diversas e, muitas vezes, aleatórias para todos os campos de entrada, opções e parâmetros possíveis do aplicativo. O objetivo é garantir que o aplicativo permaneça estável diante de tipos de entrada não convencionais, como a inserção de letras em campos numéricos ou de caracteres UTF-16 em campos projetados para UTF-8, expondo assim possíveis vulnerabilidades no código. |
Vulnerabilidades do LogoFAIL
A Binarly divulgou essa família de vulnerabilidades, inicialmente considerada um risco potencial de vulnerabilidade zero-day, recentemente na BlackHat Europe, e isso chamou a atenção de profissionais de segurança cibernética.
Elas são chamadas de vulnerabilidades “LogoFAIL” e decorrem de falhas nas bibliotecas de análise de imagens incorporadas ao firmware do sistema UEFI. Essas bibliotecas são utilizadas para exibir logotipos durante o processo de inicialização ou na configuração da BIOS.
As vulnerabilidades específicas identificadas incluem falhas de estouro de buffer baseadas em heap e leituras fora dos limites. Essas vulnerabilidades são acionadas quando um arquivo de imagem de logotipo malicioso é injetado na partição do sistema EFI, levando à execução de cargas maliciosas capazes de sequestrar o processo de inicialização e contornar mecanismos de segurança como o Secure Boot e o Intel Boot Guard.
É importante observar que, apesar do alarde, para explorar essas vulnerabilidades é necessário, em primeiro lugar, ter acesso ao sistema e, dentro desse acesso, possuir privilégios para gravar na partição EFI e na memória RAM não volátil (nvram) da UEFI. O leitor mais atento perceberá que, se você já possui esse nível de acesso, o problema não é necessariamente a exploração LogoFAIL em si, mas sim a persistência que ela permite que outros malwares explorem. Considere, por exemplo, um ransomware que persiste mesmo após tentativas de reimagem do sistema, após um ataque em toda a infraestrutura. Isso prejudicaria gravemente as operações de recuperação.
Para piorar ainda mais a situação, as vulnerabilidades estão presentes em várias plataformas e arquiteturas. Elas afetam tanto dispositivos baseados em x86 quanto em ARM. Fabricantes de BIOS, como AMI, Phoenix e outros, criam firmware afetado pelo LogoFAIL. Por sua vez, isso faz com que as placas-mãe que utilizam esse firmware também sejam afetadas — não importa se se trata de hardware de nível de servidor ou de consumo, já que os mesmos fabricantes de BIOS fornecem software para todos eles. Fornecedores como Intel, Dell, Supermicro, Acer e muitos outros são, portanto, afetados.
O impacto
Ter um código em execução antes mesmo que o sistema operacional tenha a chance de começar a carregar e a oferecer proteção contra ameaças é um risco especialmente grave. Não importa se sua solução antivírus detecta tudo o que é carregado, se a ameaça já estiver em execução quando o software antivírus começar a funcionar.
Quando você tem controle sobre o que é iniciado logo no início do processo, é possível implantar um software preventivo que impede que as proteções no nível do sistema operacional sejam ativadas desde o início — neutralizando, na prática, a segurança tradicional de terminais.
Na verdade, o LogoFAIL pode levar a ataques contra qualquer sistema operacional — Linux, Windows, Mac ou até mesmo os mais obscuros. Ele, na verdade, sobrevive à reinstalação do sistema operacional, por isso é muito resistente a tentativas de remoção.
Não é a primeira vez que o firmware é considerado uma forma persistente de atacar um sistema, como no caso da exploração do firmware do disco rígido demonstrou há alguns anos, mas esta é certamente a maneira que exige menos esforço para alcançar esse nível de resiliência.
Uma ameaça real?
A situação ainda não chegou a esse ponto. Talvez seja apenas mais uma situação crítica, em vez do cenário apocalíptico que vem sendo retratado em todos os sites de notícias do setor.
Os fornecedores afetados terão que lançar imagens UEFI atualizadas; portanto, são necessárias atualizações de firmware para corrigir efetivamente as bibliotecas afetadas que estão na origem do problema, mas isso protegerá o sistema contra essa ameaça.
Isso, claro, supondo que todos apliquem as atualizações em todos os sistemas.
Fuzzing da UEFI
Os pesquisadores que descobriram o problema fizeram isso por meio de um teste de fuzzing no código da UEFI e reconhecem que, até o momento, o risco é apenas teórico.
Ao enviar grandes quantidades de dados para as bibliotecas dentro da UEFI, foi possível identificar várias novas maneiras de causar falhas nessas bibliotecas, provocando estouros de buffer, leituras fora dos limites, dereferência de ponteiro nulo e problemas semelhantes.
Diferentes fornecedores incluem bibliotecas diferentes em seus firmwares, oferecendo suporte a vários formatos de imagem – são suportados os formatos JPEG, BMP e os formatos mais antigos PCX e Targa (TGA). Isso permite que os fornecedores de hardware adicionem imagens personalizadas aos seus equipamentos para promover a marca e diferenciá-los dos produtos de outros fornecedores.
Acontece que praticamente não há validação dos dados de imagem antes de serem analisados para exibição; portanto, é relativamente fácil criar imagens personalizadas que se aproveitem dessa falta de verificações para provocar falhas de sistema à vontade, deixando a UEFI em um estado previsível, no qual é possível implantar código e induzi-la a executá-lo.
A cadeia de suprimentos de software
O fato de que uma determinada carga de trabalho possa ser afetada por vulnerabilidades ao longo de toda essa extensa cadeia de dependências e ambientes — desde falhas no firmware de hardware, como o LogoFAIL, até problemas no nível do software, como as vulnerabilidades do KeePass — é algo para o qual parecemos fechar os olhos, seja por falta de conscientização, seja por incapacidade de prevenir isso de forma eficaz. Mas isso não torna o sistema mais seguro.

