v10 i, teil 2: web application security - uni koblenz-landauaggrimm/teaching/2015ss/it... · 2015....

14
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

Upload: others

Post on 29-Sep-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: V10 I, Teil 2: Web Application Security - Uni Koblenz-Landauaggrimm/teaching/2015ss/IT... · 2015. 7. 9. · 1 IT-Risk-Management V10 I, Teil 2: Web Application Security Tim Wambach,

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

Page 2: V10 I, Teil 2: Web Application Security - Uni Koblenz-Landauaggrimm/teaching/2015ss/IT... · 2015. 7. 9. · 1 IT-Risk-Management V10 I, Teil 2: Web Application Security Tim Wambach,

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

Page 3: V10 I, Teil 2: Web Application Security - Uni Koblenz-Landauaggrimm/teaching/2015ss/IT... · 2015. 7. 9. · 1 IT-Risk-Management V10 I, Teil 2: Web Application Security Tim Wambach,

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

Page 4: V10 I, Teil 2: Web Application Security - Uni Koblenz-Landauaggrimm/teaching/2015ss/IT... · 2015. 7. 9. · 1 IT-Risk-Management V10 I, Teil 2: Web Application Security Tim Wambach,

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

Page 5: V10 I, Teil 2: Web Application Security - Uni Koblenz-Landauaggrimm/teaching/2015ss/IT... · 2015. 7. 9. · 1 IT-Risk-Management V10 I, Teil 2: Web Application Security Tim Wambach,

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

Page 6: V10 I, Teil 2: Web Application Security - Uni Koblenz-Landauaggrimm/teaching/2015ss/IT... · 2015. 7. 9. · 1 IT-Risk-Management V10 I, Teil 2: Web Application Security Tim Wambach,

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

Page 7: V10 I, Teil 2: Web Application Security - Uni Koblenz-Landauaggrimm/teaching/2015ss/IT... · 2015. 7. 9. · 1 IT-Risk-Management V10 I, Teil 2: Web Application Security Tim Wambach,

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

Page 8: V10 I, Teil 2: Web Application Security - Uni Koblenz-Landauaggrimm/teaching/2015ss/IT... · 2015. 7. 9. · 1 IT-Risk-Management V10 I, Teil 2: Web Application Security Tim Wambach,

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

Page 9: V10 I, Teil 2: Web Application Security - Uni Koblenz-Landauaggrimm/teaching/2015ss/IT... · 2015. 7. 9. · 1 IT-Risk-Management V10 I, Teil 2: Web Application Security Tim Wambach,

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

Page 10: V10 I, Teil 2: Web Application Security - Uni Koblenz-Landauaggrimm/teaching/2015ss/IT... · 2015. 7. 9. · 1 IT-Risk-Management V10 I, Teil 2: Web Application Security Tim Wambach,

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

Page 11: V10 I, Teil 2: Web Application Security - Uni Koblenz-Landauaggrimm/teaching/2015ss/IT... · 2015. 7. 9. · 1 IT-Risk-Management V10 I, Teil 2: Web Application Security Tim Wambach,

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

Page 12: V10 I, Teil 2: Web Application Security - Uni Koblenz-Landauaggrimm/teaching/2015ss/IT... · 2015. 7. 9. · 1 IT-Risk-Management V10 I, Teil 2: Web Application Security Tim Wambach,

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

Page 13: V10 I, Teil 2: Web Application Security - Uni Koblenz-Landauaggrimm/teaching/2015ss/IT... · 2015. 7. 9. · 1 IT-Risk-Management V10 I, Teil 2: Web Application Security Tim Wambach,

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

Page 14: V10 I, Teil 2: Web Application Security - Uni Koblenz-Landauaggrimm/teaching/2015ss/IT... · 2015. 7. 9. · 1 IT-Risk-Management V10 I, Teil 2: Web Application Security Tim Wambach,

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