Firma Digitale Invalida: Invalid Code Signature (T1036.001)

La tecnica T1036.001 - Invalid Code Signature rientra nella tattica TA0005 (Defense Evasion) e descrive il tentativo degli attaccanti di imitare le caratteristiche di una firma digitale valida senza però possedere le chiavi private necessarie a produrre una firma autentica. Il risultato è un binario che espone metadati di firma — nome del publisher, timestamp, catena di certificati — apparentemente credibili, ma che fallisce la verifica crittografica quando sottoposto a controllo rigoroso.

A differenza della tecnica sorella T1553.002 (Code Signing), dove l'avversario ottiene o ruba un certificato realmente valido, qui il gioco è puramente cosmetico: si copia la struttura del certificato da un eseguibile legittimo, si applica al proprio malware, e si spera che l'utente o il tool di sicurezza si fermi al primo sguardo senza validare la catena.

L'impatto è misurabile: MITRE documenta 2 gruppi APT (APT37 e Windshift) e 7 famiglie malware che adottano questa pratica, tra cui Regin, NETWIRE, BADNEWS, WindTail, Gelsemium, PcShare e SplatCloak. La tecnica sfrutta un difetto sistemico: molti prodotti di sicurezza e analisti verificano la presenza della firma, non la sua validità crittografica, e trattano il binario come "trusted-by-appearance". Nei driver kernel, come dimostra SplatCloak, la variante con certificati revocati sfrutta finestre temporali di policy Windows per ottenere caricamento privilegiato.

In un red team engagement, la simulazione di T1036.001 è utile per validare la robustezza dei controlli AppLocker, WDAC e delle policy EDR. L'obiettivo del test non è produrre malware funzionale, ma un binario che porti metadati di firma copiati da un eseguibile legittimo e osservare la reazione dello stack difensivo.

Su Windows, il tool di riferimento è SigThief (open source), uno script Python che estrae la sezione di firma da un PE legittimo e la appende a un binario target. Il comando tipico è:

python sigthief.py -i signed_legit.exe -t unsigned_payload.exe -o fake_signed.exe

Il file risultante mostrerà in Explorer la tab "Digital Signatures" con il publisher originale (es. Microsoft, Adobe), ma signtool verify /pa /v fake_signed.exe restituirà SignerSign() failed con hash mismatch. Per verificare il comportamento della vostra baseline, confrontate l'output di Get-AuthenticodeSignature .\fake_signed.exe (PowerShell nativo): il campo Status riporterà HashMismatch mentre SignerCertificate.Subject mostrerà comunque il nome originale.

Una variante è l'uso di osslsigncode (open source), utility Linux che permette di firmare PE con certificati auto-generati o revocati. Generate una CA fittizia con openssl req -x509 -newkey rsa:4096 -keyout fake.key -out fake.crt -days 365 -subj "/CN=Tencent Technology (Shenzhen) Company Limited" — proprio la stringa usata da APT37 — e applicatela con osslsigncode sign -certs fake.crt -key fake.key -in payload.exe -out payload_signed.exe. Il risultato è un binario con firma sintatticamente valida ma catena non fidata (untrusted root).

Per emulare la tecnica di SplatCloak con certificati revocati, utilizzate certificati scaduti o revocati intenzionalmente e valutate se il vostro EDR blocca il caricamento driver in modalità test-signing o se rileva il flag di revoca via OCSP.

Su macOS, il test si concentra sul bypass di Gatekeeper: WindTail ha usato firme incomplete con certificati revocati. Simulate con codesign -s - --force --deep MyApp.app (firma ad-hoc, non fidata) e verificate con codesign --verify --deep --strict --verbose=4 MyApp.app e spctl --assess --verbose MyApp.app. Il risultato atteso è rejected, ma se Gatekeeper è disabilitato o l'utente esegue con click-destro-apri, l'esecuzione procede.

Documentate ogni step: publisher spoofato, tool EDR interpellati, output di verifica, tempo di detection. Questa telemetria alimenta il gap analysis della difesa.

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.