OpenCyber Academy
Curso rápido · Capítulo 3 · Português
Código do curso: OCA-017Capítulo 03: OCA-017-C003

Capítulo 3 — Perícia digital e análise de malware: sistemas, dados e dependências

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 03 publicada. Mapa, exemplo, EX027.

flowchart TD
  N0["3.1 Onde ficam os rastros"]
  N1["3.2 Encontrar o arquivo"]
  N2["3.3 Identificar pelo hash"]
  N3["Laboratório — verificação de hashes"]
  N4["3.4 Ler o resultado"]
  N5["3.5 Dependências"]
  N6["3.6 Verificar o e-mail"]
  N7["3.7 Registro"]
  N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6 --> N7
  N7 --> EX["Exemplo resolvido"]
  EX --> Q["Exercício EX027"]

Desenho lógico

flowchart LR
  N0["3.1 Onde ficam os rastros"]
  N1["3.2 Encontrar o arquivo"]
  N2["3.3 Identificar pelo hash"]
  N3["Laboratório — verificação de hashes"]
  N4["3.4 Ler o resultado"]
  N5["3.5 Dependências"]
  N6["3.6 Verificar o e-mail"]
  N7["3.7 Registro"]
  N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6 --> N7 --> Q["EX027"]
[3.1 Onde ficam os rastros]
    |
    v
[3.2 Encontrar o arquivo]
    |
    v
[3.3 Identificar pelo hash]
    |
    v
[Laboratório — verificação de hashes]
    |
    v
[3.4 Ler o resultado]
    |
    v
[3.5 Dependências]
    |
    v
[3.6 Verificar o e-mail]
    |
    v
[3.7 Registro]
    |
    v
[Exemplo resolvido] --> [Exercício EX027]

Objetivos de aprendizagem

Você vai (1) encontrar onde ficam os rastros úteis num notebook; (2) usar hashes para identificar arquivos conhecidos; (3) entender como contas e serviços dependem uns dos outros; (4) registrar constatações com suas fontes.

3.1 Onde ficam os rastros

Num notebook: a pasta de downloads, a lista de programas instalados, as entradas de inicialização (programas que rodam ao entrar na conta), o histórico do navegador e os logs de segurança. Cada um responde a uma parte da pergunta. Neste caso, Downloads mostrou o instalador e seu horário; o histórico do navegador mostrou a página do anúncio visitada logo antes; e a lista de inicialização mostrou o que o instalador acrescentou. Os logs de segurança poderiam mostrar se algo tentou entrar com senhas roubadas. Nenhum lugar sozinho conta a história inteira, e é por isso que Priya verifica vários e anota de que lugar veio cada fato.

3.2 Encontrar o arquivo

Em Downloads, Priya encontra FreeTemplates_setup.exe, baixado às 13:48. O histórico do navegador mostra a página do anúncio logo antes. Dois horários se encaixam aqui: a página do anúncio às 13:46 e o download às 13:48. Tomás se lembrava de "por volta de 13:50", o que é próximo, mas não exato; o horário do próprio arquivo é mais confiável do que a memória. Priya não abre nem executa o arquivo. Ela apenas anota o nome, a pasta e o horário, e passa para a verificação de hash.

O intervalo de dois minutos é compatível com um clique no anúncio seguido de um download. Um intervalo de uma hora teria sugerido que outra coisa, como outro site, entregou o arquivo.

3.3 Identificar pelo hash

Em vez de executar o arquivo, ela calcula seu hash e o compara com uma lista de arquivos sabidamente maliciosos. Kornblum (2006) e outros descrevem como os hashes ajudam a separar arquivos conhecidos de desconhecidos. O laboratório mostra como: o script calcula a impressão digital SHA-256 de cada arquivo e a procura numa pequena lista de arquivos maliciosos conhecidos. Só FreeTemplates_setup.exe corresponde. O arquivo nunca precisa ser executado, então a verificação é segura. Num trabalho real, a lista viria de uma fonte confiável, e Priya registraria qual versão da lista usou, como sua anotação faz com "list v1".

Laboratório — verificação de hashes

"""Compare SHA-256 hashes of synthetic files with a synthetic known-bad list."""
import hashlib
files = {
    "budget.xlsx": b"synthetic spreadsheet bytes",
    "FreeTemplates_setup.exe": b"synthetic installer bytes - not a real program",
    "photo.jpg": b"synthetic photo bytes",
}
known_bad = {hashlib.sha256(b"synthetic installer bytes - not a real program").hexdigest(): "Fake-template adware (synthetic)"}
for name, data in files.items():
    h = hashlib.sha256(data).hexdigest()
    print(f"{name:25} {h[:12]}  {known_bad.get(h, 'no match')}")

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

budget.xlsx               0edf30e2fa30  no match
FreeTemplates_setup.exe   3e5d3b83407c  Fake-template adware (synthetic)
photo.jpg                 ffcab6e8630a  no match

3.4 Ler o resultado

budget.xlsx e photo.jpg não têm correspondência. FreeTemplates_setup.exe corresponde a "Fake-template adware" na lista sintética. Uma correspondência identifica um arquivo conhecido; a falta de correspondência não prova que um arquivo é seguro. budget.xlsx e photo.jpg ainda podem ser nocivos, já que a lista só cobre arquivos já conhecidos, mas nada mais aponta para eles: não foram baixados junto com o instalador e não acrescentaram programas de inicialização. Priya os registra como verificados, sem correspondência, e segue adiante. Ela não escreve "limpo".

3.5 Dependências

O navegador do notebook guarda uma senha salva do e-mail do banco de alimentos. O e-mail é usado para redefinir a conta de doações on-line. Assim, um problema num notebook poderia chegar ao e-mail e depois às doações. Mapear essas ligações mostra o que mais verificar. Essa cadeia é o motivo pelo qual Ana ampliou o escopo para a conta de e-mail. Priya também anota a conta de doações como o próximo elo: se o e-mail tivesse mostrado entradas estranhas, ela teria pedido a Ana para verificar também a atividade recente da conta de doações e seu histórico de redefinição de senha.

3.6 Verificar o e-mail

Dentro do escopo ampliado, o histórico de entradas do e-mail mostra apenas as entradas habituais de Tomás. Mesmo assim, Priya troca a senha, a partir de um computador limpo, e ativa a verificação em duas etapas. Ela troca a senha a partir de um computador limpo porque o notebook ainda pode ter um programa que registra o que é digitado. Uma nova senha digitada no FB-LAP-02 poderia ser capturada na hora. A verificação em duas etapas significa que uma senha roubada, sozinha, não basta para entrar no e-mail. Sua anotação registra o horário: 15:10 de quarta-feira. Tomás é orientado a não salvar a nova senha no navegador do notebook.

3.7 Registro

Cada constatação é escrita junto com sua origem. A anotação de quarta-feira de Priya mostra o padrão: o instalador "em Downloads, 13:48"; a correspondência de hash "adware conhecido (list v1)"; a página do anúncio pelo "histórico do navegador, 13:46"; e as entradas do e-mail verificadas e consideradas normais. Cada fato indica sua fonte. Se Ana ou um profissional duvidar de algum deles depois, sabe onde olhar de novo. Uma constatação sem fonte só pode ser aceita pela palavra de Priya, e uma anotação cuidadosa faz com que ninguém precise depender disso.

Exemplo resolvido

Anotação de Priya: "FreeTemplates_setup.exe em Downloads, 13:48; hash corresponde a adware conhecido (list v1); histórico do navegador mostra a página do anúncio às 13:46. Entradas do e-mail normais; senha trocada a partir de PC limpo às 15:10 de qua; duas etapas ativadas."

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

Erros e limites

Listas de arquivos maliciosos conhecidos deixam passar arquivos novos ou alterados; use os hashes como uma pista entre várias.

Exercícios

Síntese

Saiba onde ficam os rastros, identifique arquivos com segurança pelo hash, siga as dependências e escreva as fontes ao lado das constatações.

Continue estudando — capítulo 03 de 04

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

Respostas comentadas

EX027. A pasta de downloads, os programas instalados, as entradas de inicialização e o histórico do navegador (e também os logs de segurança).

EX028. Às 13:48, logo depois de a página do anúncio ser visitada, às 13:46.

EX029. Um hash identifica o arquivo sem executá-lo, então nada nocivo acontece.

EX030. FreeTemplates_setup.exe, listado como adware de modelo falso.

EX031. Não: arquivos novos ou modificados não estarão na lista.

EX032. O navegador guarda a senha do e-mail do banco de alimentos, e esse e-mail pode redefinir a conta de doações, então um notebook pode levar às doações.

EX033. Apenas as entradas normais de Tomás.

EX034. Se o notebook ainda estiver infectado, ele pode registrar a nova senha enquanto ela é digitada.

EX035. Uma segunda prova, como um código num celular, para que uma senha roubada, sozinha, não baste.

EX036. Para que outra pessoa possa ir ao mesmo lugar e confirmá-la.

EX037. Programas configurados para iniciar sozinhos sempre que alguém entra na conta.

EX038. Elas não reconhecem arquivos novos ou que foram alterados.