Il 0% ha trovato utile questo documento (0 voti)
5 visualizzazioni12 pagine

Forensics ATA

L'articolo esplora la forensic degli hard disk e le specifiche ATA, evidenziando metodi di occultamento dei dati e l'importanza della crittografia. Viene discusso l'uso di comandi ATA per interagire a basso livello con i dispositivi e la lettura del Master Boot Record. L'autore fornisce anche consigli pratici e strumenti per analizzare e modificare le configurazioni degli hard disk.

Caricato da

Roberta Pugnetti
Copyright
© All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd
Il 0% ha trovato utile questo documento (0 voti)
5 visualizzazioni12 pagine

Forensics ATA

L'articolo esplora la forensic degli hard disk e le specifiche ATA, evidenziando metodi di occultamento dei dati e l'importanza della crittografia. Viene discusso l'uso di comandi ATA per interagire a basso livello con i dispositivi e la lettura del Master Boot Record. L'autore fornisce anche consigli pratici e strumenti per analizzare e modificare le configurazioni degli hard disk.

Caricato da

Roberta Pugnetti
Copyright
© All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd

Hard Disk Forensics

e Specifiche ATA
Attacco

Maurizio Anconelli

Grado di difficoltà

Quando si parla di Computer Forensics la prima immagine a far


da sfondo ai concetti è una scatoletta di alluminio non più grande
di una mano, con qualche inserto nero ed una base intarsiata da
circuiti, chip e saldature. Solitamente è ben nascosta all'interno
dei case, e la presenza fisica è smascherata unicamente da un
rumore quasi impercettibile ad ogni modifica di mac times.

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/

2 hakin9 Nº 4 /2007 [Link]


Hard Disk Forensics e Specifiche ATA

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,

Listato 1. Output dei comandi fdisk, hdparm e mmls

#fdisk -ul Enabled Supported:


Disk /dev/hda: 41.1 GB, 41110142976 bytes * NOP cmd
255 heads, 63 sectors/track, 4998 cylinders, total * READ BUFFER cmd
80293248 sectors * WRITE BUFFER cmd
Units = sectors of 1 * 512 = 512 bytes * Host Protected Area feature set
Device Boot Start End Blocks Id System * Look-ahead
/dev/hda1 * 63 40965749 20482843+ 7 HPFS/ * Write cache
NTFS * Power Management feature set
/dev/hda2 40965750 80244674 19639462+ c W95 Security Mode feature set
FAT32 (LBA) * SMART feature set
/dev/hda3 80244675 80276804 16065 7 HPFS/ * FLUSH CACHE EXT command
NTFS * Mandatory FLUSH CACHE command
#hdparm -gI * Device Configuration Overlay feature set
/dev/hda: * Automatic Acoustic Management feature set
geometry = 65535/16/63, sectors = 80293248, start = 0 SET MAX security extension
ATA device, with non-removable media Advanced Power Management feature set
Model Number: Maxtor 6K040L0 * DOWNLOAD MICROCODE cmd
Serial Number: K10Y3XXX * SMART self-test
Firmware Revision: NAR61JA0 * SMART error logging
Standards: Security:
Supported: 7 6 5 4 Master password revision code = 65534
Likely used: 7 supported
Configuration: not enabled
Logical max current not locked
cylinders 16383 16383 not frozen
heads 16 16 not expired: security count
sectors/track 63 63 not supported: enhanced erase
-- HW reset results:
CHS current addressable sectors: 16514064 CBLID- above Vih
LBA user addressable sectors: 80293248 Device num = 0 determined by the jumper
device size with M = 1024*1024: 39205 MBytes Checksum: correct
device size with M = 1000*1000: 41110 MBytes (41 GB) #mmls -t dos -v -b /dev/hda
Capabilities: DOS Partition Table
LBA, IORDY(can be disabled) Offset Sector: 0
Queue depth: 1 Units are in 512-byte sectors
Standby timer values: spec'd by Standard, no device Slot Start End Length Size
specific minimum Description
R/W multiple sector transfer: Max = 16 Current = 16 00: ----- 0000000000 0000000000 0000000001 0512B
Advanced power management level: unknown setting Primary Table (#0)
(0x0000) 01: ----- 0000000001 0000000062 0000000062 0031K
Recommended acoustic management value: 192, current Unallocated
value: 254 02: 00:00 0000000063 0040965749 0040965687 0019G
DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 NTFS (0x07)
*udma5 udma6 03: 00:01 0040965750 0080244674 0039278925 0018G
Cycle time: min=120ns recommended=120ns Win95 FAT32 (0x0C)
PIO: pio0 pio1 pio2 pio3 pio4 04: 00:02 0080244675 0080276804 0000032130 0015M
Cycle time: no flow control=120ns IORDY flow NTFS (0x07)
control=120ns 05: ----- 0080276805 0080293247 0000016443 0008M
Commands/features: Unalloca

[Link] hakin9 Nº 4/2007 3


Attacco

DCO, Security Mode, G-List e P-list


di un disco PATA (Parallel ATA), Listato 2. Output di fdisk e mmls dopo le midi fiche DCO
quello che più comunemente ed al- # fdisk -ul /devhda
trettanto erroneamente viene definito Disk /dev/hda: 41.0 GB, 41085273600 bytes
disco EIDE o IDE. 255 heads, 63 sectors/track, 4995 cylinders, total 80244675 sectors
Units = sectors of 1 * 512 = 512 bytes
Device Boot Start End Blocks Id System
Programmi Utilizzati
/dev/hda1 * 63 40965749 20482843+ 7 HPFS/NTFS
Per la configurazione e l'analisi /dev/hda2 40965750 80244674 19639462+ c W95 FAT32 (LBA)
del disco abbiamo bisogno di uno # mmls -t dos -v -b /dev/hda
strumento che agisca a basso DOS Partition Table
livello. Hdat2 è un programma Offset Sector: 0
Units are in 512-byte sectors
freeware scaricabile dal sito http:
//[Link] per la diagnostica Slot Start End Length Size Description
a basso livello degli hard disk che 00: ----- 0000000000 0000000000 0000000001 0512B Primary Table (#0)
permette la modifica di parametri 01: ----- 0000000001 0000000062 0000000062 0031K Unallocated
ATA quali DCO e HPA. È possibile 02: 00:00 0000000063 0040965749 0040965687 0019G NTFS (0x07)
03: 00:01 0040965750 0080244674 0039278925 0018G Win95 FAT32 (0x0C)
scaricare il programma o un como-
do eseguibile che crea il floppy disk
di boot con il tool già inserito. informazioni estese ed eseguire va- Area feature set, Device Configu-
Per il resto utilizzeremo pro- rie operazioni sull'HD mediate dal ration Overlay feature set,
grammi a linea di comando come device driver subsystem. • il supporto alle funzionalità ATA di
fdisk, hdparm e mmls, un tool dello Assieme all'identificativo del disco sicurezza: Security: Master pas-
sleuthkit ([Link] già pre- passiamo i parametri I (i maiuscola) sword revision code = 65534, sup-
sente in hakin9 live. che permette di ricavare informazioni ported, not enabled, not locked,
direttamente dal drive, comprensive not frozen, expired: security count,
Analisi del Disco di specifiche ATA supportate e g, che supported: enhanced erase.
Il sistema migliore per ricavare le infor- mostra la geometria e le dimensioni
mazioni e le specifiche del disco è di del drive. Nel Listato 1 è riportato l'output com-
eseguire il boot da un sistema Linux Li- pleto dei due comandi.
ve, il CD hakin9 Live allegato alla rivista bash-3.1# hdparm -gI Riassumendo l'Hard Disk Ma-
è la scelta ideale, e utilizzare i comandi xtor 6K040L0 ha la capacità di
fdisk, hdparm e mmls (sleuthkit). Tra le informazioni, oltre a numero 39205 Mbytes (1024*1024), 40 GB
Attraverso fdisk visualizziamo una di serie e geometria, possiamo os- circa, supporta gli standard ATA 7
lista(l) dei dischi collegati con i relativi servare alcune caratteristiche fonda- e la configurazione di HPA e DCO ed
parametri. Il flag u permette di visua- mentali per le modifiche che vogliamo è configurato con tre partizioni pri-
lizzare il settore di partenza ed il set- effettuare: marie, la prima NTFS è la partizione
tore finale al posto dei cilindri: di sistema Win2000, una seconda
• gli standard ATA supportati dal partizione primaria è formattata in
bash-3.1# fdisk -ul disco: Standards: Supported: 7 6 FAT32 ed una terza mini-partizione
5 4, Likely Used: 7, primaria formattata in NTFS alla fine
Una volta visualizzato il drive interes- • la presenza di HPA e DCO tra le del disco. Dall'output di mmls, in par-
sato, lo passiamo come argomento features ATA supportate: Ena- ticolare, è possibile osservare che
ad hdparm che permette di ricavare bled Supported, Host Protected oltre al Master Boot Record (Primary

Configurazione Originale

31 Kb Unallocated First Partition NTFS 19 GB Third Partition NTFS 15 MB

MBR 512 Kb 8 MB Unallocated

Dimensioni Originali : 80293248 settori (41,11 GB) Second Partition FAT32 18 GB


Spazio Utente : 80293248

Fig. 1: Configurazione base del disco

4 hakin9 Nº 4/2007 [Link]


Hard Disk Forensics e Specifiche ATA

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.

La figura 3 mostra in dettaglio la par-


te del Master Boot Record contenen-
te le specifiche delle partizioni.
Entrando nel sistema Windows
2000 contenuto nella prima partizio-
ne, il disk manager mostra le parti-
zioni visibili in Figura 3a.

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

[Link] hakin9 Nº 4/2007 5


Attacco

Partition Table

0x00 C101 – Start CHS – 011

0x07 = Partition Type NTFS 0x80 = Boot

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

Partition # 3 0x00 00 00 3f = Start LBA = 63 0x55 aa = Boot Sector

Fig. 3: Tabella delle Partizoni

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

6 hakin9 Nº 4/2007 [Link]


Hard Disk Forensics e Specifiche ATA

Il comando IDENTIFY DEVICE ripor- sull'etichetta il numero max LBA e le Device


ta una serie di informazioni sul disco, dimensioni in GB riportate corretta- Configuration Overlay
tra le quali le varie caratteristiche mente sulla maggioranza degli hard Introdotto con le specifiche ATA/
supportate ed i settori indirizzabili. disk. In Figura 4 è riportata l'etichetta ATAPI 6, il DCO interagisce con una
La differenza sostanziale è che del disco con evidenziato l'indirizzo serie di comandi e caratteristiche
mentre READ NATIVE MAX ADDRESS ri- max LBA di fabbrica. modificando così i parametri del di-
porta i settori reali del disco, IDENTIFY Tornando all'acquisizione della sco riportati:
DEVICE riporta un parametro modifi- reale capacità del disco attraverso
cabile attraverso appositi comandi gli standard ATA, si presenta quindi • DEVICE CONFIGURATION IDENTIFY
che vedremo nella configurazione una sorta di gerarchia di comandi, – Mostra in dettaglio le caratte-
della Host Protected Area. tra i quali DEVICE CONFIGURATION SET ristiche selezionabili e la reale
Non è finita. Il comando DEVICE ricopre la posizione dominante. grandezza del disco,
CONFIGURATION SET (DCO) può attiva- Ecco perché la prima modifica • DEVICE CONFIGURATION SET – Per-
re o disattivare alcune caratteristiche che andremo a fare sarà la crea- mette di modificare i comandi
del disco e modificare la massima di- zione dell'area DCO. Riassumen- e le modalità del disco, compresa
mensione LBA dello stesso, facendo do, ecco come varieranno i settori la grandezza,
in modo che anche con il comando utilizzabili a seconda dei comandi • DEVICE CONFIGURATION RESTORE
READ NATIVE MAX ADDRESS, sia riporta- impartiti: – Rimuove ogni modifica e ritorna
to un numero di settori raggiungibili ai parametri originali,
limitato rispetto all'originale. • SETTORI REALI: 80293248 settori • DEVICE CONFIGURATION FREEZE LOCK
Lasciando da parte i comandi (41,10 GB), – Blocca le modifiche alla confi-
ATA, due metodi pratici ed efficaci • DEVICE CONFIGURATION SET: (DCO): gurazione DCO.
per ricavare la reale capacità del 80244674 settori (41,08 GB),
disco consistono nel prendere nota • SET MAX ADDRESS : (HPA): 40965751 La nostra prima operazione consiste
di marca e modello dell'hard disk settori (20,97 GB). nel nascondere la partizione NTFS
per controllarne le caratteristiche da 16 MB e lo spazio non allocato al
sul sito del produttore e nell'estrar- La Figura 5 mostra i passaggi della termine dello stesso (8MB) attraver-
re fisicamente il drive osservando configurazione: so DEVICE CONFIGURATION SET.

31 Kb Unallocated First Partition NTFS 19 GB Third Partition NTFS 15 MB


BASE

MBR 512 Kb 8 MB Unallocated

Dimensioni Originali : 80293248


IDENTIFY DEVICE : 80293248 Second Partition FAT32 18 GB

31 Kb Unallocated First Partition NTFS 19 GB


DCO

MBR 512 Kb

DEVICE CONFIGURATION IDENTIFY : 80293248 (41,10 GB)


READ NATIVE MAX ADDRESS : 80211671 (41,08 GB) Second Partition FAT32 18 GB
IDENTIFY DEVICE : 80211671 (41,08 GB)

31 Kb Unallocated First Partition NTFS 19 GB


DCO + HPA

MBR 512 Kb

DEVICE CONFIGURATION IDENTIFY : 80293248 (41,10 GB)


READ NATIVE MAX ADDRESS : 80211671 (41,08 GB)
IDENTIFY DEVICE : 40965751 (20,97 GB)

Fig. 5: Fasi di Configurazione

[Link] hakin9 Nº 4/2007 7


Attacco

Forensics rilevano in ogni caso la di-


screpanza tra la dimensione effettiva
e quella utilizzabile(in Figura 8 X-
Ways mostra il messaggio relativo).
SleuthKit non supporta al mo-
mento il rilevamento di modifiche
DCO ma la caratteristica è in fase
di implementazione da parte dell'au-
tore (Brian Carrier).
Una modifica di questo tipo, es-
sendo contenuta in termini di spazio
sottratto a quello effettivo, passa
solitamente inosservata.

Fig. 6: Disk Manager dopo modifica DCO Host Protected Area


La modifica successiva, consistente
Come abbiamo visto dalla prece- conda partizione termina nel settore nella creazione di una Host Protected
dente analisi il terzo record ha inizio 80276804, inseriamolo quindi come Area, è più drastica e facilmente rile-
nel byte 0x01DE e termina nel byte nuovo valore (INS) al posto del mas- vabile, visto che verrà completamen-
0x1ED. Salviamolo con dd settando simo settore originale. Premiamo te nascosta la seconda partizione
ad un settore la dimensione dei bloc- S per rendere effettive le modifiche e la dimensione del disco sarà prati-
chi (bs=1), a 478 il blocco di partenza e confermiamo. camente dimezzata.
(skip=478) ed ovviamente a 16 il nu- Al riavvio troveremo un hard Le Host Protected Area sono in-
mero dei byte da copiare (count=16): disk sottodimensionato. Già a livello trodotte dagli standard ATA / ATAPI
del BIOS è possibile osservare che 4 e consistono in particolari zone
dd if=/dev/hda bs=1 skip=478 la grandezza del disco è variata. Aven- dell'hard disk nascoste al sistema
count=16 of=/mnt/floppy/[Link] do modificato la tabella delle partizioni operativo ed al filesystem. L'utilizzo
nel Master Boot Record, Windows tradizionale di queste aree è lo sto-
Ora possiamo eliminare la partizione 2000 vedrà due partizioni sane, senza rage di dati o applicazioni di ripristino
portando a zero i byte relativi. Il para- alcuno spazio libero (Figura 7). del sistema, immagini ridotte di si-
metro di offset in output di dd è seek È possibile ottenere la conferma stemi operativi richiamati dalle utility
(rispetto a skip in input): finale eseguendo il boot da hakin9 di boot di produttori ecc... È però
live, eseguendo fdisk, hdparm e mmls possibile utilizzare la stessa carat-
dd if=/dev/zero bs=1 count=16 (nel Listato 2 l'output di fdisk e mmls teristica per creare aree inaccessibili
seek=478 of=/dev/hda dopo la modifica DCO). attraverso il normale utilizzo del si-
Programmi dedicati all'analisi stema, al fine di nascondere dati più
Eseguendo il riavvio della macchina forense quali EnCase e X-Ways o meno legali.
ed entrando in Windows possiamo
constatare come il disk manager
veda come libero lo spazio al termi-
ne del disco (Figura 6). Eseguiamo
un ulteriore riavvio dopo aver inserito
il floppy di hdat2.
Entrati nell'ambiente del program-
ma, la prima schermata (Device List)
consiste in una lista dei device da
selezionare. Selezionato l'hard disk
in causa, entriamo nel menu Device
Configuration Overlay Menu.
Selezionando Modify entriamo di-
rettamente nell'ambiente di modifica
DCO. Per ridurre la dimensione del
disco dobbiamo editare il parametro
Maximum LBA sectors, impostando
come ultimo settore quello finale del-
la seconda partizione. Dall'output di
fdisk e mmls abbiamo visto che la se- Fig. 7: Disk Manager dopo DCO

8 hakin9 Nº 4/2007 [Link]


Hard Disk Forensics e Specifiche ATA

Come per il DCO, andiamo prima


ad analizzare i comandi ATA riguar-
danti le Host Protected Area.

• READ NATIVE MAX ADDRESS – Ri-


porta la quantità massima origi-
nale di settori utilizzabili (tranne
in caso di DCO),
• SET MAX ADDRESS – Permette
di modificare il numero dei settori
accessibili a livello utente,
• SET MAX SET PASSWORD – Imposta
una password non resistente
al riavvio,
• SET MAX LOCK – Disabilita i co-
mandi SET MAX eccetto SET MAX
UNLOCK ,
• SET MAX UNLOCK – Riabilita i co- Fig. 9: Disk Manager dopo modifica HPA
mandi SET MAX ,
• SET MAX FREEZE LOCK – Disabilita dd if=/dev/hda bs=1 count=16 Impostiamo quindi come nuovo
tutti i comandi SET MAX compreso skip=462 of=/mnt/floppy/[Link] valore (INS) il limite della prima
UNLOCK . partizione, 40965749, modificando
quindi un bel colpo di spugna: la grandezza del disco per l'utente
Utilizzeremo il comando SET MAX in 20,97 GB. Inseriamo il dato con
ADDRESS per reimpostare il nume- dd if=/dev/zero bs=1 count=16 Invio e confermiamo con S.
ro massimo di settori utilizzabili, seek=462 of=/dev/hda Al riavvio i disk manager di Win-
come riportato da DEVICE IDENTIFY dows 2000 mostrerà un disco da
e nascondere quindi completa- Impostazione della 20,97 GB (Figura 9). E in Linux?
mente anche la partizione FAT da Host Protected Area
18 GB. Eseguiamo l'avvio del sistema con Kernel 2.6.x e HPA
Il primo passo consiste, come in hdat2 e selezioniamo il menu Set Eseguito il riavvio con hakin9 live
precedenza, nella modifica della ta- Max Address all'interno della sezio- fdisk mostra sempre un disco di 41
bella delle partizioni in modo da non ne SET MAX (HPA). Gb e la partizione NTFS, mmls mo-
lasciare traccia della seconda parti- Osservando i parametri NATIVE MAX stra lo spazio non allocato dove una
zione che, osservando i precedenti ADDRESS (max. address of sectors): volta era la partizione FAT. Il mistero
output di fdisk e mmls, si estende è svelato attraverso l'esecuzione
dal settore 0040965750 al settore Native area: 80244675 sectors=41.08 GB di dmesg | grep hda:
0080244674. User area: 80244675 sectors=41.08 GB
Creiamo un backup del record hda: Host Protected Area detected
della seconda partizione che, come È evidente come il comando READ hda: Host Protected Area disabled
possiamo osservare va dal byte 462 NATIVE MAX ADDRESS non veda la por- hda: 80244675 sectors (41085 MB).......
al byte 478: zione di disco nascosta in DCO.
Il kernel 2.6 rileva e disabilita in auto-
matico le Host Protected Area, a me-
no che il BIOS impedisca l'accesso ai
comandi SET MAX . Questo comporta-
mento ha generato problemi con alcu-
ni controller RAID e con le funzioni di
sospensione dei laptop e sembra che
nelle future versioni la disabilitazione
delle HPA verrà resa facoltativa.

Montare la partizione in HPA


Visto che il kernel ha gentilmente
disabilitato la Host Protected Area,
approfittiamone per montarla e ve-
Fig. 8: Avviso di X-Way Foresics dere cosa rimane all'interno.

[Link] hakin9 Nº 4/2007 9


Attacco

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

LBA #0 LBA #599999 LBA #600001 LBA #80293248


NUOVO LBA #600000
(SPARE)

Fig. 10: Schema logico di sostituzione del settore danneggiato

10 hakin9 Nº 4/2007 [Link]


Hard Disk Forensics e Specifiche ATA

Tabella 1. Struttura di Sicurezza ATA Digitiamo y alla prima richiesta


Utente Livello Operazioni di conferma quindi impostiamo
lo stesso settore come inizio e fine
Master Max NON può sbloccare il disco (SECURITY UNLOCK)
(600000):
Può unicamente cambiare la password utente
dopo la formattazione sicura del drive e la reim-
Continue? (y/N)
postazione della sicurezza del disco
1 block= 1 sector (slow mode)
Master High Può sbloccare il disco (SECURITY UNLOCK) Type start sector to write
Può disabilitare la password (from 0) [0]:
(SECURITY DISABLE PASSWORD) Type end sector [0]:
User Max Può disabilitare la password Start : 600000
(SECURITY DISABLE PASSWORD) End : 600000
Può sbloccare il disco (SECURITY UNLOCK) Continue? (y/N)
User High Può disabilitare la password
(SECURITY DISABLE PASSWORD) Confermiamo un'ultima volta uscia-
Può sbloccare il disco (SECURITY UNLOCK) mo dal programma, estraiamo
il floppy ed eseguiamo il reboot della
tendo quindi l'utilizzo delle stesse # dd if=/dev/hda bs=512 count=3 stazione con il cd di hakin9 live inse-
per nascondere una grande quantità skip=599999 | xxd rito. L'output del comando:
di dati.
Avviamo il sistema con il floppy # dd if=/dev/hda bs=512 count=3
Marcatura di un settore di MHDD inserito ed utilizziamo skip=599999 | xxd
Per fare un esempio di sostituzione il comando MAKEBAD, che permette
di settore danneggiato utilizzeremo di marcare uno o più settori come Mostra come il settore 600000 sia
un programma simile ad hdat2 ed difettosi. completamente vuoto, mentre i set-
altrettanto gratuito quale MHDD pre-
levabile da [Link]
Before MAKEBAD
[Link].
Per prima cosa selezioniamo tre
0000000: 2353 4554 544f 5245 2035 3939 3939 3923 #SETTORE 599999#
settori contigui non utilizzati dal siste- 0000010: 2353 4554 544f 5245 2035 3939 3939 3923 #SETTORE 599999#
0000020: 2353 4554 544f 5245 2035 3939 3939 3923 #SETTORE 599999#
ma operativo. Per questo esempio uti-
0000030: 2353 4554 544f 5245 2035 3939 3939 3923 #SETTORE 599999#
lizzeremo i tre settori 599999, 600000 .......
0000200: 494c 204d 494f 2054 4553 5353 534f 524f IL MIO TESSSSORO
e 600001, li contrassegneremo con
0000210: 494c 204d 494f 2054 4553 5353 534f 524f IL MIO TESSSSORO
una stringa per renderli identificabili, 0000220: 494c 204d 494f 2054 4553 5353 534f 524f IL MIO TESSSSORO
0000230: 494c 204d 494f 2054 4553 5353 534f 524f IL MIO TESSSSORO
quindi marcheremo il settore 600000
.......
come danneggiato. Per prima cosa 0000400: 2353 4554 544f 5245 2036 3030 3030 3123 #SETTORE 600001#
0000410: 2353 4554 544f 5245 2036 3030 3030 3123 #SETTORE 600001#
azzeriamo il contenuto dei settori:
0000420: 2353 4554 544f 5245 2036 3030 3030 3123 #SETTORE 600001#
0000430: 2353 4554 544f 5245 2036 3030 3030 3123 #SETTORE 600001#
.......
# dd if=/dev/zero bs=512 count=3
seek=599999 of=/dev/hdc
Fig. 11: Settori prima di MAKEBAD
Quindi inseriamo nei settori dei pat-
terns identificativi: After MAKEBAD

perl -e "print '#SETTORE 599999#' x 32"


0000000: 2353 4554 544f 5245 2035 3939 3939 3923 #SETTORE 599999#
| dd of=/dev/hdc seek=599999 0000010: 2353 4554 544f 5245 2035 3939 3939 3923 #SETTORE 599999#
0000020: 2353 4554 544f 5245 2035 3939 3939 3923 #SETTORE 599999#
count=1
0000030: 2353 4554 544f 5245 2035 3939 3939 3923 #SETTORE 599999#
perl -e "print 'IL MIO TESSSSORO' x 32" .......
0000200: 0000 0000 0000 0000 0000 0000 0000 0000 ................
| dd of=/dev/hdc seek=600000
0000210: 0000 0000 0000 0000 0000 0000 0000 0000 ................
count=1 0000220: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0000230: 0000 0000 0000 0000 0000 0000 0000 0000 ................
perl -e "print '#SETTORE 600001#' x 32"
.......
| dd of=/dev/hdc seek=600001 0000400: 2353 4554 544f 5245 2036 3030 3030 3123 #SETTORE 600001#
0000410: 2353 4554 544f 5245 2036 3030 3030 3123 #SETTORE 600001#
count=1
0000420: 2353 4554 544f 5245 2036 3030 3030 3123 #SETTORE 600001#
0000430: 2353 4554 544f 5245 2036 3030 3030 3123 #SETTORE 600001#
.......
La Figura 11 mostra il contenuto dei
tre settori contrassegnati estratti at-
traverso il comando: Fig. 12: Settori dopo MAKEBAD

[Link] hakin9 Nº 4/2007 11


Attacco

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.

12 hakin9 Nº 4/2007 [Link]


In Rete
• [Link] – Tool HDAT2 – Documentazione interessante su HD Reco-
very,
• [Link] – Tool MHDD,
• [Link] – Sleuthkit e Autopsy, Open Source Computer Forensics Sof-
tware,
• [Link] – Software ed Hardware per interventi a basso livello su
HD,
• [Link] – Comitato di sviluppo specifiche T13 AT Attachment,
• [Link] – Information for Developers of Products
Using ATA (PATA, IDE/EIDE), Serial ATA (SATA), ATAPI, CF, CE-ATA and Other
ATA Related Interfaces.

l'utente del disco). Le implemen- l'utente, a causa degli algoritmi


tazioni standard infatti prevedono di hashing che alcuni BIOS ap-
un contatore che limita a cinque plicano alla password prima di
i possibili tentativi, terminati passarla al disco.
i quali diventa obbligatorio il riav- • Non esistendo crittografia è pos-
vio del sistema. sibile risalire ai dati fisicamente,
• Alcuni produttori impostano una aprendo il disco in camera sterile
Master password di default, uti- ed effettuando il recupero con le
le unicamente quando il livello apposite apparecchiature.
di sicurezza è settato ad High. • In alcuni casi la sostituzione del
Si può capire se la password firmware del disco può causare
Master è stata modificata dal Ma- la cancellazione dei parametri
ster Password Revision Code (se permettendo l'accesso ai dati.
supportato dal device), un codice
di riferimento che come valore di Riassunto
fabbrica ha il valore 0xFFFE. Ta- L'articolo ha mostrato alcune me-
le valore viene diminuito ad ogni todologie di occultamento dei dati
cambio di password. utilizzanti le caratteristiche a basso
• Ad oggi sembra non esistano tool livello degli hard disk. Tali sistemi
che permettano di bypassare in rappresentano possibili fonti di pro-
maniera semplice la password, blemi per l'analista forense che non
alcune aziende vendono tuttavia ne comprenda appieno le caratte-
dei servizi (da verificare) di ri- ristiche. Ulteriori difficoltà sono poi
mozione delle password ATA dal dovute al fatto che la difformità delle
disco. caratteristiche di implementazione
• L'accesso al disco attraverso degli standard ATA utilizzate dai
un tool di inserimento della pas- produttori rende difficile la codifica
sword su un sistema con BIOS di metodologie univoche e lo svi-
differente da quello di origine, luppo di software appropriati. Come
può comportare l'impossibilità se ciò non bastasse, la mediazione
di sbloccare il disco pur cono- di BIOS dal comportamento differen-
scendo la password corretta del- te complica ulteriormente l'ambiente
di analisi.
Il testo di base per chi sia interes-
Cenni sull'autore sato ad approfondire gli argomenti
L'autore si occupa di computer fo-
è il libro di Brian Carrier (lo sviluppa-
rensics ed investigazione digitale,
gestisce il sito dedicato all'argomento
tore di SleuthKit) File System Foren-
[Link] e lavora come sics Analysis che, oltre a fornire una
amministratore di rete e sicurezza visione approfondita dei principali
presso una compagnia multiservizi filesystem, comprende una parte
del Nord Italia. estesa sulla struttura di Hard Disk,
partizioni e volumi. l

Potrebbero piacerti anche