Secure Web Development - Cheatsheet
Grundlegende Bedrohungen und Schutzmechanismen (Schadsoftware, Phishing, Man-in-the-Middle, Firewalls, IDS)
Definition:
Kurze Übersicht über gängige Bedrohungen und deren Schutzmechanismen im Bereich der Webentwicklung.
Details:
- Schadsoftware: Programme, die bösartige Aktionen ausführen (z.B. Viren, Würmer, Trojaner). Schützen durch Antivirenprogramme, regelmäßige Updates, und Vorsicht beim Öffnen von Anhängen.
- Phishing: Versuche, sensible Informationen durch Täuschung zu erbangen. Schutz durch Nutzung von Anti-Phishing-Tools, Vorsicht beim Anklicken unbekannter Links, und Verifizierung der Echtheit von Websites.
- Man-in-the-Middle: Abhören und Manipulieren von Kommunikation zwischen zwei Parteien. Schutz durch Verschlüsselung (z.B. TLS/SSL).
- Firewalls: Netzwerksicherheitsvorrichtungen, die eingehenden und ausgehenden Datenverkehr kontrollieren. Schützen durch Überwachung und Filterung des Datenverkehrs.
- IDS (Intrusion Detection System): Systeme zur Erkennung und Meldung von potenziellen Sicherheitsverletzungen. Schützen durch Überwachung der Netzwerkaktivitäten und Identifikation verdächtiger Muster.
SQL-Injection (Erkennung, Vermeidung durch prepared statements)
Definition:
SQL-Injection: eine Sicherheitslücke, bei der Angreifer schädlichen SQL-Code in eine Abfrage einschleusen können.
Details:
- Erkennung: Beobachten ungewöhnlicher SQL-Abfrage-Muster, Einsatz von Web Application Firewalls (WAFs), Log-Analyse.
- Vermeidung: Nutze Prepared Statements mit parametrisierten Abfragen. Trenne SQL-Code von Nutzdaten, um Code-Injection zu verhindern.
- Beispiel Prepared Statement in PHP:
$stmt = $pdo->prepare('SELECT * FROM users WHERE username = :username');
$stmt->execute([':username' => $input_username]);
Cross-Site Scripting (reflektiert, persistent, DOM-basiert) und Content Security Policy
Definition:
Cross-Site Scripting (XSS): Sicherheitslücke, die es Angreifern ermöglicht, Schadcode in Webseiten einzuschleusen. CSP: Sicherheitsmechanismus zur Bekämpfung solcher Angriffe.
Details:
- Reflektiertes XSS: Eingaben eines Nutzers werden sofort im Output der Webseite reflektiert.
- Persistentes XSS: Schadcode wird dauerhaft im Server gespeichert und bei jedem Aufruf der betroffenen Seite ausgeführt.
- DOM-basiertes XSS: Veränderungen am DOM einer Webseite durch unsichere Client-seitige Skripte.
- Content Security Policy (CSP): Mechanismus, der erlaubt, welche Ressourcen eine Webseite laden darf; definiert durch HTTP-Header oder innerhalb von HTML.
- Wichtigste CSP-Direktiven: 'default-src', 'script-src', 'style-src', 'img-src'.
- CSP kann Inline-Skripte und externe Ressourcen einschränken, wodurch XSS-Risiken minimiert werden können.
Sichere Authentifizierungsverfahren (Passwort-Sicherheit, Multi-Faktor-Authentifizierung, OAuth2, OpenID Connect)
Definition:
Sichere Authentifizierungsverfahren gewährleisten Schutz vor unbefugtem Zugriff auf Systeme.
Details:
- Passwort-Sicherheit: Mindestens 8-12 Zeichen, Mischung aus Groß- und Kleinbuchstaben, Zahlen und Sonderzeichen. Passwörter regelmäßig ändern und nie mehrfach verwenden.
- Multi-Faktor-Authentifizierung (MFA): Kombination aus zwei oder mehr der folgenden Faktoren: Wissen (Passwort), Besitz (Token, Smartphone), Inhärenz (biometrische Daten).
- OAuth2: Autorisierungsrahmen zur Gewährung eingeschränkten Zugriffs auf Ressourcen ohne Weitergabe von Zugangsdaten. Nutzung von Access Tokens.
- OpenID Connect: Erweiterung von OAuth2 für Authentifizierung. Ermöglicht Single Sign-On (SSO) mittels ID Tokens, basierend auf JSON Web Tokens (JWT).
Speichertechniken für Passwörter (Hashing, Salting)
Definition:
Hashing: Transformiere Passwort zu einer festen Länge. Salting: Füge zusätzlichen Wert zum Passwort vor dem Hashing hinzu.
Details:
- Hashing: Einwegfunktion, nicht umkehrbar. Beispiele: SHA-256, bcrypt
- Salting: Erhöht Sicherheit, verhindert Rainbow-Table-Angriffe. Zufällig generierter Wert (Salt) vor dem Hashing-Prozess hinzugefügt
- Formel Hashing: \(H(Passwort) = H(plaintext)\)
- Formel Salting: \(H(Salt \ | Passwort)\)
HTTPS und SSL/TLS (Grundlagen, Zertifikatsverwaltung, Best Practices, Angriffe und Gegenmaßnahmen)
Definition:
HTTPS (Hypertext Transfer Protocol Secure) verwendet SSL/TLS (Secure Sockets Layer/Transport Layer Security) zur Verschlüsselung der Kommunikation zwischen Webbrowser und Server.
Details:
- Grundlagen: SSL/TLS sichert Datenintegrität und -verschlüsselung. HTTPS läuft über TCP-Port 443.
- Zertifikatsverwaltung: Vertrauen basiert auf digitalen Zertifikaten, die von Zertifizierungsstellen (CA) ausgestellt werden.
- Best Practices: Starke Verschlüsselungsalgorithmen nutzen, regelmäßige Zertifikatsaktualisierung, Einsatz von HSTS (HTTP Strict Transport Security).
- Angriffe: Man-in-the-Middle (MitM), POODLE, BEAST.
- Gegenmaßnahmen: Einsatz aktueller SSL/TLS-Versionen, regelmäßige Sicherheitsüberprüfungen, sichere Konfiguration von Servern und Bibliotheken.
Sicherheit von Web-APIs (API-Authentifizierung, Autorisierung, Ratenlimitierung)
Definition:
Sicherheit von Web-APIs umfasst Mechanismen zum Schutz vor unberechtigtem Zugriff und Missbrauch, einschließlich Authentifizierung, Autorisierung und Ratenlimitierung.
Details:
- API-Authentifizierung: Identität des Nutzers prüfen. Häufig verwendete Methoden: API-Schlüssel, OAuth2, JWT
- Autorisierung: Berechtigungen überprüfen. Zugriffskontrollliste (ACLs) und Rollenbasierte Zugriffskontrolle (RBAC)
- Ratenlimitierung: Anzahl der Anfragen pro Zeiteinheit begrenzen, um Missbrauch und Überlastung zu verhindern
Verfahren zur Risikoanalyse und -bewertung (Analysemodelle, Risikostrategien)
Definition:
Methoden zur Identifikation, Bewertung und Minimierung von Risiken in der Webentwicklung.
Details:
- DREAD: Klassifizierung von Risiken nach Schaden, Reproduzierbarkeit, Ausnutzbarkeit, Entdeckbarkeit, Benutzerbetroffenheit
- STRIDE: Kategorisierung von Bedrohungen: Spoofing, Tampering, Repudiation, Information Disclosure, Denial of Service, Elevation of Privilege
- Fault Tree Analysis (FTA): Grafische Darstellung von Systemausfällen zur Identifizierung von Ursachen
- Failure Mode and Effects Analysis (FMEA): Identifikation von Fehlerzuständen und deren Auswirkungen
- Quantitative Risikobewertung: Nutzung von Wahrscheinlichkeiten und Schadensausmaßen zur Bewertung
- Risikostrategien: Akzeptanz, Vermeidung, Minderung, Übertragung