← as aulas · Núcleo de Segurança Neon · aula 06

O segundo segredo

O .env estava protegido. Os e-mails também. E ainda faltava um arquivo — que não tem senha nenhuma dentro, e mesmo assim é segredo.

começar

a receita, igual em toda aula

1 · o erro

O código errado, como quase todo mundo faz.

2 · o porquê

Por que aquilo é perigoso, em português.

3 · a correção

O código certo.

4 · a prova

O terminal respondendo.

06 O arquivo que ninguém tinha olhado

conferir antes de publicar, sempre

1 · o erro

Achar que acabou. A senha saiu do código, o .env está no .gitignore, o git status não mostra nada de constrangedor. Hora de publicar.

Só que o git status mostra o que mudou, não o que é perigoso. E tinha um arquivo parado ali no meio:

neon_sentinela_estado.json   # não rastreado, e não ignorado

Esse é o estado mais fácil de não ver. Não está sendo versionado, então não aparece em nenhum diff. Mas também não está ignorado — então na hora do git add . ele entra junto, calado.

2 · o porquê

Abra o arquivo e não tem uma senha. Não tem token, não tem chave de API. Um verificador de segredo automático passaria batido.

Tem isto — a forma do arquivo, com os valores retirados:

timestamp
resumo:      total, established, listen, externas
destinos:    [13 itens]
                 ip, conexoes, processos[], portas[]
vizinhos:    [2 itens]
                 ip, mac, iface

Treze endereços que esta máquina procurou, com o nome do programa que procurou e a porta que usou. E dois vizinhos de rede, com o endereço MAC de cada um — o número de fábrica da placa, que não muda quando você troca de Wi-Fi.

Isso não abre nada. Isso conta: onde você mora, que aparelhos tem em casa, que programas usa, a que horas. Um invasor não precisa da sua senha se já sabe por onde você anda.

Segredo não é só senha. É qualquer arquivo que fale da sua vida.

3 · a correção

Três linhas no .gitignore — e duas delas são comentário, de propósito. Daqui a seis meses ninguém lembra por que essa linha existe, e uma linha sem motivo é uma linha que alguém apaga:

# Estado do sentinela: guarda os IPs reais que esta máquina acessou,
# com processo e porta. É telemetria da sua rede — não vai pro repo.
neon_sentinela_estado.json
4 · a prova

Não confira com o olho. O olho cansa e o .gitignore tem regra que se cancela. Pergunte pro próprio Git, uma vez por arquivo:

for f in .env neon_security.log emails_*.json neon_sentinela_estado.json; do
  git check-ignore -q "$f" && echo "$f  ok" || echo "$f  ENTRA"
done

A resposta de verdade, rodada no repositório antes de publicar:

.env                             ok
neon_security.log                ok
emails_conteudo_completo.json    ok
emails_extraidos.json            ok
neon_sentinela_estado.json       ok

Cinco ok. Qualquer ENTRA nessa lista é um arquivo que vai subir junto com o próximo commit.

arquivo · .gitignore linhas 24–26  ·  aconteceu em 5 de setembro de 2026, revisando o repositório para publicar

o detalhe que engana todo mundo

Um arquivo tem três estados, não dois

Quase todo tutorial fala de dois. O terceiro é onde mora o acidente.

para levar

No Git não existe apagar. Por isso a regra não é tirar o segredo depois — é não deixar entrar nem uma vez. E conferir com um comando, nunca com a memória.

Núcleo de Segurança Neon · aula 06 de 6 · todo código desta página foi copiado de um arquivo real do projeto — nenhum exemplo foi inventado