Techniken für sichere Code-Reviews
Erkennen Sie in Code-Reviews Sicherheitsprobleme wie Datenflüsse, Vertrauensgrenzen, gefährliche APIs und fehlende Schutzmaßnahmen.
Techniken für sichere Code-Reviews ist eine kostenlose Cyber Security Academy-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Cyber Security Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Cyber Security Academy-Kurs umfasst insgesamt 4 Lektionen.
Ziel einer sicheren Codeprüfung
Eine sichere Codeprüfung identifiziert Sicherheitslücken im Quellcode vor der Bereitstellung. Im Gegensatz zu einer funktionalen Codeprüfung konzentriert sie sich auf Vertrauensgrenzen, Datenflüsse, gefährliche APIs, fehlende Kontrollen und Fehler in der Sicherheitslogik – nicht auf Korrektheit oder Stil.
Manuelle und automatisierte Prüfung
Automatisierte SAST-Tools (Semgrep, SonarQube, CodeQL) erkennen bekannte Muster schnell, übersehen jedoch Schwachstellen in der Geschäftslogik, komplexe Schwachstellen über mehrere Komponenten hinweg und kontextabhängige Probleme. Eine manuelle Prüfung erkennt, was die Automatisierung übersieht. Beide Ansätze sind erforderlich.
Analyse der Einstiegspunkte
Beginnen Sie die Sicherheitsprüfung damit, alle Einstiegspunkte zu erfassen: HTTP-Endpunkte, Handler für Nachrichtenwarteschlangen, Datei-Uploads, geplante Jobs, Webhooks und CLI-Argumente. Jeder Einstiegspunkt, der externe Daten akzeptiert, ist ein potenzieller Injection-Punkt und erfordert eine sorgfältige Prüfung.
Datenflüsse nachverfolgen
Verfolgen Sie benutzergesteuerte Daten von ihrem Einstiegspunkt durch die Anwendung bis zu ihrer endgültigen Verwendung. Erreichen sie eine Datenbankabfrage? Einen Shell-Befehl? Ein HTML-Template? Einen API-Aufruf? Verfolgen Sie den Datenfluss und prüfen Sie jede Transformation und jeden Bereinigungsschritt.
Analyse von Vertrauensgrenzen
Sicherheitsentscheidungen werden an Vertrauensgrenzen getroffen – dort, wo Daten von einem weniger vertrauenswürdigen Kontext (HTTP-Anfrage) in einen stärker vertrauenswürdigen Kontext (Datenbank, Betriebssystem) gelangen. Bei jeder Überschreitung einer Vertrauensgrenze müssen die Daten validiert, bereinigt oder autorisiert werden.
Checkliste für gefährliche APIs
Markieren Sie die Verwendung von: eval(), exec(), system(), shell_exec(), innerHTML, dangerouslySetInnerHTML, deserialize(), pickle.loads(), Runtime.exec(), ProcessBuilder, XML-Parsern ohne deaktivierte Entity-Erweiterung sowie kryptografischen Primitive, die direkt statt über High-Level-APIs verwendet werden.
Prüfung von Authentifizierung und Autorisierung
Prüfen Sie: Ist jeder sensible Endpunkt durch Authentifizierung geschützt? Wird die Autorisierung serverseitig für jede Aktion geprüft? Kann ein Benutzer auf die Daten eines anderen Benutzers zugreifen, indem er einen ID-Parameter ändert (IDOR)? Sind sensible Vorgänge gegen CSRF geschützt?
Prüfung der Fehlerbehandlung
Achten Sie auf catch-Blöcke, die Ausnahmen stillschweigend verschlucken. Prüfen Sie, dass für Benutzer angezeigte Fehlermeldungen keine internen Pfade, Stacktraces oder die Struktur der Datenbank offenlegen. Stellen Sie sicher, dass Sicherheitsausnahmen (AuthenticationException) protokolliert und nicht stillschweigend ignoriert werden.
Prüfung der Kryptografie
Markieren Sie: MD5 oder SHA-1 zum Hashing von Passwörtern (verwenden Sie bcrypt/Argon2), fest einprogrammierte symmetrische Schlüssel oder IVs, Verschlüsselung im ECB-Modus (verwenden Sie GCM oder CBC mit HMAC), eigene Implementierungen kryptografischer Verfahren und Zufallszahlengeneratoren, die nicht kryptografisch sicher sind.
Prüfung von Abhängigkeiten und Konfiguration
Prüfen Sie package.json/pom.xml auf veraltete Abhängigkeiten. Überprüfen Sie die Anwendungskonfiguration auf aktivierten Debug-Modus in der Produktion, ausführliche Fehlerseiten, Zugangsdaten von Administratorkonten in Konfigurationsdateien und fehlende Sicherheits-Header (HSTS, CSP, X-Frame-Options).
Werkzeuge: Semgrep und CodeQL
Semgrep-Regeln gleichen Syntaxmuster mit semantischem Bewusstsein ab. Schreiben Sie benutzerdefinierte Regeln für die spezifischen Muster Ihrer Codebasis. CodeQL behandelt Code als Daten – schreiben Sie Abfragen über den AST, um Datenflüsse von Quellen zu Senken über Dateien und Funktionsaufrufe hinweg zu finden.
Wissensprüfung
Was ist eine IDOR-Schwachstelle, und wo würden Sie in einer Codeprüfung danach suchen?
Zusammenfassung
Eine effektive sichere Codeprüfung kombiniert die Erfassung von Einstiegspunkten, die Nachverfolgung von Datenflüssen, die Analyse von Vertrauensgrenzen, die Erkennung gefährlicher APIs und automatisierte SAST-Tools. Sie findet Sicherheitsprobleme, die bei einer funktionalen Prüfung übersehen werden, insbesondere Fehler in der Geschäftslogik und subtile Lücken bei der Autorisierung.
Häufig gestellte Fragen
Ist die Lektion „Techniken für sichere Code-Reviews“ kostenlos?
Ja — der vollständige Text von „Techniken für sichere Code-Reviews“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Cyber Security Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Cyber Security Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Techniken für sichere Code-Reviews“?
Erkennen Sie in Code-Reviews Sicherheitsprobleme wie Datenflüsse, Vertrauensgrenzen, gefährliche APIs und fehlende Schutzmaßnahmen. Du übst Cyber Security Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Cyber Security Academy zu starten?
Keine Vorkenntnisse erforderlich. Cyber Security Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.
Wie lange dauert die Lektion „Techniken für sichere Code-Reviews“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Cyber Security Academy-Lektion Code schreiben und ausführen?
Ja. Jede Cyber Security Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Eingabevalidierung und Ausgabekodierung
- Sicheres Abhängigkeitsmanagement
- OWASP ASVS: Standard zur Überprüfung der Anwendungssicherheit
- Techniken für sichere Code-Reviews