Capítulo 50 — Defesa final
Mapa da aula
Aula 50 publicada. Mapa, exemplo, EX148.
flowchart TD
N0["50.1 Estrutura da apresentação"]
N1["50.2 Perguntas prováveis"]
N2["50.3 Reflexão"]
N3["50.2b Depois da defesa"]
N4["50.3b Pacote dos examinadores"]
N5["50.1b Disciplina de tempo"]
N6["Nota de prática"]
N7["50.4b Ensaiar a defesa"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6 --> N7
N7 --> EX["Exemplo resolvido"]
EX --> Q["Exercício EX148"]
Desenho lógico
flowchart LR
N0["50.1 Estrutura da apresentação"]
N1["50.2 Perguntas prováveis"]
N2["50.3 Reflexão"]
N3["50.2b Depois da defesa"]
N4["50.3b Pacote dos examinadores"]
N5["50.1b Disciplina de tempo"]
N6["Nota de prática"]
N7["50.4b Ensaiar a defesa"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6 --> N7 --> Q["EX148"]
[50.1 Estrutura da apresentação]
|
v
[50.2 Perguntas prováveis]
|
v
[50.3 Reflexão]
|
v
[50.2b Depois da defesa]
|
v
[50.3b Pacote dos examinadores]
|
v
[50.1b Disciplina de tempo]
|
v
[Nota de prática]
|
v
[50.4b Ensaiar a defesa]
|
v
[Exemplo resolvido] --> [Exercício EX148]
Objetivos de aprendizagem
Você vai (1) apresentar a afirmação e a evidência em 20 minutos; (2) responder a perguntas de segurança e de medição; (3) declarar o que você não faria de novo.
50.1 Estrutura da apresentação
Afirmação; demo sobre dados sintéticos; resultados da verificação; uma lição do ensaio de falha; limites; perguntas. Nenhuma demo de invasão ao vivo. A demo sintética e os resultados da verificação sustentam a afirmação; logotipos não. Limites antes das perguntas definem a honestidade como moldura. A ordem da apresentação de Sam segue o enunciado, para que os examinadores ouçam a lição do ensaio de falha antes das perguntas e respostas. Slides de logotipos são apagados no ensaio se alguém os tiver trazido de um modelo. Apresentações-modelo de fornecedores são proibidas na lista de verificação do ensaio. O item um da lista de verificação do ensaio é "nenhum logotipo de fornecedor".
50.2 Perguntas prováveis
Prova de falha fechada? Escolha do denominador? Fronteira do uso dual? O que quebrou no Laboratório II? Pratique responder com ponteiros para artefatos. Ponteiros para artefatos valem mais que confiança improvisada. Prova de falha fechada, escolha do denominador, fronteira do uso dual e quebras no Laboratório II são previsíveis. Os cartões de resposta de Sam citam hashes de listas de verificação e linhas de exportações do PulseMap, em vez de repetir slogans. Slogans sem hashes são praticados como respostas reprovadas no ensaio. A prática de respostas reprovadas é registrada, para que o mesmo slogan não seja reutilizado. Slogans reutilizados de uma resposta reprovada anterior custam um ponto na pontuação do ensaio.
50.3 Reflexão
Termine com um erro de desenho e a sua correção — os examinadores confiam em engenheiros que viram as próprias falhas.
"""Lab S: reporting attack-success rates honestly: Wilson intervals,
seed variation and a paired bootstrap. Synthetic trial outcomes only."""
import math, random
def wilson(k, n, z=1.96):
p = k/n; d = 1 + z*z/n
c = (p + z*z/(2*n))/d; h = z*math.sqrt(p*(1-p)/n + z*z/(4*n*n))/d
return c - h, c + h
for k, n in ((3, 20), (30, 200), (300, 2000)):
lo, hi = wilson(k, n); print(f"successes={k}/{n} rate={k/n:.3f} wilson95=[{lo:.3f}, {hi:.3f}]")
# five seeds of a synthetic defence evaluation: per-seed attack success rate
rates = []
for seed in range(5):
r = random.Random(seed); rates.append(sum(r.random() < 0.12 for _ in range(200))/200)
m = sum(rates)/5; sd = math.sqrt(sum((x-m)**2 for x in rates)/4)
print("per-seed rates:", " ".join(f"{x:.3f}" for x in rates), f"mean={m:.3f} sd={sd:.3f}")
# paired bootstrap: baseline vs defence on the same 300 synthetic prompts
r = random.Random(42)
base = [r.random() < 0.30 for _ in range(300)]
defn = [b and r.random() < 0.6 for b in base] # defence blocks ~40% of successes
diffs = []
for _ in range(2000):
idx = [r.randrange(300) for _ in range(300)]
diffs.append(sum(base[i] for i in idx)/300 - sum(defn[i] for i in idx)/300)
diffs.sort()
print(f"baseline_asr={sum(base)/300:.3f} defended_asr={sum(defn)/300:.3f} "
f"reduction_ci95=[{diffs[50]:.3f}, {diffs[1949]:.3f}]")
Saída esperada:
successes=3/20 rate=0.150 wilson95=[0.052, 0.360]
successes=30/200 rate=0.150 wilson95=[0.107, 0.206]
successes=300/2000 rate=0.150 wilson95=[0.135, 0.166]
per-seed rates: 0.110 0.130 0.135 0.105 0.145 mean=0.125 sd=0.017
baseline_asr=0.350 defended_asr=0.190 reduction_ci95=[0.120, 0.203]
Caso sintético — Riverstone Transit. A defesa de Sam abriu com o laboratório de falha fechada, não com um slide de logotipos. Quando lhe pediram uma pontuação de risco, Sam recusou e mostrou os denominadores de SLA e de cobertura.
Um erro de desenho real e sua correção constroem mais confiança do que uma narrativa perfeita. Recusar uma pontuação de risco em favor dos denominadores de SLA e de cobertura é o momento da defesa da Riverstone a imitar. O slide de erro de Sam nomeia o intervalo de polling atrasado e o ensaio que o pegou. O slide de erro é obrigatório; uma narrativa perfeita sem ele perde pontos. Os pontos do slide de erro estão publicados na rubrica ao lado do Laboratório II.
50.4 Erros e limites
A defesa não é um discurso de vendas para um fornecedor de scanners. Discursos de vendas de fornecedores desperdiçam o tempo dos examinadores e violam o capítulo de medição. A defesa argumenta a partir de artefatos. Os slides de Sam não contêm logotipos de scanners; os únicos nomes de produtos são TrackScope, FindingsDesk e PulseMap, como sistemas do curso. Comparações com fornecedores, se houver, usam denominadores medidos do PulseMap, não alegações de folheto. Citações de folhetos exigem uma nota de rodapé com o hash de uma exportação do PulseMap. Notas de rodapé sem hashes são tratadas como alegações de folheto e removidas. A lista de slides de Sam é conferida contra essa regra na manhã da defesa.
50.2b Depois da defesa
Arquive a apresentação ao lado do dossiê, com hashes correspondentes. Anote os pedidos dos examinadores como issues. A defesa é um portão, não o fim da manutenção — a propriedade continua (Capítulo 39). Arquivar a apresentação com hashes correspondentes ao lado do dossiê mantém acionáveis os pedidos dos examinadores. A propriedade continua depois do portão. Sam abriu três issues a partir das perguntas dos examinadores na mesma tarde, ainda atribuídas ao esquadrão de plataforma. Issues sem donos na tarde da defesa são levantadas na reunião diária seguinte. As notas da reunião diária referenciam as três issues para quem perdeu a defesa.
50.3b Pacote dos examinadores
Entregue aos examinadores, com um dia de antecedência, a frase da afirmação, o resumo do Laboratório II, a medida do ensaio de falha e o parágrafo de ética. Apresentações surpresa desperdiçam o tempo da defesa que deveria testar o seu julgamento. Apresentações surpresa queimam tempo. O pacote de Sam tinha cinco páginas e seguia a ordem da apresentação, para que os examinadores pudessem fazer anotações antes que ele falasse. As páginas do pacote são numeradas de acordo com os números dos slides, para agilizar as anotações. A agilidade nas anotações importa quando a banca tem só cinco minutos para se preparar. O pacote traz a mesma tag de versão do dossiê, para que os examinadores saibam que estão lendo o texto final.
50.1b Disciplina de tempo
Vinte minutos significam ensaiar com um cronômetro. Cortar o slide de limites para ganhar tempo é o corte errado — os examinadores precisam mais da sua honestidade do que de um quarto clique na demo. O ensaio de Sam cortou dois slides de arquitetura e manteve os limites e a história do ensaio de 45 s para 30 s. A história do ensaio é cronometrada em noventa segundos, para que as perguntas ainda caibam. Os noventa segundos são ensaiados com um cronômetro visível no laptop do apresentador. Cada ensaio registra o tempo real de cada seção, e qualquer seção que passa do tempo é cortada no ensaio seguinte, nunca o slide de limites.
Nota de prática
Depois da defesa, agende uma revisão de manutenção em noventa dias: o esquadrão dono ainda é o certo, as fixações de versão estão atuais, algum ticket corretivo foi reaberto? O último capítulo da graduação é o primeiro capítulo da responsabilidade contínua.
Agradeça aos operadores que conduziram os ensaios sintéticos; uma defesa sem os logs deles é contação de histórias.
Mantenha um estacionamento para as ideias dos examinadores e processe-o em uma semana, enquanto o contexto está fresco.
50.4b Ensaiar a defesa
Duas semanas antes da defesa, Sam apresenta a palestra a colegas que fazem o papel de examinadores e fazem as perguntas mais difíceis da lista de perguntas prováveis. Ele cronometra cada seção, corta os slides que estouram e escreve respostas curtas para as três perguntas com que teve dificuldade. Colegas no papel de examinadores revelam respostas fracas enquanto ainda há tempo de escrever respostas curtas. Cronometrar cada parte evita uma correria que derruba os limites. As três perguntas mais difíceis de Sam foram uso dual, denominador e o que o Laboratório II quebrou; ele registrou respostas de um parágrafo antes da defesa real. As respostas escritas são limitadas a oito linhas, para que possam ser faladas, não lidas como um ensaio. Ensaios são cortados até caberem no formato de cartão de oito linhas.
Exercícios
- EX148 — Roteiro. Roteiro da apresentação em seis tópicos. Rubrica: 3 = afirmação→demo→verificação→falha→limites→perguntas; 2 = parcial; 1 = discurso de fornecedor; 0 = nada.
- EX149 — Resposta. 3–4 frases respondendo a "qual é a sua pontuação de risco?" Rubrica: 3 = recusa a pontuação vazia + alternativas; 2 = parcial; 1 = inventa uma pontuação; 0 = nada.
- EX150 — Erro. Um erro real (da história sintética) e a correção. Rubrica: 3 = específico; 2 = vago; 1 = "nenhum"; 0 = nada.
Síntese
Defenda a engenharia, as medidas e as recusas.
Continue estudando — capítulo 50 de 50
← Capítulo 49 (rascunho) · Índice de capítulos do curso · Resultados resolvidos ↓ · Próximo curso pelo índice de capítulos →
Resoluções
Respostas-modelo para EX001–EX150. A Riverstone Transit, Sam Ito e todos os números são sintéticos. Qualquer resposta que atenda à rubrica recebe a mesma pontuação.
EX001. r′(t) = 8 − 2t = 0 em t = 4, então o pico é r(4) = 32 − 16 = 16 req/s. Resolver 8t − t² = 7 dá t² − 8t + 7 = 0, t = 1 ou t = 7. O teto é violado do minuto 1 ao minuto 7, seis minutos. A nota 3 exige o pico e a janela.
EX002. Taxa: "No máximo 5 requisições por segundo para /api/tickets a partir do endereço de origem da avaliação." Total: "No máximo 20.000 requisições por dia corrido para /api/tickets." O total é mais fácil de verificar pelos logs (uma única contagem por dia); a taxa exige agrupamento por segundo e uma tolerância para a defasagem de relógio.
EX003. 2.160 / 4 = 540 segundos = 9 minutos. O cronograma plano é mais longo que a rampa de 6 minutos, mas nunca ultrapassa o teto.
EX004. T = {(h, p) : h ∈ 192.168.50.0/24, h ∉ {192.168.50.1, 192.168.50.254}, p ∈ {22, 443}}. |T| = (256 − 2) × 2 = 508. (Contar apenas os hosts utilizáveis, 254 − 2 = 252 hosts e 504 pares, também é aceito se for declarado.)
EX005. Seja P′ = P ∪ {q}. Qualquer (h, p) ∈ T tem p ∈ P ⊆ P′, e as outras cláusulas não mudam, então (h, p) ∈ T′. Logo, T ⊆ T′. Como acréscimos de porta só podem ampliar o escopo, eles precisam de aprovação escrita do cliente e de um segundo revisor, ao contrário dos acréscimos à lista de exclusão.
EX006. Os dois usam o host 192.168.50.20, que está na faixa 192.168.50.0/24 e fora da lista de exclusão. A porta 22 está em P = {22, 80, 443, 8080}; a porta 3389 não está, então essa cláusula falha e a decisão é DENY com o motivo port-not-in-scope.
EX007. 800 km em cada sentido a ~200.000 km/s dão ~4 ms, então ~8 ms de ida e volta é o piso. 2 ms não é plausível; provavelmente a resposta veio de um cache local, de um proxy ou de um local diferente do suposto. Peça o método de medição e o caminho.
EX008. 500 × 120 × 8 = 480.000 b/s = 0,48 Mb/s, ou seja, 24% de 2 Mb/s. Acrescente a sobrecarga de cabeçalhos para um valor realista.
EX009. Bandas e canais permitidos; locais físicos exatos (prédios/andares); datas e horários; limites de potência de transmissão ou de teste ativo; e uma regra de que dispositivos de terceiros e seu tráfego estão fora do escopo, não são registrados ou são descartados imediatamente. Quaisquer quatro, com um signatário autorizador nomeado.
EX010. in sobre strings testa uma substring, e "8443,22" contém "443". Interprete o campo como um conjunto de inteiros, ports = {int(x) for x in s.split(",")}, e teste 443 in ports, que aqui é False.
EX011. Teste 192.168.50.0 e 192.168.50.255 (ambos dentro do objeto de rede /24) e 192.168.51.0, que precisa ficar fora. Uma implementação por prefixo de string costuma falhar no último caso.
EX012. O motivo identifica qual regra disparou, então os logs mostram por que uma ação foi bloqueada ("deny-list" ou "outside-cidr"), e os revisores podem conferir a regra certa. Os testes podem então afirmar o motivo específico, pegando um caso em que a resposta certa é alcançada pelo motivo errado.
EX013. Título: "O edge da VPN corporativa permite uma versão legada de protocolo sem autenticação multifator." Evidência: "Em 14 de março, às 10:20 (sintético), a revisão de configuração autorizada de corp-vpn-edge mostrou o perfil legado ativo, com login só por senha; ref. FD-131." Sem comandos, sem credenciais.
EX014. "Entre 09:00 e 17:00 do dia autorizado, avaliamos 12 hosts da Riverstone em escopo, sob a ROE v1.3. Dois achados são críticos: uma senha de administrador padrão na UI web de staging e uma conta de serviço do laboratório com direitos de administrador de domínio. Pedimos ao dono da plataforma que aprove a troca de credenciais dentro do SLA crítico de 7 dias."
EX015. Por exemplo: (1) o gateway da lista de exclusão e dois hosts que estavam fora do ar não foram avaliados, então seu estado é desconhecido; (2) engenharia social e acesso físico estavam fora do escopo, então o relatório não diz nada sobre a resiliência a phishing. Cada limite estreita o que as conclusões cobrem.
EX016. Tentativas esperadas por envio = 1/0,7 ≈ 1,429; para 500 envios, cerca de 714 tentativas. A ROE e o limite de taxa precisam cobrir 714, não 500.
EX017. B′ = 3 − 5 = −2/dia, então B(t) = 40 − 2t = 0 em t = 20 dias, supondo taxas constantes e sem prioridade.
EX018. Teoria: 1 − 0,2³ = 0,992 contra 0,8, um ganho de 0,192 (19,2 pontos). O empírico do laboratório, 988/1000 contra 784/1000, dá cerca de 20,4 pontos; qualquer um dos números, com a comparação, vale 3.
EX019. Estimativa pontual de 20%. Um intervalo de Wilson de 95% vai de aproximadamente 10,5% a 34,5%. Você pode dizer que a taxa provavelmente fica entre a casa dos dez e o início dos trinta por cento; não pode alegar superioridade sobre outro método com 25% sem uma amostra maior ou pareada.
EX020. Precisão = (0,9·0,005) / (0,9·0,005 + 0,02·0,995) = 0,0045 / (0,0045 + 0,0199) ≈ 0,184 (18,4%).
EX021. "Com 12/100 e 18/100, os intervalos se sobrepõem bastante; esta amostra não justifica classificar os filtros. Precisamos de um n maior ou de um teste pareado com os mesmos prompts antes de escolher um."
EX022. Usuário: respostas HTTP, leituras autenticadas de API, a própria lista de processos, logs de aplicação que a conta pode ver, o certificado TLS apresentado. Elevado: disco bruto, memória de outros usuários, módulos de kernel, tabelas de firewall, console do hipervisor. Quaisquer seis corretos, com a divisão clara.
EX023. "Somente o host lab-cache-01 (nenhum tráfego de produção roteado para ele)." "Pare e notifique o contato se a latência mediana da requisição canário passar de 50 ms por cinco minutos." Mais: "nenhum resultado publicado com chaves de produção ou dados de clientes."
EX024. Sob a ROE, tente um login com a senha padrão do fornecedor na URL de staging; capture o status HTTP e uma captura de tela com dados ocultados; abra um ticket no FindingsDesk com horário e URL; faça logout; não guarde a senha no corpo do ticket (referencie o repositório de evidências lacrado). Nenhum acesso ao sistema operacional é necessário.
EX025. Na ingestão, se alguma chave casar com a regex, rejeite com 400 e o motivo "forbidden field". Exemplo de corpo que falha: {"title":"x","payload":"..."}. Os testes afirmam a rejeição.
EX026. A impressão digital é (ativo, fraqueza, local). As duas linhas de /login compartilham (web-01, missing-header, /login); /account é outro local, então tem outra impressão digital e é um achado separado.
EX027. Depois de acrescentar o host h à lista de exclusão, para toda porta p, allowed(h, p) é False. De forma equivalente, o conjunto permitido depois da mudança é um subconjunto do conjunto de antes.
EX028. "Não posso fornecer um exploit funcional nem uma PoC contra um produto real — isso é uso dual e fica fora das regras de segurança deste curso. Posso ajudar você a escrever a descrição de um achado a partir de evidências sintéticas ou indicar o processo público de comunicados do fornecedor."
EX029. denial-of-service → deny-action; password-spray-lab sem aprovação → needs-approval; service-enum às 18:00 → outside-hours; service-enum com concorrência 20 → concurrency. O password spraying aprovado e a enumeração dentro do horário com concorrência 3 são ALLOW.
EX030. Sistemas e endpoints em escopo; métodos permitidos; datas e horários; limites de taxa, de dados e de privacidade; contatos nomeados e escalonamento; condições de parada e regras de retomada. Assinada por alguém com autoridade sobre os ativos.
EX031. Exemplo: a observação de MAC/ARP exige acesso ao segmento de enlace; o certificado TLS apresentado exige uma conexão TCP até a porta; um campo privado de API exige uma sessão autenticada. As triplas exatas podem variar, se justificadas.
EX032. P = {80, 443, 8080}; nota: "Só HTTP e HTTPS para o portal de tarifas e as aplicações de funcionários listados no Apêndice A; sem MITM de TLS, sem outros protocolos nessas portas."
EX033. public-web-portal (9) e corp-vpn-edge (8): maior exposição e raio de impacto, ambos voltados para a Internet. staging-admin-ui (7) vem em seguida, se sobrar tempo.
EX034. Conta svc-assess-sam num papel personalizado "Local group readers" nos três hosts (ou uma gMSA com esse direito); válida das 09:00 às 17:00 nas datas da ROE; todos os logons auditados; desativada automaticamente ao fim do dia, mais uma verificação manual.
EX035. "Nos hosts de laboratório HV-01 e HV-02, a conta de avaliação recebeu participação no grupo local Administrators pela GPO Lab-Admins; confirmado por leitura do grupo em 14 de março; nenhum exploit usado; remova o vínculo da GPO e verifique de novo."
EX036. (1) O IdP/diretório mostra a conta desativada ou excluída; (2) não há administradores locais remanescentes com esse nome nos hosts amostrados; (3) o último logon e a trilha de tickets foram revisados, sem atividade depois do horário de término.
EX037. "Use somente a réplica sintética. Nenhum SELECT em colunas marcadas como pessoais/dados pessoais. LIMIT 100 por consulta. Nenhum pg_dump nem exportação de tabela inteira. Arquivos temporários destruídos em até 24 horas, com confirmação no ticket."
EX038. Obtenha as credenciais de analyst emitidas para o teste; conecte-se com esse papel; rode SELECT 1 FROM passengers LIMIT 1 (ou equivalente); registre o sucesso ou o permission-denied. Nenhum payload elaborado.
EX039. Seguros: product_id, price_cents, zone_code. Proibidos no conjunto do curso: passenger_name, payment_card_number (e identificadores semelhantes).
EX040. "A descoberta e as verificações de escopo usaram o TrackScope v0.9.2 (SHA do git a1b2c3d), carregado em 14 de março às 09:00 a partir do bucket interno de releases."
EX041. "Qualquer PR que amplie o escopo (CIDR/porta acrescentados ou exclusão removida) exige um ticket de autorização vinculado e a aprovação de um segundo code owner; mudanças que restringem precisam de um dono."
EX042. Uma CI com credenciais de VPN do cliente testaria sistemas sem uma janela autorizada por uma pessoa, poderia vazar segredos em logs/artefatos e faria os builds dependerem de redes externas. Fixtures sintéticos mantêm a CI segura e reproduzível.
EX043. Confidencialidade: uma parte não autorizada que conheça a senha padrão pode ler as tabelas de tarifas de staging. Integridade: pode alterar essas tabelas. Disponibilidade: poderia bloquear os administradores ou quebrar os deploys de staging. Tudo limitado ao ativo UI de staging.
EX044. Vulnerabilidade: conta de serviço elegível a administrador de domínio. Exposição: a conta existe no diretório do laboratório, alcançável pelo papel de avaliação. Risco: o julgamento da Riverstone sobre probabilidade e impacto caso essa participação fosse abusada — aceito ou remediado por ela.
EX045. "Não publicamos uma pontuação única de hackeabilidade — ela não é reproduzível e esconde trade-offs (Albrecht & Jensen). Aqui estão as sondagens fora do escopo (1), os críticos em aberto (2) e a cobertura das técnicas planejadas (71%); podemos acompanhar isso ao longo do tempo."
EX046. "O TrackScope deve negar alvos fora do escopo assinado e persistir os códigos de motivo." Verificação: testes unitários sobre escopo sintético. "O FindingsDesk deve rejeitar corpos de achado que contenham nomes de campo proibidos." Verificação: testes de esquema.
EX047. Artefato: repositório de eventos de negação/permissão somente-acréscimo. Sinal: o teste T-17 tenta um UPDATE num motivo de negação e espera rejeição/erro.
EX048. event_id/timestamp, target (host:porta), reason_code, policy_version, actor_account — quaisquer três desses, com significado claro.
EX049. Sensor: contagem de achados abertos além do SLA, por prioridade. Limiar: crítico > 0 ou qualquer BREACH. Atuador: escalonamento do ticket + resumo diário para o dono.
EX050. "Acione imediatamente para críticos; agrupe médios/baixos num resumo diário; suprima duplicatas com a mesma impressão digital por 24 h."
EX051. Ampliar o escopo ou afrouxar uma condição de parada — exige uma atualização assinada da ROE, não um envio automático de configuração.
EX052. Notebook+TrackScope na zona de avaliação; repositório de evidências na zona de ferramentas; UI de staging no staging do cliente. Controles: proxy com lista de permissões, mTLS até o repositório (ou VPN+SSO). Qualquer esboço coerente.
EX053. O texto do achado e as referências de evidência saem do repositório autorizado para uma conta pessoal não habilitada, quebrando os controles de confidencialidade e de retenção.
EX054. "Os testes usaram um ambiente sintético que espelha a configuração de staging; os resultados sustentam alegações sobre essa configuração sob a ROE, não sobre o comportamento ou os dados de produção em execução."
EX055. Qual IdP? MFA exigido para administradores? Quais grupos mapeiam para fare-admin? Tempo de vida do token de acesso? Caminho de administrador de emergência (break-glass) e seu registro?
EX056. findings.json MISMATCH. Restaure a cópia lacrada, verifique de novo os hashes, confira nos logs de auditoria as escritas posteriores ao horário da lacração e trate as edições sem controle como um achado de processo.
EX057. "Segredos de avaliação nunca são colados em tickets, chat ou git; os tickets guardam só um id de referência do cofre e um carimbo de tempo da última troca."
EX058. Exemplo: sequenciamento do engajamento → PTES; orientação de testes técnicos → SP 800-115; vocabulário/cobertura de técnicas → ATT&CK; cenário de inteligência de ameaças conduzido pelo regulador → TIBER-EU/CBEST.
EX059. "Projetar e operar uma plataforma de avaliação autorizada que imponha a ROE escrita, registre evidências e meça a remediação — sem jamais testar fora do escopo assinado."
EX060. Código de exploit funcional; varredura de sistemas sem ROE escrita; exportação de dados pessoais de produção para os laboratórios; testes de rádio sem autorização de espectro.
EX061. Funcional: "O TrackScope deve negar qualquer alvo igual ao endereço de gateway configurado." Segurança: "Se o arquivo da lista de exclusão estiver ausente ou ilegível, o TrackScope deve negar todas as ações e emitir um alerta."
EX062. Dado que o caminho da política está configurado, mas o arquivo está ausente; Quando houver qualquer chamada a allowed(); Então o resultado é DENY com o motivo policy-unavailable, nenhuma ação prossegue e um alerta é disparado.
EX063. Conflito: os operadores querem acréscimos de CIDR no mesmo dia; a segurança quer aprovação dupla. Regra escolhida: a ampliação sempre exige aprovação dupla e um ticket AUTH; acréscimos de emergência usam um papel de break-glass que ainda registra tudo e expira em 4 horas.
EX064. Edições no lugar apagam o que estava autorizado no momento t; a ScopeVersion permite que um achado aponte para a ROE que estava em vigor quando a ação rodou.
EX065. Recalcular o hash detecta mudanças; arquivos idênticos se fundem; os tickets referenciam bytes imutáveis.
EX066. Rejeite títulos que casem com padrões de atribuição de senha ou com heurísticas de entropia; os revisores continuam conferindo; referências ao cofre só nos metadados das evidências.
EX067. Implante com o caminho da política apontando para uma montagem vazia; chame allowed(); espere DENY policy-unavailable e um acionamento de alerta; nenhum pacote sai.
EX068. Todo evento de negação guarda o id autenticado de quem agiu e a versão da política; o armazenamento é somente-acréscimo; exclusões exigem break-glass com controle duplo.
EX069. O STRIDE da plataforma protege a integridade da avaliação e a segurança do cliente; módulos de exploração aumentam o dano de uso dual e violam o limite do programa — não são mitigações.
EX070. Nome: revisão autenticada de configuração web. Propósito: ler as configurações relevantes para a segurança. Privilégio: papel de aplicação assess-read. Ruído: baixo. Parada: qualquer tentativa de escrita ou host da lista de exclusão. Artefatos: hash da exportação das configurações, rascunhos de achados.
EX071. Ações sem ROE assinada não são autorizadas; é uma falha legal/ética, independentemente da intenção.
EX072. Relatório: o host 10.20.0.1 foi sondado (lista de exclusão), as ações foram paradas, o contato do cliente confirmou, a retomada só ocorreu em hosts em escopo — com os carimbos de tempo.
EX073. Arquivo JSON assinado: risco = os operadores esquecerem de assinar. Política fixa no código: risco = reimplantações a cada mudança de ROE e deriva entre os nós.
EX074. "As decisões de negação disparam o alerta de forma síncrona antes de retornar a quem chamou, para que as condições de parada cumpram a meta de um minuto do sensor; as permissões podem entrar numa fila assíncrona."
EX075. Ele falha fechado? Quem pode publicar a política? O que acontece com 10× a taxa de ações?
EX076. Critério: "mantém as capturas de RF dentro das instalações autorizadas." A alto, B alto se os coletores forem locais, C baixo se enviar os dados a um SaaS estrangeiro.
EX077. "Opção C rejeitada: os logs e as evidências da avaliação sairiam da região de residência exigida pela política da Riverstone e pela cláusula de dados da ROE."
EX078. Quando os serviços estão fora do ar ou a rede até eles está fora da ROE — rode a política assinada localmente no jump host, só para negação/permissão, com registro manual dos achados.
EX079. Preventivo: bucket lacrado somente-acréscimo, com IAM de escrita única. Detectivo: um job agendado de recálculo de hash alerta em caso de divergência.
EX080. Ele exige competência de uso dual, não é determinístico e pode prejudicar o ativo; prefira uma nova leitura da configuração ou um teste de autorização.
EX081. A cláusula de concorrência — service-enum com conc=20 é DENY concurrency.
EX082. allowed(host: str, port: int, scope: ScopeVersion, ctx: ActionContext) -> tuple[bool, Reason]. A ScopeVersion fixa qual ROE foi avaliada, para fins de auditoria.
EX083. O teste que afirma DENY deny-list para 10.20.0.1:443 (ou um fixture equivalente).
EX084. Cabeçalhos Authorization/cookie; parâmetros de consulta de senha, token ou segredo; bytes brutos das evidências.
EX085. cobertura = |observado ∩ planejado| / |planejado| = 5/7 ≈ 71%; liste as duas técnicas planejadas e não vistas.
EX086. Fração dos achados críticos fechados dentro do SLA com um novo teste registrado — não "tickets fechados".
EX087. O status fica aberto até que um ticket de novo teste seja aprovado; o fechamento automático por promessa do fornecedor é proibido.
EX088. ID V-04; preparação: montagem de política vazia; ação: allowed(qualquer); esperado: DENY policy-unavailable + alerta; evidência: hash do log.
EX089. Parar o laboratório, abrir um bloqueador, revogar a aprovação do engajamento até a correção e um novo laboratório aprovado.
EX090. Hash do arquivo de escopo/política, hash da construção/versão do TrackScope, hash do log de resultados do laboratório.
EX091. Uma nova tentativa de rede pode criar dois achados com ids diferentes no servidor; os clientes devem fazer PUT com ids conhecidos.
EX092. {"title":"x","payload":"..."} ou {"password":"..."} ou {"risk_score":42} — qualquer campo proibido/desconhecido pela política.
EX093. Não — renomear quebra os clientes; mantenha reason_code na v1 ou lance a /v2/.
EX094. "Durante o horário assinado do engajamento, sucesso do caminho de negação ≥ 99,5%, medido por sondas sintéticas a cada minuto; quedas acionam o líder."
EX095. Tentativas esperadas = 1 + (1-p) + (1-p)^2 = 1 + 0,2 + 0,04 = 1,24 (geométrica truncada: a terceira tentativa é a última, então não há quarto termo).
EX096. A avaliação de escopo e política — precisa falhar fechada, nunca ALLOW na dúvida.
EX097. Criar o arquivo /var/lib/trackscope/STOP via SSH/SSO; o TrackScope consulta a cada 10 s; se presente ou ilegível, nega tudo e alerta.
EX098. Binário anterior assinado disponível; ScopeVersion inalterada ou reverificada; contato do cliente avisado do rollback.
EX099. "Às 11:10 o monitoramento mostra uma sondagem ao 10.20.0.1, que está na lista de exclusão; o líder está num túnel com sinal instável."
EX100. Para que os revisores saibam qual ScopeVersion autorizou a decisão quando o evento disparou.
EX101. O consumidor guarda os event_ids processados; duplicatas são ignoradas ou recebem upsert sem novos tickets.
EX102. Um JSON de evento de exemplo para o novo motivo e os campos esperados do ticket do FindingsDesk depois do consumo.
EX103. "Fração das técnicas planejadas observadas neste engajamento — não é uma pontuação de risco residual nem de conformidade."
EX104. "Não entregamos selos de risco vermelho/âmbar/verde; use a lista de achados e a contagem de violações de SLA."
EX105. technique_id, name, planned (Y/N), observed (Y/N), first_seen_utc, notes.
EX106. Dois workers se cada um satura 1/s; melhor um worker atrás de um bucket de 2/s. Observe a coordenação se for distribuído.
EX107. flood_served=64/3000 com limit=1/s burst=5.
EX108. Cada um pode enviar 5/s → ~15/s no agregado, o triplo da ROE — é preciso um limitador compartilhado.
EX109. Desativar as contas de avaliação; fazer a rotação dos segredos do cofre; selar os hashes das evidências; exportar as métricas de cobertura/SLA; confirmar que o interruptor de emergência está livre; agendar a retrospectiva; avisar o cliente do carimbo de tempo de encerramento.
EX110. Ids dos achados abertos + status; último event_id processado; pedidos de aprovação pendentes; estado do interruptor de emergência — quaisquer três ou mais.
EX111. Três violações (SYN-005, SYN-004, SYN-006); open=5.
EX112. Uma única tentativa de login autorizada com a senha padrão antiga; esperar falha; capturar o status; guardar o hash; parar; nenhuma lista de senhas.
EX113. Caso contrário, as métricas mentem e os SLAs parecem verdes enquanto o risco continua.
EX114. "O novo teste confirmou apenas a homologação; a produção estava fora do escopo da validação."
EX115. Fixar a versão exata para a janela; correções de emergência precisam de um mini laboratório de verificação (Capítulo 30) antes da troca.
EX116. put_evidence(key: Hash, body: bytes) -> None / get_evidence(key) -> bytes.
EX117. "Dono: esquadrão Platform Assessment (principal Sam Ito); reserva: engenheiro de segurança de plantão; contato: #findingsdesk."
EX118. Caso contrário, o PulseMap alega técnicas observadas sem um registro durável de achado — a métrica mente sob falha parcial.
EX119. Continua permitindo/negando pela política local; enfileira rascunhos; alerta quando a fila cresce; nunca ALLOW em erros de política.
EX120. Quem implementou a mudança e um segundo engenheiro que não escreveu o código (revisor).
EX121. Pular a lista de negação para hosts permitidos antes, ou falhar aberto quando o serviço de política está lento.
EX122. A chave do cache inclui versão da política, host, porta e flags de contexto; TTL curto; invalidação forçada na publicação da política.
EX123. As horas de engajamento são escassas; agende primeiro os ativos de alta exposição×raio de impacto (ranking do laboratório).
EX124. "Exigir um denominador nos relatórios de cobertura reduz as alegações exageradas de 'percentual seguro' feitas por executivos em pesquisas pós-engajamento?"
EX125. Contagem de merges de ampliação de escopo sem ticket AUTH por trimestre (ou de tentativas bloqueadas).
EX126. "Esse projeto cruza a linha de uso dual do curso; considere estudar taxas de falha fechada ou políticas de novo teste no lugar."
EX127. "Se o arquivo de regras de autorização não puder ser carregado, o sistema recusa todas as ações de teste e alerta a equipe — ele não continua sob incerteza."
EX128. "Host depot-sql-prod-03" → "host sintético db-01 na faixa do laboratório da Riverstone".
EX129. Residência de dados; proibições de compra de SaaS estrangeiro; requisitos de retenção/registro para pedidos de acesso à informação (FOIA); comitês consultivos de mudança — quaisquer dois concretos.
EX130. Sem selo de risco residual; sem descoberta automática de ATT&CK ao vivo em redes de clientes; sem armazenamento de payloads.
EX131. "O arquivo de kill switch interrompe todos os allows em até 30 s — aceitação: unitário+laboratório V-KS verdes com dados sintéticos."
EX132. O trabalho usa dados sintéticos sob as ROE do curso. Nenhum alvo não autorizado. Nenhum desenvolvimento de exploit. Problemas reais encontrados por acidente vão para a divulgação responsável, não para o apêndice do relatório.
EX133. "Bloqueante: num timeout do serviço de política isto tenta de novo e então dá ALLOW — viola a falha fechada S-3. Mude para DENY+alerta antes do merge."
EX134. "Rádio: confirma que a autorização lista as bandas/os locais e que as capturas ficam nas instalações."
EX135. "Divergência: ainda prefiro alertas síncronos para allows durante a primeira semana de uma nova política; vencida no ADR-019."
EX136. Correções de segurança/bloqueadores e correções de documentação; nenhum trabalho de funcionalidade.
EX137. Código+testes, relatório do Laboratório II com hashes, ADR, atualização do runbook, tutorial para operadores, declaração de ética — quaisquer cinco.
EX138. Depois da aprovação do Laboratório II e antes que qualquer engajamento autorizado use o build.
EX139. Injeção: apagar o arquivo de política. Esperado: DENY em tudo em até 30 s, alerta, nenhum ALLOW.
EX140. Segundos desde a injeção até a primeira decisão de negar tudo (e o alerta disparado).
EX141. "Reduzir o polling de política do TrackScope de 15 s para 5 s — negar tudo no ensaio levou 45 s > SLO de 30 s"
EX142. roe.pdf sha256 18d7…; scope.json sha256 01cc…; findings.json sha256 7f5f….
EX143. PDF das ROE → evidência selada; notas de rascunho → trabalho, excluir em 90 dias ou antes.
EX144. Remover do armazenamento, rotacionar o segredo exposto, abrir um achado de processo, selar de novo o manifesto, avisar o dono.
EX145. "Exigir aprovação dupla e um ticket AUTH para merges que ampliam o escopo reduziu a zero as tentativas de ampliação não aprovadas em 12 semanas de dados sintéticos de CI da Riverstone."
EX146. "Os ensaios usaram fixtures sintéticos, não tráfego real de clientes. Os resultados podem não se transferir para organizações sem CODEOWNERS. Não medimos a fadiga dos revisores."
EX147. https://doi.org/10.6028/NIST.SP.800-115
EX148. Afirmação; demo sintética; resultados do Laboratório II; lição do ensaio de falha; limites/ética; perguntas.
EX149. "Não produzo uma pontuação única de risco residual — ela não é reprodutível (Albrecht & Jensen). Aqui estão os críticos abertos, as violações de SLA e a cobertura de técnicas planejadas com denominadores; é isso que acompanhamos."
EX150. Exemplo: "Fizemos cache de decisões de allow sem a versão da política na chave; uma publicação deixou ALLOWs obsoletos. Correção: incluir a ScopeVersion na chave do cache e invalidar à força na publicação."