◇ OpenCyber Academy
Técnico · Capítulo 17 · Português

Capítulo 17 — Laboratório isolado II

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 17 — Laboratório isolado II

Mapa da aula

Aula 17 publicada. Mapa, exemplo, EX065.

flowchart TD
  N0["17.1 A tarefa do laboratório"]
  N1["Laboratório — Detecção de logins suspeitos em regist"]
  N2["17.2 Medir"]
  N3["17.3 Recomendar"]
  N4["Síntese"]
  N0 --> N1 --> N2 --> N3 --> N4
  N4 --> EX["Exemplo resolvido"]
  EX --> Q["Exercício EX065"]

Desenho lógico

flowchart LR
  N0["17.1 A tarefa do laboratório"]
  N1["Laboratório — Detecção de logins suspeitos em regist"]
  N2["17.2 Medir"]
  N3["17.3 Recomendar"]
  N4["Síntese"]
  N0 --> N1 --> N2 --> N3 --> N4 --> Q["EX065"]
[17.1 A tarefa do laboratório]
    |
    v
[Laboratório — Detecção de logins suspeitos em regist]
    |
    v
[17.2 Medir]
    |
    v
[17.3 Recomendar]
    |
    v
[Síntese]
    |
    v
[Exemplo resolvido] --> [Exercício EX065]

Objetivos de aprendizagem

Você vai (1) testar num laboratório a detecção de logins suspeitos; (2) medir detecções e alarmes falsos; (3) recomendar configurações para a Linden.

17.1 A tarefa do laboratório

O segundo laboratório de Daniel usa registros sintéticos de login de um sistema clínico em nuvem. Cada registro mostra o usuário, a hora, o local e se o login teve sucesso, com alguns logins maliciosos plantados. Nadia precisa desenhar uma regra que alerte sobre logins suspeitos sem inundar Grace de alarmes. A equipe da Linden trabalha em cinco cidades, principalmente entre as sete da manhã e as sete da noite, então ela começa descrevendo, a partir dos dados, o comportamento normal antes de escrever qualquer regra. Ela escreve sua descrição do normal em poucas frases e pede que Daniel a confira antes de começar a programar.

Laboratório — Detecção de logins suspeitos em registros sintéticos

# Compare two sign-in alert rules on synthetic records: (user, hour, town, attack?)
recs = [("dr.ali", 9, "Elmfield", 0), ("dr.ali", 23, "Elmfield", 0), ("n.ross", 8, "Norbury", 0),
        ("n.ross", 14, "Norbury", 0), ("dr.ali", 3, "Lisbon", 1), ("k.chan", 10, "Ashby", 0),
        ("k.chan", 2, "Unknown", 1), ("m.ojo", 12, "Kingsley", 0), ("m.ojo", 22, "Riga", 1),
        ("p.lee", 18, "Westcott", 0), ("p.lee", 11, "Westcott", 0)]
seen = {}
for u, h, t, _ in recs:
    if 7 <= h < 19: seen.setdefault(u, set()).add(t)
def rule_a(r): return not (7 <= r[1] < 19)
def rule_b(r): return rule_a(r) and r[2] not in seen.get(r[0], set())
for name, rule in (("Rule A", rule_a), ("Rule B", rule_b)):
    hits = [r for r in recs if rule(r)]
    caught = sum(r[3] for r in hits)
    print(f"{name}: {len(hits)} alerts, {caught} attacks caught, {len(hits) - caught} false alarms")

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

Rule A: 4 alerts, 3 attacks caught, 1 false alarms
Rule B: 3 alerts, 3 attacks caught, 0 false alarms

17.2 Medir

Nadia testa duas regras. A regra A alerta sobre qualquer login fora do horário de trabalho. A regra B alerta sobre logins fora do horário de trabalho que também venham de um local nunca usado antes por aquele usuário. O laboratório conta, para cada uma, os alertas, os ataques plantados detectados e os alarmes falsos. A regra A detecta todos os ataques plantados, mas também sinaliza um dentista que confere a agenda tarde da noite. A regra B detecta os mesmos ataques com menos alarmes falsos. Medir os dois resultados mostra o trade-off com clareza. Ela guarda as contagens para o relatório.

17.3 Recomendar

Nadia recomenda a regra B para a Linden, com alertas enviados a Grace e uma revisão semanal, e anota seus limites: um atacante usando uma senha roubada durante o horário de trabalho, a partir de uma cidade habitual, não seria sinalizado. Ela acrescenta que o login multifator no sistema clínico importa mais do que qualquer regra de alerta, já que ele bloqueia de saída a maioria dos ataques com senhas roubadas. Daniel concorda, observando que a detecção complementa a prevenção, mas não pode substituí-la. Ela escreve a recomendação como uma nota de uma página para Grace, listando a regra, quem recebe os alertas, a revisão semanal e o ponto cego conhecido, para que a decisão possa ser revista se os padrões de trabalho da Linden mudarem.

Exemplo resolvido

Nadia compara duas regras de alerta de login em dados sintéticos, escolhe a que tem menos alarmes falsos e declara seu ponto cego.

Caso sintético. Os registros e os ataques são sintéticos.

Erros e limites

Os ataques plantados podem ser mais fáceis que os reais. Os dados de localização podem estar errados.

Exercícios

Síntese

Medir a detecção e os alarmes falsos em dados rotulados mostra qual regra implantar, enquanto a prevenção continua essencial.

Continue estudando — aula 17 (capítulo 17 de 18)

← Capítulo 16 · Índice das aulas · Capítulo 18 →

Continue para a próxima aula já escrita.