◇ OpenCyber Academy
Graduação · Capítulo 6 · Português

Capítulo 6 — Estruturas discretas

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 6 — Estruturas discretas

Mapa da aula

Aula 06 publicada. Mapa, exemplo, EX016.

flowchart TD
  N0["6.1 Grafos"]
  N1["6.2 Árvores de processos"]
  N2["6.3 Conjuntos"]
  N3["6.4 Lógica das hipóteses"]
  N4["6.5 Caminhos e alcançabilidade"]
  N5["6.6 Relações"]
  N6["6.7 Árvores nos sistemas de arquivos"]
  N7["Contando combinações"]
  N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6 --> N7
  N7 --> EX["Exemplo resolvido"]
  EX --> Q["Exercício EX016"]

Desenho lógico

flowchart LR
  N0["6.1 Grafos"]
  N1["6.2 Árvores de processos"]
  N2["6.3 Conjuntos"]
  N3["6.4 Lógica das hipóteses"]
  N4["6.5 Caminhos e alcançabilidade"]
  N5["6.6 Relações"]
  N6["6.7 Árvores nos sistemas de arquivos"]
  N7["Contando combinações"]
  N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6 --> N7 --> Q["EX016"]
[6.1 Grafos]
    |
    v
[6.2 Árvores de processos]
    |
    v
[6.3 Conjuntos]
    |
    v
[6.4 Lógica das hipóteses]
    |
    v
[6.5 Caminhos e alcançabilidade]
    |
    v
[6.6 Relações]
    |
    v
[6.7 Árvores nos sistemas de arquivos]
    |
    v
[Contando combinações]
    |
    v
[Exemplo resolvido] --> [Exercício EX016]

Objetivos de aprendizagem

Você vai (1) modelar como grafos as relações presentes nas evidências; (2) usar conjuntos para filtrar artefatos; (3) aplicar lógica simples a hipóteses; (4) representar árvores de processos.

6.1 Grafos

Um grafo tem nós e arestas. Os e-mails formam um grafo de remetentes e destinatários; os processos formam uma árvore de pais e filhos; os hosts formam um grafo de rede com suas conexões. Escrever os dados como grafo facilita certas perguntas: quem recebeu um e-mail deste remetente, quais processos descendem deste, a quais hosts esta máquina se conectou. Cada uma delas é um percurso ao longo das arestas. Na ws-114, a árvore de processos e o grafo de conexões, juntos, mostram como o incidente se desenrolou e até onde pode ter se espalhado.

6.2 Árvores de processos

Na ws-114, um aplicativo de planilha inicia um interpretador de comandos, que inicia um utilitário do sistema que carrega uma DLL. Desenhada como árvore, a cadeia do documento até a biblioteca suspeita salta aos olhos; listada por horário, fica enterrada entre outros processos. Cada aresta da árvore vem de um identificador de processo pai registrado na memória ou em eventos de criação de processos. Uma planilha iniciar um interpretador de comandos já é incomum por si só, pois documentos de escritório raramente precisam de um, e é por isso que esse ramo se destaca. Leah confere os horários de início ao longo da cadeia: cada filho deve começar depois do pai, e qualquer intervalo entre eles é anotado. O exemplo resolvido abaixo transforma essa árvore numa figura com suas fontes nomeadas.

6.3 Conjuntos

O conjunto dos arquivos criados durante a janela do incidente, intersectado com o conjunto dos executáveis, dá uma lista curta para examinar. Por exemplo, se quarenta arquivos foram criados na janela do incidente e existem seis executáveis no perfil do usuário, a interseção pode conter só dois, que podem ser examinados em detalhe. As operações com conjuntos são fáceis de explicar num laudo, porque cada etapa pode ser mostrada com sua contagem. O perito registra os limites da janela usados, para que o resultado possa ser reproduzido.

6.4 Lógica das hipóteses

Hipótese H: "a planilha iniciou a DLL". Se H for verdadeira, a árvore de processos deve mostrar um caminho da planilha até o utilitário que carregou a DLL. A ausência desse caminho enfraqueceria H; sua presença a sustenta, mas não exclui outras explicações. Uma explicação alternativa é que outro processo tenha iniciado o rundll32 ao mesmo tempo e que a ligação com a planilha seja coincidência. Conferir o identificador do processo pai na captura de memória e nos registros de eventos distingue as duas. Leah anota a alternativa antes de testá-la, para que a conclusão mostre que ela foi considerada e por que foi rejeitada.

6.5 Caminhos e alcançabilidade

A partir da estação comprometida, quais outros hosts foram contatados? A alcançabilidade no grafo de conexões os lista para verificação. A alcançabilidade dá o conjunto de hosts que poderiam ter sido afetados, e não os que foram: uma conexão da ws-114 com um servidor de arquivos não mostra que algo malicioso aconteceu ali. Cada host da lista é verificado em busca de sinais correspondentes, como o mesmo hash de DLL ou logons incomuns da conta de s.kaur. A lista mantém o trabalho de acompanhamento delimitado e documentado.

6.6 Relações

"Criado por" e "conectado a" são relações; escrevê-las formalmente evita ambiguidades nos laudos. Por exemplo, "o rundll32 foi criado pelo cmd" usa a relação pai–filho da lista de processos, enquanto "a ws-114 se conectou ao servidor de arquivos" usa um registro de conexão. Nomear a relação e sua fonte no laudo impede que o leitor confunda "criado por" com "relacionado a", que é muito mais fraco e pode significar quase qualquer coisa. Leah mantém um glossário curto das relações usadas no laudo, cada uma com seu artefato de origem, para que a mesma expressão tenha sempre o mesmo sentido.

6.7 Árvores nos sistemas de arquivos

Os diretórios formam uma árvore; caminhos completos são caminhos a partir da raiz. Os caminhos importam nos laudos porque o mesmo nome de arquivo pode aparecer em várias pastas. Um update.dll na pasta Downloads de um usuário significa algo diferente de um arquivo de mesmo nome num diretório do sistema. Leah sempre informa o caminho completo, que identifica um único nó da árvore e permite que o leitor o encontre na imagem. Quando lista vários arquivos, ela os ordena pelo caminho, para que os arquivos da mesma pasta apareçam juntos, o que muitas vezes mostra que chegaram juntos.

Contando combinações

Se um perito precisa comparar 30 arquivos suspeitos dois a dois quanto à semelhança, há 30 × 29 ÷ 2 = 435 pares. Contar esse trabalho de antemão ajuda a planejar o tempo e a escolher as ferramentas.

Exemplo resolvido

Leah desenha a árvore de processos sintética da ws-114: EXCEL → cmd → rundll32 (carregando update.dll). Ela anota em cada nó o horário de início e o artefato de origem. A figura passa a fazer parte do laudo, com a legenda nomeando a captura de memória e os registros de eventos usados.

Caso sintético. A árvore é inventada.

Erros e limites

Os registros pai–filho podem estar incompletos se os processos terminaram cedo ou se o registro de eventos estava desligado; as lacunas devem ser marcadas.

Exercícios

Síntese

Grafos, conjuntos e lógica tornam legíveis as evidências complexas e testáveis as hipóteses.

Continue estudando — capítulo 06 de 40

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