domenica 12 febbraio 2023

Linux: Data carving

Il data carving è una tecnica utilizzata per recuperare i dati da un supporto di memorizzazione, come un disco rigido o una scheda di memoria, in seguito a una cancellazione accidentale o intenzionale, oppure in caso di danneggiamento del supporto stesso. Il data carving consiste nell'analizzare l'immagine del supporto di memorizzazione per individuare i frammenti di dati ancora presenti e salvarli in una nuova posizione. Questa tecnica può essere utilizzata per recuperare file, immagini, video e altri tipi di dati ed è fondamentale anche nelle investigazioni digitali forensi.

Quando un file viene salvato su un disco rigido, viene suddiviso e scritto in contenitori logici detti cluster. Ogni cluster è composto da un certo numero di settori, che sono le unità di base di memorizzazione su un disco rigido. Il sistema operativo utilizza una File Allocation Table (FAT) o una Master File Table (MFT) per tenere traccia della posizione dei cluster sul supporto di memoria.

Ogni volta che un file viene salvato, il sistema operativo cerca una serie di cluster vuoti contigui che siano sufficienti per contenere tutti i dati del file. Una volta individuati, i cluster vengono marcati come utilizzati e i dati del file vengono scritti su di essi. Se un file è troppo grande e non ci sono cluster vuoti contigui in grado di contenerlo, viene diviso in più parti e memorizzato in cluster diversi e non contigui. Il sistema operativo utilizza la FAT o l'MFT per tenere traccia della posizione di ogni parte del file sulla memoria. In questo modo, quando si apre un file, il sistema operativo può riunire tutte le sue parti.

Quando si cancella un file questo non viene in realtà rimosso dall'hard disk; viene rimosso il suo riferimento nella struttura del file system e lo spazio occupato dal file viene classificato come spazio non allocato. Proprio sullo spazio non allocato in un sistema di storage (hard disk, pendrive, ecc) si applica il data carving per recuperare i file e catalogarli sulla base del loro header e footer (stringhe esadecimali all'inizio e fine del file). Per il riconoscimento del tipo di file si ricorre al database dei magic number (firme esadecimali). Il magic number è costituito da una serie di byte specifici (da 2 a 10 byte) solitamente posizionati all'inizio del file, che vengono utilizzati per identificarne il tipo. Ad esempio, un file JPEG avrà un magic number specifico (FF D8 FF EE) diverso da un file PNG (89 50 4E 47). Quasi tutti i formati di file sono identificati da un magic number

Data carving con Scalpel

Uno degli strumenti più utilizzati e molto apprezzato per il data carving è Scalpel (https://github.com/machn1k/Scalpel-2.0). Tale strumento è già presente in Kali Linux. Per installarlo su distribuzioni Linux derivanti da Debian è possibile utilizzare i seguenti comandi da terminale
sudo apt-get update
sudo apt-get install scalpel

Prima di avviare lo strumento è necessario andare a modificare il file di configurazione /etc/scalpel/scalpel.conf che ha tutte le righe commentate. In base alla tipologia di file che si intende recuperare è necessario andare a rimuovere il commento dalla relativa riga. 

Aprire il file di configurazione con un editor di testo. In Kali Linux è possibile utilizzare l'editor nano con il comando da terminale
sudo nano /etc/scalpel/scalpel.conf

Per recuperare un file PDF eliminato da una pendrive è necessario andare a rimuovere i commenti relativi ai tipi di file PDF (FIG 1) presenti nel file di configurazione. 
File di configurazione scalpel.conf
FIG 1 - File di configurazione scalpel.conf

Premere CTRL + X per uscire dall'editor e confermare la modifica premendo Y seguito da Invio.
Salva modifica del  file di configurazione
FIG 2 - Salva modifica del  file di configurazione


La sintassi di scalpel è la seguente
scalpel -c fileconfig.conf unità -o /percorso/file/output

Il percorso dell'output deve risiedere su un unità diversa da quella da cui si sta tentando di recuperare i dati. Per identificare la pendrive eseguire il comando
lsblk 
lsblk
FIG 3 - lsblk

Dalla FIG 3 si evince che la pendrive è stata montata come sdb1. Eseguire una finestra terminale come root ed avviare il data carving con il comando
scalpel -c /etc/scalpel/scalpel.conf /dev/sdb1 -o /home/kali/Desktop/Recover
Avvio data carving con scalpel
FIG 4 - Avvio data carving con scalpel
Il comando creerà una cartella Recover sul Desktop contenente un file audit.txt (in cui saranno elencati eventuali file recuperati e altre informazioni sul processo) e una cartella contenente i file recuperati.
Risultati del data carving di scalpel
FIG 5 - Risultati del data carving di scalpel

File audit.txt
FIG 6 - File audit.txt

File recuperati da scalpel
FIG 7 - File recuperati da scalpel


Scalpel consente di effettuare il data carving anche su immagini di dischi virtuali (VDI, Virtual Disk Image) di VirtualBox. In questo caso il comando da eseguire sarà del tipo
scalpel -c /etc/scalpel/scalpel.conf /percorso/Immagine/file.vdi -o /home/kali/Desktop/Recover




giovedì 9 febbraio 2023

Linux: Installazione Debian 11 (Graphical Install)

L'installazione di gran parte delle distribuzioni Linux è stata notevolmente semplificata nel corso degli anni e l'installazione è ormai alla portata anche degli utenti meno esperti. In questo articolo verranno mostrati i passi per l'installazione della distribuzione Debian su un nuovo PC.

Il primo passo consiste nel procurarsi l'immagine ISO dal sito ufficiale (www.debian.org). É possibile scegliere tra diverse versioni a seconda del proprio sistema (x86, x64, arm, ecc), versioni complete, versioni base, per installazione tramite rete, ecc. Per questo articolo è stato eseguito il download della versione debian-11.6.0-amd64-DVD-1.iso da https://cdimage.debian.org/debian-cd/current/amd64/iso-dvd/.
Una volta scaricata l'immagine ISO è possibile masterizzarla su DVD o creare un supporto USB avviabile utilizzando strumenti di terze parti come RUFUS, Balena Etcher o Ventoy.
Terminata la preparazione, basterà avviare il sistema dal supporto appena creato per avviare l'installazione di Debian

Nella prima schermata apparirà il menu di installazione da cui sarà possibile selezionare diversi tipi di installazione e opzioni. Lasciare selezionata la Graphical Install e premere Invio per proseguire.
Installer menu
FIG 1 - Installer menu

Selezionare la lingua da utilizzare nella fase di installazione del sistema e cliccare su Continue. Per l'installazione è stata selezionata la lingua italiana. 
Seleziona Lingua da utilizzare durante l'installazione
FIG 2 - Seleziona Lingua da utilizzare durante l'installazione

Un messaggio ci avvisa che la traduzione del programma di installazione nella lingua selezionata (italiano) è incompleta e alcuni testi potrebbero essere visualizzati in inglese. Ci viene chiesto se desideriamo proseguire comunque con la lingua selezionata. Rispondere affermativamente selezionando e cliccando su Continua.
Traduzione incompleta
FIG 3 - Traduzione incompleta
Nella schermata Selezionare la posizione, viene chiesto di selezionare il Paese che verrà usato per impostare la lingua e il fuso orario all'interno del sistema. Selezionare Italia e cliccare su Continua.
Seleziona Paese
FIG 4 - Seleziona Paese

Selezionare la tastiera Italiana e proseguire cliccando sul pulsante Continua.
Configurazione tastiera
FIG 5 - Configurazione tastiera
A questo punto il programma di installazione tenta di contattare un server DHCP per la configurazione automatica delle impostazioni di rete. Nel caso in cui il server DHCP non venga rilevato, verrà mostrata la finestra presente in FIG 6. Cliccare su Continua per procedere con la configurazione della rete.
Configurare la rete
FIG 6 - Configurare la rete

Nella schermata successiva vengono proposte diverse opzioni per la configurazione della rete:
  • Riprovare configurazione automatica della rete
    Tenta nuovamente di contattare un server DHCP.
  • Riprovare configurazione automatica della rete con nome host DHCP
    Permette di specificare il nome host di un server DHCP da contattare per la configurazione automatica della rete.
  • Configurare la rete manualmente
    Consente di procedere alla configurazione manuale della rete.
  • Non configurare la rete in questo momento
    Prosegue con l'installazione del sistema operativo senza configurare la rete.
Selezionare Configurare la rete manualmente e cliccare su Continua.
Opzioni per la configurazione della rete
FIG 7 - Opzioni per la configurazione della rete
Nell'apposita casella, digitare l'indirizzo IP da assegnare alla macchina e cliccare su Continua.
Configurazione indirizzo IP
FIG 8 - Configurazione indirizzo IP
Di default verrà proposta la subnet mask (maschera di rete) 255.255.255.0 che fa al caso nostro. Confermare la configurazione cliccando su Continua.
Subnet mask
FIG 9 - Subnet mask
Nel passo successivo ci viene richiesto di specificare l'indirizzo IP del gateway. Il gateway è un router, o un altro dispositivo con funzionalità di routing dei pacchetti dati, che collega la LAN con l'esterno. Specificare, nell'apposita casella, l'indirizzo IP e proseguire con la configurazione della rete cliccando su Continua.
Configurazione Gateway
FIG 10 - Configurazione Gateway
La configurazione della rete continua con l'indicazione dei server DNS da utilizzare per la risoluzione dei nomi. I server DNS vanno indicati specificando il loro indirizzo IP. É possibile specificare fino a 3 server DNS separati da spazi. In figura è stato inserito il DNS di Google con l'IP 8.8.8.8. Se non si intende configurare un server DNS basta lasciare il campo vuoto. Cliccare sempre sul pulsante Continua per proseguire.
Server DNS
FIG 11 - Server DNS
Specificare il nome host che si intende attribuire al sistema. Il nome host è un nome con cui il sistema viene identificato in rete. Cliccare su Continua.
Nome Host
FIG 12 - Nome Host
Il nome del dominio è la parte dell'indirizzo Internet a destra del nome del proprio host e termina con .com, .net, .edu, ecc. In una rete domestica è possibile usare un nome qualsiasi purché sia uguale in tutti i computer della rete. Cliccare su Continua per continuare.
Nome del dominio
FIG 13 - Nome del dominio
Specificare la password da assegnare all'utente root. Trattandosi di un utenza utilizzata per amministrare il sistema, la password va scelta con attenzione. Digitare la password all'interno delle apposite caselle e cliccare su Continua.
Password di root
FIG 14 - Password di root
In questa fase verrà creato un nuovo account da utilizzare per le normali attività (a differenza dell'account di root). Ci viene chiesto di inserire il nome completo del nuovo utente (ad es. Nome e Cognome). Digitare il nome desiderato e cliccare su Continua.
Impostazione utenti e password
FIG 15 - Impostazione utenti e password
Nella fase successiva viene richiesto il nome da assegnare all'account. Digitare il nome all'interno della casella e cliccare su Continua.
Nome utente per l'account
FIG 16 - Nome utente per l'account
Specificare la password da assegnare al nuovo account utente quindi cliccare su Continua.
Password account utente
FIG 17 - Password account utente
In questa fase il programma di installazione di guida per il partizionamento dei dischi. Trattandosi di un PC nuovo in cui non vi sono installati altri sistemi operativi, selezioniamo l'opzione Guidato - usa l'intero disco e clicchiamo su Continua.
Partizionamento dei dischi
FIG 18 - Partizionamento dei dischi
Selezionare il disco da partizionare e cliccare su Continua. La procedura ci avvisa che i dati presenti sul disco selezionato saranno eliminati una volta confermata l'applicazione delle modifiche.
Selezione disco da partizionare
FIG 19 - Selezione disco da partizionare
Il disco può essere partizionato usando diversi schemi. Lasciare selezionato lo schema proposto Tutti i file in una partizione (per nuovi utenti) e cliccare su Continua.
Schema di partizionamento
FIG 20 - Schema di partizionamento
Viene visualizzata l'anteprima delle partizioni. Selezionare Terminare il partizionamento e scrivere le modifiche sul disco quindi proseguire cliccando su Continua.
Anteprima partizioni
FIG 21 - Anteprima partizioni
Viene presentato un resoconto delle modifiche che verranno applicate ai dischi e ci viene chiesto se intendiamo scrivere tali modifiche sui dischi e renderle effettive. Selezionare e cliccare su Continua per avviare l'installazione del sistema di base.
Conferma scrittura modifiche su disco
FIG 22 - Conferma scrittura modifiche su disco

Installazione sistema di base
FIG 23 - Installazione sistema di base
Se abbiamo scaricato un'insieme di supporti per l'installazione è possibile analizzarli prima di utilizzarli. Avendo scaricato l'immagine ISO di un singolo supporto, lasciare selezionato No e cliccare su Continua.
Configurazione gestore pacchetti
FIG 24 - Configurazione gestore pacchetti
É possibile indicare un mirror di rete come supplemento al software incluso nel supporto di installazione. In questo modo è possibile installare, se disponibili, versioni più aggiornate del software. Lasciare selezionato No e cliccare su Continua.
Mirror di rete
FIG 25 - Mirror di rete
nn
Raccolta dati sull'uso dei pacchetti
FIG 26 - Raccolta dati sull'uso dei pacchetti
Lasciare selezionati i software proposti e cliccare su Continua per avviare la loro installazione..
Selezione del software
FIG 27 - Selezione del software

Installazione del software
FIG 28 - Installazione del software
Installare il boot loader GRUB. Nel caso in cui Debian sia l'unico sistema operativo installato nel sistema, è buona norma installare il boot loader GRUB sul disco primario. Selezionare Si e cliccare su Continua.
Installazione GRUB
FIG 29 - Installazione GRUB
Selezionare il device su cui installare il boot loader GRUB per rendere avviabile il nuovo sistema installato e cliccare su Continua.
Device per l'installazione di GRUB
FIG 30 - Device per l'installazione di GRUB

L'installazione è completata, rimuovere il supporto utilizzato per l'installazione e cliccare su Continua per riavviare il sistema e avviare Debian.
Installazione completata
FIG 31 - Installazione completata





martedì 7 febbraio 2023

Windows: Eliminazione sicura. Impedire il recupero di file cancellati

Quando si elimina un file in maniera "permanente" da Windows, il file non viene realmente rimosso dal disco ma viene applicata la cancellazione logica: al fine di rendere l'operazione di cancellazione rapida ed efficiente (con il minimo impatto sulle prestazioni del sistema) i file cancellati vengono semplicemente "marcati" come tali, tramite apposito flag presente nei metadati, senza che il loro contenuto venga immediatamente eliminato. I contenuti di un file cancellato rimangono su disco finché non verranno sovrascritti da altri dati e possono essere recuperati tramite l'utilizzo di tool specialistici (con appositi software e strumenti è possibile recuperare anche un file sovrascritto!).

Per eliminare in modo sicuro i file è necessario sovrascrivere i dati in maniera tale da renderne impossibile il recupero. L'operazione può essere eseguita manualmente oppure mediante l'utilizzo di un apposito strumento detto file shredder. Un file shredder è un programma che consente di eliminare permanentemente i file dal computer sovrascrivendo i dati con valori casuali o con un pattern predefinito e rendendo impossibile il recupero dei dati originari. Questo li rende particolarmente adatti ad eliminare file sensibili come documenti personali o informazioni bancarie.

Esistono diversi metodi di sovrascrittura utilizzati da file shredder, tra cui il metodo di Gutmann, che prevede ben 35 passaggi di sovrascrittura dei dati, e il metodo di DoD (Dipartimento della Difesa degli Stati Uniti), che prevede 7 passaggi. Un buon file shredder dovrebbe permettere all'utente di selezionare il metodo di sovrascrittura a seconda del grado di sicurezza desiderato.

Un file shredder molto apprezzato in ambiente Windows (sia client che server) è Eraser: un software libero il cui codice sorgente è rilasciato sotto la GNU General Public License. 

Download e installazione di Eraser

Eraser può essere scaricato gratuitamente dal link https://eraser.heidi.ie. Terminato il download avviare l’installer. Nella schermata di benvenuto cliccare sul pulsante Next per proseguire.
Eraser Setup Wizard
FIG 1 - Eraser Setup Wizard
Accettare la licenza GPLv3 spuntando l'apposita casella e cliccare su Next.
Licenza GPLv3
FIG 2 - Licenza GPLv3
Nella schermata successiva è possibile selezionare il tipo di installazione desiderato scegliendo tra tipica, personalizzata e completa. Cliccare su Typical.
Selezione del tipo di installazione
FIG 3 - Selezione del tipo di installazione
Avviare l'installazione cliccando sul pulsante Install.
Avvio installazione
FIG 4 - Avvio installazione
L'installazione verrà completata in pochi secondi. Al termine cliccare sul pulsante Finish.
Installazione completata
FIG 5 - Installazione completata



Avvio e impostazioni

All'avvio del tool appare la finestra Controllo dell'account utente. Cliccare su Si per permettere al software di apportare modifiche al dispositivo.
Controllo dell'account utente
FIG 6 - Controllo dell'account utente
La schermata principale del software visualizza l'elenco dei task di eliminazione sicura schedulati o in esecuzione. Per ogni operazione di cancellazione, infatti, viene creato un task che può essere eseguito istantaneamente, programmato per essere eseguito ad ogni riavvio, in particolari giorni oppure per essere avviato manualmente. Cliccare su Settings per visualizzare le impostazioni di Eraser.
Eraser
FIG 7 - Eraser

Nelle sezione Shell integration è possibile modificare la lingua dell'interfaccia (User interface language) e scegliere se integrare Eraser in Esplora file (Integrate Eraser into Windows Explorer). Quest'ultima opzione, se attivata, consente di visualizzare il menu contestuale di Eraser quando si clicca con il tasto destro del mouse sugli elementi supportati.
Nella sezione Erase settings è possibile selezionare il metodo da utilizzare per la cancellazione dei file (Default file erasure method) e dei drive (Default drive erasure method). I metodi supportati sono:
  • Gutmann (35 passes)
  • US DoD 5220.22-M (8-306./E, C & E) (7 passes)
  • RCMP TSSIT OPS-II (7 passes)
  • Schneier 7 pass (7 passes)
  • German VSITR (7 passes)
  • US DoD 5220.22-M (8-306./E) (3 passes)
  • British HMG S5 (Enhanced) (3 passes)
  • US Air Force 5020 (3 passes)
  • US Army AR380-19 (3 passes)
  • Russian GOST P50739-95 (2 passes)
  • British HMG IS5(Baseline) (1 pass)
  • Pseudorandom Data (1 pass)
L'opzione Randomness data source consente di selezionare l'origine dei dati da utilizzare nella sovrascrittura con dati casuali.
Selezionando l'opzione Force locked files to be unlocked for erasure, Eraser cancellerà anche i file bloccati da altri programmi forzandone prima lo sblocco. In caso contrario Eraser visualizzerà un messaggio relativo all'impossibilità di eliminare il file bloccato.
Replace erased files with the following files to allow plausible deniability consente di specificare un elenco di file da utilizzare per sovrascrivere lo spazio dei file cancellati sull'unità.
Impostazioni
FIG 8 - Impostazioni


Eliminazione sicura file

Per eliminare uno o più file, una volta selezionati basta cliccarci su con il tasto destro del mouse e, dal menu contestuale, selezionare Eraser -> Pulisci

Eliminazione sicura file
FIG 9 - Eliminazione sicura file

Cliccando su Yes verrà creato un task che verrà eseguito immediatamente e in pochi secondi i file selezionati verranno eliminati in modo sicuro.
Erase Items
FIG 10 - Erase Items
Cliccando sul pulsante Options è possibile personalizzare la creazione del task: è possibile assegnargli un nome (Task name) e indicare se dovrà essere eseguito manualmente, immediatamente, al riavvio, in maniera ricorrente. In quest'ultimo caso, mediante la scheda Schedule, è possibile personalizzare ulteriormente la pianificazione dell'attività (FIG 12). Cliccando su Add Data sarà possibile specificare il tipo di metodo da utilizzare per la cancellazione (FIG 13)
Task Properties
FIG 11 - Task Properties

Pianificazione task
FIG 12 - Pianificazione task

Select Data to Erase
FIG 13 - Select Data to Erase


In maniera del tutto analoga è possibile procedere all'eliminazione dei dati presenti su una intera partizione/disco. In questo caso è possibile procedere anche alla sola sovrascrittura dei dati presenti nello spazio libero selezionando dal menu contestuale Pulisci Spazio libero.
Eliminazione sicura dati disco
FIG 14 - Eliminazione sicura dati disco