Table of Contents
Comprendere l'importanza critica della sicurezza PKI
Public Key Infrastructure (PKI) è la spina dorsale invisibile della fiducia in quasi ogni interazione digitale, dalla crittografia del traffico web e la firma di software rilascia per l'autenticazione degli utenti e dei dispositivi tramite smart card o Transport Layer Security (TLS) certificati. La sicurezza di un'intera impresa cerniere di scansione sull'integrità delle sue Autorità di certificazione (CAs).
Definizione di PKI Penetration Testing: Oltre controlli di base
Il test di penetrazione PKI è una disciplina di sicurezza offensiva specializzata incentrata sulla valutazione della postura di sicurezza dell'intero ciclo di vita del certificato. Questo include le Autorità di certificazione, le Autorità di registrazione, l'hardware crittografico (HSM), i modelli di certificato, i meccanismi di revoca e le applicazioni che si basano sull'autenticazione basata su certificati.
Differenziamento da Vulnerability Scanning
Tuttavia, un tester di penetrazione esperto va molto oltre. Si esamina la configurazione logica dei modelli di certificato, prova per i permessi di registrazione insicuri, analizza la casualità crittografica e tenta di incatenare più piccole errazioni in un pieno dominio di acquisizione. Questa analisi manuale, logica-driven è il valore fondamentale del test di penetrazione PKI dedicato.
Pre-Engagement: Scoping e Regole di Impegno
Prima di iniziare un test tecnico, occorre stabilire un campo chiaro: i componenti PKI sono spesso i sistemi più sensibili di un'organizzazione, e la prova deve bilanciare la stabilità operativa.
- Identificare le CA di destinazione:[[]] Determina se stai testando un'impresa interna CA, una CA di fronte pubblico, o un PKI gestito da cloud (ad esempio, AWS Private CA, Azure Key Vault Integrated CA).
- Definire i rimendari di prova:[ Il team di valutazione può interagire direttamente con la CA radice, o sta testando limitato alle CA e ai server di emissione subordinati?
- Active vs. Passive Testing:[[] Stabilire regole per i tentativi di registrazione dei certificati. L'iscrizione attiva contro una CA di produzione può riempire il database dei certificati o attivare avvisi di sicurezza. Alcuni test (come attacchi di relè ESC8) richiedono l'accesso a livello di rete e specifiche configurazioni di protocollo.
- Data Handling:[[] Le chiavi private e i certificati CA generati durante i test devono essere gestiti con estrema cura.
La metodologia di test di penetrazione PKI
Un approccio metodologico garantisce che non si trascurano componenti, le seguenti fasi rappresentano un flusso di lavoro standard di valutazione della sicurezza PKI.
1. Informazioni e Ricognizione
Il primo passo è mappare il paesaggio PKI, che consiste nell'identificazione di tutte le CA, modelli di certificato e di affidamento di parti all'interno dell'ambiente.
- AD CS Discovery:[] In un ambiente Active Directory, strumenti come [Certipy[[]] o ]Certify[]]] possono registrare tutti gli oggetti PKI tramite query LDAP.
- Certificate Transparency (CT) Logs:[] Per le CA di fronte al pubblico, la ricerca di registri CT (tramite strumenti come ]) può rivelare tutti i certificati rilasciati.
- Creazione delle sonde:[] Scansione per le porte aperte sui server CA (tipicamente TCP 443 per l'iscrizione Web o TCP 445 per RPC/DCOM) rivela potenziali superfici di attacco per attacchi relè (ESC8).
2. Certificato Autorità Configurazione Recensione
Una volta scoperta, la configurazione della CA stessa viene scrutinizzata.
- Controlli di accesso:[] Chi ha diritti di amministrazione o di iscrizione sulla CA? Le voci eccessivamente permissive (ad esempio, "Domain Users" hanno permesso di iscriversi a modelli sensibili) sono un classico risultato.
- Politiche di emissione:[] Verificare i modelli con l'approvazione del gestore disabilitati e le firme autorizzate non necessarie.Questi modelli di "bassa sicurezza" sono spesso il vettore di ingresso per l'escalation di privilegi.
- Fornitore crittografico:[] Assicurare che la CA stia utilizzando un fornitore di servizi crittografici forte e approvato (CSP) o Key Storage Provider (KSP).
3. La matrice di attacco CS AD (Vulnerabilità CESC)
La parte più critica dei moderni test PKI interni ruota intorno al "ESC" (Escalation of Privilege) vulnerabilità documentate ampiamente dal team di ricerca SpecterOps nel loro certificato di ricerca pre-proprio [Leggi i certificati originali SpecterOps Certified Pre-Owned Research][
- ESC1: La configurazione più comune e pericolosa si verifica quando un modello di certificato ha Diritti di iscrizione concesso agli utenti a basso-privilegiato, Manager Approval è disabilitato,
- ESC2:[]] Simile a ESC1, ma il modello utilizza "Any Final" (semplo CA di coordinamento). Questo può essere utilizzato per firmare richieste di certificato per qualsiasi utente, creando efficacemente una CA vagante.
- ESC3:[]] Invoca modelli di agente di registrazione mal configurato. Se un utente ha diritti di agente di registrazione e la politica CA consente l'iscrizione cross-forest o cross-domain, un attaccante può richiedere certificati per conto di qualsiasi utente.
- ESC4:[] Debole ACL sull'oggetto del modello di certificato stesso. Un attaccante con accesso scritto al modello può modificare i suoi descrittori di sicurezza per introdurre le condizioni ESC1 o ESC2, anche se il modello di base è sicuro.
- ESC8:[]] Un attacco di relè che non richiede un modello configurato male. Si basa sul endpoint Web Enrollment (NDES o CA Web Proxy) per relè l'autenticazione NTLM. Un attaccante coerce un controller di dominio o altro server ad alto valore per autenticare il loro relè, che poi inoltra l'ha NTLM per immettere un certificato di compromesso CA per l'iscrizione a CA.
4. Valutazione della forza criptografica
L'analisi degli algoritmi specifici e delle pratiche di gestione chiave è fondamentale per la sicurezza a lungo termine.
- Key Lunghezza:[]] Verificare che le chiavi CA siano almeno 2048-bit RSA (4096-bit raccomandato per le CA root).
- Hardware Security Modules:[]] Valuta se i tasti CA sono memorizzati in un HSM. La memorizzazione di chiavi puramente nel software (su disco) li rende vulnerabili all'esfiltrazione se il server è compromesso.
- Random Number Generation:[] I generatori di numeri casuali (RNG) possono portare a chiavi prevedibili. Questo è stato sfruttato in modo famigerato nell'incidente di Debian OpenSSL. I tester possono analizzare un campione di certificati rilasciati per una scarsa entropia (anche se spesso richiede analisi statistiche di campioni di grandi dimensioni).
5. Man-in-the-Middle (MITM) e Convalida
PKI è efficace solo se si affidano a parti correttamente convalidare i certificati.
- Certificate Pinning:[] Sono applicazioni implementate per accettare qualsiasi certificato firmato da una CA di fiducia, o pin chiavi specifiche?
- Controllo della revoca:[[] Sono elenchi di rivocazione certificati (CRL) e controlli del protocollo di stato del certificato online (OCSP) applicati? Le applicazioni non configurate spesso saltano i controlli di revoca del tutto, permettendo agli aggressori di utilizzare i certificati rubati ma revocati.
- Protocol Downgrade:[] Può un cliente essere ingannato nell'accettare un certificato di resistenza inferiore o un protocollo legacy?
Strumenti essenziali per le valutazioni di sicurezza PKI
Building a dedicated toolkit for PKI testing enables efficient and thorough assessments.
- Certipy:[] Uno strumento moderno Python progettato esplicitamente per lo sfruttamento e l'auditing di AD CS. Automa la scoperta di vulnerabilità ESC1-ESC8 e può richiedere certificati, specificare SAN nelle richieste e anche eseguire la porzione di relè NTLM di ESC8.
- AprissL:[]] Il coltello dell'esercito svizzero della crittografia. Utilizzato per controllare i dettagli del certificato (]), generare certificati di prova, verificare le catene e testare le connessioni TLS ([]]. Il sito ufficiale di progetto OpenSSL offre una documentazione estesa per questi comandi Document[[FLT:[[[[][
- Burp Suite:[]] Essenziale per testare la logica di convalida TLS nelle applicazioni web. Un tester può procurare il traffico attraverso Burp e introdurre un certificato CA autofirmato o non attendibile per vedere se l'applicazione correttamente lo rifiuta o se convalida la catena del certificato correttamente.
- testssl.sh:[] Uno strumento prezioso per valutare la configurazione TLS/SSL di qualsiasi servizio. Controlla per le suite di cifratura deboli, la validità del certificato, il supporto del protocollo (TLS 1.2 vs 1.3), e i difetti di implementazione comuni.
- PowerShell (PSPKIAudit/ADCS Audit):[] I moduli Native PowerShell sono eccellenti per la verifica rapida dei grandi domini. Il modulo (fornito da Microsoft o dalla PowerShell Gallery) può enumerare tutti i modelli e la loro configurazione.
Analizzare i risultati e Priorizzare il rischio
Il reporting è la fase più critica dell'impegno, i risultati tecnici devono essere tradotti in rischio di business.
- Rischio critico:[[] vulnerabilità ESC1 che consente privilegi di Domain Admin immediati. Un attaccante con accesso standard all'utente può diventare un controller di dominio entro pochi minuti.
- High Risk:[[]] Debole di archiviazione di chiave crittografica (chiavi di sola software) o percorsi di relè ESC8 che richiedono un coordinamento aggiuntivo (autenticazione di codifica) ma portano comunque al compromesso del server.
- Rischio medio:[] Mancanti controlli di revoca nelle applicazioni client o l'uso di firme basate su SHA-1 sulle CA interne.
- Informazioni:[[]] log CT che espongono i nomi host interni, o i dettagli di configurazione della trasparenza del certificato.
Ogni risultato dovrebbe includere una descrizione chiara, i passi tecnici necessari per riprodurlo, il potenziale impatto aziendale, e una raccomandazione di bonifica a priori.
Migliori Pratiche di Rimediazione e Indurimento
Identificare le debolezze è solo la metà del viaggio. L'implementazione dei controlli efficaci è essenziale per la resilienza PKI a lungo termine.
Indurimento dell'Autorità di certificazione
- Isolare la CA:[] La CA radice dovrebbe rimanere offline e dotata di aria per la massima sicurezza.
- Utilizza HSMs:[] Distribuisci moduli di sicurezza hardware per tutte le CA di livello 3+. Questo protegge le chiavi private dall'esfiltrazione anche se il server è compromesso.
- Patch Regolarmente:[] Le CA sono obiettivi di alto valore. Assicurare che l'applicazione server sottostante OS e CA siano patchati per le vulnerabilità conosciute nel più breve tempo possibile.
Modelli di certificato di acquisizione
- Scarica di SAN richiesta per modelli sensibili:[[] I modelli per account ad alto valore privato (Domain Admins, Administrators) devono esplicitamente richiedere firme autorizzate e l'approvazione del gestore. La bandiera SAN nello schema deve essere impostata su "Questa è un'estensione critica" per evitare modifiche.
- Enforce Schema Versione 2:[] I modelli di versione 2 forniscono impostazioni di sicurezza granulari, compresa la possibilità di limitare la costruzione dei nomi degli argomenti e richiedono la firma ufficiale.
- Permessi di registrazione limitati:[] Permette solo a gruppi di sicurezza specifici (ad esempio, "Helpdesk" per certs utente, "Domain Admins" per certs di amministrazione) di iscriversi a modelli sensibili.
Indurimento di rete e protocollo
- S disabilitare i percorsi di relè NTLM:[ Abilitare la firma LDAP e il legame del canale LDAP sui controller di dominio per prevenire attacchi di relè ESC8. Disattivare l'autenticazione NTLM sui server CA a meno che non sia assolutamente necessario per i client legacy.
- I punti di distribuzione CRL (CDP) e i risponditori OCSP:[] Assicurare che questi siano altamente disponibili e configurati correttamente. Un mancato controllo della revoca può costringere le applicazioni ad accettare i certificati non validi.
Conclusione: Veglianza PKI continua
Il test di penetrazione di PKILT non è una scatola di tempo per verificare la conformità. È una pratica di sicurezza continua che deve evolvere accanto alle minacce e ai cambiamenti nel vostro ambiente. Come le organizzazioni migrano al cloud e adottano architetture Zero-Trust, il ruolo di PKI espande, e così la superficie di attacco.