◇ 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 de acesso"]
  N1["6.2 Caminhos de ataque mais curtos"]
  N2["Laboratório — Caminhos de ataque por busca em largur"]
  N3["6.3 Priorizar com grafos"]
  N4["Síntese"]
  N0 --> N1 --> N2 --> N3 --> N4
  N4 --> EX["Exemplo resolvido"]
  EX --> Q["Exercício EX016"]

Desenho lógico

flowchart LR
  N0["6.1 Grafos de acesso"]
  N1["6.2 Caminhos de ataque mais curtos"]
  N2["Laboratório — Caminhos de ataque por busca em largur"]
  N3["6.3 Priorizar com grafos"]
  N4["Síntese"]
  N0 --> N1 --> N2 --> N3 --> N4 --> Q["EX016"]
[6.1 Grafos de acesso]
    |
    v
[6.2 Caminhos de ataque mais curtos]
    |
    v
[Laboratório — Caminhos de ataque por busca em largur]
    |
    v
[6.3 Priorizar com grafos]
    |
    v
[Síntese]
    |
    v
[Exemplo resolvido] --> [Exercício EX016]

Objetivos de aprendizagem

Você vai (1) modelar sistemas e acessos como grafos; (2) encontrar caminhos de ataque com busca em grafos; (3) usar medidas de grafos para priorizar controles.

6.1 Grafos de acesso

O Dr. Bellini mostra como os grafos modelam a segurança. Os nós podem ser usuários, máquinas e repositórios de dados; as arestas podem ser logins, conexões de rede ou permissões. Um atacante que controla um nó pode seguir as arestas até outros. Lucas constrói um pequeno grafo sintético da Fernway: um notebook de funcionário vítima de phishing, um servidor de arquivos compartilhado, o sistema de gestão do armazém, uma estação de trabalho de administração e o banco de dados da loja. As arestas representam permissões e alcançabilidade de rede. Desenhar o grafo torna visíveis caminhos difíceis de ver em listas de regras espalhadas por sistemas e equipes diferentes.

6.2 Caminhos de ataque mais curtos

Usando busca em largura, Lucas encontra o caminho mais curto do notebook vítima de phishing até o banco de dados da loja. O laboratório abaixo mostra um caminho de três saltos: do notebook ao servidor de arquivos, do servidor de arquivos à estação de administração por meio de uma credencial de administrador salva, e da estação de administração ao banco de dados. Os caminhos mais curtos importam porque os atacantes preferem rotas fáceis. Remover a credencial salva corta esse caminho; a busca então encontra um caminho mais longo pelo sistema do armazém. Cada mudança pode ser verificada rodando a busca de novo, o que oferece uma maneira precisa de avaliar se um controle realmente bloqueia a rota que pretende bloquear.

Laboratório — Caminhos de ataque por busca em largura

# BFS attack paths on a synthetic Fernway graph.
from collections import deque
def bfs(E, s, t):
    prev, q = {s: None}, deque([s])
    while q:
        u = q.popleft()
        if u == t:
            p = [];
            while u: p.append(u); u = prev[u]
            return p[::-1]
        for v in E.get(u, []):
            if v not in prev: prev[v] = u; q.append(v)
E = {"staff-laptop": ["file-server", "warehouse-wms"], "file-server": ["admin-ws"],
     "warehouse-wms": ["integration-svc"], "integration-svc": ["stock-api"], "stock-api": ["shop-db"], "admin-ws": ["shop-db"]}
p = bfs(E, "staff-laptop", "shop-db"); print(f"{len(p)-1} hops:", " -> ".join(p))
E["file-server"] = []          # saved admin credential removed
p = bfs(E, "staff-laptop", "shop-db"); print(f"{len(p)-1} hops:", " -> ".join(p))

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

3 hops: staff-laptop -> file-server -> admin-ws -> shop-db
4 hops: staff-laptop -> warehouse-wms -> integration-svc -> stock-api -> shop-db

6.3 Priorizar com grafos

Alguns nós aparecem em muitos caminhos; protegê-los traz mais benefício. Lucas conta quantos caminhos mais curtos dos notebooks da equipe até os dados sensíveis passam por cada nó. A estação de administração e o servidor de arquivos se destacam. Ele recomenda fazer primeiro o hardening da estação de administração e remover as credenciais armazenadas do servidor de arquivos. O raciocínio com grafos dá uma base objetiva para as prioridades, mas Lucas observa que o grafo só é tão bom quanto suas arestas: conexões desconhecidas, como ferramentas de acesso remoto esquecidas, mudariam a resposta, e é por isso que os inventários importam.

Exemplo resolvido

Lucas modela a Fernway como um grafo, encontra um caminho de três saltos até o banco de dados da loja, mostra que a remoção de uma credencial salva alonga o caminho e prioriza dois nós que são pontos de estrangulamento.

Caso sintético. O grafo e as credenciais são sintéticos.

Erros e limites

Os grafos omitem arestas que ninguém conhece. O comprimento do caminho é um indicador grosseiro do esforço do atacante.

Exercícios

Síntese

Modelos de grafos transformam permissões dispersas em caminhos de ataque visíveis e em prioridades objetivas.

Continue estudando — aula 06 (capítulo 06 de 40)

← Capítulo 05 · Índice das aulas · Capítulo 07 →

Continue para a próxima aula já escrita.