O Microsoft SmartScreen provou ser uma forma eficaz de aprovar a legitimidade do aplicativo – verificando o certificado. Com tempo, A Microsoft trabalhou muito para torná-lo mais eficiente e sustentável para hackers – mas isso nunca tornou um único mecanismo seguro contra violações de dia zero. Uma nova vulnerabilidade que permite contornar a proteção SmartScreen já está em uso e atinge um grande número de usuários. Como isso funciona e como evitar problemas? Vamos dar uma olhada.
O que é o Microsoft SmartScreen?
Para quem não está familiarizado com os mecanismos internos de segurança do Windows, Microsoft SmartScreen é um utilitário de segurança que notifica o usuário se o aplicativo que ele tenta executar é perigoso. A principal forma de entender a segurança é a certificado digital do aplicativo. Este último deve ter uma assinatura válida de uma empresa ou desenvolvedor. A autoridade certificadora (CA) garante aquele, então apenas os legítimos passarão.
Os usuários podem notar o funcionamento do SmartScreen ao iniciar um aplicativo sem certificado, ou quando aquele está desatualizado. Um pop-up aparece, avisando o usuário que pode ser perigoso executar aquela coisa, e assim o SmartScreen proibiu sua execução imediata. Claro, nem sempre funciona perfeitamente, bloqueando programas legítimos que possuem certificados desatualizados – essa ocorrência infeliz pode acontecer mesmo com desenvolvedores conhecidos. Apesar disso, hackers encontraram uma maneira contornar esse mecanismo e fazer os programas rodarem independentemente do certificado.
Nova forma de exploração do SmartScreen
Atores de ameaças nunca dormem, especialmente quando as empresas cujos produtos costumavam explorar começam a colocar raios nas rodas. Mudanças recentes na política da Microsoft em relação à execução de arquivos que chegam da Internet tornou difícil espalhar malware da maneira usual. Em particular, um enorme volume de malware que os cibercriminosos geralmente entregam através de macros vulneráveis no MS Office cessou com esta mudança. Por essa razão, eles decidiram abordar o hacking da segurança do Windows de um ângulo diferente.
A nova violação não é ter muitos conceitos realmente novos. CVE-2023-24880 descreve uma maneira de executar perfeitamente o arquivo MSI com uma assinatura especificamente smurfada. Não apresenta uma assinatura Authenticode válida, mas o malformado. Sob essa condição, o SmartScreen retornará um erro e permitirá a execução. Mas acontece que, este exato local que os criminosos estavam explorando anteriormente – mas com o uso de outros tipos de arquivo. Em novembro 2022, os agentes de ameaças associados ao ransomware Magniber estavam usando arquivos JavaScript com uma assinatura falsificada praticamente da mesma maneira. Essa vulnerabilidade, por sua vez, recebeu um índice de CVE-2022-44698.
Explicação da exploração do SmartScreen
Sob a capa, o mecanismo para confundir os mecanismos de segurança é semelhante ao seguinte. Há 3 elementos do sistema que são usados para garantir se o programa é legítimo e está pronto para funcionar sem o aviso do SmartScreen. Esses são shdocvw.dll, wintrust.dll – uma biblioteca que ajuda o SmartScreen a tomar uma decisão, e o exato smartscreen.exe.
Durante o check-up normal, SmartScreen pede wintrust.dll e solicita que ele analise a assinatura do programa. Se tudo estiver bem, o programa inicia sem nenhum aviso. Quando não é, um shdocvw.dll exibirá uma janela de aviso. Ao trabalhar com um certificado especificamente falsificado, O SmartScreen solicita rotineiramente wintrust.dll para verificação. Esse pedido, no entanto, retorna um valor que faz com que smartscreen.exe envie uma mensagem de erro para shdocvw.dll. Este último não iniciará em tais condições, fazendo o programa rodar sem restrições.
A forma como eles estão falsificando certificados se esconde na estrutura SignedData nas seções do arquivo. Entre outras coisas, carrega certificados que validam a assinatura e a estrutura SignedInfo. Todas essas informações são necessárias para que wintrust.dll garanta a validade da assinatura. Para ajudá-lo a navegar por essas seções, existe um ponteiro de estrutura CERT_CONTEXT. Os hackers forçam esse ponteiro a obter um valor NULL, fornecendo-lhe uma assinatura que não contém o número de série SignerInfo. A saída E_INVALIDARG resultante vai para shdocvw.dll, fazendo com que ele falhe também. Como já mencionamos, este mecanismo é idêntico ao usado em CVE-2022-44698.
Esta vulnerabilidade é perigosa?
Obviamente, esta violação é a única com que se preocupar. Como os criminosos procuram outra maneira de executar malware no dispositivo sem disparar alarmes, é óbvio que tal coisa será usada. E o mesmo grupo de ladrões cibernéticos – Magniber – já está usando. Eles teriam feito várias vítimas no início da primavera 2023, usando arquivos .msi com um certificado modificado. O grupo costumava implantar ransomware em sistemas de usuário único desde 2018, atacando principalmente usuários da Tailândia e da Coreia do Sul. A assinatura desse ransomware é que uma única amostra adicionará uma assinatura exclusiva aos arquivos criptografados. Dito isto, bandidos geram uma amostra única para cada pequeno grupo de vítimas, tornando os surtos difíceis de rastrear. Outra coisa notável é o uso de vulnerabilidades para implantar malware – como o assunto do artigo.
Ainda, nada impede que outros cibercriminosos usem essa violação. A Microsoft já lançou um patch em seu Marchar 14 Atualização de terça-feira (KB5023706), mas como geralmente acontece, os usuários não estão se apressando em instalá-lo. Patches anteriores que corrigiram vulnerabilidades críticas, como o infame EternalBlue, por exemplo, ainda não estão instalados de forma massiva o suficiente para impedir que esta violação seja explorada com sucesso. E o patch menor que fecha vulnerabilidades não tão conhecidas tem ainda menos probabilidade de ser instalado a tempo.
Como se manter seguro?
Estar protegido contra ameaças cibernéticas modernas deve ser uma grande preocupação para usuários domésticos e corporativos. Algumas medidas, especialmente em corporações, estão prestes a ser implantados globalmente e sob o controle de administradores de sistema/equipes de segurança cibernética. Mas há lugares suficientes onde podemos amarrar pessoalmente a coisa solta.
- Evite lançar os arquivos de uma fonte não confiável. Programas ou arquivos que você obteve em algum lugar da Internet, particularmente de sites com software pirata ou fóruns anônimos, deve ser tratado com cautela. Se você não pode evitar interagir com ele, tente verifique o item baixado com software anti-malware, ou usando serviços como VirusTotal. Mas a melhor maneira de ter menos dor no pescoço é usar apenas fontes oficiais.
- Desconfie de qualquer e-mail que você receber. Uma das fontes mais populares de arquivos maliciosos são os e-mails de spam. Com certeza, pode ser um desafio distinguir aquele, especialmente quando os hackers estão fazendo o possível para disfarçá-lo como legítimo. Ainda, verificando algumas coisas, como o endereço do remetente, e apelando ao bom senso tornará a tarefa muito mais fácil.
- Atualize seu software sempre que possível. Todos os fornecedores de software lançam pequenas atualizações não apenas para irritá-lo com o pop-up “atualize-me”. Mais frequente, essas coisas contêm correções de bugs, e o que é mais importante – patches de vulnerabilidade. Existem vários nomes que produtos deve ser cuidado especialmente bem – Adobe, Microsoft, e Oráculo. No entanto, outras atualizações também não serão ignoradas.
- Use software antimalware de primeira linha. É sempre útil ter algo que resolva certos problemas para você. Em vez de gastar tempo e esforço tentando descobrir se o arquivo é malicioso ou não, você pode pedir a um programa para fazer isso por você. Claro, nem cada um estará apto a lidar com as ameaças que descrevi acima. Você precisa escolher aquele que pode se orgulhar de ter um sistema de verificação multicomponente e a capacidade de fornecer proteção durante a execução.. Eu recomendo que você experimente o GridinSoft Anti-Malware – ele pode detectar qualquer ameaça, graças à rede neural e ao sistema de detecção proativa perfeito.