Firma Digitale Malevola: Code Signing (T1553.002)

La tecnica T1553.002 - Code Signing rientra nella tattica TA0005 (Defense Evasion) e descrive l'abuso, la creazione o il furto di materiale crittografico per firmare digitalmente malware e strumenti offensivi. Una firma valida trasmette al sistema operativo e agli utenti un messaggio di autenticità e integrità: il binario proviene da un'entità identificabile e non è stato manomesso. Quando un avversario si impossessa di questa capacità, ribalta il modello di fiducia su cui si reggono i controlli applicativi di Windows e macOS.

A differenza di una firma non valida, qui il risultato è una signature crittograficamente corretta, in grado di superare policy come WDAC, AppLocker con regole publisher-based e Gatekeeper. Su Linux la tecnica ha applicazione limitata, per via della natura decentralizzata del packaging, sebbene esistano casi documentati come Ebury con pacchetti RPM firmati.

I numeri raccontano una diffusione strutturale: 26 gruppi APT e 52 famiglie di malware censite ne fanno uso, insieme a 7 campagne di rilievo tra cui il SolarWinds Compromise (C0024), dove SUNBURST venne firmato direttamente dai certificati legittimi del vendor, e il 3CX Supply Chain Attack (C0057). La tecnica si colloca nelle fasi Delivery ed Execution della kill chain, spesso combinata con supply chain compromise o DLL side-loading, e rappresenta un moltiplicatore d'impatto perché neutralizza le barriere reputazionali su cui poggiano molti EDR moderni.

In un contesto red team autorizzato, la simulazione di T1553.002 parte dalla generazione di certificati self-signed e prosegue con l'impiego di certificati acquisiti legalmente per testare la resilienza di policy WDAC e regole di allowlisting.

Su Windows, la catena base sfrutta il Windows SDK (gratuito) con makecert.exe e signtool.exe. Per creare una CA di test e firmare un payload:

makecert -r -pe -n "CN=RedTeam Test CA" -ss CA -sr CurrentUser -a sha256 -cy authority -sky signature -sv RedTeamCA.pvk RedTeamCA.cer

signtool sign /v /f codesign.pfx /p password /t /fd sha256 payload.exe

Per una simulazione più realistica di certificati theft, il toolkit SigThief (open source, disponibile su GitHub di secretsquirrel) consente di estrarre la signature da un binario legittimo e appenderla a un file malevolo, producendo una firma tecnicamente invalida ma sufficiente a bypassare controlli superficiali che verificano solo la presenza del certificato senza validare la catena.

Su macOS l'approccio cambia radicalmente. Un Apple Developer ID (a pagamento, 99 USD/anno) permette firma e notarizzazione tramite codesign e notarytool:

codesign --force --deep --sign "Developer ID Application: Nome (TEAMID)" payload.app

xcrun notarytool submit payload.zip --keychain-profile "AC_PASSWORD" --wait

Come documentato per Daggerfly (G1034), esistono scenari in cui file firmati ma non notarizzati vengono comunque eseguiti in ambienti macOS meno restrittivi, aggirando parzialmente Gatekeeper. La simulazione di MacMa (S1016) con certificati ad hoc Apple Developer è un caso studio interessante per red team focalizzati su endpoint Apple.

Nel filone del DLL side-loading combinato con binari firmati — pattern usato da Mustang Panda con BOOKWORM (S1226), TONESHELL (S1239), PUBLOAD (S1228) e dai droplet SplatDropper, PAKLOG, CorKLOG — l'operatore identifica un eseguibile legittimo e firmato (ad esempio BugSplatHD64.exe, inkform.exe o ExcelRepairToolboxLauncher.exe) e vi affianca una DLL malevola che viene caricata per ordine di ricerca. Strumenti come Robber (open source) e Spartacus (open source) automatizzano l'individuazione di binari firmati vulnerabili a side-loading.

Per il chapter dedicato al bypass di driver-based EDR killers, la simulazione ricalca quanto osservato in Moses Staff (G1009) e Medusa Group (G1051): il caricamento di driver firmati vulnerabili (BYOVD) richiede attenzione, perché in ambiente reale può causare BSOD; è quindi raccomandato uno snapshot VM prima di ogni test.

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.