Datensicherheit Vorlesung 3: 7.12.2015 Sommersemester 2015 h_da, Lehrbeauftragter
Teil 2: Datensicherheit Themenübersicht der Vorlesung 1. Einführung / Grundlagen der Datensicherheit / Authentifizierung 2. Kryptografie / Verschlüsselung und Signaturen mit PGP 3. Netzwerksicherheit / TLS / Grundlagen Softwaresicherheit 4. Softwaresicherheit + PGP-Installation auf Laptops 5. Hacking / Datenschutz / Privatsphäre / Anonymität 6. Malware / Firewalls / Was ist sichere Software? 7. Evaluation / Wiederholung / Beispielklausuraufgaben Datensicherheit 2-2 30.11.2015
Wiederholung aus IT- und Medientechnik Wie funktionieren Netzwerke? Netzwerktoplogien, Knoten, Hops,... Wie funktioniert das Internet? teilvermaschtes Netzwerk mit Backbone und vielen Knoten Kommunikationsprotokoll hauptsächlich TCP/IP Datensicherheit 2-3 30.11.2015
Internet = Teilvermaschtes Netzwerk Datensicherheit 2-4 30.11.2015
Gängige Angriffstypen auf die Netzwerkkommunikation Denial of Service (DoS) Sniffing Man in the Middle (MitM) Spoofing Replay Datensicherheit 2-5 30.11.2015
Denial of Service (DoS) Unterbrechung der Netzwerkverbindung Schutzziel Verfügbarkeit verletzt Knoten A kann mit Knoten B nicht mehr kommunizieren A B Datensicherheit 2-6 30.11.2015
Denial of Service (DoS) meistens findet keine physische Unterbrechung der Netzwerkverbindung statt, sondern eher wird durch einen Angriff eine Software- oder Hardwarekomponente dazu gebracht, dass sie nicht mehr normal Daten verarbeiten kann ein häufiges Angriffsmuster (Attack Pattern) ist die Überflutung einer Netzwerkkomponente mit so vielen Anfragen, dass sie nicht mehr mit den Antworten nach kommt Datensicherheit 2-7 30.11.2015
Distributed Denial of Service (DDoS) ein Angreifer verteilt seinen Angriffs-Code auf viele verschiedene Knoten im Internet und diese schicken alle gleichzeitig Anfragen an das Opfer des Angriffs oft sind die Knoten, die am Angriff beteiligt sind, selber Opfer eines vorangegangen Angriffs und beteiligen sich unbewusst an dem Angriff Angreifer 1 2 3 Opfer B A... n Datensicherheit 2-8 30.11.2015
Sniffing Abhören Schutzziel Vertraulichkeit verletzt Daten die von Knoten A zu Knoten B gesendet werden, hört der Angreifer X mit A B X Datensicherheit 2-9 30.11.2015
Man in the Middle (MitM) Abfangen und Modifizieren Schutzziel Integrität verletzt Daten die von Knoten A zu Knoten B gesendet werden, fängt der Angreifer X ab, verändert sie und schickt sie an den Knoten B weiter (meistens so, dass Knoten B denkt, dass die Daten von Knoten A kommen) A B X Datensicherheit 2-10 30.11.2015
Spoofing Erzeugen Schutzziel Authentizität verletzt Angreifer X schickt Daten an Knoten B und täuscht vor, dass die Daten von Knoten A kommen würden A B X Datensicherheit 2-11 30.11.2015
Replay Datenmithören und erneut senden Schutzziel Authentizität verletzt Daten die von Knoten A zu Knoten B gesendet werden, hört der Angreifer X mit und sendet sie zu einem späteren Zeitpunkt erneut A B X + A X B Datensicherheit 2-12 30.11.2015
Sicherheit auf verschiedenen Ebenen der Netzwerkprotokolle IPsec (Internet Protocol Security) Verschlüsselung und Authentisierung auf Paket-Ebene TLS (Transport Layer Security) Verschlüsselung und Authentisierung auf Verbindungs-Ebene sftp, SSH, HTTPS,... Verschlüsselung und Authentisierung auf Anwendungs-Ebene basiert meist auf TLS PGP, S/MIME,... Verschlüsselung und Authentisierung eingebettet in unsichere Protokolle Datensicherheit 2-13 30.11.2015
Gängige Angriffstypen auf die Netzwerkkommunikation Denial of Service (DoS) Sniffing Man in the Middle (MitM) Spoofing Replay können mit TLS verhindert werden! Datensicherheit 2-14 30.11.2015
Transport Layer Security (TLS) TLS ist ein Netzwerkverschlüsselungsprotokoll, welches die Basis für einen Großteil der verschlüsselten Datenkommunikation im Internet ist z.b. für HTTPS und SSH Vorgänger war SSL (Secure Socket Layer), welches heute auch häufig noch im Einsatz ist Datensicherheit 2-15 30.11.2015
TLS-Funktionalität Authentifizierung asymmetrische Verschlüsselung > Zertifikate nur Server, nur Client, Server und Client Verschlüsselung symmetrische Verschlüsselung nur wenn Authentifizierung UND Verschlüsselung eingesetzt werden, besteht ein Schutz gegen die gängigen Angriffe auf die Netzwerkkommunikation Datensicherheit 2-16 30.11.2015
Transport Layer Security (TLS) 2 Phasen der Kommunikation 1. TLS-Handshake zum Aufbau der Kommunikation, Festlegen des Verschlüsselungsalgorithmus und Austausch des Schlüssels optional auch Authentifizierung der Gegenseite(n) 2. TLS-Kommunikation mit symmetrischer Verschlüsselung Client Hello (Client Certificate) Client Key Exchange (Certificate Verify) Client Finished Message Datenkommunikation Server Hello (Server Certificate) (Server Key Exchange) (Client Certificate Request) Server Hello Done Server Finished Message Datenkommunikation TLS-Handshake TLS-Kommunikation Datensicherheit 2-17 30.11.2015
TLS-Versionen und SSL SSL 1.0 (nie offiziell freigegeben) SSL 2.0 (1995) seit März 2011 offiziell verboten! SSL 3.0 (1996) seit Juni 2015 offiziell veraltet! unterstützt nur RC4 für Verschlüsselung als Non-Block-Cypher TLS 1.0 (1999) wie SSL 3.0, zzgl. AES TLS 1.1 (2006) Schutz gegen Cypher-Block-Chaining-Attacks TLS 1.2 (2008) MD5-SHA1 durch SHA-2 ersetzt GCM-Modus für AES eingeführt TLS 1.3 (Draft) Datensicherheit 2-18 30.11.2015
Gängige Angriffstypen in Webanwendungen Cross-Site Scripting (XSS) Cross-Site Request Forgery (CSRF) Datensicherheit 2-19 30.11.2015
Cross-Site Scripting (XSS) Eine Web-Anwendung empfängt Daten und gibt diese in einer HTTP- Antwort zurück, ohne dass problematische Zeichen oder Zeichenfolgen ausgefiltert (neutralisiert) werden. Dies ermöglicht, dass ein Angreifer speziellen JavaScript-Code in eine Webseite injizieren kann, der dann im Browser eines Opfers ausgeführt wird. Mögliche Auswirkungen Schutzmechanismen umgehen Schutzziel verletzt Vertraulichkeit unberechtigten Code oder Programme ausführen Anwendungsdaten lesen Integrität Vertraulichkeit Verfügbarkeit Vertraulichkeit Datensicherheit 2-20 30.11.2015
Typen von Cross-Site Scripting (XSS) Reflected XSS / Non-Persistent XSS Der verwundbare Web-Server empfängt gefährliche Daten aus der HTTP- Anfrage und schickt diese direkt zurück in der HTTP-Antwort. Die Daten werden an den Absender zurück-reflektiert und werden nicht zwangsweise auf dem Web-Server gespeichert. Stored XSS / Persistent XSS Der Web-Server speichert gefährliche Daten und gibt diese bei HTTP- Anfragen in der HTTP-Antwort zurück. DOM-based XSS Der Angreife-Code manipuliert den Inhalt der aufgerufenen Webseite, indem die HTML-Dokument-Struktur über die Manipulationsmöglichkeiten des DOM (Document Object Model). Datensicherheit 2-21 30.11.2015
Beispiel: Reflected XSS / Non-Persistent XSS Datensicherheit 2-22 30.11.2015
Beispiel: Stored XSS / Persistent XSS Datensicherheit 2-23 30.11.2015
Cross-Site Request Forgery (CSRF) Eine Web-Anwendung überprüft nicht ausreichend, ob eine gültige HTTP-Anfrage auch beabsichtigt von einem Absender geschickt wurde. Wenn eine Cross-Site Scripting Attacke ausgeführt wird und im Browser eines Opfers Anfragen generiert werden, sollte eine Web- Anwendung das erkennen und diese Anfrage nicht ausführen. Datensicherheit 2-24 30.11.2015
Beispiel: XSS+CSRF-Angriffs-Szenario auf Online-Shop Datensicherheit 2-25 30.11.2015
Beispiel: XSS+CSRF-Angriffs-Szenario auf Online-Shop CSRF-Verwundbarkeit XSS-Verwundbarkeit Datensicherheit 2-26 30.11.2015
Sicherheitsfunktionen vs. Nichtfunktionale Sicherheit Sicherheitsfunktionen Funktionen einer Software, die direkt gewisse Schutzziele umsetzen Beispiele: Authentisierung, Autorisierung, Verschlüsselung, Signaturen Nichtfunktionale Sicherheit Eigenschaften einer Software, die indirekt gewisse Schutzziele umsetzen letztendlich sind damit alle möglichen Aspekte einer Software gemeint, die dafür sorgen, dass die Software sich genau der Spezifikation entsprechend verhält und Fehler in der Software nicht zur Verletzung von Schutzzielen führen es gibt Bereiche, in denen nicht ganz klar zwischen Sicherheitsfunktionen und nichtfunktionaler Sicherheit unterschieden werden kann Datensicherheit 2-27 30.11.2015
Terminologie Schwachstelle (Weakness) ein Software-Fehlertyp, der in gewissen Situationen zu einer Verwundbarkeit der Software führen kann Verwundbarkeit (Vulnerability) das Auftreten einer oder mehrerer Schwachstellen in einer Software, in der diese Schwachstelle genutzt werden kann, um ein Fehlverhalten hervorzurufen Offenlegung (Exposure) das Auftreten einer oder mehrerer Schwachstellen in einer Software, die Informationen oder Funktionen offenlegen, die einen Angriff auf ein System erleichtern Auswirkung (Impact) das Ergebnis, welches eine erfolgreich ausgenutzte Verwundbarkeit in einer Software haben kann Datensicherheit 2-28 30.11.2015
Auswirkungen von Schwachstellen (http://cwe.mitre.org/cwraf/enum_of_ti.html) Daten verändern (Modify data) Daten lesen (Read data) DoS: unzuverlässiges Ausführen (DoS: unreliable execution) DoS: Ressourcenverbrauch (DoS: resource consumption) unerlaubtes Ausführen von Programmen oder Befehlen (Execute unauthorized code or commands) Rechte erreichen / Identität annehmen (Gain privileges / assume identity) Schutzmechanismus umgehen (Bypass protection mechanism) Aktivitäten verbergen (Hide activities) Auswirkungsebenen: System Die Entität hat Zugang zu oder Kontrolle über ein System oder einen Computer. Anwendung Die Entität hat Zugang zu einer betroffenen Anwendung. Netzwerk Die Entität hat Zugang zu oder von einem Netzwerk aus. Unternehmen Die Entität hat Zugang zu einem kritischen Teil der Unternehmensinfrastuktur, z.b. dem Netzwerk-Router, DNS-Server, etc. Datensicherheit 6-29 22.05.2015
Sicherheits-Standards und -Aufzählungen Datensicherheit 6-30 22.05.2015
Common Weakness Enumeration http://cwe.mitre.org/ eine gemeinschaftlich entwickelte Aufzählung von Schwachstellentypen eine messbare Menge von Softwareschwachstellen, die es ermöglicht, effektiv über diese zu diskutieren und Werkzeuge zu erstellen, die diese erkennen und beheben können aktuell 719 Schwachstellentypen in 244 Kategorien aufgeführt CWE-ID = eindeutige Nummer, die einen Schwachstellentyp identifiziert Datensicherheit 6-32 22.05.2015
Common Attack Pattern Enumeration and Classification http://capec.mitre.org/ eine gemeinschaftlich entwickelte Aufzählung von Angriffsmustern für gängige Schwachstellen aktuell 463 Angriffsmuster aufgeführt Angriffsmuster: Beschreibung einer gängigen Methode, um eine Verwundbarkeit in einem Softwaresystem auszunutzen Datensicherheit 6-35 22.05.2015
Common Weakness Scoring System http://cwe.mitre.org/cwss/ bietet ein einheitliches Vorgehen, um Schwachstellen, die in einem Softwaresystem gefunden wurden, zu priorisieren bietet ein quantitatives Maß der unbehobenen Schwachstellen, die in einer Software-Anwendung vorhanden sind kann von Software-Entwickler_innen genutzt werden, um die unbehobenen Schwachstellen zu priorisieren Datensicherheit 6-37 22.05.2015
Common Vulnerabilities and Exposures http://cve.mitre.org/ eine Aufzählung von öffentlich bekannten Verwundbarkeiten und Offenlegungen, die in gängiger Software gefunden wurde Datensicherheit 6-40 22.05.2015
Common Vulnerabilities Scoring Systsm http://nvd.nist.gov/cvss.cfm bietet ein einheitliches Vorgehen, um Verwundbarkeiten, die in einem Softwaresystem gefunden wurden, zu priorisieren und deren Auswirkung zu beschreiben Datensicherheit 6-43 22.05.2015
Common Platform Enumeration http://cpe.mitre.org/ eine Menge von NIST-Standards, mit denen Software-Anwendungen, Betriebssysteme und Hardware-Komponenten eindeutig identifiziert werden können CPE Language CPE Dictionary CPE Matching CPE Naming e.g. cpe:/a:microsoft:powerpoint:2013 type: application vendor: microsoft product: powerpoint version: 2013 Datensicherheit 6-45 22.05.2015
Common Configuration Enumeration http://nvd.nist.gov/cce/index.cfm eine Aufzählung von Systemkonfigurationen, die bei der Beschreibung von Sicherheitsproblemen genutzt werden kann, um präzise die Situation zu beschreiben, in der ein Fehler auftritt Datensicherheit 6-47 22.05.2015
CWE/SANS Top 25 Most Dangerous Software Errors http://cwe.mitre.org/top25/ CWE/SANS Top 25 Most Dangerous Software Errors ist eine Liste der meistverbreitetsten und kritischsten Schwachstellen, die zu schwerwiegenden Verwundbarkeiten in Software führen können diese Schwachstellen sind üblicherweise einfach zu finden und leicht auszunutzen und sind gefährlich, weil sie den Angreifer_innen häufig ermöglichen ein System zu kapern, Daten zu klauen oder sie verhindern können, dass ein System normal funktioniert Datensicherheit 6-48 22.05.2015