Mapa da aula
Aula 07 publicada. Mapa, exemplo, EX039.
flowchart TD
N0["7.1 Estrutura"]
N1["7.2 Redigir os achados"]
N2["7.3 Limitações que protegem os leitores"]
N3["7.4 Apêndice de reprodutibilidade"]
N4["7.5 Resumo para profissionais"]
N5["Síntese"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5
N5 --> EX["Exemplo resolvido"]
EX --> Q["Exercício EX039"]
Desenho lógico
flowchart LR
N0["7.1 Estrutura"]
N1["7.2 Redigir os achados"]
N2["7.3 Limitações que protegem os leitores"]
N3["7.4 Apêndice de reprodutibilidade"]
N4["7.5 Resumo para profissionais"]
N5["Síntese"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> Q["EX039"]
[7.1 Estrutura]
|
v
[7.2 Redigir os achados]
|
v
[7.3 Limitações que protegem os leitores]
|
v
[7.4 Apêndice de reprodutibilidade]
|
v
[7.5 Resumo para profissionais]
|
v
[Síntese]
|
v
[Exemplo resolvido] --> [Exercício EX039]
Objetivos de aprendizagem
Você vai (1) estruturar a dissertação em torno do ciclo de pesquisa; (2) escrever os achados sem detalhes de exploração; (3) declarar limitações que delimitem as alegações; (4) preparar um apêndice de reprodutibilidade; e (5) redigir um resumo para profissionais.
7.1 Estrutura
Use: introdução; fundamentação (NIST SP 800-115, PTES, ATT&CK, WSTG, TIBER-EU/CBEST); trabalhos relacionados; métodos; resultados; discussão; ética; limitações; conclusão; apêndices (modelos, pré-registro, esquema sintético). Os leitores devem encontrar a pergunta, a medida e a resposta em até cinco minutos depois de abrir o PDF. A introdução de Noah declara a pergunta e a medida de 30 dias no primeiro parágrafo, e o resumo traz o resultado de 62% contra 44% com suas condições. Cada capítulo responde a uma etapa do ciclo de pesquisa: a fundamentação e os trabalhos relacionados explicam a lacuna; os métodos trazem o desenho, as medidas e a ética; os resultados trazem os números; e a discussão e as limitações dizem o que eles significam e onde param. Os apêndices guardam o que os examinadores precisam para conferir o trabalho.
7.2 Redigir os achados
Nos exemplos, mostre os campos do relatório e os resultados da remediação. Nunca inclua procedimentos de ataque funcionais. Ao citar evidências sintéticas, use hashes e IDs de ticket. A linguagem de severidade deve corresponder à sua planilha de pontuação, não a adjetivos de marketing. Para Noah, um exemplo de achado na dissertação mostra o ID do ticket, a classe do ativo, a severidade segundo a planilha de pontuação dele, o ID de técnica do ATT&CK quando se aplica o braço marcado, a recomendação e o resultado da remediação em até 30 dias. Ele nunca mostra a requisição que disparou o problema nem qualquer credencial. Citar um hash da evidência sintética permite a um examinador confirmar que o exemplo corresponde ao arquivo, sem que a própria dissertação carregue algo que um atacante possa reaproveitar.
"""Score synthetic findings for report priority (no exploit details)."""
# impact 0-3, exploitability 0-3, exposure 0-3 -> priority
findings = [
("SYN-001", "default admin password on staging web UI", 3, 3, 2),
("SYN-002", "missing security headers on public site", 1, 1, 3),
("SYN-003", "outdated TLS on internal admin port", 2, 2, 1),
("SYN-004", "verbose error messages disclose paths", 1, 2, 2),
("SYN-005", "service account with domain admin in lab AD", 3, 2, 1),
]
def priority(impact, exploitability, exposure):
score = impact*4 + exploitability*2 + exposure
if score >= 16: return "critical", score
if score >= 11: return "high", score
if score >= 7: return "medium", score
return "low", score
for fid, title, i, e, x in findings:
p, s = priority(i, e, x)
print(f"{fid} priority={p:8} score={s:2} impact={i} exploitability={e} exposure={x} :: {title}")
Saída esperada:
SYN-001 priority=critical score=20 impact=3 exploitability=3 exposure=2 :: default admin password on staging web UI
SYN-002 priority=medium score= 9 impact=1 exploitability=1 exposure=3 :: missing security headers on public site
SYN-003 priority=high score=13 impact=2 exploitability=2 exposure=1 :: outdated TLS on internal admin port
SYN-004 priority=medium score=10 impact=1 exploitability=2 exposure=2 :: verbose error messages disclose paths
SYN-005 priority=critical score=17 impact=3 exploitability=2 exposure=1 :: service account with domain admin in lab AD
7.3 Limitações que protegem os leitores
Declare: segmentos sintéticos; uma única organização; responsáveis pela remediação voluntários; marcações ATT&CK imperfeitas; 30 dias podem não captar correções lentas; nenhuma alegação sobre taxas de violação. As limitações fazem parte da contribuição, porque impedem a generalização insegura para programas corporativos em produção, como o CBEST ou o TIBER-EU, sem estudo adicional. Noah coloca essas limitações antes da discussão, para que os leitores as encontrem antes de qualquer recomendação. Cada limitação estreita uma alegação. Segmentos sintéticos significam que o resultado pode ser diferente em sistemas em produção; uma única organização significa que a cultura de tickets da CBM pode não ser típica; responsáveis pela remediação voluntários podem ser mais engajados que a média; e marcações imperfeitas significam que o efeito poderia ser mais forte ou mais fraco com marcações perfeitas. A janela de 30 dias pode não captar correções lentas que acabam sendo fechadas.
7.4 Apêndice de reprodutibilidade
Inclua scripts, modelos, a versão fixada do ATT&CK, a exportação sintética e um notebook de análise que reconstrua a tabela primária. Calcule o hash da versão publicada para que os examinadores detectem edições acidentais. Para a CBM, o notebook deve reconstruir o resultado primário a partir da exportação sintética: 110 achados marcados e 108 narrativos, 62% contra 44% remediados em 30 dias, com a semana de reconstrução da VLAN 40 excluída e também mostrada mantida. Um examinador capaz de regenerar essa tabela numa máquina limpa não precisa confiar no resumo de Noah, e qualquer divergência de hash avisa que um arquivo mudou depois da publicação.
"""Verify integrity of a synthetic evidence package."""
import hashlib, json
files = {
"roe.pdf": b"SYNTHETIC-ROE-v1",
"scope.csv": b"host,port\n10.20.1.10,443\n",
"findings.json": b'[{"id":"SYN-001"}]',
}
expected = {n: hashlib.sha256(b).hexdigest()[:16] for n,b in files.items()}
# Simulate tampering of findings.json
current = dict(expected)
current["findings.json"] = hashlib.sha256(b'[{"id":"SYN-001"},{"id":"TAMPERED"}]').hexdigest()[:16]
print(json.dumps(expected, indent=1))
for n in sorted(expected):
status = "OK" if expected[n] == current[n] else "MISMATCH"
print(f"{n:16} {status}")
Saída esperada:
{
"roe.pdf": "18d74983d403e7db",
"scope.csv": "01cc4815eddf3de6",
"findings.json": "7f5f178ab43ef00f"
}
findings.json MISMATCH
roe.pdf OK
scope.csv OK
7.5 Resumo para profissionais
Duas páginas: como acrescentar campos ATT&CK aos tickets; como auditar as marcações; qual métrica acompanhar (conclusão em 30 dias por severidade); o que não alegar (redução de violações, cobertura da matriz como segurança). Peça a um engenheiro da CBM que siga o resumo sem preparação e anote onde travar. O resumo é escrito para os engenheiros da CBM, não para os examinadores. Ele mostra um ticket marcado ao lado de um narrativo, para que os leitores vejam a diferença de imediato, e lista as alegações recusadas com palavras simples.
7.6 Exemplo resolvido (caso sintético da CBM)
A página de limitações de Noah começa pelo escopo sintético. O apêndice dele regenera a Tabela 1 a partir de tickets_synth.csv. O estilo do laboratório de achados — prioridade sem caminho de exploração — corresponde aos modelos dele. A verificação de hash flagra uma edição equivocada na amostra do apêndice antes da submissão. A edição equivocada importa porque o apêndice existe para que os examinadores possam reconstruir a Tabela 1: uma mudança não detectada poderia ter deixado os números reconstruídos por eles fora de linha com os 62% e 44% do capítulo de resultados, e a divergência teria lançado dúvida sobre a análise inteira, e não sobre um único arquivo.
7.7 Erros e limites
Três erros são comuns: capítulos de métodos que omitem a ética; resultados sem limitações; e apêndices que não rodam. Cada erro enfraquece a dissertação. Sem a ética no capítulo de métodos, os examinadores não conseguem julgar se os dados foram coletados de forma adequada. Resultados sem limitações convidam os leitores a aplicá-los em contextos que o estudo nunca cobriu. Apêndices que não rodam não podem sustentar a alegação de reprodutibilidade, e é por isso que Noah calcula o hash da versão publicada e a testa. Verifique os três pontos na versão final. Peça também a um revisor que os verifique.
Exercícios
- EX039 — Esboço. Liste dez seções da dissertação. Rubrica: 3 = dez coerentes; 2 = oito; 1 = cinco; 0 = nenhuma.
- EX040 — Estilo do achado. Escreva o SYN-003 no estilo de exemplo da dissertação. Rubrica: 3 = campos, sem passos de exploração; 2 = parcial; 1 = passos incluídos; 0 = nenhuma.
- EX041 — Limites. Liste seis limitações. Rubrica: 3 = seis pertinentes; 2 = quatro; 1 = duas; 0 = nenhuma.
- EX042 — Laboratório de hash. O que um MISMATCH exige antes da submissão? Rubrica: 3 = investigar, restaurar, recalcular o hash; 2 = dois; 1 = ignorar; 0 = nenhuma.
- EX043 — Resumo. Esboce os títulos do resumo para profissionais. Rubrica: 3 = campos, auditoria, métrica, não alegações; 2 = três; 1 = um; 0 = nenhum.
- EX044 — Generalização. Por que ainda não alegar aplicabilidade ao CBEST? Rubrica: 3 = contexto/supervisão diferentes, guiado por inteligência; 2 = dois; 1 = vaga; 0 = nenhuma.
Síntese
A redação torna o ciclo inspecionável: alegações estruturadas, limites delimitados, apêndices que rodam e um resumo que os profissionais conseguem de fato usar.
Continue estudando — capítulo 07 de 08
← Capítulo 06 (rascunho) · Índice de capítulos do curso · Capítulo 08 (rascunho) →