As interfaces UEFI que inicializam dispositivos Windows e Linux podem ser comprometidas por meio de imagens de logotipo maliciosas. Bilhões de computadores Windows e Linux de praticamente todos os fabricantes estão vulneráveis ​​a um novo ataque que lança firmware malicioso no início do processo de inicialização. Assim, o sistema fica infectado com vírus que são quase impossíveis de detectar ou remover usando os mecanismos de proteção existentes.

Imagem Fonte: Pixabay.com

O ataque, apelidado de LogoFAIL pelos investigadores, é caracterizado pela sua relativa facilidade de implementação, pela amplitude da sua cobertura de modelos de consumo e de classe empresarial que são susceptíveis a ele, e pelo elevado nível de controlo sobre eles. Em muitos casos, o LogoFAIL pode ser explorado remotamente usando técnicas que não podem ser detectadas pelos produtos tradicionais de segurança de endpoint. E como as explorações são lançadas muito cedo no processo de inicialização, elas podem contornar uma variedade de proteções, incluindo o sistema de inicialização segura padrão da indústria e outras proteções da Intel, AMD e outros fabricantes de hardware projetadas para evitar infecções pelos chamados bootkits.

LogoFAIL é uma coleção de duas dúzias de vulnerabilidades descobertas recentemente que ficaram ocultas por anos, senão décadas, nas interfaces de firmware extensíveis e unificadas responsáveis ​​pela inicialização de dispositivos modernos que executam Windows ou Linux. A descoberta dessas vulnerabilidades é resultado de quase um ano de trabalho da Binarly, que ajuda os clientes a identificar e proteger sistemas vulneráveis.

Produtos de empresas que representam quase todo o ecossistema x64-86 e ARM são afetados. Isso inclui fornecedores de UEFI como AMI, Insyde e Phoenix (também chamados de IBV ou fornecedores independentes de BIOS); fabricantes de dispositivos como Lenovo, Dell e HP; e fabricantes de processadores, incluindo desenvolvedores de processadores Intel, AMD e Arm. Os pesquisadores revelaram o ataque na quarta-feira na conferência de segurança Black Hat em Londres.

Como o nome sugere, LogoFAIL afeta logotipos, especificamente logotipos de fornecedores de hardware, que aparecem na tela do dispositivo no início do processo de inicialização enquanto o UEFI ainda está em execução. Os analisadores de imagens UEFI dos três principais fornecedores de UEFI têm cerca de uma dúzia de vulnerabilidades críticas que não foram detectadas até agora. Ao substituir imagens de logotipo legítimas por outras idênticas projetadas especificamente para explorar esses erros, o LogoFAIL permite que códigos maliciosos sejam executados no estágio mais crítico do processo de inicialização, conhecido como DXE (Driver Execution Environment).

«Se o estágio DXE conseguir executar código arbitrário, então está tudo acabado para a segurança da plataforma, afirmam em seu relatório pesquisadores da Binarly, empresa que descobriu as vulnerabilidades. “A partir desta fase, temos controle total sobre a memória e o disco do dispositivo alvo, incluindo o sistema operacional que será lançado.”

O LogoFAIL pode então fornecer uma “carga útil” de segundo estágio que despeja o arquivo executável no disco rígido antes mesmo de o sistema operacional principal ser iniciado. O vídeo a seguir mostra uma exploração de prova de conceito criada pelos pesquisadores. O dispositivo afetado, um Lenovo ThinkCentre M70 de 2ª geração rodando em Intel Core de 11ª geração com UEFI lançado em junho, executa proteções de firmware padrão, incluindo Secure Boot e Intel Boot Guard.

Em sua carta, o fundador e CEO da Binarly, Alex Matrosov, escreveu: “LogoFAIL é um conjunto recentemente descoberto de vulnerabilidades de segurança de alto nível que afetam várias bibliotecas de análise de imagens usadas em firmware de sistema de vários fabricantes durante o processo de inicialização do dispositivo. Na maioria dos casos, essas vulnerabilidades estão presentes no código de referência, o que impacta não apenas um fornecedor, mas todo o ecossistema que inclui esse código e os fabricantes dos dispositivos que o utilizam. Este ataque poderia dar ao agente da ameaça uma vantagem ao contornar a maioria das soluções de segurança de endpoint e fornecer um bootkit de firmware oculto que seria armazenado em uma cápsula de firmware com uma imagem de logotipo modificada.”

Existem várias maneiras de usar o LogoFAIL. Os ataques remotos são realizados explorando uma vulnerabilidade não corrigida em um navegador, reprodutor de mídia ou outro aplicativo e usando o controle administrativo resultante para substituir uma imagem de logotipo legítima processada no início do processo de download por uma idêntica que explora uma falha do analisador. Outro método é obter acesso rápido ao dispositivo afetado enquanto ele está desbloqueado e substituir o arquivo de imagem legítimo por um malicioso.

Em ambos os casos, o logotipo malicioso faz com que a UEFI execute código criado pelo invasor durante a fase crítica do DXE sempre que o dispositivo é inicializado. Ao executar o código neste estágio inicial, quando ocorre a maior parte da inicialização do sistema, a exploração sequestra todo o fluxo de execução subsequente, permitindo ignorar proteções como inicialização segura e mecanismos de verificação de inicialização de hardware, como Intel Boot Guard, AMD Hardware-Validated Boot, ou inicialização segura baseada em ARM TrustZone.

Dependendo de como o UEFI está configurado, um simples comando de copiar/colar, executado de forma maliciosa ou com acesso físico, é em muitos casos tudo o que é necessário para colocar a imagem maliciosa no chamado ESP (abreviação de EFI System Partition) – uma área do disco rígido onde armazena carregadores de inicialização, imagens de kernel e quaisquer drivers de dispositivo, utilitários de sistema e outros arquivos de dados necessários antes da inicialização do sistema operacional principal.

Esta abordagem tem sérias vantagens. Primeiro, nenhum código executável chega ao disco rígido, uma técnica conhecida como “malware sem arquivo”, que dificulta a detecção de antivírus e outros tipos de software de segurança de endpoint. Outra vantagem: após a criação de uma imagem, o dispositivo permanece infectado mesmo que o sistema operacional seja reinstalado ou o disco rígido principal seja substituído.

Se o firmware do sistema baseado em UEFI estiver configurado para usar corretamente recursos de segurança como Intel Boot Guard e tiver um logotipo não modificável, será impossível plantar uma imagem maliciosa no ESP. No entanto, em muitos casos, é possível executar uma ferramenta de software gratuita do IBV ou do site do fabricante do dispositivo que “carregará” o firmware do sistema operacional. Para passar na verificação de segurança, a ferramenta instala o mesmo firmware UEFI assinado criptograficamente que já está em uso, alterando apenas a imagem do logotipo, que não requer assinatura digital válida. Em muitos casos, a ferramenta IBV é assinada digitalmente, reduzindo a probabilidade de interferência na segurança do endpoint.

Em apresentação na quarta-feira, os pesquisadores incluíram a seguinte imagem ilustrando os ataques LogoFAIL em ação.

Fonte da imagem: Binário

Em documento que acompanha a apresentação, os pesquisadores observam o seguinte:

«Como você pode ver na figura anterior, o ataque LogoFAIL pode ser dividido em três estágios diferentes. O invasor primeiro prepara uma imagem do logotipo malicioso, armazena-a no ESP ou em uma seção de atualização de firmware não assinada e reinicia o dispositivo. Durante o processo de inicialização, o firmware vulnerável baixa um logotipo malicioso do ESP e o analisa usando um analisador de imagem vulnerável, permitindo que um invasor sequestre o fluxo de execução explorando uma vulnerabilidade no próprio analisador. Usando esta ameaça, um invasor pode conseguir a execução arbitrária de código no estágio DXE, o que significa um colapso completo da segurança da plataforma.

Fonte da imagem: Binário

Resumindo, qual é o impacto das nossas descobertas e o que torna o LogoFAIL tão perigoso? Como vemos na figura anterior:

LogoFAIL não requer acesso físico ao dispositivo. Como pode ser executado inteiramente a partir do sistema operacional, ele rompe completamente quaisquer limites de segurança entre o sistema operacional e o firmware. As ferramentas modernas de proteção do sistema operacional, como o Secure Boot, também são completamente ineficazes contra essa ameaça.

Os ataques que começam no nível do firmware podem instalar um bootkit e minar qualquer mecanismo de segurança no nível do sistema operacional, permanecendo completamente indetectáveis ​​para soluções de detecção de segurança.

Como o LogoFAIL tem como alvo código específico da UEFI, esta nova ameaça não está limitada a uma arquitetura, mas é outro exemplo de exploração entre silício que afeta dispositivos x86 e ARM.”

Os pesquisadores descobriram as vulnerabilidades executando analisadores de imagens UEFI por meio de uma ferramenta conhecida como fuzzer. Os fuzzers são projetados para identificar erros de programação executando repetidamente pequenos trechos de código com pequenas alterações nos dados de entrada. Cada vez que ocorre uma falha, o fuzzer anota o endereço de memória onde ocorreu e os dados de entrada que a causaram. Análises adicionais usando outras ferramentas e processos permitiram aos pesquisadores isolar erros que poderiam permitir a execução arbitrária de códigos ou outros tipos de vulnerabilidades.

«Quando a campanha terminou, ficamos impressionados com o número de falhas encontradas, tanto que classificá-las manualmente foi bastante difícil”, escreveram os pesquisadores. No total, identificaram 24 causas profundas únicas, 13 das quais acreditavam que poderiam ser exploradas.

As descobertas levantam uma questão difícil: se os fuzzers identificaram tantas vulnerabilidades exploráveis, por que os desenvolvedores de UEFI (muitas vezes chamados de IBVs, ou fornecedores independentes de BIOS) e os OEMs que vendem dispositivos não aproveitaram essas ferramentas e corrigiram os bugs subjacentes? Os pesquisadores binários continuaram:

«Этот процесс сортировки дал нам хорошее понимание первопричин, лежащих в основе этих ошибок. Хотя они охватывают широкий спектр проблем безопасности программного обеспечения, основной темой является отсутствие проверки данных, предоставляемых злоумышленниками. Например, на первом скриншоте показана ошибка в BMP-парсере AMI: указатель «Image» инициализируется путем добавления к начальному адресу изображения (&Header->CharB) campo de cabeçalho “ImageOffset”.

Fonte da imagem: Binário

Como esse deslocamento pode ser definido arbitrariamente por um invasor, a variável “Imagem” pode apontar para praticamente qualquer local na memória. A segunda captura de tela foi tirada do analisador PNG na AMI e contém não um erro, mas dois. O primeiro erro é a falta de verificação do valor de retorno da função “EfiLibAllocateZeroPool”, que retorna NULL caso falhe. O segundo erro é um estouro de número inteiro no número inteiro de 32 bits que representa o tamanho da alocação. Quando um invasor define a variável “PngWidth” com um valor grande, multiplicar por dois faz com que o resultado exceda e se torne um valor pequeno (por exemplo: 0x80000200 * 2 = 0x400).

Fonte da imagem: Binário

Assim, um invasor pode forçar a alocação de um buffer que seja pequeno demais para conter os dados PNG decodificados e, assim, estourar o buffer quando ele estiver em uso. Os resultados da nossa campanha de difusão indicam claramente que nenhum destes analisadores de imagens foi testado pela IBV ou OEMs. Podemos dizer isso com confiança porque o fuzzer foi capaz de encontrar várias falhas após apenas alguns segundos de execução, e encontramos falhas em quase todos os analisadores que testamos.”

Como as vulnerabilidades do analisador de imagem usadas pelo LogoFAIL estão em UEFI, Macs, smartphones e outros dispositivos que usam mecanismos de inicialização alternativos não são afetados. Curiosamente, mesmo quando a Apple usou UEFI para inicializar Macs baseados em Intel da geração anterior, eles ainda não eram vulneráveis ​​ao LogoFAIL. Motivo: a Apple codificou os arquivos de imagem em UEFI, o que impossibilitou a substituição de uma imagem legítima por uma maliciosa. Como desenvolvedora de hardware e software para computadores Mac, a Apple teve esta oportunidade. A diversidade de ecossistemas que giram em torno das plataformas Windows e Linux exige maior flexibilidade.

Muitos dispositivos vendidos pela Dell não podem ser explorados diretamente porque os arquivos de imagem são protegidos pelo Intel Boot Guard, tornando-os impossíveis de serem substituídos, mesmo que sejam atacados fisicamente. Como medida adicional, muitos dispositivos Dell não permitem personalizar seu logotipo. Embora essas medidas fechem efetivamente a superfície de ataque do LogoFAIL, a Binarly recomenda corrigir vulnerabilidades de análise de imagens de alto risco “pois elas representam um risco que pode inadvertidamente se tornar um problema de segurança”.

LogoFAIL é baseado em um grande conjunto de pesquisas conduzidas ao longo de mais de dez anos. O sequestro de sequência de inicialização através da exploração de erros de análise de imagem UEFI foi demonstrado pela primeira vez em uma apresentação do Black Hat em 2009 pelos pesquisadores Rafal Wojtczuk e Alexander Tereshkin. Desde então, novas descobertas têm surgido continuamente, tanto em pesquisas subsequentes como, em alguns casos, em ataques descobertos no mundo real.

O primeiro caso conhecido de ataque real usando recursos UEFI ocorreu em 2018 com a descoberta de malware denominado LoJax. LoJax, que é uma versão reformulada de um software antifurto legítimo conhecido como LoJack, foi criado por um grupo de hackers conhecido por nomes como Sednit, Fancy Bear e APT 28. O malware foi instalado remotamente usando ferramentas capazes de ler e reescrever partes de unidades flash.Memória de firmware UEFI.

Em 2020, os pesquisadores descobriram o segundo caso conhecido de um ataque real de malware na UEFI. Cada vez que o dispositivo infectado era reiniciado, o UEFI verificava se havia um arquivo malicioso na pasta de inicialização do Windows e, caso não estivesse lá, o instalava. Pesquisadores da Kaspersky, que descobriram o malware e o chamaram de “MosaicRegressor”, ainda não sabem como ocorreu a infecção por UEFI. Uma possibilidade é que os PCs tenham recebido uma atualização UEFI falsa. Outra opção é obter acesso físico curto ao dispositivo e usar uma unidade USB especialmente projetada para infectar o UEFI.

Desde então, vários novos bootkits UEFI tornaram-se conhecidos. Eles são rastreados sob nomes como ESpecter, FinSpy e MoonBounce. Em resposta a estas ameaças, os fabricantes de dispositivos começaram a implementar medidas para proteger o processo de inicialização UEFI.

Um recurso de segurança importante é o Secure Boot, um padrão do setor que usa assinaturas criptográficas para garantir que cada software usado durante a inicialização seja confiável pelo fabricante do computador. A inicialização segura foi projetada para criar uma cadeia de confiança que impedirá que invasores substituam firmware malicioso destinado a ser carregado. Se pelo menos um link na cadeia de inicialização não for reconhecido, o Secure Boot não permitirá a inicialização do dispositivo.

No início deste ano, pesquisadores da ESET descobriram o primeiro caso conhecido de malware UEFI que contorna o Secure Boot. Apelidado de Black Lotus, a capacidade do bootkit UEFI de contornar a segurança de 12 anos era impressionante, mas tinha uma limitação importante: ele poderia ser destruído simplesmente reinstalando o sistema operacional subjacente. LogoFAIL não tem essa limitação. Enquanto a imagem maliciosa for executada em UEFI, a máquina na qual o firmware está instalado permanecerá infectada. A imagem a seguir neste artigo mostra as diferenças entre LogoFAIL e Black Lotus.

Não há indicação de que as vulnerabilidades do LogoFAIL tenham sido ativamente exploradas na vida real por invasores, e é improvável que isso seja conhecido, uma vez que a infecção é muito difícil de detectar usando ferramentas e métodos tradicionais. Entretanto, uma indicação de comprometimento pode ser obtida examinando o arquivo de imagem que é analisado durante o download. Se o hash criptográfico deste arquivo for diferente do hash do arquivo que os fabricantes de dispositivos normalmente fornecem gratuitamente, o dispositivo poderá ser analisado posteriormente em busca de sinais de exploração.

As vulnerabilidades LogoFAIL são rastreadas como CVE-2023-5058, CVE-2023-39538, CVE-2023-39539 e CVE-2023-40238. Esta lista está atualmente incompleta. As consultas estão disponíveis em aproximadamente uma dúzia de partes. Uma lista parcial de empresas que emitiram recomendações inclui AMI, Insyde, Phoenix e Lenovo. A lista completa não estava disponível no momento da publicação. Aqueles que desejam saber se um dispositivo específico é vulnerável devem entrar em contato com o fabricante.

A melhor maneira de prevenir ataques LogoFAIL é instalar atualizações de segurança UEFI, que serão lançadas como parte de um processo coordenado de divulgação de informações no ambiente. Esses patches serão distribuídos pelo fabricante do dispositivo ou pela placa-mãe instalada no dispositivo. Também é recomendado que o UEFI seja configurado para usar múltiplas camadas de segurança, se possível. Além do Secure Boot, inclui o Intel Boot Guard e, se disponível, o Intel BIOS Guard. Proteções adicionais semelhantes estão disponíveis para dispositivos com processadores AMD ou ARM.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *