OpenCyber Academy
Técnico · Capítulo 11 · Português
Código do curso: OCA-063Capítulo 11: OCA-063-C011

Capítulo 11 — Perícia digital e análise de malware: verificação

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

Mapa da aula

Aula 11 publicada. Mapa, exemplo, EX041.

flowchart TD
  N0["11.1 Verificando as coletas"]
  N1["Laboratório — verificação de manifesto"]
  N2["11.2 Lendo o resultado"]
  N3["11.3 Tratando a divergência"]
  N4["11.4 Verificando as constatações"]
  N5["11.5 Conferência por um colega"]
  N6["11.6 Registros"]
  N7["11.7 Normas"]
  N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6 --> N7
  N7 --> EX["Exemplo resolvido"]
  EX --> Q["Exercício EX041"]

Desenho lógico

flowchart LR
  N0["11.1 Verificando as coletas"]
  N1["Laboratório — verificação de manifesto"]
  N2["11.2 Lendo o resultado"]
  N3["11.3 Tratando a divergência"]
  N4["11.4 Verificando as constatações"]
  N5["11.5 Conferência por um colega"]
  N6["11.6 Registros"]
  N7["11.7 Normas"]
  N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6 --> N7 --> Q["EX041"]
[11.1 Verificando as coletas]
    |
    v
[Laboratório — verificação de manifesto]
    |
    v
[11.2 Lendo o resultado]
    |
    v
[11.3 Tratando a divergência]
    |
    v
[11.4 Verificando as constatações]
    |
    v
[11.5 Conferência por um colega]
    |
    v
[11.6 Registros]
    |
    v
[11.7 Normas]
    |
    v
[Exemplo resolvido] --> [Exercício EX041]

Objetivos de aprendizagem

Você vai (1) verificar arquivos coletados contra os manifestos; (2) investigar divergências; (3) verificar constatações por uma segunda fonte; (4) registrar a verificação.

11.1 Verificando as coletas

Cada arquivo coletado recebeu hash na coleta. Antes da análise e antes da entrega, os arquivos recebem hash de novo e são comparados com o manifesto. Refazer o hash antes da análise detecta qualquer mudança desde a coleta, e refazê-lo antes da entrega permite que quem recebe confie no que recebe. Os manifestos dos logs de coleta, como o manifesto de triagem de 63 arquivos do PHARM-PC3, fornecem os valores esperados. Sana usa o script revisado em vez de comparar longas sequências de hash a olho. O resultado da comparação de cada arquivo é escrito na hora na tabela de verificação.

Laboratório — verificação de manifesto

"""Verify collected copies against a manifest of SHA-256 digests."""
import hashlib
files = {"memory.raw": b"synthetic-memory", "triage.zip": b"synthetic-triage", "usb_log.csv": b"synthetic-usb"}
manifest = {k: hashlib.sha256(v).hexdigest() for k, v in files.items()}
files["usb_log.csv"] = b"synthetic-usb\r\n"   # re-saved by an editor
for k, v in files.items():
    print(k, "OK" if hashlib.sha256(v).hexdigest() == manifest[k] else "MISMATCH")

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

memory.raw OK
triage.zip OK
usb_log.csv MISMATCH

11.2 Lendo o resultado

O memory.raw e o triage.zip dão OK. O usb_log.csv dá MISMATCH: alguém o abriu num editor e o salvou de novo, acrescentando uma quebra de linha. O conteúdo parece o mesmo, mas já não é o arquivo coletado. Uma única quebra de linha acrescentada é invisível quando o arquivo é visualizado, e é por isso que só o hash a revelou. A divergência não significa que a evidência perdeu o valor, já que um original verificado ainda existe no repositório. Significa, sim, que a cópia editada não pode ser usada, porque ninguém consegue provar que nada mais mudou.

11.3 Tratando a divergência

A cópia alterada é posta de lado e rotulada. Uma cópia nova é feita a partir do repositório de evidências, verificada como OK e usada na análise. O ocorrido é anotado no log do caso, e a pasta de evidências passa a ser somente leitura para os operadores. A cópia alterada é guardada, e não apagada, porque apagá-la esconderia o ocorrido dos revisores posteriores. Tornar a pasta somente leitura ataca a causa, já que os operadores não conseguem mais salvar arquivos ali por engano. Esse era um dos modos de falha da resposta já listados, e agora fica registrado que ele de fato aconteceu uma vez.

11.4 Verificando as constatações

As constatações principais são conferidas por uma segunda fonte: o horário da conexão USB no PHARM-PC3 tirado do registro é comparado com o evento de montagem do EDR; eles concordam com diferença de até dois segundos. Duas fontes independentes que concordam com diferença de até dois segundos sustentam com força o horário de 11:15 para a conexão, já que o registro e o agente do EDR o registram de maneiras diferentes. Quando uma constatação se apoia numa só fonte, Sana diz isso nas notas. A tabela de constatações mostra quais têm segunda fonte e quais não têm.

11.5 Conferência por um colega

Owen repete duas constatações usando apenas as notas de Sana. Owen usa só as notas de Sana e o repositório de evidências, sem fazer perguntas a ela, então o teste mostra se as notas estão completas. Se ele não chegar ao mesmo resultado, a lacuna está nas notas, e não necessariamente na constatação. Ele registra quais duas constatações repetiu e se elas coincidiram. Neste caso, ele escolheu o horário da conexão USB no PHARM-PC3 e a sequência corrigida do WARD4-PC2. Ele assina a tabela de verificação quando as duas repetições terminam.

11.6 Registros

Uma tabela de verificação lista item, hash esperado, resultado, data e verificador. Cada linha é datada e assinada, e novas verificações acrescentam linhas em vez de sobrescrever as anteriores. Para o usb_log.csv, a tabela mostra a divergência em 15 de setembro, seguida da cópia nova verificada como OK. Owen revisa a tabela antes de qualquer entrega e acrescenta seu nome ao lado do de Sana. A tabela acompanha a evidência em cada entrega, para que quem recebe os arquivos possa repetir as verificações com os mesmos hashes esperados.

11.7 Normas

A ISO/IEC 27037 enfatiza a integridade da evidência e a repetibilidade; a verificação é como os operadores demonstram as duas. A tabela de verificação, os manifestos e os registros de custódia mostram juntos que a evidência não foi alterada e que as verificações podem ser repetidas. A ISO/IEC 27037 não prescreve uma ferramenta específica, então os scripts do próprio hospital são aceitáveis desde que validados e registrados. A verificação das cópias continua separada da questão de saber se a coleta foi completa. A conferência de Owen e as comparações com segunda fonte acrescentam reprodutibilidade à integridade que os hashes mostram.

Quando verificar

A verificação acontece em três momentos: logo depois da coleta, antes do início da análise e antes de qualquer entrega a analistas, auditores ou polícia. Cada verificação é uma linha nova na tabela, para que um leitor veja que a integridade se manteve em cada etapa, e não só no começo.

Exemplo resolvido

A tabela de verificação de Sana: "usb_log.csv — MISMATCH em 15/09 (salvo de novo num editor). Cópia nova do repositório — OK. memory.raw — OK. triage.zip — OK. Verificadora: S. Mirza; revisado por O. Price."

Caso sintético. Os arquivos vêm do script do laboratório.

Erros e limites

A verificação prova que as cópias correspondem à coleta, e não que a coleta capturou tudo o que era relevante.

Exercícios

Síntese

Verifique as cópias, explique as divergências, confirme as constatações com segundas fontes e mantenha uma tabela de verificação.

Continue estudando — capítulo 11 de 18

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

Respostas comentadas

EX041. O usb_log.csv, porque foi aberto e salvo de novo num editor que acrescentou uma quebra de linha.

EX042. A cópia alterada foi posta de lado e rotulada, uma cópia nova foi tirada do repositório e verificada, o ocorrido foi registrado e a pasta passou a ser somente leitura.

EX043. O horário de conexão no registro foi comparado com o evento de montagem do EDR; eles coincidiram com diferença de até dois segundos.

EX044. Que tudo o que era relevante foi coletado.