Uma nova técnica e uma ferramenta de prova de conceito chamada EDR-Freeze demonstram que é possível contornar soluções de segurança a partir do modo usuário, explorando o sistema Windows Error Reporting (WER) da Microsoft.
Esse método elimina a necessidade de um driver vulnerável e coloca agentes de segurança, como ferramentas de endpoint detection and response (EDR), em um estado de hibernação.
Utilizando o framework WER em conjunto com a API MiniDumpWriteDump, o pesquisador de segurança TwoSevenOneThree (Zero Salarium) descobriu uma forma de suspender indefinidamente a atividade de processos de EDR e antivírus.
Até então, os métodos conhecidos para desabilitar EDRs baseavam-se na técnica “Bring Your Own Vulnerable Driver” (BYOVD), na qual atacantes inserem um driver legítimo, porém vulnerável, no kernel para realizar escalonamento de privilégios.
Entre as principais limitações dos ataques BYOVD estão a necessidade de transportar o driver para o sistema alvo, burlar proteções contra execução de código malicioso e remover vestígios no kernel que possam denunciar a operação.
O EDR-Freeze se apresenta como um método muito mais discreto, pois não exige driver de kernel algum, opera inteiramente no modo usuário e aproveita componentes legítimos do Windows disponíveis por padrão.
O WerFaultSecure, componente do Windows Error Reporting, roda com privilégios de Protected Process Light (PPL) e foi projetado para coletar dumps de processos sensíveis do sistema para fins de depuração e diagnóstico.
Já a MiniDumpWriteDump, API da biblioteca DbgHelp, gera uma “minidump”, ou seja, um instantâneo da memória e do estado de um processo.
Durante a criação do dump, essa API suspende todas as threads do processo-alvo, retomando-as apenas após concluir a tarefa.
O EDR-Freeze utiliza o WerFaultSecure para disparar a MiniDumpWriteDump, o que temporariamente suspende todas as threads do processo visado enquanto o dump é realizado.
No entanto, o atacante suspende o próprio processo WerFaultSecure durante esse andamento, fazendo com que o dumper nunca retome o processo-alvo, deixando o processo do antivírus em um estado semelhante a um “coma”.
O pesquisador classifica essa técnica como um ataque de condição de corrida (race condition), que pode ser reproduzido em quatro etapas:
1. Iniciar o WerFaultSecure como um processo PPL.
2. Passar argumentos para que o WerFaultSecure invoque MiniDumpWriteDump no PID alvo.
3. Monitorar o processo até que seja suspenso pela operação de dump.
4. Abrir o processo WerFaultSecure com permissão PROCESS_SUSPEND_RESUME e chamar NtSuspendProcess para congelar o dumper.
Além disso, o pesquisador publicou uma ferramenta que automatiza essas etapas e a testou com sucesso no Windows 11, versão 24H2, congelando o processo do Windows Defender.
Esse ataque explora o funcionamento intencional tanto da MiniDumpWriteDump quanto do WerFaultSecure, configurando-se mais como uma vulnerabilidade de design do que uma falha concreta no Windows.
Para se defender contra o EDR-Freeze, é possível monitorar se o WER está apontando para processos sensíveis, como LSASS ou ferramentas de segurança.
Com esse objetivo, o pesquisador Steven Lim desenvolveu uma ferramenta que mapeia o WerFaultSecure para processos do Microsoft Defender Endpoint.
Por sua vez, a Microsoft poderia reforçar esses componentes do Windows para evitar abusos, por exemplo, bloqueando invocações suspeitas, permitindo chamadas apenas para determinados PIDs ou restringindo os parâmetros aceitos.
Publicidade
Conheça a Solyd One, e tenha acesso a todos os cursos de segurança ofensiva da Solyd, todas as certificações práticas, incluindo a SYCP, 2 CTFs anuais com prêmios de até 30 mil reais, dezenas de laboratórios realísticos, suporte, comunidade e muito mais. Saiba mais...