Pillole di #MalwareAnalysis
La #persistenza
Quasi tutti i #malware per raggiungere il proprio scopo necessitano di ottenere la persistenza sui sistemi infettati. Dico quasi tutti perché a volte quelli nati per infettare i server non la implementano.
Per persistenza si intende la capacità del malware di resistere ai reboot. Se spengo il sistema e poi lo riaccendo, questo rimane infetto.
I modi per ottenerla sono molteplici, ma di questi sicuramente il più utilizzato è la scrittura nelle chiavi di registro di windows, e tra queste la più bersagliata è HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run dove vengono inseriti tutti i processi da attivare allo startup.
In un’analisi statica del malware è necessario ricercare le primitive che consentono la scrittura di queste chiavi e l’api incriminata è RegSetValueEx nelle versioni Ascii (RegSetValueExA) e Unicode (RegSetValueExW).
Questa primitiva è sempre preceduta da una #RegOpenKeyEx.
In pratica il malware prima utilizza RegOpenKeyEx per aprire la chiave da modificare e poi la modifica con #RegSetValueEx
Utilizzando tools come #Strings di #Sysinternals o #Floss di #FireEye è possibile andare ad analizzare le stringhe contenute nei malware (se questi non sono offuscati) ed il ritrovamento delle API che vi ho citato è un forte indicatore della ricerca della persistenza.
Generalmente se riusciamo a trovare queste API saremo in grado anche di vedere la stringa che identifica la chiave modificata.