Iscriviti al webinar gratuito del 12 Maggio per diventare Forensic Analyst! Scopri di più
Corso Ethical Hacker: accedi alla promozione fino al 30 Arile! Scopri di più
L'Environmental Keying è una sotto-tecnica delle Execution Guardrails che sfrutta la crittografia per vincolare l'esecuzione di un payload alle caratteristiche specifiche del sistema bersaglio. Invece di distribuire la chiave di decrittazione insieme al malware o trasmetterla su un canale di rete potenzialmente monitorato, l'avversario deriva la chiave da valori ambientali — il serial number del volume disco, l'hostname della macchina, il dominio Active Directory, l'indirizzo IP locale, la versione di un software installato o persino la configurazione di share di rete.
Questa tecnica si colloca nella tattica Defense Evasion (TA0005): l'obiettivo non è ottenere accesso o muoversi lateralmente, ma rendere il malware inerte al di fuori del contesto previsto. Una sandbox che analizza il campione non possiede i valori ambientali corretti, quindi non può decrittare il payload; un reverse engineer senza accesso alla macchina vittima si trova davanti a un blob cifrato privo di chiave recuperabile. Il risultato è un rallentamento significativo dell'incident response e una protezione delle TTP dell'attaccante.
Con 2 gruppi APT, 8 famiglie malware documentate e 1 mitigazione che di fatto suggerisce di non intervenire preventivamente, l'environmental keying rappresenta una sfida architetturale per i difensori: non si può bloccare ciò che appare come una normale raccolta di informazioni di sistema seguita da operazioni crittografiche legittime.
Il cuore dell'environmental keying è concettualmente semplice: raccogliere un valore unico del target, derivarne una chiave, usarla per decrittare un payload. La complessità sta nel rendere la catena robusta abbastanza da resistere all'analisi statica e dinamica. In un laboratorio red team, puoi replicare l'intero flusso con strumenti nativi del sistema operativo.
Fase 1 — Raccolta del valore ambientale. Su Windows, il volume serial number è uno dei valori più utilizzati in-the-wild (lo usano PUBLOAD, PowerPunch e Ninja). Puoi recuperarlo con:
vol C:
oppure via WMI per un uso programmatico:
wmic logicaldisk get volumeserialnumber
Su PowerShell, per ottenere hostname, serial e username in un colpo solo — come fa PUBLOAD che combina più valori:
$env:COMPUTERNAME + (Get-WmiObject Win32_LogicalDisk -Filter "DeviceID='C:'").VolumeSerialNumber + $env:USERNAME
Fase 2 — Derivazione della chiave e cifratura. In un esercizio controllato, prepara il payload cifrato in anticipo. Con Python e la libreria cryptography (open source), puoi derivare una chiave AES dal serial number usando PBKDF2:
python3 -c "from cryptography.hazmat.primitives.kdf.pbkdf2 import PBKDF2HMAC; from cryptography.hazmat.primitives import hashes; import base64; kdf = PBKDF2HMAC(algorithm=hashes.SHA256(), length=32, salt=b'redteamlab', iterations=100000); key = base64.urlsafe_b64encode(kdf.derive(b'VOLUME_SERIAL_HERE')); print(key)"
Per replicare l'approccio DPAPI usato da APT41 e InvisiMole, su una macchina Windows puoi invocare direttamente le API di protezione dati. Con PowerShell:
[System.Security.Cryptography.ProtectedData]::Protect([System.Text.Encoding]::UTF8.GetBytes("payload_data"), $null, [System.Security.Cryptography.DataProtectionScope]::CurrentUser)
I dati cifrati con DPAPI sono decrittabili solo dall'utente e sulla macchina dove sono stati protetti — un meccanismo di environmental keying "gratuito" offerto dal sistema operativo stesso.
Fase 3 — Simulazione della guardrail linguistica. Pikabot verifica la lingua del sistema e termina l'esecuzione per determinate localizzazioni (russo, ucraino, georgiano e altre). In PowerShell:
(Get-Culture).Name
Puoi integrare questo check nel tuo dropper di laboratorio come primo gate: se il locale non corrisponde a quello atteso, il processo termina senza toccare disco.
Su Linux, la catena equivalente parte da hostnamectl o dalla lettura di /etc/machine-id per ottenere un identificatore univoco del sistema, combinato con openssl enc per la cifratura simmetrica. Lo strumento Metasploit Framework (open source) supporta la generazione di payload con guardrail ambientali attraverso encoder personalizzati.
Scarica la guida gratuita e segui il percorso corretto fin dal primo passo