Mostrando postagens com marcador aquisição. Mostrar todas as postagens
Mostrando postagens com marcador aquisição. Mostrar todas as postagens

domingo, 12 de agosto de 2012

Aquisição de dados através da rede

Na computação forense, a aquisição de dados é a cópia dos dados armazenados em um dispositivo que está sendo examinado. Esta cópia pode ser física, onde se realiza uma clonagem fiel de toda a unidade de armazenamento, gerando um arquivo imagem, ou pode ser lógica, onde se realiza a cópia arquivo por arquivo de toda a unidade de armazenamento.

Sempre, a cópia é realizada à uma outra unidade de armazenamento para que o examinador possa trabalhar sem prejudicar a evidência. Esta conduta serve para garantir o conteúdo da prova.

Em situações adversas, o examinador poderá encontrar uma máquina onde não se é possível retirar o disco rígido, seja por razões judiciais ou pela tecnologia aplicada no hardware, por exemplo, a tecnologia RAID. Nestes casos, será necessário iniciar esta máquina com algum sistema forense e assim realizar a aquisição dos dados para uma unidade de armazenamento externa. A distribuição DEFT Linux LiveCD (http://www.deftlinux.net/) pode ser usada para isso.

Se o examinador possui um dispositivo de armazenamento externo, poderá copiar os dados pela própria máquina suspeita. Se possui um computador portátil, poderá estabelecer uma rede entre as máquinas e realizar a aquisição pela rede. É neste segundo cenário que este artigo se aplica, em uma rede cabeada, para uma cópia física de todo o dispositivo. Será utilizado o DEFT Linux na máquina suspeita e um notebook com a distro Fedora. Conecte um cabo crossover entre as placas de rede.

Primeiramente vamos preparar o terreno, configurando a rede com IP estático no Fedora e no DEFT. Digamos que o Fedora, que está no computador portátil do examinador, esteja usando o NetworkManager para gerenciar a rede. Vamos desativá-lo para usar neste processo de coleta o serviço de rede tradicional do Linux.

Execute o script do NetworkManager com o parâmetro "stop":

# /etc/init.d/NetworkManager stop

Em seguida edite o arquivo de configuração do dispositivo de rede:

# vi /etc/sysconfig/network-scripts/ifcfg-eth0

Usando este conteúdo na configuração (adapte se necessário):

DEVICE="eth0"
ONBOOT="yes"
BOOTPROTO=static
IPADDR=192.168.1.10
NETMASK=255.255.255.0
GATEWAY=192.168.1.1

Inicie o serviço de rede:

# /etc/init.d/network start

O comando 'ifconfig' nos mostra se a rede está ativa corretamente. No exemplo a interface "eth0". Ainda no Fedora, é necessário liberar uma porta no firewall. Edite o arquivo de configuração do iptables, adicionando a linha para a porta 2222 e reinicie o serviço iptables:

# vi /etc/sysconfig/iptables

-A INPUT -m state --state NEW -m tcp -p tcp --dport 2222 -j ACCEPT

# /etc/init.d/iptables restart

Com o DEFT operando na máquina suspeita, precisa-se também configurar uma rede com IP estático. O DEFT Linux é compatível com a distro Debian, possui uma ligeira diferença na configuração em relação ao Fedora. Edite o arquivo de configuração da interface de rede, usando o conteúdo abaixo e reinicie o serviço de rede:

# vi /etc/network/interfaces

auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.1.11
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1

# /etc/init.d/networking restart

Mais uma vez, o comando 'ifconfig' nos mostra se a rede está ativa corretamente. Os endereços IPs escolhidos nas duas configurações serão usados nos exemplos dos comandos de aquisição. A máquina com Fedora recebeu o IP 192.168.1.10 e a máquina suspeita, rodando o com DEFT, recebeu o IP 192.168.1.11.

Existem duas ferramentas para estabelecer uma conexão de rede e assim transferir dados: nc e ssh.

A ferramenta 'nc' (netcat) é capaz de abrir uma conexão TCP, enviar pacotes UDP e ouvir em uma porta arbitrária. Esta ferramenta será executada nos dois computadores que irão "conversar" pela rede.

Sinopse:

nc [opção]... [endereço] [porta]

Primeiramente, executa-se o 'nc' na máquina que vai receber, no nosso caso, no Fedora. Escolha uma das linhas de comandos abaixo, de acordo com a ferramenta "diskdump" de sua preferência:

$ nc -l 2222 | bunzip2 | dd of=Tempo/sda.dd
$ nc -l 2222 | bunzip2 | dc3dd of=Tempo/sda.dd
$ nc -l 2222 | bunzip2 | dcfldd of=Tempo/sda.dd

A opção -l define que o 'nc' vai ficar "ouvindo" pela porta 2222.

Depois, executar o 'nc' na máquina que vai enviar, no nosso caso, no DEFT. Use a respectiva linha de comando de acordo com a ferramenta "diskdump" usada acima:

# dd if=/dev/sda1 | bzip2 -c | nc 192.168.1.10 2222
# dc3dd if=/dev/sda1 | bzip2 -c | nc 192.168.1.10 2222
# dcfldd if=/dev/sda1 | bzip2 -c | nc 192.168.1.10 2222

O comando 'nc' vai enviar o fluxo de dados para o endereço e porta especificado.


Outro procedimento é utilizar a ferramenta 'ssh', para enviar o fluxo de dados à um arquivo em uma máquina remota. Considerando que o servidor sshd esteja em execução no computador portátil, com o Fedora, execute na máquina suspeita, com o DEFT, o comando para enviar o arquivo imagem. Escolha uma das linhas de comandos:

# dd if=/dev/sda | bzip2 -c | ssh usuario@192.168.1.10 dd of=/home/usuario/imagem.dd.bz2
# dc3dd if=/dev/sda | bzip2 -c | ssh usuario@192.168.1.10 dd of=/home/usuario/imagem.dd.bz2
# dcfldd if=/dev/sda | bzip2 -c | ssh usuario@192.168.1.10 dd of=/home/usuario/imagem.dd.bz2

Neste procedimento não é necessário executar qualquer comando na máquina que vai receber os dados, no nosso caso o notebook com Fedora, apenas o servidor sshd deve estar ativo e utilize uma conta de usuário do sistema Fedora. Será solicitada a senha deste usuário.


Como visto, é relativamente simples a aquisição de dados pela rede. Muitas vezes até compensa em relação a desmontar a máquina suspeita para a retirada do disco rígido. Os computadores portáteis costumam dar trabalho desta desmontagem. O único inconveniente pode ser a velocidade de transmissão, de acordo com a tecnologia da rede, pois uma rede de 100 Mbits a velocidade máxima teórica é 12,5 MB/s.