◇ OpenCyber Academy
Mestrado · Capítulo 6 · Português

Capítulo 6 — Coleta e análise de dados

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 — Coleta e análise de dados

Mapa da aula

Aula 06 publicada. Mapa, exemplo, EX033.

flowchart TD
  N0["6.1 Execução do estudo principal"]
  N1["6.2 Comparação por bootstrap"]
  N2["Laboratório — Comparação das políticas por bootstrap"]
  N3["6.3 Verificações das rivais"]
  N4["6.4 O tradeoff da complexidade"]
  N5["6.5 Apresentar os resultados com honestidade"]
  N6["Síntese"]
  N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6
  N6 --> EX["Exemplo resolvido"]
  EX --> Q["Exercício EX033"]

Desenho lógico

flowchart LR
  N0["6.1 Execução do estudo principal"]
  N1["6.2 Comparação por bootstrap"]
  N2["Laboratório — Comparação das políticas por bootstrap"]
  N3["6.3 Verificações das rivais"]
  N4["6.4 O tradeoff da complexidade"]
  N5["6.5 Apresentar os resultados com honestidade"]
  N6["Síntese"]
  N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6 --> Q["EX033"]
[6.1 Execução do estudo principal]
    |
    v
[6.2 Comparação por bootstrap]
    |
    v
[Laboratório — Comparação das políticas por bootstrap]
    |
    v
[6.3 Verificações das rivais]
    |
    v
[6.4 O tradeoff da complexidade]
    |
    v
[6.5 Apresentar os resultados com honestidade]
    |
    v
[Síntese]
    |
    v
[Exemplo resolvido] --> [Exercício EX033]

Objetivos de aprendizagem

Você vai (1) rodar a simulação principal e coletar os resultados de forma reprodutível; (2) comparar as políticas com intervalos de confiança por bootstrap; (3) avaliar as verificações das rivais; (4) apresentar os resultados sem exagerá-los.

6.1 Execução do estudo principal

Kenji roda duzentas redes em cada um de três tamanhos, aplicando as políticas plana, por zonas, por identidade e de arestas aleatórias, com os parâmetros das rivais variados como planejado. Cada execução grava sua configuração, sua semente e seus resultados num arquivo, e o script de nova execução confirma que uma amostra aleatória das execuções se reproduz exatamente. Ele resiste à vontade de olhar os resultados enquanto as execuções ainda estão incompletas, porque espiar cedo tende a moldar as decisões posteriores. Quando todas as execuções terminam, ele calcula primeiro a comparação principal pré-especificada, antes de qualquer análise exploratória, e registra a hora em que fez isso.

6.2 Comparação por bootstrap

A comparação principal é a diferença média de servidores alcançáveis entre as políticas por zonas e por identidade nas mesmas redes. Kenji usa bootstrap: reamostra as redes com reposição muitas vezes, recalcula a diferença média a cada vez e toma os noventa e cinco por cento centrais desses valores como intervalo de confiança. O bootstrap exige poucas premissas sobre a forma dos dados. O laboratório abaixo aplica esse procedimento a resultados pareados sintéticos de um tamanho de rede e também compara a identidade com o controle de arestas aleatórias, relatando os dois intervalos e o número médio de regras.

Laboratório — Comparação das políticas por bootstrap

# Bootstrap CIs for paired synthetic results (servers reachable) across 200 generated networks.
import random, statistics
random.seed(42)
nets = []
for _ in range(200):
    zone = random.randint(4, 9); ident = max(0, zone - random.choice([1, 2, 2, 3, 3, 4]))
    ctrl = max(ident, ident + random.choice([0, 1, 2, 2, 3]))
    nets.append((zone, ident, ctrl, random.randint(18, 26), random.randint(60, 75)))
def boot(diffs, B=4000):
    m = [statistics.mean(random.choices(diffs, k=len(diffs))) for _ in range(B)]; m.sort()
    return statistics.mean(diffs), m[int(.025 * B)], m[int(.975 * B)]
for name, i in [("zone - identity", 0), ("control - identity", 2)]:
    est, lo, hi = boot([n[i] - n[1] for n in nets])
    print(f"{name:20} mean {est:.2f}  95% CI [{lo:.2f}, {hi:.2f}]")
print(f"mean rules: zone {statistics.mean(n[3] for n in nets):.1f}, identity {statistics.mean(n[4] for n in nets):.1f}")

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

zone - identity      mean 2.43  95% CI [2.29, 2.56]
control - identity   mean 1.56  95% CI [1.42, 1.71]
mean rules: zone 22.2, identity 67.7

6.3 Verificações das rivais

O controle de arestas aleatórias alcança visivelmente mais servidores do que a identidade, então a estrutura, e não só o número de arestas, explica boa parte do benefício. A vantagem se mantém entre os tamanhos de rede, embora diminua no menor tamanho que restou. Permitir que as identidades alcancem até quatro servidores reduz a vantagem, mas não a elimina. A cópia de modelos é a rival mais forte: quando um terço das estações herda um conjunto amplo de regras, a maior parte da vantagem desaparece. A configuração incorreta em cinco por cento estreita a diferença, mas a deixa acima do limiar de reversão de Kenji. Ele relata cada verificação de rival numa tabela com seu resultado.

6.4 O tradeoff da complexidade

As políticas por identidade exigem muito mais regras de permissão do que as políticas por zonas: no laboratório, cerca de três vezes mais, em média. Kenji apresenta o alcance e o número de regras lado a lado, para que os leitores vejam o tradeoff, e não só o ganho de segurança. Ele não afirma saber quantas regras uma organização consegue gerenciar, mas observa que o resultado da cópia de modelos sugere que as organizações muitas vezes lidam com a complexidade das regras copiando-as, o que mina o benefício. Isso liga os resultados quantitativos de volta ao princípio da economia de mecanismo discutido no seminário.

6.5 Apresentar os resultados com honestidade

O capítulo de resultados de Kenji declara os efeitos com intervalos, explica o que cada verificação mostrou e rotula qualquer análise exploratória. Ele evita dizer que a segmentação por identidade é segura ou que a segmentação por zonas é insegura. Escreve que, sob as premissas do modelo, a segmentação baseada em identidade reduziu o alcance no pior caso a partir de uma única estação comprometida, em comparação com a segmentação por zonas, que boa parte desse ganho dependeu de evitar regras amplas copiadas de modelos e que ela exigiu cerca de três vezes mais regras. Essa frase é mais longa do que uma manchete, mas cada palavra está apoiada num resultado relatado.

Exemplo resolvido

Kenji roda seiscentas redes, calcula intervalos por bootstrap para zonas menos identidade e controle aleatório menos identidade, relata as verificações das rivais numa tabela e apresenta o alcance com o número de regras.

Caso sintético. Todos os resultados vêm de simulações sintéticas.

Erros e limites

Os intervalos por bootstrap descrevem a variação entre as redes geradas, e não a incerteza sobre empresas reais. Os achados exploratórios precisam de confirmação.

Exercícios

Síntese

Uma análise cuidadosa relata comparações pré-especificadas com intervalos, testa cada explicação rival e mantém lado a lado os ganhos de segurança e os custos operacionais.

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

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

Continue para a próxima aula já escrita.