Bypass Politiche di Firma: Code Signing Policy Modification (T1553.006)
Le politiche di firma del codice rappresentano un meccanismo di sicurezza fondamentale che garantisce l'autenticità del software e previene l'esecuzione di codice non autorizzato. Quando un avversario modifica queste politiche, può eseguire driver non firmati, DLL malevole o rootkit senza essere intercettato dai controlli di sicurezza del sistema operativo.
Questa tecnica rientra nella tattica TA0005 (Defense Evasion), permettendo agli attaccanti di operare indisturbati all'interno di un sistema compromesso. La modifica può avvenire attraverso utility da riga di comando come bcdedit.exe su Windows o csrutil su macOS, alterazioni del registro di sistema, o manipolazione diretta della memoria kernel.
L'impatto è significativo: 2 gruppi APT documentati hanno utilizzato questa tecnica, insieme a 3 famiglie di malware conosciute. La pericolosità deriva dalla capacità di disabilitare controlli di sicurezza critici come Driver Signature Enforcement (DSE) su Windows o System Integrity Protection (SIP) su macOS.
Per testare la resilienza dei controlli di firma in ambiente Windows, il comando più diretto è l'attivazione della modalità test. Esegui con privilegi amministrativi:
bcdedit.exe -set TESTSIGNING ON
Questa modifica richiede un riavvio del sistema e introduce un watermark visibile nell'angolo del desktop. Il malware BlackEnergy utilizzava proprio questa tecnica per caricare componenti driver non firmati.
Su macOS, la disabilitazione di SIP richiede l'avvio in Recovery Mode (Command+R durante il boot) e l'esecuzione di:
csrutil disable
Per scenari più avanzati, considera la manipolazione diretta delle variabili kernel. Il gruppo Turla ha dimostrato come sia possibile modificare g_CiOptions in memoria per disabilitare DSE senza riavvii. Questo richiede un driver vulnerabile firmato come CVE-2017-15303, sfruttato dal malware Pandora.
Nel registro Windows, le chiavi critiche si trovano sotto: *HKLM\SYSTEM\CurrentControlSet\Control\CI*
Il malware Hikit manipola questi valori prima di caricare il suo componente rootkit. Per simulare l'attacco del gruppo APT39, modifica il valore RequireSigned nelle policy DLL per permettere l'esecuzione di librerie non firmate.
Durante i test, documenta sempre i cambiamenti di stato del sistema. Utilizza WPA (Windows Performance Analyzer) per tracciare le modifiche kernel in tempo reale e Process Monitor per catturare le alterazioni del registro.
Vuoi diventare un Ethical Hacker ma non sai da dove iniziare?
Scarica la guida gratuita e segui il percorso corretto fin dal primo passo