Capítulo 15 — Segurança ofensiva autorizada e red team: laboratório guiado
Mapa da aula
Aula 15 publicada. Mapa, exemplo, EX043.
flowchart TD
N0["15.1 Três controles"]
N1["15.2 O registro do operador"]
N2["Laboratório F — pipeline guiado"]
N3["15.3 HOLD é um recurso"]
N4["15.4 Uso pelo revisor"]
N5["Síntese"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5
N5 --> EX["Exemplo resolvido"]
EX --> Q["Exercício EX043"]
Desenho lógico
flowchart LR
N0["15.1 Três controles"]
N1["15.2 O registro do operador"]
N2["Laboratório F — pipeline guiado"]
N3["15.3 HOLD é um recurso"]
N4["15.4 Uso pelo revisor"]
N5["Síntese"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> Q["EX043"]
[15.1 Três controles]
|
v
[15.2 O registro do operador]
|
v
[Laboratório F — pipeline guiado]
|
v
[15.3 HOLD é um recurso]
|
v
[15.4 Uso pelo revisor]
|
v
[Síntese]
|
v
[Exemplo resolvido] --> [Exercício EX043]
Objetivos de aprendizagem
Você vai (1) executar um pipeline de três controles que admite uma ação apenas quando alvo, horário e atividade passam; (2) manter um registro do operador com as ações admitidas; (3) explicar por que um HOLD é um sucesso, e não uma falha; (4) entregar o registro a um revisor como evidência de disciplina.
15.1 Três controles
Toda ação planejada tem um endereço de alvo, um carimbo de tempo e um nome de atividade. O alvo precisa estar no prefixo em escopo, o horário dentro da janela e a atividade na lista aprovada. Se qualquer controle falhar, a ação não prossegue. Na saída do Laboratório F, A2 é retida no controle de atividade e A3 no controle de alvo, então nenhuma das duas chega ao registro do operador. Priya registra as duas linhas HOLD em capturas de tela nas notas de treinamento, porque no ENG-712 os controles são o produto e a improvisação é o defeito.
15.2 O registro do operador
Apenas as ações que passam pelos três controles são escritas no registro do operador. O registro é a evidência de que a equipe ficou dentro do acordo. Um registro cheio de improvisação é um achado contra a própria equipe de testes. No laboratório, apenas A1 e A4 passam pelos três controles, então são as únicas entradas do registro do operador. Priya revisa o registro antes da sessão com o CISO e o compara com o histórico do chat. Qualquer ação que apareça no chat, mas não no registro, é uma ação nas sombras e vira um achado de processo contra a Northpoint.
Laboratório F — pipeline guiado
"""Lab F (ch 15): guided pipeline - an action is logged only if target, time and activity all pass."""
import ipaddress
from datetime import datetime
scope = ipaddress.ip_network("192.0.2.0/25")
window = (datetime(2026, 11, 3, 22, 0), datetime(2026, 11, 4, 5, 0))
approved = {"service inventory", "authentication review", "configuration review"}
actions = [
("A1", "192.0.2.12", "2026-11-03 22:15", "service inventory"),
("A2", "192.0.2.12", "2026-11-03 22:40", "password spraying"),
("A3", "192.0.2.140", "2026-11-03 23:05", "configuration review"),
("A4", "192.0.2.30", "2026-11-04 01:20", "authentication review"),
]
log = []
for aid, ip, when, act in actions:
checks = {
"target": ipaddress.ip_address(ip) in scope,
"time": window[0] <= datetime.strptime(when, "%Y-%m-%d %H:%M") <= window[1],
"activity": act in approved,
}
failed = [k for k, ok in checks.items() if not ok]
print(aid, "PROCEED" if not failed else "HOLD (" + ",".join(failed) + ")")
if not failed:
log.append(aid)
print("operator log entries:", log)
Execute com python3 lab_pipeline.py. Saída verificada:
A1 PROCEED
A2 HOLD (activity)
A3 HOLD (target)
A4 PROCEED
operator log entries: ['A1', 'A4']
15.3 HOLD é um recurso
A2 é retida porque "password spraying" não é uma atividade aprovada. A3 é retida porque o alvo está fora do /25. Esses HOLDs protegem a TRT e a Northpoint. Celebrar um HOLD na reunião de encerramento ensina aos juniores que a contenção é profissional. As reuniões de encerramento dão aos HOLDs e aos STOPs de pagamento de tarifas o mesmo reconhecimento que aos achados. As notas do estúdio concedem pontos por HOLDs documentados que impediram trabalho fora de escopo ou fora da janela. Juniores que escondem um HOLD para parecer produtivos são reprovados na nota do estúdio, porque escondê-lo apaga a evidência de que os controles funcionaram.
15.4 Uso pelo revisor
Um revisor deve conseguir repetir os controles sobre o registro. Se aparecer uma entrada que não passaria, o engajamento tem uma falha de processo, independentemente de algo "interessante" ter sido encontrado. A revisão por pares dos pacotes de treinamento do ENG-712 inclui executar de novo as verificações dos controles sobre cada entrada do registro. Se uma entrada teria sido retida, o engajamento registra uma falha de processo mesmo quando o achado relacionado parece impressionante. O processo é avaliado ao lado dos achados, então um resultado forte não consegue esconder um registro que os controles teriam rejeitado.
Exemplo resolvido
Quatro ações candidatas entram no pipeline. A1 e A4 prosseguem; A2 e A3 ficam retidas. O registro do operador contém apenas ['A1', 'A4']. Priya anexa essa saída aos registros do engajamento antes do fim do turno da noite.
Caso sintético. As quatro ações e os resultados do pipeline foram inventados para o laboratório guiado.
Erros e limites
O pipeline não substitui o julgamento humano sobre fragilidade ou incidentes em andamento; ele apenas aplica os três controles rígidos. Preocupações mais sutis continuam precisando de uma pessoa.
Exercícios
- EX043 — Motivos da retenção. Por que A2 e A3 ficam retidas, segundo o laboratório? Rubrica: 3 = A2, atividade não aprovada; A3, alvo fora de escopo; 2 = uma correta; 1 = as duas prosseguem; 0 = nada.
- EX044 — Conteúdo do registro. O que o registro do operador contém depois da execução e por que essa lista é evidência? Rubrica: 3 = ['A1','A4']; prova que só ações aprovadas pelos controles foram executadas; 2 = nomeia a lista; 1 = inclui as retidas; 0 = nada.
- EX045 — Preocupação sutil. A API de horários é frágil, mas o alvo e a atividade de A4 são permitidos. Que passo extra uma pessoa deve dar? Rubrica: 3 = aplicar a limitação de taxa/nota de fragilidade das ROE ou mudar de método; confirmar com a equipe branca em caso de dúvida; 2 = cautela vaga; 1 = ignorar; 0 = nada.
Síntese
Três controles rígidos, um registro só com o que passou e o julgamento humano ainda aplicado por cima.
Continue estudando — capítulo 15 de 30
← Capítulo 14 (rascunho) · Índice de capítulos do curso · Capítulo 16 (rascunho) →