- 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.