Web-App-Sicherheits-Checkliste
Eine praxisnahe, herstellerunabhängige Checkliste für alle, die eine Web-App ausliefern, ob sie jede Zeile selbst geschrieben oder mit einer KI ("Vibe Coding") erzeugt haben. KI schreibt Code, der den Standardfall besteht und trotzdem echte Lücken ausliefert. Ein funktionierendes Feature beweist deshalb nichts über Sicherheit. Diese Checkliste zeigt, was Sie vor und nach dem Go-live tatsächlich prüfen sollten.
Sie ist nach Kategorien gegliedert. Beginnen Sie irgendwo oder gehen Sie die Kategorien der Reihe nach durch. Jede Seite enthält konkrete Prüfpunkte: was Sie testen, warum es wichtig ist und wie Sie es beheben.
So verwenden Sie sie
- Behandeln Sie jeden Punkt als Test, nicht als Lektüre. Versuchen Sie den Angriff und bestätigen Sie dann die Behebung.
- Testen Sie mit ungültigen Eingaben und als falscher Benutzer, nicht nur im normalen Ablauf.
- Wenn der Code korrekt aussieht, führen Sie einen Scan gegen die bereitgestellte URL aus, um Regressionen zu finden, die zwischen einzelnen Prompts entstanden sind.
Kategorien
- Authentifizierung und Sitzungen: wie Menschen ihre Identität nachweisen und wie Sie sie angemeldet halten, ohne dass das Token gestohlen werden kann.
- Autorisierung und Zugriffskontrolle: sicherstellen, dass ein angemeldeter Benutzer keine Daten lesen oder ändern kann, die ihm nicht gehören (IDOR, Mandantentrennung).
- Eingabevalidierung und Injection: SQL-Injection, XSS, SSRF, unsichere Deserialisierung und Datei-Uploads.
- APIs und Anfragen: CSRF, CORS, Mass Assignment und Angriffe auf die Form von Anfragen.
- Secrets und Datenschutz: Schlüssel, Verschlüsselung im Ruhezustand und bei der Übertragung, personenbezogene Daten und Datenrechte.
- Verfügbarkeit und Missbrauch: Rate-Limiting, Denial of Service und unkontrollierten Ressourcenverbrauch.
- Infrastruktur und Deployment: Ports und Firewalls, Container, Security-Header, TLS und offen erreichbare Admin-Panels.
- Abhängigkeiten, Logging und Prozess: Lieferkette, Secrets in Git, Fehlerbehandlung, Monitoring und unabhängige Tests.
Die Kurzfassung
Wenn Sie nur eine Stunde haben, prüfen Sie zuerst diese fünf. Sie sind in echten Audits die häufigsten und die schädlichsten:
- Defekte Zugriffskontrolle. Melden Sie sich als Benutzer A an und fordern Sie das Objekt von Benutzer B über dessen ID an. Wenn es zurückkommt, haben Sie eine Lücke. Siehe Autorisierung.
- Secrets im Client oder in Git. Durchsuchen Sie das Browser-Bundle und das Repo nach Schlüsseln. Alles, was committet wurde, gilt als kompromittiert. Siehe Secrets.
- Kein Rate-Limiting beim Login. Brute-Force ist ohne Rate-Limiting trivial. Siehe Verfügbarkeit.
- Fehlender CSRF- oder Login-CSRF-Schutz. Siehe APIs und Anfragen.
- Offene Ports trotz Firewall. Container veröffentlichen Ports häufig an der Firewall vorbei. Siehe Infrastruktur.
Diese Checkliste wird vom Arc-OS-Team veröffentlicht. Wir halten unser eigenes Produkt daran; Sie dürfen sie für Ihres verwenden. Sie ist eine Ausgangsbasis, keine Zertifizierung, und sie ersetzt keinen unabhängigen Penetrationstest.