30 gennaio 2008

Analisi forense su Oracle - dump dei file di log

La prima delle tecniche di analisi forense di cui parlerò è basata sull'esportazione (dump) del contenuto dei Redo Logs in formato ASCII. Oracle salva i file di log in forma binaria, per cui non possono essere letti direttamente. Con i log riportati in formato ASCII è possibile ricostruire la sequenza di operazioni compiute durante la violazione, facendo ampio ricorso alle espressioni regolari per la ricerca nel testo.

Per ottenere l'esportazione occorre inviare il comando :

alter system dump logfile 'pathcompletodelfile'

Si noti che il path del file di log deve essere incluso tra apici. Inoltre occorre ovviamente possedere i necessari privilegi per la alter system. È anche possibile limitare l'esportazione a una porzione dei dati, specificando gli
estremi iniziale e finale di data temporale, di indirizzi di blocchi di dati o di indirizzi di record di redo (identificati da un numero di sequenza e un numero di blocco).

L'esportazione può essere fatta anche da un database esterno (soluzione preferibile in ambito investigativo), purché entrambe le istanze appartengano alla stessa versione di Oracle.

Per identificare il Redo Log corrente si può usare il seguente codice:

SELECT member FROM v$logfile WHERE group# = (SELECT group# FROM v$log WHERE status = 'CURRENT');

La tecnica di dump, pur essendo relativamente banale e quindi adatta ai casi più semplici, non è purtroppo sempre attuabile. L'investigatore potrebbe non avere accesso a un server Oracle per effettuare l'esportazione; e l'ipotesi di utilizzare il DB server violato è da scartare, perché l'operazione di dump scrive ampie sezioni di disco: si potrebbero distruggere elementi essenziali alle indagini, quali le tracce di file cancellati dall'aggressore.

Inoltre, quando il LogWriter passa da un file di log al successivo per esaurimento dello spazio assegnato (vedi post precedente), il log sequence number viene incrementato. Poiché il dump del file esporta solo i record corrispondenti al numero di sequenza corrente, esso ignora i record registrati con i numeri di sequenza precedenti, facendo così perdere delle evidenze che potrebbero essere importanti.

Infine, dalla versione 9 di Oracle il testo dei comandi DDL quali CREATE, ALTER, DROP, GRANTREVOKE, pur essendo registrato nei Redo Logs, non viene esportato dall'operazione di dump. Ciò sottrae all'investigatore degli elementi fondamentali, limitandone l'operato.

Nonostante questi ostacoli, il dump dei log rimane valido per una prima ricognizione. In effetti, più che dagli investigatori forensi, viene spesso utilizzato dai DBA per operazioni di ripristino a seguito di operazioni errate. Dal prossimo post, comunque, esamineremo strumenti e tecniche più efficaci per l'analisi forense su Oracle.

Nessun commento: