2. Casi d'uso

I tipi di utilizzo ai quali è destinato il Coroner's Toolkit sono molteplici, ma volendo semplificare potremmo dire che gli scenari principali per i quali è designato il TCT sono due:

Nel primo caso l'intento principale è ottenere quante più informazioni è possibile sul sistema oggetto dell'indagine. Questo può essere necessario nel caso esso sia stato compromesso e stiamo cercando di comprenderne le cause. In particolare se il pc fa parte di una rete potremmo scoprire se è stato oggetto di un attacco. Oppure la macchina da analizzare potrebbe rivestire un ruolo importante nell'ambito di un'indagine forense e dunque si potrebbe avere bisogno di dati precisi circa il suo utilizzo recente. Oppure semplicemente si desidera avere una conoscenza approfondita sul funzionamento del sistema in modo da poterlo difendere da pericoli che riguardano la sicurezza in maniera più efficace.

Nel secondo caso invece si è verificata la perdita di file presenti su un supporto di memoria e si desidera recuperarli. Sono molteplici le volte in cui file vengono perduti. Basta pensare alle volte in cui un sistema viene attaccato e i dati vengono resi irraggiungibili all'utente. Altre volte è l'utente stesso a causare la scomparsa dei dati. Questo può accadere accidentalmente a causa di distrazione o di errori di valutazione, oppure volontariamente per nascondere documenti "compromettenti" agli occhi di autorità giudiziarie. Solitamente i documenti non vengono eliminati definitivamente dalla memoria, bensì vengono eliminati tutti i riferimenti ad essi. Pertanto, a meno che non si sia riscritto nei settori in cui era memorizzato, il file è ancora presente e integro, dunque recuperabile.

 

2.1 Analisi del Sistema

nPer poter raccogliere informazioni su di un sistema nel modo più preciso e completo possibile è necessario esaminare attentamente il contenuto dei seguenti dispositivi:
  • nDisco Rigido e Memorie di Massa

  • nMemoria Volatile

  • dDispositivi di Rete

n

Inoltre, è necessaria una serie di applicazioni che permetta di risalire a informazioni sullo stato del sistema quali ad esempio:

  • Il tipo e numero dei sistemi operativi utilizzati, e la presenza di eventuali aggiornamenti e/o pacchetti aggiuntivi.
  • nI programmi installati.
  • nLa configurazione del sistema.
n
n

L’analisi deve inoltre essere abbastanza precisa da permettere la comprensione dello stato del sistema anche a chi non ha familiarità con esso. Nel caso di indagini, deve anche essere specificamente orientata alla raccolta di informazioni da usare in ambito prettamente legale e deve poter essere eseguita anche su sistemi o memorie di massa difficilmente smontabili o trasportabili.

 
Al fine di effettuare una corretta indagine sul sistema non è quindi sufficiente recuperare i dati, ma è importante preservarne anche le informazioni temporali, ovverosia:
  • nData di creazione dei dati
  • nData dell’ultimo accesso
  • nData dell’ultima modifica

Questi dati sono tanto importanti in ambito forense quanto effimeri, in quanto sono modificati da moltissime tra le più banali operazioni eseguite sui file.

Per catturare tutte le informazioni che ci servono l'applicazione giusta è Grave-Robber. Esso si occupa della raccolta dei dati importanti del sistema, e per fare ciò lancia in successione la maggior parte degli altri tools del TCT.

Dunque per esaminare il sistema andremo a eseguire le seguenti operazioni:

  • se il sistema è attivo, lasciamo che rimanga tale. Altrimenti lo accendiamo.

  • se possibile effettuiamo l'accesso al sistema da root, in modo che possano essere analizzati anche eventuali dati non accessibili da utenti normali.

  • copiamo il contenuto del pacchetto del TCT in una cartella qualsiasi.

  • installiamo il software.

  • lanciamo il comando grave-robber. Di default, l’analisi viene eseguita sull’intero sistema.

Durante l’esecuzione, il Grave-Robber lancia una serie di moduli perl, la maggior parte dei quali si trova nella directory lib.
nLa raccolta delle informazioni viene eseguita secondo l’ordine di volatilità, il quale prevede che vengano analizzati e raccolti per primi i dati più effimeri e ad alto rischio di cancellazione o modifica.
nAd esempio, i dati in memoria sono privilegiati rispetto a quelli sul disco rigido.

La raccolti dei dati può richiedere molte ore, e qualsiasi operazione eseguita dal sistema rischia di alterare anche il contenuto dei dati sottoposti a indagine. nPer porre rimedio, il Grave-Robber evita appositamente di inviare comandi alla shell di Unix automatizzando tutta la procedura. Nonostante questo, a tutt’oggi è comunque impossibile fare in modo che l’analisi venga eseguita senza il minimo rischio per l’integrità dei dati.

Inoltre, tutta la procedura di raccolta dei dati viene eseguita sulla copia originale di questi ultimi e questo, indipendentemente da quanto sia rischioso che i dati vengano alterati o meno, va contro una regola base dell’analisi forense dei sistemi che vuole il minor numero possibile di operazioni eseguite sull’originale.
nAl fine di evitare di eseguire troppe operazioni sulla copia originale dei dati, è possibile attuare un procedura alternativa:
  • se il sistema è ancora attivo, spegnerlo.

  • smontare tutti i dischi rigidi del sistema.

  • montarli su un altro sistema, sul quale è installato TCT, con permessi di sola lettura.

  • eseguire una copia di sicurezza di tutti i dati.

  • smontare i dischi rigidi contenenti i dati originali.

  • lanciare il comando grave-robber con l'opzione -f.

Questa procedura però, sebbene protegga i dati temporali, causa la perdita di altre informazioni. Basta pensare a quelle relative ai processi attivi sulla macchina e ai dati contenuti nella memoria volatile. Dunque se la macchina è ancora accesa è preferibile evitare questa procedura. Se invece si è interessati soprattutto alle informazioni temporali dei file allora essa è raccomandata.

Il materiale raccolto da Grave-Robber è molto vario, e include:

  • Informazioni sui processi.

  • nInformazioni sulle periferiche (in particolare dischi e partizioni).

  • nFile di importanza rilevante (file di configurazione, file di log, altri file critici).

Prima della raccolta dei dati, Grave-Robber crea una cartella nella sottodirectory data, dandogli il nome del sistema esaminato.

                    Figura 1: all'interno della directory data viene creata una cartella che contiene l'output.

nAd eccezione del log degli errori e dei comandi, tutti il materiale trovato viene raccolto in questa cartella.

n
 

2.2 Recupero File

Nella maggior parte dei sistemi operativi, i file cancellati non vengono rimossi fisicamente dal disco rigido, ma semplicemente ogni riferimento a loro nel file system viene cancellato, cosicché lo spazio dove risiedono può essere nuovamente occupato da un qualsiasi tipo di dati. Finché questo non avviene, i dati cancellati sono tecnicamente ancora presenti e integri.
Sfortunatamente, la maggior parte dei sistemi, compreso Unix, non contemplano in alcun modo l’eventuale recupero dei dati cancellati. Qualsiasi informazione relativa a un file rimosso è inesorabilmente perduta. Per questo non è possibile nemmeno sapere dove effettivamente risiede un determinato file, e cercarlo implica la scansione dell’intero supporto di memoria. Ovviamente una tale operazione è dispendiosa in termini di tempo, senza contare che, se tale scansione non si esegue su un supporto di memoria offline, c’è un elevato rischio di compromettere le informazioni cercate.

Per risolvere il problema sono state create le applicazioni Unrm e Lazarus. Unrm esegue la scansione del disco rigido alla ricerca di dati grezzi non indicizzati dal filesystem, mentre Lazarus provvede a interpretare questi dati eseguendo dei test.

Le precauzioni da prendere prima di eseguire il recupero sono fondamentali. Qualsiasi operazione eseguita sul sistema, anche la più banale, rischia di sovrascrivere parti del disco rigido in cui possono trovarsi i dati che cerchiamo.

Per effettuare l'operazione di recupero, è necessario eseguire i seguenti passi:

  • Arrestare il sistema al più presto.

  • Smontare tutti i dischi rigidi che potrebbero contenere dati da recuperare e rimontarli con permessi di sola lettura.

  • Eseguire una copia di tutti i dati su di un altro disco rigido.

  • Smontare i dischi rigidi contenenti i dati originali.

  • Approntare un altro disco sul quale sia installato il TCT. Questo disco conterrà l'output dell'analisi, per cui la dimensione del suo spazio libero deve essere almeno pari a quella del disco che si va ad esaminare. E' consigliabile, comunque, che sia almeno pari al doppio. Generare l'output sullo stesso disco è pericoloso, perchè si va a sovrascivere facilmente spazio ancora non esaminato.

  • Lanciare unrm, che si occuperà di recuperare la porzione di dati grezzi su cui effettuare le ricerche volte al recupero. In generale questo avviene specificando l'unità interessata e la quantità di dati da recuperare. Conviene eseguirlo da root, in quanto urnm lavora a basso livello sulla macchina.

  • Lanciare lazarus sulla suddetta porzione.

 

E inoltre consigliabile avere molto tempo a disposizione: l'analisi può richiedere ore, e la sua durata varia a seconda della velocità della macchina e alle dimensione dello spazio che si va ad esaminare.

 

1)
2
3)
1
n