Secure Web Development - Cheatsheet
Bedrohungsmodelle in der Webentwicklung
Definition:
Bedrohungsmodelle identifizieren und klassifizieren potenzielle Sicherheitsrisiken und Angriffe auf Webanwendungen.
Details:
- Ziel: Schwachstellen entdecken und Gegenmaßnahmen planen
- Arten: STRIDE (Spoofing, Tampering, Repudiation, Information Disclosure, Denial of Service, Elevation of Privilege)
- Schritte:
- Anwendung und Architektur verstehen
- Identifikation potenzieller Bedrohungen
- Bewertung der Bedrohungen
- Gegenmaßnahmen definieren
- Werkzeuge: Microsoft Threat Modeling Tool, OWASP Threat Dragon
Cross-Site Scripting (XSS) Erkennung und Verhinderung
Definition:
XSS ist eine Sicherheitslücke, bei der Angreifer schädliche Skripte in vertrauenswürdige Webseiten einfügen.
Details:
SQL-Injection: Identifikation und Abwehr
Definition:
SQL-Injections sind Angriffe, bei denen bösartige SQL-Befehle in Eingabefelder einer Webanwendung eingeschleust werden, um unautorisierten Zugriff auf Datenbanken zu erlangen.
Details:
- Identifikation: Unsichere Speicherung und Verarbeitung von Benutzereingaben.
- Abwehr: Verwende vorbereitete Anweisungen (Prepared Statements) und ORM-Frameworks.
- Eingabevalidierung: Stelle sicher, dass Eingaben den erwarteten Typ und Format haben.
- Least Privilege Principle: Datenbankbenutzer mit minimalen Rechten ausstatten.
- Überprüfung: Regelmäßige Sicherheitsüberprüfungen und Code-Reviews durchführen.
Sichere Passwortspeicherung und -verwaltung
Definition:
Details:
- Keine Passwörter im Klartext speichern
- Verwende kryptographische Hashfunktionen (\texttt{bcrypt}, \texttt{scrypt}, oder \texttt{Argon2})
- Salting: Einzigartige Salts für jeden Nutzer generieren und speichern
- Passwortrichtlinien durchsetzen (Länge, Komplexität)
- Mehrstufige Authentifizierung einbinden
- Regelmäßige Sicherheitsüberprüfungen und Schwachstellenanalysen
- Sichere Passwortmanager nutzen und empfehlen
Content Security Policy (CSP): Implementierung und Best Practices
Definition:
Content Security Policy (CSP) hilft, Webseiten vor verschiedenen Angriffen, wie z.B. Cross-Site Scripting (XSS) und Dateninjektionen, zu schützen, indem es kontrolliert, welche Ressourcen auf einer Seite geladen werden dürfen.
Details:
- Implementierung durch den HTTP-Header:
Content-Security-Policy
- Basiert auf sog. Direktiven z.B.
default-src
, script-src
- Beispiel: \texttt{Content-Security-Policy: default-src 'self'; script-src 'self' https://apis.example.com}
- Verwende
report-uri
oder report-to
, um CSP-Verstöße zu überwachen - Sicherheitsverstärkungen durch Begrenzung von Inline-Skripten und -Stilen
- Schrittweise Einführen und Testen im
report-only
-Modus - Vermeide das Zulassen von unsicheren Quellen wie
'unsafe-inline'
und 'unsafe-eval'
Multi-Faktor-Authentifizierung
Definition:
Authentifizierungsmethode, die mehrere unabhängige Faktoren nutzt, um die Identität eines Nutzers zu verifizieren.
Details:
- Faktoren: Wissen (z.B. Passwort), Besitz (z.B. Smartphone), Inhärenz (z.B. Fingerabdruck)
- Erhöht die Sicherheit durch Kombinieren mehrerer Authentifizierungsmethoden
- Anwendungsbeispiele: Online-Banking, sicherheitskritische Webanwendungen
- Nachteile: Benutzerfreundlichkeit kann leiden, zusätzliche Hardware oder Software erforderlich
- 2FA (Zwei-Faktor-Authentifizierung) als häufige Implementierung von MFA
Rechte- und Rollenmanagement in Webanwendungen
Definition:
Zuweisung von Berechtigungen zu Benutzern und Gruppen basierend auf deren Rollen in einer Webanwendung.
Details:
- Role-Based Access Control (RBAC): Berechtigungsmatrix zur Verwaltung von Benutzerrechten
- Prinzip der geringsten Rechte
- Rollen: vordefinierte Berechtigungssätze
- Berechtigungen: spezifische Aktionen, die ein Benutzer ausführen darf
- Benutzer zu Rollen zuweisen
- Automatische Zuweisung durch Attribute-Based Access Control (ABAC) möglich
- Regelmäßige Überprüfung und Aktualisierung der Rollen und Rechte erforderlich
Principle of Least Privilege (POLP) im Web Development
Definition:
Prinzip der minimalen Rechte; jedes Modul oder Benutzer sollte nur die geringsten Rechte haben, die zur Erfüllung der jeweiligen Aufgabe notwendig sind.
Details:
- Minimiert potenzielle Schäden durch begrenzte Rechte
- Verbessert die Systemsicherheit durch Begrenzung der Angriffsmöglichkeiten
- Gilt für Benutzerkonten, Prozesse, Systemdienste und Anwendungsfunktionen
- Regelmäßig Rechte überprüfen und anpassen
- Implementiere Rollen-basierte Zugriffskontrollen (RBAC) und Notfall-Privilegien-Protokolle