Capítulo 9 — Evidências e medição
Mapa da aula
Aula 09 publicada. Mapa, exemplo, EX025.
flowchart TD
N0["9.1 Logs como evidência"]
N1["Laboratório — Resumo das falhas de handshake"]
N2["9.2 Ler o resumo"]
N3["9.3 Relatar com clareza"]
N4["Síntese"]
N0 --> N1 --> N2 --> N3 --> N4
N4 --> EX["Exemplo resolvido"]
EX --> Q["Exercício EX025"]
Desenho lógico
flowchart LR
N0["9.1 Logs como evidência"]
N1["Laboratório — Resumo das falhas de handshake"]
N2["9.2 Ler o resumo"]
N3["9.3 Relatar com clareza"]
N4["Síntese"]
N0 --> N1 --> N2 --> N3 --> N4 --> Q["EX025"]
[9.1 Logs como evidência]
|
v
[Laboratório — Resumo das falhas de handshake]
|
v
[9.2 Ler o resumo]
|
v
[9.3 Relatar com clareza]
|
v
[Síntese]
|
v
[Exemplo resolvido] --> [Exercício EX025]
Objetivos de aprendizagem
Você vai (1) ler logs de falhas de TLS para encontrar as causas; (2) contar e classificar eventos de forma confiável; (3) relatar as evidências com clareza a engenheiros e gestores.
9.1 Logs como evidência
Quando os cidadãos relatam que "o site está quebrado", os logs contam o que realmente aconteceu. O gateway web da prefeitura registra os handshakes TLS que falham, com o endereço do cliente, um código de motivo e o host de destino. Rosa aprende a ler esses logs antes de fazer suposições. Códigos de motivo como certificate_expired, protocol_version, unknown_ca e handshake_timeout apontam para correções diferentes. Ela escreve um pequeno analisador usando apenas a biblioteca padrão para resumir as falhas de uma manhã, trabalhando sobre uma amostra sintética com endereços de uma faixa privada.
Laboratório — Resumo das falhas de handshake
"""Count reasons in a synthetic TLS handshake-failure log from a city web gateway."""
from collections import Counter
LOG = """\
2026-03-02T08:01Z fail client=10.2.0.14 reason=certificate_expired host=permits
2026-03-02T08:03Z fail client=10.2.0.31 reason=protocol_version host=legacy-gis
2026-03-02T08:07Z fail client=10.2.0.14 reason=certificate_expired host=permits
2026-03-02T08:11Z fail client=10.2.7.90 reason=unknown_ca host=staff-vpn
2026-03-02T08:12Z fail client=10.2.0.55 reason=certificate_expired host=permits
2026-03-02T08:20Z fail client=10.2.0.31 reason=protocol_version host=legacy-gis
2026-03-02T08:24Z fail client=10.2.3.12 reason=handshake_timeout host=permits"""
def main():
rows = [dict(kv.split("=") for kv in ln.split()[2:]) for ln in LOG.splitlines()]
for (r, h), n in Counter((x["reason"], x["host"]) for x in rows).most_common():
print(f"{n} {r:<20} {h}")
print("distinct clients hitting expired cert:", len({x["client"] for x in rows if x["reason"] == "certificate_expired"}))
if __name__ == "__main__":
main()
Execute com python3 lab_tlslog.py. Saída verificada:
3 certificate_expired permits
2 protocol_version legacy-gis
1 unknown_ca staff-vpn
1 handshake_timeout permits
distinct clients hitting expired cert: 2
9.2 Ler o resumo
Das sete falhas, três são certificate_expired no host de licenças, vindas de dois clientes distintos; duas são protocol_version no legacy-gis, vindas de um cliente antigo; uma é unknown_ca na staff-vpn; e uma é um timeout em permits. Rosa conclui que o certificado de licenças é o problema urgente, pois afeta os cidadãos; as falhas do GIS legado vêm de um cliente desatualizado que não consegue negociar uma versão moderna do TLS; e o erro de autoridade desconhecida sugere um dispositivo da equipe sem a raiz interna. Ela separa cada um num chamado próprio, com as evidências anexadas, em vez de um único chamado vago de "problema de TLS".
9.3 Relatar com clareza
Para os engenheiros, Rosa relata contagens, hosts, códigos de motivo e intervalos de tempo. Para os gestores, ela escreve duas frases: os cidadãos não conseguiram renovar licenças por cerca de vinte minutos porque um certificado expirou, e ele foi renovado às 08:30; dois problemas menores afetam um cliente do GIS e um dispositivo da equipe. Ela evita exageros e indica quando as evidências estão incompletas, como as falhas não registradas quando o gateway estava sobrecarregado. Um relato claro e adequado a cada público ajuda a prefeitura a agir depressa e constrói confiança nas informações da TI. Ela encerra cada relatório com um próximo passo recomendado, para que quem lê na diagonal ainda saiba exatamente o que fazer.
Exemplo resolvido
Rosa analisa um log sintético de falhas, identifica como urgente o certificado expirado de licenças, separa três problemas em chamados e escreve resumos distintos para engenheiros e gestores.
Caso sintético. O log é inventado.
Erros e limites
Os logs podem perder eventos durante sobrecargas. Os códigos de motivo dependem do software do servidor e podem ser ambíguos.
Exercícios
-
EX025 — Códigos de motivo. Cite três códigos de motivo de falha TLS e o que sugerem. Rubrica: 3 = p. ex., certificate_expired (renovar), protocol_version (cliente antigo), unknown_ca (raiz ausente);; 2 = dois;; 1 = um;; 0 = nenhuma.
-
EX026 — Problema urgente. Que problema Rosa considerou o mais urgente, e por quê? Rubrica: 3 = o certificado de licenças expirado, que afeta os cidadãos (3 falhas, 2 clientes);; 2 = problema;; 1 = outro;; 0 = nenhuma.
-
EX027 — Resumo para os gestores. O que dizia o resumo para os gestores? Rubrica: 3 = cidadãos bloqueados por cerca de vinte minutos por um certificado expirado, renovado às 08:30; dois problemas menores;; 2 = parcial;; 1 = detalhes técnicos;; 0 = nenhuma.
Síntese
Ler os logs com cuidado, classificar os eventos e relatar a cada público transforma as falhas criptográficas em evidências acionáveis.
Continue estudando — aula 09 (capítulo 09 de 30)
← Capítulo 08 · Índice das aulas · Capítulo 10 →
Continue para a próxima aula já escrita.