O que é Zerologon?

Zerologon é:

uma vulnerabilidade na criptografia do processo Netlogon da Microsoft que permite um ataque contra os controladores de domínio do Microsoft Active Directory, possibilitando que um agente malicioso se faça passar por qualquer computador, incluindo o controlador de domínio raiz.

Zerologon

Zerologon é o nome dado a uma vulnerabilidade identificada no CVE-2020-1472. É chamado de Zerologon devido à falha no processo de logon, onde o vetor de inicialização (IV) é definido com todos os zeros o tempo todo, quando um vetor de inicialização (IV) deve ser sempre um número aleatório.

Esta vulnerabilidade perigosa tem nota 10 de 10 (CVSS v3.1) para gravidade pelo Common Vulnerability Scoring System (CVSS). Existem exploits de prova de conceito (POC) ativos e é muito provável que veremos ataques no mundo real em breve.

A Cybersecurity and Infrastructure Security Agency emitiu uma diretiva de emergência ordenando às agências federais civis que corrigissem ou desabilitassem imediatamente todos os servidores Windows afetados, e alertou as organizações não governamentais a fazerem o mesmo.

A Microsoft lançou o primeiro de dois patches em agosto de 2020 e eles precisam ser aplicados a todos os controladores de domínio.

Esta vulnerabilidade explora uma falha criptográfica no protocolo remoto de logon de rede do Active Directory da Microsoft (MS-NRPC), que permite aos usuários fazer logon em servidores que usam NTLM (NT LAN Manager). O maior problema com essa vulnerabilidade é que o MS-NRPC também é usado para transmitir certas alterações de conta, como senhas de contas de serviço de computador. Pensando em sua origem, é possível ver a razão para adicionar esse recurso, mas a falta de validação na origem da solicitação de alteração dessas senhas se tornou um problema de segurança significativo.

Fica pior a partir daqui. A criptografia que foi adicionada ao MS-NRPC não foi escolhida com sabedoria. Em 1883, o criptógrafo holandês Aguste Kerckhoff publicou 2 ensaios, intitulados La Cryptographie Militaire (Criptografia Militar), delineando os 6 princípios-chave para projetar sistemas criptográficos. O mais conhecido deles, o Princípio de Kerckhoff, afirma que devemos manter nossa chave criptográfica em segredo, mas não devemos confiar no sigilo do algoritmo para proteger nossos dados. Outra maneira de dizer isso hoje é que devemos usar algoritmos bem conhecidos, testados e comprovados.

O algoritmo originalmente usado para criptografar o processo de logon no Windows NT era 2DES, que agora sabemos que tem problemas. Hoje o MS-NRPC usa o Advanced Encryption Standard (AES), considerado a referência em criptografia. Além de escolher um algoritmo comprovadamente forte, configurações adicionais devem ser selecionadas para garantir a resistência adequada. O MS-NRPC usa uma configuração obscura conhecida como AES-CFB8 (Advanced Encryption Standard – Cipher Feed Back 8 bit). O AES-CFB8 é obscuro porque não é bem conhecido e não foi bem testado. O uso de AES-CFB8 no MS-NRPC tem um problema com o vetor de inicialização (IV), que deveria ser um número aleatório, mas o MS-NRPC o fixou em um valor de 16 bytes de zeros. Isso é tudo menos aleatório. É previsível. A criptografia é frequentemente quebrada onde há previsibilidade.

Como sabemos sobre esta vulnerabilidade

A vulnerabilidade foi anunciada em setembro de 2020 por Tom Tervoort, um pesquisador holandês que trabalha para a Secura. A vulnerabilidade foi corrigida em agosto, mas foi somente depois que o pesquisador publicou seu relatório em setembro que começamos a ver POCs e outras atividades. Depois que o artigo de Tervoort detalha sua descoberta e o processo que levou a ela. Durante sua pesquisa, ele percebeu uma falta significativa de informações sobre o MS-NRPC. Intrigado, Tervoort buscou mais informações. 

Enquanto Tervoort estava inicialmente procurando por um ataque de person-in-the-middle, ele descobriu outra vulnerabilidade detalhada em CVE-2020-1424. Continuando sua pesquisa, ele identificou o que agora é conhecido como Zerologon. A parte crítica de sua descoberta é que a Microsoft implementou uma variação exclusiva de criptografia que é diferente de todos os outros protocolos RPC. Na época do Windows NT, as contas atribuídas a um computador não eram identificadas como principais de primeira classe, portanto, a Microsoft não podia usar o Kerberos padronizado ou NTLM para autenticar contas de computador ou máquina. Como resultado, os desenvolvedores produziram uma alternativa. É incrivelmente difícil criar códigos e protocolos para criptografia que não sejam quebráveis. Na verdade, pode levar um tempo incrivelmente longo antes que as falhas sejam descobertas, como é o caso aqui.

Como funciona o ataque

Esta vulnerabilidade permite que um agente malicioso assuma o controle de um controlador de domínio (DC), incluindo o DC raiz.  Isso é feito alterando ou removendo a senha de uma conta de serviço no controlador. O agente malicioso pode simplesmente causar uma negação de serviço ou assumir o controle e possuir toda a rede.

Para que os invasores explorem esta vulnerabilidade, eles devem ser capazes de configurar uma sessão TCP com um DC.  Se estiverem fisicamente dentro da rede, podem estar na mesa de um usuário ou em uma porta aberta em um local como uma sala de conferências. Esses exploits se qualificam como ataques internos – os ataques mais caros para uma empresa hoje. Eles podem ser estabelecidos de fora da rede, desde que possam ganhar uma posição em algum lugar para estabelecer a sessão TCP com o controlador.

Usando AES-CFB8 com um IV fixo de 16 bytes de zeros, Tom Tervoort descobriu que há uma probabilidade de uma em cada 256 chaves usadas criar um texto cifrado com um valor de zeros. Este é um número excessivamente pequeno de chaves para o invasor tentar criar um texto cifrado de zeros. Isso levaria apenas 2-3 segundos, no máximo, para que o computador do agente malicioso fizesse isso. 

Então, por que isso importa?

Se a máquina que se comunica com um controlador de domínio pertence a um usuário que está apenas trabalhando como de costume, não há problema real. Este texto criptografado mal construído ocorre, mas o processo de autenticação de rede funcionará. O problema só aparece quando um atacante tenta explorar o sistema.

No ataque comprovado por Tervoort, o agente malicioso primeiro teria que falsificar a credencial, ou senha, de um cliente na rede. Devido à má implementação do IV no MS-NRPC, são necessárias apenas 256 tentativas para acertar. Normalmente, a conta de um usuário seria bloqueada após três tentativas de adivinhar uma senha, mas o mesmo não se aplica a uma conta de computador ou máquina. Quando um computador está se conectando, não há limite definido para tentativas de senha incorreta, o que permite uma explosão contínua de tentativas em um curto espaço de tempo para os atacantes entrarem. Eles têm que encontrar uma das chaves que produza um texto cifrado totalmente zerado.

O que os atacantes podem fazer depois de falsificar a identidade de um computador na rede? Concluída a primeira etapa de falsificação de identidade, o invasor não saberia a chave de criptografia real da sessão. Os invasores só conseguiram falsificar sua identidade ao finalmente acertar uma das 256 chaves que produz um texto cifrado totalmente zerado. A próxima etapa é desativar a “assinatura e lacre”.

A assinatura e selagem RPC é o mecanismo usado para criptografia de transporte dentro do MS-NRPC. Este parece ser um processo lógico, pois devemos criptografar mais dados em trânsito, mas no MS-NRPC esse é um recurso opcional que é desativado simplesmente por não definir um sinalizador no cabeçalho de uma mensagem. Depois que a assinatura e o lacre são desativados, as mensagens são enviadas sem criptografia e os atacantes agora podem realizar qualquer ação que desejarem, incluindo remover uma senha ou defini-la com outro valor. Haverá um patch da Microsoft em fevereiro de 2021 para exigir a assinatura e o lacre.

A terceira etapa é alterar a senha da conta que foi falsificada. O dispositivo mais eficaz a ser falsificado seria um servidor AD, de preferência até mesmo o servidor AD raiz. Para alterar a senha, os invasores usam a mensagem NetServerPasswordSet2 no MS-NRPC. É possível alterar uma senha simplesmente enviando o frame com a nova senha de preferência. A abordagem mais fácil é remover a senha ou defini-la com um valor em branco –  o atacante agora pode fazer login por meio de um processo normal. 

Se o ataque tiver como alvo um computador aleatório na rede, esse computador não conseguirá fazer login. Portanto, a primeira consequência desse ataque é simplesmente um ataque de negação de serviço contra esse computador.

Impacto Global

Existem agora várias explorações PoC públicas disponíveis e, se os servidores AD não forem corrigidos, grandes danos podem ser causados às empresas, já que o ataque pode ser usado para injetar ransomware em uma rede. 

Existem ferramentas para verificar se seus servidores são suscetíveis. Tom Tervoort e a Secura lançaram uma ferramenta no GitHub para verificar se seus controladores de domínio foram corrigidos ou descobrir se eles estão vulneráveis.

O patch para CVE-2020-1472

Em agosto de 2020, a Microsoft lançou um patch para CVE-2020-1472 (Zerologon). Todos os servidores AD (2008 R2 e superior) devem ser corrigidos o mais rápido possível. Mas o tempo médio entre o lançamento do patch e a implantação ainda é muito longo. Pesquisadores afirmam que, em uma organização média, leva-se de 60 a 150 dias (cerca de 5 meses) após o lançamento de um patch para ele ser finalmente instalado. Isso é conhecido como Mean Time to Patch (MTTP). 

Além do mais, infelizmente, o patch recém-lançado não é a solução universal para o problema. A Microsoft está planejando lançar uma segunda fase do patch, que incluirá os recursos de aplicação, no início de fevereiro de 2021. Nesse momento, todos os dispositivos serão obrigados a usar o modo de canal seguro e, se não o fizerem, o acesso será negado. Se houver dispositivos não compatíveis mais antigos, eles terão que ser adicionados manualmente a uma política de grupo que permita explicitamente o acesso a dispositivos não compatíveis.

Virtual Patching

Medidas de segurança tradicionais sempre devem ser aplicadas para observar contas e redes comprometidas, tráfego malicioso e outros indicadores de comprometimento. Os sistemas de prevenção de intrusões e software antimalware para a rede e os dispositivos host (todos os endpoints) para monitorar ransomware, vírus e outras ameaças são essenciais. Os logs precisam ser coletados, centralizados e analisados por um SIEM (Security Information & Event Manager). Depois que os logs são analisados, deve haver pessoas e processos em funcionamento para responder às indicações de comprometimento (IoC). Em seguida, uma equipe de resposta a incidentes com procedimentos e conhecimentos sólidos deve assumir para decidir a extensão do comprometimento e trabalhar para uma resolução.

Mesmo com a disponibilidade de um patch do fornecedor, muitos clientes ainda precisam de tempo para implantá-los e implementar medidas de segurança adicionais para proteger seu ambiente. O conceito de virtual patching, por meio de ferramentas como IPS, oferece aos administradores e profissionais de segurança uma ferramenta adicional em seu arsenal para ajudá-los a ganhar algum tempo crítico para proteger suas redes. Embora o patch do fornecedor ainda seja a atenuação recomendada, as soluções de patch virtual em muitas circunstâncias podem não apenas ajudar a proteger as máquinas sem patch, mas também fornecer informações valiosas sobre as tentativas de exploração pós-patch em uma rede por meio de recursos como inspeção de log.

Os clientes da Trend Micro podem descobrir mais sobre as melhores práticas para lidar com a vulnerabilidade e como podemos ajudar visitando este artigo da base de conhecimento: https://success.trendmicro.com/solution/000270328

Tópicos Zerologon