Certificati Digitali Self-Signed: Digital Certificates (T1587.003)
La tecnica T1587.003 - Digital Certificates appartiene alla tattica Resource Development (TA0042) del framework MITRE ATT&CK e si colloca nella fase preparatoria della kill chain, quando l'avversario costruisce l'infrastruttura di supporto prima ancora di toccare l'obiettivo. Consiste nella creazione di certificati SSL/TLS self-signed che gli attaccanti utilizzano per cifrare il traffico di comando e controllo, abilitare scenari di Adversary-in-the-Middle se installati come root of trust, o semplicemente conferire una parvenza di legittimità a servizi HTTPS malevoli.
Un certificato self-signed manca dell'elemento di fiducia associato alla firma di una Certificate Authority riconosciuta, ma questo raramente ostacola l'operazione: il traffico TLS resta cifrato e opaco alle ispezioni superficiali, e gli endpoint sotto controllo dell'attaccante accettano il certificato senza obiezioni. In alcuni casi gli avversari mimano deliberatamente pattern di CA note, come nel caso del gruppo Storm-0501 che ha utilizzato un certificato denominato "Microsoft IT TLS CA 5" per confondere gli analisti.
I dati MITRE censiscono 4 gruppi APT attivi su questa tecnica, 3 campagne documentate e 1 mitigazione — quest'ultima di natura pre-compromise, dato che la fase di creazione avviene interamente fuori dal perimetro difendibile. Il valore per il difensore risiede nel pivoting: un certificato riutilizzato o un pattern di emissione riconoscibile può illuminare intere reti di infrastruttura offensiva.
In un contesto red team autorizzato, la generazione di certificati self-signed è un'operazione da laboratorio banale ma va contestualizzata in una catena realistica: acquisizione dominio, emissione certificato, deployment su listener C2, test di detection lato blue team.
Lo strumento di riferimento è OpenSSL (open source), presente nativamente su Linux e macOS e disponibile per Windows tramite Win32 OpenSSL. Un certificato base si genera con:
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes
Per emulare un attore che maschera l'origine, si personalizza il Subject Distinguished Name con valori che imitino CA legittime, come fatto da Storm-0501. Il flag -subj consente di iniettare i campi direttamente da riga di comando, evitando il prompt interattivo:
openssl req -x509 -newkey rsa:2048 -keyout k.pem -out c.pem -days 365 -nodes -subj "/CN=Microsoft IT TLS CA 5/O=Microsoft Corporation"
Per scenari C2 realistici, i framework offensivi integrano già la gestione certificati. Cobalt Strike (a pagamento) permette di configurare un keystore Java personalizzato nel profilo Malleable C2, mentre Sliver (open source) e Mythic (open source) generano certificati self-signed automaticamente al primo avvio del listener HTTPS. In un esercizio TIBER-EU o CBEST, è buona pratica documentare fingerprint SHA-256 e serial number di ogni certificato emesso, per consentire al blue team la verifica post-esercizio.
Una tecnica di domain fronting alternativo consiste nel far combaciare i campi Issuer e Subject con quelli di un servizio cloud realmente utilizzato dalla vittima, sfruttando l'assuefazione visiva degli analisti. Il tool mkcert (open source) semplifica la generazione di certificati per domini arbitrari, sebbene sia progettato per sviluppo locale.
Per testare la resilienza dei controlli TLS del target, si può orchestrare un listener HTTPS con Nginx (open source) o direttamente con socat (open source):
socat OPENSSL-LISTEN:443,cert=cert.pem,key=key.pem,verify=0,fork -
Durante l'esercizio va verificato se il SOC rileva il certificato tramite JA3S fingerprinting, analisi delle anomalie nei campi X.509 (validità eccessivamente lunga, CN generici, entropy anomala nell'organizzazione), o attraverso feed di Certificate Transparency. Se il team difensivo non solleva alert entro 48 ore dal deployment, il gap va formalizzato nel report finale come raccomandazione di tuning.
Vuoi diventare un Ethical Hacker ma non sai da dove iniziare?
Accedi alle lezioni gratuite e segui il percorso corretto fin dal primo passo