Il ransomware è uno dei segnali più puliti nel journal USN. Qualunque altra cosa abbia fatto l'operatore — furto di credenziali, movimento laterale, persistenza — la fase di cifratura tocca il filesystem con un pattern uniforme e ad alto volume, che spicca anche mesi dopo. Questo articolo descrive com'è quel pattern e come trovarlo.
Si assume che tu abbia già estratto il $J e lo abbia parsato (il parser di questa pagina va bene; anche usnrs e altri). Per un ripasso del bitmask di razionale, il nostro articolo dedicato è il riferimento di campo.
Il pattern canonico
La maggior parte dei ransomware moderni (LockBit, BlackCat/ALPHV, Royal, Akira, le varianti post-Conti, ecc.) segue la stessa ricetta in tre passi per file:
- Apertura del file in lettura.
- Sovrascrittura del contenuto in loco — oppure scrittura di un nuovo file accanto e cancellazione dell'originale.
- Rinomina aggiungendo un'estensione marker (
.locked,.lockbit, una stringa casuale di 8 caratteri, o nessuna per alcune famiglie).
Nel journal questo produce, per ciascun file:
DataOverwrite | Close
DataOverwrite | Close
… ← ripetuto, uno per blocco scritto
RenameOldName | Close (vecchio: document.docx)
RenameNewName | Close (nuovo: document.docx.locked)
I due segnali distintivi:
- Raffiche di
DataOverwritein una finestra breve su migliaia di file. L'attività normale produce raramenteDataOverwritecontinui su file non database. RenameNewNamedi massa con suffissi di estensione identici. Il rapporto tra record di nuovo nome e file attivi esplode durante la cifratura.
Per il mapping a MITRE ATT&CK, questo corrisponde principalmente a T1486 Data Encrypted for Impact e ai comportamenti di rinomina associati.
Ricetta pratica di rilevamento
Lavorando su un journal parsato:
- Istogramma i
DataOverwriteper minuto. Tracciare o semplicemente raggruppare per minuto e cercare il salto. Un host Windows normale mostra una baseline bassa costante (pochi al minuto), interrotta da raffiche applicative (salvataggio Office, cache Chrome). Un ransomware mostra un picco sostenuto 50-500× sopra quella baseline, che non si ferma finché l'host non rimane senza file. - Clusterizza i
RenameNewName. Raggruppare per estensione nuova o regex sul nuovo nome. Se l'80% delle rinomine di una finestra condivide lo stesso suffisso o lo stesso pattern.{8}, stai guardando un encryptor. - Incrociare con
FileDelete | Close. Alcune famiglie scrivono il cifrato in un nuovo file e cancellano l'originale. Da accoppiare con unFileCreatedi stessa radice e diversa estensione emesso nello stesso secondo. - Risalire al padre. I ransomware che cifrano ogni sottodirectory del profilo utente o ogni condivisione colpiscono
Users\<user>\Documents,Users\<user>\Desktop, ogni radice di drive mappato. I percorsi completi risolti dal MFT lo rendono banale.
Il parser di questo sito espone il filtro per razionale direttamente — impostarlo su DataOverwrite per il passo 1 e RenameNewName per il passo 2.
Come si presentano i dati
Estratto redatto da un caso reale di LockBit 3.0:
2024-04-12T03:14:08Z DataOverwrite Close C:\Users\ana\Desktop\notes.docx
2024-04-12T03:14:08Z DataOverwrite Close C:\Users\ana\Desktop\notes.docx
2024-04-12T03:14:08Z DataOverwrite Close C:\Users\ana\Desktop\notes.docx
2024-04-12T03:14:08Z RenameOldName Close C:\Users\ana\Desktop\notes.docx
2024-04-12T03:14:08Z RenameNewName Close C:\Users\ana\Desktop\notes.docx.HLJkNskOq
2024-04-12T03:14:08Z DataOverwrite Close C:\Users\ana\Desktop\quarterly.xlsx
…
Ogni file nella directory viene cifrato nello stesso secondo di orologio. La nuova estensione è una stringa casuale uniforme di 9 caratteri — forte segnale di cluster per il passo 2.
Oltre la fase di cifratura
Il journal cattura anche i comportamenti preparatori e di pulizia:
- Cancellazione delle shadow copy: non realmente visibile in
$J(vive in namespace gestiti da$WSC), ma unFileCreatedi file temporanei lanciati davssadmin.execompare attimi prima della raffica di cifratura. - Scansioni di discovery: molte famiglie enumerano il volume per listing di directory, il che non produce voci di journal — ma se l'operatore ha lasciato strumenti come
adfind.exeoPsExec.exe, vedrai i loroFileCreate. - Consegna della nota: ogni famiglia moderna scrive una nota di riscatto in ogni directory cifrata. Un
FileCreatedello stesso nome file (README.txt,HOW_TO_DECRYPT.html, ecc.) in molte directory nello stesso minuto è la regex pigra che ne pesca la maggior parte.
Cosa il journal non ti dirà
Il journal USN registra cambiamenti al filesystem, non attori. Per legare un utente o un processo alla raffica di cifratura servono:
Security.evtxevent4663(accesso a oggetto) — richiede SACL configurate in anticipo.Microsoft-Windows-Sysmon/Operationalevent11(creazione file) — richiede Sysmon dispiegato.- L'artefatto Windows.NTFS.MFT di Velociraptor o il profilo di triage completo di KAPE per tutto in un colpo solo.
Per il playbook di risposta più ampio, la guida #StopRansomware della CISA è il riferimento di autorità.
Una nota sul rumore di fondo
Alcuni comportamenti legittimi sembrano superficialmente ransomware:
- Distribuzione della cifratura disco (conversione iniziale di BitLocker) produce una raffica continua di
DataOverwrite— ma non produce eventiRenameNewName. Falso positivo facile da scartare. - Software di backup come Veeam o Macrium può produrre raffiche di
DataOverwritesul volume di destinazione. Verificare sempre utente/percorso. - AutoSalvataggio di Office o rebuild di Visual Studio producono raffiche brevi. L'istogramma per minuto le rende ovvie — sono transitorie, il ransomware è monotono.
Se la tua logica di rilevamento non genera zero alert sulla baseline, è sotto-specificata. Il segnale che vuoi è la combinazione del tasso di DataOverwrite, del tasso di RenameNewName e del clustering di estensione — non uno di essi da solo.