Originalmente publicado em 12 de fevereiro de 2017 por Renan Cavalheiro

A Computação Forense é um ramo da Forense Digital que aplica métodos forenses para coletar e interpretar dados digitais em computadores. Um dos objetos frequentemente investigados em um computador é o navegador de internet.

Navegadores de internet são testemunhas de diversas ações de usuários que se entendem como anônimos uma vez que estão conectados à internet. Diversos crimes, fraudes e ações indevidas são realizadas na presença destes mecanismos e, muito além do que o usuário comum pensa, a maioria das informações obtidas ou geradas por um usuário na internet permanece armazenada em seu disco rígido. Este artigo visa demonstrar o potencial de investigação forense em um disco rígido no qual um usuário utiliza o navegador Google Chrome para acessar a internet.

Desde a época de seu lançamento, o Chrome vem tomando o lugar dos demais navegadores no mercado mundial, principalmente do Internet Explorer. Segundo o site w3counter.com, o Chrome representa 57,1% do mercado mundial de navegadores dentre todos os tipos de dispositivos, mais que o triplo de seus concorrentes Safari (padrão em dispositivos Apple), Firefox ou Internet Explorer (substituído pelo Microsoft Edge a partir do Windows 10).

Figura 1 – https://www.w3counter.com/globalstats.php
Em outubro de 2016, se considerarmos apenas computadores e apenas usuários brasileiros, obtemos uma fatia ainda maior: 79,2% de usuários utilizam o navegador Google Chrome.

Figura 2 – http://gs.statcounter.com/#desktop-browser-BR-monthly-201510-201610-bar
Por esse motivo, este artigo visa demonstrar qual é a estrutura do navegador Chrome e quais dados de navegação podem ser extraídos em uma análise forense fria em um disco rígido com Windows 7, utilizando ferramentas livres e de código aberto.

Especificações do Ambiente de Teste
Windows 7 64 bit Service Pack 1 (6.1, Compilação 7601)
Chrome v54.0.2840.59 m (64 bit)
Objetos do Chrome
Nestes artigos estudaremos o histórico de internet, que é apenas um de diversos objetos derivados da navegação na internet com o navegador Google Chrome, existentes no endereço “C:\Users\%Username%\AppData\Local\Google\Chrome\User Data\Default”.

Histórico de Internet
O histórico de internet é, provavelmente, o mais importante objeto de análise, uma vez que está diretamente ligado ao registro de informações de navegação na internet. Esse banco de dados SQLITE possui 9 tabelas, “downloads”, “downloads_url_chains”, “keyword_search_terms”, “meta”, “segment_usage”, “segments”, “urls”, “visit_source” e “visits”. Cada uma destas tabelas armazena uma informação completa por si só ou que depende de outra tabela.

Figura 3 – Captura de tela do programa DB Browser for SQLite
A tabela “urls” no arquivo “History”
A tabela “urls” possui, por sua vez, 8 colunas, “id”, “url”, “title”, “visit_count”, “typed_count”, “last_visit_time”, “hidden” e “favicon_id”.

Figura 4 – Estrutura da tabela “urls” no DB Browser for SQLite
Se navegarmos pela tabela “urls”, vamos obter os seguintes dados extraídos do ambiente de testes:

Figura 5 – Estrutura de dados da tabela “urls”

Figura 6 – Estrutura de dados da tabela “urls”
Perceba que esta coluna (urls) possui respectivamente:

Um identificador (ID)
O endereço do site acessado (url)
O título apresentado pelo site acessado (title)
O número de visitas àquele site (visit_count)
A quantidade de vezes em que o usuário digitou o endereço do site (typed_count)
A data do último acesso (last_visit_time)
Se o site deve ser sugerido pelo navegador quando algum endereço semelhante for digitado (hidden)
Um ID que indica o ícone do site no banco de dados (favicon)
Para consultar o histórico de internet, portanto, devemos realizar a leitura das colunas de endereço, título, data e hora de último acesso, vezes que o endereço foi digitado e quantidade de visitas ao site.

Esta leitura pode ser obtida com a seguinte consulta SQL:
select datetime(((urls.last_visit_time/1000000)-11644473600), “unixepoch”)
as “Data e hora”, urls.url as “Endereço”, urls.title as “Título”, urls.typed_count as “Vezes Inseridas”, urls.visit_count as “Visitas”fromurls;

Através desta consulta (query) nós pesquisamos, respectivamente, a coluna de data e hora e a convertemos do formato WebKitFormat[1] para o formato gregoriano, sendo que como o SQLite só possui a função de converter Unix Epoch Time para o calendário gregoriano, então precisamos converter primeiro do WebKitFormat para Unix Epoch Time e, então, inserir na função SQLite.

Uma vez tendo inserido perfeitamente os parâmetros da função de tempo, convertemos os nomes das colunas “last_visit_time” para “Data e Hora”, “url” para “Endereço” e “title” para “Título”, “typed_count” para “Vezes Inseridas” e “visit_count” para “Visitas”, obtendo o seguinte resultado:

Através desta consulta, portanto, identificamos cronologicamente os acessos realizados à internet através do navegador Chrome instalado no sistema de testes, identificamos a quantidade de vezes em que o endereço de cada site foi digitado na barra de endereços e a quantidade de visitas realizadas ao determinado site.

Nos próximos artigos vamos estudar os demais objetos do Google Chrome que possuem potencial de extração de dados relevantes a uma investigação.

[1] Este formato de tempo é o volume de microssegundos desde 01 de janeiro de 1601 às 00h UTC 0000; para converter, basta dividir o valor por 1.10^6 de microssegundos para segundos, depois subtrair pela constante 11644473600, que é a quantidade de segundos entre 01/01/1601 até 01/01/1970, para que o valor fique no formato unixepoch time (que calcula a quantidade de segundos desde 1 de janeiro de 1970 às 00h UTC 0000). Bastando, então, utilizar a função do SQLite que converte unixepoch time para calendário gregoriano.

Visits: 160