OpenCyber Academy
Técnico · Capítulo 4 · Português
Código do curso: OCA-051Capítulo 04: OCA-051-C004

Capítulo 4 — Scripts e formatos de dados

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 04 publicada. Mapa, exemplo, EX013.

flowchart TD
  N0["4.1 Formatos de dados"]
  N1["4.2 Verificação da linha de base"]
  N2["Laboratório — Verificar as configurações dos noteboo"]
  N3["4.3 Relatar os desvios"]
  N4["Síntese"]
  N0 --> N1 --> N2 --> N3 --> N4
  N4 --> EX["Exemplo resolvido"]
  EX --> Q["Exercício EX013"]

Desenho lógico

flowchart LR
  N0["4.1 Formatos de dados"]
  N1["4.2 Verificação da linha de base"]
  N2["Laboratório — Verificar as configurações dos noteboo"]
  N3["4.3 Relatar os desvios"]
  N4["Síntese"]
  N0 --> N1 --> N2 --> N3 --> N4 --> Q["EX013"]
[4.1 Formatos de dados]
    |
    v
[4.2 Verificação da linha de base]
    |
    v
[Laboratório — Verificar as configurações dos noteboo]
    |
    v
[4.3 Relatar os desvios]
    |
    v
[Síntese]
    |
    v
[Exemplo resolvido] --> [Exercício EX013]

Objetivos de aprendizagem

Você vai (1) ler formatos de dados estruturados, como JSON; (2) verificar configurações contra uma linha de base com um script; (3) relatar os desvios com clareza.

4.1 Formatos de dados

Amina aprende que os sistemas exportam dados de configuração e de status em formatos como CSV e JSON. O JSON representa os registros como campos nomeados, o que facilita lê-los em Python com o módulo json da biblioteca padrão. A ferramenta de gerenciamento de dispositivos da Fenwick exporta as configurações dos notebooks em JSON. Ela aprende que entender os formatos de dados permite aos técnicos verificar muitos aparelhos depressa, em vez de clicar em cada um, o que economiza tempo e reduz erros. No laboratório a seguir, a exportação em JSON permite que um script curto verifique os quatro notebooks contra a linha de base de uma só vez.

4.2 Verificação da linha de base

A linha de base da Fenwick exige criptografia de disco, bloqueio de tela em até dez minutos, atualizações automáticas e nenhum direito de administrador local. O laboratório verifica quatro notebooks. O FW-LT01 atende à linha de base. O FW-LT02 não tem criptografia de disco. O FW-LT03 tem bloqueio de tela de trinta minutos e direitos de administrador local. O FW-LT04 está com as atualizações automáticas desligadas. Um bloqueio de tela mais curto, como cinco minutos, é aceito, porque é mais rigoroso que a linha de base. A Sra. Bell pergunta à turma por que o FW-LT03 falha duas vezes, e Amina aponta o bloqueio de trinta minutos e os direitos de administrador local.

Laboratório — Verificar as configurações dos notebooks contra uma linha de base

"""Check laptop configuration exports (JSON) against a baseline (synthetic Fenwick data)."""
import json
baseline = {"disk_encryption": True, "screen_lock_minutes": 10, "auto_update": True, "local_admin": False}
export = json.loads("""[
 {"host": "FW-LT01", "disk_encryption": true, "screen_lock_minutes": 10, "auto_update": true, "local_admin": false},
 {"host": "FW-LT02", "disk_encryption": false, "screen_lock_minutes": 10, "auto_update": true, "local_admin": false},
 {"host": "FW-LT03", "disk_encryption": true, "screen_lock_minutes": 30, "auto_update": true, "local_admin": true},
 {"host": "FW-LT04", "disk_encryption": true, "screen_lock_minutes": 5, "auto_update": false, "local_admin": false}]""")
for h in export:
    bad = []
    for k, v in baseline.items():
        if k == "screen_lock_minutes":
            if h[k] > v: bad.append(f"{k}={h[k]}")
        elif h[k] != v: bad.append(f"{k}={h[k]}")
    print(h["host"], "OK" if not bad else "DEVIATION " + ", ".join(bad))

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

FW-LT01 OK
FW-LT02 DEVIATION disk_encryption=False
FW-LT03 DEVIATION screen_lock_minutes=30, local_admin=True
FW-LT04 DEVIATION auto_update=False

4.3 Relatar os desvios

Amina relata cada desvio com o nome do notebook e a configuração que falhou, e depois pergunta aos donos o porquê. O FW-LT02 foi configurado antes de a criptografia virar padrão. O FW-LT03 pertence a um gerente que pediu direitos de administrador meses atrás. O FW-LT04 teve as atualizações pausadas durante um problema de software, e elas nunca foram retomadas. Ela aprende que cada desvio tem uma história, e que registrar a causa ajuda a evitar que o mesmo desvio se repita em outros aparelhos. As atualizações pausadas do FW-LT04, por exemplo, sugerem acrescentar uma data de revisão sempre que as atualizações forem pausadas por um problema de software.

Exemplo resolvido

Amina lê uma exportação em JSON, encontra três de quatro notebooks fora da linha de base e registra a causa de cada desvio.

Caso sintético. Os dados dos notebooks são sintéticos.

Erros e limites

As exportações podem estar desatualizadas. As linhas de base precisam de revisão.

Exercícios

Síntese

Scripts que leem exportações estruturadas transformam verificações de linha de base em achados rápidos e explicados.

Respostas comentadas

EX013. Porque os campos nomeados tornam os registros fáceis de ler e de verificar com scripts.

EX014. FW-LT01.

EX015. FW-LT03, com bloqueio de tela de 30 minutos e direitos de administrador local.

EX016. Porque um bloqueio de cinco minutos é mais rigoroso que o requisito de dez minutos.