Documentació de Jornada Pràctica › Docs › COEINF_Jornada_de... · Documentació de Jornada...

13
COMISSIÓ DE PERITATGES DEL COL LEGI OFICIAL D’ENGINYERIA EN INFORMÀTICA DE CATALUNYA Documentació de Jornada Pràctica Apropament al clonat de discos: dispositius, eines i comandes Joaquim Anguas 8 de març de 2011 Documentació de Jornada Pràctica: Apropament al clonat de discos: dispositius, eines i comandes

Transcript of Documentació de Jornada Pràctica › Docs › COEINF_Jornada_de... · Documentació de Jornada...

COMISSIÓ DE PERITATGES DEL COL LEGI OFICIAL D’ENGINYERIA EN INFORMÀTICA DE CATALUNYA

Documentació de Jornada Pràctica

Apropament al clonat de discos: dispositius, eines i comandes

Joaquim Anguas

8 de març de 2011

Documentació de Jornada Pràctica: Apropament al clonat de discos: dispositius, eines i comandes

Documentació de Jornada Pràctica: Apropament al clonat de discos: dispositius, eines i comandes

Página 2 de 13

Contingut 1 Context .................................................................................................................................. 3

1.1 El Col·legi ....................................................................................................................... 3

1.2 La Comissió de Peritatges .............................................................................................. 3

1.3 Participació, doctrina i sessions de bones pràctiques ................................................... 3

2 Proposta de sessió ................................................................................................................. 4

2.1 Plantejament de la sessió .............................................................................................. 4

3 Documentació ....................................................................................................................... 5

3.1 Recomanacions prèvies ................................................................................................. 5

3.2 Introducció .................................................................................................................... 6

3.3 Enllaços .......................................................................................................................... 8

3.3.1 Bloquejadors ......................................................................................................... 8

3.3.2 Clonadores............................................................................................................. 8

3.3.3 Distributions .......................................................................................................... 8

3.4 Previous ......................................................................................................................... 9

3.5 Hardware setup ............................................................................................................. 9

3.6 Basic commands ............................................................................................................ 9

3.6.1 mount .................................................................................................................... 9

3.6.2 mount flavors ...................................................................................................... 10

3.6.3 parted .................................................................................................................. 10

3.6.4 dd / dcfldd / dc3dd / ddrescue ............................................................................ 11

3.6.5 Examples ............................................................................................................. 12

Documentació de Jornada Pràctica: Apropament al clonat de discos: dispositius, eines i comandes

Página 3 de 13

1 Context

1.1 El Col·legi El Col·legi Oficial d’Enginyeria en Informàtica de Catalunya és una institució de dret públic

creada per la Llei 2/2001 del Parlament de Catalunya. Aglutina als i les enginyers / es en

Informática, els representa, organitza, protegeix i millora, vetllant per un exercici adequat de la

professió, amb garantia de qualitat i voluntat de servei a la Societat.

1.2 La Comissió de Peritatges La seva Comissió de Peritatges, treballa en la formació i capacitació dels pèrits que ofereix tant

a entitats privades com a organismes públics o òrgans judicials.

El servei de peritatges va ser un dels primers ofert pels col·legis i ha estat objecte de regulació

recent amb un codi deontològic, un estatut i un reglament.

1.3 Participació, doctrina i sessions de bones pràctiques A partir de la regulació de la Comissió de Peritatges l’eix fonamentals de la seva actuació ha

estat la cerca de la excel·lència en l’activitat. La voluntat de servei marca la línia d’actuació del

Col·legi d’Enginyeria en Informàtica, establint els mecanismes per a garantir un servei de la

màxima qualitat. Les mesures dissenyades per a aconseguir aquest objectiu han estat:

- El foment actiu de la participació dels membres de la Comissió en la definició i

implementació de l’orientació de la mateixa,

- la creació d’un nucli de coneixement que permeti una constant millora tècnica dels

serveis,

- l’establiment de mesures per tal de garantir la formació continuada dels pèrits i

- la institució de mecanismes que assegurin la uniformitat de criteris.

La uniformitat de criteris es concretaria en una figura de caràcter doctrinal: les bones

pràctiques. Aquestes bones pràctiques es generen en jornades que cerquen establir un

consens al voltant d’un tema concret i fitat, que es considera d’interès doctrinal i que es

desenvolupa i contrasta en una o més sessions.

Documentació de Jornada Pràctica: Apropament al clonat de discos: dispositius, eines i comandes

Página 4 de 13

2 Proposta de sessió Aquesta sessió pràctica ha estat proposada a la junta de la Comissió de Peritatges pel pèrit

Joaquim Anguas Balsera en data 26 de març de 2011.

2.1 Plantejament de la sessió Encara que resta fora de l’abast de la sessió la justificació de la pròpia pràctica, en l’àmbit

forense és pràctica comú la còpia de discos en la forma que s’anomena “clonat”, “còpia mirall”

o “còpia bit a bit”.

Aquest tipus de còpia s’aplica a mitjans d’emmagatzemament magnètic i reprodueix l’estat

global del dispositiu, a diferència d’altres tipus de còpies que només atendrien a l’espai ocupat

del mateix. D’aquesta manera es garanteix que l’especialista que ha d’analitzar el mitjà, tindrà

a la seva disposició l’estat complert del mateix i no només allò que és visible a l’usuari.

La sessió pretén apropar als pèrits a diferents dispositius, eines i comandes relacionades amb

el clonat de discos.

El ponent farà una petita introducció a les necessitats i problemes derivats de la pràctica de les

accions de clonat i farà una demostració guiada de diferents eines i comandes utilitzades en el

procés d’adquisició i posada a disposició de l’especialista dels mitjans adquirits.

Documentació de Jornada Pràctica: Apropament al clonat de discos: dispositius, eines i comandes

Página 5 de 13

3 Documentació La documentació referent a les comandes que segueix es proporciona en anglès per tal de

facilitar la referència, ja que bona part d’aquesta referència es troba en aquest idioma.

3.1 Recomanacions prèvies En cas que el pèrit hagi d’adquirir evidències en el curs d’un cas, cal que segueixi les següents

recomanacions (extretes d’un decàleg treballat amb diferents actors dintre de l’àmbit de la

prova en informàtica, en castellà):

1. Sé prudente. Lee los siguientes apartados. Si no tienes perfectamente claro a qué se

refieren, deja que otro más preparado se ocupe de llevar a cabo la acción. No actúes

sobre entornos sobre los que no tengas un conocimiento que te permita actuar con la

debida soltura.

2. Actúa con independencia e imparcialidad. No debes actuar en casos en los que tu

independencia o imparcialidad puedan quedar en entredicho. Manifiesta a las partes

implicadas cualquier circunstancia que pudiera interpretarse en detrimento de ambos

conceptos.

3. Asegúrate el encargo. Antes de realizar cualquier actuación, asegúrate de que tus

acciones están cubiertas por los correspondientes mandatos por escrito, que el objeto

y medios están debidamente definidos y que dichas acciones no contravienen la

legislación vigente, en especial si pueden afectar a datos de personas ajenas al

encargo.

4. Planea la acción. Planifica la acción en la medida de lo posible y prepara el equipo

necesario, atente en lo posible al plan establecido y procesa las evidencias por orden

de volatilidad.

5. Actúa con transparencia. Realiza todas las acciones necesarias en presencia de un

tercero independiente.

6. Trabaja con agilidad. Piensa en el impacto que tus acciones tienen en los sistemas

objeto de estudio.

7. Documenta. Crea y mantén un registro exhaustivo de todas las acciones que realizas,

asegúrate de que tus acciones son repetibles, identifica, marca, sella digitalmente y

documenta adecuadamente las evidencias. Captura todos aquellos elementos que

permitan dotar a tus acciones de la debida coherencia.

8. No comprometas la evidencia. Evita por todos los medios alterar la evidencia, analiza

siempre sobre una copia secundaria nunca sobre el original. No ejecutes programas

sobre el sistema objeto, si debes capturar evidencias en caliente hazlo de forma no

intrusiva.

Documentació de Jornada Pràctica: Apropament al clonat de discos: dispositius, eines i comandes

Página 6 de 13

9. Usa herramientas adecuadas. Las herramientas que uses han de estar orientadas a

capturar evidencias y han de ser accesibles, contrastables, verificables o constituir un

estándar de facto en la actividad.

10. Sé discreto. No comentes la información a la que tengas acceso por tu encargo con

nadie. Debes poner los medios adecuados para que los datos relativos al encargo se

mantengan secretos. Accede únicamente a los datos mínimos imprescindibles para

cumplir el encargo destruyéndolos una vez dejan de ser necesarios.

3.2 Introducció Aquesta jornada s’orienta a fer una primera aproximació a la clonació de discos, principalment

fent servir eines obertes.

Existeixen al mercat diferents productes hardware que faciliten les tasques de clonat de discos.

Es tracta de dispositius d’ús específic que permeten realitzar amb una configuració mínima

tasques de clonat de discos amb un rendiment elevat.

Un dels aspectes significatiu d’aquests dispositius és que es presenten com una solució

tancada i que estan tancats a altres tasques. D’aquesta manera, actors no tècnics els perceben

com més fiables a l’hora de realitzar tasques de clonat.

D’altra banda, aquesta especificitat i el seu preu elevat són una barrera d’entrada important.

Hi ha també disponibles uns dispositius que es connecten a un mitjà d’emmagatzemament i

que bloquegen les ordres d’escriptura que se li puguin enviar. Són especialment útils quan es

vol examinar un dispositiu i cal assegurar que no es veurà modificat de cap manera. Hi ha

ocasions, però, en les que la modificació és impossible d’evitar, com per exemple en el cas de

mitjans d’emmagatzemament que contenen particions ntfs que no s’han tancat

adequadament. Sense escriure el disc actualitzant la informació que cal, no es podran muntar.

A banda dels dispositius d’ús específic, existeixen diferents distribucions de sistemes operatius

orientades a realitzar accions forenses. Aquestes distribucions solen basar-se en el sistema

operatiu Linux, comunament en les distribucions Knoppix i darrerament Ubuntu.

En aquestes distribucions es troben eines orientades a donar una interfície gràfica a comandes

de més baix nivell i que comentarem a continuació.

AIR (Automated Image and Restore) o GParted són un exemple comú d’aquestes eines.

Documentació de Jornada Pràctica: Apropament al clonat de discos: dispositius, eines i comandes

Página 7 de 13

Ilustración 1 AIR

Ilustración 2 GParted

Finalment hi ha un conjunt de comandes que ofereixen funcionalitat bàsica que permet

realitzar de forma fiable i segura aquelles tasques més comuns relacionades amb la clonació de

discos. Bàsicament mount, parted i dcfldd/sd3dd.

Aquesta jornada centrarà la seva part pràctica en l’ús d’aquestes comandes.

El procediment habitual d’obtenció i tractament de suports magnètics seria el següent:

- obtenció d’informació del suport amb parted o mount

- còpia amb dcfldd

- obtenció d’informació de la imatge

Documentació de Jornada Pràctica: Apropament al clonat de discos: dispositius, eines i comandes

Página 8 de 13

- muntatge de les particions d’interès

- anàlisi

Les eines i dispositius de clonat també es poden fer servir per esborrar discos de forma segura.

3.3 Enllaços

3.3.1 Bloquejadors

http://www.digitalintelligence.com/forensicwriteblockers.php

http://www.forensicswiki.org/wiki/Write_Blockers

http://www.wiebetech.com/includes/home/featuredproductx.php?item=5

3.3.2 Clonadores

http://www.icsforensic.com/

http://www.logicube.com/

3.3.3 Distributions

http://www.backtrack-linux.org/

http://www.caine-live.net/

http://www.deftlinux.net/

Documentació de Jornada Pràctica: Apropament al clonat de discos: dispositius, eines i comandes

Página 9 de 13

3.4 Previous Cloning hard drives is a common activity in the course of the duties of an expert witness. Some

rely on specialized hardware devices, some prefer to use a general purpose computer plus

some additional hardware and system software.

System software is usually a forensics oriented Linux distribution.

Forensics Linux distributions use to include tools that ease the action to clone devices. But in

order to gain a better knowledge about what involves a clone copy and how to use it once it’s

produced, we will focus on basic commands.

Remember to set the system time in order to produce consistent logs. There are some

different image file formats (encase, dd, aff, ftk, etc).

3.5 Hardware setup You can use the following items to set up a computer to clone disks:

- A laptop with a Express Card slot

- 2x ports eSATA LaCie SATA II ExpressCard 34

- 2x Conceptronic SATA&IDE to USB&eSATA adapter

- 2x eSATA cables

- boot media for any forensic distribution that comes with dcfldd/dc3dd.

3.6 Basic commands

3.6.1 mount

Mount/unmount is the basic command to bind a physical device (under the /dev tree) to a

logical mount point (usually under /media)

Mount without arguments returns the mount status of the computer (all mounted devices and

info). When it takes two arguments (device and mount point) it creates some OS structures

and binds the device to the mountpoint. It takes some options: “-ro” makes the mount read-

only, -type sets the filesystem type, etc.

Mount will show the blocksize of a partition:

ubuntu@ubuntu:/$ mount

/dev/sdc1 on /media/sdc1 type fuseblk (rw, nosuid, nodev, noatime, allow_other,

blksize=4096)

See “blksize=4096”. You will use this block size when later entering the cloning command.

Mount needs admin privileges. It is also used to mount disk images as seen in the next section

(loop mount).

Documentació de Jornada Pràctica: Apropament al clonat de discos: dispositius, eines i comandes

Página 10 de 13

3.6.2 mount flavors

There’s some mount derived commands, specific for ntfs partitions, as mount.ntfs-3g or

mount.ntfs-FUSE.

3.6.3 parted

Most frequent calls to parted are:

- Interactive mode (just call parted)

- List (parted –l)

List mode is useful for when you need to know what devices and partitions you have

connected to your system.

When in interactive mode you can query complex parameters of partitions, as starting byte.

As an example, lest query the starting byte of a partition into a dd file so we can loop-mount it.

ubuntu@ubuntu:/media/disk/CASE_ID/LOCATION_ID/$ parted MEDIA_ID.dd

WARNING: You are not superuser. Watch out for permissions. Warning: Unable to open /media/disk/CASE_ID/LOCATION_ID/MEDIA_ID.dd read-write (Permission denied). /media/disk/CASE_ID/LOCATION_ID/MEDIA_ID.dd has been opened read-only.

GNU Parted 1.7.1 Using /media/disk/CASE_ID/LOCATION_ID/MEDIA_ID.dd

Welcome to GNU Parted! Type ‘help’ to view a list of commands.

(parted) unit Unit? [compact]? B (parted) print

Disk /media/disk/CASE_ID/LOCATION_ID/MEDIA_ID.dd: 30005821439B Sector size (logical/physical): 512B/512B Partition Table: msdos

Number Start End Size Type File system Flags

1 8225280B 10487231999B 10479006720B extended lba

5 257536B 10487231999B 10478974464B logical ntfs

2 10487232000B 29997596159B 19510364160B primary ntfs boot

(parted) q

Now you can mount partition 2:

ubuntu@ubuntu:/media/disk/CASE_ID/LOCATION_ID/$ sudo mount -r -o

loop,offset=10487232000 -t ntfs MEDIA_ID.dd /media/test

Documentació de Jornada Pràctica: Apropament al clonat de discos: dispositius, eines i comandes

Página 11 de 13

3.6.4 dd / dcfldd / dc3dd / ddrescue

3.6.4.1 dd

Main options for dd are:

- if / of input and output files (or devices)

- ibs / obs / bs input output or common block size.

- conv different options on data processing. Most common are sync, no error that

continues the process even after read or write failures and keeps the size of the output

by adding zeros in case of unrecoverable read failures.

3.6.4.2 dcfldd

The command dcfldd is an evolution of dd. It adds some features as on the fly hashing or basic

process progress.

- hashes you have to set hash to the hash function (hash=sha1), hashwindow to a value

or zero for the whole input, and hashlog to the output file for the hash result.

3.6.4.3 dc3dd

Syntax for dc3dd is similar to dcfldd (and dd).

When computing hashes you can specify a hashwindow or you can have it calculated for the

whole input by not setting the option. When using dcfldd you have to set a 0 size hashwindow

in this last case.

- progress you can set an option “progress=on” that shows the operation’s progress

with detail.

It shows the system time on start and finish, so you do not need to call date before and after

the command and it has some logging options. It seems to give a slightly better performance

and seems to automatically set a good blocksize for every operation.

3.6.4.4 ddrescue

Whenever you happen to get errors during the copy with any other flavor of dd, it is

recommended that you stop it and use ddrescue instead.

The command ddrescue does a first copy without retrying any error in order to retrieve the

maximum amount of information from the disk. It logs all the errors to a file and then it retries

them. You can isolate the errors to a very minimum and this can make the difference between

a mountable disk and a disk that needs repair (and explanations) to start working with.

3.6.4.5 Output to two drives

dd reads the standard input and writes to the standard output when input or output are not

set. Using tee and pipes, you can link dd commands together.

To write to two output files at a time, you need a dd command to read the source drive, a pipe

and a tee and two dd commands to perform the writing.

This is the command structure:

Documentació de Jornada Pràctica: Apropament al clonat de discos: dispositius, eines i comandes

Página 12 de 13

caine@caine:~$ sudo dd if=/dev/sdd1 | tee >(dcfldd of=/media/sde1/sdd1.dd) | dcfldd

of=/media/sda2/sdd1.dd

3.6.5 Examples

3.6.5.1 Dcfldd, nohash, eSATA to eSATA caine@caine:~$ date; sudo dcfldd if=/dev/sdd1 of=/media/sde1/sdd1.dd ibs=32k obs=4k conv=sync,noerror; date

Thu Apr 7 16:53:46 CEST 2011

3584000 blocks (112000Mb) written.

448000+0 records in

3584000+0 records out

Thu Apr 7 16:58:32 CEST 2011

14 GB / 4:46 m = 176,2 GB/h

3.6.5.2 dc3dd, no hash, eSATA to eSATA caine@caine:~$ sudo dc3dd if=/dev/sdd1 of=/media/sde1/sdd1.dd conv=sync,noerror progress=on

warning: sector size not probed, assuming 512

dc3dd 6.12.3 started at 2011-04-07 16:59:46 +0200

command line: dc3dd if=/dev/sdd1 of=/media/sde1/sdd1.dd conv=sync,noerror progress=on

compiled options: DEFAULT_BLOCKSIZE=32768

sector size: 512 (assumed)

28672000+0 sectors in

28672000+0 sectors out

14680064000 bytes (14 G) copied (??%), 242.473 s, 58 M/s

dc3dd completed at 2011-04-07 17:03:49 +0200

14 GB / 4:03 m = 207,4 GB/h

3.6.5.3 dc3dd, no hash, iSATA to eSATA caine@caine:~$ sudo dc3dd if=/dev/sda1 of=/media/sde1/sda1.dd conv=sync,noerror progress=on

warning: sector size not probed, assuming 512

dc3dd 6.12.3 started at 2011-04-07 17:04:13 +0200

command line: dc3dd if=/dev/sda1 of=/media/sde1/sda1.dd conv=sync,noerror progress=on

compiled options: DEFAULT_BLOCKSIZE=32768

sector size: 512 (assumed)

204800+0 sectors in

204800+0 sectors out

104857600 bytes (100 M) copied (??%), 1.53485 s, 65 M/s

dc3dd completed at 2011-04-07 17:04:14 +0200

100 MB / 1.53 s = 229,05 GB/h

3.6.5.4 dcfldd, hash sha1, eSATA to eSATA & iSATA (two copies) caine@caine:~$ date; sudo dcfldd if=/dev/sdd1 conv=sync,noerror ibs=32k obs=4k | tee >(dcfldd

of=/media/sde1/sdd1.dd bs=4k hashwindow=0 hash=sha1 hashlog=/media/sde1/hash_sdd1.sha1) | dcfldd

of=/media/sda2/sdd1.dd bs=4k hashwindow=0 hash=sha1 hashlog=/media/sda2/hash_sdd1.sha1; date

Thu Apr 7 16:38:25 CEST 2011

3584000 blocks (112000Mb) written.

448000+0 records in

3584000+0 records out

3584000 blocks (14000Mb) written.

3584000+0 records in

3584000+0 records out

3584000 blocks (14000Mb) written.

Documentació de Jornada Pràctica: Apropament al clonat de discos: dispositius, eines i comandes

Página 13 de 13

3584000+0 records in

3584000+0 records out

Thu Apr 7 16:46:21 CEST 2011

14 GB / 7:56 m = 105,9 GB/h

3.6.5.5 dc3dd, hash sha1, eSATA to eSATA & iSATA (two copies) caine@caine:~$ sudo dc3dd if=/dev/sdc1 conv=sync,noerror progress=on | tee >(dc3dd of=/media/sdd1/sdc1.dd

hash=sha1 hashlog=/media/sdd1/hash_sdc1.sha1) | dc3dd of=/media/sda2/sdc1.dd hash=sha1

hashlog=/media/sda2/hash_sdc1.sha1

warning: sector size not probed, assuming 512

dc3dd 6.12.3 started at 2011-04-07 12:30:26 +0200

command line: dc3dd if=/dev/sdc1 conv=sync,noerror progress=on

compiled options: DEFAULT_BLOCKSIZE=32768

sector size: 512 (assumed)

warning: sector size not probed, assuming 512s, 7.6 M/s

dc3dd 6.12.3 started at 2011-04-07 12:30:27 +0200

command line: dc3dd of=/media/sdd1/sdc1.dd hash=sha1 hashlog=/media/sdd1/hash_sdc1.sha1

compiled options: DEFAULT_BLOCKSIZE=32768

sector size: 512 (assumed)

warning: sector size not probed, assuming 512

dc3dd 6.12.3 started at 2011-04-07 12:30:27 +0200

command line: dc3dd of=/media/sda2/sdc1.dd hash=sha1 hashlog=/media/sda2/hash_sdc1.sha1

compiled options: DEFAULT_BLOCKSIZE=32768

sector size: 512 (assumed)

sha1 TOTAL: 1d262742e02bb254ad4ba848995ed5ce7723b4eb

28672000+0 sectors in

28672000+0 sectors out

14680064000 bytes (14 G) copied (??%), 354.818 s, 39 M/s

dc3dd completed at 2011-04-07 12:36:21 +0200

28672000+0 sectors in

28672000+0 sectors out

14680064000 bytes (14 G) copied (??%), 354.738 s, 39 M/s

dc3dd completed at 2011-04-07 12:36:21 +0200

sha1 TOTAL: 1d262742e02bb254ad4ba848995ed5ce7723b4eb

28672000+0 sectors in

28672000+0 sectors out

14680064000 bytes (14 G) copied (??%), 354.702 s, 39 M/s

dc3dd completed at 2011-04-07 12:36:21 +0200

14 GB / 5:54 m = 142,4 GB/h