Entwicklung Sicherer Webanwendungen (Teil 2) Flashcards
Was versteht man unter Sensitive Date Exposure?
Nenne beispiele für vertrauliche Daten
Sensitive Date Exposure = Vertrauliche Daten werden unbeabsichtigt von der Webanwendung offengelegt
Vertrauliche Daten:
Passwörter
Personenbezogene
Daten Finanzdaten
Was sind Gegenmaßnahmen für Sensitive Date Exposure?
Vertrauliche Daten geeignet geschützt speichern
Heißt in den meisten Fällen: verschlüsselt
Geeignete Verschlüsselungsmaßnahmen wählen hinsichtlich: Algorithmus Schlüssellänge Schlüsselerzeugung Schlüsselspeicherung
Datensparsamkeit: so wenig vertrauliche Daten wie möglich speichern
Falls möglich: Hardware-Sicherheitsmodul (HSM) verwenden
Starke Zugangspasswörter erzwingen
Auto-Completion für sensitive Daten in Forms deaktivieren
Was ist ein Rainbow Table?
Ist eine optimierte Datenstruktur,
die eine schnelle, speichereffiziente Suche nach der ursprünglichen Zeichenfolge für einen gegebenen Hashwert ermöglicht.
In diesen Dateien liegen passend zum verwendeten Verschlüsselungsalgorithmus Passwörter zusammen mit ihren Hashwerten.
Rainbow Table verwendet zwei Funktionen Hashfunktion h(): Abbildung String -> Hash-Wert
Reduktionsfunktion r(): Abbildung Hash-Wert -> String
Was sind OWASP Regeln für SSL und TSL?
Regel 1: SSL/TLS für alle Login Seiten und alle folgenden Seiten
Regel 2: SSL/TLS grundsätzlich zur Übertragung vertrauliche Daten übertragen, auch in internen Netzen
Regel 3: Seiten, die über SSL/TLS zur Verfügung stehen nicht auch ohne SSL/TLS zur Verfügung stellen
Regel 4: Auf mittels SSL/TLS übertragenen Seiten ausschließlich Inhalte über SSL/TLS einbinden!
Regel 5: Secure Cookie Flag verwenden
Regel 6: Keine sensitiven Daten in URLs
Regel 7: Kein Caching von sensitiven Daten
Regel 8: HTTP Strict Transport Security (HSTS) nutzen
Regel 9: geeignete CA für Zertifikate verwenden
Regel 10: Nur kryptographisch starke Protokolle verwenden
Regel 11: Nur kryptographisch starke Algorithmen verwenden
Was ist eine Cipher-Suite?
Definition von Cipher-Suites = vordefinierte Kombinationen von Sicherungsalgorithmen
Cipher Suites liefern wichtige Informationen dazu, wie beim Einsatz von HTTPS, FTPS, SMTP und anderen Netzwerkprotokollen eine sichere Datenübertragung zustande kommt.
Cipher Suites sollten verwendet werden, weil kryptografische Algorithmen gebrochen werden können.
Nenne Regeln für Autorisierung laut OWASP
Regel 1: Falls Benutzer lange eingeloggt sein können: regelmäßig Rechte erneut testen
Regel 2: Least Privilege: So wenig Rechte wie möglich, so viele Rechte wie notwendig
Regel 3: Zentralisierte Autorisierung
Regel 4: Kontrollierter Zugang zu geschützten Ressourcen
Regel 5: Auch Zugriff auf statische Ressourcen (Bilder etc.) schützen
Wie läuft ein Cross-Site Request Forgery ab?
Nenne ein Beispiel.
Vorgehen: Angreifer erzeugt gefälschten HTTP Request und bringt Opfer dazu, diesen zu übermitteln, z.B. über Image Tags, XSS, …
Falls der Benutzer authentifiziert ist, funktioniert der Angriff
Angreifer bindet Website in einem Bild ein und das Opfer lädt Seite mit versteckte Code. (HTTP Request ist im Code des Bildes versteckt)
Nenne Gegenmaßnahmen für Cross-Site Request Forgery
Gehe genauer auf CAPTCHA ein.
Erzeuge ein zufälligen (!!!) Token für die aktuelle Session des Benutzers
- Token auf Serverseite einfügen in HTML Formulare / Links für zu schützende, sensitive Aktionen
- Wenn Benutzer diese Aktionen ausführen möchte: HTTP Request muss Token beinhalten
- Server muss Vorhandensein und Korrektheit des Tokens überprüfen
Weitere Gegenmaßnahme: Challenge-Response
Server stellt (individuelle) „Aufgabe“ pro Formular/Link, Client sendet Lösung.
z.B mit CAPTCHA
Sehr wirkungsvoll, allerdings für Benutzer umständlich. CAPTCHAs bieten keine Barrierefreiheit!
Using Known Vulnerable Components
Von was kann man bei Komponenten ausgehen? (Schwachstellen)
Software nie frei von Fehlern (Erfahrungswert: 3-4 Fehler pro 1000 Zeilen Code)
Aus Fehlern können Verwundbarkeiten entstehen Fehler betreffen auch…
…verwendetes Framework
…verwendete Bibliotheken
…weitere verwendete Komponenten
Es liegen viele Schwachstellen von Komponenten im Web offen! Angreifer kennen diese und nutzen Sie.
(Liegen z.B in NVD Datenbank)
Beispiel: Angreifer sieht es läuft altes Ubunto - schaut nach Schwachstellen
Wie kann man sich vor bekannten Known Vulnerable Components schützen?
Keine fremden Komponenten verwenden
Regelmäßiges Upgrade
Regelmäßige Updates, am besten automatisiert
Unbenutzte Komponenten auch wieder entfernen
Was ist ein Gateway?
Welche drei Arten kennen Sie?
In einem Softwareprojekt können verwundbare Komponenten durch eines von drei „Gateways“ aufgenommen werden
- Selection/Consumption
- Integration
- Deployment
An jedem dieser drei Gateways muss folgendes möglich sein:
Komponenten abweisen
Komponenten entfernen
Komponenten verwalten
Was ist ein Consumption Gateway?
Entwickler wählt eine Softwarekomponente und bindet sie ein
Was ist die Aufgabe des Integration Gateways?
Software wird beispielsweise im Kompilierprozess dazu genommen, js-uglify, etc.
Was macht der Deployment Gateway?
Hinzufügen von Komponenten während der Installation (Deployment)
Was sind Unvalided Redirects and Forwards?
Manche Web-Anwendungen leiten weiter, indem Zielseite in unvalidiertem Parameter übergeben wird.