Sicherheit in Webanwendungen „CrossSite“, „Session“ und „SQL“ Angriffstechniken und Abwehrmaßnahmen Mario Klump.

Slides:



Advertisements
Ähnliche Präsentationen
DI Christian Donner cd (at) donners.com
Advertisements

SQL Injection – Funktionsweise und Gegenmaßnahmen
Be.as WEB Technologie
.
Aufbau des Internets Überblick Prof. Dr. T. Hildebrandt
Basis-Architekturen für Web-Anwendungen
Content Management Systems
Seite 1Maria, Philipp, Herbert Seite 1 Fitnessplaner Ziele: >Fitnessplaner für Onlinebetrieb >Registrierung >individuelle Trainingsplanerstellung.
FH-Hof Servlets Richard Göbel. FH-Hof Konzept Servlets werden auf der Server-Seite durch ein Formular aufgerufen werten die Eingaben aus einem Formular.
Colibi Bibliothekssystem der Computerlinguistik. Einführung Motivation Was braucht Colibi? Software Datenbankdesign.
Datenbankanbindung mit ASP Wilhelm-Schickard-Schule Tübingen
Oracle PL/SQL Server Pages (PSP). © Prof. T. Kudraß, HTWK Leipzig Grundidee: PSP – Internet-Seiten mit dynamischer Präsentation von Inhalten durch Einsatz.
Spezielle Aspekte der Anbindung von Datenbanken im Web.
Text-Retrieval mit Oracle Vortrag von Andreas Mück & David Diestel.
Technik Gestaltung Navigation Daten. Übersicht Client Webbrowser InternetServer.
Zukunft des Webs? Dennis Beer Christian Blinde
Erhard Künzel für Info 9. Klasse: digitale-schule-bayern.de © Erhard Künzel.
Einführung MySQL mit PHP
Seite Common Gateway Interface. Konzepte. Übersicht 1Einleitung 2Was ist CGI? 3Wozu wird CGI verwendet? 4Geschichtlicher Überblick 5Grundvoraussetzungen.
PHP Pakete und Beispiele Webengineering Robert Lemke.
FH-Hof HTML - Einführung Richard Göbel. FH-Hof Komponenten des World Wide Webs WWW Browser HyperText Transfer Protocol (HTTP) via Internet WWW Server.
YouTube5 .0 Projektpräsentation
... und alles was dazugehört
Welche Funktion hat die php.ini? -Beinhaltet wichtige Einstellungen für PHP. Genannt seien hier u.a. der Speicherort von Cookies, Parameter der Kompilierung,
Internet-Datenbanken und ASP Eine Einführung von J.Sommer & A.Vortisch.
SQL PHP und MySQL Referat von Katharina Stracke und Carina Berning
Wir bauen uns eine Webapplikation!
Grundlagen der sicheren PHP Programmierung Parametermanipulationen und Injektionslücken Stefan Esser Hardened-PHP Project.
Gegenstand EDV Thema: Informative Webseiten
Client-Server Modell Advanced IT Basics Nicolas Frings.
PHP und MYSQL am Organisatorisches Der komplette Kurs im Schnelldurchgang Bewertung von wichtig und unwichtig Historisch Kulturwissenschaftliche.
Grundlagen: Client-Server-Modell
Clientseitig Session IDs Erweiterungen wie NoScript Cookies verbieten Serverseitig Tokens HTML Entities verwenden 1.
Folgendes kann missbraucht werden: formulare unverschlüsselte login-informationen ungeschützte includes SQL-injection reto ambühler
Daniel Franke Tim Benedict Jagla Matthias Thimm
Wie man Webanwendungen vor Angriffen schützen kann
Freiwillige Feuerwehr der Stadt Perg
Einführung in PHP.
Einführung in PHP 5.
Webseiten mit PHP, SQL, XML und Webservices Anhand praktischer Beispiele.
Hacking InfoPoint Jörg Wüthrich Infopoint - Hacking - Jörg Wüthrich 2/26 Inhalte Rund um das Thema Hacking Angriffs-Techniken Session.
Mag. Andreas Starzer weloveIT – EDV Dienstleistungen
Dedizierte Systeme Typo3 Installation Dedizierte Systeme – Typo3 Installation – Christoph Stollwerk IT Zertifikat der Philosophischen Fakultät WS 2008/2009.
HTTP IT-Zertifikat Universität zu Köln Allgemeine Technologien II
Client-Server-Modell
Daniel Franke Tim Benedict Jagla Matthias Thimm.
W W W - World Wide Web. Das World Wide Web kommt aus dem Englischen und bedeutet ‚Weltweites Netz‘ ist ein über das Internet abrufbares Hypertext-System.
PHP PHP ( „PHP Hypertext Preprocessor") ist eine Skriptsprache
->Prinzip ->Systeme ->Peer – to – Peer
Quelle: xkcd.com SQL Injections.
Java Server Pages Technologie zur Erzeugung dynamischer Webseiten basierend auf Java-Servlets Blockseminar Wintersemester 2001/2002Jochen Pfeiffer Seite.
Trigger-abhängige Client Interaktionen (bezüglich Oracle8i)
Cookies Kekse? Internet Gefahr?.
Internet - Grundbegriffe Unterlagen zum Kurs "Wie erstelle ich eine Homepage?"
PHPmyadmin Maya Kindler 6c.
Lisa Huber DHBW Mannheim
1 Servlets Stephan Baldes. 2 Was ist ein Servlet? S E R V L E T = Eine auf Java-Technologie basierte Web-Komponente, die von einem Container.
Schutz vor Viren und Würmern Von David und Michael.
242/102/49 0/51/59 181/172/166 Primary colors 248/152/29 PMS 172 PMS 137 PMS 546 PMS /206/ /227/ /129/123 Secondary colors 114/181/204.
Eine komplexe Netzanwendung Webserver und Datenbankserver im Netzwerk in einer Anwendung einrichten.
Rechen- und Kommunikationszentrum (RZ) Sicherheitsorientierte Webentwicklung am Beispiel der Matse-Dienste Jan-Frederic Janssen.
Mailserver Kira Skrodzki Definition 2 Ein Mail-Server ist ein Server, der Nachrichten und Mitteilungen empfangen, senden, zwischenspeichern.
Allgemeine Technologien 2
• Projektdialog paralleler Plagiatschutz- projekte
Systeme II 6. Die Anwendungsschicht
Der Schulbuchhandel Das Geschäftsmodell im Umbruch
Create Table, Rechte und Rollen
Ein kurzer Einblick in das Thema Tracking
Datenbanken
 Präsentation transkript:

Sicherheit in Webanwendungen „CrossSite“, „Session“ und „SQL“ Angriffstechniken und Abwehrmaßnahmen Mario Klump

Die „Cross-Site“-Familie

Die Cross-Site-Arten ● Cross-Site-Scripting (CSS/XSS) ● Cross-Site-Request-Forgery (CSRF/XSRF)

Cross-Site-Scripting (CSS/XSS) Allgemeines ● Code (i.d.R. JavaScript) wird in fremde Website eingeschleust, um z.B. Daten auszuspähen ● auch als „HTML-Injection“ bezeichnet. ● Häufig werden per JavaScript Daten ausgelesen und anschliessend zum „bösen“ Server geschickt

Cross-Site-Scripting (CSS/XSS) Angrifftechniken XSS-Anriff auf ein anfälliges Gästebucheintrag: ● Beim Absenden wird Eintrag in Datenbank gespeichert. ● Bei der Ausgabe des Gästebuches wird „Max Mustermann schrieb: Hallo Leute boese(); “ im HTML- Code ausgegeben. ● Der HTML-Code wird ● interpretiert und das ● JavaScript ausgeführt.

Cross-Site-Scripting (CSS/XSS) Abwehrmaßnahmen ● Um XSS-Angriffe zu verhindern, sollten alle Daten, die ausgegeben werden, vor der Ausgabe maskiert werden. ● Der auszugebene Text („ boese(); “) sieht nach der Maskierung wie folgt aus: „<script>boese();</script>“ => Ausgabe wird nicht mehr als HTML interpetiert ● Einsetzen eine Web Application Firewall (WAF) Diese kann z.B. prüfen, ob ein ausgerufenes Formular die richtige Anzahl an Parametern hat und die Anfrage in einem solchen Fall blockieren.

Cross-Site-Request-Forgery (CSRF) Allgemeines ● Code (i.d.R. JavaScript) wird in fremde Website eingeschleust, um beim Benutzer ungewollte Aktionen im Hintergrund auszuführen. ● Dieser Angriff nutzt eine einfache HTTP-Anfrage.

Cross-Site-Request-Forgery (CSRF) Angrifftechniken ● CSRF-Angriff auf ein anfälliges Gästebuch: ● Beim Aufrufen der Website wird eine HTTP-Anfrage an „ 3456&zu=789456“ geschickt. ● Falls der Benutzer bei der ● Bank eingeloggt ist, wird ● die Überweisung ● ausgeführt.

Cross-Site-Request-Forgery (CSRF) Abwehrmaßnahmen (1) ● Um XSRF-Anriffe zu verhindern, sollte man das Einbinden externer Ressourcen (z.B. Bilder) unterbinden. ● Falls Einbindung externer Ressourcen notwendig ist, diese auf dem Server zwischenspeichern. ● Alle Ausgaben vor dem Ausgaben maskieren. ● Überprüfung des MIME-Types (verringert nur das Risiko)

Cross-Site-Request-Forgery (CSRF) Abwehrmaßnahmen (2) ● Überprüfung des Referrers auf Server-Seite ● Auf Website (z.B. Website der Bank) sog. „token“ verwenden ● Die sog. „Angemeldet bleiben“-Funktionen vermeiden.

Angriffe auf Sessions

Was sind Sessions? ● HTTP ist ein verbindungsloses Protokoll Es gibt keine direkte Verbindung zwischen Client und Server. ● Server legt für jeden Client eine Session (Sitzung) an und generiert eine eindeutige ID (die Session-ID) ● Client weist sich mit Session-ID beim Server aus ● Session-ID kann per POST oder GET übertragen oder in einem Cookie gespeichert und übertragen werden ● Jeder Besitzer der Session-ID kann sich beim Server als (einen anderen) Client „ausweisen“. ● Und genau hier setzen die Angriffe auf Sessions an…

Angriffsarten auf Session ● Session-Hijacking ● Session-Fixation

Session-Hijacking Allgemeines ● Session-Hijacking beschreibt das „Klauen“ einer Session-ID eines anderen Benutzers. ● Dies kann über Sniffing (Abhören des Datenverkehrs) oder Auslesen der Session-ID durch z.B. CrossSite-Scripting passieren.

Session-Hijacking Angrifftechniken ● Wenn die Zielseite auf XSS anfällig ist und die Session-ID in einem Cookie gespeichert wird, könnte man über einen XSS- Angriff das Cookie auslesen. ● In dem Javascript wird ein neues Bild geladen und das Cookie der Website als GET-Parameter an das serverseitige Skript übertragen. ● Auf dem Server kann dies ● dann z.B. zwischen- ● gespeichert und vom ● Angreifer für eine ● Übernahme der Sitzung ● verwendet werden.

Session-Fixation Allgemeines ● Ebenfalls um eine Angriffstechnik, um die Session (Sitzung) eines anderen Anwenders zu übernehmen. ● Session-Hijacking und Session-Fixation unterscheiden sich jedoch im Ursprung der Session. ● Bei der Session-Fixation wird die Sitzung vom Angreifer erzeugt und versucht, dem Anwender die Session-ID unterzujubeln. ● Beim Session-Hijacking wird die Session vom Benutzer gestaret und die Session-ID vom Angreifer gestohlen.

Session-Fixation Angrifftechniken ● Wenn die Session-ID per GET übertragen könnte der Angreifer dem Anwender eine URL unterjubeln. Z.B.: ● Somit ist der Angreifer schonmal im Besitz der Session-ID. ● Wenn sich der Anwender nun mit der Session einloggt, kann sich der Angreifer sehr einfach in die Sitzung einklinken.

Session-Hijacking & Session-Fixation Abwehrmaßnahmen ● Die Session an z.B. die IP-Adresse des Benutzers binden. ● Ebenfalls sollte eine verschlüsselte Verbindung (über HTTPS) eingesetzt werden, sodass auch die Session-ID über diesen sicheren Kanal übertragen wird. Somit wird das Auslesen des Netzwerkverkehrs erschwert.

SQL-Injection

SQL-Injection Allgemeines ● Bei der SQL-Injection wird eine SQL-Abfrage, die auf dem Server ausgeführt wird, manipuliert. ● Durch die Manipulation sollten meistens Daten (z.B. Kennwörter) ausgelesen oder Daten manipuliert werden. ● SQL-Injection funktioniert nur, wenn Daten vom Client (z.B. einem GET-Parameter) in einer SQL-Abfrage verwendet werden.

SQL-Injection Angrifftechniken SQL-Injection durch GET-Parameter-Manipulation: ● ● Auf der Serverseite wird folgende SQL-Abfrage durchgeführt (Beispiel in PHP): „SELECT * FROM users WHERE id_users = „.$_GET[‚user_id‘]; => SELECT * FROM users WHERE id_users = 1338 Nach Manipulation: ● TABLE users => SELECT * FROM users WHERE id_users = 1338;DROP TABLE users Resultat: Daten vom Benutzer 1338 werden abgefragt und anschliessend wird die Tabelle „users“ gelöscht

SQL-Injection Abwehrmaßnahmen ● Alle Parameter, die in einer SQL-Anweisung verwendet werden, sollten maskiert werden. ● Prüfen, ob Parameter der richtige Datentyp ist. (User-ID ist Integer-Wert) ● Minimale Privilegien für Datenbankbenutzer festlegen (z.B. nur SELECT-Abfagen erlauben) ● In Webanwendung Prepared-Statements verwenden ● Einsatz einer Database-Firewall

Vielen Dank für Eure Aufmerksamkeit!