◇ OpenCyber Academy
Engenharia · Capítulo 10 · Português

Capítulo 10 — Ética e segurança na engenharia

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 10 — Ética e segurança na engenharia

Mapa da aula

Aula 10 publicada. Mapa, exemplo, EX028.

flowchart TD
  N0["10.1 Autorização não é entusiasmo"]
  N1["10.2 Uso dual e ensino"]
  N2["10.3 Condições de parada"]
  N3["10.3b Controle duplo para verbos perigosos"]
  N4["Síntese"]
  N0 --> N1 --> N2 --> N3 --> N4
  N4 --> EX["Exemplo resolvido"]
  EX --> Q["Exercício EX028"]

Desenho lógico

flowchart LR
  N0["10.1 Autorização não é entusiasmo"]
  N1["10.2 Uso dual e ensino"]
  N2["10.3 Condições de parada"]
  N3["10.3b Controle duplo para verbos perigosos"]
  N4["Síntese"]
  N0 --> N1 --> N2 --> N3 --> N4 --> Q["EX028"]
[10.1 Autorização não é entusiasmo]
    |
    v
[10.2 Uso dual e ensino]
    |
    v
[10.3 Condições de parada]
    |
    v
[10.3b Controle duplo para verbos perigosos]
    |
    v
[Síntese]
    |
    v
[Exemplo resolvido] --> [Exercício EX028]

Objetivos de aprendizagem

Você vai (1) recusar pedidos de uso dual e fora do escopo; (2) aplicar condições de parada sem esperar por uma reunião; (3) documentar consentimento e autorização para que uma revisão possa reconstruí-los.

10.1 Autorização não é entusiasmo

Um gestor dizendo "pode ir" no chat não é autorização por escrito. O NIST SP 800-115 e o PTES esperam um escopo assinado, com métodos, datas, limites, contatos e condições de parada. Sem esse documento, o engenheiro para. O entusiasmo de uma única parte interessada que não é dona do ativo é um caminho comum para testes não autorizados. Mensagens de chat desaparecem, carecem de detalhes de escopo e raramente nomeiam condições de parada. Um documento assinado pode ser mostrado meses depois, quando alguém perguntar por que um host foi tocado. Parar sem esse documento não é teimosia; é a única atitude que mantém o engenheiro e o cliente dentro da lei. Sam guarda o hash da ROE assinada no TrackScope, ao lado de cada execução.

10.2 Uso dual e ensino

Este livro ensina escopo, medição e relatório. Não ensina desenvolvimento de exploits, payloads transformados em armas nem receitas de evasão. Quando um colega pede "só a PoC", a resposta é a descrição do achado e a referência da evidência, não um ataque funcional. Publicar trabalhos de estudantes que contenham técnicas ativas contra produtos reais é uma decisão de divulgação que envolve fornecedores e a lei, não o envio de uma lição de casa. A recusa protege colegas, futuros empregadores e fornecedores que nunca concordaram em ser alvo de lição de casa. Uma descrição do achado com uma referência de evidência permite que um colega aprenda o que estava errado sem receber um ataque pronto. Quando um trabalho do curso pode tocar um produto real, Sam o encaminha pelo mesmo caminho de divulgação que um engajamento profissional usaria. Os laboratórios do curso ficam em sistemas sintéticos por esse motivo.

10.3 Condições de parada

Condições de parada são gatilhos combinados de antemão: sondar um host da lista de exclusão, latência acima de um limiar, um alarme de segurança ou um pedido do contato do cliente. Quando um gatilho dispara, primeiro pare, depois notifique. O TrackScope deve impor as negações rígidas em software, para que "eu esqueci" não seja um modo de falha.

"""Evaluate proposed actions against synthetic rules of engagement."""
ROE = {
    "hours": ("09:00", "17:00"),
    "deny_actions": {"denial-of-service", "phishing-staff", "exfiltrate-real-data"},
    "require_approval": {"password-spray-lab", "privilege-escalation-lab"},
    "max_concurrency": 5,
}
proposals = [
    ("service-enum", "10:30", 3, False),
    ("denial-of-service", "10:30", 1, False),
    ("password-spray-lab", "10:30", 2, False),
    ("password-spray-lab", "10:30", 2, True),
    ("service-enum", "18:00", 2, False),
    ("service-enum", "11:00", 20, False),
]

def ok_time(t):
    return ROE["hours"][0] <= t <= ROE["hours"][1]

for action, when, conc, approved in proposals:
    reasons=[]
    if action in ROE["deny_actions"]: reasons.append("deny-action")
    if action in ROE["require_approval"] and not approved: reasons.append("needs-approval")
    if not ok_time(when): reasons.append("outside-hours")
    if conc > ROE["max_concurrency"]: reasons.append("concurrency")
    print(f"action={action:20} when={when} conc={conc:2} approved={approved} -> {'ALLOW' if not reasons else 'DENY'} {','.join(reasons) or '-'}")

Saída esperada:

action=service-enum         when=10:30 conc= 3 approved=False -> ALLOW -
action=denial-of-service    when=10:30 conc= 1 approved=False -> DENY deny-action
action=password-spray-lab   when=10:30 conc= 2 approved=False -> DENY needs-approval
action=password-spray-lab   when=10:30 conc= 2 approved=True -> ALLOW -
action=service-enum         when=18:00 conc= 2 approved=False -> DENY outside-hours
action=service-enum         when=11:00 conc=20 approved=False -> DENY concurrency

Caso sintético — Riverstone Transit. Às 11:10 a varredura tocou 10.20.0.1 (na lista de exclusão). O TrackScope negou as ações seguintes; Sam escalou; o cliente confirmou. A retomada exigiu uma linha atualizada na ROE, não um "tudo bem" verbal.

O laboratório mostra negações para ações proibidas, aprovação ausente, horário errado e concorrência excessiva. A imposição em software significa que a parada acontece mesmo que a pessoa esteja cansada ou distraída. Notifique depois de parar, não antes, para que a ação danosa não continue enquanto alguém procura um horário para reunião. Sam testa o caminho de negação em staging com uma ação proibida deliberada antes de cada engajamento.

10.4 Erros e limites

Ética não é um capítulo que se termina; é uma restrição sobre todos os capítulos seguintes. O texto jurídico aqui é orientação, não aconselhamento — consulte a assessoria jurídica em engajamentos reais. Os capítulos posteriores sobre ferramentas e métodos herdam esses limites; nenhum deles se sobrepõe a uma ROE ausente. Um texto de orientação não substitui a assessoria jurídica quando há um contrato real na mesa. Sam escala as questões jurídicas em vez de inventar respostas a partir de um parágrafo de livro, e revisita o consentimento quando o escopo muda no meio do engajamento, antes de qualquer nova ação rodar.

10.3b Controle duplo para verbos perigosos

Ações que mudam a autorização — publicar uma nova ScopeVersion, desativar uma condição de parada, exportar um dossiê lacrado — exigem duas pessoas autenticadas ou um controle individual com atraso e janela de cancelamento. A conveniência de engenharia não é argumento contra o controle duplo quando o raio de impacto é o patrimônio do cliente. Um único engenheiro cansado não deveria conseguir ampliar o escopo de um ambiente inteiro. Uma segunda pessoa, ou um atraso que permita cancelar, transforma um erro num evento recuperável. Publicar uma nova ScopeVersion e exportar um dossiê lacrado mudam quem pode ver o quê, e é por isso que ambos estão na lista de controle duplo. Sam registra os dois aprovadores em cada uma dessas ações.

Exercícios

Síntese

Permissão por escrito, condições de parada e o hábito de recusar são engenharia de segurança, não burocracia.

Continue estudando — capítulo 10 de 50

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