IT-Sicherheit

OWASP Top 10 – Die häufigsten Web-Sicherheitslücken erklärt

Kevin KrögerIT-Sicherheit

Die OWASP Top 10 ist eine Liste der zehn häufigsten und gefährlichsten Sicherheitslücken in Web-Anwendungen. Die Liste wird regelmäßig aktualisiert und ist der Standard in der Sicherheits-Industrie. Als Entwickler oder Security-Verantwortliche musst du diese zehn kennen. Sie sind nicht komplex – aber super gefährlich wenn man sie ignoriert.

Die Top 10 (2021 Version)

1. Broken Access Control Das ist wenn du auf Daten zugreifen kannst, auf die du nicht zugreifen solltest. Beispiel: Du changeyst deine User-ID in der URL von user/5 zu user/6 und siehst die Daten von User 6. Das ist nicht okay. 2. Cryptographic Failures Daten sind nicht richtig verschlüsselt. Du speicherst Passwörter als Plain Text. Du schickst Kreditkarten-Nummern über HTTP (nicht HTTPS). Du nutzt alte Verschlüsselung. 3. Injection SQL Injection, Command Injection, LDAP Injection – irgendwas ist injection. Du nimmt User-Input und gibst es direkt in eine Query ein. Das ermöglicht dem Attacker, willkürliche Commands auszuführen. 4. Insecure Design Das ist nicht ein einzelner Bug – das ist ein konzeptuelles Problem. Dein System wurde ohne Security-Anforderungen designed. Keine Threat Model, keine Security Stories. 5. Security Misconfiguration Dein System ist misconfigured. Unnecessary Services sind aktiv. Default Passwörter. Old Software Versionen. Debug-Mode im Production. 6. Vulnerable and Outdated Components Du nutzt Libraries / Frameworks mit bekannten Vulnerabilities. Oft altes Zeug, das man einfach vergessen hat zu updaten. 7. Authentication and Session Management Failures Schwache Passwörter sind allowed. Kein MFA. Session Tokens sind nicht random. Session Hijacking ist möglich. 8. Software and Data Integrity Failures Neue, aber wichtige Kategorie. Du downloaded Software von unsicheren Quellen. Deine Dependencies sind manipuliert. Auto-Updates sind unsecured. 9. Logging and Monitoring Failures Du loggst keine Security-relevanten Events. Wenn ein Hacker eindringt, merkst du es Monate später. 10. Server-Side Request Forgery (SSRF) Dein Server kann manipuliert werden um Requests an andere Systeme zu schicken. Das ist besonders bei Cloud-Deployments gefährlich.

Die gefährlichsten: Injection, Broken Authentication, Broken Access Control

Diese drei solltest du besonders ernst nehmen, weil sie am häufigsten sind: Injection: Immer prepared statements nutzen. Never string concatenation für SQL. Validiere ALLES was von außen kommt. Broken Authentication: Nutze ein etabliertes Auth-System (OAuth, JWT mit Best Practices). Zwinge strong Passwörter. Implementiere MFA. Session Timeout. Broken Access Control: Prüfe für jeden Request: Darf dieser User diese Resource sehen/ändern? Default zu "No", nicht zu "Yes".

Wie du die Top 10 fixen kannst

1. Threat Modeling: Überlege, wie kann jemand dein System angreifen. Schreib das auf. 2. Secure Coding Practices: Es gibt Best Practices für jede Programmiersprache. Learn sie. 3. Code Review: Ein anderer Entwickler sollte deinen Code überprüfen. 4. Security Testing: Test auf Vulnerabilities. SAST (Static), DAST (Dynamic), Penetration Tests. 5. Keep Updateding: Patchme deine Dependencies, OS, everything. 6. Security Training: Dein Team sollte grundlegende Security verstehen. 7. Web Application Firewall: Eine WAF kann einige Attacks blocken (aber ist kein Replacement für sichere Code).

Häufiger Fehler: "Wir patchen später"

Nein. Security ist nicht "Fixen wir später", das ist "Fixen wir jetzt". Es braucht nicht perfekt zu sein, aber die Top 10 sollten abgedeckt sein.

Fazit

Die OWASP Top 10 sind nicht kompliziert – sie sind Basic. Aber sie sind super gefährlich wenn man sie ignoriert. Wenn deine Website / App alle Top 10 implementiert, bist du schon besser als 95% der Websites dort draußen.

Häufige Fragen