CVE-2020-0601
Prioriza la corrección. Ella está bajo explotación confirmada por CISA y tiene prueba de concepto pública.
Apply updates per vendor instructions.
Resumen
Falha na validação de certificados ECC (Elliptic Curve Cryptography) pelo CryptoAPI do Windows (Crypt32.dll), que permite forjar um certificado que o sistema aceita como assinado por uma Autoridade Certificadora raiz confiável. Na prática, um atacante pode assinar executáveis maliciosos fazendo-os parecer legitimamente assinados, ou interceptar conexões HTTPS validadas via CryptoAPI. Foi reportada pela NSA à Microsoft — primeira vez que a agência foi publicamente creditada por um report de vulnerabilidade — e ganhou o apelido 'CurveBall'.
Detalle técnico
A causa é CWE-295 (Improper Certificate Validation). O CryptoAPI, ao validar um certificado ECC, verifica se a chave pública do certificado 'bate' com a chave pública de uma CA raiz confiável instalada no sistema. O problema é que essa comparação considera apenas o ponto público final, e o Windows permite que certificados ECC especifiquem parâmetros de curva explícitos (curva customizada, ponto gerador G próprio) em vez de usar apenas curvas nomeadas padrão (P-256, P-384 etc). Um atacante pode escolher parâmetros de curva forjados sob os quais ele conhece a chave privada correspondente a um ponto que, matematicamente, colide com a chave pública pública da CA raiz legítima nessa curva alternativa.
O resultado é que o Windows reconstrói a cadeia de confiança e conclui, erroneamente, que o certificado forjado descende da CA raiz confiável — porque a verificação de igualdade de chave pública não amarra os parâmetros de domínio da curva aos parâmetros esperados daquela CA específica. O atacante controla integralmente os parâmetros da curva do certificado forjado e a chave privada correspondente, o que é suficiente para gerar um certificado intermediário ou de assinatura de código que o sistema trata como válido.
O impacto declarado pela Microsoft é spoofing (integridade — assinatura falsa aceita como legítima), mas a CISA no KEV amplia a descrição: exploração bem-sucedida também permite ataques man-in-the-middle e decriptação de tráfego confidencial em conexões que dependem da validação de certificado do CryptoAPI (por exemplo, aplicações e componentes do sistema que usam Crypt32.dll para TLS, não necessariamente navegadores com sua própria stack criptográfica).
Cómo se explota
O vetor mais divulgado é assinatura de código: o atacante gera um certificado ECC malicioso com os parâmetros de curva forjados, usa-o para assinar um executável ou um driver, e o Windows exibe esse binário como assinado por uma cadeia confiável — sem alertas de assinatura inválida. Não há necessidade de acesso prévio à máquina da vítima para forjar o certificado; a exploração ocorre no momento em que a vítima executa ou abre o arquivo assinado, ou quando estabelece uma conexão validada pelo CryptoAPI vulnerável. A interação do usuário (executar o arquivo, aceitar a conexão) é o principal pré-requisito, refletido no UI:R do vetor CVSS.
O segundo vetor, TLS/HTTPS MITM, exige que o atacante esteja posicionado na rede entre a vítima e o servidor legítimo (ataque de rede clássico) e que a aplicação afetada dependa do CryptoAPI para validar o certificado do servidor — isso não se aplica automaticamente a navegadores que usam suas próprias bibliotecas de validação (Chrome e Firefox, por exemplo, não usam Crypt32.dll da mesma forma para a cadeia de confiança).
Uma PoC pública ('CurveBall') foi publicada rapidamente após a divulgação do patch, comprovando a viabilidade prática de gerar certificados colidentes em poucos segundos com hardware comum. A vulnerabilidade está no catálogo KEV da CISA como exploração confirmada in-the-wild, e a facilidade de reprodução da PoC — combinada ao fato de a falha atingir a confiança em assinaturas de código, pilar de defesas antimalware — tornou o CVE um dos mais críticos do Patch Tuesday de janeiro de 2020.
Versiones
Cómo protegerse
A correção definitiva é aplicar a atualização de segurança da Microsoft lançada no Patch Tuesday de janeiro de 2020, que corrige a validação de parâmetros de curva ECC no CryptoAPI para os produtos listados (Windows 10 1903/1909 em todas as arquiteturas e Windows Server nas versões afetadas). Não há uma flag de configuração ou desativação de componente que mitigue a falha sem o patch — a validação defeituosa está no núcleo do CryptoAPI usado por todo o sistema para assinatura de código e TLS, então remover ou desabilitar Crypt32.dll não é viável.
A CISA, via Diretiva Emergencial ED 20-02, exigiu que agências federais dos EUA aplicassem o patch dentro de prazo curto (10 dias) dada a gravidade — sinal de que não existe controle compensatório equivalente à correção do fornecedor. Onde o patch imediato não for possível, o controle prático é reduzir a superfície: restringir execução de binários não assinados por fontes já conhecidas via políticas de allowlisting (AppLocker/WDAC) independentes da validação de assinatura do CryptoAPI, e monitorar tráfego de rede quanto a certificados anômalos — mas isso reduz risco, não elimina a vulnerabilidade subjacente.
O KEV da CISA registra a data de inclusion em 2021-11-03 com prazo (due date) de 2022-05-03 para remediação, o que reflete o ciclo de gestão de vulnerabilidades federal, não uma nova janela de exploração — a exploração ativa e a PoC já circulavam desde janeiro de 2020, logo após a divulgação original.
Cómo detectar
O principal sinal é a presença de certificados ECC com parâmetros de curva explícitos (custom domain parameters) em vez de referência a curvas nomeadas padrão, especialmente em certificados de assinatura de código ou em cadeias TLS — CAs legítimas praticamente não emitem certificados com parâmetros de curva explícitos para uso comum, então sua presença é fortemente anômala. A NSA e outros publicaram, na época, scripts/ferramentas de triagem para varrer binários e certificados quanto a esse padrão.
Não há um IOC de rede único e confiável (como uma string ou payload fixo), já que a exploração consiste em criptografia matemática legítima com parâmetros forjados — logs de antivírus/EDR que sinalizem 'assinatura válida mas emissor suspeito' ou falhas de correlação entre a CA raiz esperada e os parâmetros de curva do certificado folha são o melhor indício disponível, mas exigem inspeção específica da cadeia de certificados, não detecção automática padrão dos sistemas de log convencionais.