OpenCyber Academy
Profissionalizante · Capítulo 10 · Português
Código do curso: OCA-046Capítulo 10: OCA-046-C010

Capítulo 10 — Infraestrutura crítica e segurança setorial: qualidade e resolução de problemas

Ensino gratuito e aberto para quem deseja proteger pessoas e tecnologias. Não é preciso criar uma conta para estudar ou consultar as respostas.

Mapa da aula

Aula 10 publicada. Mapa, exemplo, EX046.

flowchart TD
  N0["10.1 Como os programas falham"]
  N1["10.2 Resolvendo uma falha de coordenação"]
  N2["10.3 Qualidade das decisões"]
  N3["10.5 Encerrando ações corretivas"]
  N4["10.6 Atividade prática"]
  N5["Síntese do capítulo"]
  N0 --> N1 --> N2 --> N3 --> N4 --> N5
  N5 --> EX["Exemplo resolvido"]
  EX --> Q["Exercício EX046"]

Desenho lógico

flowchart LR
  N0["10.1 Como os programas falham"]
  N1["10.2 Resolvendo uma falha de coordenação"]
  N2["10.3 Qualidade das decisões"]
  N3["10.5 Encerrando ações corretivas"]
  N4["10.6 Atividade prática"]
  N5["Síntese do capítulo"]
  N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> Q["EX046"]
[10.1 Como os programas falham]
    |
    v
[10.2 Resolvendo uma falha de coordenação]
    |
    v
[10.3 Qualidade das decisões]
    |
    v
[10.5 Encerrando ações corretivas]
    |
    v
[10.6 Atividade prática]
    |
    v
[Síntese do capítulo]
    |
    v
[Exemplo resolvido] --> [Exercício EX046]

Objetivos de aprendizagem e conexão

Ao final deste capítulo, você deverá ser capaz de:

O Capítulo 9 expôs falhas reais de coordenação. Este capítulo trata o próprio programa como um sistema que pode ser diagnosticado e melhorado.

10.1 Como os programas falham

A maioria das falhas de coordenação cai em poucos padrões:

10.2 Resolvendo uma falha de coordenação

Use a mesma disciplina que os engenheiros usam para falhas técnicas:

  1. Declare o sintoma com precisão ("o hospital recebeu a ligação 15 minutos depois das 2 horas contratuais").
  2. Liste as hipóteses ("ninguém era dono da ligação"; "o número de contato estava errado"; "o relógio de 2 horas começou em momentos diferentes para pessoas diferentes").
  3. Reúna evidências — logs de decisão, registros de chamadas, entrevistas — sem culpa.
  4. Elimine as hipóteses que as evidências contradizem.
  5. Corrija a causa, e não o sintoma, e decida como você vai verificar a correção.

Um hábito útil: pergunte "o que fez disso a coisa razoável a fazer naquele momento?". As pessoas raramente agem com descuido numa crise; agem com as informações e os papéis que tinham.

10.3 Qualidade das decisões

A tempestividade é fácil de medir; a qualidade é mais difícil, porém mais importante. Para cada decisão-chave num exercício ou incidente, verifique: ela tinha um dono? Foi tomada dentro do tempo-alvo? A justificativa foi registrada? As pessoas que precisavam ser consultadas foram consultadas? Ela se baseou em informações verificadas, com os pressupostos rotulados? O guia do NIST para programas de teste, treinamento e exercícios descreve a avaliação de exercícios em relação aos objetivos e o registro das lições (NIST SP 800-84).

10.4 Exemplo resolvido: o log do exercício de mesa de maio (sintético)

No exercício de mesa DRY CREEK, de maio (o seu desenho é o exemplo resolvido do Capítulo 11), um avaliador manteve um log de decisões. O Laboratório 10 o verifica.

Laboratório 10 (salve como lab10.py e execute com python3 lab10.py):

# Lab 10 - tabletop decision-log quality check (offline, standard library only; synthetic exercise log)
import csv, io
LOG = """minute,inject,decision,owner,target_min,taken_min,recorded_rationale
0,I1 HMI shows unexpected setpoint change,convene incident team,Coordinator,15,9,yes
20,I2 vendor reports stolen laptop,suspend vendor remote access,Ops manager,30,52,yes
35,I3 station KW-04 dosing alarm,switch KW-04 to manual,Ops manager,10,6,no
50,I4 journalist calls,holding statement,,30,41,yes
65,I5 hospital asks about water safety,brief hospital,Coordinator,20,,no
80,I6 regulator early-warning clock,send early warning,Coordinator,60,44,yes
"""
rows = list(csv.DictReader(io.StringIO(LOG)))
met = 0
for r in rows:
    f = []
    if not r["owner"]: f.append("no owner")
    if not r["taken_min"]: f.append("no decision taken")
    elif int(r["taken_min"]) > int(r["target_min"]): f.append(f"late {int(r['taken_min'])-int(r['target_min'])} min")
    else: met += 1
    if r["recorded_rationale"] != "yes": f.append("no rationale recorded")
    print(f"{r['inject'][:2]} {r['decision']:30s} {'ok' if not f else '; '.join(f)}")
print(f"decisions within target: {met}/{len(rows)}")

Saída esperada (Python 3.13.5):

I1 convene incident team          ok
I2 suspend vendor remote access   late 22 min
I3 switch KW-04 to manual         no rationale recorded
I4 holding statement              no owner; late 11 min
I5 brief hospital                 no decision taken; no rationale recorded
I6 send early warning             ok
decisions within target: 3/6

A manchete "3/6 dentro do alvo" esconde mais do que mostra:

A tabela de resolução de problemas da coordenadora:

Tabela da aula; deslize para ver todas as colunas →

Sintoma Hipóteses Evidências Causa Correção Verificar por
Informe ao hospital do I5 não feito Sem dono; contato desconhecido; esquecido sob carga Hot wash: "acharam que a comunicação estava cuidando disso"; a RACI tinha dois R Responsabilidade duplicada Um único líder na RACI; ligação ao hospital na lista de verificação do incidente Injeção sobre o hospital no próximo exercício
Suspensão do fornecedor do I2 atrasada Aprovação pouco clara; impacto desconhecido Os participantes perguntaram quem depende do acesso da HydroLogic Informação de dependência ausente Acrescentar "quem depende do acesso deste fornecedor" ao registro de fornecedores A revisão do Laboratório 8 inclui a coluna de dependência
I3 sem justificativa O modelo de log não tem o campo; pressão do tempo O modelo não tem coluna de justificativa Desenho da ferramenta Acrescentar o campo de justificativa; papel de escriba Nova execução do Laboratório 10 mostra a justificativa

10.5 Encerrando ações corretivas

As lições não melhoram nada até se tornarem ações com donos, datas e verificação — e serem encerradas. Acompanhe-as num único lugar, revise-as no comitê de riscos e verifique cada encerramento com evidências (o próximo exercício, um teste, um documento). Uma métrica útil do programa é o percentual de ações de exercícios encerradas e verificadas dentro do prazo.

Na revisão do DRY CREEK, cada correção tem uma verificação correspondente: a próxima injeção do exercício sobre o hospital, um registro de fornecedores com coluna de dependência conferido na próxima revisão de acesso e uma nova execução do Laboratório 10 mostrando as justificativas registradas.

10.6 Atividade prática

Pegue uma falha recente de qualquer equipe que você conheça (um prazo perdido, uma tarefa duplicada). Preencha a tabela de resolução de problemas sem nomear pessoas e proponha uma correção com um método de verificação.

Escreva o sintoma como um fato preciso, com horários ou contagens, como no exemplo do hospital, e não como um julgamento. Liste pelo menos três hipóteses antes de procurar evidências e anote qual evidência descartou cada uma. Pergunte o que tornou a ação razoável para as pessoas envolvidas naquele momento. Depois escolha uma correção que mude um papel, uma ferramenta ou uma informação, e não uma que peça às pessoas que se esforcem mais, e diga como você saberá que ela funcionou, por exemplo no próximo exercício ou revisão.

10.7 Erros comuns e limites

Exercícios — capítulo 10

EX046 — Leia o Laboratório 10. Objetivo: interpretar a qualidade das decisões. Insumos: a saída do Laboratório 10. Passos: explicar por que "3/6 dentro do alvo" superestima o desempenho e nomear o defeito mais grave. Evidência esperada: explicação. Rubrica: 3 = o I3 foi contado no prazo sem justificativa; o I5 nem foi tomado (risco para um cliente crítico); o I4 sem dono; o mais grave é o I5 ou o I3, com raciocínio; 2 = lista os defeitos sem julgamento; 1 = aceita 3/6; 0 = nada.

EX047 — Acrescente uma regra de qualidade. Objetivo: codificar outra verificação. Insumos: Laboratório 10. Passos: acrescentar as colunas safety e consulted; sinalizar qualquer decisão relacionada à segurança cujo dono não seja o gerente de operações e em que o gerente de operações não tenha sido consultado; testar com as seis linhas originais mais uma linha inventada em que o líder de segurança decide isolar uma estação sem consultar as operações; mostrar a saída. Evidência esperada: código e saída. Rubrica: 3 = colunas preenchidas em todas as linhas, regra restrita às decisões de segurança, a linha inventada sinalizada e o I3 (de dono das operações) não sinalizado, com esse resultado explicado; 2 = a regra sinaliza toda linha sem entrada de consultado; 1 = apenas a regra; 0 = nada.

EX048 — Resolva o I4. Objetivo: aplicar a seção 10.2. Insumos: a linha do I4 e a RACI do Capítulo 6. Passos: preencher a tabela de resolução de problemas para a declaração provisória. Evidência esperada: uma linha da tabela, com hipóteses. Rubrica: 3 = pelo menos duas hipóteses, evidência (a RACI não tinha A para a declaração pública), causa, correção (diretor-presidente A, comunicação R, modelo), verificação (próximo exercício); 2 = sem verificação; 1 = "a comunicação foi lenta"; 0 = nada.

EX049 — Diagnostique a informação desatualizada. Objetivo: reconhecer a deterioração. Insumos: num incidente, o número do hospital para fora do horário caiu numa linha desligada. Passos: propor uma análise de causa e uma correção duradoura. Evidência esperada: análise e correção. Rubrica: 3 = causa: nenhum dono nem calendário para a verificação dos contatos; correção: ligações de teste trimestrais com dono, atualização nas reorganizações do hospital, segunda via de contato; métrica de verificação; 2 = atualização pontual; 1 = culpa; 0 = nada.

EX050 — Encerre as ações. Objetivo: desenhar o acompanhamento das ações corretivas. Insumos: as três correções da seção 10.4. Passos: escrever um log de ações com dono, prazo, evidência de encerramento e método de verificação. Evidência esperada: log. Rubrica: 3 = cada uma tem um dono com autoridade, data realista, evidência de encerramento distinta da declaração do dono e verificação num exercício ou revisão posterior; 2 = sem verificação; 1 = apenas a lista; 0 = nada.

Síntese do capítulo

Os programas de coordenação falham de maneiras reconhecíveis — lacunas de titularidade, responsabilidade duplicada, informação desatualizada, controles de papel, gargalos, deterioração das ações e rapidez sem qualidade. Resolva-as como falhas, do sintoma às hipóteses e evidências até a causa, sem culpa. Meça a qualidade das decisões, não só a rapidez, e encerre as ações corretivas apenas com evidências verificadas.

Respostas comentadas

EX046. "3/6" conta o I3 como sucesso, embora nenhuma justificativa tenha sido registrada para uma decisão de segurança, e trata o I5 — um cliente crítico nunca informado — como apenas uma falha entre seis. O I4 não tinha dono. O defeito mais grave é o I5: num incidente real, o hospital não teria sido avisado (ou o I3, se você argumentar que decisões de segurança não registradas são piores; exige-se raciocínio).

EX047. Acrescentar as colunas safety (yes para o I2 e o I3) e consulted (por exemplo, I3 "Security lead", I2 "Coordinator") e a regra if r["safety"] == "yes" and r["owner"] != "Ops manager" and "Ops manager" not in r["consulted"]: f.append("operations not consulted"). Com as seis linhas originais, a nova sinalização nunca dispara — o I2 e o I3 têm ambos o gerente de operações como dono, de modo que a autoridade sobre a segurança estava onde deveria. A linha inventada 95,I7 station alarm,isolate KW-09 network,Security lead,15,12,yes,yes,Coordinator é sinalizada com "operations not consulted". Explicar por que o I3 corretamente não é sinalizado recebe a pontuação máxima; forçar uma sinalização no I3, não.

EX048. Sintoma: declaração provisória 11 minutos atrasada e sem dono. Hipóteses: (1) nenhum aprovador definido; (2) nenhum modelo; (3) o líder de comunicação não sabia o que podia ser dito. Evidências: a RACI do Capítulo 6 não tinha A para a declaração pública; no hot wash, disseram "esperando alguém mais graduado". Causa: lacuna de titularidade. Correção: diretor-presidente como aprovador, comunicação como responsável, modelo pré-aprovado, aprovador substituto. Verificar: injeção de imprensa no próximo exercício, declaração em até 45 minutos, com o aprovador registrado.

EX049. Causa: nenhum dono nem calendário para verificar os contatos críticos; o hospital se reorganizou e ninguém foi avisado. Correção: o coordenador é dono da lista de contatos críticos; ligações de teste trimestrais registradas; o acordo com o hospital exige a notificação de mudanças de contato; uma segunda via (central telefônica do hospital até o gerente de plantão do local). Métrica: % dos contatos críticos verificados no último trimestre (meta de 100%).

EX050. A1: um único líder para o informe ao hospital na RACI e na lista de verificação — dono E. Varga; prazo 30 de junho; evidência de encerramento: RACI v2 publicada; verificação: injeção sobre o hospital no exercício de janeiro. A2: coluna "quem depende do acesso deste fornecedor" no registro de fornecedores — dono A. Mensah; prazo 31 de julho; evidência: exportação do registro; verificação: próxima revisão do Laboratório 8. A3: campo de justificativa e papel de escriba no modelo de log de decisões — dono: coordenador; prazo 15 de junho; evidência: modelo v2; verificação: nova execução do Laboratório 10 sobre o próximo exercício mostra justificativa em todas as decisões.