1
IT-Risk-Management
V10 I, Teil 2: Web Application Security
Tim Wambach, Universität Koblenz-Landau
Koblenz, 9.7.2015
Wambach in Grimm: IT-Risk-Management, 2015
2 / 27
Agenda
• Einleitung• HTTP• OWASP• Security Testing
• Beispiele für WebApp-Verwundbarkeiten• Command Injection• SQL Injection• Cross Site Scripting (XSS)• Cross Site Request Forgery (CSRF)
• Sonstige Verwundbarkeiten• Wichtige Links• Beispielfragen
Wambach in Grimm: IT-Risk-Management, 2015
2
3 / 27
HTTP - Hypertext Transfer Protocol
• HTTP einer der meistgenutzten Protokolle auf Applikationsebene
• Ständige Weiterentwicklung von IETF• Historie
• 1996 HTTP/1.0• 1999 HTTP/1.1• 2015 HTTP/2
• Wichtige Neuerungen in HTTP/2• Performancegewinn durch weitere Kompressionen• Zusammenfassen von Datengruppen über
eine Anfrage (z.B. Skripte, Bilder, etc.)
Wambach in Grimm: IT-Risk-Management, 2015
4 / 27
OWASP
„OWASP is an open communitydedicated to enabling organizations toconceive, develop, acquire, operate, andmaintain applications that can betrusted. All of the OWASP tools,documents, forums, and chapters arefree and open to anyone interested inimproving application security.”https://www.owasp.org/index.php/About_OWASP
Wambach in Grimm: IT-Risk-Management, 2015
3
5 / 27
OWASP – Top 10 (2013)
(1) Injection(2) Broken Authentication & Session Management(3) Cross-Site Scripting(4) Insecure Direct Object References(5) Security Misconfiguration(6) Sensitive Data Exposure(7) Missing Function Level Access Control(8) Cross-Site Request Forgery(9) Using Components with Known Vulnerabilites(10)Unvalidated Redirects and Forwards
https://www.owasp.org/index.php/Top_10_2013-Top_10
Wambach in Grimm: IT-Risk-Management, 2015
6 / 27
OWASP – Secure Coding Principles
• Minimize attack surface area• Principle of Defense in depth• Principle of Least privilege• Avoid security by obscurity• […]
https://www.owasp.org/index.php/Secure_Coding_Principles
Grose, Francis: “The Antiquities of England and Wales” (1783)
Wambach in Grimm: IT-Risk-Management, 2015
4
7 / 27
Security Testing
• Manuelles Penetration Testing
• Automatisiertes Penetration Testing
• Automatisierter Code Review
• Manueller Code Review
Black Box Testing
White Box Testing
Grey B
ox Testing
Wambach in Grimm: IT-Risk-Management, 2015
8 / 27
Security Testing
Scanner und Tools:• http://sectools.org/web-scanners.html• http://www.owasp.org/index.php/Phoenix/Tools
Wambach in Grimm: IT-Risk-Management, 2015
5
9 / 27
Security Testing – Verwundbare Applikationen
• DVWA = Damn Vulnerable Web Application, http://www.dvwa.co.uk
• OWASP WebGoat Projecthttps://www.owasp.org/index.php/Category:OWASP_WebGoat_Project
• Gruyere – Google Code Universityhttp://google-gruyere.appspot.com
Wambach in Grimm: IT-Risk-Management, 2015
10 / 27
Beispiele für WebApp-Verwundbarkeiten
• Command Injection• SQL Injection• Cross Site Scripting (XSS)• Cross Site Request Forgery (CSRF) (verkürzt)
Die folgenden Beispiele aus DVWAhttp://www.dvwa.co.uk/
Wambach in Grimm: IT-Risk-Management, 2015
6
11 / 27
Injection
Client
Server
1
SearchableText=test
3
2
Eingabe
Verarbeitung
Ausgabe
Zur Erinnerung:Ablauf der Verarbeitung von Eingaben auf Webseiten; hier: uni-koblenz-landau.de
Wambach in Grimm: IT-Risk-Management, 2015
12 / 27
Command Injection
1
2
3
Eingabe
Verarbeitung
Ausgabe
ip=google.de
Wambach in Grimm: IT-Risk-Management, 2015
7
13 / 27
Command Injection
2
<?phpif( isset( $_POST[ 'submit' ] ) ) {
$target = $_REQUEST[ 'ip' ];
$cmd = shell_exec ( 'ping ' . $target );
echo '<pre>' . $cmd. '</pre>' ; } ?>
ping 0 | echo %time%
0 | echo %time%
Verarbeitung
Wambach in Grimm: IT-Risk-Management, 2015
14 / 27
SQL Injection
1
23
id=1
Wambach in Grimm: IT-Risk-Management, 2015
8
15 / 27
SQL Injection
2
<?php
if(isset( $_GET[ 'Submit' ])){
$id = $_GET[ 'id' ];
$getid = "SELECT first_name, last_name FROMusers WHERE user_id = ' $id '" ;
$result = mysql_query ( $getid ) or die( '<pre>' .mysql_error () . '</pre>' );
[…]
%' or '0'='0
user_id = '%' or '0'='0'
Verarbeitung
Wambach in Grimm: IT-Risk-Management, 2015
16 / 27
Quelle: https://www.xkcd.com/327/
Wambach in Grimm: IT-Risk-Management, 2015
9
17 / 27
Schutzmaßnahmen vor Injection
• Kein Vertrauen in Benutzereingaben• stets Filterung („escapen“) durchführen• Beispiel in PHP:
• escapeshellarg() … zum escapen von Shell Befehlenhttp://php.net/manual/en/function.escapeshellarg.php
• mysqli_real_escape_string() … zum escapen von SQL Befehlenhttp://php.net/manual/en/mysqli.real-escape-string.php
• Verwendung von „Prepared Statements“http://php.net/manual/de/pdo.prepared-statements.php
• Auch dann keine absolute Sicherheithttp://www.heise.de/newsticker/meldung/Kritische-Lu ecken-in-PHP-geschlossen-2689960.html
Wambach in Grimm: IT-Risk-Management, 2015
18 / 27
Cross Site Scripting (XSS)
1
2
3
txtName=testmtxMessage=test
Wambach in Grimm: IT-Risk-Management, 2015
10
19 / 27
Cross Site Scripting (XSS)
Eigener Inhalt, z.B.:• Skript,• Weiterleitung,• <IFRAME>,• …
<script>alert('test');</script>
Wambach in Grimm: IT-Risk-Management, 2015
20 / 27
„Skript“ als Variable für
verschiedene Technologien
Cross Site Scripting (XSS)
1
Angreifer
Opfer
…platziert bösartiges Skript
4D
aten
wei
terg
abe
durc
h S
krip
t
Server
(indi
rekt
, var
iiert
)
Web-Applikation mit XSS-Schwachstelle
Wambach in Grimm: IT-Risk-Management, 2015
11
21 / 27
Quelle: http://www.heise.de/newsticker/meldung/l-f-XSS-ist-fuer-den-Bundestag-Neuland-2707813.html
Wambach in Grimm: IT-Risk-Management, 2015
22 / 27
Schutzmaßnahmen vor XSS
• Keine unreflektierte Wiedergabe von Benutzereingaben
• Eingaben bzgl. HTML Befehlszeichen prüfen• Insb. „<“ und „>“
• Inhaltsbezogene Eingabevalidierung• Beispiel PHP:
• htmlspecialchars()…wandelt spezielle Sonderzeichen umhttp://php.net/manual/de/function.htmlspecialchars. php
• htmlentities()… wandelt alle geeigneten Zeichen umhttp://php.net/manual/de/function.htmlentities.php
Wambach in Grimm: IT-Risk-Management, 2015
12
23 / 27
Generiert via z.B. JavaScript, IFRAME, HTML, etc.
Cross Site Request Forgery (CSRF)
Angreifer
Server
1
Server des Angreifers
Opfer
platziert bösartiges Skript
2
3
Durch Skript generierter Aufruf unter Verwendung einer bestehenden (alten) Sitzung
„Skript“ als Variable für
verschiedene Technologien
Kann auch ein legitimer Server mit
XSS-Verwundbarkeit sein
Applikation mit CSRF Verwundbarkeit
Wambach in Grimm: IT-Risk-Management, 2015
24 / 27
Schutzmaßnahmen vor CSRF
• Sitzungstoken (Page Token) muss geteilt werden• Teil1: Speicherung als Cookie• Teil2: Weitergabe durch GET/POST
• bei kritischen Transaktionen nur POST
• Timeout der Sitzung• Abhängig vom Einsatzzweck
• zwischen 10 Minuten und 2 Stunden im Regelfall
• Erneute Eingabe des Passwortes verlangen• z.B. bei kritischen Transaktionen
Wambach in Grimm: IT-Risk-Management, 2015
13
25 / 27
Sonstige Verwundbarkeiten
• Neben Secure Coding ist auch das Patchmanagement wichtig
• Beispiele aus 2014:• Heartbleed (April 2014)
Schwerwiegende Verwundbarkeit in OpenSSL
• Shellshock (Sept. 2014)Ausführung von Programmcode über den Webserver (CGI)
• Poodle (Okt. 2014)Designfehler in SSL 3.0
• Microsoft Schannel Schwachstelle (Nov. 2014)Remote Code Execution über Netzwerk
Wambach in Grimm: IT-Risk-Management, 2015
26 / 27
Wichtige Links
Infos• https://www.owasp.org• http://www.dvwa.co.uk• http://sectools.org• http://portswigger.net/burp• https://cve.mitre.orgSoftware• http://camstudio.org• http://www.metasploit.com
Wambach in Grimm: IT-Risk-Management, 2015
14
27 / 27
Beispielfragen
1. Nennen und erläutern Sie drei Bedrohungen aus den OWASP Top 10 2013.2. Was unterscheidet Blackbox von Whitebox Testing?3. Was unterscheidet Command-Injection von SQL-Injection?4. Welche Grundwerte* werden in welcher Weise bei einem SQL-Injection Angriff
verletzt? 5. Auf welche Art müssen Eingaben behandelt werden um SQL-Injection zu verhindern?6. Erläutern Sie, in welcher Weise Akteure bei einem XSS-Angriff betroffen sind.7. Welche Grundwerte* werden in welcher Weise bei einem XSS-Angriff verletzt?8. Auf welche Art müssen Eingaben behandelt werden um XSS-Angriffe zu verhindern?9. Nennen Sie 2 Schutzmaßnahmen bzgl. CSRF-Angriffen.
*Grundwerte = {Vertraulichkeit, Verfügbarkeit, Integrität, Authentizität}
Wambach in Grimm: IT-Risk-Management, 2015
Top Related