Capítulo 29 — Construção do projeto final
Mapa da aula
Aula 29 publicada. Mapa, exemplo, EX085.
flowchart TD
N0["29.1 Projeto final"]
N1["29.2 Construção"]
N2["29.3 Teste de ponta a ponta"]
N3["29.4 Resultados"]
N4["29.5 Problemas"]
N5["29.6 Documentação"]
N6["29.7 Revisão"]
N7["Versão e liberação"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6 --> N7
N7 --> EX["Exemplo resolvido"]
EX --> Q["Exercício EX085"]
Desenho lógico
flowchart LR
N0["29.1 Projeto final"]
N1["29.2 Construção"]
N2["29.3 Teste de ponta a ponta"]
N3["29.4 Resultados"]
N4["29.5 Problemas"]
N5["29.6 Documentação"]
N6["29.7 Revisão"]
N7["Versão e liberação"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6 --> N7 --> Q["EX085"]
[29.1 Projeto final]
|
v
[29.2 Construção]
|
v
[29.3 Teste de ponta a ponta]
|
v
[29.4 Resultados]
|
v
[29.5 Problemas]
|
v
[29.6 Documentação]
|
v
[29.7 Revisão]
|
v
[Versão e liberação]
|
v
[Exemplo resolvido] --> [Exercício EX085]
Objetivos de aprendizagem
Você vai (1) construir a entrega do projeto final; (2) integrar ferramentas, procedimentos e registros; (3) testar de ponta a ponta; (4) documentar para a passagem.
29.1 Projeto final
O projeto final individual de Jonah: o "Pacote de Prontidão de Alder Falls" — refinamentos do Kit de Triagem 2, um registro de fontes de log, a tarefa noturna de integridade, um conjunto de runbooks de coleta em incidentes e uma biblioteca de cenários de exercício. Cada componente responde a uma lição do incidente: os refinamentos do kit tornam a coleta confiável, o registro de fontes de log mostra que evidência existe e por quanto tempo, a tarefa de integridade protege a evidência armazenada, os runbooks permitem que não especialistas ajam corretamente, e a biblioteca de cenários mantém a prática em andamento. Juntos, eles formam um pacote que a prefeitura consegue manter sem a equipe de estudantes.
29.2 Construção
Os scripts (manifesto, verificação, análise de logs com contagem de linhas não casadas) usam apenas a biblioteca padrão. O registro de fontes de log lista cada fonte, o que ela registra, a retenção, o estado do encaminhamento e o responsável. Usar apenas a biblioteca padrão mantém os scripts fáceis de validar e de instalar em máquinas sensíveis, como a equipe decidiu no projeto do estúdio. As contagens de linhas não casadas vêm da lição de solução de problemas com os carimbos de tempo em milissegundos. Cada script tem testes sobre dados sintéticos e uma versão registrada no repositório, e o registro de fontes é revisado com o responsável por cada fonte.
29.3 Teste de ponta a ponta
Um incidente sintético é plantado em máquinas de teste: força bruta a partir de um desktop, instalação de serviço em outro, envio de dados. Os operadores executam o processo completo, do alerta à entrega; Jonah mede os tempos e confere cada registro. O incidente sintético ecoa o caso de maio: adivinhação a partir de um desktop, um serviço instalado em outro e um envio de dados, para que o teste exercite os mesmos passos de que o incidente real precisou. Os operadores, e não Jonah, executam o processo, o que testa se os runbooks funcionam para os usuários a que se destinam. Jonah mede cada passo e confere cada registro com as saídas esperadas dos runbooks.
29.4 Resultados
Do alerta à ligação para a analista: 6 minutos. Memória capturada dos dois desktops de teste: 31 minutos. Todos os manifestos verificados; registros de custódia completos; linha do tempo construída a partir dos logs encaminhados em 20 minutos. Em comparação com o incidente, em que a captura de memória levou cerca de duas horas e a linha do tempo foi montada à mão a partir dos logs locais, esses números mostram uma grande melhoria. Mas eles vêm de um teste planejado em máquinas preparadas, então são um melhor caso. Jonah os relata com essa ressalva e com a data e as máquinas usadas.
29.5 Problemas
O envio sintético de dados do cenário de exercício foi bloqueado pela nova regra do proxy, então a evidência do envio foi um log de conexão bloqueada — útil por si só. O cenário é atualizado para registrar os dois desfechos. Um resultado inesperado num teste é informação, não fracasso. O envio bloqueado mostra que a nova regra do proxy funciona e que seu log fornece evidência de uma tentativa. O cenário agora descreve os dois desfechos, um envio bem-sucedido onde a regra não existe e uma tentativa bloqueada onde ela existe, para que os exercícios futuros usem as expectativas certas.
29.6 Documentação
Cada componente tem um README, uma versão e um responsável. Um README explica o que um componente faz, como executá-lo, do que ele precisa e como testá-lo; a versão e o responsável dizem ao leitor se ele tem a cópia atual e a quem perguntar. Jonah confere se alguém de fora da equipe consegue seguir cada README numa máquina limpa antes da liberação do pacote. O README principal do pacote lista cada componente, seu responsável e onde fica seu runbook, para que um novo operador encontre tudo a partir de uma única página.
29.7 Revisão
Renata revisa o pacote em relação às necessidades da prefeitura; o gerente de TI revisa os custos. Renata confere se o pacote teria encurtado a investigação de maio e se seus registros satisfariam um revisor; o gerente de TI confere se os custos contínuos, como armazenamento e tempo da equipe, cabem no orçamento. Os comentários dos dois são registrados com as respostas de Jonah e as mudanças feitas antes da liberação. As duas revisões são concluídas antes que a versão 1.0 seja marcada, e qualquer comentário não resolvido é listado como problema conhecido, com um responsável.
Versão e liberação
O pacote é liberado como versão 1.0, com um registro de mudanças e um manifesto de todos os arquivos e seus hashes. As atualizações futuras seguem o mesmo processo, para que a prefeitura sempre saiba qual versão está implantada e possa reproduzir as respostas passadas. Jonah marca a versão no repositório e guarda o arquivo da liberação na área de ferramentas do repositório de evidências, para que os investigadores possam recuperar os scripts exatos usados em qualquer caso posterior.
Exemplo resolvido
A linha do relatório de teste de Jonah: "Passo: verificação do manifesto no recebimento. Esperado: todos os hashes conferem. Resultado: 47/47 conferem. Evidência: entrada do log de custódia de 2026-11-03 às 14:22." Cada passo tem uma linha correspondente.
Caso sintético. O projeto final é inventado.
Erros e limites
Os testes de ponta a ponta em máquinas de teste deixam de fora parte da complexidade da produção; os incidentes reais revelarão mais.
Exercícios
- EX085 — Conteúdo do pacote. Liste quatro componentes do Pacote de Prontidão. Rubrica: 3 = kit, registro de logs, tarefa de integridade, runbooks, cenários (quaisquer quatro); 2 = três; 1 = um; 0 = nada.
- EX086 — Resultados do teste. Informe dois tempos do teste de ponta a ponta. Rubrica: 3 = 6 min do alerta à ligação; 31 min para a memória (ou 20 min para a linha do tempo); 2 = um; 1 = errado; 0 = nada.
- EX087 — Envio bloqueado. O que aconteceu com o envio sintético, e por que isso é útil? Rubrica: 3 = bloqueado pelo proxy; o log de bloqueio é evidência de que o controle funciona; 2 = parcial; 1 = fracasso; 0 = nada.
Síntese
O projeto final integra ferramentas, procedimentos e registros e os comprova de ponta a ponta.
Continue estudando — capítulo 29 de 30
← Capítulo 28 (rascunho) · Índice de capítulos do curso · Capítulo 30 (rascunho) →