Source Code Security Review Checklist

Secure Coding Training

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 - Online IT Security Training with Practical Focus

Die binsec academy GmbH ist ein Anbieter von praxisorientierten Online-Trainings im Bereich IT-Sicherheit. Das Schulungsangebot umfasst unter anderem Penetration Testing und sichere Softwareentwicklung. Die Teilnehmer lernen in realitätsnahen Laborumgebungen, die typische IT-Infrastrukturen und Anwendungen simulieren. Die Kurse beinhalten anerkannte Standards wie den OWASP Top 10 und PCI DSS und sind in mehreren Programmiersprachen verfügbar. Nach erfolgreichem Abschluss erhalten die Teilnehmenden Zertifikate wie den Binsec Academy Certified Pentest Professional (BACPP) oder den Binsec Academy Certified Secure Coding Professional (BACSCP), die ihre praktischen Fähigkeiten zur Erkennung und Behebung von Sicherheitslücken belegen.

Gehe zu binsec acadmy GmbH

binsec GmbH – Experten für Penetrationstests

Die binsec GmbH ist ein deutsches IT-Sicherheitsunternehmen mit Schwerpunkt auf professionellen Penetrationstests. Mit über 10 Jahren Erfahrung führt das Team tiefgehende Sicherheitsprüfungen von Netzwerken, Webanwendungen, APIs und mobilen Apps durch. Zertifizierte Experten identifizieren und dokumentieren systematisch Sicherheitslücken, um Unternehmen dabei zu unterstützen, ihre IT-Sicherheit zu verbessern und Compliance-Anforderungen zu erfüllen.

Gehe zu binsec GmbH

Kontakt

binsec GmbH
Solmsstraße 41
60486 Frankfurt am Main
Germany

Impressum

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