Segurança do Loop Autônomo|INEMA.CLUB-PRO

Aula 8 · 20 min

Auditoria de segurança do seu loop

Tudo o que o curso montou cabe num arquivo: o mapa das sessões do seu loop, com as ferramentas e os controles de cada uma. O auditar.py lê o mapa, confere tríade, Regra de Dois, permissões, guarda, isolamento provado, rede, porta e tetos, e grava o checklist do que falta. Você corrige, audita de novo e marca a próxima revisão.

Começar a aula
Prancheta de inspeção sobre um rack de servidor aberto, com uma lanterna acesa iluminando os cabos.

Nesta aula você vai

  1. 1O mapa completo: ferramentas e controles por sessão
  2. 2Oito itens por sessão, cada um com a aula que corrige
  3. 3O checklist em Markdown, gerado e versionado no projeto
  4. 4Reauditar: a cada ferramenta nova, a cada máquina nova

Objetivo: auditar o seu loop com o mapa das sessões, gerar o checklist do que falta e marcar a data da próxima revisão.

01Mapa, auditoria, correção

Clique em cada etapa.

Clique em cada bloco do diagrama para ver o que ele faz.

O auditar.py confere o mapa, não a máquina: quem garante que o mapa é verdadeiro é você, com as provas das aulas 4 a 7.

02Ensaio: o loop antes e depois

meu-loop.json é o corretor noturno da aula 2 numa sessão só, com deny estreito e sem prova de isolamento. meu-loop-seguro.json é o mesmo loop depois do curso.

Terminal · auditar os dois mapas
K=~/projetos/loop-r-eng-seguranca-v72/kit
python3 $K/auditar.py $K/mapas/meu-loop.json --md /tmp/ensaio-seg/checklist.md; echo "saída: $?"
python3 $K/auditar.py $K/mapas/meu-loop-seguro.json | tail -1; echo "saída: $?"
Arquivo · kit/mapas/meu-loop.json (fictício)
{
  "loop": "corretor noturno de bugs (primeira versão, fictícia)",
  "sessoes": [
    {
      "nome": "corretor",
      "ferramentas": [
        { "nome": "ler o texto da issue", "terceiros": true },
        { "nome": "ler o repositório privado e o .env", "privado": true },
        { "nome": "editar e rodar comandos", "muda_estado": true },
        { "nome": "git push e comentar no PR", "saida": true, "muda_estado": true }
      ],
      "controles": {
        "motor": "claude",
        "deny": ["Bash(rm -rf *)"],
        "hooks": [],
        "rede": true,
        "tetos": { "tempo": "2h" }
      }
    }
  ]
}
Exemplo do repositório
## corretor
  FALHA tríade letal → corte uma perna: leitor sem dados nem saída que devolve só campos (aula 1)
  FALHA Regra de Dois → no máximo 2 de A/B/C por sessão, ou nova sessão de contexto limpo, ou humano (aula 2)
  FALHA permissões (deny mínimo) → acrescente ao deny: rm, push, rede, env (kit/permissoes/executar.json, aula 4)
  FALHA hook de guarda → ligue a guarda.py em PreToolUse (aula 5)
  FALHA isolamento provado → rode o prova-isolamento.sh com o mesmo wrapper do loop e anote a data (aula 6)
  FALHA rede x dados privados → sessão que lê dado privado roda sem rede (aula 6)
  FALHA irreversível pede humano → envio, push e apagar passam pela porta.py (aula 7)
  FALHA tetos de tempo e memória → timeout + MemoryMax em cada ciclo (aula 7; curso 2, aula 6)
AUDITORIA: 0/8 itens OK — REPROVADA
checklist gravado em /tmp/ensaio-seg/checklist.md
saída: 1
AUDITORIA: 22/22 itens OK — APROVADA
saída: 0

O mapa seguro tem três sessões (leitor, corretor, publicar) e passa nos 22 itens. O publicar junta as três letras, mas com humano em cada ação.

03Prática final

Auditar o seu loop até aprovar.

E21 · Ensaio da auditoria

5 min

Rode o bloco do ensaio e abra /tmp/ensaio-seg/checklist.md.

Pronto quando: AUDITORIA: 0/8 itens OK — REPROVADA com saída: 1, e AUDITORIA: 22/22 itens OK — APROVADA com saída: 0.

E22 · O mapa completo do seu loop

30 min

Acrescente ao ~/meu-mapa.json das aulas 1 e 2 o bloco controles de cada sessão, com as provas que você já rodou: deny da aula 4, guarda da aula 5, prova de isolamento da aula 6, porta e tetos da aula 7.

Pronto quando: K=~/projetos/loop-r-eng-seguranca-v72/kit; python3 $K/auditar.py ~/meu-mapa.json --md SEGURANCA.md imprime uma linha AUDITORIA: e grava SEGURANCA.md no projeto.

E23 · Até aprovar, com data

60 min

Corrija um item por vez, na ordem da lista, refazendo a prova da aula indicada. Commite o SEGURANCA.md e ponha a próxima auditoria no calendário (o gerador abaixo faz o .ics).

Pronto quando: K=~/projetos/loop-r-eng-seguranca-v72/kit; python3 $K/auditar.py ~/meu-mapa.json; echo $? → APROVADA e 0, e git log --oneline -1 -- SEGURANCA.md mostra o commit.

04O mapa do curso

Quatro entregas, na ordem. Clique num exercício para ver o "pronto quando".

Dia 1Mapear

aulas 1 e 2

2 exercícios

Mapa do loop sem sessão autônoma com as três pernas.

Ver a aula
Dia 2Separar

aula 3

3 exercícios

Leitor que devolve só campos e um canário no loop.

Ver a aula
Dias 3 e 4Travar

aulas 4 a 6

3 exercícios

deny por etapa, guarda ligada e isolamento provado.

Ver a aula
Dia 5Porta e auditoria

aulas 7 e 8

3 exercícios

Irreversível pela porta e SEGURANCA.md aprovado e datado.

Ver a aula
Ao final do cursoUm loop em que nenhuma sessão autônoma junta as três pernas, cada etapa tem só a permissão que usa, a trava foi provada na sua máquina e o irreversível espera por você.
23 exercícios
Clique num exercício para ver o que fazer e o "pronto quando".
  1. 1/5

    Mapear

    triade.py aprovando na tríade e na Regra de Dois.

  2. 2/5

    Separar

    Requer o dia 1. Ensaio dos três agentes e canário ausente na sua saída.

  3. 3/5

    Travar

    Requer o dia 2. regra.py, provar-guarda.sh e prova-isolamento.sh com o wrapper do seu loop.

  4. 4/5

    Porta e auditoria

    Requer tudo antes. Porta, systemd com teto e auditar.py até APROVADA.

  5. 5/5

    O curso inteiro

    Mapear, separar, travar e pôr a porta. Só passe para a próxima entrega quando o "pronto quando" da anterior for verdade.

Ordem obrigatória: travar um loop mal mapeado protege a sessão errada.

05Gere o seu plano com datas

Escolha o início e quanto tempo você tem por semana. O plano lista os 23 exercícios na ordem.

06Teste final

Pergunta 1 de 4

O auditar.py aprovou o seu mapa. O loop está seguro?competência

07O curso em três frases

Nenhuma sessão autônoma com as trêsTríade e Regra de Dois decidem como dividir o loop.
Trava provada, não prometidadeny, hook e sandbox, cada um com a sua prova na sua máquina.
O irreversível espera por vocêPorta com hash, fora do alcance do agente, e auditoria com data.

Continue por aqui

Aula anteriorVoltar ao início do curso