O navegador é o artefato mais subestimado de uma perícia. As pessoas apagam o histórico e acham que apagaram o rastro, quando na verdade o histórico é a menor parte do que fica gravado.
Cache, cookies, sessões, downloads, formulários preenchidos, permissões concedidas a sites, favoritos, extensões instaladas: cada um desses é uma base de dados separada, com carimbos de tempo próprios.
Onde os arquivos ficam
| Navegador | Windows | Linux |
|---|---|---|
| Chrome | %LOCALAPPDATA%\Google\Chrome\User Data\Default | ~/.config/google-chrome/Default |
| Edge | %LOCALAPPDATA%\Microsoft\Edge\User Data\Default | ~/.config/microsoft-edge/Default |
| Firefox | %APPDATA%\Mozilla\Firefox\Profiles | ~/.mozilla/firefox |
Em navegadores baseados em Chromium, os arquivos que interessam são History, Cookies, Login Data, Web Data e Preferences. Todos são bancos SQLite, exceto o último, que é JSON. No Firefox os equivalentes são places.sqlite, cookies.sqlite e formhistory.sqlite.
Antes de abrir: copie
Abrir o banco direto no perfil original altera arquivos auxiliares e pode acionar recuperação de diário, o que muda a evidência. Trabalhe sempre sobre cópia, incluindo os arquivos -wal e -shm, que contêm transações ainda não gravadas no banco principal.
cp "History" "History-wal" "History-shm" /caso/copias/ 2>/dev/null
sha256sum /caso/copias/* | tee /caso/copias/hashes.txtEsquecer o -wal é o erro mais comum e o mais caro: as últimas navegações, justamente as que costumam interessar, podem estar só ali.
Consultando o histórico
O carimbo de tempo do Chromium não é o padrão Unix. Ele conta microssegundos desde 1601, herança do Windows. A conversão precisa entrar na consulta:
sqlite3 History "
SELECT datetime(last_visit_time/1000000-11644473600,'unixepoch','localtime') AS quando,
url, title, visit_count
FROM urls
ORDER BY last_visit_time DESC
LIMIT 50;"No Firefox o tempo é em microssegundos desde 1970:
sqlite3 places.sqlite "
SELECT datetime(last_visit_date/1000000,'unixepoch','localtime') AS quando,
url, title
FROM moz_places
ORDER BY last_visit_date DESC
LIMIT 50;"Errar essa conversão produz datas em 1601 ou em 2058, e um relatório com data absurda destrói a credibilidade do resto.
O que revela mais que o histórico
Downloads. A tabela downloads guarda o caminho de destino, a origem e o tamanho, mesmo que o arquivo tenha sido apagado depois.
sqlite3 History "
SELECT datetime(start_time/1000000-11644473600,'unixepoch','localtime'),
target_path, tab_url, total_bytes
FROM downloads ORDER BY start_time DESC;"Cookies e sessões. Cookie de sessão ativo prova acesso autenticado em determinado momento, e é o que sustenta a afirmação de que alguém estava logado, não apenas visitou a página.
Formulários. A base de preenchimento automático guarda o que foi digitado em campos, incluindo endereços, documentos e termos de busca que nunca chegaram a virar navegação.
Preferências e extensões. O arquivo Preferences lista extensões instaladas e permissões concedidas por site. Extensão maliciosa instalada é vetor comum e passa despercebida em análise focada só em histórico.
Navegação anônima e o que ela não apaga
A janela anônima não grava histórico em disco, mas isso está longe de significar ausência de rastro. Ficam disponíveis, dependendo do caso:
- Cache de DNS do sistema operacional, enquanto a máquina não for reiniciada
- Arquivos baixados, que permanecem onde foram salvos
- Registros do servidor e do firewall corporativo, do lado da rede
- Memória volátil, se a captura for feita com a máquina ligada, pelo método de Análise Forense de Memória RAM com Volatility
Essa é uma das razões pelas quais não se desliga a máquina antes de capturar a memória em resposta a incidente.
Juntando com o resto
Artefato de navegador vale muito mais quando entra na linha do tempo geral do sistema, ao lado de execução de programas e criação de arquivos. Sozinho, ele conta o que foi acessado. Combinado, ele explica a sequência: o usuário buscou uma ferramenta, baixou, executou, e o processo criou persistência.
É exatamente esse cruzamento que descrevi em Linha do tempo forense com Plaso e log2timeline, e os analisadores de navegador já estão incluídos por padrão ali.
Uma cautela sobre atribuição
Artefato de navegador prova o que aconteceu naquele perfil de usuário, naquela máquina. Não prova quem estava sentado na cadeira.
Sustentar autoria exige outros elementos: registro de autenticação, câmera, crachá, correlação com atividade em outros sistemas. Confundir as duas coisas é o erro que derruba laudo em contestação.