Cifratura Simmetrica del C2: Symmetric Cryptography (T1573.001)
La tecnica T1573.001 - Symmetric Cryptography rientra nella tattica TA0011 (Command and Control) e descrive l'uso da parte degli attaccanti di algoritmi di cifratura simmetrica per occultare il traffico di comando e controllo. A differenza della cifratura offerta nativamente dai protocolli, qui il malware implementa direttamente algoritmi come AES, DES, 3DES, Blowfish, RC4 o varianti custom di XOR, garantendo che anche in caso di ispezione TLS il payload rimanga opaco.
La peculiarità della cifratura simmetrica è l'uso della stessa chiave per cifratura e decifratura: questo semplifica l'implementazione lato malware ma introduce il problema della distribuzione della chiave, spesso risolto con chiavi hardcoded, derivate da stringhe note, o negoziate in una fase di handshake iniziale.
I numeri sono considerevoli: 14 gruppi APT documentati, 159 famiglie di malware che ne fanno uso e 4 campagne di rilievo. Praticamente ogni RAT moderno implementa una qualche forma di cifratura simmetrica del canale C2, dal semplice XOR mono-byte di SUNBURST all'AES-256-CBC con HMAC-SHA-256 di Cobalt Strike. L'impatto difensivo è significativo: la sola ispezione del payload diventa inutile e la detection deve spostarsi su metadati di flusso, entropia, chiamate crittografiche anomale e correlazione comportamentale del processo emittente.
In un red team engagement la simulazione di T1573.001 può partire da framework consolidati. Sliver (open source) implementa nativamente AES-GCM-256 per la sessione C2 ed è un ottimo sostituto etico di Cobalt Strike per esercizi autorizzati: il comando sliver-server avvia il teamserver, mentre generate --mtls
Per emulare custom crypto, Mythic (open source) con l'agente Apollo consente di scrivere profili C2 personalizzati in Python dove implementare RC4, XOR rolling key o AES-CBC. Un esempio educativo in Python usando la libreria cryptography (open source):
from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes
seguito dall'istanziazione di Cipher(algorithms.AES(key), modes.CBC(iv)). Il payload cifrato viene poi incapsulato in una POST HTTP legittima verso il redirector.
Sul fronte offensivo Windows, l'uso di BCrypt via BCryptOpenAlgorithmProvider con identifier BCRYPT_AES_ALGORITHM replica la strategia osservata in TrickBot e permette di evitare import sospetti verso CryptoAPI legacy. Su Linux, il linking dinamico verso libcrypto di OpenSSL (open source) tramite dlopen("libcrypto.so.3", RTLD_LAZY) consente di emulare il comportamento di Kobalos o Ebury.
Per la fase di validazione, CyberChef (open source, di GCHQ) è indispensabile per costruire e verificare ricette di cifratura complesse come quelle usate da BADNEWS (ROR by 3 seguito da XOR 0x23) o FakeM (XOR con chiave "YHCRA" e bit rotation). Wireshark (open source) con dissector personalizzati in Lua permette di ispezionare il traffico generato e confermare che l'entropia del payload sia realisticamente alta.
Un esercizio realistico consiste nel replicare la catena di Emissary: primo beacon in chiaro, ricezione di un GUID di 36 caratteri dal server, uso di quel GUID come chiave RC4 per tutte le comunicazioni successive. Questo pattern testa la capacità del blue team di identificare l'handshake iniziale prima che il canale diventi opaco.
Strumenti come BurpSuite Professional (a pagamento) con estensioni custom permettono di intercettare e modificare i beacon durante l'engagement, mentre INetSim (open source) simula un server C2 in laboratorio isolato per test sicuri.
Vuoi diventare un Ethical Hacker ma non sai da dove iniziare?
Accedi alle lezioni gratuite e segui il percorso corretto fin dal primo passo