Certificati di Firma del Codice: Code Signing Certificates (T1587.002)

La creazione di certificati self-signed per la firma del codice è una tecnica di Resource Development (TA0042), la fase in cui l'avversario costruisce le risorse che sosterranno le operazioni successive. La firma digitale di eseguibili e script serve normalmente a garantire l'autenticità del produttore e l'integrità del software: un binario firmato non è stato manomesso e proviene da chi dichiara di averlo prodotto.

Gli attaccanti sfruttano questa fiducia implicita. Generando in proprio un certificato di firma, spesso intestato a società fittizie o a nomi che imitano vendor legittimi, riescono a far apparire il malware più credibile agli occhi di utenti e strumenti di sicurezza. Molti controlli, infatti, attribuiscono un punteggio di rischio inferiore al codice firmato, anche quando l'emittente non è verificato.

La preparazione dei certificati avviene prima del contatto con la vittima e quindi fuori dal perimetro difendibile. Il valore reale emerge nelle fasi successive della kill chain: la firma abilita la Defense Evasion durante l'esecuzione e rafforza l'efficacia del Initial Access tramite installer malevoli percepiti come attendibili.

I dati MITRE ATT&CK associano questa sottotecnica a 3 gruppi, 1 campagna e 1 mitigazione. L'impatto non è misurabile in danni diretti, ma in un moltiplicatore di successo per le catene d'attacco: un dropper firmato supera più facilmente allow-list, warning SmartScreen e verifiche di reputazione, aumentando in modo significativo la probabilità che l'utente esegua il payload.

Trattandosi di una tecnica pre-compromise, l'obiettivo in un esercizio red team è simulare in laboratorio la produzione di un certificato di firma auto-firmato e osservarne l'effetto sulla catena d'esecuzione, sempre in ambiente isolato.

Su Windows il toolkit di riferimento è quello dei Windows SDK. Con PowerShell si può generare un certificato di test:

New-SelfSignedCertificate -Type CodeSigningCert -Subject "CN=Contoso Software Inc" -CertStoreLocation Cert:\CurrentUser\My

L'esportazione in PFX avviene con Export-PfxCertificate, mentre la firma del binario si effettua con signtool sign /f cert.pfx /p password /fd SHA256 payload.exe (signtool fa parte del Windows SDK, gratuito). Per finalità didattiche esiste anche makecert nelle versioni legacy dell'SDK, oggi sostituito dal cmdlet PowerShell.

Su Linux e per binari cross-platform, il generatore universale è OpenSSL (open source): openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes -subj "/CN=Fake Vendor Ltd". Il materiale così prodotto può poi essere convertito in PKCS#12 con openssl pkcs12 -export.

Per i file macOS — scenario adottato da Daggerfly per firmare payload destinati ad Apple — si usa la toolchain nativa. La firma ad-hoc o con identità self-signed si esegue con codesign -s "Fake Identity" -f app.app e si verifica con codesign -dv --verbose=4 app.app (strumenti inclusi negli Xcode Command Line Tools, gratuiti). In laboratorio è utile confrontare l'esito con spctl --assess per capire come Gatekeeper reagisce a un'identità non notarizzata.

Per scenari di virtualizzazione ESXi, gli attaccanti tendono invece a disabilitare l'enforcement delle firme piuttosto che firmare, ma un red team può testare la reazione dell'host a VIB firmati con certificati custom.

La catena d'attacco tipica riproduce quanto osservato in Operation Dream Job, dove Lazarus Group firmò sia il malware sia l'utility legittima dbxcli: si genera il certificato, si firma un installer o un LOLBin trojanizzato, e si misura quanti controlli di reputazione vengono superati. Per la fase OSINT preliminare, tool come SpiderFoot (freemium) e Recon-ng (open source) aiutano a identificare i vendor da impersonare. La regola d'oro resta l'uso esclusivo di infrastruttura di test e certificati mai destinati a produzione.

Vuoi diventare un Ethical Hacker ma non sai da dove iniziare?

Accedi alle lezioni gratuite e segui il percorso corretto fin dal primo passo

TEST GRATUITO
2 minuti · 7 domande Che professionista cyber sei? Scopri il profilo più vicino al tuo modo di pensare e inizia dal percorso giusto.