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:
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!
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:
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.
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.
All’interno della directory “Cache” sono presenti due tipologie di files:
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!
Come mostrato, dall’analisi della Cache Bitmap del Desktop Remoto l’IRT può raggiungere diversi obiettivi, come:
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: [email protected]
© Copyright RED HOT CYBER. PIVA 16821691009