electrical-engineering-principles
Como executar testes de penetração de Pki para identificar fraquezas
Table of Contents
Compreender a importância crítica da segurança PKI
Infraestrutura de Chave Pública (PKI) é a espinha dorsal invisível da confiança em quase todas as interações digitais, desde a criptografia do tráfego web e a assinatura de versões de software até aos usuários e dispositivos autenticados através de cartões inteligentes ou certificados de segurança de camada de transporte (TLS). A segurança de uma empresa inteira depende da integridade de suas Autoridades de Certificados (CAs). Se uma única raiz CA estiver comprometida, o modelo de confiança colapsa. Os atacantes podem forjar fichas de autenticação, descriptografar comunicações sensíveis ou assinar código malicioso com a autoridade total da organização. Dado estes riscos elevados, a verificação genérica da vulnerabilidade é insuficiente. O teste abrangente de penetração de PKI é uma necessidade absoluta para qualquer organização consciente de segurança. Este artigo fornece um guia profundo e processual para realizar avaliações de segurança de PKI completas, concebidas para descobrir falhas de configuração, fraquezas criptográficas e caminhos lógicos de ataque que os adversários exploram activamente.
Definição de PKI Penetração Teste: Além de Auditorias Básicas
O teste de penetração do PKI é uma disciplina ofensiva especializada focada na avaliação da postura de segurança de todo o ciclo de vida do certificado. Isto inclui as Autoridades de Certificado, Autoridades de Registro, hardware criptográfico (HSMs), modelos de certificados, mecanismos de revogação e os aplicativos que dependem da autenticação baseada em certificados. Ao contrário de uma revisão padrão de conformidade, um teste de penetração tenta ativamente contornar os controles de segurança, aumentar privilégios e demonstrar impacto no mundo real. Em ambientes modernos, particularmente aqueles que alavancam os Serviços de Certificados do Microsoft Active Directory (AD CS), este teste tornou-se um componente central de qualquer avaliação abrangente de segurança do Active Directory.
Diferenciando-se de Varredura Vulnerabilidade
Um scanner de vulnerabilidade automatizado pode identificar os patches em falta em um servidor CA ou verificar se existem suítes de cifras fracas. No entanto, um testador de penetração qualificado vai muito mais longe. Eles examinam a configuração lógica dos modelos de certificados, testam as permissões de inscrição inseguras, analisam a aleatoriedade criptográfica e tentam encadear múltiplas configurações menores em uma tomada de domínio completa. Esta análise manual, orientada pela lógica, é o valor principal do teste de penetração dedicado do PKI.
Pré-Engajamento: Escopo e Regras de Engajamento
Antes de qualquer teste técnico começar, um escopo claro deve ser estabelecido. Componentes PKI são muitas vezes os sistemas mais sensíveis em uma organização. Testes devem equilibrar a integridade com estabilidade operacional.
- Identifique as CAs-alvo: Determine se você está testando uma CA interna, uma CA voltada para o público ou uma PKI gerenciada pela nuvem (por exemplo, AWS Private CA, Azure Key Vault Integrated CA). Cada uma tem uma superfície de ataque diferente.
- Definir limites de testes: A equipe de avaliação pode interagir diretamente com a CA raiz, ou está limitada a CAs subordinadas e servidores emissores? Os HSMs estão em alcance para ataques físicos ou apenas verificações lógicas de configuração?
- Ativo vs. Teste Passivo: Estabelecer regras para tentativas de inscrição de certificados. Inscrição ativa contra uma produção A CA pode preencher o banco de dados de certificados ou ativar alertas de segurança. Alguns testes (como ataques de relé ESC8) requerem acesso a nível de rede e configurações específicas de protocolo.
- Manuseamento de dados: As chaves privadas e certificados CA gerados durante o teste devem ser manipulados com extremo cuidado. Defina procedimentos de armazenamento seguro e destruição imediata após a conclusão do teste.
A metodologia de teste de penetração de PKI
Uma abordagem metódica garante que nenhum componente seja ignorado.As fases seguintes representam um fluxo de trabalho padrão de avaliação de segurança PKI.
1. Recolha e Reconhecimento de Informações
O primeiro passo é mapear o cenário PKI. Isso envolve identificar todas as ACs, modelos de certificados e partes dependentes dentro do ambiente.
- AD CS Discovery: Num ambiente de Active Directory, ferramentas como Certipy[ ou Certificar podem enumerar todos os objetos PKI através de consultas LDAP. Isto revela os servidores CA, modelos de certificados, direitos de inscrição e listas de controle de acesso (ACLs).
- Os logs de transparência de certificação (CT): Para CAs de face pública, procurar registros de CT (via ferramentas como )] pode revelar todos os certificados emitidos. Isto ajuda a identificar certificados expirados ou mal emitidos que ainda podem ser confiáveis.
- Sobes de rede: A busca de portas abertas em servidores CA (tipicamente TCP 443 para inscrição web ou TCP 445 para RPC/DCOM) revela superfícies de ataque potenciais para ataques de relé (ESC8).
2. Revisão da configuração da autoridade do certificado
Uma vez descoberta, a configuração do CA em si é examinada.
- Controles de Acesso: Quem tem direitos administrativos ou de inscrição na CA? Entradas excessivamente permissivas (por exemplo, "Domain Users" permitidos para se inscrever em modelos sensíveis) são uma descoberta clássica.
- Políticas de Emissão: Verifique se templates com aprovação do gestor desabilitados e assinaturas autorizadas não são necessárias. Estes modelos de "baixa segurança" são frequentemente o vetor de entrada para a escalada de privilégios.
- Provider Criptográfico: Certifique-se de que a CA está usando um provedor de serviço criptográfico forte e aprovado (CSP) ou provedor de armazenamento de chaves (KSP). Provedores legados como o Microsoft Strong Fornecedor Criptográfico têm fraquezas conhecidas em comparação com as chaves suportadas por hardware modernas.
3. A matriz de ataque do AD CS (Vulnerabilidades do ESC)
A parte mais crítica do teste PKI interno moderno gira em torno das vulnerabilidades "ESC" (Escalation of Privilege) documentadas extensivamente pela equipe de pesquisa SpecterOps em seu whitepaper Pré-Owned Certified (Leia a pesquisa original do SpecterOps Certified Pre-Owned)[][. Estas são configurações erradas que permitem que os atacantes forjem certificados para contas altamente privilegiadas.
- ESC1: A configuração mais comum e perigosa. Isto ocorre quando um modelo de certificado tem Direitos de inscrição[ concedidos a usuários com baixo privilégio, Aprovação do administrador[ está desativado, Assinaturas Autorizadas[ não é necessária, e o modelo permite a especificação de um Nome Alternativo do administrador (SAN)]] no pedido. Um atacante pode solicitar um certificado para "Administrador" ou "Controlador de domínio" e autenticar- se como essa conta.
- ESC2:] Semelhante ao ESC1, mas o modelo usa "Qualquer Finalidade" (modelo CA subordinado). Isto pode ser usado para assinar solicitações de certificado para qualquer usuário, criando efetivamente uma CA desonesto.
- ESC3: Envolve modelos de agentes de inscrição mal configurados. Se um usuário tiver direitos de agente de inscrição e a política da CA permitir a inscrição em mata cruzada ou em domínio cruzado, um atacante pode solicitar certificados em nome de qualquer usuário.
- ESC4: Fraca ACL no próprio objeto do modelo de certificado. Um atacante com acesso de escrita ao modelo pode modificar seus descritores de segurança para introduzir condições ESC1 ou ESC2, mesmo que o modelo base esteja seguro.
- ESC8: Um ataque de relé que não requer um modelo mal configurado. Ele depende do endpoint de inscrição Web (NDES ou CA Web Proxy) para retransmitir a autenticação NTLM. Um atacante coagir um controlador de domínio ou outro servidor de alto valor para autenticar o relé, que então encaminha o hash NTLM para a CA para inscrever um certificado para essa máquina. Isto pode levar ao Controlador de Domínio ou ao comprometimento do servidor.
4. Avaliação da Força Criptográfica
A análise dos algoritmos específicos e das práticas de gestão essenciais é crucial para a segurança a longo prazo.
- Comprimento chave: Verifique se as teclas CA são pelo menos RSA de 2048 bits (4096 bits recomendados para CAs raiz). Identifique qualquer algoritmo de hashing de SHA-1 ou MD5, que estejam criptograficamente quebrados e vulneráveis a ataques de colisão.
- Hardware Security Modules:] Avaliar se as chaves CA são armazenadas em um HSM. Armazenar chaves puramente em software (no disco) torna-as vulneráveis à exfiltração se o servidor estiver comprometido. HSMs fornecem armazenamento de chaves e descarregamento criptográfico de criptografia resistentes a adulteração.
- Geração de Números de Random: Geradores de números aleatórios fracos (RNGs) podem levar a chaves previsíveis. Isto foi infamemente explorado no incidente do Debian OpenSSL. Os testadores podem analisar uma amostra de certificados emitidos para entropia pobre (embora isso muitas vezes exija análise estatística de grandes amostras).
5. Man-in-the-Middle (MITM) e Validação Bypass
O PKI só é eficaz se as partes que dependem validarem os certificados corretamente. A lógica de validação de testes é uma tarefa chave.
- Certificate Pinning: São implementadas aplicações para aceitar qualquer certificado assinado por uma CA confiável, ou eles afixam chaves específicas? A fixação fraca permite que um atacante substitua seu próprio certificado.
- Verificação de revogação: São as listas de revogação de certificados (CRLs) e as verificações de status de certificado on-line (OCSP) aplicadas? Aplicações mal configuradas muitas vezes ignoram as verificações de revogação inteiramente, permitindo que os atacantes usem certificados roubados, mas revogados.
- Protocolo Downgrade:] Um cliente pode ser enganado para aceitar um certificado de menor resistência ou um protocolo legado?Tentar ataques de strip em conexões TLS/SSL pode revelar vulnerabilidades em aplicativos corporativos.
Ferramentas essenciais para avaliações de segurança PKI
Building a dedicated toolkit for PKI testing enables efficient and thorough assessments.
- Certipy: Uma ferramenta Python moderna projetada explicitamente para exploração e auditoria do AD CS. Automatiza a descoberta de vulnerabilidades ESC1-ESC8 e pode solicitar certificados, especificar SANs em solicitações e até mesmo executar a parte de relé NTLM do ESC8.
- OpenSSL: A faca de criptografia do Exército Suíço. Usado para inspecionar detalhes do certificado (), gerar certificados de teste, verificar cadeias e testar conexões TLS ()]. O site oficial do projeto OpenSSL oferece documentação extensa para esses comandos (Documentação OpenSSL)[.
- Burp Suite: Essencial para testar a lógica de validação do TLS em aplicações web. Um testador pode proxy de tráfego através do Burp e introduzir um certificado CA autoassinado ou não confiável para ver se o aplicativo rejeita corretamente ou se valida a cadeia de certificados corretamente.
- testssl.sh: Uma ferramenta inestimável para avaliar a configuração TLS/SSL de qualquer serviço. Verifica por suítes de cifra fracas, validade de certificado, suporte de protocolo (TLS 1.2 vs 1.3) e falhas comuns de implementação.
- PowerShell (PSPKIAudit/ADCS Audit): Os módulos nativos PowerShell são excelentes para auditoria rápida de grandes domínios. O módulo (fornecido pela Microsoft ou pela PowerShell Gallery) pode enumerar todos os modelos e sua configuração.
Analisando Achados e Priorizando Riscos
A comunicação de informações é a fase mais crítica do envolvimento. As conclusões técnicas devem ser traduzidas em risco empresarial.
- Risco crítico: Vulnerabilidade ESC1 permitindo privilégios imediatos de administração de domínio. Um atacante com acesso padrão ao usuário pode se tornar um controlador de domínio em minutos. Isto requer remediação imediata.
- Alto Risco: Armazenamento de chaves criptográficas fracas (chaves somente para software) ou caminhos de relé ESC8 que requerem coordenação adicional (autenticação de coerção) mas ainda levam a comprometimento do servidor.
- Risco Médio: Faltam verificações de revogação em aplicativos de clientes ou o uso de assinaturas baseadas em SHA-1 em CAs internas. Embora explorável em condições específicas, o impacto imediato é menor.
- Informações: CT logs expondo nomes internos de máquinas, ou detalhes de configuração de transparência de certificados.
Cada achado deve incluir uma descrição clara, as etapas técnicas necessárias para reproduzi-lo, o impacto potencial do negócio, e uma recomendação de remediação priorizada.
Melhores práticas de remediação e endurecimento
Identificar fraquezas é apenas metade da jornada. A implementação de controles eficazes é essencial para a resiliência de longo prazo do PKI.
Endurecimento da autoridade do certificado
- Isolar o CA: A CA raiz deve permanecer offline e com o ar ligado para máxima segurança. As CAs subordenadas devem ser colocadas em um segmento de rede seguro com regras de firewall rigorosas e acesso administrativo mínimo.
- Use HSMs:] Implantar módulos de segurança de hardware para todos os CAs de nível 3+. Isto protege chaves privadas da exfiltração, mesmo que o servidor esteja comprometido.
- Patch Regularmente: As CAs são alvos de alto valor. Certifique-se de que o servidor de servidor de OS e o aplicativo CA são corrigidos para vulnerabilidades conhecidas o mais rápido possível.
A Garantir Modelos de Certificados
- Desativar o pedido SAN para Modelos Sensíveis: Os modelos para contas de alto privilégio (Admins Domin, Administrators) devem exigir explicitamente assinaturas autorizadas e aprovação do gerente. A bandeira SAN no esquema deve ser definida como "Esta é uma extensão crítica" para evitar modificações.
- Enforce o esquema Versão 2: Os modelos da versão 2 fornecem configurações de segurança granulares, incluindo a capacidade de restringir a construção de nomes de assunto e exigir assinatura oficial.
- Restrinja as Permissões de Inscrição: Só permite que grupos de segurança específicos (por exemplo, "Helpdesk" para certificados de usuário, "Domain Admins" para certificados de administração) se inscrevam em modelos sensíveis.
Endurecimento da rede e do protocolo
- Desativar os Caminhos de Retransmissão NTLM: Habilite a assinatura LDAP e a vinculação de canais LDAP nos controladores de domínio para evitar ataques de retransmissão ESC8. Desativar a autenticação NTLM nos servidores CA, a menos que seja absolutamente necessário para clientes legados.
- Monitor CRL Distribution Points (CDPs) e OCSP Responders: Certifique-se de que estes estão altamente disponíveis e devidamente configurados. Uma falha na verificação da revogação pode forçar os aplicativos a aceitar certificados inválidos.
Conclusão: Vigilância PKI Contínua
O teste de penetração do PKI não é uma opção única para verificar a conformidade. É uma prática de segurança contínua que deve evoluir ao lado de ameaças e mudanças no seu ambiente. Como as organizações migram para a nuvem e adotam arquiteturas de confiança zero, o papel do PKI expande, assim como a superfície de ataque. Avaliações regularmente programadas – pelo menos anualmente ou após qualquer mudança de infraestrutura importante, combinada com monitoramento automatizado para deriva de configuração – são a melhor defesa contra ataques baseados no PKI. Ao adotar uma metodologia rigorosa de teste focada em adversário e priorizando o endurecimento dos serviços de certificação, as organizações podem garantir que sua infraestrutura de confiança digital permaneça impenetrável. As orientações fundamentais fornecidas por organismos de normas, como o NIST, como o gerenciamento de chaves, podem servir como um roteiro de longo prazo para operações seguras (NIST SP 800-57 Recomendação para Gestão Chave)[[.