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
- EX041 — Resultado do laboratório. Qual arquivo divergiu, e por quê?
Mostrar critérios de avaliação
Rubrica: 3 = usb_log.csv; salvo de novo num editor, que acrescentou uma quebra de linha; 2 = só o arquivo; 1 = errado; 0 = nada. - EX042 — Tratamento da divergência. O que foi feito depois da divergência?
Mostrar critérios de avaliação
Rubrica: 3 = posta de lado, cópia nova verificada, registrado, pasta somente leitura; 2 = parcial; 1 = ignorada; 0 = nada. - EX043 — Segunda fonte. Como o horário USB do PHARM-PC3 foi verificado?
Mostrar critérios de avaliação
Rubrica: 3 = registro contra a montagem no EDR, até 2 s; 2 = parcial; 1 = vago; 0 = nada. - EX044 — Limite da verificação. O que a verificação não prova?
Mostrar critérios de avaliação
Rubrica: 3 = que a coleta foi completa; 2 = parcial; 1 = prova tudo; 0 = nada.
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) →