Web Security
Web Security
Sicherheit im Web ist kein Feature, sondern eine Grundvoraussetzung. Lernen Sie die wichtigsten Bedrohungen (OWASP Top 10), Angriffstechniken wie XSS und SQL Injection, sowie bewährte Schutzmaßnahmen für moderne Webanwendungen.
Inhaltsverzeichnis
Schnellübersicht
Auf dieser Seite lernen Sie alles über Web Security:
- Definition: Was ist Web Security und warum ist sie wichtig?
- OWASP Top 10: Die 10 häufigsten Sicherheitslücken (2021)
- Angriffstypen: XSS, SQL Injection, CSRF, Auth-Bypass im Detail
- Schutzmaßnahmen: HTTPS, CSP, Input Validation, Password Hashing
- Security Headers: Wichtige HTTP-Header für Sicherheit
- Tools: OWASP ZAP, Burp Suite, Nikto und mehr
- Best Practices: Entwicklung, Betrieb, Audit, Incident Response
- FAQ: Häufige Fragen zur Web Security
1. Was ist Web Security?
Definition
Web Security (Web-Sicherheit) umfasst alle Maßnahmen zum Schutz von Webanwendungen, Webservern und Webdiensten vor Angriffen, Missbrauch und unbefugtem Zugriff. Da Webanwendungen über das Internet öffentlich zugänglich sind, sind sie ein häufiges Ziel für Angreifer.
Web Security ist ein ganzheitlicher Ansatz, der folgende Bereiche umfasst: Sichere Programmierung (verhindern von Schwachstellen im Code), Sichere Konfiguration (Server, Frameworks, Datenbanken), Sichere Authentifizierung (Passwörter, MFA, Sessions) und Sichere Kommunikation (HTTPS, Verschlüsselung).
Warum ist Web Security so wichtig? Laut dem Verizon Data Breach Investigations Report sind Webanwendungen das häufigste Angriffsziel (ca. 43% aller Angriffe). Ein erfolgreicher Angriff kann zu Datenverlust, finanziellen Schäden, Reputationsschaden und rechtlichen Konsequenzen (DSGVO) führen.
Die drei Säulen der Web Security (CIA-Triade)
- Confidentiality (Vertraulichkeit): Daten sind nur für autorisierte Personen zugänglich (Verschlüsselung, Zugriffskontrolle)
- Integrity (Integrität): Daten werden nicht unbefugt verändert (Signaturen, Hashes, Validierung)
- Availability (Verfügbarkeit): Dienste sind erreichbar, wenn sie benötigt werden (DDoS-Schutz, Redundanz, Backups)
2. OWASP Top 10 (2021)
Die OWASP Top 10 ist eine Standard-Liste der häufigsten und kritischsten Sicherheitslücken in Webanwendungen. Sie wird alle 3-4 Jahre vom Open Web Application Security Project (OWASP) aktualisiert.
Broken Access Control
Benutzer können auf Ressourcen zugreifen, für die sie keine Berechtigung haben. Z.B. direkte URL-Manipulation oder IDOR (Insecure Direct Object Reference).
Cryptographic Failures
Schwache oder fehlende Verschlüsselung, unsichere Algorithmen (MD5, SHA1), unsichere Schlüsselverwaltung, Passwörter im Klartext gespeichert.
Injection
Angreifer schleusen schädlichen Code ein, der vom Interpreter ausgeführt wird. Häufigste Formen: SQL Injection, XSS, Command Injection.
Insecure Design
Fehlende oder ineffektive Sicherheitskontrollen bereits im Design. Z.B. fehlende Rate Limiting, keine Threat Modeling, unsichere Geschäftslogik.
Security Misconfiguration
Standard-Passwörter, unnötige Features aktiviert, offene Cloud-Buckets, fehlende Security Headers, detaillierte Fehlermeldungen.
Vulnerable Components
Verwendung von Bibliotheken, Frameworks oder Software mit bekannten Schwachstellen (z.B. alte Log4j-Version, unsichere npm-Pakete).
Identification & Auth Failures
Schwache Passwörter, fehlende MFA, Session Hijacking, unsichere Passwort-Reset-Mechanismen, Credential Stuffing.
Software & Data Integrity
Fehlende Verifizierung von Updates, unsichere CI/CD-Pipelines, Deserialisierung vertrauenswürdiger Daten ohne Validierung.
Logging & Monitoring
Keine oder unzureichende Protokollierung von Sicherheitsereignissen, fehlende Alerts, keine zentrale Log-Analyse.
SSRF
Angreifer zwingen den Server, Anfragen an interne oder externe Ressourcen zu senden. Z.B. Zugriff auf interne APIs, Cloud-Metadaten.
3. Häufige Angriffstypen im Detail
Die vier häufigsten und gefährlichsten Angriffe auf Webanwendungen im Detail erklärt:
XSS (Cross-Site Scripting)
Angreifer injizieren schädliche JavaScript-Codes in Webseiten, die dann im Browser anderer Benutzer ausgeführt werden.
Beispiel (Reflected XSS):
Schutzmaßnahmen:
- Output Encoding (HTML, JS, URL)
- Content Security Policy (CSP)
- Input Validation
- HttpOnly & Secure Cookies
SQL Injection
Angreifer schleusen SQL-Code in Eingabefelder ein, um Datenbankabfragen zu manipulieren und Daten abzugreifen oder zu verändern.
Beispiel:
Schutzmaßnahmen:
- Prepared Statements (Parameterized Queries)
- ORM-Frameworks verwenden
- Input Validation & Sanitization
- Least Privilege für DB-User
CSRF (Cross-Site Request Forgery)
Angreifer zwingen einen authentifizierten Benutzer, ungewollte Aktionen auf einer Website auszuführen (z.B. Geld überweisen, Passwort ändern).
Beispiel:
Schutzmaßnahmen:
- CSRF-Tokens (Synchronizer Token Pattern)
- SameSite Cookie Attribute
- Referer/Origin Header prüfen
- Re-Authentication für kritische Aktionen
Authentication Bypass
Angreifer umgehen die Authentifizierung durch Schwachstellen wie schwache Passwörter, Session Hijacking, Credential Stuffing oder Brute-Force.
Häufige Schwachstellen:
Schutzmaßnahmen:
- Starke Passwort-Policies
- Multi-Faktor-Authentifizierung (MFA)
- Rate Limiting für Login-Versuche
- Sichere Session-IDs (zufällig, lang)
4. Wichtige Schutzmaßnahmen
Die wichtigsten Maßnahmen zum Schutz von Webanwendungen:
HTTPS / TLS
- Verschlüsselte Kommunikation zwischen Client und Server
- Schutz vor MitM-Angriffen und Abhören
- TLS 1.2 oder 1.3 verwenden (SSL 3.0, TLS 1.0/1.1 deaktivieren)
- Let's Encrypt für kostenlose Zertifikate
- HSTS (HTTP Strict Transport Security) aktivieren
Content Security Policy (CSP)
- Definiert, welche Ressourcen geladen werden dürfen
- Schutz vor XSS-Angriffen
- Beispiel:
Content-Security-Policy: default-src 'self' - Inline-Scripts blockieren
- Reporting für Verstöße aktivieren
Input Validation & Sanitization
- Alle Benutzereingaben validieren (Whitelist > Blacklist)
- Output Encoding je nach Kontext (HTML, JS, URL, CSS)
- Prepared Statements für Datenbankabfragen
- File Upload: Typ, Größe, Endung prüfen
- Libraries wie DOMPurify für HTML-Sanitization
Sichere Authentifizierung
- Multi-Faktor-Authentifizierung (MFA) erzwingen
- Starke Passwort-Policies (min. 12 Zeichen)
- Rate Limiting für Login-Versuche
- Account Lockout nach X Fehlversuchen
- Sichere Passwort-Reset-Mechanismen
Passwort-Hashing
- Niemals Passwörter im Klartext speichern!
- bcrypt, Argon2 oder scrypt verwenden
- MD5 und SHA1 veraltet – nicht nutzen!
- Salt für jedes Passwort (eindeutig, zufällig)
- Hohe Iterationszahl (min. 10.000 bei bcrypt)
CORS (Cross-Origin Resource Sharing)
- Kontrolliert, welche Domains auf Ressourcen zugreifen dürfen
- Nicht
*für sensible APIs verwenden - Whitelist vertrauenswürdiger Domains
- Credentials nur bei expliziter Erlaubnis
- Preflight-Requests (OPTIONS) korrekt behandeln
5. Wichtige Security Headers
HTTP Security Header sind eine einfache, aber effektive Maßnahme zur Verbesserung der Web-Sicherheit:
| Header | Beschreibung | Beispiel |
|---|---|---|
| Strict-Transport-Security (HSTS) | Erzwingt HTTPS-Verbindungen | max-age=31536000; includeSubDomains |
| Content-Security-Policy (CSP) | Kontrolliert erlaubte Ressourcen | default-src 'self'; script-src 'self' |
| X-Content-Type-Options | Verhindert MIME-Type-Sniffing | nosniff |
| X-Frame-Options | Schutz vor Clickjacking | DENY oder SAMEORIGIN |
| X-XSS-Protection | Aktiviert Browser-XSS-Filter (veraltet, aber nützlich) | 1; mode=block |
| Referrer-Policy | Kontrolliert Referrer-Informationen | strict-origin-when-cross-origin |
| Permissions-Policy | Kontrolliert Browser-Features (Kamera, Mikrofon) | camera=(), microphone=() |
| Cache-Control | Verhindert Caching sensibler Daten | no-store, no-cache, must-revalidate |
Security Headers testen
Verwenden Sie Online-Tools wie securityheaders.com oder Mozilla Observatory, um die Security Headers Ihrer Website zu überprüfen und Verbesserungsvorschläge zu erhalten.
6. Web Security Tools
Wichtige Tools für Security-Testing, Vulnerability Scanning und Penetration Testing:
OWASP ZAP
Open-Source Web Application Security Scanner. Automatisierte Vulnerability Scans und manuelle Tests.
Scanner · Open SourceBurp Suite
Professionelle Web Security Testing Platform. Proxy, Scanner, Intruder, Repeater und mehr.
Testing · KommerziellNikto
Open-Source Web Server Scanner. Findet gefährliche Dateien, veraltete Software und Konfigurationsprobleme.
Scanner · Open SourceSQLMap
Automatisches SQL Injection Detection und Exploitation Tool. Unterstützt alle gängigen Datenbanken.
Exploitation · Open SourceNmap
Network Mapper für Port Scanning, Service Detection und OS Fingerprinting.
Network · Open SourceHashCat
GPU-basiertes Passwort-Cracking Tool. Unterstützt über 300 Hash-Typen.
Cracking · Open SourceMozilla Observatory
Online-Tool zur Überprüfung von Security Headers und HTTPS-Konfiguration.
Online · KostenlosSSL Labs
Online-Tool zur Überprüfung der SSL/TLS-Konfiguration (Qualys SSL Labs).
Online · KostenlosSnyk
SCA (Software Composition Analysis) Tool. Findet verwundbare Dependencies in Projekten.
SCA · FreemiumMetasploit
Professionelles Penetration Testing Framework mit über 2.000 Exploits.
Exploitation · Open Source7. Best Practices für Web Security
Bewährte Praktiken für sichere Webanwendungen in Entwicklung und Betrieb:
Sichere Entwicklung
- Security by Design von Anfang an
- Threat Modeling für kritische Features
- Code Reviews mit Security-Fokus
- OWASP Guidelines befolgen
- Dependency Scanning in CI/CD
- Secure Coding Standards etablieren
Sicherer Betrieb
- Regelmäßige Updates (OS, Frameworks, Libraries)
- Security Headers konfigurieren
- HTTPS erzwingen (HSTS)
- Firewall-Regeln restriktiv halten
- Backups regelmäßig testen
- Monitoring & Alerting einrichten
Regelmäßige Audits
- Penetration Tests (mindestens jährlich)
- Vulnerability Scans (automatisiert, wöchentlich)
- Code Audits durch externe Experten
- Compliance-Checks (DSGVO, ISO 27001)
- Security Metrics tracken
- Risk Assessments durchführen
Incident Response
- Incident Response Plan erstellen und testen
- Notfall-Kontakte definieren
- Forensische Tools bereithalten
- Logs zentral sammeln (SIEM)
- Kommunikationsplan für Datenlecks
- Post-Incident Reviews durchführen
Die 10 wichtigsten Regeln
- HTTPS überall: Keine unverschlüsselten Verbindungen
- Input Validation: Alle Benutzereingaben validieren und sanitizen
- Output Encoding: Daten kontextgerecht codieren (HTML, JS, URL)
- Prepared Statements: Niemals SQL-Queries mit String-Concatenation
- Passwort-Hashing: bcrypt/Argon2 mit Salt, niemals Klartext
- MFA: Multi-Faktor-Authentifizierung wo immer möglich
- Security Headers: CSP, HSTS, X-Frame-Options konfigurieren
- Updates: Regelmäßig alle Komponenten aktualisieren
- Least Privilege: Minimale Berechtigungen für alle Accounts
- Logging & Monitoring: Alle sicherheitsrelevanten Events loggen
8. FAQ – Häufige Fragen & Antworten
Häufige Fragen zur Web Security
XSS (Cross-Site Scripting): Angreifer injizieren schädliche Scripts in eine Webseite, die dann im Browser anderer Benutzer ausgeführt werden. Ziel: Daten stehlen, Sessions übernehmen.
CSRF (Cross-Site Request Forgery): Angreifer zwingen einen authentifizierten Benutzer, ungewollte Aktionen auf einer Website auszuführen. Ziel: Aktionen im Namen des Benutzers durchführen.
Unterschied: XSS nutzt den Browser als Angriffsvektor, CSRF nutzt die Authentifizierung des Benutzers.
Die effektivsten Schutzmaßnahmen gegen SQL Injection:
- Prepared Statements: Verwenden Sie parameterisierte Queries statt String-Concatenation
- ORM-Frameworks: Nutzen Sie Object-Relational Mapper wie Hibernate, Entity Framework, Sequelize
- Input Validation: Validieren Sie alle Benutzereingaben (Whitelist-Ansatz)
- Least Privilege: Datenbank-User nur minimale Berechtigungen geben
- Web Application Firewall (WAF): Zusätzliche Schutzschicht
Beispiel (unsicher): SELECT * FROM users WHERE name = '$input'
Beispiel (sicher): SELECT * FROM users WHERE name = ? (mit Prepared Statement)
Content Security Policy (CSP) ist ein HTTP-Header, der definiert, welche Ressourcen (Scripts, Styles, Images, etc.) von einer Webseite geladen werden dürfen. CSP ist ein effektiver Schutz gegen XSS-Angriffe.
Beispiel:
Content-Security-Policy: default-src 'self'; script-src 'self' https://trusted.com; style-src 'self' 'unsafe-inline'
Wirkung: Nur Scripts von der eigenen Domain und https://trusted.com werden ausgeführt. Inline-Scripts sind blockiert (außer Styles).
Vorteile: Verhindert XSS, kontrolliert Datenlecks, erhöht Transparenz.
HTTPS (HTTP over TLS/SSL) ist aus mehreren Gründen unverzichtbar:
- Verschlüsselung: Schutz vor Abhören (MitM-Angriffe)
- Integrität: Daten werden nicht manipuliert
- Authentifizierung: Benutzer können sicher sein, mit dem richtigen Server zu kommunizieren
- SEO: Google bevorzugt HTTPS-Websites
- Browser-Warnungen: Moderne Browser markieren HTTP als "unsicher"
- Compliance: DSGVO und andere Vorschriften verlangen Verschlüsselung
Empfehlung: HTTPS überall, auch für interne Anwendungen. Kostenlose Zertifikate von Let's Encrypt nutzen.
Niemals Passwörter im Klartext speichern! Verwenden Sie stattdessen:
- bcrypt: Bewährter Algorithmus mit konfigurierbarer Iterationszahl (min. 10.000)
- Argon2: Modernster Algorithmus (Gewinner des Password Hashing Competition 2015)
- scrypt: Speicherintensiver Algorithmus, gut gegen GPU-Cracking
Wichtige Regeln:
- Einzigartiger Salt für jedes Passwort
- Hohe Iterationszahl (Work Factor)
- Regelmäßige Überprüfung auf Datenlecks (Have I Been Pwned API)
- Peppering für zusätzliche Sicherheit
Beispiel (bcrypt in Node.js):
const hash = await bcrypt.hash(password, 12);
Session-Cookies:
- Server speichert Session-Daten (z.B. in Redis, Datenbank)
- Client erhält nur Session-ID (Cookie)
- Einfache Invalidierung möglich (Server löscht Session)
- Stateful (Server muss Zustand verwalten)
JWT (JSON Web Tokens):
- Token enthält alle Daten (signiert, optional verschlüsselt)
- Server muss keine Daten speichern
- Stateless (ideal für Microservices)
- Schwerer zu invalidieren (bis Ablauf)
Empfehlung: Session-Cookies für traditionelle Web-Apps, JWT für APIs und Microservices. Bei JWT: HttpOnly + Secure + SameSite Cookies verwenden, niemals im LocalStorage!
Ein umfassender Security-Test umfasst mehrere Ebenen:
- Automatisierte Scans: OWASP ZAP, Burp Suite, Nikto (wöchentlich)
- Dependency Scanning: Snyk, npm audit, OWASP Dependency-Check
- Manuelle Tests: Penetration Testing durch Experten (jährlich)
- Code Reviews: Security-Fokus bei jedem Pull Request
- Threat Modeling: Bei neuen Features Architekturen analysieren
- Bug Bounty Programme: Externe Hacker belohnen
Wichtig: Niemals Sicherheitstests auf Produktionsystemen ohne Absprache durchführen! Test-Umgebungen verwenden.
Im Falle eines Sicherheitsvorfalls (Data Breach, Kompromittierung) sollten Sie:
- 1. Identifizieren: Was ist passiert? Welche Systeme sind betroffen?
- 2. Eindämmen: Betroffene Systeme isolieren, Angreifer aussperren
- 3. Beseitigen: Schwachstelle patchen, Malware entfernen
- 4. Wiederherstellen: Systeme aus sauberen Backups wiederherstellen
- 5. Analysieren: Forensische Untersuchung, Root Cause Analysis
- 6. Kommunizieren: Betroffene informieren, DSGVO-Meldepflicht (72h)
- 7. Lernen: Post-Incident Review, Prozesse verbessern
Wichtig: Incident Response Plan VOR einem Vorfall erstellen und regelmäßig testen!
Zusammenfassung
Die wichtigsten Punkte
- Web Security: Schutz von Webanwendungen vor Angriffen und Missbrauch
- OWASP Top 10: Die 10 kritischsten Sicherheitslücken (A01-A10)
- Häufige Angriffe: XSS, SQL Injection, CSRF, Authentication Bypass
- Schutzmaßnahmen: HTTPS, CSP, Input Validation, Password Hashing, CORS
- Security Headers: HSTS, CSP, X-Frame-Options, Referrer-Policy
- Tools: OWASP ZAP, Burp Suite, Nikto, SQLMap, Nmap, HashCat
- Best Practices: Secure Development, Operations, Audits, Incident Response
- 10 Regeln: HTTPS, Input Validation, Prepared Statements, MFA, etc.
Security ist ein Prozess, kein Produkt
Web Security ist keine einmalige Maßnahme, sondern ein kontinuierlicher Prozess. Bedrohungen entwickeln sich ständig weiter, und Ihre Sicherheitsmaßnahmen müssen sich ebenfalls weiterentwickeln. Investieren Sie in regelmäßige Schulungen, Audits und Tests – die Kosten für Prävention sind immer geringer als die Kosten für einen erfolgreichen Angriff.
Weiterführende Themen
Authentifizierungsmethoden: OAuth 2.0, OpenID Connect, SAML, JWT und MFA.
Zur AuthentifizierungREST, GraphQL, API-Sicherheit und Best Practices für API-Design.
Zu Web APIsUmfassende IT-Sicherheit: Kryptographie, Netzwerksicherheit, Penetration Testing.
Zur IT-SicherheitServerseitige Frameworks: Node.js, Django, Spring Boot, Laravel und mehr.
Zu Backend Frameworks