Recentemente, a Microsoft finalmente corrigiu a vulnerabilidade de desvio de inicialização segura (Secure Boot) que estava escondida no sistema desde 2013. Pesquisadores de segurança apontaram que o principal problema exposto por este incidente não era a vulnerabilidade em si, mas os componentes antigos com assinaturas digitais, mas a falta de gerenciamento de rastreamento eficaz.

Esta vulnerabilidade de segurança de longa data resulta de um simples descuido administrativo: componentes obsoletos nunca foram oficialmente revogados. Pesquisadores do conhecido fornecedor de segurança ESET descobriram que um conjunto de bootloaders UEFI “shim” vulneráveis, alguns datados de 2013, ainda são considerados componentes confiáveis ​​pelos sistemas Microsoft anos após as vulnerabilidades terem sido expostas. Isso significa que os invasores podem contornar facilmente o mecanismo de inicialização seguro em dispositivos Windows e Linux. É relatado que o problema envolve um total de 11 arquivos binários shim, que ainda possuem assinaturas válidas e são aceitos por sistemas que executam inicialização segura. Como a assinatura é a credencial chave que permite a execução do código durante o processo de inicialização, quando o componente confiável for comprometido, todas as etapas de inicialização subsequentes serão afetadas.

O pesquisador da ESET Martin Smolár enfatizou: "O perigo dessas versões mais antigas de shims não é que elas empreguem novas vulnerabilidades, mas que nenhuma nova vulnerabilidade seja necessária para contornar a inicialização segura UEFI. Os invasores não precisam de explorações sofisticadas, desde que tenham uma cópia antiga, mas ainda confiável e não revogada, do binário shim, e tenham conhecimento básico sobre como o shim UEFI funciona, é o suficiente para contornar esta linha de segurança vital." Em cenários reais de ataque, os hackers podem usar esses shims para carregar firmware malicioso antes da inicialização do sistema operacional. Esse tipo de malware é extremamente oculto e teimoso e é difícil removê-lo completamente, mesmo se você reinstalar o sistema operacional ou até mesmo substituir dispositivos de hardware, como discos rígidos.

O mecanismo de inicialização segura foi introduzido pela primeira vez em 2012 e sua intenção original era prevenir esses ataques de baixo nível. Este mecanismo exige que cada pedaço de código na cadeia de lançamento seja assinado digitalmente por uma autoridade confiável. A Microsoft serve como raiz de confiança no sistema e é responsável por assinar seu próprio gerenciador de inicialização e shims usados ​​por outros softwares como o Linux. Na verdade, shim é um compromisso que permite que softwares que não sejam da Microsoft sejam executados normalmente em um ambiente de inicialização seguro. Depois que a Microsoft fornecer uma assinatura para uma correção, a correção poderá usar seu certificado incorporado para aprovar componentes subsequentes.

No entanto, a premissa para que este mecanismo funcione de forma eficaz é que, uma vez descoberto que um shim apresenta uma vulnerabilidade, ele deve ser revogado imediatamente. Mas neste incidente, este mecanismo de bloqueio falhou completamente. Os shims afetados vêm de uma ampla variedade de fontes, abrangendo distribuidores Linux como Red Hat, openSUSE e Oracle, bem como algumas ferramentas de terceiros. Alguns desses componentes existiam antes do advento de novos mecanismos de proteção, como listas de negação SBAT e MOK; outros continham falhas de código ou permitiam o carregamento de componentes com vulnerabilidades conhecidas. A ESET apontou especificamente um shim Oracle que permite a execução de binários com a vulnerabilidade CVE-2015-5381, e o limite técnico para explorar a vulnerabilidade é bastante baixo.

Outra parte do problema é a crescente complexidade dos mecanismos de inicialização segura. O sistema atualmente depende de múltiplas camadas para determinar qual código pode ser executado, incluindo um banco de dados de assinaturas confiáveis, listas de revogação e novos mecanismos baseados em versão, como o SBAT. Cada link requer atualizações e manutenção precisas. Como explica Smolár, o dbx é responsável por revogar binários específicos, enquanto o SBAT e o Secure Boot SVN da Microsoft são responsáveis ​​por revogar versões específicas. Cada componente de inicialização contém metadados com um número de versão, e o sistema deve interceptar qualquer componente que fique abaixo de um limite definido. Mas isso depende inteiramente da atualização oportuna dos dados de limite. É importante notar que mesmo que o certificado da Microsoft usado para assinar esses shims expire, ele não impede automaticamente sua execução, o que expõe totalmente a dependência de todo o sistema na revogação ativa, em vez de mecanismos integrados de falha de expiração.

Atualmente, os sistemas Windows que instalaram as atualizações mais recentes não estão mais ameaçados por esta vulnerabilidade; para usuários de Linux, os especialistas recomendam verificar com o oficial de distribuição correspondente ou usar ferramentas como fwupd para confirmar se o sistema foi protegido.

No entanto, o que suscita preocupações mais profundas na indústria é o estado frágil deste sistema de confiança. Gerenciar relações de confiança entre vários componentes, fornecedores e atualizações frequentes provou ser uma tarefa extremamente difícil. HD Moore, CEO e fundador da runZero, disse sem rodeios em uma entrevista: “Esta é uma crítica severa a todo o modelo de inicialização segura”. Ele ressaltou que há muitos componentes assinados que carecem de rastreamento eficaz e ainda podem ser usados ​​para fins não intencionais e perigosos. Moore concluiu: "O resultado final é que há um grande número de componentes assinados (conhecidos por ninguém, exceto a Microsoft) que podem ignorar a inicialização segura - alguns dos quais são usados ​​para inicializar outros programas e também carregam falhas gerais de segurança e outros bugs, o que significa que eles podem ser usados ​​para inicializar quase tudo. Todo o ecossistema está quebrado até certo ponto e precisa de uma reinicialização completa."