Web Application Security “Wir sind bestens vor Angriffen gesichert, wir haben eine Firewall!” IT-SeCX – 12.11.2010 Version: Autor: Verantwortlich: Datum: Vertraulichkeitsstufe: 1.0 A. Kravitz / K. Bauer A. Kravitz 12.11.2010 Öffentlich SEC Consult – Advisor for your information security (1) • Berater für Information Security • Experte für die Einführung von Sicherheitsprozessen und Policies (ISO 27001, BS 25999, GSHB) • Führend bei technischen Sicherheits-Audits und bei der Umsetzung • Spezialist für Applikations- und Webapplikationssicherheit auf Basis A 7700 • Unabhängigkeit von Produktherstellern • Behörden, Banken, Versicherungen, börsennotierte Unternehmen in Zentraleuropa als Kunden • Branchenspezifische Ausrichtung (Defense, Public, Finance, Industry) 2 © 2010 SEC Consult Unternehmensberatung GmbH - All rights reserved SEC Consult – Advisor for your information security (2) • Gegründet 2002 • Zentrale in Wien • Niederlassungen in Wiener Neustadt (Österreich), Frankfurt (Deutschland) und Montreal (Kanada) • Fokus auf Zentraleuropa • Eigenes „SEC Consult Vulnerability Lab“ • Partner: 3 Secure Systems Lab @ © 2010 SEC Consult Unternehmensberatung GmbH - All rights reserved SEC Consult – Advisor for your information security (3) … is certified according to ISO 27001 4 © 2010 SEC Consult Unternehmensberatung GmbH - All rights reserved …über die Vortragenden • Avi Kravitz ([email protected]) • Security Consultant, Trainer • Methodical Competences: Penetration Testing, ÖNORM A 7700, ISO/IEC 27001:2005, BSI Grundschutz, Risk Management • Konstantin Bauer ([email protected]) • Security Consultant, Trainer • Methodical Competences: Penetration Testing, Akkreditierter ÖNORM A 7700 Auditor, OWASP, OSSTMM, Source Code Audits 5 © 2010 SEC Consult Unternehmensberatung GmbH - All rights reserved Die Top-5 Mythen über die Sicherheit von Webauftritten Unser Webauftritt ist sicher, weil ... • Wir 128 Bit SSL Verschlüsselung verwenden 6 © 2010 SEC Consult Unternehmensberatung GmbH - All rights reserved Die Top-5 Mythen über die Sicherheit von Webauftritten Unser Webauftritt ist sicher, weil ... • Wir 128 Bit SSL Verschlüsselung verwenden • SSL macht nur die Verbindung zwischen Client und Server „abhörsicher“. 7 © 2010 SEC Consult Unternehmensberatung GmbH - All rights reserved Die Top-5 Mythen über die Sicherheit von Webauftritten Unser Webauftritt ist sicher, weil ... • Wir 128 Bit SSL Verschlüsselung verwenden • SSL macht nur die Verbindung zwischen Client und Server „abhörsicher“. • Unsere Firewall schützt unsere Webserver 8 © 2010 SEC Consult Unternehmensberatung GmbH - All rights reserved Die Top-5 Mythen über die Sicherheit von Webauftritten Unser Webauftritt ist sicher, weil ... • Wir 128 Bit SSL Verschlüsselung verwenden • SSL macht nur die Verbindung zwischen Client und Server „abhörsicher“. • Unsere Firewall schützt unsere Webserver • Nur dann, wenn sie den Zugriff auf ebendiesen nicht zulässt. 9 © 2010 SEC Consult Unternehmensberatung GmbH - All rights reserved Die Top-5 Mythen über die Sicherheit von Webauftritten Unser Webauftritt ist sicher, weil ... • Wir 128 Bit SSL Verschlüsselung verwenden • SSL macht nur die Verbindung zwischen Client und Server „abhörsicher“. • Unsere Firewall schützt unsere Webserver • Nur dann, wenn sie den Zugriff auf ebendiesen nicht zulässt. • Unser ISS/Eeye/Nessus Scanner zeigt keine Fehler am Webserver 10 © 2010 SEC Consult Unternehmensberatung GmbH - All rights reserved Die Top-5 Mythen über die Sicherheit von Webauftritten Unser Webauftritt ist sicher, weil ... • Wir 128 Bit SSL Verschlüsselung verwenden • SSL macht nur die Verbindung zwischen Client und Server „abhörsicher“. • Unsere Firewall schützt unsere Webserver • Nur dann, wenn sie den Zugriff auf ebendiesen nicht zulässt. • Unser ISS/Eeye/Nessus Scanner zeigt keine Fehler am Webserver • Derartige Scanner finden NUR bekannte Fehler in bekannten Services. 11 © 2010 SEC Consult Unternehmensberatung GmbH - All rights reserved Die Top-5 Mythen über die Sicherheit von Webauftritten Unser Webauftritt ist sicher, weil ... • Wir 128 Bit SSL Verschlüsselung verwenden • SSL macht nur die Verbindung zwischen Client und Server „abhörsicher“. • Unsere Firewall schützt unsere Webserver • Nur dann, wenn sie den Zugriff auf ebendiesen nicht zulässt. • Unser ISS/Eeye/Nessus Scanner zeigt keine Fehler am Webserver • Derartige Scanner finden NUR bekannte Fehler in bekannten Services. • Unser IDS jeden Einbruchsversuch sofort aufzeigt und im Keim erstickt 12 © 2010 SEC Consult Unternehmensberatung GmbH - All rights reserved Die Top-5 Mythen über die Sicherheit von Webauftritten Unser Webauftritt ist sicher, weil ... • Wir 128 Bit SSL Verschlüsselung verwenden • SSL macht nur die Verbindung zwischen Client und Server „abhörsicher“. • Unsere Firewall schützt unsere Webserver • Nur dann, wenn sie den Zugriff auf ebendiesen nicht zulässt. • Unser ISS/Eeye/Nessus Scanner zeigt keine Fehler am Webserver • Derartige Scanner finden NUR bekannte Fehler in bekannten Services. • Unser IDS jeden Einbruchsversuch sofort aufzeigt und im Keim erstickt • Ein IDS kennt leider auch nur bekannte Fehler in bekannten Service 13 © 2010 SEC Consult Unternehmensberatung GmbH - All rights reserved Die Top-5 Mythen über die Sicherheit von Webauftritten Unser Webauftritt ist sicher, weil ... • Wir 128 Bit SSL Verschlüsselung verwenden • SSL macht nur die Verbindung zwischen Client und Server „abhörsicher“. • Unsere Firewall schützt unsere Webserver • Nur dann, wenn sie den Zugriff auf ebendiesen nicht zulässt. • Unser ISS/Eeye/Nessus Scanner zeigt keine Fehler am Webserver • Derartige Scanner finden NUR bekannte Fehler in bekannten Services. • Unser IDS jeden Einbruchsversuch sofort aufzeigt und im Keim erstickt • Ein IDS kennt leider auch nur bekannte Fehler in bekannten Service • Unsere neue Web Application Firewall blockt alle Angriffe 14 © 2010 SEC Consult Unternehmensberatung GmbH - All rights reserved Die Top-5 Mythen über die Sicherheit von Webauftritten Unser Webauftritt ist sicher, weil ... • Wir 128 Bit SSL Verschlüsselung verwenden • SSL macht nur die Verbindung zwischen Client und Server „abhörsicher“. • Unsere Firewall schützt unsere Webserver • Nur dann, wenn sie den Zugriff auf ebendiesen nicht zulässt. • Unser ISS/Eeye/Nessus Scanner zeigt keine Fehler am Webserver • Derartige Scanner finden NUR bekannte Fehler in bekannten Services. • Unser IDS jeden Einbruchsversuch sofort aufzeigt und im Keim erstickt • Ein IDS kennt leider auch nur bekannte Fehler in bekannten Service • Unsere neue Web Application Firewall blockt alle Angriffe • Eine Web Application Firewall korrekt zu konfigurieren ist mind. genauso aufwändig (oft sogar aufwändiger!) wie die Applikation initial „sicher“ zu programmieren. 15 © 2010 SEC Consult Unternehmensberatung GmbH - All rights reserved Typische Konfiguration eines sicheren Websystems 16 © 2010 SEC Consult Unternehmensberatung GmbH - All rights reserved Webapplikation – das schwächste Glied Attacker AD Webserver with vulnerable web application DB FileShare Internet Public (External) 17 DMZ © 2010 SEC Consult Unternehmensberatung GmbH - All rights reserved LAN (Internal) Warum (Web-)Application Security? • Analyse von 1.364 Webseiten • 22.776 verifizierte Schwachstellen • 64% der getesteten Webseiten haben derzeit mindestens eine Schwachstelle, deren Risiko als “Hoch” oder “Kritisch” eingestuft wird. Quelle: WhiteHat Security, 2010 • 80% aller Cyberattacken finden heute auf Applikationsebene statt (Gartner, 2009) 1.500.000 1.000.000 500.000 0 Anzahl der Website Defacements 2008 2009 Q1/2010 Prognose 2010 Quelle: zone-h.org 18 © 2010 SEC Consult Unternehmensberatung GmbH - All rights reserved WhiteHat Security Top 10 Vulnerabilites Quelle: WhiteHat Security, 2010 19 © 2010 SEC Consult Unternehmensberatung GmbH - All rights reserved WhiteHat Security Top 10 Vulnerabilites Quelle: WhiteHat Security, 2010 20 © 2010 SEC Consult Unternehmensberatung GmbH - All rights reserved Aufbau des Tests von Webapplikationen Vorbereitung Security Audit Information Gathering Identifizieren & Ausnutzung der Schwachstellen Technische Risikoeinschätzung Lösungsvorschläge • Phase 1: Vorbereitung des Security Audits • Festlegung des Audit-Ansatz (Blackbox, Glassbox oder Sourcode review) • Permission to Attack • Phase 2: Sammeln von Informationen • Es wird versucht, so viele Informationen wie möglich über die Anwendung herauszufinden • Phase 3: Identifizieren & Ausnutzen der Schwachstellen • Für jede gefundene Schwachstelle wird ein Proof-of-Concept Exploit durchgeführt und versucht, so weit wie möglich ins System einzudringen • Phase 4 & 5: Risiko-Einschätzung und Lösungsvorschläge • Für jede Schwachstelle wird ein individueller Risk-Score vergeben und Vorschläge erläutert, wie die Probleme behoben werden können 21 © 2010 SEC Consult Unternehmensberatung GmbH - All rights reserved 22 © 2010 SEC Consult Unternehmensberatung GmbH - All rights reserved 23 © 2010 SEC Consult Unternehmensberatung GmbH - All rights reserved Cross Site Scripting (XSS) • Clientseitige Skripte (z.B. JavaScript) werden mit Hilfe von Fehlern in Webapplikationen in den Webbrowser potentieller Opfer geschleust • Entsteht durch: • Unzureichende Eingabe/Ausgabe Validierung • Und fehlende HTML - Codierung von Ausgabedaten z.B. „<„ &lt; „>“ &gt; „ „ “ &#39; … • Unterscheidung in • Permanent • Non-Permanent / Reflected 24 © 2010 SEC Consult Unternehmensberatung GmbH - All rights reserved Cross Site Scripting (XSS) – manuelle Suche/Verifizierung 25 © 2010 SEC Consult Unternehmensberatung GmbH - All rights reserved Cross Site Scripting (XSS) – manuelle Suche/Verifizierung 26 © 2010 SEC Consult Unternehmensberatung GmbH - All rights reserved Cross Site Scripting (XSS) – manuelle Suche/Verifizierung 27 © 2010 SEC Consult Unternehmensberatung GmbH - All rights reserved Cross Site Scripting (XSS) – manuelle Suche/Verifizierung 28 © 2010 SEC Consult Unternehmensberatung GmbH - All rights reserved Cross Site Scripting (XSS) - Auswirkungen Angreifer kann mittels XSS: • Zugangsdaten stehlen • Session Hijacking • Relogin-Trojaner • Browser vom Opfer fernsteuern (XSS Trojaner) • Malware über Drive-by Downloads (z.B. mpack) • … 29 © 2010 SEC Consult Unternehmensberatung GmbH - All rights reserved Cross Site Scripting (XSS) – Wer ist davon betroffen? • Auf xssed.org bereits ~ 30.000 XSS Schwachstellen dokumentiert! Darunter sind unter anderem folgende Domains betroffen: 30 Google.com Yahoo.com Youtube.com Facebook.com Twitter.com ebay.com Barackobama.com imdb.com cia.gov adobe.com parlament.gv.at help.gv.at justiz.gv.at orf.at bankofamerica.com thepiratebay.org nasa.gov … © 2010 SEC Consult Unternehmensberatung GmbH - All rights reserved Funktionsweise eines XSS Trojaner Abholen von XSSTrojaner-Script und Befehlen (periodisch, asynchron) Server sendet Infektion mit XSS Senden von Befehle Trojaner Befehlen beliebigen Kommunikation wird vom XSS Trojaner abgefangen und manipuliert Anfrage an Server Aufruf von XSS-modifizierter Seite Script SRC=attacker.com Antwort des Servers Example.com 31 © 2010 SEC Consult Unternehmensberatung GmbH - All rights reserved „Live“ Hack • Rechtliche Situation für Live Hacks ist klar: Sie sind verboten • SEC Consult arbeitet auf einer selbst entwickelten Webapplikation • Läuft lokal auf diesem Laptop • Enthält die häufigsten Sicherheitslücken • Die gezeigten Sicherheitslücken sind in wirklichen Anwendungen sehr weit verbreitet 32 © 2010 SEC Consult Unternehmensberatung GmbH - All rights reserved „Live“ Hack – Cross Site Scripting • Web Site Defacement • Cookie Theft • XSS Trojaner 33 © 2010 SEC Consult Unternehmensberatung GmbH - All rights reserved „Live“ Hack • Netzplan 34 © 2010 SEC Consult Unternehmensberatung GmbH - All rights reserved Schutz vor Cross Site Scripting • Alle Benutzer-Ein- und Ausgaben müssen einer strikten Ein- und Ausgabeüberprüfung unterzogen werden. • Whitelist-Methoden sind Blacklist-Methoden unbedingt vorzuziehen. • Zusätzlich müssen spezielle Zeichen wie [;()"´`,<>/\] in der Benutzerausgabe durch ihre HTML Äquivalente (&quot;, &#39;, &lt;, &gt;, ...) ersetzt werden. 35 © 2010 SEC Consult Unternehmensberatung GmbH - All rights reserved Cross Site Scripting (XSS) – Warum Codierung der Ausgabe? • Woher kommen die zu verarbeitenden Informationen? 36 © 2010 SEC Consult Unternehmensberatung GmbH - All rights reserved Web Application Firewalls? Bisherige Ansätze von WAFs beschränken sich auf 2 Methoden • Blacklisting - „Ich erlaube alles, außer…“ + weit verbreitet + generische Blacklists vorhanden (mod_security Core Rules, PHP-IDS,…) - Absolut kein Schutz vor 0-Day Angriffen/Exploits - aufwändige Konfiguration wenn generische Blacklists ‚false Positives„ liefern - Moderne Datenaustausch-Formate (XML, JSON,…) werden nur ungenügend unterstützt - Umgehen der Regeln oft mit einfachen Mitteln möglich - Oft nur einige Leerzeichen/Zeilenumbrüche ausreichend - Codierung des Inputs in Hex oder Unicode - Split String - … 1: ping.php?ip=127.0.0.1; cat /etc/passwd 2: ping.php?ip=127.0.0.1; a=etc; cat /$a/passwd 37 © 2010 SEC Consult Unternehmensberatung GmbH - All rights reserved Web Application Firewalls? Bisherige Ansätze von WAFs beschränken sich auf 2 Methoden • Whitelisting - „Ich erlaube nichts, außer…“ + Schutz vor 0-Day Angriffen/Exploits + wenige/keine „False Positives“, da explizit konfiguriert wird was „erlaubt“ ist - Konfiguration sehr aufwändig Die Applikation bereits Initial sicher zu programmieren ist meist mit weniger Aufwand verbunden 38 © 2010 SEC Consult Unternehmensberatung GmbH - All rights reserved Web Application Firewalls? Anomaliebasierende WAFs • Herausforderungen • False Positives durch unvollständige Learning Phase und aufgrund fehlender KI • Unterbinden von Attacken in der Learning Phase Applikation ist im Internet aber permanentem Angriff ausgesetzt • Lösungsansätze • isolierte Umgebung in der Learning Phase • viele „Tester“ • Einsatz von Webroboter …nur wie lange bleibt eine Webapplikation nach der Learning Phase „unverändert“? (Stichwort: Web 2.0) 39 © 2010 SEC Consult Unternehmensberatung GmbH - All rights reserved SQL Injection • SQL Injection birgt viele Gefahren: • Ein Angreifer kann beliebige Daten aus der Datenbank lesen (z.B. Benutzernamen/Passwörter, Kreditkarteninformationen, etc.) • Viele Datenbanken bieten Funktionen um Kommandos auszuführen (z.B. MS SQL Server: xp_cmdshell) • Läuft die Datenbank am gleichen Server wie der Webserver, kann ein Angreifer mit hoher Wahrscheinlichkeit auch das Webservice komplett kompromittieren • Ein einfaches Anführungszeichen in einem Parameter löst einen Datenbankfehler aus • SQL Injection ist wahrscheinlich möglich • Datenbankfehler rührt daher, dass das Anführungszeichen in das SQL Statement übernommen wird und dadurch eine ungültige Abfrage durchgeführt wird • Nun kann der Angreifer versuchen, das SQL Statement so zu manipulieren, dass es andere Daten ausgibt 40 © 2010 SEC Consult Unternehmensberatung GmbH - All rights reserved SQL Injection II • Benutzerinput wird direkt in ein SQL Query übernommen • Ausbrechen aus der Syntax und Einbringen von eigenen Queries • Mittels spezieller Eingaben können weitere Abfragen in das Query eingebunden werden: • union SELECT 1,2,3,4 – • Demonstration: Verschiedene Angriffe auf den Datenbankserver • Können Dateien erzeugt werden, ist komplette Übernahme des Systems wahrscheinlich • Demonstration: Erzeugen einer so genannten One-way-command-shell 41 © 2010 SEC Consult Unternehmensberatung GmbH - All rights reserved „Live“ Hack – SQL Injection • Login Bypass • Umgehen von fehlerhaft implementierter Authentifizierung • Sprechende SQL Injection • Bequemes Auslesen von Datenbankinhalten • Auslesen von Dateiinhalten • Erzeugen von Dateien am Server • Übernahme des Webservers • Blind SQL Injection • Bitweises Auslesen von Datenbankinhalten, Dateien, etc. 42 © 2010 SEC Consult Unternehmensberatung GmbH - All rights reserved Schutz vor SQL Injections • Verwendung von Prepared Statements oder parametrisierten Queries • Falls durch die Programmiersprache unterstützt • Verhindert SQL-Injection, wenn korrekt implementiert • Escaping von Metazeichen • $name="' OR '1'='1" • $query = "SELECT * FROM customers WHERE username= '".mysql_escape($name)."'"; • SELECT * FROM customers WHERE username = '\' OR \'1\'=\'1' • Quoten von jeglichem Benutzerinput • Auch number-Typen • $query = "SELECT * FROM customers WHERE id= '".mysql_escape($id)."'"; • Whitelist-Filter von Benutzerinput 43 © 2010 SEC Consult Unternehmensberatung GmbH - All rights reserved VIELEN DANK ! • Hoffentlich besteht Ihre Information Security nicht nur aus einer Firewall! 44 © 2010 SEC Consult Unternehmensberatung GmbH - All rights reserved Wie erreichen Sie SEC Consult? SEC Consult Unternehmensberatung GmbH Österreich 45 Deutschland Mooslackengasse 17 A-1190 Vienna Austria Bockenheimer Landstrasse 17-19 D-60325 Frankfurt am Main Germany Tel: +43-(0)1-890 30 43-0 Fax: +43-(0)1-890 30 43-15 Tel: +49-69-710 455 512 Fax: +49-69-710 455 450 Email: [email protected] www.sec-consult.com Email: [email protected] www.sec-consult.com © 2010 SEC Consult Unternehmensberatung GmbH - All rights reserved