~$ rebootworks
segurança

as 14 coisas que a gente confere antes de dizer que um site foi entregue

·8 min de leitura·Dominick Brasileiro

a revisão de segurança pré-lançamento que a gente roda em toda entrega, escrita para que um não especialista consiga rodar também.

percorrendo uma checklist item por item

Toda entrega nossa é atacada por nós antes de a gente dar por pronta. A gente percorre a lista abaixo à mão em vez de apontar um scanner para ela. Está incluído no preço, porque entregar algo quebrável não é trabalho terminado.

Você não precisa ser especialista para percorrer isso com o seu próprio desenvolvedor. Se você tem um site no ar agora que nunca foi conferido, é uma tarde de trabalho razoável.

Acesso e identidade

  1. Um usuário consegue chegar aos dados de outro mudando um número na URL? Entre com duas contas e tente. Essa é a falha grave mais comum que a gente encontra, e geralmente está em um endpoint de fatura, pedido ou documento que confere se você está logado mas nunca confere quem você é.
  2. A área administrativa aplica verificação de perfil em toda rota, incluindo a API? Esconder o link não é um controle. Faça a requisição ao endpoint administrativo diretamente como um usuário comum e veja o que volta.
  3. Tokens de redefinição de senha expiram, e são de uso único? Peça uma redefinição, espere um dia, use o link antigo. Depois use duas vezes.
  4. Autenticação de dois fatores está disponível nas contas administrativas, e é obrigatória? Disponível mas opcional significa desligada.
  5. Um funcionário removido perde acesso em todo lugar? Percorra o seu último desligamento: email, console de nuvem, git, hospedagem, banco de dados, gerenciador de senhas, painéis de terceiros.

Entrada e saída

  1. As consultas ao banco de dados são parametrizadas em todo lugar? Procure concatenação de string em consultas. Qualquer ocorrência é um achado até prova em contrário.
  2. Conteúdo de usuário é escapado ao ser renderizado? Poste <img src=x onerror=alert(1)> em todo campo que é exibido de volta, incluindo nomes, observações e nomes de arquivo.
  3. Uploads de arquivo são restritos por tipo de conteúdo real, tamanho e local de armazenamento? Verificação de extensão é trivialmente contornável. Arquivos enviados nunca devem ser executáveis e nunca devem ficar na raiz web.
  4. Existe limite de taxa no login, na redefinição e em qualquer endpoint que envia email ou custa dinheiro? Sem isso, credential stuffing e estourar a sua conta são de graça.

Segredos e configuração

  1. Há credenciais no histórico do git? Os arquivos atuais não são a história toda, então procure no histórico também. Se encontrar uma, trocar a chave importa mais do que apagar o commit.
  2. Buckets de armazenamento, portas de banco de dados e painéis administrativos são privados? Backups em um bucket público é um clássico, e entrega tudo de uma vez.
  3. As páginas de erro são genéricas em produção? Stack traces, versões de framework e erros de SQL são reconhecimento de graça.

Transporte e dependências

  1. HTTPS é forçado em todo lugar, com HSTS, cookies seguros e uma Content-Security-Policy sensata? Confira se o redirecionamento acontece também nas variantes www e domínio nu.
  2. As dependências estão atualizadas, e algo está vigiando elas? Rode uma auditoria hoje, depois automatize. A maioria dos comprometimentos reais vem de uma vulnerabilidade conhecida em um pacote que ninguém atualizou.

E duas que não estão na lista mas deveriam

Você restaurou um backup recentemente? Um backup que você nunca restaurou é uma hipótese. Teste a restauração, cronometre, e anote quanto tempo levou.

Você sabe para quem ligar às 23h? Escreva, com antecedência: quem corta o acesso, quem fala com os clientes, quem decide se o site sai do ar. O meio de um incidente é uma hora ruim para descobrir isso.

O que isso não cobre

Isso é uma checagem de sanidade pré-lançamento, não um pentest. Não vai encontrar abuso de lógica de negócio, exploits encadeados ou qualquer coisa que exija esforço criativo sustentado contra a sua aplicação específica, e essa é a categoria de onde vem a maioria dos vazamentos. Trate como o piso, não como o teto.


Quando você quiser o teto, nossa frente de segurança roda pentests completos com escopo fixo, um relatório que sua diretoria consegue ler, e um reteste grátis depois que você corrigir. Peça um escopo.