Imagem de disco
Uma cópia byte a byte de um disco ou de uma partição, que a perícia examina sem ligar a máquina.
Quem investiga um servidor não mexe no servidor: faz uma imagem do disco, uma cópia exata, byte a byte, e trabalha em cima dela. A imagem crua (extensões .raw, .img, .dd) não tem cabeçalho nenhum: o byte 0 do arquivo é o byte 0 do disco. Por ser grande, ela costuma chegar compactada (.gz, .xz).
O primeiro passo é saber o que tem dentro. O file imagem.raw responde:
Resposta do file |
O que é | Como seguir |
|---|---|---|
DOS/MBR boot sector ou GPT |
Disco inteiro, com tabela de partições | mmls mostra onde cada partição começa |
ext4 filesystem data, FAT, NTFS |
Uma partição só, o sistema de arquivos direto | Abrir direto |
| Nada disso | Pode ser memória (RAM), criptografado ou outro formato | Para memória, o Volatility |
Ferramentas para abrir sem montar, todas só leem:
mmls disco.img partições e onde começam (em setores)
fsstat -o 2048 disco.img informações do sistema de arquivos que começa no setor 2048
fls -r -p imagem.raw lista tudo, com caminho; apagados aparecem com *
icat imagem.raw 2889 > arquivo conteúdo do inode 2889
debugfs -c -R 'ls -l /etc' imagem.raw o mesmo para ext2/3/4 (pacote e2fsprogs)
fls, icat, mmls e fsstat são do The Sleuth Kit, que também tem uma interface gráfica, o Autopsy. Em Python, a biblioteca pytsk3 dá acesso ao mesmo motor. Para montar no Linux, sempre só leitura: sudo mount -o ro,loop,noload imagem.raw /mnt/x. O noload impede que o kernel "conserte" o journal de uma cópia feita com a máquina ligada, o que alteraria a evidência.
Com o sistema de arquivos aberto, a investigação segue pelos rastros: datas de modificação dos arquivos (a linha do tempo), logs em /var/log, serviços em /etc/systemd/system, diretórios com nome começando por ponto e entradas apagadas.