Come fare a...
Web
Come fare a...

Analisi forense di un sistema Windows

Registry, Thums.db e Event viewer

Pagine: Pagina precedente 2 di 4 Pagina successiva
Autore: Andrea Ghirardini e Gabriele Faggioli - Tratto: Computer forensics - Apogeo

Registry

Nei moderni sistemi Windows il registry si trova in più punti specifici del disco. La locazione dipende molto dalla versione di sistema operativo presente. In Windows 95/98/98SE i file di registry sono denominati User.dat e System.dat e sono posti nella directory dove è installato il sistema operativo (per default, \WINDOWS). In 98/98SE i profili (User.dat) degli utenti che non sono loggati nel sistema sono salvati nella directory \WINDOWS\PROFILE\[Nome utente].
Windows ME ha un file di registry in più che prende il nome di Classes.dat. Nei sistemi operativi derivati dalla famiglia NT (NT/2000/2003/XP/Vista/7/2008) il registry è salvato in \WINDOWS\SYSTEM32\CONFIG\. I file presenti sono Software, System, SAM, Security, Default. Oltre a questi esiste un file presente nella directory \Documents and Settings\[Nome utente]. Tale file prende il nome di NTuser.dat e contiene la porzione di codice che è presente in H_Key_Current_User. Questo file viene collegato dinamicamente al registry nel momento in cui l’utente effettua il login al sistema.
Il file SAM riveste una particolare importanza, dato che contiene la parte di accounting di Windows. Username e password sono infatti salvati al suo interno. Si ricorda che se il computer in esame facesse parte di un dominio Windows il file SAM contenente tutti gli account di rete sarebbe esclusivamente quello presente sui Domain Controller.
Il registry è un albero binario che contiene, in pratica, qualunque informazione riguardante le configurazioni all’interno di un sistema Windows. Tali configurazioni riguardano sia il sistema operativo, sia gli applicativi e le personalizzazioni fatte dagli utenti per il loro ambiente di lavoro.
Alcune applicazioni, specialmente quelle progettate per essere multipiattaforma, prediligono ancora l’uso di file di configurazione propri, da mettere nella home directory dell’utente posta in \Documents and Settings\[Nome utente], sotto le subdirectory Dati Applicazioni o Impostazioni locali.
L’albero parte con quattro sottorami principali, noti come Hive. L’albero è costruito a partire dai vari file presenti nelle directory sopramenzionate. Le Hive principali sono quindi le seguenti:

    • HKEY_CLASSES_ROOT. Contiene due tipi di informazioni:
      − dati che permettono di associare un file a uno specifico programma. Per ogni estensione di un nome di file vi è uno specifico sottoalbero dove sono registrate le applicazioni in grado di aprirlo;
      − dati di configurazione per i componenti COM, Visual Basic, automazione e scripting.
  • HKEY_CURRENT_USER. Questa Hive non contiene alcun dato ma è un semplice link al profilo dell’utente attualmente loggato. Il link punta al ramo \HKEY_USERS\[SID dell’utente loggato].
  • HKEY_LOCAL_MACHINE. Contiene informazioni relative alla configurazione del computer, inclusi i dati riguardanti l’hardware, lo stato del sistema operativo, i bus di sistema, i device driver e i parametri di startup.
  • HKEY_USERS. Vi si collegano (in sottoalberi identificati dal SID degli utenti) i profili (contenuti nei file NTuser.dat) degli utenti loggati nel computer.
  • HKEY_CURRENT_CONFIG. È un puntatore a un preciso subtree situato in HKEY_LOCAL_ MACHINE\SYSTEM\CurrentControlSet\CurrentControlSet\Hardware Profiles\Current.

Il registry è organizzato in Hive (le quattro classificazioni principali), sottoalberi (contengono solamente sottochiavi), sottochiavi (possono contenere chiavi e sottochiavi) e chiavi (sono delle coppie di valori espresse nella forma chiave valore).
Una chiave può contenere un valore appartenente a uno dei tipi di dati elencati in Tabella 2:

Tipo di dato Descrizione
REG_SZ Una stringa che termina con un carattere null (in gergo: nullterminated string).
REG_MULTI_SZ Un array di null-terminated string terminato esso stesso da due null consecutivi. Questo tipo di dato permette di introdurre valori multipli in una singola chiave del registry.
REG_EXPAND_SZ Una null-terminated string che contiene una reference a variabili di sistema.
REG_BINARY Dati binari di qualunque tipo.
REG_DWORD_LITTLE_ENDIAN Un numero compreso nell’intervallo 0 ÷ 4.294.967.295, salvato in formato little endian.
REG_DWORD_BIG_ENDIAN Un numero compreso nell’intervallo 0 ÷ 4.294.967.295, salvato in formato big endian.
REG_QWORD Un numero a 64 bit.
REG_QWORD_LITTLE_ENDIAN Un numero a 64 bit salvato in formato little endian.
REG_RESOURCE_LIST Una lista di risorse per un driver.
REG_FULL_RESOURCE_DESCRIPTOR Definisce una lista di risorse hardware impiegate da una periferica.
REG_RESOURCE_REQUIREMENTS_LIST Contiene una lista di risorse hardware gestibili da un device driver.
REG_LINK Link simbolico in Unicode. Usato internamente dal sistema.
REG_NONE Valore non appartenente a nessuno dei tipi citati sopra.

Tabella 2: tipi di dati propri della chiave del registry Tipo di dato Descrizione

Il registry di un sistema Windows può raggiungere dimensioni considerevoli (diverse decine di megabyte). Lo strumento deputato alla manipolazione del registry è regedit, che però, da un punto di vista strettamente forense, mostra presto i suoi limiti. È utile per cercare qualche chiave o per manipolare il registro per normali operazioni di amministrazione del sistema, ma è del tutto inadeguato in un’indagine. Esistono diversi programmi Open Source e commerciali che permettono all’investigatore di cercare all’interno del registry dati e keyword.
Regviewer di Chris Eagle, ad esempio, è un off-line registry viewer per la piattaforma Linux.Anche pyflag incorpora un apposito modulo per poter condurre ricerche esaustive all’interno del registry. pyflag per molti aspetti si dimostra un ottimo programma, in grado di rivaleggiare con il più noto Autopsy Browser. Fino a poco tempo fa l’unico limite rimaneva la GUI, il cui funzionamento era, talvolta, così contorto da scoraggiarne l’uso anche agli investigatori più caparbi. Ora con le ultime versioni il sistema sta diventando usabile.
Per la piattaforma Windows sono disponibili alcuni ottimi programmi. Paraben, società specializzata in software per l’analisi forense, rivende il software Registry Analizer 1.0 (fa parte anche della suite P2). Last Bit, nel suo Last Bit Software MegaPack, ha aggiunto alla suite un analizzatore di registry noto con il nome di “Alien Registry Viewer”. Quest’ultimo è specializzato nell’analisi dei file di registry che si trovano sull’hard disk, piuttosto che del registry posto in memoria nel sistema Live.
Possiamo anche citare WRR (Windows Registry Recover) della Mitec, ottimo tool sia nel caso vi siano delle riparazioni del registry da effettuare sia nel caso in cui si voglia analizzare il registry con uno strumento che sia più userfriendly dell’odioso database binario.
Che cosa si può trovare nel registry? Moltissimi dati utili, tra cui i file aperti di recente, le configurazioni peculiari dell’utente, il path verso molti applicativi e, non ultimo, le marcature con le quali Windows ha contrassegnato ogni singolo drive USB collegato al sistema. Pertanto, non solo si può fare un inventario preciso dei dispositivi che sono stati collegati al sistema, ma si può anche effettuare un test contrario, ovvero confrontare la marcatura presente sul drive rimuovibile (Windows marca ogni drive che riconosce e appone tale marcatura sul primo blocco del disco) e confrontarla con quanto presente nel registry al fine di vedere se tale drive è mai stato abbinato a quello specifico computer.
Ogni chiave del registro di sistema ha associata una serie di valori, tra cui quello di ultima modifica. Pertanto, è possibile ricostruire l’utilizzo del registry da parte del sistema e dell’utente nel corso del tempo o introdurre degli ulteriori parametri per consolidare una timeline di utilizzo del computer basata sul tempo.

Thumbs.db

Da Windows 98 in avanti il sistema crea dei file thumbs.db nelle directory dove siano presenti immagini. Questo permette di velocizzare le funzione di anteprima dei file stessi. All’interno dei file thumbs.db le immagini sono immagazzinate come una variante dei file BMP.
Per fortuna la sincronizzazione tra i file thumbs.db è ben lungi dall’essere perfetta, quindi spesso vi si trovano artifact relative a file non più presenti nel sistema, modificati o altro.
Praticamente la totalità dei software di analisi forense di tipo commerciale permettono di esaminare i file thumbs.db.
Per chi preferisce una soluzione di tipo Open Source il programma vinetto permette di esaminare i file in questione.
Si segnala che Windows Vista ha modificato il comportamento dei file thumbs.db che ora non sono più uno per directory ma sono concentrati in unico database per ogni utente presente all’interno del sistema.

Event viewer

Uno dei principali problemi che affligge la piattaforma Windows (NT e derivati) fin dal suo esordio è la configurazione di tutto ciò che è relativo alla sicurezza del sistema. In particolar modo, Windows è estremamente parco nella produzione di log (è un eufemismo per dire che Windows di fatto non logga praticamente nulla). Il sistema di logging standard di Windows è noto come Event viewer. Il sistema produce una serie di file con estensione evt, che possono essere analizzati appunto tramite il programma Event viewer. Di default, le politiche di accounting di Windows NT/2000/XP/Vista sono praticamente nulle. Quasi tutti gli eventi sono ignorati e quindi, molto spesso, il log di sicurezza è vuoto. Con Windows XP la configurazione di default prevede la registrazione della quasi totalità degli eventi. La difficoltà nel lavorare con questo sistema di logging è che ragiona per codici di errore. Molti messaggi contengono quasi esclusivamente il codice di errore e qualche parametro, quindi sia l’amministratore di sistema sia il computer forensics expert devono passare molto tempo online per riuscire a decodificare tali codici e rendere comprensibile il risultato.
Inoltre Windows non possiede un sistema che sia paragonabile al syslog di Unix. I log sono quindi mantenuti locali, macchina per macchina. Le correlazioni di eventi che possono avere interessato l’intera rete (come l’attacco di un worm) sono difficili da tracciare, visto che le informazioni sono frammentate.
Esistono programmi che tentano di superare queste limitazioni. La maggior parte di essi permette di centralizzare i log in un’unica macchina, che quindi agisce anche da correlatore, e migliorano drasticamente la leggibilità del sistema di log. Due esempi sono Event Log Explorer della FSPRO Labs e Winalysis della Winalysis Software.
Probabilmente un approccio più strutturato potrebbe essere quello di utilizzare un prodotto come Winlogd della Edoceo, che permette di trasformare gli eventi EVT in più comuni alert syslog. Questi possono essere collezionati in un syslog server e qui esaminati e correlati con uno dei molti software sviluppati allo scopo nel mondo Unix, oppure tramite degli script di ricerca scritti ad hoc per giungere allo scopo.
È bene comunque ricordare alcuni dei codici più interessanti che si possono trovare nell’Event viewer, visibili nella Tabella 3, in maniera da poter isolare gli eventi più significativi.

ID Descrizione
516 Alcuni eventi di audit sono stati disabilitati.
517 Log di audit creato.
528 Logon avvenuto con successo.
529 Logon fallito.
531 Logon fallito e account successivamente bloccato.
538 Logoff avvenuto con successo.
576 Assegnamento e utilizzo di diritti utente.
578 Utilizzo di un servizio privilegiato.
595 Accesso indiretto a un oggetto.
608 Cambiamento nelle policy dei diritti utente.
610 Nuovo trusted domain.
612 Cambiamento nelle politiche di audit.
624 Aggiunta di un nuovo account.
626 Account utente abilitato.
630 Account utente cancellato.
636 Account di gruppo variato.
642 Account utente variato.
643 Cambiamento nelle policy di dominio.

Tabella 3: principali codici riscontrabili nell’Event viewer ID Descrizione
Continua: Pagina precedente 2 di 4 Pagina successiva
Condividi

Apogeo

Vedi anche...

Sempre aggiornato





Abbonati alla newsletter di Come fare a... Sottoscrivi l'RSS di Come fare a... Usi Windows Live Messenger? Abbonati ai nostri Windows Live Alerts Diventa fan di Come fare a... su Facebook Seguici su Twitter Scarica il Widget per Mac OS X