Guias de Segurança

A base de segurança para devs independentes e pequenos operadores: os controles padrão em ordem de prioridade

Os controles padrão para devs independentes e pequenos operadores, por prioridade: MFA nas contas de administrador, segredos, monitoramento de CVE e backups.

Publicado 2026-06-11 Atualizado 2026-10-05 10 min de leitura
Nesta página

Para: devs independentes e pequenos operadores que não têm certeza de "qual é o mínimo" em segurança. Nenhum passo de ataque aqui — só os controles básicos considerados padrão do setor, em ordem de prioridade. Cada item liga para um artigo mais profundo, então você pode começar aqui e ler só o que precisar.

A visão deste site: não 'fazer tudo', mas 'preencher nesta ordem'

Uma pessoa só ou um time pequeno não consegue fazer tudo de uma vez — e é exatamente por isso que a ordem importa mais. Se a camada do topo (contas de administrador, domínio e e-mail) for sequestrada, todo controle abaixo dela perde o sentido (o atacante reinicia tudo como se fosse você). Avance da camada mais importante para baixo e você corta ao máximo sua probabilidade de incidente para o tempo que tem. Este artigo foi escrito não como conhecimento exaustivo, mas como uma lista para decidir rapidamente o que preencher a seguir.

Nível 0 — contas de administrador, domínio, e-mail

MFA · domínio · DNS · e-mail · pagamento

Nível 1 — segredos e código

manter segredos fora do git · detecção pré-commit · separação/rotação de chaves

Nível 2 — o próprio app

validação de entrada · auth/sessão · TLS/cabeçalhos · autenticação de e-mail

Nível 3 — corrigir, detectar, recuperar

CVEs de dependências · atualizações de SO · SSH/FW · logs · backups

A ordem de prioridade deste site. Quanto mais alta a camada, mais um sequestro anula todos os outros controles. Avance de cima para baixo.
minutos
até um segredo exposto ser explorado
vulnerabilidades conhecidas
causa da maioria das invasões sérias
um ponto
perca as contas de administrador ou o e-mail e todo outro controle é contornado
ordem
o que faz o tempo limitado render

Nível 0: proteja as contas de administrador, o domínio e o e-mail (primeiro)

Esta é a premissa de tudo o mais. Se seu domínio, e-mail ou painel de hospedagem for sequestrado, todo outro controle é anulado. O atacante redefine senhas como você, reescreve o DNS, entra no seu servidor. Então é isto que você tranca primeiro.

1

Implante MFA resistente a phishing

Exija MFA no registrador do domínio, DNS, painel de hospedagem, e-mail e pagamento. Força: passkeys/chaves de hardware (FIDO2) > app autenticador (TOTP) > SMS. SMS é quebrável via SIM swap — só como último recurso.
2

Proteja o e-mail com o máximo rigor

A redefinição de senha de quase todo serviço cai no e-mail. Se o e-mail for sequestrado, suas outras contas podem ser sequestradas uma após a outra. Só o e-mail já vale uma chave de hardware.
3

Guarde os códigos de recuperação e backup com segurança

Mantenha os códigos de recuperação de MFA em um gerenciador de senhas ou em um lugar fisicamente seguro. Perca-os e você se tranca para fora.
4

Separe contas para reduzir pontos únicos de falha

Evite senhas reutilizadas em contas críticas; torne cada uma única com um gerenciador de senhas para que uma invasão não se espalhe para outros serviços.

Nível 1: não vaze segredos nem código

O incidente fundador deste site, e muitos por aí, vêm de uma falha aqui: segredos como arquivos .env e chaves de API escorregando para o código ou um repositório público.

1

Mantenha segredos fora do código-fonte e da documentação

Separe chaves de API, senhas e strings de conexão em .env e exclua-os do git (.gitignore). Não escrevê-los de jeito nenhum é o controle mais forte.
2

Barre segredos por máquina antes do commit

Um hook pré-commit (gitleaks etc.) bloqueia automaticamente commits contendo segredos — a mesma verificação que a proteção de push do GitHub oferece, configurada por você mesmo (→ Git auto-hospedado vs. GitHub).
3

Se vazou, presuma que vazou TUDO — rotacione tudo

A qualquer suspeita, revogue e reemita imediatamente as chaves/tokens afetados. Não deixe em "provavelmente está tudo bem." É o que mais funciona na resposta real a incidentes (→ uma chave vazou e gerou cobrança fraudulenta).
4

Restrinja bem o escopo dos tokens e mantenha-os de vida curta

Não emita um token todo-poderoso. Use menor privilégio, expiração curta e tokens por serviço para que um vazamento fique contido.

Auto-hospedando Git? Cuidado extra

Auto-hospedar porque o "público acidental" do GitHub te assusta não elimina o commit acidental. Sem nenhum bloqueio de segredos embutido do GitHub, um hook de segredos pré-commit é obrigatório no auto-hospedado. Veja Git auto-hospedado vs. GitHub: qual é mais seguro.

Nível 2: fortaleça o próprio app

O mínimo para a aplicação web que você expõe. O ponto não é deter ataques inéditos, mas fechar as vulnerabilidades comuns e bem conhecidas. Este site reformula cada uma em defesa nas páginas do glossário.

1

Nunca confie na entrada (previna vulnerabilidades comuns)

Deter injeção de SQL, XSS, SSRF e path traversal impulsionados por entrada do usuário com escapamento, parametrização e listas de permissão.
2

Acerte autenticação, sessão e acesso

Defenda contra CSRF, imponha verificações de acesso contra IDOR (ver dados de outros) e configure controles de frame contra clickjacking.
3

Faça o TLS e os cabeçalhos de segurança valerem

Exija HTTPS, configure HSTS, CSP e companhia. Avalie seu próprio site com a verificação de cabeçalhos de segurança (construa o CSP com o construtor de CSP).
4

Previna falsificação de e-mail

Se você envia e-mail do seu próprio domínio, configure SPF/DKIM/DMARC. Encontre falhas com o verificador de autenticação de e-mail.

Nível 3: corrigir, detectar, recuperar

A base para "manter o dano pequeno e recuperar rápido mesmo após uma invasão." O monitoramento de dependências como o osv-scanner vive aqui.

1

Monitore CVEs de dependências por máquina, continuamente

CVEs publicados e negligenciados são a principal causa de incidentes. Rode o osv-scanner ou o pnpm audit no CI/cron (→ não ficar para trás nos CVEs).
2

Atualize o SO e o servidor automaticamente

Automatize as atualizações de segurança do SO (unattended-upgrades etc.). Não negligencie patches do seu servidor Git e do middleware também.
3

Fortaleça o SSH e o firewall

Só chaves SSH (autenticação por senha desligada, sem login root direto), firewall aberto só nas portas necessárias, fail2ban para frear a força bruta.
4

Use menor privilégio para limitar até onde uma invasão se espalha

Rode serviços sem root, nunca exponha banco de dados/serviços internos, uma chave SSH distinta por host — para que uma invasão não se propague em cascata.
5

Backups 3-2-1 + uma restauração testada

Três cópias, duas mídias, uma externa. Criptografadas. E não só "está rodando" — realmente tente uma restauração uma vez.
6

Mantenha logs para conseguir notar anomalias

Retenha logs de acesso, autenticação e erro para que sinais estranhos fiquem visíveis. Quanto mais tarde você detecta, mais amplo o dano.

Por onde começar

"Tudo, agora mesmo" não é realista. Compare a ordem que as pessoas tendem a seguir com a que este site recomenda.

A ordem que as pessoas tendem a seguir (ineficiente)

  • começar pelo trabalho chamativo de vulnerabilidades de aplicação
  • deixar o MFA para "depois" indefinidamente
  • ter backups mas nunca ter tentado uma restauração
  • segredos estão no .env mas não há hook de detecção

A ordem que este site recomenda

  • Nível 0: proteja primeiro as contas de administrador, o e-mail e o domínio com MFA
  • Nível 1: deter vazamentos de segredos estruturalmente (detecção pré-commit + política de rotacionar tudo)
  • Nível 2: feche as vulnerabilidades comuns do app
  • Nível 3: chegue ao "recuperável" com monitoramento de dependências, atualizações, backups com restauração testada

Este site também se defende nesta ordem

Este site aplica esta mesma base a si: a app e o banco de dados em contêineres separados, o banco só em uma rede interna (limitando o alcance do impacto na camada de contêiner/rede) / uma chave distinta por host / segredos nunca no git ou na documentação / monitoramento de CVE de dependências antes de cada deploy e diariamente / backups externos para um servidor separado / requisições externas por uma fronteira de segurança. Um site que ensina segurança não pode deixar vulnerabilidades na própria configuração, então rodamos esta ordem de prioridade em nós mesmos primeiro. Nosso incidente fundador, também, veio não de um ataque inédito, mas da falta de um destes controles básicos. Por isso continuamos dizendo: o básico antes do trabalho chamativo.

Leia a seguir

FAQ

QQual o primeiro controle de segurança que um dev independente deveria configurar?
A

Proteger as contas cujo sequestro anula todo o resto: coloque MFA resistente a phishing (passkeys/chaves de hardware) no registrador do domínio, DNS, painel de hospedagem, e-mail e contas de pagamento. Se essas forem sequestradas, todo outro controle é anulado — então elas vêm primeiro.

QTodos os controles de base são igualmente importantes?
A

Não. Há uma ordem clara. Este site recomenda preencher assim: 1) contas de administrador, domínio e e-mail, 2) segredos e código, 3) o próprio app, 4) corrigir/detectar/recuperar. Com recursos finitos, de cima para baixo reduz mais os incidentes.

QMonitorar CVE de dependências conta como base?
A

Sim. Verificar continuamente, por máquina, as dependências em busca de vulnerabilidades conhecidas com osv-scanner ou pnpm audit é hoje padrão do setor. A maioria das invasões sérias vem de vulnerabilidades conhecidas negligenciadas (CVEs), não de ataques inéditos.