Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Computer forensics e investigazioni, Sbobinature di Sicurezza Dei Sistemi Informativi

Appunti presi in aula - parte di Giacci

Tipologia: Sbobinature

2019/2020

Caricato il 02/07/2020

_Martins_
_Martins_ 🇮🇹

3.3

(3)

5 documenti

1 / 38

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
Computer forensics - Giacci Martina Fantini
08/10/2018 Giacci
Digital Forensic
Aspetti generali
È importante svolgere un sistema di indagini in modo corretto, cioè senza alterare/modificare le prove:
acquisizione corretta delle prove, in modo da non contaminarle, rispettando il loro stato e che nessuno si possa
opporre alla correttezza del nostro processo.
Ci si muove in un ambito nuovo e molto delicato, bisogna essere molto informati per non passare da tecnico
a imputato.
(Intercettazione ambientale (registrare conversazioni di cui non si fa parte) è permessa solo alle forze
dell’ordine (reato penale, 3-5 anni))
Compito principale:
Ci occupiamo di 3 aspetti:
1. Preservazione (della prova, come la gestisco);
2. Identificazione (della prova dove posso trovare prove);
3. Analisi (dei contenuti digitali racchiusi all’interno di un dispositivo di elaborazione, ma più in
generale all’interno di un sistema informativo (pc, rete, switch configurabili…)).
In particolare, ci si può trovare in due diverse posizioni:
1. Perito di parte non esegue tutte le 3 fasi perché lavora su perizie già fatte per contestarne l’analisi;
2. Perito di procura chiamato dalla procura ed esegue tutte le fasi.
Obiettivo: evidenziare l’esistenza di prove utili allo svolgimento dell’attività investigativa.
Ad esempio, dobbiamo stabilire se è stato fatto l’accesso ad un certo sito: non sequestro il mouse, lo schermo,
ecc, ma ci si limita all’analisi da effettuare, quindi solo il disco del pc. Ci sono anche casi in cui si sequestra
tutto, però, in generale, le prove devono essere limitate.
Al posto del sequestro, si può anche copiare la prova senza interrompere l’attività del professionista ed
incorrere in danni economici. In alcuni casi, la tastiera è sequestrata se, ad esempio, si vuole avere un campione
biologico che non rientra nella nostra perizia, ma nelle indagini.
In ogni caso, tutti gli ordini di sequestro sono impartiti dal giudice.
Metodologia di lavoro: Bisogna applicare una metodologia di lavoro ben definita, che consiste in una
piattaforma di comportamenti da attuare:
Normalizzazione dei risultati, al fine di ottenere risultati simili per perizie differenti (copia, valida la
copia, osserva la partizione, guarda i file nascosti, ecc);
Controparte, (essere inattaccabile) evitare l’invalidazione del lavoro svolto per vizi di forma
Verificabilità, i periti di parte avversa verificano i risultati esposti dagli investigatori
Il continuo mutamento del mondo della tecnologia e le molteplici soluzioni/prodotti offerti dall’industria
tecnologica rendono difficile stabilire una metodologia di lavoro applicabile in tutti i contesti. L’unico aiuto è
l’esperienza. In questo caso, stabilire delle procedure è come stabilire delle funzioni virtuali e ne rimando
l’implementazione che può variare da un girno all’altro. -> nel senso che non c’è un algo prestabilito ma solo
delle linee guida generali, dovute alla continua evoluzione delle tecnologie (ex. La nascita di Huawei, tutti
crittografati).
La Digital Forensic opera, quindi, anche per stabilire procedure collaudate che, nei diversi contesti, permettano
l’identificazione e l’analisi dei contenuti digitali.
Ad esempio, se dobbiamo prendere delle prove dai social, si deve verificare il Server (quindi che sia valido)
identificandolo, vedere il tracciamento di rete verso il Server, far vedere che si sta usando Internet e alla fine
dimostrare cosa c’è scritto. Bisogna certificare il momento in cui avviene la perizia, quindi l’uso del Server
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26

Anteprima parziale del testo

Scarica Computer forensics e investigazioni e più Sbobinature in PDF di Sicurezza Dei Sistemi Informativi solo su Docsity!

08/10/2018 Giacci

Digital Forensic

Aspetti generali

È importante svolgere un sistema di indagini in modo corretto, cioè senza alterare/modificare le prove: acquisizione corretta delle prove, in modo da non contaminarle, rispettando il loro stato e che nessuno si possa opporre alla correttezza del nostro processo. Ci si muove in un ambito nuovo e molto delicato, bisogna essere molto informati per non passare da tecnico a imputato. (Intercettazione ambientale (registrare conversazioni di cui non si fa parte) → è permessa solo alle forze dell’ordine (reato penale, 3-5 anni))

Compito principale:

Ci occupiamo di 3 aspetti:

  1. Preservazione (della prova, come la gestisco);
  2. Identificazione (della prova → dove posso trovare prove);
  3. Analisi (dei contenuti digitali racchiusi all’interno di un dispositivo di elaborazione, ma più in generale all’interno di un sistema informativo (pc, rete, switch configurabili…)). In particolare, ci si può trovare in due diverse posizioni:
  4. Perito di parte → non esegue tutte le 3 fasi perché lavora su perizie già fatte per contestarne l’analisi;
  5. Perito di procura → chiamato dalla procura ed esegue tutte le fasi.

Obiettivo: evidenziare l’esistenza di prove utili allo svolgimento dell’attività investigativa.

Ad esempio, dobbiamo stabilire se è stato fatto l’accesso ad un certo sito: non sequestro il mouse, lo schermo, ecc, ma ci si limita all’analisi da effettuare, quindi solo il disco del pc. Ci sono anche casi in cui si sequestra tutto, però, in generale, le prove devono essere limitate. Al posto del sequestro, si può anche copiare la prova senza interrompere l’attività del professionista ed incorrere in danni economici. In alcuni casi, la tastiera è sequestrata se, ad esempio, si vuole avere un campione biologico che non rientra nella nostra perizia, ma nelle indagini. In ogni caso, tutti gli ordini di sequestro sono impartiti dal giudice.

Metodologia di lavoro: Bisogna applicare una metodologia di lavoro ben definita, che consiste in una

piattaforma di comportamenti da attuare:

  • Normalizzazione dei risultati, al fine di ottenere risultati simili per perizie differenti (copia, valida la copia, osserva la partizione, guarda i file nascosti, ecc);
  • Controparte, (essere inattaccabile) evitare l’invalidazione del lavoro svolto per vizi di forma
  • Verificabilità, i periti di parte avversa verificano i risultati esposti dagli investigatori Il continuo mutamento del mondo della tecnologia e le molteplici soluzioni/prodotti offerti dall’industria tecnologica rendono difficile stabilire una metodologia di lavoro applicabile in tutti i contesti. L’unico aiuto è l’esperienza. In questo caso, stabilire delle procedure è come stabilire delle funzioni virtuali e ne rimando l’implementazione che può variare da un girno all’altro. - > nel senso che non c’è un algo prestabilito ma solo delle linee guida generali, dovute alla continua evoluzione delle tecnologie (ex. La nascita di Huawei, tutti crittografati). La Digital Forensic opera, quindi, anche per stabilire procedure collaudate che, nei diversi contesti, permettano l’identificazione e l’analisi dei contenuti digitali. Ad esempio, se dobbiamo prendere delle prove dai social, si deve verificare il Server (quindi che sia valido) identificandolo, vedere il tracciamento di rete verso il Server, far vedere che si sta usando Internet e alla fine dimostrare cosa c’è scritto. Bisogna certificare il momento in cui avviene la perizia, quindi l’uso del Server

NTP (Network Time Protocol), che definisce i vari orari nel mondo, che danno un filmato delle operazioni di perizia. Per questo non è possibile stabilire un algoritmo, ma solo delle linee guida. Per far ciò possiamo usare sia Software open source che Software commerciali.

Open source vs. prodotti commerciali:

  • entrambe le scelte hanno i propri limiti;
  • un approccio misto conduce verso la conoscenza di un maggior numero di strumenti che unitamente incrementano le possibilità di giungere ad una analisi completa e corretta, per effettuare soprattutto casistiche eterogenee.

I prodotti commerciali, perché:

  • implementano procedure per l’analisi dei dati orientate alla facilità d’uso che velocizzano quindi la fase di investigazione;
  • forniscono report esaustivi che possono essere prodotti con immediatezza;
  • alcuni di essi sono già noti alle procure e alle forze di polizia che quindi ne accettano di buon grado le risultanze;
  • però si pagano.

I prodotti open source, perché:

  • sono disponibili in codice sorgente , si può quindi dimostrare l’assenza di istruzioni sabotatrici (esempio di calcolo delle funzioni hash);
  • sono distribuiti senza vincoli , è possibile quindi includerli nella perizia, all’interno della raccolta delle evidenze, per garantire trasparenza e verificabilità;
  • la pluralità di tools, disponibili nel mondo open source, garantisce maggiore probabilità di individuare il corretto strumento di analisi;
  • la pluralità di tools, disponibili nel mondo open source, permette di dar luogo ad una singola analisi con più strumenti per confrontare le risultanze;
  • però i calcoli sono fatti da noi. ACQUISIZIONE DEL DATO Nel nostro caso, la prova da identificare è la prova digitale.

Prova digitale: Il dato rappresentato in formato digitale è l’elemento su cui si concentra lo svolgimento

dell’analisi investigativa, si può trattare di:

  • immagini e documenti digitali
  • cronologia delle applicazioni (web browser, file recenti...)
  • file di log
  • file del sistema operativo (registri, file di swap ...)
  • database delle applicazioni (whatsapp, client di posta ...)
  • contenuto della memoria RAM
  • contenuto di una pagina web (social network, giornali on line, ...)
  • ed altro...

MODALITA’ DI ACQUISIZIONE

  • Sequestro , acquisizione fisica del supporto su cui risiede il dato.
  • Duplicazione , copia forense dei contenuti digitali che vengono quindi riversati su un altro supporto.
  • Intercettazione , acquisizione dei dati trasmessi tra due sistemi distinti. (L’intercettazione forense rispetta delle caratteristiche particolati come la non invasività per preservare lo stato dei luoghi e la trasparenza, perché non deve modificare lo stato di rete.)

prova di luce; per memory card e USB disk c’è lo switch hardware per la protezione da scrittura ed il sacchetto antistatico + involucro antiurto. PRESERVARE LA PROVA NEL SEQUESTRO DI PERSONAL COMPUTER Si prevede che il pc sia spento al momento del sequestro.

  • Se è acceso dobbiamo salvarne lo stato, quindi bisogna rilevare l’orario visualizzato dall’elaboratore e segnalare un eventuale scostamento con l’ora esatta
  • Se l’elaboratore è accesso potrebbe risultare necessario evidenziare la flagranza di reato
    • Copia dei contenuti della RAM (dev’essere effettuata live su Helix, ma non si può ripetere perché lo stato viene alterato) (Attenzione: procedura irripetibile!!) (Tutte le procedure irripetibili devono essere autorizzate dal giudice per il rispetto dei diritti della controparte.) Evitare lo shutdown della macchina in quanto tale procedura altera lo stato dell’hard disk e potrebbe sovrascrivere contenuti determinanti, quindi occorre ricorrere alla disalimentazione. Alcune considerazioni sulla disalimentazione del personal computer:
  • sincronizzare la cache in scrittura (rsync)
  • eseguire l’operazione di gracefully shutdown dei database server (gestione servizi)
  • copiare il contenuto dei file system crittografati
  • procedere anche nella copia dei dati in presenza di hard disk obsoleti e quindi più probabilmente danneggiabili dalla improvvisa disalimentazione elettrica
  • Conservare i dispositivi sequestrati all’interno di imballaggi adatti a proteggere il materiale da cariche elettrostatiche ed urti
  • Apporre sigilli in grado di evidenziare le manomissioni

17/10/2018 Giacci

PRESERVARE LA PROVA NEL SEQUESTRO DEI DISPOSITIVI MOBILI

Attività generali:

  • Documentare le informazioni presenti sullo schermo del dispositivo
  • Registrare data/ora del dispositivo e segnalare un eventuale scostamento con l’ora esatta
  • Non navigare nel menu Lo spegnimento del dispositivo potrebbe comportare l’attivazione del codice di autenticazione del telefono (PIN della scheda SIM e/o codice di sblocco del telefono). La non reperibilità dei codici può comportare il blocco di fatto dell’analisi forense. Per questo si tiene il telefono sempre acceso, ma lo si isola dalle reti. L’ isolamento del telefono comporta un maggior consumo di batteria poiché il dispositivo cercherà continuamente una rete a cui connettersi. L’isolamento prevede l’utilizzo di una fonte di carica ausiliaria (una batteria tampone da collegare al telefonino). N.B.: Il giudice deve dare il permesso per ogni azione di “sblocco” del dispositivo. Metodologie di isolamento
  • Utilizzo di Jammer → è un disturbatore di frequenze. Disturba le frequenze della comunicazione che viene stabilita, ad esempio, tra il telecomando e la macchina. Così, il proprietario della macchina credeva di averla chiusa ed andava via, invece era aperta. Ha un raggio d’azione che può andare da qualche metro fino a diversi chilometri. Riproduce un segnale portante sull’intera banda utilizzata dai canali di comunicazione. Il suo utilizzo è controverso in quanto l’impiego, ma anche il solo possesso

è vietato in molti Paesi della Comunità europea, Italia compresa (Artt. 340, 617 e 617 bis del Codice Penale).

  • Utilizzo di gabbia di Faraday → è un contenitore che isola elettromagneticamente qualsiasi dispositivo in esso contenuto. L’isolamento non è perfetto. Il segnale è però notevolmente ridotto. (Ha anche l’attacco per la batteria tampone).
  • Modalità Airplane → Un dispositivo posto in modalità Airplane disattiva tutte le forme di comunicazione da esso supportate. Limita l’utilizzo della batteria, ma richiede l’interazione con il dispositivo, attività che potrebbe condurre ad errori in mancanza di familiarità con il sistema operativo. (Azione più semplice da fare). COSA REQUISIRE NEL SEQUESTRO DEI DISPOSITIVI MOBILI
  • cavi di connessione e caricabatteria
  • memorie di massa o rimovibili
  • confezione della SIM poiché riporta PIN e PUK
  • supporti contenenti il software del telefono
  • manuali d’uso
  • bollette telefoniche (non sappiamo quali e quanti numeri ha)

DUPLICAZIONE

QUANDO È NECESSARIO IL RICORSO ALLA DUPLICAZIONE

Questa attività si deve fare sempre. Se si sequestra un disco si deve fare la duplicazione perché si lavora su essa e MAI sull’originale. Alcuni casi che inducono al ricorso della duplicazione dei supporti:

  • dimostrare la flagranza di reato;
  • sistemi crittografici → Vai ad un computer ed è acceso, ci si accorge che ha un file system crittografato, non si può spegnere il computer perché non si dispone della password. Quindi si ricorre alla duplicazione del file system prima di spegnere il computer;
  • sistemi operanti H2 4 → non si possono spegnere (Banche). Inoltre, il giudice deve fare lo spegnimento. Quindi, anche qui, occorre la duplicazione. REQUISITI DELLA DUPLICAZIONE
  • Validazione , deve essere accertata la corrispondenza tra originale e copia (uguale bit a bit, senza difformità);
  • Conformità , dalla copia deve essere possibile ricreare un supporto identico. Quindi copia dell’intera struttura logica: MBR, Partition Table, spazio “libero”... Come si valida? Con gli algoritmi di hash. Gli algoritmi di hash rappresentano uno strumento utile a garantire la validazione del duplicato. Un algoritmo di hash assicura quasi certamente :
  • l'assenza di collisioni : due file differenti non producono impronte digitali uguali;
  • non invertibilità , non esiste un algoritmo che permette di modificare un file nella forma voluta e che nel contempo produca una specifica impronta digitale. METODI DI VALIDAZIONE (MD5 + SHA1) Si fa fronte alla assenza dell’assoluta certezza applicando sulla stessa evidenza digitale due diversi algoritmi di hash, MD5 e SHA1. Si ottengono quindi due diverse impronte digitali che rafforzano i concetti di assenza di collisione e non invertibilità. (All’interno della perizia riporto le firme. Il perito che opera sulla prova calcola l’impronta e le compara per sapere se sta lavorando su una copia esatta) La duplicazione deve essere uguale all’originale.

Si deve garantire la sola lettura del dispositivo. È un dispositivo riconosciuto dal giudice, quindi si consiglia di utilizzare questo anziché un’altra metodologia (esempio: Linux sola lettura). Il write blocker ( WB ) è un dispositivo hardware che impedisce ogni tipo di scrittura verso il supporto ad esso collegato. Il WB si rende necessario per:

  • evitare accidentali modifiche al supporto di origine
  • evitare che automatismi dei sistemi operativi modifichino il supporto di origine La caratteristica hardware del WB lega tale strumento alla tecnologia utilizzata dal dispositivo di origine. Potrebbe quindi diventare necessario avere più WB per differenti tecnologie... ma l’utilizzo del WB è oramai uno standard: le sue caratteristiche sono oramai riconosciute nelle aule del tribunale!! Le limitazioni di uno strumento hardware sono però aggirabili attraverso l’utilizzo di WB software. I WB software sono presenti nei programmi dedicati all’analisi forense. In ambiente Linux è comunque possibile implementare le funzionalità di un WB, montando semplicemente il supporto dati con gli opportuni flag. COPIA DI UN SISTEMA LIVE Si rende necessario per effettuare una copia di sistemi che non possono essere spenti come ad esempio una centrale telefonica. Quando, invece, siamo in presenza di un sistema live abbiamo bisogno di specifici software (helix ad esempio carica tutto in memoria) ma solo di ciò che vediamo, perché se lo spegniamo abbiamo alterato lo stato della macchina. In tal caso:
  • effettuare il dump della memoria RAM che potrebbe servire per evidenziare ad esempio i programmi in esecuzione
  • copiare i file singolarmente in quanto non è applicabile la tecnica di copia fisica essendo l’origine soggetta a variazione
  • tentare il recupero dei file cancellati mediante l’utilizzo esterno di un software di undelete
  • validare immediatamente le evidenze raccolte
  • intercettare un campione dei dati in transito tramite le interfacce di rete Le operazioni svolte su di un sistema live sono irripetibili!! È necessario inoltrare al Pubblico Ministero una richiesta di autorizzazione ad effettuare un accertamento tecnico irripetibile. IL RAID Il RAID è una tecnica di gestione raggruppata delle memorie di massa che insieme sono utilizzate come un unico volume di memorizzazione. Obiettivi del RAID sono:
  • incremento delle performance
  • incremento del livello di sicurezza dei dati Il RAID è implementabile attraverso dispositivi hardware o attraverso moduli software del sistema operativo. IL RAID - CONFIGURAZIONI
  • RAID 0 → distribuisce le informazioni a livello di blocchi su tutti i dischi dell’array senza ridondanza (serve per implementare le performance). È più veloce.
  • RAID 1 → le informazioni sono copiate su tutti i dischi dell’array (una forma di distribuzione per aumentare la sicurezza del dato. RAID più ignorante: dischi che sono la copia speculare dell’altro).
  • RAID 2 → come il livello 0, ma seziona a livello di byte.
  • RAID 3 → (forma più avanzata rispetto all’1) seziona a livello di byte ed utilizza un disco dedicato alla parità. Necessita di un minimo di due dischi per i dati, più un disco dedicato alla memorizzazione dei Byte di parità (mi si rompe un disco, ne ho altri due che mi salvano. Attraverso il disco di parità posso ricostruire quello rotto. Se mi si rompono due, non posso più andare avanti.).
  • RAID 4 → simile al RAID 3, ma seziona a livello di blocchi.
  • RAID 5 → simile al RAID 4 (3?), ma non prevede un disco dedicato alla scrittura della parità, ognuno dei dischi potrà contenere indifferentemente i dati oppure il corrispondente calcolo di parità (il valore di parità si può trovare ovunque).
  • RAID 6 → simile al RAID 5, ma utilizza la tecnica del controllo di parità con doppio calcolo, ossia la parità dei dati viene riportata due volte su dischi diversi. Richiede un minimo di 4 dischi. PROBLEMATICHE DEL RAID La presenza del RAID complica notevolmente la fase di duplicazione del supporto di origine. La semplice copia “bit-for-bit” dei dischi che compongono il RAID potrebbe rivelarsi non valida in quanto esistono implementazioni RAID proprietarie incompatibili con schede RAID di altri produttori (il RAID 1 non ci da questo problema??). Il perito quindi deve possedere in laboratorio la medesima scheda RAID, con la medesima release firmware, o ricostruire il RAID manualmente allungando di gran lunga l’attività di analisi. Quali altre soluzioni adottare:
  • utilizzare un software commerciale per l’analisi forense dei dati che ricostruisce i RAID delle schede più comuni
  • eseguire, se possibile, una copia ‘’bit-for-bit’’ agganciandosi però al controller RAID In caso di RAID software è necessario procedere comunque alla copia “bit-for-bit” dei singoli dischi per valutare la presenza di dati all’infuori del RAID.

INTERCETTAZIONE

In cosa consiste? Catturare la comunicazione tra più dispositivi che comunicano. La cosa più importante è definire gli obiettivi. Non si può catturare tutto. (…) CARATTERISTICHE

  • Assenza di uno standard operativo a causa della presenza di diverse tecnologie di trasmissione, diversi sistemi di cablaggio e diversi protocolli di rete
  • Massima trasparenza
  • Minima invasività

4 soldi abbiamo fatto il famoso switch managed. Lo switch viene gestito dal sistema operativo attraverso il quale si accede al backplane (bus virtuale/logico che collega 4 reti), mi ci attacco e intercetto i dati. CREARE UNA SONDA – IL SISTEMA OPERATIVO

  • LINUX rappresenta la giusta soluzione per l’implementazione di una sonda di rete.
  • Tramite la funzione di bridge device è possibile creare uno switch logico che unisce più schede di rete.
  • Il backplane dello switch logico è accessibile tramite SO e quindi intercettabile.
  • Si realizza una sonda switch:
    • invisibile ai controlli: non deve essere invasiva e non deve alterare l’equilibrio/lo stato della rete;
    • che non altera il traffico passante, poiché non manipola gli header dei diversi livelli della pila OSI. CREARE UNA SONDA – CONFIGURAZIONE
  • Abilitazione delle schede senza protocollo ARP
  • ifconfig eth0 – arp up
  • ifconfig eth1 – arp up
  • Creazione di un bridge per accomunare le due schede
  • brctl addbr br
  • Associazione delle schede al brige
  • brctl addif br0 eth
  • brctl addif br0 eth
  • Disabilitazione dello STP protocol per la trasparenza:
  • brctl stp br0 off
  • Attivazione del bridge
  • ifconfig br0 – arp up Eth0 ed eth1 sono le interfacce delle due schede di rete necessarie a creare la sonda. … Creiamo un bridge con “Aggiungi bridge” chiamandolo br0 , poi attacchiamo le due schede al bridge con la …. Da quel momento in poi le due schede lavorano come se fosse un’unica entità, cioè come se fosse uno switch. Il sistema di bridging si può trovare anche sugli switch managed (quindi non solo su Linux) e su altri dispositivi di rete su cui si può fare un bridge delle interfacce di rete del dispositivo. Es.: Si ha uno switch con 8 porte, si vuole inserire lo switch sul quale vanno due reti (192.168.1.0/24 e 192.168.2.0/24) aumentando così il traffico di broadcast, lo si vuole fare in maniera molto ignorante attaccando … sullo switch. Sarebbe buono fare una sezione, dividendo lo switch in modo che ogni parte curi una rete: avremmo realizzato una Virtual LAN. Se non facessimo così accadrebbe che inviando dei pacchetti ad una rete si farebbe broadcast su tutte le porte, anche su quelle dell’altra rete. Possiamo dare due indirizzi allo switch managed (cosa non possibile con gli switch comuni), ad esempio 192.168.1.1 e 192.168.2.1, dividendo la rete a metà. Se non si ha uno switch che ci dice “Crea VLAN, configura, avanti, avanti, avanti…”, si deve fare manualmente. Dovendolo fare manualmente bisogna creare due bridge con 2 indirizzi IP differenti per ottenere 2 LAN virtuali. ?? Sul bridge mettiamo insieme le schede di rete eth0 e eth1 per catturare tutto ciò che entra attraverso entrambe le schede. Poi dobbiamo disabilitare i protocolli, così che la sonda non sia visibile e per non interferire sullo stato della rete: quando abbiamo fatto il MST ( Minimum Spanning Tree ) abbiamo cercato un modo per trovare il minimo albero ricoprente su una rete. Il problema è attuale perché la rete Internet è un grafo sul quale i dispositivi costruiscono l’albero che copre la rete attraverso lo Spanning Tree Protocol (STP). L’altro protocollo da stoppare è l’ARP, altrimenti l’amministratore di rete ci individua attraverso la tabella ARP → ifconfig br0 - arp.

CREARE UNA SONDA – SOFTWARE PER LO SNIFFING

Ora che abbiamo la nostra sonda, dobbiamo fare sniffing attraverso tcpdump (come Wireshark??, ma non ha ambiente grafico). Utilizza il formato … che un po’ tutti i software di analisi dei dati di reti conoscono. Con tcpdump stiamo catturando il traffico, ma poi dobbiamo analizzarlo attraverso programmi preposti all’analisi che applicano filtri (es.: il traffico che proviene dalla sorgente X o il traffico che ha come destinazione Y oppure tutto il traffico http o DNS). TCPDUMP, software che non opera in ambiente grafico. FLAG UTILI:

    • w nomefile, specifica il file in cui salvare i dati in formato pcap
    • s0, salva l’intero pacchetto dati: header e body. Potrebbe essere importante non abilitarlo per evitare il tracciamento
    • C dimensione, crea file progressivi della dimensione specificata
    • n, non converte host, porte e MAC address. Non fa conversione rispetto al DNS o al file localhost. Nel sistema LINUX c’è un file services che contiene tutti i servizi che l’utente può definire: es.: porta 80 per http, porta 90 per FTP e così via. Se non mettiamo questa opzione viene effettuata la conversione (ex.: da http a 80), ma è sempre bene leggere la porta effettiva.
    • i interfaccia, specifica l’interfaccia su cui operare. TSHARK, versione non grafica di WireShark
  • salva anche in formato diverso da pcap, ma a noi interessa il pcap perché è un formato più universale
  • utilizza filtri nativi maggiormente duttili
  • supporto a file compressi mediante l’utility zlib FLAG UTILI DI TSHARK:
    • i interfaccia, specifica l’interfaccia su cui operare
    • b duration: secondi, crea un nuovo file dopo il numero di secondi specificato
    • b filesize: size, crea un nuovo file al raggiungimento della size specificata
    • b files: numero, crea al massimo un numero di file specificato dopodiché sovrascrive
    • f filtro, espressione di filtraggio da applicare
    • w file, specifica il file in cui memorizzare i pacchetti
    • F tipo, specifica il tipo di formato da applicare per il salvataggio del file (es.: pcap)
    • n, non converte host, porte e MAC address CONSERVAZIONE ED ANALISI DEI DATI Dopo aver fatto tutto bisogna analizzare il formato pcap con Wireshark, Chaos reader, Ettercap-ng, Xplico. Xplico è uno dei software più orientati all’analisi forense, perché fa report che si possono inserire all’interno della perizia.
  • Calcolo delle impronte digitali delle evidenze raccolte (MD5 + SHA1)
  • Utilizzo di software di analisi compatibili con il formato pcap
  • Wireshark
  • Chaos reader
  • Ettercap-ng
  • Xplico (da provare perché è il più vicino ai concetti dell’analisi forense) SUNTO Acquisizione dei dati : sequestro, duplicazione, intercettazione.

facendo vedere. Se ci sono 2 partizioni da 1 GB ciascuna e il disco è da 4 GB, devo indagare sulla parte nascosta per capire cosa c’è dietro. (Potrebbe essere un altro sistema operativo). NOTAZIONE CHSLIMITI Chi l’ha progettata ha usato:

  • 4 bit per la testina (posso avere al max 16 testine)
  • 6 bit per il settore (63 settori)
  • 10 bit per il cilindro (1024 cilindri) Con la notazione CHS è possibile gestire dispositivi con meno di 504 MB. Per superare il limite CHS è stata introdotta la notazione LBA (subentrata con i dispositivi ATA) che numera gli elementi dell’HD partendo dal primo cilindro, prima testina e primo settore (quindi opera in maniera concentrica). Terminata la traccia salta alla successiva testina, rimanendo nel primo cilindro. Terminate le testine salta al successivo cilindro. (Quando ha finito il primo cilindro di tutti i piatti continua la numerazione col cilindro più interno fino a finire tutti i piatti. L’LBA numera tutti gli elementi dell’HD partendo dal primo cilindro, prima testina e primo settore.) La conversione da indirizzo logico a indirizzo fisico, ovvero quello definito dalle tre coordinate CHS (cilindro, testina e settore), viene eseguita dal controller, ossia la scheda che si interfaccia direttamente col disco. LINUX ED IL COMANDO MOUNT DI UN FILE SYSTEM Nell’uso di un sistema Linux il montaggio di un file system rappresenta una procedura di collegamento di un dispositivo esterno o di una partizione del disco rigido. (Quindi ho il disco e posso fare il mount del disco o delle singole partizioni del disco). A seguito di un montaggio (comando mount ) il dispositivo (disco) viene visto come se fosse la directory di un file system: ci si accede con i comandi di gestione di una directory. Si esegue il montaggio di un dispositivo attraverso il comando mount. Esempio: mount di un FS : quando si attacca un disco su un dispositivo su cui opera un sistema Linux, il disco viene identificato con hda1, hda2, hda3, …, hdaN. I dischi sono elencati all’interno della directory /dev.
  • mount /dev/hda2 /newdir collega la seconda partizione di un hard disk, hda2, alla directory newdir. Così se faccio cd newdir accedo a tutto il contenuto del disco. (La sto montando)
  • unmunt /dev/hda2 viene scollegata la seconda partizione hda2 (esegue l’operazione inversa). (La sto smontando)
  • mount - l elenca i dispositivi montati. ( N.B.: sda sono i dischi montati alla macchina, hda sono le partizioni) Operazioni utili (flag - o): - ro : (Opera come il Write blocker) monta il file dispositivo in sola lettura ( read only ) e non c’è la possibilità di scrivere sul disco, anche per errore. La applichiamo in laboratorio per evitare di fare danni, ma se dobbiamo presentare il nostro lavoro al giudice dobbiamo dirgli di aver usato un Write blocker , poiché non capirebbe il montaggio con l’opzione - ro. - noexec : non permette l’esecuzione di file binari.

- noatime : non aggiorna la data di accesso a directory e file. Questo è importantissimo perché la prima cosa da fare quando si accede a un disco rigido è stabilire la timeline, ossia una lista cronologica di accessi. - offset : numero, specifica l’offset in byte da cui montare. MONTAGGIO DI UN IMMAGINE DI UN DISCO Il comando mount crea un collegamento tra un file system ed un dispositivo fisico. Il semplice montaggio del file di immagine non permette al sistema di determinare la corretta geometria del disco, quindi bisogna fare un passaggio intermedio (quindi prima di effettuare il montaggio), ossia ricorrere ai loop device , per effettuare il mount di una immagine. Creare un device virtuale collegato all’immagine del disco: losetup /dev/loop0 . Con il comando fdisk – l /dev/loop0 si potrà quindi visualizzare la geometria del disco: head, sector e cylinders, ma anche l’inizio e la fine di una partizione visibile, così da vedere se ci sono settori nascosti dal sistema operativo. fdisk - l dice anche ciò che vede. Vede una serie di blocchi e l’esistenza di una partizione, che inizia dal blocco 1 e finisce al blocco 4865, ciò significa che c’è una partizione che sta prendendo tutto il disco. Se non ho questi numeri, vuol dire che c’è qualcosa che non sto vedendo. … cilindri. Voglio sapere, però, se sono occupati tutti i settori dei cilindri. Il comando fdisk – lu /dev/loop0 visualizza la geometria utilizzando come unità di misura i settori. …ci sono dei settori… Stiamo scoprendo che i primi 63 settori di un disco non vengono mai utilizzati da un FS perché il settore più esterno è il più sensibile a danneggiamenti. In quei 63 settori chiunque potrebbe metterci qualsiasi cosa (es: immagine). Di solito l’immagine è nome del disco.img. Comando: mount - o ro, nodey, noatime, loop, offset=32256 hdc.img (((( L’MBR è un vecchio modo di rappresentare le partizioni all’interno di un hard disk. (…) (Queste cose (che sono nell’MBR) vengono chiamate dal BIOS). )))) MBR (utilizzato nel mondo dei PC IBM): il Master Boot Record si trova nei primi 512 byte del disco (nel 1° settore). Consente di capire com’è strutturato il disco. Esso è costituito da tre aree: MBP, MBT e Magic Number (una sorta di checksum).

  • Il MBP (Master Boot Program) → contiene il codice eseguibile che è avviato dal BIOS che scansiona le partizioni ed identifica e lancia il boot loader che deve essere eseguito. Come vedremo ora non c’è più, in quanto…? Si poteva far in modo che… e venivano lanciati…
  • La MBT (Master Boot Table) → contiene informazioni sulle partizioni quali tipologia, caratteristica di bootable, CHS iniziale e CHS finale.
  • Magic Number → identifica la fine dell’MBR sono posti a 0xAA55. L’MBR contiene il codice eseguibile che è avviato dal BIOS e che scansiona le partizioni ed identifica e lancia il boot loader della partizione che deve essere avviata. … riporta al suo interno un programma che esegue la scansione delle partizioni …. Lancia il boot loader che sta su C. È quello che fa uscire l’opzione di scelta del SO. … … .. quindi ciò che c’è all’inizio del disco è per noi abbastanza importante. Dei 512 byte i primi 446 hanno il codice eseguibile che carica il SO operativo in memoria e viene chiamato dal BIOS, poi ce ne sono 64 che sono 4 record da 16 byte che descrivono le partizioni (primarie) e poi 2 byte.

formattato da un pc Apple che inizia a scrivere la sua APM a partire dal secondo settore. Il primo settore resta inalterato. Parte l’indagine sul disco e noi crediamo ci sia un sistema Windows e lo analizziamo come un sistema Windows. In più con fdisk - lo anche Linux casca nello stesso tranello. (Quando ci arriva un disco ed il secondo settore è occupato, bisogna controllare.)

31/10/2018 Giacci

Alcune tipologie di entry:

  • Apple_Partition_Map …
  • Apple_Driver …
  • Apple_Driver_ATA …
  • Apple_Free …
  • Apple_Scratch … Normalmente l’APM è composta da 64 entry, per un totale di 32 KB. Il primo blocco è costituito dal Driver Descriptor Map, il successivo dalla tavola delle partizioni. I bit delle entry descrivono molti parametri, ma quelli richiesti e più importanti sono il numero tot di partizioni (0 x 0004 per 4 byte) il settore iniziale (0x0008 per 4 byte) e la dimensione in settori (0x000c per 4 byte) Altro tipo di organizzazione dati è la GUID Partition Table ( GPT ) (Che oramai sono applicati dappertutto) … I suoi vantaggi sono:
  • Interoperabilità con EFI (Firmware che sostituisce BIOS, evoluzione del BIOS)
  • Ridondanza → (ridondanza per la tabella delle partizioni, per far fronte ai danni) la tabella delle partizioni è duplicata da un’altra parte del disco, quindi se si corrompe la prima, l’EFI legge la seconda
  • Utilizzo del Cyclic Redundancy Check (CRC) → Codice di controllo che dice se la tabella è corrotta …
  • Utilizzo di LBA Le tre strutture che la compongono sono:
  • Legacy MBR → La Legacy MBR occupa il primo settore che è quindi ignorato da GPT. Si rende necessaria per evitare che entità non compatibili con GPT identificano il disco come vuoto.
  • Header (intestazione)→ È posizionata nel secondo settore LBA (primo piatto, prima traccia, secondo settore) Tra le altre informazioni contiene: - Grandezza dell’header e CRC - Indirizzo LBA dell’header di backup - Grandezza in byte dei record che sono nel Partition Array - CRC del Partition Array
  • Partition Array → Array che contiene informazioni circa le singole partizioni Tra le altre informazioni contiene: - Settore LBA di inizio partizione - Settore LBA di fine partizione - Nome della partizione Un record intero contiene anche il tipo, un ID univoco e gli attributi
  • aggiornamento del file di log
  • aggiornamento dei riferimenti e dei metadata
  • aggiornamento del file di log Tutto ciò che fa? Sicuramente rallenta l’attività del file system, perché mentre prima metteva in cache e poi ogni tanto scriveva sul disco, ora ogni volta che compie un’operazione la traccia. Ma in caso di crash del sistema operativo le informazioni scritte nel log saranno utilizzate per ripristinare la consistenza, completando le transazioni non completate oppure effettuando il rollback, quindi si ha un ripristino più veloce e sicuro. Il ripristino della consistenza dei dati viene pertanto accelerato. Di contro, aumentando il numero di operazioni, viene penalizzata la velocità di gestione ordinaria dei dati. FILE SYSTEM FAT La FAT rappresenta il file system utilizzato dall’MS-DOS. È un file system datato, non gestisce efficientemente lo spazio del disco, non implementa ACL e quote, perché ha una limitazione → FAT32 e FAT64, ovvero i bit che riesce a gestire. Ecco perché non gestisce efficientemente lo spazio del disco. Per gestire dischi più grandi aumentano i settori in un cluster, lasciando molte partizioni vuote. La FAT però, nella sua semplicità, è un file system robusto ed in quanto tale è presente nella maggior parte dei dispositivi di memorizzazione portatili: penne usb, lettori mp3, fotocamere digitali, etc. Per questo è importante, quindi nonostante sia datato è attuale. Le strutture che costituiscono un file system FAT sono:
  • reserved area
  • la tabella delle directory entry
  • la tabella FAT La reserved area parte dal primo settore e contiene:
  • il codice per effettuare il boot
  • la sua dimensione (solitamente 512 byte)
  • numero di settori che compongono un cluster (1 byte)
  • numero di settori utilizzati dal file system (2 o 4 byte)
  • cluster dove risiede la root directory (4 byte)
  • il tipo di supporto dove sta la FAT (0xF8→supporto fisso, 0xF0→supporto rimovibile) Le directory entry descrivono i file e contengono:
  • il nome del file (11 byte)
  • attributi (1 byte)
  • l’ora e la data di creazione
  • l‘ora e la data di ultima modifica
  • grandezza del file (4 byte)
  • l‘indirizzo del cluster di partenza Ovviamente il file non è scritto in modo sequenziale, bensì nel primo posto libero (Frammentazione esterna). Il primo byte del nome del file è posto a 0x00 o 0xe5 se la entry è libera o il file è cancellato. La grandezza del file è posta a 0x00000000 se la entry descrive una directory. Quindi i file cancellati sono solo “etichette”, ma in realtà possono essere recuperati perché sono integri. Allo stesso modo però così è possibile oscurare dei file rischiando che il Sistema Operativo lo sovrascriva. Oppure si possono oscurare mettendolo in cluster che sono marcati “bad cluster” così non saranno sovrascritti.

La tabella FAT è composta da un numero di record pari al numero di cluster (settori/grandezza del cluster). Ogni record ha un solo campo che sarà uguale a:

  • zero se il cluster è libero
  • un indirizzo al prossimo cluster occupato dallo stesso file
  • un marcatore di fine file
  • un marcatore di bad cluster … … Il file system NTFS Esso è un file system un po’ più elaborato…in quanto tale è più suscettibile ad errore. Attraverso il file system NTFS la Microsoft introduce:
  • La gestione delle Access Control List (…)
  • La compressione dei dati a livello file system
  • La gestione delle quote
  • Il supporto agli sparse file NTFS è un file system Journaled Nel file system NTFS il boot sector rappresenta l’unica struttura fissa. È ampia 512 byte. Il resto delle informazioni è rappresentato da file (che chiameremo ‘entry’), che sono sparsi e nascosti. Il boot sector si trova nel primo settore della partizione 63 e contiene:
  • Codice per il boot
  • Settori per cluster (1 byte)
  • Tipo di supporto (1 byte)
  • Indirizzo del cluster di partenza della MFT (Master File Table) (8 byte)
  • Ampiezza di una entry MFT (1 byte) La MFT (Master File Table) è la tabella principale utilizzata per la gestione dei file. L’accesso avviene attraverso l’indirizzo di partenza contenuto nel boot sector. Il primo record contiene le informazioni utili ad accedere al file $MFT, che contiene tutte le entry che descrivono il file system. L’MFT è composto anche da altre entry utili per accedere ai file:
  • $MFTMir, contenente un backup della MFT → per superare eventuali ‘rotture’ della tabella
  • $LogFile, contenente il giornale di sistema → se si vuole analizzare la vita passata della macchina
  • $Volume, contenente la descrizione del volume -. , contenente la descrizione della root directory
  • $Bitmap, contenente lo stato di allocazione dei cluster del file system
  • $BadClus, contenente la lista dei cluster difettosi
  • $Secure, contenente le ACL
  • $Exted, directory che conterrà le future implementazioni Una entry in $MFT ha una lunghezza fissa (solitamente 1024 byte) ed è suddivisa in:
  • Intestazione, che contiene:
  • Informazioni per l’identificazione nel file di giornale
  • Offset del primo attributo
  • Flag di distinguo: posto a 0x01 se la entry è usata e 0x02 se la entry è una directory, altrimenti altra roba….
  • Spazio utilizzato dalla entry
  • Area degli attributi che descrivono il file nella sua interezza