

Raccine
Una semplice protezione contro i ransomware
Perché
Vediamo spesso ransomware eliminare tutte le copie shadow usando vssadmin. E se potessimo semplicemente intercettare quella richiesta e terminare il processo che la invoca? Proviamo a creare un semplice vaccino.

Come funziona
Registriamo un debugger per vssadmin.exe (e wmic.exe), che è il nostro raccine.exe compilato. Raccine è un binario che prima raccoglie tutti i PID dei processi padre e poi tenta di terminare tutti i processi padre.
Vantaggi:
- Il metodo è piuttosto generico
- Non dobbiamo sostituire un file di sistema (
vssadmin.exe o wmic.exe), il che potrebbe causare problemi di integrità e rompere la nostra raccinazione a ogni patch day
- Scansione flessibile dei parametri della riga di comando tramite regole YARA per attività dannose
- Le modifiche sono facili da annullare
- Funziona su Windows 7 / Windows 2008 R2 o versioni successive
- Nessun eseguibile in esecuzione o servizio aggiuntivo richiesto (senza agente)
Svantaggi / Punti ciechi:
- L'uso legittimo di
vssadmin.exe delete shadows (o qualsiasi altra combinazione in lista nera) non è più possibile
- Termina persino i processi che hanno tentato di invocare
vssadmin.exe delete shadows, che potrebbero essere un processo di backup
- Questo non intercetta i metodi in cui il processo dannoso non è uno dei processi nell'albero che ha invocato
vssadmin.exe (ad es. tramite schtasks)
Il processo
- L'invocazione di
vssadmin.exe (e wmic.exe) viene intercettata e passata a raccine.exe come debugger (vssadmin.exe delete shadows diventa raccine.exe vssadmin.exe delete shadows)
- Elaboriamo quindi gli argomenti della riga di comando e cerchiamo combinazioni dannose usando le regole YARA.
- Se non viene trovata alcuna combinazione dannosa, creiamo un nuovo processo con i parametri originali della riga di comando.
- Se viene trovata una combinazione dannosa, raccogliamo tutti i PID dei processi padre e iniziamo a terminarli (dovrebbero essere i processi malware come mostrato negli screenshot sopra). Raccine mostra una finestra della riga di comando con i PID terminati per 5 secondi, registra l'evento nel registro eventi di Windows e poi termina se stesso.
Combinazioni dannose:
delete e shadows (vssadmin, diskshadow)
resize e shadowstorage (vssadmin)
delete e shadowstorage (vssadmin)
delete e shadowcopy (wmic)
delete e catalog e -quiet (wbadmin)
win32_shadowcopy o un elemento da un elenco di comandi codificati (powershell)
recoveryenabled (bcedit)
ignoreallfailures (bcedit)
^ elenco obsoleto: controlla la regola YARA corrispondente
Elenco di comandi codificati di PowerShell: JAB, SQBFAF, SQBuAH, SUVYI, cwBhA, aWV4I, aQBlAHgA e molti altri
Esempio
Emotet senza Raccine - Link

Emotet con Raccine - Link (ignora l'attività di processo correlata all'installazione di Raccine)

L'infezione viene stroncata sul nascere.
Attenzione !!!
USALO A TUO RISCHIO!
Non potrai più eseguire comandi che utilizzano i comandi in lista nera su una macchina raccinata finché non applichi la patch di disinstallazione raccine-reg-patch-uninstall.reg. Questo potrebbe rompere varie soluzioni di backup che eseguono quel comando specifico durante il loro lavoro. Non bloccherà solo quella richiesta, ma terminerà tutti i processi in quell'albero, inclusa la soluzione di backup e il processo che la invoca.
Se disponi di un solido monitoraggio della sicurezza che registra tutte le esecuzioni dei processi, puoi controllare i tuoi log per vedere se vssadmin.exe delete shadows, vssadmin.exe resize shadowstorage ... o le altre righe di comando bloccate vengono usate frequentemente o sporadicamente per scopi legittimi; in tal caso dovresti evitare di usare Raccine.
Cronologia versioni
- 0.1.0 - Versione iniziale che intercettava e bloccava tutte le esecuzioni di vssadmin.exe
- 0.2.0 - Versione che blocca solo le esecuzioni di vssadmin.exe che contengono
delete e shadows nella riga di comando e altrimenti passa tutti i parametri a un nuovo processo che invoca vssadmin con i suoi parametri originali
- 0.2.1 - Rimosso
explorer.exe dalla whitelist
- 0.3.0 - Supporta il metodo
wmic che chiama delete shadowcopy, nessun output per gli avvii di processi in whitelist (evita problemi con l'elaborazione dell'output di wmic)
- 0.4.0 - Supporta la registrazione nel registro eventi di Windows per ogni tentativo bloccato, cerca ulteriori combinazioni di parametri dannose
- 0.4.1 - Binari collegati staticamente
- 0.4.2 - Correzioni di bug fornite da John Lambert
- 0.5.0 - Rimossa la registrazione nel registro eventi (le informazioni di base non erano necessarie; causava una maggiore complessità; può essere ottenuta anche tramite la registrazione della creazione dei processi), supporto per il filtraggio di wbadmin
- 0.5.1 - Miglioramenti di @JohnLaTwC
- 0.5.2 - Controllo aggiuntivo per
delete shadowstorage di @JohnLaTwC, revisione del codice di @_hillu, icona dell'applicazione
- 0.5.3 - Installatore batch
- 0.6.0 - Controlli aggiuntivi per
bcdedit.exe /set {default} bootstatuspolicy ignoreallfailures e bcdedit.exe /set {default} recoveryenabled no
- 0.7.0 - Controlli aggiuntivi per
powershell.exe e win32_shadowcopy o un elenco di comandi codificati
- 0.7.1 - Miglioramenti di @JohnLaTwC
- 0.7.2 - Utilizzo di percorsi assoluti nelle patch del registro
- 0.8.0 - Crea un file di log con tutte le richieste intercettate e le azioni eseguite
C:\ProgramData\Raccine_log.txt
- 0.9.0 - Registra nel registro eventi di Windows grazie a @JohnLaTwC
- 0.10.0 - Solo modalità simulazione
- 0.10.1 - Correzione per la modalità simulazione
- 0.10.2 - Include il comando
diskshadow.exe delete shadows
- 0.10.3-5 - Correzioni minori e aggiunte
- 1.0 BETA - Elementi GUI e scansione tramite regole YARA dei parametri della riga di comando
- 1.1 BETA - Corrispondenza delle regole YARA con variabili esterne, funzioni di risoluzione dei problemi
- 1.2 BETA - Aggiornatore firme
- 1.3 BETA - Scansione YARA in memoria del processo padre che invoca
- 1.4 BETA - Supporto x86 completo, spostate le stringhe statiche nelle regole YARA per evitare rilevamenti AV, log delle esecuzioni accettate, installazione di .NET Framework nell'installer
- 1.4.2 BETA - Correzione del codice di uscita (trasmissione del codice di uscita restituito dal programma intercettato), intercetta taskkill.exe
Installazione
Requisiti
- Runtime VC++ per la scansione YARA (l'installer contiene il pacchetto di setup da https://aka.ms/vs/16/release/VC_redist.x64.exe)
- .NET Framework 4.5
- Accesso a Internet per gli aggiornamenti delle regole YARA
- Windows 7 / Windows 2008 R2 o versioni successive