
Un semplice vaccino contro il ransomware

Una semplice protezione contro i ransomware
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.

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:
vssadmin.exe o ), il che potrebbe causare problemi di integrità e rompere la nostra raccinazione a ogni patch daywmic.exeSvantaggi / Punti ciechi:
vssadmin.exe delete shadows (o qualsiasi altra combinazione in lista nera) non è più possibilevssadmin.exe delete shadows, che potrebbero essere un processo di backupvssadmin.exe (ad es. tramite schtasks)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)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
Emotet senza Raccine - Link

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

L'infezione viene stroncata sul nascere.
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.
delete e shadows nella riga di comando e altrimenti passa tutti i parametri a un nuovo processo che invoca vssadmin con i suoi parametri originaliexplorer.exe dalla whitelistwmic che chiama delete shadowcopy, nessun output per gli avvii di processi in whitelist (evita problemi con l'elaborazione dell'output di wmic)delete shadowstorage di @JohnLaTwC, revisione del codice di @_hillu, icona dell'applicazionebcdedit.exe /set {default} bootstatuspolicy ignoreallfailures e bcdedit.exe /set {default} recoveryenabled nopowershell.exe e win32_shadowcopy o un elenco di comandi codificatiC:\ProgramData\Raccine_log.txtdiskshadow.exe delete shadowsSia il pacchetto Visual C++ Redistributable che .NET Framework verranno installati automaticamente eseguendo install-raccine.bat.
Raccine.zip dalla sezione Releaseraccine-installer.bat come amministratore
L'installatore batch include un'opzione di "disinstallazione".
Da amministratore, esegui:
raccine-reg-patch-uninstall.reg%ProgramFiles%\Raccine e %ProgramData%\Raccinereg delete HKCU\Software\Raccine /Ftaskkill /F /IM RaccineSettings.exereg delete "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /V "Raccine Tray" /Fschtasks /DELETE /TN "Raccine Rules Updater" /FConsigliamo di disinstallare e reinstallare per l'aggiornamento. Una disinstallazione rimuove tutte le chiavi di registro con le configurazioni.
Raccine ha un aggiornatore firme integrato dalla versione 1.2. Questo programma, chiamato RaccineRulesSync.exe, è configurato per essere eseguito una volta al giorno tramite un'attività pianificata. Puoi eseguire un aggiornamento firme manualmente usando l'opzione nel menu dell'icona nell'area di notifica.
Dalla versione 1.0, Raccine usa inoltre regole YARA per determinare se la riga di comando di un processo o il processo padre è dannoso o meno. Raccine usa 2 serie di regole per due scopi diversi.
./yara - regole che vengono applicate alla riga di comando con tutti i parametri, ad es. WMIC.exe delete justatest./yara/in-memory - regole che vengono applicate alla memoria del processo padre del nostro processo intercettato, ad es. ransomware.exe che esegue il nostro processo intercettato vssadmin.exeDalla versione 1.1 passiamo un elenco di variabili esterne nel processo di corrispondenza YARA per consentire regole YARA molto più complesse e intelligenti che tengano conto degli attributi del processo e del suo padre.
| Variabile | Descrizione | Valore di esempio |
|---|---|---|
| FromRaccine | true | |
| Name | Nome immagine | WMIC.exe |
| ExecutablePath | Percorso completo del binario | C:\Windows\System32\wbem\WMIC.exe |
| CommandLine | Riga di comando completa con parametri | WMIC.exe delete justatest |
| Priority | Priorità del processo | 32 |
| ParentName | Nome immagine del padre | cmd.exe |
| ParentExecutablePath | Percorso completo dell'eseguibile padre | C:\Windows\System32\cmd.exe |
| ParentCommandLine | Riga di comando completa del padre con parametri | C:\WINDOWS\system32\cmd.exe |
| ParentPriority | Priorità del processo padre | 32 |
Il processo di corrispondenza si presenta così sulla riga di comando:
"C:\Program Files\Raccine\yara64.exe" -d FromRaccine="true" -d Name="WMIC.exe" -d ExecutablePath="C:\Windows\System32\wbem\WMIC.exe" -d CommandLine="WMIC.exe delete justatest" -d Priority=32 -d FromRaccine="true" -d ParentName="cmd.exe" -d ParentExecutablePath="C:\Windows\System32\cmd.exe" -d ParentCommandLine="'C:\WINDOWS\system32\cmd.exe' " -d ParentPriority=32 C:\ProgramData\Raccine\yarayara\mal_emotet.yar C:\ProgramData\Raccine\yara\Rac1C6A.tmp
Il seguente elenco mostra un esempio di regola YARA che utilizza le variabili esterne nella sua condizione.
rule env_vars_test {
condition:
Name contains "WMIC.exe"
and CommandLine contains "delete justatest"
and ParentPriority >= 8
and (
ParentCommandLine contains "cmd"
or ParentCommandLine contains "powershell"
)
}
La cartella GPO include Raccine.ADMX e Raccine.ADML. Nella distribuzione, il file Raccine.ADMX va in C:\Windows\PolicyDefinitions. Il file Raccine.ADML corrispondente va in C:\Windows\PolicyDefinitions\en-US.
Per usarla: apri GPEDIT.MSC > Configurazione computer > Modelli amministrativi > Sistema > Raccine
Dopo aver configurato le modifiche, potrebbe essere necessario forzare l'aggiornamento del GPO eseguendo gpupdate.exe.
Un file di log con tutte le intercettazioni e le azioni eseguite viene scritto in C:\ProgramData\Raccine\Raccine_log.txt

Una voce viene generata per ogni evento di blocco nel registro eventi Application.

Gli ID che Raccine genera
Dalla versione 0.10.0, Raccine può essere installato in "modalità simulazione", che attiva tutti i trigger, registra tutte le azioni ma non termina nulla. Questa modalità dovrebbe essere usata in ambienti in cui soluzioni di backup o altri software legittimi vengono eseguiti per un periodo di tempo ragionevole per verificare se Raccine interferirebbe con altro software. L'idea è installare Raccine in modalità simulazione, lasciarlo registrare per una settimana o un mese e poi controllare i log per vedere se avrebbe bloccato software legittimo usato nell'organizzazione.

Esegui raccine.exe e osserva l'albero dei processi padre morire (screenshot della v0.1)

Disponibile e richiesta dalla versione 1.



Nel caso in cui il ransomware che stai attualmente gestendo usi un determinato nome di processo, ad es. taskdl.exe, puoi semplicemente modificare la patch .reg per intercettare le chiamate a quel nome e lasciare che Raccine termini tutti i processi padre dell'albero del processo che invoca.
Mi piacerebbe estendere Raccine ma mi mancano le competenze di programmazione in C++, soprattutto sulla piattaforma Windows.
Se succede qualcosa alla tua installazione, ad es. messaggi di errore improvvisi, servizi danneggiati o programmi che non si avviano più, esegui il file raccine-reg-patch-uninstall.reg nella sottocartella reg-patches. Questo dovrebbe riportare tutto alla normalità.
Dopodiché dovresti anche essere in grado di eseguire una disinstallazione completa usando install-raccine.bat.
La pronuncia corretta è "Rax-Een".