Secure Web Development - Cheatsheet.pdf

Secure Web Development - Cheatsheet
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: Anwe...

© StudySmarter 2024, all rights reserved.

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:

  • Gefähr liegt in der Manipulation des Browsers des Opfers durch Ausführung von schädlichem JavaScript.
  • Typen: Reflektiertes XSS, Gespeichertes XSS, DOM-basiertes XSS
  • Erkennung: Eingabeüberprüfung, Sicherheitswerkzeuge (z.B. Content Security Policy)
  • Verhinderung:
    • Sanitization und Escaping von Eingaben
    • Nutzung von Sicherheitsheaders (z.B. CSP, X-XSS-Protection)
    • Framework-spezifische Schutzmaßnahmen (z.B. React's JSX Escaping)
  • Code Beispiel (PHP):
    <?phpfunction sanitizeOutput($data) {  return htmlspecialchars($data, ENT_QUOTES, 'UTF-8');}?>

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
Sign Up

Melde dich kostenlos an, um Zugriff auf das vollständige Dokument zu erhalten

Mit unserer kostenlosen Lernplattform erhältst du Zugang zu Millionen von Dokumenten, Karteikarten und Unterlagen.

Kostenloses Konto erstellen

Du hast bereits ein Konto? Anmelden