◇ OpenCyber Academy
Engenharia · Capítulo 28 · Português

Capítulo 28 — Segurança da informação: implementação I

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

Capítulo 28 — Segurança da informação: implementação I

Mapa da aula

Aula 28 publicada. Mapa, exemplo, EX082.

flowchart TD
  N0["28.1 Linhas de base"]
  N1["28.2 O laboratório da linha de base"]
  N2["Laboratório — Conferindo 300 configurações sintética"]
  N3["28.3 Priorizando a correção"]
  N4["28.4 Mantendo a conformidade"]
  N0 --> N1 --> N2 --> N3 --> N4
  N4 --> EX["Exemplo resolvido"]
  EX --> Q["Exercício EX082"]

Desenho lógico

flowchart LR
  N0["28.1 Linhas de base"]
  N1["28.2 O laboratório da linha de base"]
  N2["Laboratório — Conferindo 300 configurações sintética"]
  N3["28.3 Priorizando a correção"]
  N4["28.4 Mantendo a conformidade"]
  N0 --> N1 --> N2 --> N3 --> N4 --> Q["EX082"]
[28.1 Linhas de base]
    |
    v
[28.2 O laboratório da linha de base]
    |
    v
[Laboratório — Conferindo 300 configurações sintética]
    |
    v
[28.3 Priorizando a correção]
    |
    v
[28.4 Mantendo a conformidade]
    |
    v
[Exemplo resolvido] --> [Exercício EX082]

Objetivos de aprendizagem

Você vai (1) implementar linhas de base de configuração; (2) medir a conformidade automaticamente; (3) priorizar a correção a partir dos resultados.

28.1 Linhas de base

Lindiwe transforma a lista de verificação de endurecimento vista antes numa linha de base que pode ser conferida automaticamente. Ela escolhe três regras para a primeira versão: login remoto de root desativado, correções de segurança com no máximo trinta dias e discos cifrados. Cada regra é escrita de modo que um script possa ler a configuração e devolver aprovação ou reprovação. O Prof. Hale aconselha começar com poucas regras que importam, em vez de centenas que sobrecarregam as equipes que recebem os resultados. As equipes de servidores revisam as três regras antes da primeira execução.

28.2 O laboratório da linha de base

O laboratório confere um conjunto sintético de 300 servidores. O login remoto de root está desativado em 278 servidores, 92,7 por cento. As correções têm no máximo trinta dias em 253, 84,3 por cento. Os discos estão cifrados em 277, 92,3 por cento. Apenas 216 servidores, 72,0 por cento, passam nas três regras. Lindiwe observa que cada regra sozinha parece razoavelmente boa, mas o número combinado mostra que mais de um quarto dos servidores falha em pelo menos um requisito. Ela compartilha os resultados com cada equipe de servidores, junto com a lista dos seus servidores reprovados, para que as equipes possam começar a trabalhar de imediato, em vez de esperar um relatório formal.

Laboratório — Conferindo 300 configurações sintéticas de servidores contra três regras de linha de base

"""Check synthetic server configurations against three hardening baseline rules (stdlib only)."""
import random
random.seed(29)
servers = []
for i in range(300):
    servers.append({
        "ssh_root_login": random.random() < 0.06,      # True = permitted (fail)
        "patch_age_days": int(random.expovariate(1/18)),
        "disk_encrypted": random.random() < 0.93,
    })
r1 = sum(not s["ssh_root_login"] for s in servers)
r2 = sum(s["patch_age_days"] <= 30 for s in servers)
r3 = sum(s["disk_encrypted"] for s in servers)
allp = sum((not s["ssh_root_login"]) and s["patch_age_days"] <= 30 and s["disk_encrypted"] for s in servers)
n = len(servers)
print(f"root login disabled {r1}/{n} ({r1/n:.1%}); patched within 30 days {r2}/{n} ({r2/n:.1%}); disk encrypted {r3}/{n} ({r3/n:.1%})")
print(f"all three rules {allp}/{n} ({allp/n:.1%})")

Execute com python3 lab_baseline.py. Saída verificada:

root login disabled 278/300 (92.7%); patched within 30 days 253/300 (84.3%); disk encrypted 277/300 (92.3%)
all three rules 216/300 (72.0%)

28.3 Priorizando a correção

Lindiwe ordena as falhas pela categoria do servidor. Os servidores dos sistemas de alto impacto, como a folha de pagamento, vêm primeiro, depois os expostos à internet. Dentro de cada grupo, ela corrige primeiro os itens mais rápidos: desativar o login de root leva minutos, enquanto cifrar um disco existente exige uma parada. O Prof. Hale observa que combinar o impacto com o esforço produz um plano que as equipes podem seguir semana a semana, em vez de uma única lista grande que desestimula a ação. As equipes concordam em fechar todas as falhas de login de root em uma semana e planejar a cifração ao longo do próximo trimestre.

28.4 Mantendo a conformidade

A conformidade medida uma única vez se deteriora. Lindiwe agenda a verificação para rodar semanalmente e relatar a porcentagem que passa em todas as regras, separada por equipe. Ela acrescenta novas regras gradualmente, cada uma anunciada com antecedência. As equipes podem ver a própria tendência. Ela aprende que uma medição automatizada e repetida transforma uma linha de base de documento em controle em operação, e que a transparência sobre os resultados de cada equipe estimula a melhoria sem precisar de uma auditoria formal. Depois de três meses, ela planeja comparar a tendência de cada equipe com o número inicial de 72,0 por cento e relatar o progresso ao líder de segurança.

Exemplo resolvido

Lindiwe implementa três regras de linha de base, descobre que 72,0 por cento dos 300 servidores passam nas três, prioriza pelo impacto e pelo esforço e agenda verificações semanais.

Caso sintético. Os servidores são sintéticos; as saídas vêm de lab_baseline.py.

Erros e limites

Relatar cada regra sozinha pode esconder quantos servidores falham em pelo menos uma.

Exercícios

Continue estudando — aula 28 (capítulo 28 de 50)

← Capítulo 27 · Índice das aulas · Capítulo 29 →

Continue para a próxima aula já escrita.