Red Hot Cyber
La cybersecurity è condivisione. Riconosci il rischio, combattilo, condividi le tue esperienze ed incentiva gli altri a fare meglio di te.
Cerca

Bitmap Cache RDP: from Zero to Hero. “L’ancora di salvataggio” di molte incident response

Redazione RHC : 27 Giugno 2023 07:50

Autore: Fabrizio Rendina ( Head of SOC presso Swascan)

L’analisi della Bitmap Cache del Desktop Remoto come arma in più per l’Incident Response Team
In un mondo in cui la Cyber Security e il Cyber Crime si evolvono a ritmi paralleli, il valore dell’informazione e della tecnica rappresenta la chiave di volta capace di determinare il successo o il fallimento di un attacco. Proprio per questo motivo, gli attaccanti di tutto il mondo combattono costantemente contro il tempo. Scoprire una nuova vulnerabilità vuol dire puntare i riflettori ed eventualmente chiudere una falla del sistema, muoversi in tempo e sfruttare la stessa vulnerabilità prima che questa venga scoperta rappresenta invece quella finestra d’azione determinante per portare a termine un attacco. Proprio per questo motivo gli attaccanti cercano in tutti i modi di coprire le proprie tracce, nascondendo il loro modus operandi e lanciando un ulteriore guanto di sfida verso un altro vitale componente della CyberSecurity: l’Incident Response Team (IRT).

L’IRT è formato da un team di esperti di CyberSecurity che appunto, come moderni Sherlock Holmes, tentano in tutti i modi di ricostruire l’accaduto, cercando di capire il punto di ingresso, i movimenti laterali, le azioni svolte dall’attaccante, quali Tecniche, Tattiche e Procedure siano state utilizzate… e quali dati siano stati trafugati.

Sei un Esperto di Formazione?
Entra anche tu nel Partner program!
Accedi alla sezione riservata ai Creator sulla nostra Academy e scopri i vantaggi riservati ai membri del Partner program.
Per ulteriori informazioni, scrivici ad [email protected] oppure su Whatsapp al 379 163 8765 

Supporta RHC attraverso:


Ti piacciono gli articoli di Red Hot Cyber? Non aspettare oltre, iscriviti alla newsletter settimanale per non perdere nessun articolo

Per fare investigazioni servono dati, servono log, servono eventi, meglio ancora se l’IRT possa avere a disposizione un SIEM in grado di catalizzare tutte le informazioni di Security. Ma le cose non vanno sempre come dovrebbero andare: e si sa che, per la legge di Murphy, se qualcosa non può andare male… andrà male lo stesso.

È venerdì, e una mail comunica al CISO che quel budget che il CFO aveva promesso per comprare un SIEM e per avviare finalmente il monitoraggio con un SOC as a Service verrà sbloccato il successivo lunedì. Il CISO va a casa soddisfatto, almeno per il weekend.

Perché la mattina del lunedì, entrando in ufficio, i ragazzi dell’Helpdesk arrivano di corsa gridando che il disastro è accaduto la domenica: qualcuno è entrato nei Server, i servizi Web non funzionano più e una strana richiesta di riscatto campeggia su tutti i Desktop delle macchine rimaste accese.

Ed ecco che viene ingaggiato l’IRT che in men che non si dica si connette all’infrastruttura compromessa ed inizia le indagini. Dall’analisi dei log del Firewall, si nota una connessione in Remote Desktop effettuata in orario notturno, dal server SRV01 verso il Domain Controller DC01.

L’IRT si connette quindi a bordo del server SRV01 per analizzare i log dell’Event Viewer di Windows, e qui la “sorpresa”: l’attaccante ha eliminato tutti i log!

…analisi terminata?

…Neanche per sogno! 

Ricostruire la timeline in assenza di log

Fortunatamente, il registro degli eventi di Windows (visionabile mediante l’Event Viewer) non è l’unico database che tiene traccia degli eventi importanti che si verificano nel computer. Esistono (fortunatamente) molti altri files e luoghi che possono essere di aiuto per effettuare investigazioni forensi, come:

  • Registro di sistema
  • File di registro di internet Explorer (Internet Explorer Logs) presenti nella cartella %userprofile%\AppData\Local\Microsoft\Internet Explorer\IECompatCache 
  • File di registro dell’utente (User Log Files), posizionati nel percorso %userprofile%\AppData\Local o %userprofile%\AppData\Roaming e che possono variare a seconda delle applicazioni ed attività utilizzate.

E proprio nella cartella “%userprofile%\AppData\Local”, più nello specifico al percorso “%userprofile%\AppData\Local\Microsoft\Terminal Server Client\Cache”, è presente la Remote Desktop Bitmap Cache.

Remote Desktop Bitmap Cache – in teoria

La Remote Desktop Bitmap Cache è una memoria temporanea che il protocollo Remote Desktop Protocol (RDP) utilizza per conservare le immagini bitmap durante una sessione di connessione remota: quando un utente si collega a un computer remoto tramite RDP, l’interfaccia grafica del computer remoto viene inviata al client RDP come una serie di immagini bitmap. Queste immagini bitmap rappresentano il desktop, le finestre, le icone e altri elementi visivi del computer remoto.

La Remote Desktop Bitmap Cache viene utilizzata per ridurre il traffico di rete durante una sessione RDP. La cache memorizza infatti le immagini bitmap ricorrenti presenti nel desktop remoto. Ad esempio, se un utente sposta una finestra o apporta modifiche al desktop, solo le parti dell’immagine bitmap interessate vengono inviate tramite la rete. Le parti immutate vengono recuperate dalla cache locale del client RDP, evitando la trasmissione ripetuta dal computer remoto.

L’impiego della Remote Desktop Bitmap Cache migliora le prestazioni delle connessioni remote, riducendo il carico di rete e accelerando il rendering delle immagini sul client RDP. La dimensione della cache può variare in base alle impostazioni e alle risorse di sistema configurate: una cache più grande può contenere una maggiore quantità di immagini bitmap, consentendo una maggiore efficienza nella trasmissione delle immagini durante la sessione RDP.

Remote Desktop Bitmap Cache – in pratica

All’interno della directory “Cache” sono presenti due tipologie di files:

  • .bin
  • .bmc

Questi file contengono al loro interno una serie di “tessere bitmap”, della grandezza di 64×64 pixel, che corrispondono alle immagini salvate all’interno della cache. Per estrarre queste “tessere” e renderle ognuna una immagine a sé stante, è possibile utilizzare diversi script. Uno dei più veloci ed efficienti è uno script in Python chiamato “bmc-tools” (https://github.com/ANSSI-FR/bmc-tools) e realizzato dall’Agenzia Nazionale per la Sicurezza dei Sistemi Informativi (ANSSI) francese.

Lanciando questo tool e dandogli in input i files .bin e .bmc presenti nella cartella “Cache”, vengono restituiti in output tantissimi files “.bmp”:

Per avere una visione chiara del contenuto della Cache RDP, ciò che può aiutare è utilizzare un tool che permetta di posizionare i tasselli all’interno di una scacchiera, muovendoli come se si trattasse di un puzzle (ma non senza errori) suggerendo anche quale tassello posizionare vicino ad uno già inserito (basandosi unicamente su similitudini cromatiche).

Uno dei tool che fa egregiamente questo lavoro è RdpCacheStitcher (https://github.com/BSI-Bund/RdpCacheStitcher), sviluppato dalla BSI, l’agenzia governativa responsabile per la sicurezza informatica della Germania. Una volta avviato, presenta la seguente interfaccia:

Dal menù “File” — “New Case” è possibile definire la directory del proprio PC contenente tutte le bitmap estratte in precedenza. Queste verranno posizionate all’interno della sezione “Tile Store”, nella parte inferiore dell’interfaccia:

Selezionando col tasto sinistro del mouse uno dei tasselli BMP e selezionando una qualsiasi casella vuota del tabellone centrale, è possibile iniziare la costruzione dell’immagine:

A quel punto cliccando sul pulsante “Autoplace” in alto, il programma posizionerà automaticamente il tassello più corretto vicino al primo tassello già messo:

Qualora, invece, si volesse procedere con un’aggiunta “manuale”, è possibile selezionare uno dei riquadri grigi confinanti con i tasselli già inseriti e, nel riquadro di destra, verranno automaticamente mostrati tutti i tasselli che per forma e colori dei contenuti abbiano le più alte probabilità di essere i tasselli corretti:

Semplicemente facendo mouse-over sui tasselli di destra, verrà mostrata a video l’anteprima della ricostruzione, così da permettere all’analista di valutare efficacemente il risultato: premendo poi sul tassello scelto, verrà svuotata la colonna di destra e il nuovo tassello verrà aggiunto:

Tassello dopo tassello, immagine bitmap dopo immagine bitmap… il Puzzle prende forma, permettendo all’analista di ricostruire l’accaduto, di vedere quali tool siano stati lanciati dall’attaccante:

O quali comandi siano stati dati all’interno di un terminale, come la disabilitazione dell’Antivirus:

O la connessione tramite PsExec e l’apertura remota di una Shell di comandi:

O il comando per la rimozione dei backup di sistema:

Per poter ricostruire le schermate “originali” salvate nella Cache, c’è comunque bisogno di tempo e di un lavoro meticoloso: possono volerci anche svariati giorni per riuscire ad ottenere informazioni “fruibili” per l’analisi degli eventi, vista la quantità di tasselli BMP che possono essere contenuti nella cache (nell’ordine delle migliaia, o decine di migliaia, di immagini).

Ma è altamente probabile che il gioco valga la candela

Remote Desktop Bitmap Cache – i vantaggi

Come mostrato, dall’analisi della Cache Bitmap del Desktop Remoto l’IRT può raggiungere diversi obiettivi, come:

  • Ricostruire l’attività dell’attaccante: l’analisi della cache di bitmap consente di visualizzare le immagini del desktop remoto, le finestre aperte e gli elementi visivi, aiutando a comprendere le azioni eseguite dall’utente remoto durante la sessione di connessione RDP. 
  • Identificare indicatori di compromissione (IoC): l’analisi della cache di bitmap può rivelare applicazioni, finestre o schermate sospette o non autorizzate. Questi possono essere segni di una compromissione del sistema o di attività malevole che, una volta aggiunti come IoC all’interno degli strumenti di monitoraggio, permettono di identificare e rispondere prontamente ad una violazione della sicurezza.
  • Rilevare attività anomale o non autorizzate: esaminando la cache di bitmap, è possibile individuare attività inusuali o non autorizzate eseguite dall’utente remoto. Ad esempio, l’apertura di applicazioni insolite, l’accesso a file o documenti riservati o l’utilizzo di strumenti “non abitualmente consentiti”, sono tutti comportamenti che possono aiutare a comprendere l’entità e la natura dell’incidente.
  • Ricostruire la sequenza degli eventi: l’analisi della cache di bitmap consente di ricostruire la sequenza degli eventi durante la sessione RDP. Ciò può aiutare a determinare l’ordine delle azioni eseguite dall’attaccante, ad esempio le finestre aperte o le modifiche al desktop. Questa ricostruzione temporale può fornire una visione chiara degli eventi e delle attività connesse. 

Conclusioni

In definitiva, è importante sottolineare che anche se analizzare la Cache di bitmap del desktop remoto richiede tempo e impegno, i risultati ottenuti ne giustificano lo sforzo, a patto di aver condotto una doverosa analisi in precedenza in modo da puntare esattamente all’host corretto.

Questo processo laborioso permette di scoprire informazioni preziose sull’attività dell’utente, rilevare indicatori di compromissione e ricostruire la sequenza degli eventi durante una sessione RDP. Nonostante possa sembrare un compito lungo e dettagliato, dedicare tempo all’analisi della cache offre la possibilità di ottenere prove cruciali e supporta una risposta efficace agli incidenti. 

E in assenza di altri log (frequentemente rimossi dall’attaccante), può considerarsi un’àncora di salvataggio per ricostruire con esattezza la kill chain attack utilizzata. Perché la Cyber Security è tutta una questione di dettagli, soprattutto per chi difende: concentrarsi su di essi senza tralasciare nulla, può quindi essere la chiave di volta per risolvere anche gli Incident più complessi, o per fare la differenza tra una difesa solida e una vulnerabilità esposta.

E permettere così al CISO (e non solo a lui) di arrivare in ufficio il lunedì mattina con qualche (piccola) preoccupazione in meno.

Redazione
La redazione di Red Hot Cyber è composta da un insieme di persone fisiche e fonti anonime che collaborano attivamente fornendo informazioni in anteprima e news sulla sicurezza informatica e sull'informatica in generale.