CASE STUDY SICHERES ONLINEBANKING

Ähnliche Dokumente
Aktuelle Sicherheitsprobleme im Internet: Angriffe auf Web-Applikationen

Aktuelle Sicherheitsprobleme im Internet: Angriffe auf Web-Applikationen

Hacker-Methoden in der IT- Sicherheitsausbildung. Dr. Martin Mink

PHP-5-Zertifizierung. Block 12 Security.

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

Sicherheit Web basierter Anwendungen

Sicherheit in Webanwendungen CrossSite, Session und SQL

Schwachstellen in Web- Applikationen: Was steckt dahinter und wie nutzt man sie aus?

Sicherheit von Webapplikationen Sichere Web-Anwendungen

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

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

Aktuelle Bedrohungen im Internet

Aktuelle Sicherheitsprobleme im Internet

Welche Gefahren gehen vom Firmenauftritt im Internet aus?

Absicherung von Web-Anwendungen in der Praxis Highlights aus den OWASP TOP 10

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

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

Secure Coding & Live Hacking von Webapplikationen. Conect Informunity

Angreifbarkeit von Webapplikationen

Hacker-Tool Browser von der Webanwendung zu den Kronjuwelen

«/IE Cache & Cookies» Umfrage startet nicht?

Schutz des Online-Banking-Browsers

XSS for fun and profit

Live Hacking auf eine Citrix Umgebung

Web Application Security

Wo ist mein Geld? Identitätsmissbrauch im Online-Banking. Christoph Sorge Universität des Saarlandes juris-stiftungsprofessur für Rechtsinformatik

Netzwerksicherheit Übung 9 Websicherheit

Einführung in Web-Security

HOLIDAY-FERIENWOHNUNGEN.COM Anleitung zur Aktivierung von Java Script und Informationen über Cookies


Compass E-Lab Remote Security Lab 19. November Hacking-Lab Glärnischstrasse 7 Postfach 1671 CH-8640 Rapperswil

Schwachstellenanalyse 2013

Schwachstellenanalyse 2012

APEX Datenverwaltung Wo sind die Daten gerade? Dr. Gudrun Pabst

Schönes neues Internet

SQL-Injection. Seite 1 / 16

losgeht s

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

When your browser turns against you Stealing local files

V10 I, Teil 2: Web Application Security

Datenbanken und Netzanbindung

Ein Best-of-Konzept für Sicherheitsanalysen von Webanwendungen

IHK: Web-Hacking-Demo

Warum werden täglich tausende von Webseiten gehackt?

am Beispiel - SQL Injection

Money for Nothing... and Bits4free

Dieses Dokument soll dem Administrator helfen, die ENiQ-Software als Client auf dem Zielrechner zu installieren und zu konfigurieren.

am Beispiel - SQL Injection

Hacking-Lab Online Hack&Learn 9. December 2008

Übungsblatt 2: Kommunikation und XSS

Web Hacking - Angriffe und Abwehr

Informationssicherheit und Datenschutz

Security-Webinar. September Dr. Christopher Kunz, filoo GmbH

Onlinebanking Risiken, Probleme, Lösungen (technischer Teil) Christoph Sorge Universität des Saarlandes juris-stiftungsprofessur für Rechtsinformatik

Typo3 - Schutz und Sicherheit

Sicherheit in Webanwendungen

HACK THAT WEBSITE! WEB SECURITY IM SELBSTVERSUCH

Ruby on Rails Sicherheit. Heiko Webers

Paper: Automated Discovery of Parameter Pollution Vulnerabilities in Web Applications

HACK THAT WEBSITE! WEB SECURITY IM SELBSTVERSUCH

1. Admin Bereich Assessment Übersicht Erstellen eines neuen Benutzers Assessment Bereich... 9

Digitale Identität. Candid Wüest Threat Researcher Symantec Switzerland

Praktikum Anwendungssicherheit Hochschule der Medien Stuttgart. Protokoll. III: Eingri in die Programmlogik

Inhaltsverzeichnis. Open-Xchange Authentication & Sessionhandling

ESA SECURITY MANAGER. Whitepaper zur Dokumentation der Funktionsweise

Datenbank-basierte Webserver

Gefahr durch Cookies. Antonio Kulhanek. Security Consultant Dipl. Techniker HF, Kommunikationstechnik MCSE, ITIL Foundation

php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick Parameterübergabe...

Programmieren 2 (Prof. Hasbargen) Klausur

Anleitung: Notebook für den Betrieb in der DHBW einrichten und nutzen

Wie funktioniert das WWW? Sicher im WWW

2.3 - Das Verwaltungsmodul moveon installieren - SQL-Version

Webapplikations - Audit

Baustein Webanwendungen. Stephan Klein, Jan Seebens

Einkaufsportal von Gestamp Automoción Technische Anforderungen an den Lieferanten

Aktuelle Angriffstechniken. Steffen Tröscher cirosec GmbH, Heilbronn

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

Browsereinstellungen Geobasisdaten online

Outlook Exchange 2003 Mailbox manuelle Konfiguration:

IT-Sicherheit auf dem Prüfstand Penetrationstest

Multivariate Tests mit Google Analytics

HACK YOUR OWN WEBSITE! WEB SECURITY IM SELBSTVERSUCH. Stefan

Perl-Praxis. CGI-Skripte. Madis Rumming, Jan Krüger.

MySQL, Java und einiges mehr

Betroffene Produkte: Alle Versionen von Oracle Forms (3.0-10g, C/S und Web), Oracle Clinical, Oracle Developer Suite

Home-Router als Einfallstor ins Firmennetzwerk?

Session Management und Cookies

TimeMachine. Installation und Konfiguration. Version 1.4. Stand Dokument: install.odt. Berger EDV Service Tulbeckstr.

AKTUELLE VERBREITUNG VON HTTP STRICT TRANSPORT SECURITY (HSTS)


Nutzung von REST Clients für Allyouneed Marktplatz

Grundlegende Informationen zur Einrichtung des SSLVPN beim DSR-1000N/DSR-500N(FW 1.03B27).

Sicherheit in Rich Internet Applications

Abbildung 6-8: Abfolge beim doppelten Abschicken von Formularen

Anleitung zur Installation von VSP-Client- Zertifikaten in Browsern

Reporting Lösungen für APEX wähle Deine Waffen weise

Advanced Web Hacking. Matthias Luft Security Research

PHP-(Un-)Sicherheit. Hacker-Seminar Herbstsemester 2006 Laboratory for Dependable Distributed Systems Universität Mannheim.

S7: Java als Sicherheitsrisiko security-zone Renato Ettisberger

Transkript:

CASE STUDY SICHERES ONLINEBANKING Spätestens seit den Enthüllungen von Edward Snowden ist IT-Sicherheit ein nicht nur in den Medien intensiv diskutiertes Thema. Auch die Bundesregierung will mit dem in Kraft getretenen IT-Sicherheitsgesetz eine Verbesserung des Schutzes der Wirtschaft und der Daten der Bürger erreichen. Dabei führen nicht nur die Aktivitäten von Geheimdiensten, sondern in erster Linie die mit zunehmender Professionalisierung ausgeführten Angriffe Krimineller zu einer ernstzunehmenden Verunsicherung der Verbraucher und Kunden. Speziell im Fall von Bankgeschäften und allgemein bei Bezahlvorgängen aller Art drohen sowohl den Kunden und Nutzern, als auch den Anbietern wie Banken, Webshops oder Dienstleistern durch Cyberangriffe direkte finanzielle Schäden. Darüber hinaus führen erfolgreiche Angriffe oft zu einer erheblichen Image-Schädigung des betroffenen Anbieters. Der hier vorgestellte Projektbericht stellt keine allgemein gültige Handlungsanweisung dar, sondern basiert auf den im Projekt gesammelten Erfahrungen.

Wirksamer Schutz gegen vielfältige Bedrohungen Gut zwei von drei Internetnutzern (68 Prozent) in Deutschland ab 14 Jahren setzen auf Online-Banking. Das entspricht 37 Millionen Bundesbürgern. Allein im Jahr 2014 haben Experten mehr als 145 Millionen Internetadressen identifiziert, über die Schadsoftware heruntergeladen werden konnte. Diese heimlichen Downloads, auch»driveby-downloads«genannt, gehören aktuell zu den größten IT-Bedrohungen, da sich die Viren rasant verbreiten (Quelle: BITKOM). Es ist daher inzwischen unverzichtbar und für Betreiber kritischer Infrastrukturen zum Teil zwingend vorgeschrieben, dass einerseits die Sicherheitsvorgaben für Aufbau, Konfiguration und Betrieb solcher Sys teme eingehalten werden müssen und auch durch unabhängige Prüfungen nachzuweisen sind. Andererseits muss die Wirksamkeit der Sicherheitsmaß nah men auch durch simulierte Angriffe, so ge nannte Penetra tionstests nachgewiesen werden. In unserem Praxisbeispiel galt es, ein zentrales Bankensystem auf die Wirksamkeit und Robustheit seiner Sicher heits maßnah men zu überprüfen. Bei dem System handelt es sich um eine klas sische Webanwendung mit [3]-Schicht-Architek tur, also einem Webfrontend, einer Anwendungsschicht und einer Datenbank, die untersucht werden sollte. Bei der durchzuführenden Prüfung war nachzuweisen, dass es auch mit verschiedenen Angriffsmethoden nicht gelingt, die Sicherheitsmaßnahmen auszuhebeln und z. B. Zugriff auf die in der Datenbank gespeicherten Daten zu erlangen. Basierend auf den Empfehlungen des OWASP (1) (Open Web Application Security Project) sollte die Anwendung auf folgende Schwachstellen untersucht werden. 1 SQL Injection 2 Fehler in Authentifizierung und Session-Management 3 Cross-Site Scripting (XSS) 4 Unsichere direkte Objektreferenzen 5 Sicherheitsrelevante Fehlkonfiguration 6 Verlust der Vertraulichkeit sensibler Daten 7 Fehlerhafte Autorisierung auf Anwendungsebene 8 Cross-Site Request Forgery (CSRF) 9 Verwendung von Komponenten mit bekannten Schwachstellen 10 Ungeprüfte Um- und Weiterleitungen Im Projekt stellte sich heraus, dass die Hauptangriffspunkte Nummer 1 und 3 sind. Die restlichen Punkte auf obiger Liste waren nicht relevant hinsichtlich des Anwendungsbereichs oder rückten außerhalb des Geltungsbereichs. (1) http://www.owasp.org (2) https://www.owasp.org/images/4/42/owasp_top_10_2013_de_version_1_0.pdf

Intelligente Tool-Auswahl passend zu den Kundenanforderungen Zunächst wurde eine Toolstudie durchgeführt, um die am Markt gängigen Werkzeuge für Penetrationstests auf ihre Anwendbarkeit auf die IT-Landschaft des Kunden zu prüfen. Aus dem großen Portfolio von Werkzeugen für Penetrationstests wurden folgende Tools ausgewählt: XSS-me (http://labs.securitycompass.com/ exploit-me/xss-me) SQL-Inject-me (https://labs.securitycompass.com/ exploit-me/sql-inject-me/) Hinsichtlich der finalen Umsetzungen wurden die beiden Tools XSS-me und SQL- Inject-me genutzt, da diese die Anforderungen an die Sicherheitsrichtlinien des Pene trationstests hinreichend erfüllten. Für die anderen beiden Tools bestand kein notwendiger Bedarf, jedoch könnten diese zu einem beliebig späteren Zeitpunkt hin zugezogen werden. Ein Kompendium für derzeit gängige SQL-Injection und XSS liefert OWASP. Dies bildete die Basis für unsere Cyberattacken und lieferte die Vorlage für die Angriffsszenarien. Vorbereitung und Durchführung des Penetrationstests In unserem Beispiel wird der Zahlungsverkehr per Webclient auf gängigen Browsern überwacht. Dahingehend erfolgte die Durch führung der verschiedenen Angriffe auf gängigen Webclients (Browser) (3). Die aufgelisteten Tools, welche in vorigem Kapitel besprochen wurden, lassen sich als einfache Add-Ons für die Browser installieren. Abbildung 1 zeigt die beiden installierten Add-Ons auf dem Mozilla Firefox. Abbildung 1: Add-Ons auf Mozilla Firefox (3) Durchführung auf Firefox 38 ESR und Firefox 40

Unter Einstellungen ist es für beide Add-Ons möglich, die Injection Strings bzw. Optionen anzupassen, siehe Abbildung 2 und 3. Abbildung 2: SQL Injection Strings (SQL Inject ME) Abbildung 3: XSS Strings (XSS ME)

Die Durchführung der Tests geschah dabei folgendermaßen (4) : 1 Öffnen des Browsers und Aufruf der Applikation 2 Öffnen der spezifischen Maske (URL) im Browser (siehe Abbildung 4) Abbildung 4: Start des Add-Ons im Browser 3 Öffnen des Add-Ons im Browser 4 Auswählen der Injections (Angriffe) aus der definierten Liste des Add-Ons (4) Aus Datenschutzgründen wird das Beispiel exemplarisch auf http://www.proficom.de/ durchgeführt.

5 Auswählen der Objekte auf der Maske, auf denen die Injections angewendet werden (siehe Abbildung 5 und 6) Eingabefelder (Login, Suchfelder ) Buttons Grafiken Tabellen uvm. Abbildung 5: Auswahl der SQL-Injections und Ojekte auf der URL (SQL Inject ME) Abbildung 6: Auswahl der XSS-Attacken und Objekte auf der URL (XSS ME)

6 Durchführen der Injections bzw. XSS Abbildung 7: Durchführen eines XSS 7 Analyse der Resultate Die Ergebnisanalyse erfolgt zum einen direkt im Browser (siehe Abbildung 8) oder auch im Editor mit den erstellten Ergebnisfiles (Tools -> XSS ME -> Options and click»show passed results in final report«). Dies ist für SQL Inject Me analog. Abbildung 8: Exemplarisches Ergebnis für eine XSS-Attacke (XSS ME)

KOMPROMITTIERUNG MITTELS SQL INJECTION Exemplarisch soll die Prüfung auf SQL-Injections (5) am bekannten Beispiel»1 = 1«erklärt werden. Hierbei denken wir uns eine klassische Login-Maske, an der sich der Nutzer einloggen kann. Dazu werden im Allgemeinen die Daten»Username«und»Password«eingegeben, und anschliessend der»ok«-button geklickt. Folgendes SQL-Statement könnte dabei in der Applikation enthalten sein, welches die User information des Eingebenden ausliest. statement = SELECT * FROM users WHERE name = + username + ; Für eine Eingabe mit validem Nutzer liefert diese Abfrage genau ein erwartetes Ergebnis, nämlich die Informationen zum abgefragten Nutzer. Sollte der Nutzer nicht existieren, wird kein Ergebnis zurückgegeben. Bei SQL-Injections versucht nun ein Angreifer die Eingangsdaten so zu manipulieren, dass er mit falschen bzw. nicht korrekten Zugangsdaten dennoch Zugang erhält. Im Beispiel geschieht dies, wenn die Nutzereingabe ungefiltert auf»escape Characters«direkt in das SQL-Statement weitergegeben wird. Damit können potentiell gefährliche Eingaben getätigt werden, welche dem Eindringling viel mehr gestatten, als eigentlich vorgesehen. Beispielsweise mit dem Setzen der»username«-variable zu: OR 1 = 1 Oder indem man den Rest der Abfrage einfach auskommentiert. OR 1 = 1 -- OR 1 = 1 ({ OR 1 = 1 /* Das Resultat einer solchen Eingabe ist auf Datenbankebene dann: SELECT * FROM users WHERE name = or 1 = 1 ; SELECT * FROM users WHERE name = or 1 = 1 -- ; Wird dieses Stück Code während einer Authentifizierung verwendet, so wird die WHERE-Klausel quasi außer Kraft gesetzt, da immer ein valider Username zurückgegeben und der Ausdruck»1 = 1«immer wahr ist!

KOMPROMITTIERUNG MITTELS CROSS SITE SCRIPTING (XSS) Cross-Site-Scripting (6) ist eine Variante der HTML Injection. Cross-Site-Scripting tritt dann auf, wenn eine Webanwendung Daten annimmt, die von einem Nutzer stammen, und diese Daten dann an einen Browser weitersendet, ohne den Inhalt zu überprüfen. Damit ist es einem Angreifer möglich, auch Skripte indirekt an den Browser des Opfers zu senden und damit Schadcode auf der Seite des Clients auszuführen. Es gibt drei grundlegende Arten von Cross-Site-Scripting-Angriffen: reflektierte, persistente und DOM-basierte. Diese werden im Folgenden erläutert. In den Beispielen wird zur Veranschaulichung der einfache JavaScript-Code alert( XSS ); verwendet, der mithilfe des Script-Elements in ein HTML-Dokument eingebunden wird: <script type= text/javascript >alert( XSS );</script> Dieser JavaScript-Code öffnet einen Alarm-Dialog mit dem Text»XSS«und einem»ok«-button. Reflektiert oder nicht-persistent Das nicht-persistente (non-persistent) oder reflektierte (reflected) Cross-Site-Scripting ist ein Angriff, bei dem eine Benutzereingabe direkt vom Server wieder zurückgesendet wird. Enthält diese Eingabe Skriptcode, der vom Browser des Benutzers anschließend interpretiert wird, kann dort Schadcode ausgeführt werden. Hierbei wird ausgenutzt, dass dynamisch generierte Webseiten ihren Inhalt oft an über URL (HTTP-GET-Methode) oder Formulare (HTTP-POST-Methode) übergebene Eingabewerte anpassen. Nicht-persistent heißt dieser Typ, da der Schadcode nur temporär bei der jeweiligen Generierung der Webseite eingeschleust, nicht aber gespeichert wird. Wird die Seite danach ohne die manipulierte URL oder das manipulierte Formular erneut aufgerufen, ist der Schadcode nicht mehr enthalten. Persistent oder beständig Persistentes (persistent) oder beständiges (stored) Cross-Site-Scripting unterscheidet sich vom reflektierten XSS prinzipiell nur dadurch, dass der Schadcode auf dem Webserver gespeichert wird, wodurch er bei jeder Anfrage ausgeliefert wird. Dies ist bei jeder Webanwendung möglich, die Benutzereingaben serverseitig speichert und diese später wieder ausliefert, solange keine Prüfung der Benutzereingaben bzw. eine geeignete Kodierung der Ausgabe stattfindet. DOM-basiert oder lokal Diese dritte Art des Angriffs wird DOM-basiertes (Dom Injection) oder lokales (local) Cross-Site-Scripting genannt. Im Gegensatz zu den oben genannten gängigen XSS-Varianten ist hier die Webapplikation auf dem Server gar nicht beteiligt. Somit sind auch an sich statische HTML-Seiten mit JavaScript-Unterstützung anfällig für diesen Angriff. Der Schadcode wird zur Ausführung direkt an ein clientseitiges Skript übergeben. Dies kann beispielsweise ein JavaScript sein, das einen URL-Argumentwert zur Ausgabe von Daten verwendet, ohne diesen ausreichend zu prüfen. Ein solcher Angriff bedarf des gezielten Aufrufs einer kompromittierten URL. (6) https://de.wikipedia.org/wiki/cross-site-scripting