Vai al contenuto principale
Blog Tanium

È stato segnalato nel corso della notte su Twitter un altro metodo di persistenza? In che modo “ Tanium ” può esservi d’aiuto

È stato segnalato nel corso della notte su Twitter un altro metodo di persistenza? In che modo “ Tanium ” può esservi d’aiuto

Le configurazioni del Registro di sistema, originariamente concepite per la risoluzione dei problemi e lo sviluppo, costituiscono ora un mezzo di persistenza occulta a causa della mancanza di visibilità da parte di strumenti di sicurezza quali Autoruns. In questa sede, illustriamo tre modalità principali con cui i moduli “ Tanium ”, tra cui “ Trace ” e “Detect”, possono essere utilizzati per determinare rapidamente l’esistenza di questo meccanismo di persistenza relativamente sconosciuto.

Illustrazione in blu delle operazioni IT globali con un mappamondo e una tastiera

(Immagine: Bruno Glätsch / Pixabay)

Cosa fate quando vedete che, da un giorno all’altro, su Twitter viene segnalato un nuovo metodo di persistenza? Un suggerimento: utilizzi Tanium per esaminare rapidamente qualsiasi attività in corso e configurare un sistema di allerta immediata nel momento in cui si verifica. Tutto questo prima di colazione.

Su 10 aprile, Oddvar Moe (@oddvarmoe) ha pubblicato su Twitter un post del proprio blog intitolato “ ” (Persistence Using Globalflags in Image File Execution Options – Hidden from autoruns.exe), in cui viene illustrato un meccanismo di persistenza basato sulla configurazione del Registro di sistema che esegue in modo silenzioso un processo a seguito della chiusura di un altro processo “monitorato”. Questo metodo non è attualmente incluso tra le posizioni di persistenza elencate da Sysinternals Autoruns, disponibile all'indirizzo Microsoft.

L'uso dei Global Flags offre agli sviluppatori la possibilità di avviare un processo al termine di un altro processo. Al momento ciò costituisce un punto cieco, poiché Autoruns non elenca tali configurazioni. È possibile configurarle utilizzando il programma gflag.exe, un’utilità disponibile negli strumenti di sviluppo all’indirizzo Microsoft, oppure apportando modifiche al Registro di sistema tramite un account amministratore.

A meno che un computer non venga utilizzato per la risoluzione dei problemi o per attività di sviluppo, la presenza di tali configurazioni del Registro di sistema è altamente sospetta e dovrebbe essere oggetto di approfondimento. Ciò verrà illustrato di seguito e costituisce uno scenario esemplificativo che dimostra con quanta rapidità sia possibile utilizzare le informazioni appena rese note per valutare il proprio ambiente.

In questa sede, illustriamo come i moduli di “ Tanium ”, tra cui “ Trace ” e “Signals”, possano essere utilizzati per determinare rapidamente l’esistenza di questo meccanismo di persistenza relativamente poco conosciuto in tre modi principali:

  • Esaminando lo stato attuale delle impostazioni del Registro di sistema;
  • Esaminando la cronologia delle modifiche al registro tramite Trace; e
  • Attivando in futuro un sistema di avvisi in tempo reale in caso di modifiche a tali impostazioni del Registro di sistema.

Informazioni sul numero

Nel post pubblicato sul blog da Moe vengono indicate tre modifiche al Registro di sistema che definiscono un trigger di esecuzione il quale avvia un processo ogni volta che un processo monitorato termina. Inoltre, quando il processo monitorato termina, il secondo processo viene avviato in modo silenzioso. Ciò significa che, qualora fosse presente un'interfaccia grafica, questa verrebbe avviata in background. Gli autori degli attacchi possono utilizzare questa funzionalità come mezzo per garantire la persistenza, facendo sì che il proprio codice continui a essere eseguito anche dopo la chiusura di un processo di loro scelta, fino a quando le chiavi di registro non vengono rimosse.

I dettagli relativi a questa funzionalità di Windows sono documentati ai seguenti indirizzi: Microsoft,  , e qui.

A scopo di test, lo script riportato di seguito apporta le modifiche al Registro di sistema che fanno sì che evil.exe venga eseguito ogni volta che notepad.exe viene chiuso.

reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\notepad.exe” /v GlobalFlag /t REG_DWORD /d 512 reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SilentProcessExit\notepad.exe” /v ReportingMode /t REG_DWORD /d 1 reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SilentProcessExit\notepad.exe” /v MonitorProcess /d "C:\temp\evil.exe"

Attività attuale

È possibile cercare indicazioni relative all’utilizzo di questa tecnica all’interno dell’azienda tramite Tanium.

In alcuni contesti potrebbero esserci utilizzi legittimi di questa tecnica; pertanto, è opportuno effettuare un’attenta analisi per stabilire se le configurazioni esistenti siano dannose o innocue. Un punto di partenza consiste nel cercare l'hive del Registro di sistema denominato "SilentProcessExit". Nella maggior parte degli ambienti, questa chiave dovrebbe essere vuota o inesistente. Per questa indagine verranno utilizzati tre sensori:

  1. Sottovoci delle chiavi di registro - Qui vengono visualizzati tutti i processi che attivano l'esecuzione al momento della loro chiusura. La figura 1, riportata di seguito, mostra “notepad.exe” come unica sottochiave all’interno di SilentProcessExit.
  2. Nomi dei valori delle chiavi di registro - Indica quali sottochiavi sono presenti. La Figura 1 mostra “MonitorProcess” e “ReportingMode” come le due voci relative ai nomi dei valori del Registro di sistema.
  3. Dati del valore del Registro di sistema - Questi dati indicano il processo configurato per essere avviato al termine del processo monitorato. La figura 1 mostra i dati relativi alle due voci.
Windows Schermata dell’Editor del Registro di sistema che mostra le voci di registro relative a Notepad++

Figura 1: Esempio di voce utilizzata per i test descritti nel presente articolo.

Nella Figura 2, riportata di seguito, il sensore “Sottovoci della chiave di registro ‘ Tanium ’” mostra la voce della sottovoce notepad.exe sotto la chiave SilentProcessExit.

Screenshot dei valori delle chiavi di registro che mostra le informazioni relative al percorso di Notepad++ nel registro

Figura 2: Ricerca di "SilentProcessExit" tramite il sensore "Sottocategorie delle chiavi di registro".

Sensore: Sottovoci della chiave di registro Sottovoci della chiave di registro [HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SilentProcessExit] da tutti i computer

Per ogni sottochiave restituita dal sensore “Sottochiavi del Registro di sistema”, gli investigatori devono copiare il valore KeyPath e utilizzarlo come parametro del sensore “Nomi dei valori delle chiavi del Registro di sistema” per verificare l’esistenza di una voce “MonitorProcess” (vedere la Figura 3). Se è presente una voce "MonitorProcess", dovrebbe esserci anche la voce "ReportingMode".

Schermata delle sottochiavi della chiave di registro che mostra il percorso del file di Notepad++

Figura 3: Nome del valore della chiave di registro “sensor” utilizzato per individuare le sottochiavi.

Sensore: Nomi dei valori delle chiavi di registro Nomi dei valori delle chiavi di registro [HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SilentProcessExit\notepad.exe] da tutti i computer

Per determinare quale processo verrà eseguito per una determinata voce di MonitorProcess, è necessario fornire come parametri al sensore “Dati valore del Registro di sistema” sia il valore KeyPath ricavato dall’output “Sott chiavi del Registro di sistema” sia il nome del valore ricavato dall’output del sensore “Nomi dei valori del Registro di sistema” (vedere la Figura 4).

Schermata dei dati dei valori del Registro di sistema che mostra i valori relativi a Notepad++

Figura 4: Uscita del sensore dei dati dei valori del Registro di sistema.

Sensore: Dati dei valori del Registro di sistema Dati dei valori del Registro di sistema [HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SilentProcessExit\notepad.exe,MonitorProcess] provenienti da tutti i computer

Utilizzando il KeyPath e il Value Name provenienti dall’output del sensore come parametri per il sensore “Registry Value Data”, nella Figura 4 è possibile osservare la voce relativa a questo MonitorProcess, compreso il percorso in cui il processo è memorizzato sul disco.

Nella Figura 4 si osserva inoltre un esempio di occultamento di un file binario di processo all’interno di un flusso di dati alternativo (ADS). ADS è una funzionalità del file system NTFS , che gli autori degli attacchi possono utilizzare per nascondere file binari in modo che non siano visibili in Esplora Windows e né nei normali elenchi di directory visualizzati tramite cmd.exe e PowerShell.exe. Si noti la presenza del simbolo “:” nel nome del file binario del processo.

Il nostro eseguibile nascosto è incorporato all’interno della cartella o della voce di directory “ NTFS ”, C:\Windows , ed è stato denominato “cmd.exe”.

Attività passate

Grazie ai sensori " Tanium ", è possibile effettuare ricerche in queste specifiche posizioni del Registro di sistema su centinaia di migliaia di endpoint nel giro di pochi secondi.

Ma cosa accadrebbe se le voci del Registro di sistema fossero state rimosse in seguito all'attività iniziale? Non verranno visualizzati i sensori dello “stato attuale” mostrati sopra. Per effettuare una ricerca nei dati storici a livello aziendale, esamineremo il registro utilizzando i dati dell’ Tanium Trace .

Iniziamo esaminando la chiave di Registro di sistema SilentProcessExit per verificare se siano stati registrati eventi SetRegistryKey (cfr. Figura 5).

Tanium Trace chiave di registro che indica il rilevamento di una violazione della catena di approvvigionamento di Notepad++

Figura 5: Chiavi di registro " Trace " relative all'output del sensore "Valori".

Sensore: Trace Chiavi o valori del Registro di sistema Recuperare Trace Chiavi o valori del Registro di sistema [illimitato, 1523639748493|1523643347493, 0, 0, 10, 0, HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SilentProcessExit, , SetValueKey, , , ] da tutti i computer

La colonna “key” contiene una voce relativa all’eseguibile che, una volta terminato, determinerà l’avvio dell’eseguibile MonitorProcess. I dati della colonna delle chiavi espansa sono i seguenti: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SilentProcessExit\notepad.exe

Poiché Trace non registra i dati relativi ai valori, a questo punto sappiamo che un processo è stato configurato per attivare un altro processo, ma non sappiamo dove si trovi tale processo. Tuttavia, possiamo aprire una connessione in tempo reale tramite Trace e dare un’occhiata.

Segnalazione

Oltre a effettuare ricerche sullo stato attuale e sui dati storici dell’azienda, un Signal di Tanium Detect può fornire avvisi in tempo reale qualora tali chiavi di registro siano configurate secondo le modalità sopra descritte.

gruppo(Registry.key_path contiene '\\SilentProcessExit\\' E Registry.value_name contiene 'MonitorProcess’)

Una volta implementato questo Signal, ogni volta che un processo stabilisce la persistenza nella chiave “SilentProcessExit” creando una voce “MonitorProcess”, verrà generato un avviso in tempo reale nell’interfaccia Tanium Detect ; tali avvisi potranno essere inoltrati a SIEM o a sistemi di notifica.

Come per qualsiasi avviso di “ Tanium Detect ”, è possibile selezionare l’avviso e passare a una connessione live “ Trace” per approfondire l’analisi dell’attività (vedere la Figura 6). Qui vediamo in dettaglio l'attività del processo. In questo caso, il nostro processo dannoso è nuovamente incorporato come ADS, ma questa volta in una voce della directory C:\System.

Tanium Segnali di avviso relativi al rilevamento di configurazioni fantasma del processo

Figura 6: Avvisi relativi ai segnali e opzione per stabilire una connessione in tempo reale con Trace.

Successivamente, si visualizza la vista ad albero dei processi in Trace (cfr. Figura 7). È importante sottolineare che il processo padre del processo dannoso è WerFault.exe, ovvero il servizio “ Windows Error” ( Reporting ). Si noti inoltre che il processo dannoso viene avviato con lo stesso account utente e non come SYSTEM.

Tanium Risposta alla richiesta che mostra i dettagli dell'esecuzione del comando ` Windows `

Figura 7: Visualizzazione dei processi all’interno di “ Trace”.

L'hash del processo è evidenziato in rosso, a indicare che il servizio Tanium Reputation ha classificato questo file come dannoso.

A questo punto, possiamo utilizzare l’hash e i dettagli del file per accedere a Tanium Protect e impedire l’esecuzione futura di questo processo. È inoltre possibile ripulire il Registro di sistema e terminare eventuali processi in esecuzione utilizzando le normali azioni di “ Tanium ”.

Esempi di segnali

Di seguito sono riportati gli avvisi di Signal relativi all' Tanium Detect, corrispondenti alle diverse modalità di attivazione di questo meccanismo di persistenza (cfr. Figure 8-13).

Tanium Segnali che indicano il rilevamento del meccanismo di persistenza di PowerShell

Figura 8: Messaggio di avviso durante l'aggiunta della voce "MonitorProcess" tramite file batch.

Tanium Trace illustrazione della tecnica di fusione delle strutture del Registro di sistema ai fini della persistenza

Figura 9: Messaggio di avviso durante l'aggiunta della voce GlobalFlag tramite un file batch.

Tanium Avviso relativo alla configurazione "ghost" del processo tramite regedit

Figura 10: Avviso relativo all’aggiunta manuale della voce “MonitorProcess” tramite l’interfaccia grafica di Regedit.exe.

Tanium Segnali che indicano l'avvio di PowerShell come amministratore da Esplora risorse

Figura 11: Avviso relativo al segnale durante l'utilizzo di “ PowerShell ” per modificare il Registro di sistema.

Windows Editor del Registro di sistema che mostra il processo di creazione di un file di unione del Registro di sistema

Figura 12: File di registro con le modifiche alla configurazione.

Tanium Segnali che indicano la fusione di file di registro da Esplora Windows

Figura 13: L'integrazione del file di registro riportato nella Figura 12 ha generato questo avviso.

Un’altra osservazione. Un avviso di tipo “ IOC” visualizzerà l’ADS nella vista dettagliata, compreso l’arricchimento cromatico dell’hash, come illustrato nella Figura 14.

Tanium Trace visualizzazione dei dettagli relativi a cmd.exe e al processo di ProcessHacker

Figura 14: Risultato positivo della scansione “ IOC ” per il file binario in base all’hash.

Riepilogo

La procedura descritta nel presente articolo illustra come Tanium possa individuare rapidamente l’esistenza di un meccanismo di persistenza relativamente sconosciuto, analizzando lo stato attuale delle impostazioni del Registro di sistema, esaminando la cronologia delle modifiche apportate al Registro di sistema tramite Trace e, infine, configurando un sistema di avvisi in tempo reale per eventuali modifiche future a tali impostazioni. Se desiderate saperne di più, unitevi a me su Tanium nella comunità degli utenti e ne discutiamo insieme.

Le interessa vedere “ Tanium ” in azione? Fissate un appuntamento con per una dimostrazione individuale oppure partecipate al nostro webinar settimanale. Si rivolga ai nostri esperti di “ Tanium” in occasione dei nostri prossimi eventi “ ”.

Informazioni sull’autore: Scott Langendorf è direttore del team Tanium EDR . È entrato a far parte di Tanium nell’autunno del 2015 , dopo aver ricoperto il ruolo di Senior Manager presso una società di ingegneria globale oggetto di attacchi da parte di gruppi legati a Stati nazionali. Con otto anni di esperienza nel settore della sicurezza informatica, Scott è entrato a far parte di Tanium per contribuire allo sviluppo dei prodotti di sicurezza, riconoscendo l’importanza di una rapida visibilità sull’ endpoint , degli avvisi e dell’agilità dei dati per i team di difesa e di ricerca delle minacce. Ha inoltre lavorato presso la NASA al sistema di alimentazione elettrica della Stazione Spaziale e come responsabile IT nel settore energetico proprio nel periodo in cui la tecnologia APT1 stava appena facendo la sua comparsa.