Source Code Security Review Checklist

Diese Checkliste bietet eine strukturierte Grundlage für die Durchführung und Dokumentation von Secure-Code-Reviews im Rahmen technischer Sicherheitsprüfungen. Sie wird von binsec verwendet, um Softwareprojekte nach anerkannten Standards wie PCI DSS und OWASP Top 10 zu bewerten. Die Checkliste kann sowohl für eigenständige Code-Reviews als auch ergänzend zu Web- oder API-Penetrationstests eingesetzt werden.

Prüfobjekt 1 – Kommunikation

T1-1: Werden eingehende und ausgehende sensible Daten (z. B. Zugangsdaten) ausschließlich über verschlüsselte Kanäle übertragen?

T1-2: Werden sichere, dem Stand der Technik entsprechende kryptografische Algorithmen verwendet?

T1-3: Werden X.509-Zertifikate ausgehender Verbindungen auf Authentizität und Gültigkeit überprüft?

Prüfobjekt 2 – Authentifizierung

T2-1: Müssen Benutzer ihre E-Mail-Adresse während der Registrierung bestätigen?

T2-2: Werden nur starke Passwörter (mindestens 12 Zeichen, Buchstaben und Zahlen) akzeptiert – bei Registrierung und Passwort-Zurücksetzung?

T2-3: Können Benutzer keine der letzten vier Passwörter erneut verwenden?

T2-4: Wird zum Zurücksetzen des Passworts ein einmaliger Link per E-Mail versendet?

T2-5: Ist eine Passwortänderung nur mit Angabe des alten Passworts möglich?

T2-6: Werden Benutzerkonten nach sechs fehlgeschlagenen Anmeldeversuchen für mindestens 30 Minuten gesperrt?

Prüfobjekt 3 – Sitzungsverwaltung

T3-1: Besteht die Session-ID aus mindestens 128 Bit (16 Byte)?

T3-2: Enthält die Session-ID keine statistischen Informationen über den Benutzer?

T3-3: Wird die Session-ID ausschließlich in einem HTTP-Cookie übertragen?

T3-4: Sind die Flags HttpOnly und Secure gesetzt?

T3-5: Müssen Benutzer sich nach 15 Minuten Inaktivität erneut authentifizieren?

T3-6: Wird bei jeder autorisierten Anfrage ein zufälliger Token mitgesendet und überprüft (CSRF-Schutz)?

T3-7: Wird die Session-ID beim Logout gelöscht?

Prüfobjekt 4 – Autorisierung

T4-1: Sind verschiedene Benutzerrollen gemäß der Geschäftslogik definiert?

T4-2: Sind Berechtigungen nach den Prinzipien „Need-to-Know“ und „Least Privilege“ umgesetzt?

T4-3: Ist Cross-Origin Resource Sharing (CORS) nur für ausgewählte Domains aktiviert?

Prüfobjekt 5 – Fehlerbehandlung

T5-1: Sind alle potenziell fehlerauslösenden Codeblöcke durch try-catch-Anweisungen abgesichert?

T5-2: Werden nur generische Fehlermeldungen angezeigt (keine technischen Details)?

Prüfobjekt 6 – Datenvalidierung

T6-1: Wird nur fachlich zulässige Eingabe (z. B. gültiges Ablaufdatum einer Kreditkarte) verarbeitet?

T6-2: Wird sämtliche Eingabe – auch innerhalb vertrauenswürdiger Grenzen – serverseitig validiert?

T6-3: Werden Sonderzeichen ordnungsgemäß escaped oder maskiert?

T6-4: Werden Prepared Statements verwendet, um SQL-Injections zu verhindern?

Prüfobjekt 7 – Datenspeicherung

T7-1: Werden nur für den Betrieb notwendige Daten gespeichert oder verarbeitet?

T7-2: Werden PCI DSS-Anforderungen für die Speicherung von Kreditkartendaten eingehalten (z. B. keine CVV-Speicherung)?

T7-3: Werden Benutzerpasswörter ausschließlich in gehashter Form gespeichert?

T7-4: Werden kryptografisch starke Hash-Funktionen und individuelle Salts verwendet?

Prüfobjekt 8 – Protokollierung

T8-1: Werden Benutzeraktionen protokolliert (Audit-Trails)?

T8-2: Werden fehlgeschlagene Eingabevalidierungen protokolliert?

T8-3: Werden erfolgreiche und fehlgeschlagene Authentifizierungsversuche geloggt?

T8-4: Werden Autorisierungsfehler geloggt?

T8-5: Werden Fehler im Sitzungsmanagement (z. B. fehlgeschlagene CSRF-Prüfungen) geloggt?

T8-6: Werden rechtliche Zustimmungen (z. B. Opt-ins, Altersverifikation) geloggt?

T8-7: Werden Ausnahmedetails (Exceptions) geloggt?

T8-8: Werden sensible Daten in Logs maskiert?

Prüfobjekt 9 – Softwarekomponenten

T9-1: Sind eingesetzte Softwarekomponenten (z. B. Bibliotheken oder Frameworks) aktuell?

T9-2: Sind die Paketquellen vertrauenswürdig und wurde die Integrität der Software überprüft?

Prüfobjekt 10 - API-Sicherheit

T10-1: Werden alle API-Endpunkte strikt authentifiziert und autorisiert, inklusive schreibender und lesender Routen?

T10-2: Besteht serverseitiger Schutz gegen Missbrauch, z. B. Rate Limiting, Anti-Automation, Request-Size-Limits?

Prüfobjekt 11 - Kryptographie

T11-1: Werden ausschließlich aktuelle, sichere kryptografische Algorithmen verwendet (z. B. AES-GCM, ChaCha20-Poly1305, SHA-256/512, bcrypt/argon2)?

T11-2: Werden Initialisierungsvektoren (IVs) sicher erzeugt, nicht wiederverwendet und korrekt gehandhabt?

T11-3: Werden kryptografische Schlüssel, Tokens und Secrets nicht im Quellcode gespeichert und stattdessen über sichere Mechanismen verwaltet (z. B. Key Vault, KMS)?

T11-4: Werden kryptografisch sichere Zufallszahlengeneratoren eingesetzt (CSPRNG statt Pseudo-RNG)?

binsec academy GmbH – Professionelles Pentest Training Lab

Die binsec academy GmbH bietet mit ihrem Pentest Training Lab eine hochgradig praxisorientierte Online-Plattform für realistisches Penetration Testing. In isolierten Laborumgebungen simulieren wir komplexe Unternehmensnetzwerke und moderne Angriffsvektoren, um die praktischen Fähigkeiten angehender und professioneller Penetrationstester zu schärfen. Durch das Bestehen unserer anspruchsvollen, rein praktischen Prüfung erlangen Teilnehmer das anerkannte Zertifikat zum Binsec Academy Certified Pentest Professional (BACPP) – der fundierte Nachweis für die Fähigkeit, kritische Sicherheitslücken in IT-Infrastrukturen methodisch zu identifizieren.

Das Pentest Training Lab entdecken

binsec GmbH – Experten für Penetrationstests

Als operativer Pentesting-Kern der binsec group bietet die binsec GmbH seit 2013 hochwertige, von Experten durchgeführte Penetrationstests. Wir verzichten bewusst auf automatisierte Scans: Unsere festangestellten, zertifizierten Senior-Pentest-Experten liefern manuelle Deep-Dive-Analysen von Webanwendungen, APIs, mobilen Apps, komplexen Netzwerkinfrastrukturen, Cloud-Umgebungen und hochentwickelten Red-Team-Simulationen. Spezialisiert auf stark regulierte Sektoren wie Payment, Banking und Healthcare, bieten wir klare Risikobewertungen und handlungsorientierte Berichte, um Ihre geschäftskritischen Systeme effektiv zu bewerten.

Professionelle manuelle Penetrationstests anfordern

Kontakt

binsec GmbH
Clemensstraße 6-8
60487 Frankfurt am Main
Germany

Impressum

Geschäftsführer: Patrick Sauer
Prokurist: Dominik Sauer, Florian Zavatzki
Handelsregister: Frankfurt am Main, HRB97277
Umsatzsteuer-ID: DE290966808