Forensics ATA
Forensics ATA
e Specifiche ATA
Attacco
Maurizio Anconelli
Grado di difficoltà
P
roprio il sommesso ronzio delle testine logica di hard disk e master boot record, del
sarà la colonna sonora di questo artico- quale spiegheremo brevemente il funziona-
lo che ha come obiettivo la comprensio- mento. Come per la maggior parte degli articoli
ne di alcuni aspetti spesso ignorati degli hard tecnici, il sistema migliore per comprendere
disk, mettendo in pratica sistemi che spesso a fondo i concetti consiste nel tenere la mano
sono affrontati solo a livello teorico. sinistra sulla rivista e la destra sulla tastiera.
Il sistema migliore per nascondere i dati su Trattandosi di interazione a basso livello con
un supporto è ovviamente la crittografia. Esi- l'hard disk e di procedure potenzialmente di-
stono tuttavia metodi alternativi che sfruttano struttive, il mio vivo consiglio è comunque quel-
alcuni comandi degli standard ATA ed alcune lo di utilizzare un hard disk dedicato e lasciar
caratteristiche degli hard disk spesso scono- perder il RAID 5 del mail server aziendale.
sciute al normale utente del pc, a causa della
scarsa comodità di utilizzo.
Pur non avendo lo stesso grado di sicurez-
Dall'articolo imparerai...
za ed inviolabilità dei sistemi critttografici, que- • alcuni sistemi di occultamento dati su Hard Disk,
sti sistemi presentano caratteristiche in grado • le funzionalità ed i comandi ATA importanti in
di modificare ed aumentare le possibilità di oc- Computer Forensics,
cultamento dei dati. Per questi motivi i concetti • leggere il Master Boot Record con un editor
esposti nel seguente articolo rappresentano esadecimale,
un bagaglio necessario sia per chiunque • utilizzare dd per la manipolazione delle parti-
si occupi di computer forensics ed investigazio- zioni nel Master Boot Record.
ne digitale che per chi si occupi di sicurezza in-
Cosa dovresti sapere...
formatica in generale, come a chiunque voglia
comprendere aspetti particolari dell'hard disk. • funzionamento di base dell'Hard Disk,
Le procedure che andremo ad analizzare • nozioni di base su indirizzamento CHS, LBA,
sono in gran parte manuali e presuppongono • nozioni di base su partizionamento e filesystem.
una discreta conoscenza della struttura fisico/
Standard ATA Alcuni dei comandi e delle ca- creativo, non limitandosi ad esclu-
Gran parte di questo articolo è basato ratteristiche sviluppate permettono dere o meno determinati parametri,
sulle caratteristiche ATA, che sta per un'interazione a basso livello con ma modificandone a proprio uso
Advanced Technology Attachment il device, nel nostro caso ne verran- e consumo le specifiche stesse.
e consiste in una serie di standard no utilizzate alcune per modificare Le caratteristiche ed i comandi
e specifiche sviluppate dal T13 Te- le caratteristiche rilevate dai sistemi che andremo ad utilizzare, quindi,
chnical Committee che controllano operativi. Bisogna comunque tener potrebbero essere non supportati
l'interfacciamento tra il sistema e gli presente che come per ogni buon o gestiti diversamente da un partico-
hard disk, in particolare le caratteri- standard informatico che si rispetti, lare tipo di drive, a parità di versione
stiche fisiche, i protocolli ed i comandi sebbene lo sviluppo delle specifiche ATA supportata.
che permettono la comunicazione tra sia ampiamente documentato, il sup- Nel nostro caso andremo ad
gli stessi ed i dispositivi di controllo. porto da parte dei produttori è assai approfondire l'utilizzo di HPA,
Configurazione Originale
Table) e ad un piccolo spazio non le modifiche su un supporto vergi- Nella Figura 2 è presente il dump
allocato dal settore 1 al settore 62, ne, per poi installare comodamente del Master Boot Record in questione,
sono presenti 8 MB di spazio alla fine il sistema operativo sulla parte utente creato da un'installazione standard
del disco (sett. 80276805-80293247) visibile. La seconda, quella più compli- di Windows 2000. Possiamo visua-
lasciati dall'installazione di Windows cata, avviene a disco già configurato, lizzare il settore di boot direttamente
2000 per un'eventuale successiva modificando il Master Boot Record ed dalla shell:
conversione del disco in dinamico. i record di avvio di ogni partizione
In Figura 1 è visibile uno schema di in modo che riflettano le modifiche # dd if=/dev/hda bs=512 count=1 | xxd
configurazione del disco. eseguite a basso livello, evitando
così problemi al sistema operativo. La prima parte (dal byte 0 al byte
Progetto Ovviamente sceglieremo la strada 445) contiene il codice che si occupa
Il nostro scopo è quello di accorciare più complicata, lasciando come unica di caricare la tabella delle partizioni
la parte utente (settori del disco uti- concessione alla semplicità l'accortez- e lanciare il sistema operativo.
lizzabili da impostazioni di fabbrica) za di prendere ad esempio un disco Dal byte 446 inizia la tabella delle
del disco con qualche colpo di bac- contenente solo partizioni primarie. partizioni, che analizzeremo in detta-
chetta magica ed uno o due comandi glio e modificheremo manualmente
ad hoc. Creeremo prima una Device Struttura per rispecchiare le modifiche del ATA
Configuration Overlay in modo da Il Master Boot Record risiede nei primi che apporteremo al disco.
far scomparire l'ultima partizione 512 byte del disco e consiste in una par- Gli ultimi due byte contengono
e lo spazio non allocato al termine te di codice, richiamata dopo il POST, la signature 55AA che identifica
del disco, setteremo in seguito una preposta al caricamento del sistema il settore di boot.
Host Protected Area che dimezzerà operativo ed in una serie di record che
in pratica la capacità del disco. specificano le partizioni del disco ed Tabella delle partizioni
Tali modifiche non devono risulta- i relativi attributi, come dimensioni, tipo Le caratteristiche delle partizioni
re distruttive per i dati contenuti nelle ed indirizzi di inizio e fine settore. sono inserite in quattro gruppi di 16
rispettive partizioni che devono essere L'implementazione del codice byte a partire dal byte 446. Analizzia-
recuperabili attraverso le successive presente nel Master Boot Record va- mo la prima partizione che inizia nel
fasi di annullamento delle operazioni ria a seconda del sistema operativo byte 0x1BE e termina in 0x1CD:
o attraverso un accesso a basso livello utilizzato, non esistendo uno standard
ai relativi settori del disco. univoco per la codifica di questo set- • il byte 0 (0x1BE) contiene il flag
tore. Nonostante ciò i produttori di OS di boot, settato a 0x80 in quanto
Leggere il sembrano seguire linee guida comuni partizione di boot,
Master Boot Record per quanto riguarda la mappatura delle • i byte 1-3 (0x1BF-0x1C1) il setto-
Le strade per nascondere una parte di partizioni e i parametri relativi ed in par- re di inizio in formato CHS,
hard disk attraverso modifiche ATA so- ticolare per la firma 55AA presente alla • nel byte 4 (0x1C2) il tipo di parti-
no fondamentalmente due. La prima, fine del settore che lo identifica inequi- zione (07 = NTFS),
quella facile, consiste nell'eseguire vocabilmente come settore di boot. • dal byte 5 al 7 (0x1C3-0x1C5) l'in-
dirizzo di fine partizione in CHS,
• i byte dall'8 all'11 (0x1C6 – 0x1C9)
l'indirizzo di inizio partizione LBA,
• dal 12 al 15 (0x1CA – 0x1CD)
la grandezza della partizione in
settori.
Salvataggio del
Master Boot Record
Prima di effettuare operazioni poten-
zialmente distruttive è sempre buona
Fig. 2: Master Boot Record norma salvare i 512 byte iniziali in
Partition Table
00001a0 : 0000 0000 0000 0000 0000 0000 0000 0000 ................
00001b0 : 0000 0000 002c 507d 23bf 45a4 0000 8001 .....,P}#.E.....
00001c0 : 0100 07fe ffff 3f00 0000 3716 7102 0000 ......?...7.q...
00001d0 : c1ff 0cfe ffff 7616 7102 4d59 5702 0000 ......[Link]...
00001e0 : c1ff 07fe ffff c36f c804 827d 0000 0000 .......o...}....
00001f0 : 0000 0000 0000 0000 0000 0000 0000 55aa ..............U.
Partition # 2 0xff ff fe = End CHS = 255 255 254 0x02 71 16 37 = Partition Size = 40965687
modo da poter ripristinare il MBR in allocato può essere in ogni caso rag- L'efficacia di questo metodo per
qualsiasi momento. giunto dai programmi che accedono nascondere informazioni importanti
direttamente ai settori del disco. è quindi molto limitata.
# dd if=/dev/hda bs=512 count=1 of=mbr_ È possibile, ad esempio, utiliz-
hda_orig.dd zare lo spazio non allocato di 31 Kb I comandi ATA
dal settore 1 al settore 62 per na- Prima di procedere alla modifica del
L'immagine del MBR originale verrà scondere un file di testo, uno script disco a basso livello è bene riassu-
utilizzata dopo aver rimosso le aree o un piccolo programma. mere alcuni comandi e caratteristi-
inaccessibili, per riportare il disco Così come possiamo nasconde- che ATA riguardanti le dimensioni
allo stato originale. re un file nello spazio non allocato del disco.
dal sistema operativo: La capacità massima reale del-
Utilizzare lo spazio l'hard disk (Native Max Address), ov-
non allocato # dd if=/etc/passwd bs=512 seek=1 of=/ vero il massimo settore indirizzabile,
Il sistema più semplice e meno effi- dev/hda si ottiene attraverso i comandi READ
cace di nascondere dati all'esterno NATIVE MAX ADDRESS e READ NATIVE MAX
del filesystem è utilizzare lo spazio È però possibile allo stesso modo ADDRESS EXT.
non allocato del disco. Oltre ad es- scoprire le informazioni in esso I comandi che terminano in EXT
sere automaticamente incluso nelle contenute si riferiscono ai dischi che suppor-
immagini ottenute con le corrette tano l'indirizzamento LBA a 48 bit
procedure forensi, lo spazio non # dd if=/dev/hda count=4 skip=1 | less (capacità fino a 128 Petabytes), per
semplicità prenderemo in conside-
razione unicamente i comandi con
indirizzamento LBA a 28 bit (dischi
fino a 128 GB).
Fig. 3a: Disk Manager – Situazione Originale Fig. 4: Etichetta Hard Disk
MBR 512 Kb
MBR 512 Kb
Conosciamo il settore di partenza dd if=mbr_hda_orig bs=512 count=1 in vendita del supporto e la G-List
della seconda partizione: 40965750. of=/dev/hda o Grown Defect List che, al contrario
Moltiplichiamolo per 512 (byte per viene utilizzata durante il ciclo di vita
settore) ed otterremo l'offset in byte Quindi con hdat2 eliminiamo prima dell'apparato.
da passare a mount e losetup: la Host Protected Area riportando al A differenza delle modalità di
valore massimo (80244675) il para- marcatura a livello di filesystem, dove
# FAT2=$[40965750*512] metro New Native Max Address all'in- i settori danneggiati vengono segna-
# mount -ro loop,offset=$FAT2 /dev/hda terno della sezione Set Max Address lati come inutilizzabili dal sistema
/mnt/hda2 e reimpostiamo il DCO in modo che operativo rimanendo comunque nella
il Maximum LBA Sectors all'interno di catena dei settori, le Defect List lavo-
Un giretto nella cartella appena DCO Modify rispecchi la reale dimen- rano ad un livello più basso e permet-
montata mostrerà i file intatti pre- sione del disco (80293247). tono la sostituzione del settore prima
senti prima della modifica della Host del passaggio al controller del disco.
Protected Area. P-List e G-List Il settore danneggiato durante
Il seguente è un sistema più com- il normale utilizzo del disco viene
Rilevamento HPA plicato, sia per quanto riguarda l'oc- aggiunto alla tabella G-List e viene
Come per il DCO, la maggior parte cultamento sia per quanto riguarda assegnato il relativo indirizzo LBA ad
dei programmi di Computer Forensi- il recupero dei dati, legato profonda- un settore di riserva. In pratica il set-
cs è in grado di rilevare e duplicare mente all'hardware ed alle caratte- tore corrotto fisicamente rimane nella
una Host Protected Area. ristiche implementate dai produttori. stessa locazione ma, ad una richiesta
Anche SleuthKit, attraverso il tool Nonostante ciò è una possibilità che del controller indirizzata al settore
disk _ stat, è in grado di rilevare una soprattutto a livello forense dev'esse- danneggiato, la testina viene indiriz-
HPA: re tenuta in debita considerazione. zata fisicamente sul settore spare
Il sistema si basa sulle liste di set- che ne ha ereditato l'indirizzo LBA.
# disk_stat /dev/hda tori difettosi e sulle aree di settori di La Figura 10 mostra uno schema logi-
Maximum Disk Sector: 80244674 riserva che i produttori di Hard Disk co del sistema:
Maximum User Sector: 40965749 utilizzano per correggere eventuali A seconda del sistema utilizzato
** HPA Detected (Sectors 40965750 errori, sia in fase di produzione che dal produttore i settori danneggiati
– 80244674) ** di utilizzo del disco. vengono aggiunti automaticamente
In pratica al rilevamento di durante fasi di self-test o manualmen-
Ovviamente resta valido il sistema di un settore danneggiato nella parte te attraverso appositi comandi, nella
confrontare i settori accessibili con utilizzabile del disco, lo stesso set- maggior parte dei casi senza modifi-
le caratteristiche riportate sull'etichet- tore viene rimpiazzato da uno spare carne il contenuto. In teoria la P-List
ta del disco o sul sito del produttore. contenuto in un apposito spazio dovrebbe essere immutabile durante
esterno e la transazione viene regi- il normale utilizzo. Nella realtà è co-
Ripristino del disco strata in apposite liste di errore. munque possibile modificare la lista
Procedendo al contrario è possibile ri- Esistono due liste preposte a sco- con alcuni programmi dedicati.
portare il disco alle condizioni iniziali. pi differenti: la P-List o Primary Defect Ovviamente lo spazio riservato
Il primo passo consiste nel ripristi- List viene utilizzata per i settori dan- alle Defect List è limitato, variabile
nare il Master Boot Record attraverso neggiati eventualmente emersi dalle a seconda di produttore, modello
l'immagine salvata in precedenza: operazioni di test prima della messa e tecnologia utilizzata, non consen-
LBA #600000
(DANNEGGIATO)
SETORI SPARE SETORI LBA
LBA #0 LBA #599999 LBA #600001 LBA #80293248
G-LIST
tori contigui hanno mantenuto il pro- I comandi da prendere in con- Con il livello Maximum impo-
prio contrassegno (Figura 12). siderazione sono in questo caso stato la password Master non può
Il settore 600000, apparente- i seguenti: sbloccare il disco e per disabilitare
mente cancellato, è stato in realtà la funzionalità di sicurezza deve ob-
marcato come UNC (Uncorrectable • SECURITY SET PASSWORD – Imposta le bligatoriamente utilizzare il comando
Data Error) e presumibilmente ag- password Master e User, imposta SECURE ERASE UNIT, cancellando quin-
giunto alla G-List, forzando una ri- il Livello di sicurezza del disco, di tutto il contenuto del disco. Que-
mappatura dell'indirizzo LBA relativo • SECURITY DISBLE PASSWORD – Disa- sta procedura permette all'utente
con un settore spare. bilita lo stato di Lock del disco ma di conservare la segretezza dei dati
Il presumibilmente è dovuto al non modifica la Master Password, anche nei confronti del detentore
comportamento non standardizzato • SECURITY UNLOCK – Sblocca la pas- della Master password.
degli hard disk, variabile a seconda sword (fino al prossimo riavvio), La Tabella 1 riassume le com-
del produttore, della tecnologia e dello • SECURITY FREEZE LOCK – Imposta binazioni password/livello di sicu-
stesso modello del disco. La rimap- il device in modalità Frozen, rezza.
patura e l'inserimento nella defect impedendo ogni altro comando Una volta bloccato il disco per-
list può avvenire infatti in automatico, Lock fino al successivo riavvio, mette l'esecuzione esclusiva di un
a seguito di determinate istruzioni o do- • SECURITY ERASE PREPARE – Prepa- subset di comandi ata, quali IDENTIFY
po una formattazione a basso livello ed razione al comando Erase. Deve DEVICE ed il comando SECURITY
un remap completo dello spazio utente. essere obbligatoriamente passa- UNLOCK DEVICE .
Per riutilizzare il settore finito nella to prima del comando SECURITY Sia HDAT2 che MHDD permet-
G-List senza cancellarne il contenuto ERASE , tono le impostazioni di sicurezza.
è necessaria una notevole esperienza • SECURITY ERASE UNIT – Sovrascri- In HDAT2 la configurazione avviene
nella struttura fisica degli hard disk ed ve con degli zero o dei pattern all'interno del Security Menu, attra-
un programma apposito che utilizzi specificati (in Enhanced Mode) verso l'opzione Set Password. Con
le caratteristiche proprie del disco in i settori dell'area utente. il parametro Identifier si imposta
questione, ovvero conosca i comandi l'utente mentre con Password Level
specifici del produttore ed il layout del- Struttura di Sicurezza ATA il livello di sicurezza.
le aree precluse dell'hard disk. Uno dei Le specifiche di sicurezza prevedono
pochi programmi che sembrano poter due livelli di password, Master e User Analisi Forense
effettuare simili operazioni in combina- abbinati a due livelli di sicurezza: Nonostante le funzionalità di sicurez-
zione con apposite schede hardware Maximum e High. za ATA non prevedano la crittografia
è pc3000 [Link] Una volta impostata, la password dei dati, l'analisi di un disco protetto
Altra area nella quale è virtualmen- User abilita la sicurezza del disco da una password ATA può rivelarsi
te possibile inserire dati è la (System e viene richiesta dal BIOS ad ogni problematica. Le caratteristiche da
Area), parte di hard disk all'interno del- avvio del computer. Al contrario l'in- tenere in considerazione sono le
la quale sono inseriti moduli contenenti serimento della password Master non seguenti:
firmware, parti di codice, informazioni abilita di default la sicurezza del disco
e caratteristiche del supporto e spes- ed alcuni produttori impostano una • La tecnica del brute-force è pra-
so le stesse Defect Lists. Solitamente password Master di default. L'utilizzo ticamente inapplicabile a meno
in queste aree esiste spazio non principale della password Master di possedere un set minimo di
allocato utilizzato per aggiornamenti è quello di fornire una modalità alternative sicure da provare (es.
del firmware o la modifica di caratte- di riserva per l'accesso ai dati in caso eventuali password di sistema
ristiche, virtualmente occupabile, con di smarrimento della password utente. o applicative appartenute al-
debite conoscenze e strumenti, da
informazioni aggiuntive.
Terminologia
Hard Disk Password
• DCO – Device Configuration Overlay, caratteristiche modificanti i parametri originali
Gli standard ATA 3 introducono
del disco,
specifiche di sicurezza con le quali
• HPA – Host Protected Area, aree esterne allo spazio utente comunemente non
è possibile limitare l'accesso ai dati visibili dal sistema operativo,
presenti in area utente. Il sistema si • P-List – Primary Defect List, lista dei settori danneggiati rilevati dal produttore
basa sull'impostazione di due pas- durante le fasi di test,
sword che unitamente ad altrettante • G-List – Grown Defect List, lista dei settori danneggiati durante il normale utilizzo
modalità di sicurezza consentono del disco,
l'accesso al disco alle sole persone • SA (System Area) – Parte dell'Hard Disk esterna all'area utente contenente fir-
autorizzate, e su una procedura di mware, parti di codice e caratteristiche del disco.
cancellazione sicura del drive.