◇ OpenCyber Academy
Engenharia · Capítulo 24 · Português

Capítulo 24 — Perícia digital e análise de *malware*: métodos I

Ensino gratuito e aberto para quem deseja proteger pessoas e tecnologias. Não é preciso criar uma conta para estudar ou consultar as respostas.

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

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) →