5 pontos por GN⁺ 2025-08-05 | Ainda não há comentários. | Compartilhar no WhatsApp
  • Em 3 de agosto de 2025, ocorreu um incidente de segurança em larga escala no site DrawAFish! por cerca de 6 horas
  • Vulnerabilidades críticas de segurança, como vazamento de senha de administrador, API sem autenticação e falha no JWT, ficaram expostas em conjunto durante o ataque
  • Como resultado, todos os nomes de usuário foram alterados para expressões ofensivas, e desenhos inadequados foram aprovados enquanto desenhos seguros existentes eram excluídos ao mesmo tempo
  • O incidente foi resolvido com recuperação manual, correção da lógica de autenticação e validação de backups
  • A principal lição é que o desenvolvimento rápido (“vibe-coding”) e a falta de testes e revisão de código podem causar consequências de segurança graves

Visão geral do DrawAFish.com e resumo do incidente de 3 de agosto de 2025

  • O DrawAFish.com é um site em que o usuário desenha peixes e os faz nadar em um aquário junto com outros usuários
  • Em 1º de agosto de 2025, subiu para o 1º lugar do Hacker News e ganhou grande atenção. O desenvolvedor adotou a abordagem de “vibe-coding”, implementando funcionalidades rapidamente com ferramentas como o Copilot
  • Porém, na madrugada de 3 de agosto de 2025, ocorreu um incidente de segurança grave
  • Durante cerca de 6 horas, houve uma situação caótica com nomes de usuário alterados para termos ofensivos e aprovação de imagens impróprias
  • Ao final, o administrador precisou fazer restauração manual

Detalhamento de vulnerabilidades

1. Senha de administrador de 6 dígitos vazada anteriormente

  • O desenvolvedor usou inicialmente seu próprio ID e senha de 6 dígitos da infância na conta de administrador
  • Essa senha já estava disponível publicamente devido ao vazamento de dados de sites anteriores, como o Neopets
  • O desenvolvedor passou a usar o Google Auth depois, mas não removeu a senha antiga, deixando a fragilidade aberta para o atacante
  • O atacante conseguiu autenticar com sucesso usando as informações vazadas e realizou ações maliciosas, como aprovar desenhos ofensivos e excluir desenhos normais

2. API de alteração de nome de usuário sem autenticação

  • Durante o desenvolvimento do backend de perfil, foi implementada uma API de alteração de nome de usuário sem verificação de autenticação para ganhar velocidade no “desenvolvimento rápido”
  • Na prática, qualquer pessoa podia alterar o nome de usuário livremente

3. Validação insuficiente de JWT

  • No esquema de autenticação baseada em token JWT, as operações administrativas podiam ser feitas sem validar a correspondência entre token e userId/email
  • Ou seja, se o invasor possuísse apenas um token emitido com credenciais administrativas, poderia usá-lo com privilégios de administrador em qualquer requisição
  • Curiosamente, um usuário do Hacker News aproveitou essa falha para excluir materiais impróprios antes do invasor e ajudou na resposta de emergência

Processo de recuperação

  • O desenvolvedor percebeu a situação em torno de 7h45 da manhã e começou a resposta imediatamente pelo computador
  • Como o backup do Firebase não estava configurado, não foi possível contar com backup, e o código foi corrigido rapidamente para impor autenticação
  • Rastreou todos os logs de moderação e desenvolveu um script para desfazer ações maliciosas (também escrito no formato vibe-coding)
  • Em seguida, bloqueou e contatou também a conta de terceiros (usuário do Hacker News) que utilizara privilégios administrativos em emergência, recebendo feedback sobre refatoração de segurança da base de código e aplicando patches adicionais

Cultura de desenvolvimento e lições

  • O desenvolvedor experimentou que o “vibe-coding”, ou seja, prototipagem rápida com revisão mínima, pode trazer diversão e alta produtividade, mas na prática pode levar a falhas de segurança graves
  • O LLM (Copilot) é extremamente útil para produção rápida de código, mas a responsabilidade pela qualidade e pela segurança do código continua sendo do próprio desenvolvedor
  • Este caso demonstra que, ao omitir testes, lógica de autenticação, revisão de código e outras rotinas básicas de segurança, até projetos pequenos podem se tornar extremamente vulneráveis a ataques externos

Conclusão e insights

  • O caso DrawAFish.com mostra a importância de medidas básicas de segurança que são frequentemente negligenciadas na operação de serviços reais
  • Mesmo dependente de ferramentas open source e ferramentas de desenvolvimento rápido, é essencial checar questões básicas como testes, autenticação, revisão de código e gestão de senhas
  • A exposição repentina em grande escala (por exemplo, ficar entre os primeiros no ranking do Hacker News) pode ampliar rapidamente a superfície de ataque e o risco
  • Ao documentar o pós-mortem de forma transparente, transmite lições práticas de segurança para futuras startups e desenvolvedores independentes de casos similares

Ainda não há comentários.

Ainda não há comentários.