Capítulo 24 — Perícia digital e análise de malware: métodos I
Mapa da aula
Aula 24 publicada. Mapa, exemplo, EX070.
flowchart TD
N0["24.1 Por que linhas do tempo"]
N1["24.2 Normalização"]
N2["Laboratório — juntando fontes numa linha do tempo em"]
N3["24.3 Lendo o resultado"]
N4["24.4 Desvios de relógio"]
N5["24.5 Granularidade"]
N6["24.6 Lacunas"]
N7["24.7 Apresentação"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6 --> N7
N7 --> EX["Exemplo resolvido"]
EX --> Q["Exercício EX070"]
Desenho lógico
flowchart LR
N0["24.1 Por que linhas do tempo"]
N1["24.2 Normalização"]
N2["Laboratório — juntando fontes numa linha do tempo em"]
N3["24.3 Lendo o resultado"]
N4["24.4 Desvios de relógio"]
N5["24.5 Granularidade"]
N6["24.6 Lacunas"]
N7["24.7 Apresentação"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6 --> N7 --> Q["EX070"]
[24.1 Por que linhas do tempo]
|
v
[24.2 Normalização]
|
v
[Laboratório — juntando fontes numa linha do tempo em]
|
v
[24.3 Lendo o resultado]
|
v
[24.4 Desvios de relógio]
|
v
[24.5 Granularidade]
|
v
[24.6 Lacunas]
|
v
[24.7 Apresentação]
|
v
[Exemplo resolvido] --> [Exercício EX070]
Objetivos de aprendizagem
Você vai (1) construir uma linha do tempo a partir de várias fontes; (2) normalizar fusos horários; (3) reconhecer erros de ordenação; (4) apresentar uma linha do tempo com seus limites.
24.1 Por que linhas do tempo
As linhas do tempo são um método forense central: pôr numa única ordem os eventos de navegadores, sistemas de arquivos e logs mostra sequências que nenhuma fonte isolada revela. Só o histórico do navegador mostra um download, e só o sistema de arquivos mostra a criação de um arquivo. Juntos, com o início de um processo a partir da mesma pasta trinta segundos depois, sugerem que um arquivo baixado foi executado. Cada fonte apoia as outras. As linhas do tempo também expõem contradições, como um arquivo aparentemente aberto antes de ser criado, que apontam para problemas de relógio ou para adulteração.
24.2 Normalização
As fontes registram horários em fusos e formatos diferentes. Converter tudo para UTC antes de ordenar é essencial. Ordenar horários locais brutos de fusos diferentes dá ordens erradas. Os formatos também diferem: segundos Unix, FILETIME do Windows, strings ISO com deslocamento e strings locais sem ele. Um normalizador converte cada um para UTC e mantém o valor original ao lado. Quando o fuso é desconhecido, o evento é sinalizado, em vez de adivinhado. Um único palpite não sinalizado pode mover um evento para o outro lado de uma fronteira decisiva, como antes ou depois de um usuário encerrar a sessão.
Laboratório — juntando fontes numa linha do tempo em UTC
"""Merge synthetic events from three sources into one UTC timeline."""
from datetime import datetime, timedelta, timezone
ev = [("browser", "2026-03-02T14:05:00-05:00", "download invoice.zip"),
("filesys", "2026-03-02T19:05:40+00:00", "invoice.zip created"),
("eventlog", "2026-03-02T20:06:10+01:00", "process started from Downloads"),
("filesys", "2026-03-02T19:20:00+00:00", "invoice.zip deleted")]
rows = sorted((datetime.fromisoformat(t).astimezone(timezone.utc), s, d) for s, t, d in ev)
for t, s, d in rows:
print(t.strftime("%H:%M:%S"), f"{s:9}", d)
Execute com python3 lab_timeline.py. Saída verificada:
19:05:00 browser download invoice.zip
19:05:40 filesys invoice.zip created
19:06:10 eventlog process started from Downloads
19:20:00 filesys invoice.zip deleted
24.3 Lendo o resultado
Três fontes registram horários em UTC−5, UTC e UTC+1. Normalizada para UTC, a ordem é: download às 19:05:00, arquivo criado às 19:05:40, processo iniciado a partir de Downloads às 19:06:10, arquivo apagado às 19:20:00. Se a ordenação fosse pelo texto bruto do relógio, o evento do navegador (14:05) apareceria horas antes dos demais e a entrada do log de eventos (20:06) depois da exclusão — uma sequência falsa. A ordem correta mostra uma sequência plausível: o download, o arquivo gravado em disco quarenta segundos depois, o programa iniciado trinta segundos após isso e o arquivo apagado catorze minutos mais tarde. A ordem pelo texto bruto separaria o download de suas consequências por horas, convidando à falsa conclusão de que os dois não tinham relação. O exercício de Priya pede que os estudantes declarem qual fuso cada fonte usava antes de ordenar.
24.4 Desvios de relógio
Cada dispositivo pode estar adiantado ou atrasado. Se um evento de referência aparece em duas fontes, a diferença entre elas dá um desvio a aplicar, documentado com sua base. Um bom evento de referência aparece nas duas fontes e acontece praticamente num único instante, como um logon registrado pela estação de trabalho e pelo controlador de domínio. Se vários desses eventos dão diferenças consistentes, o desvio é confiável. Se discordam, o relógio pode ter derivado ou sido ajustado, e o relatório explica que o desvio varia, em vez de aplicar uma única correção.
24.5 Granularidade
Alguns carimbos de tempo têm resolução de segundos; outros, de 100 nanossegundos. Eventos dentro da resolução de uma fonte não podem ser ordenados com confiança. Os sistemas de arquivos FAT armazenam alguns carimbos de tempo com resolução de dois segundos e algumas datas sem horário algum. Se dois eventos caem na mesma janela de dois segundos, a ordem entre eles não pode ser estabelecida a partir desses carimbos. A linha do tempo de Priya mostra esses eventos com um colchete comum, em vez de uma sequência inventada, e o relatório diz que a ordem não está resolvida nessa resolução. Fontes de resolução maior às vezes conseguem decidir a ordem.
24.6 Lacunas
Períodos ausentes podem significar que nada aconteceu, que os logs foram rotacionados ou que o dispositivo estava desligado. Relate as lacunas como lacunas. Para distinguir esses casos, Priya confere outras fontes: eventos de ligar e desligar, as entradas mais antigas de cada log rotacionado e a atividade de outros dispositivos no mesmo horário. Uma lacuna em que o log de eventos mostra um desligamento normal significa algo diferente de uma em que o log simplesmente começa mais tarde. A linha do tempo marca cada lacuna com sua causa provável e com o grau de confiança desse julgamento.
24.7 Apresentação
Uma tabela com a fonte, o horário (UTC), o evento e a localização do artefato permite que os leitores confiram cada linha. A localização do artefato em cada linha é precisa, como um caminho de arquivo dentro da imagem, uma chave e um valor do registry ou um arquivo de log com o número do registro, para que um revisor possa abrir a fonte e confirmar a entrada. As linhas são numeradas para referência no texto do relatório. Um gráfico de resumo pode acompanhar a tabela, mas a tabela continua sendo a versão de referência. Os horários mantêm a precisão de sua fonte.
Suporte de ferramentas
Ferramentas validadas de linha do tempo interpretam muitos tipos de artefatos; o script de Priya apenas ilustra o princípio. Os peritos ainda conferem uma amostra das linhas contra os artefatos de origem.
Exemplo resolvido
A linha do tempo de Priya mostra um intervalo de 40 segundos entre o download e a criação do arquivo, compatível com a conclusão de um download. Ela anota que o início do processo 30 segundos depois é compatível com o usuário abrindo o arquivo, mas a linha do tempo, sozinha, não mostra quem fez isso.
Caso sintético. Os eventos vêm do script do laboratório.
Erros e limites
Uma linha do tempo ordena eventos registrados; ações não registradas ficam invisíveis, e os erros de relógio se propagam.
Exercícios
- EX070 — Ordem do laboratório. Dê a ordem em UTC dos quatro eventos. Rubrica: 3 = download, criação, processo, exclusão, com os horários; 2 = só a ordem; 1 = errada; 0 = nada.
- EX071 — Erro da ordenação bruta. O que dá errado se os horários locais brutos forem ordenados? Rubrica: 3 = os fusos se misturam, sequência falsa (p. ex., processo depois da exclusão); 2 = parcial; 1 = vago; 0 = nada.
- EX072 — Significado da lacuna. Dê três significados de uma lacuna na linha do tempo. Rubrica: 3 = nenhuma atividade, rotação, dispositivo desligado; 2 = dois; 1 = um; 0 = nada.
Síntese
Normalize, aplique os desvios, respeite a resolução e as lacunas, e apresente cada linha com sua fonte.
Continue estudando — capítulo 24 de 50
← Capítulo 23 (rascunho) · Índice de capítulos do curso · Capítulo 25 (rascunho) →