5 puntos por GN⁺ 2025-08-05 | Aún no hay comentarios. | Compartir por WhatsApp
  • El 3 de agosto de 2025, se produjo un incidente de seguridad a gran escala en el sitio web DrawAFish! durante aproximadamente 6 horas
  • La fuga de la contraseña de administrador, una API sin autenticación y una debilidad en JWT quedaron expuestas de forma combinada y fueron explotadas en el ataque
  • Como resultado, todos los nombres de usuario fueron cambiados a expresiones ofensivas, mientras se aprobaban dibujos inapropiados y se eliminaban imágenes seguras existentes
  • Se resolvió el problema mediante recuperación manual, corrección de la lógica de autenticación y verificación de respaldos
  • La principal lección es que el desarrollo rápido (“vibe-coding”) y la falta de pruebas y revisión de código pueden causar consecuencias de seguridad graves

Resumen de DrawAFish.com y del incidente del 3 de agosto de 2025

  • DrawAFish.com es un sitio web donde los usuarios dibujan peces y los hacen nadar en un acuario junto a otros usuarios
  • El 1 de agosto de 2025 llegó al primer puesto de Hacker News y atrajo mucha atención. El desarrollador adoptó un enfoque de “vibe-coding” para implementar funcionalidades con rapidez usando herramientas como Copilot
  • Sin embargo, en la madrugada del 3 de agosto de 2025 ocurrió un incidente de seguridad grave
  • Durante unas 6 horas, los nombres de usuario cambiaron a expresiones groseras y se aprobaron imágenes inapropiadas, generando una situación caótica
  • Finalmente, el administrador realizó una restauración manual

Análisis detallado de vulnerabilidades

1. Contraseña antigua filtrada de 6 caracteres para administrador

  • El desarrollador usó inicialmente su propio ID y contraseña de la infancia (de 6 caracteres) en la cuenta de administrador
  • Esa contraseña ya había sido publicada en línea debido a filtraciones previas de datos en sitios como Neopets
  • Luego el desarrollador pasó a usar Google Auth, pero como no eliminó esa contraseña quedó una vulnerabilidad expuesta para los atacantes
  • El atacante aprovechó la información filtrada para autenticarse como administrador y realizó acciones maliciosas como aprobar dibujos ofensivos y eliminar dibujos normales

2. API de cambio de nombre de usuario sin autenticación

  • Al desarrollar el backend de perfiles, se implementó una API para cambiar el nombre de usuario sin verificación de autenticación para priorizar la velocidad de desarrollo
  • En la práctica, cualquiera podía cambiar nombres de usuario arbitrariamente

3. Validación insuficiente de JWT

  • En la autenticación basada en tokens JWT, se permitió realizar acciones de administración sin validar que el token coincidiera con el userId/email
  • Es decir, quien tuviera un token emitido con credenciales de administrador podía usarlo con privilegios de administrador para cualquier solicitud
  • Curiosamente, un usuario de Hacker News utilizó esta vulnerabilidad para eliminar material inapropiado antes que el intruso, contribuyendo a la respuesta de emergencia

Proceso de recuperación

  • El desarrollador detectó la situación alrededor de las 7:45 a. m. y comenzó la respuesta desde su escritorio de inmediato
  • Como Firebase no tenía respaldos configurados, no pudo depender de ellos y modificó el código rápidamente para forzar la autenticación
  • Revisó todos los registros de moderación y desarrolló un script para revertir las acciones maliciosas (también creado con “vibe-coding”)
  • También bloqueó una cuenta de tercero con permisos de administrador (un usuario de Hacker News) usada durante la contingencia, contactó a esa persona, recibió retroalimentación sobre refactorización de seguridad en la base de código y aplicó parches adicionales

Cultura de desarrollo y lecciones

  • El desarrollador comprobó que la “vibe-coding”, o sea el prototipado rápido con una cultura de revisión mínima, puede aportar diversión y alta productividad, pero también conducir a vulnerabilidades de seguridad graves
  • Los LLM (como Copilot) son muy útiles para producir código rápidamente, pero refuerzan que la responsabilidad por la calidad y la seguridad del código recae en el propio desarrollador
  • Este caso demuestra que omitir procesos de seguridad básicos como pruebas, lógica de autenticación y revisión de código puede hacer que incluso proyectos pequeños sean extremadamente vulnerables a ataques externos

Conclusión y aprendizajes

  • El caso de DrawAFish.com muestra la importancia de las medidas de seguridad básicas que a menudo se pasan por alto en entornos de operación real
  • Incluso al depender de herramientas open source y herramientas de desarrollo rápido, hay que validar siempre aspectos básicos como pruebas, autenticación, revisión de código y gestión de contraseñas
  • Una atención masiva e inesperada (por ejemplo, un ranking alto en Hacker News) puede ampliar rápidamente la superficie de ataque y el riesgo
  • Al documentar el postmortem de manera transparente, se comparte una lección de seguridad realista para futuros startups o desarrolladores independientes

Aún no hay comentarios.

Aún no hay comentarios.