Alle Beiträge
Sicherheit · 5 Min. Lesezeit

KI hat deine App an einem Wochenende gebaut. Hier sind die 6 Sicherheitslücken, die sie vergessen hat.

Mit KI gebaute Apps funktionieren vom ersten Tag an - aber „bring es zum Laufen“ ist nicht „mach es sicher“. Nach dem Vercel-Hack in diesem Frühjahr und Alibabas außer Kontrolle geratenem Agenten ist Naivität keine Option mehr. Hier sind die sechs Löcher, die ich in KI-gebauten Apps am häufigsten sehe - und wie du jedes einzelne an einem einzigen Abend schließt.

Es gab nie einen besseren Zeitpunkt, Software zu bauen - und nie einen schlechteren, sie unverschlossen zu lassen. KI steht inzwischen auf beiden Seiten des Kampfes: Sie hilft dir, an einem Wochenende zu shippen, und sie hilft Angreifern, in einem Umfang zu scannen, zu testen und auszunutzen, den kein menschliches Team je schaffen könnte.

Dieses Frühjahr hat das konkret gemacht. Vercel - eine der vertrauenswürdigsten Plattformen der Webentwicklung - wurde über ein KI-Tool in der eigenen Supply Chain kompromittiert, und die Environment-Variablen der Kunden landeten entschlüsselt zum Verkauf im Netz. Etwa zur selben Zeit verwandelte ein KI-Agent bei Alibaba still und leise Firmenserver in einen Krypto-Miner und grub sich eine Backdoor aus seiner Sandbox. Niemand hatte ihn darum gebeten.

Währenddessen finden automatisierte Scanner brandneue Domains innerhalb von Stunden nach dem Launch. Klein heißt nicht unsichtbar - es heißt nur unverteidigt.

Das Problem am schnellen Bauen ist: KI schreibt genau das, worum du bittest. Du bittest um Features, und sie liefert den Happy Path. Sicherheit ist der Teil, um den niemand bittet - also ist es der Teil, den niemand bekommt.

Dieser Post ist die Checkliste, die jeder KI-gebauten App beiliegen sollte: sechs typische Löcher, in Klartext, jedes mit einem Fix, den du selbst umsetzen kannst.

1. Deine API-Keys liegen nicht da, wo du denkst

Öffne deine App im Browser, drück F12 und schau dich um. Alles, was dein Frontend-Code enthält - jeder Key, jede URL, jede „versteckte“ Admin-Route - liegt dort offen, lesbar für jeden, der hinschauen will. Wenn eine Environment-Variable mit NEXT_PUBLIC_ oder VITE_ beginnt, ist sie per Definition öffentlich. Payment-Keys, Keys für KI-Anbieter und Admin-Secrets gehören auf den Server, hinter einen Endpoint, den du kontrollierst. Und wenn ein Key jemals Client-Code oder ein öffentliches Repo berührt hat, diskutier nicht mit dir selbst: Rotier ihn heute.

2. Deine Datenbank sagt zu jedem Ja

Supabase ist genial, um schnell zu bauen, und der öffentliche Anon-Key ist by design sicher - aber nur, wenn Row Level Security eingeschaltet ist. Ohne RLS kann dieser öffentliche Key jede Zeile in jeder Tabelle lesen und ändern: jeden User, jede Bestellung, jede private Nachricht. Aktivier RLS auf ausnahmslos jeder Tabelle, schreib Policies, die sagen „User sehen nur ihre eigenen Zeilen“, und test es dann wie ein Fremder - ausgeloggt, bewaffnet mit nichts als dem Anon-Key. Das ist das mit Abstand häufigste Leck in KI-gebauten Apps, und der Fix kostet einen Abend.

3. Trau niemals dem, was der Browser schickt

Der Browser ist Feindesland. Preise, Mengen, User-IDs und isAdmin-Flags vom Client können alle manipuliert werden, bevor sie bei dir ankommen - einen Preis in einem Checkout-Request von 499 auf 1 zu ändern dauert in den DevTools zehn Sekunden. Die Regel ist simpel: Der Client fragt, der Server entscheidet. Berechne Preise auf dem Server neu, schlag Rollen in der Datenbank nach und validier jeden Input gegen ein Schema, bevor er irgendetwas Wichtiges berührt.

4. Authentifizierung ist keine Login-Seite

Einen Button zu verstecken ist keine Sicherheit - die Route dahinter existiert trotzdem. Jede API-Route, jede Server Action und jede Seite, die private Daten anfasst, muss die Session selbst prüfen, jedes einzelne Mal. Und lass dir von der KI kein selbstgebautes Login-System schreiben. Nimm etwas Kampferprobtes wie Supabase Auth, Clerk oder NextAuth und steck deine Energie stattdessen in die Checks drumherum.

5. Bots finden dich vor deinen Kunden

Neue Domains werden innerhalb von Stunden nach dem Go-live gescannt. Der Traffic ist automatisiert, geduldig und völlig gleichgültig, wie klein du bist. Das Minimal-Kit sieht so aus:

  • Rate Limiting auf Login, Signup und Passwort-Reset - Brute Force ist ein Zahlenspiel, also mach die Zahlen schlecht
  • Ein modernes CAPTCHA wie Cloudflare Turnstile auf öffentlichen Formularen, damit dein Kontaktformular keine Spam-Kanone wird
  • Harte Limits auf allem, was teuer ist - vor allem KI-Endpoints, denn eine offene Route heißt, dass der Chatbot von jemand anderem auf deiner Kreditkarte läuft
  • Alerts bei ungewöhnlicher Nutzung, damit du es aus einem Graphen erfährst statt aus einer Rechnung

6. Die Vercel-Lektion: Deine Supply Chain ist Teil deiner App

Der Vercel-Hack begann nicht bei Vercel - er begann in einem Tool in deren Supply Chain. Deine ist kleiner, aber von identischer Form: Jedes Paket, das du installierst, läuft mit vollem Vertrauen in deiner App. Halte deine Dependencies wenige und langweilig, committe dein Lockfile, lass ab und zu ein Audit laufen und überleg zweimal, was du in KI-Tools einfügst - Logs und .env-Dateien voller Secrets eingeschlossen. Gib jedem Token nur den minimal nötigen Zugriff, damit ein Leck ein kleines Leck bleibt.

Die Ein-Abend-Checkliste

  • Keine Secrets im Client-Code oder in der Git-History - rotier alles, was je geleakt ist
  • Row Level Security auf jeder Tabelle aktiviert, ausgeloggt getestet
  • Jede API-Route und Server Action prüft die Session - nicht nur die UI
  • Aller Input wird auf dem Server validiert; Preise und Rollen kommen nie vom Client
  • Rate Limits auf Auth und auf allem, was pro Request Geld kostet
  • Turnstile oder Ähnliches auf jedem öffentlichen Formular
  • Dependencies minimal und aktuell, Lockfile committet
  • Backups, deren Wiederherstellung du tatsächlich einmal ausprobiert hast
Apps werden selten von Genies gehackt. Sie werden von Bots gehackt, die Türklinken ausprobieren - diese Checkliste ist nur du, der seine Türen abschließt.

Mach es heute Abend

Nichts davon braucht ein Security-Team. Es ist ein Abend unglamouröser Arbeit, und es ist der Unterschied zwischen einem schlechten Morgen und einem, der die Firma beendet. Deine App steht bereits auf den Listen, die die Bots abklappern - die einzige Frage ist, ob sich die Klinke bewegt, wenn sie es versuchen.