◇ OpenCyber Academy
Profissionalizante · Capítulo 11 · Português

Capítulo 11 — Perícia digital e análise de malware: laboratório supervisionado

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 11 — Perícia digital e análise de malware: laboratório supervisionado

Mapa da aula

Aula 11 publicada. Mapa, exemplo, EX051.

flowchart TD
  N0["11.1 O laboratório"]
  N1["11.2 A tarefa"]
  N2["Laboratório — juntando as fontes"]
  N3["11.3 Lendo o resultado"]
  N4["11.4 Saída esperada"]
  N5["11.5 Ampliando o laboratório"]
  N6["11.6 Notas de laboratório"]
  N7["11.7 Aprovação do supervisor"]
  N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6 --> N7
  N7 --> EX["Exemplo resolvido"]
  EX --> Q["Exercício EX051"]

Desenho lógico

flowchart LR
  N0["11.1 O laboratório"]
  N1["11.2 A tarefa"]
  N2["Laboratório — juntando as fontes"]
  N3["11.3 Lendo o resultado"]
  N4["11.4 Saída esperada"]
  N5["11.5 Ampliando o laboratório"]
  N6["11.6 Notas de laboratório"]
  N7["11.7 Aprovação do supervisor"]
  N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6 --> N7 --> Q["EX051"]
[11.1 O laboratório]
    |
    v
[11.2 A tarefa]
    |
    v
[Laboratório — juntando as fontes]
    |
    v
[11.3 Lendo o resultado]
    |
    v
[11.4 Saída esperada]
    |
    v
[11.5 Ampliando o laboratório]
    |
    v
[11.6 Notas de laboratório]
    |
    v
[11.7 Aprovação do supervisor]
    |
    v
[Exemplo resolvido] --> [Exercício EX051]

Objetivos de aprendizagem

Você vai (1) reconstruir a linha do tempo de um incidente num laboratório isolado; (2) trabalhar apenas com registros sintéticos; (3) conferir os resultados com a saída esperada; (4) documentar o trabalho de laboratório no padrão de um caso.

11.1 O laboratório

O laboratório usa registros sintéticos derivados do padrão do caso, num PC de treinamento sem conexão com os sistemas da empresa. Não se usam dados reais de caixas de correio nem páginas de phishing ativas. O PC de treinamento não tem rota para o serviço de e-mail, o proxy ou os compartilhamentos de arquivos da Marlow, então nada no laboratório consegue alcançar um sistema real. Os registros reaproveitam os horários do caso, o nome de conta j.okafor e endereços de documentação como 203.0.113.50, mas nenhum conteúdo real de mensagens. Isso mantém o exercício próximo do caso e elimina os dados pessoais e qualquer chance de tocar em evidência real.

11.2 A tarefa

Juntar cinco eventos de quatro fontes numa única linha do tempo ordenada e confirmar a narrativa do capítulo 8. Os cinco eventos são a visita à página, a entrada, a criação da regra, o e-mail de troca bancária e a redefinição, e eles vêm do proxy, do log de entradas, da auditoria da caixa de correio e do rastreamento de mensagens. O script os lista fora de ordem de propósito, para que a ordenação tenha trabalho de verdade a fazer. A tarefa de Lena é rodá-lo, conferir a saída com a ordem esperada e explicar qualquer linha que não se encaixe.

Laboratório — juntando as fontes

"""Merge synthetic records from four sources into one ordered timeline."""
events = [
    ("09:20", "mail-audit", "inbox rule 'fwd' created for j.okafor"),
    ("09:10", "proxy", "j.okafor opens login-marlow.example.net"),
    ("09:40", "message-trace", "j.okafor sends 'Updated bank details' to supplier"),
    ("09:14", "sign-in", "j.okafor success from 203.0.113.50"),
    ("10:05", "mail-audit", "password reset and sessions revoked by IT"),
]
for t, src, what in sorted(events):
    print(t, f"{src:13}", what)

Execute com python3 lab_timeline.py. Saída verificada:

09:10 proxy         j.okafor opens login-marlow.example.net
09:14 sign-in       j.okafor success from 203.0.113.50
09:20 mail-audit    inbox rule 'fwd' created for j.okafor
09:40 message-trace j.okafor sends 'Updated bank details' to supplier
10:05 mail-audit    password reset and sessions revoked by IT

11.3 Lendo o resultado

Ordenados por horário, os eventos ficam assim: 09:10 visita no proxy, 09:14 entrada, 09:20 criação da regra, 09:40 e-mail de troca bancária, 10:05 redefinição. A ordem coincide com a narrativa, e cada linha indica sua fonte. Duas linhas compartilham a fonte mail-audit, a criação da regra e a redefinição, e é por isso que cinco eventos vêm de quatro fontes; no próprio caso, a redefinição também é confirmada pelo registro de mudanças da TI. A saída não prova a narrativa sozinha; ela mostra que os registros podem ser postos numa ordem coerente. As ligações entre eles, como o identificador de sessão, continuam vindo da evidência, e não do script.

11.4 Saída esperada

Dev fornece a saída esperada numa nota lacrada. Lena compara depois de rodar; uma divergência indicaria um erro na entrada ou no código. Escrever a saída esperada antes da execução impede que alguém ajuste as expectativas ao que apareceu. A nota de Dev lista as cinco linhas em ordem, com suas fontes, então a comparação é feita linha a linha. Se uma linha não tivesse coincidido, Lena conferiria os horários de entrada e a chave de ordenação antes de culpar o script, e registraria a divergência nas notas de laboratório.

11.5 Ampliando o laboratório

Lena acrescenta um sexto evento sintético — o telefonema do fornecedor às 10:50 — e roda de novo; ele fica por último, como esperado. Ampliar um laboratório testa se ela o entende, e não apenas se sabe rodá-lo. O novo evento vem do log de contatos de Lena, uma quinta fonte, e é escrito no mesmo formato 'HH:MM' dos outros. Ele fica por último porque 10:50 vem depois da redefinição das 10:05 tanto como texto quanto como horário. Se ela tivesse digitado '9:40' sem o zero à esquerda, a ordenação de texto o teria posto depois de '10:05', o que mostra por que formatos consistentes importam.

11.6 Notas de laboratório

As notas registram a versão do script, a entrada, a saída e a comparação com os resultados esperados. Nesta execução, as notas registram lab_timeline.py v1, seu hash tirado da pasta revisada, os cinco eventos de entrada, as cinco linhas de saída e o resultado da comparação com a nota lacrada de Dev. A ampliação com a ligação das 10:50 é registrada à parte, com a entrada alterada. As notas são escritas durante a execução, e não depois, para que mostrem o que de fato aconteceu. Outro estudante deve conseguir repetir a sessão só com elas.

11.7 Aprovação do supervisor

Dev acompanha a execução e assina a folha do laboratório. Acompanhar a execução permite que Dev veja que Lena lê a saída e a compara, em vez de apenas digitar o comando. A assinatura dele vai na folha do laboratório, ao lado da versão do script e do resultado, como no exemplo resolvido. Uma folha sem assinatura não conta para o portfólio. Se Dev tivesse visto um erro, ele o registraria e pediria uma nova execução, anotada como segunda tentativa, sem substituir a primeira.

Preparando o laboratório

Antes de cada sessão, o PC de treinamento é restaurado a um snapshot limpo, os scripts do laboratório são copiados da pasta revisada e seus hashes são conferidos com a lista. Começar de um estado conhecido significa que qualquer diferença na saída vem do próprio exercício, e não de restos deixados por um estudante anterior.

Exemplo resolvido

Folha do laboratório: "lab_timeline.py v1 — 5 eventos, 4 fontes — ordem da saída coincide com a esperada — ampliação com a ligação das 10:50 ordenada corretamente — acompanhado e assinado por D. Anand."

Caso sintético. Todos os registros do laboratório são inventados.

Erros e limites

Ordenar pelo texto "HH:MM" só funciona dentro de um dia e de um fuso; linhas do tempo reais precisam de carimbos de tempo completos.

Exercícios

Síntese

Laboratórios isolados constroem habilidade com segurança; compare com a saída esperada e amplie o laboratório para provar o entendimento.

Continue estudando — capítulo 11 de 12

← Capítulo 10 (rascunho) · Índice de capítulos do curso · Capítulo 12 (rascunho) →