5 Punkte von GN⁺ 2025-08-05 | Noch keine Kommentare. | Auf WhatsApp teilen
  • 3. August 2025 auf der DrawAFish!-Website kam es über etwa sechs Stunden zu einem großen Sicherheitsvorfall.
  • Ausgelaufenes Administrator-Passwort, API ohne Authentifizierung und JWT-Schwachstelle wurden kombiniert offen gelassen und im Angriff ausgenutzt.
  • In der Folge wurden alle Benutzernamen in beleidigende Ausdrücke geändert, obszöne Bilder wurden freigeschaltet und gleichzeitig wurden sichere, bestehende Bilder gelöscht.
  • Durch manuelle Wiederherstellung, Korrektur der Authentifizierungslogik und Kontrolle der Backups wurde der Vorfall behoben.
  • Die Kernlektion ist, dass schnelle Entwicklung ("Vibe-Coding") und fehlende Tests bzw. Code-Reviews schwere Sicherheitsauswirkungen haben können.

Überblick über DrawAFish.com und Zusammenfassung des Vorfalls vom 3. August 2025

  • DrawAFish.com ist eine Website, auf der Nutzer eigene Fische zeichnen und diese gemeinsam mit anderen Nutzern im Aquarium schwimmen lassen können.
  • Am 1. August 2025 erreichte sie Rang 1 auf Hacker News und bekam dadurch große Aufmerksamkeit. Der Entwickler setzte auf „Vibe-Coding“, also das schnelle Umsetzen von Funktionen mit Tools wie Copilot.
  • Doch in den frühen Morgenstunden des 3. August 2025 kam es zu einem schweren Sicherheitsvorfall.
  • Rund sechs Stunden lang wurden Benutzernamen in der Mehrzahl in unpassende Ausdrücke geändert, obszöne Bilder genehmigt und insgesamt ein chaotischer Zustand ausgelöst.
  • Letztlich nahm der Administrator eine manuelle Wiederherstellung vor.

Detaillierte Analyse der Schwachstellen

1. Ausgeleaktes sechsstelliges Administrator-Passwort aus der Vergangenheit

  • Der Entwickler nutzte zu Beginn seine eigene ID und ein sechsstelliges Passwort aus seiner Kindheit für das Administratorkonto.
  • Dieses Passwort war bereits durch Datenlecks früherer Sites wie Neopets im Internet öffentlich geworden.
  • Der Entwickler stellte anschließend auf Google Auth um, entfernte das alte Passwort jedoch nicht, sodass die Angriffsfläche für Angreifer erhalten blieb.
  • Ein Angreifer nutzte die geleakten Daten, um sich als Administrator zu authentifizieren, und führte anschließend absichtliche Aktionen wie die Freischaltung beleidigender Bilder und das Löschen regulärer Bilder aus.

2. Benutzernamenänderungs-API ohne Authentifizierung

  • Bei der Entwicklung des Profil-Backends wurde die API zur Änderung des Benutzernamens ohne Authentifizierungsprüfung implementiert, um schnell voranzukommen.
  • Tatsächlich konnte praktisch jeder beliebig Benutzernamen ändern.

3. Unzureichende JWT-Validierung

  • Bei der JWT-Token-basierten Authentifizierung war es möglich, Administrationsaufgaben ohne Abgleich von Token und userId/eMail auszuführen.
  • Das bedeutete, dass ein Angreifer mit einem über Administratoranmeldeinformationen ausgestellten Token jede beliebige Anfrage mit Administratorrechten ausführen konnte.
  • Interessanterweise nutzte ein Hacker-News-Nutzer diese Schwachstelle, um vor den Eindringlingen unangemessene Inhalte zu löschen und so zur Notfallreaktion beizutragen.

Wiederherstellung

  • Der Entwickler erkannte gegen 7:45 Uhr morgens die Schwere des Vorfalls und begann sofort mit der Reaktion vom Desktop.
  • Da Firebase-Backups nicht eingerichtet waren, konnte er sich nicht auf Backups stützen und passte den Code zügig an, um Authentifizierungschecks zu erzwingen.
  • Er entwickelte ein Skript, das alle Moderationslogs durchging, um bösartige Aktionen zu stornieren (dies wurde ebenfalls im Vibe-Coding-Stil geschrieben).
  • In der Notfallphase wurde auch der Zugriff eines Dritten mit Administratorkonten (Hacker-News-Nutzer) blockiert. Anschließend kontaktierte man diesen und nahm zusätzliches Feedback zum Security-Refactoring der Codebasis entgegen, bevor weitere Patches eingespielt wurden.

Entwicklungskultur und Lehren

  • Der Entwickler erlebte, dass „Vibe-Coding“, also eine Kultur aus schnellem Prototyping und minimaler Review-Arbeit, zwar Spaß und hohe Produktivität bietet, in der Praxis jedoch zu gravierenden Sicherheitslücken führen kann.
  • LLM (Copilot) ist bei der schnellen Codeerzeugung extrem nützlich, aber die Verantwortung für Codequalität und Sicherheit bleibt beim Entwickler selbst.
  • Der Vorfall zeigt, dass das Weglassen grundlegender Sicherheitsprozesse wie Tests, Authentifizierungslogik und Code-Review selbst in kleinen Projekten zu extremer Anfälligkeit für externe Angriffe führen kann.

Fazit und Erkenntnisse

  • Der Fall DrawAFish.com zeigt die Bedeutung von grundlegenden Sicherheitsmaßnahmen, die in realen Betriebsumgebungen oft übersehen werden.
  • Auch bei der Nutzung von Open Source-Tools und schnellen Entwicklungswerkzeugen müssen zwingend Tests, Authentifizierung, Code-Review, Passwortverwaltung als Grundanforderungen überprüft werden.
  • Unerwartete Aufmerksamkeit in größerem Umfang (z. B. ein Top-Ranking bei Hacker News) kann die Angriffsfläche und das Risiko abrupt deutlich vergrößern.
  • Durch die transparente Dokumentation des Postmortems werden künftig realistische Sicherheitslektionen für ähnliche Startups oder Solo-Entwickler vermittelt.

Noch keine Kommentare.

Noch keine Kommentare.