Web App Security Slides
-
Upload
christian-kdot -
Category
Documents
-
view
154 -
download
4
Transcript of Web App Security Slides
| FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller |
Hacker-Contest 10. Mai 0x7DB // Daniel Quanz & Max Zeller
10.02.2011 1
Thema: Web-‐App-‐(In)Security
| FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller |
Übersicht
Einleitung Web Technologien Analyse OWASP TOP 10 (The Open Web Applica=on Security Project) Demo
10.02.2011 2
| FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller |
EINLEITUNG
10.02.2011 3
| FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller | 10.02.2011 4
Übliche Web Applikationen
| FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller |
„This Site Is Secure“
10.02.2011 5
| FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller |
Hauptproblem
§ Benutzer können beliebige Eingaben machen – Client-‐Side Checks können einfach umgangen werden (input valida=on)
– Request Parameter, Cookies, HTTP Headers – Benutzer muss nicht Browser benutzen
• Viele Tools vorhanden – Secfox – Firefox Addon (Cookie Manipula=on ...) – telnet / hWp request (Request manipula=on) – WebScarab
10.02.2011 6
| FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller |
Benutzerzugriff limitieren
§ Authen=fzierung – Die Basis für jede sicher Web Anwendung, da sonst jeder Benutzer als Anonymous betrachtet werden muss
– Ist nur so sicher wie das schlechteste Passwort – Teilweise zu umgehen
§ Session-‐Management – Session Tokens – Reiden=fizieren mit Zugangsdaten
§ Access Control – ACL / Capabili=es / Role Based
10.02.2011 7
| FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller |
Input Handling (1)
§ Kein Benutzereingabe ist vertrauenswürdig § Unerwartete Eingaben um Verhalten zu provozieren, welches
nicht von den Developern vorgesehen war. – Input Valida=on
10.02.2011 8
| FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller |
Input Handling (2)
§ En_ernen von bekannten AWack-‐Strings (X-‐Site-‐Scrip=ng) – <script>
§ Umgehen mit – <scr<script>ipt> – <scr”ipt>
§ URL Encoding – %27
§ Umgehen mit – %%2727
10.02.2011 9
| FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller |
Attacker Handling
§ Error Handling / Logging – In Produk=v Systemen sollten niemlas system-‐generierte Fehlermeldung oder Debug-‐Informa>onen an den Endnutzer weitergegeben werden
§ Admin informieren – Viele Requests von einer einzigen IP in kurzer Zeit? – Seman=sche Auffälligkeiten (Bsp. Viele Ak=en auf einmal verkaufen)
– Requests mit bekannten AWack-‐Strings (Bsp. <script>) § Auf AWacken automa=siert reagieren
– Zu viele Anfragen à keine Antwort auf Anfragen
10.02.2011 10
| FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller |
WEB TECHNOLOGIES
10.02.2011 11
| FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller |
Hypertext Transfer Protocol
10.02.2011 12
GET /path/file.html HTTP/1.1 Host: www.host.com Accept: image/gif, image/jpeg, */* Accept-Language: en-us Accept-Encoding: gzip, deflate Referrer: http://where.do.i.come.from User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) (blank line) language=de&SUBMIT=Search%21
HTTP/1.1 200 OK Date: Sun, 23 Dec 2009 08:56:53 GMT Server: Apache/2.2.14 (Win32) Last-Modified: Sat, 20 Nov 2004 07:16:26 GMT ETag: "10000000565a5-2c-3e94b66c2e680" Accept-Ranges: bytes Content-Length: 44 Connection: close Content-Type: text/html X-Pad: avoid browser bug <html><body><h1>It works!</h1></body></html>
| FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller |
HTTP Methods
§ GET / POST – GET is logged!
§ HEAD / TRACE / OPTIONS
§ PUT – Upload body. Wenn diese Methode ak=v ist kann man zB. Ein beliebiges Script hochladen und ausführen
10.02.2011 13
| FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller |
HTTP Cookies
Response Header
§ Set-‐Cookie kann folgende Op=onen enthalten – Expires / Domain / Path -‐ Gül=gkeitsbereich – Secure – Cookie wird nur über HTTPS gesendet – HWpOnly – Auf das Cookie kann nicht über Client-‐Side JavaScript zugegriffen
werden (nicht von allen Browsern unterstützt)
Request Header
10.02.2011 14
Cookie: tracking=tI8rk7joMx44S2Uu84nSWc
Set-Cookie: tracking=tI8rk7joMx44S2Uu84nSWc
| FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller |
HTTP Authentifizierung
§ Basic – Simple Base64 encoded
§ NTLM – Challenge-‐Response (Windows)
§ Digest – Challenge-‐Response MD5 checksum of nonce
10.02.2011 15
HTTP Authen=fizierung wird im Internet nicht sehr häurig benutzt. In Firmen Intranets jedoch umso mehr !
| FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller |
Server Side Funktionalität
§ ASP.NET – Microsors Web Applica=on Framework – Programmieren von WebApps mit Visual Studio ist sehr einfach – Anfänger betrachten nicht die Security Probleme
§ PHP – Der Developer muss ich selbst darum kümmern, dass z.B. keine SQL Injec=on zugelassen wird.
– PHP an sich hat viele Sicherheitslücken
10.02.2011 16
| FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller |
Client Side Funktionalität
§ Forms / Hyperlinks – Hidden form fields – Form wird in HTTP GET/POST Request übersetzt
§ Javascript – Validierung von Benutzereingaben – Dynamische Anpassung der GUI – Asynchrone Page reloads (AJAX)
10.02.2011 17
| FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller |
ANALYSE
10.02.2011 18
| FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller |
Informationsbeschaffung
§ Banner Grabbing – HTTP Header hat viele Informa=onen – HTTP-‐Fingerprint (Tool: hWprint)
§ File Extensions – .asp .aspx .jsp .php .pl ...
§ Subdirectories – servlet/ pls/ WebObjects/ rails/
10.02.2011 19
| FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller |
Web Spidering / Crawling
§ Automa=siertes Durchforsten einer Webseite § Tools: Paros / Burp Spider (Burp Suite) / WebScarab
10.02.2011 20
| FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller |
Attack Surface § Client-‐Side Valida=on
– Möglicherweise wird beim Server nicht nochmal validiert
§ Datenbank Interak=on – SQL Injek=on
§ Anzeigen von Benutzereingaben – Cross-‐Site Scrip=ng
§ Dynamische Weiterleitung – Redirec=on and Header Injec=on
§ Login – Schwache Passwörter, Bruteforce
§ Klartextübertragung – Session Hijacking, Nutzerdaten abfangen
§ Error/Debug Messages – Informa=on Leaks
§ Third-‐Party Components – Bekannte Schwachstellen
§ Na=ve Code Komponenten – Buffer Overflow
§ Iden=fizierbare Server Sorware – Bekannte Misskonfigura=on
10.02.2011 21
| FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller |
OWASP TOP 10
10.02.2011 22
| FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller |
A1 - Injection
10.02.2011 23
§ Es werden Programmbefehle eingeschleußt § Für jeden möglich, der Abfragen abschicken kann § Auf verschiedene Interpreter anwendbar (SQL, LDAP, XPATH, ...)
§ In den meisten Fällen eine SQL-‐Injec=on § Kann enormen Schaden verursachen (DB auslesen, modifizieren,
löschen)
| FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller |
Beispiel - SQL-Injection
10.02.2011 24
HTTP-‐Request
HTTP-‐Response SQL-‐Query DB Data
"SELECT * FROM accounts WHERE acct=‘’ OR 1=1--’"
Account Summary
Acct:5424-6066-2134-4334 Acct:4128-7574-3921-0192 Acct:5424-9383-2039-4029 Acct:4128-0004-1234-0293
| FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller |
Gegenmaßnahmen
§ Jeden Input prüfen § Input Encoden § User Rechte einschränken § Zugang zu Datenbank einschränken
10.02.2011 25
| FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller |
A2 - Cross-Site-Scripting (XSS)
10.02.2011 26
§ Daten werden über Web-‐Browser auf Webseite eingeschleußt § Diese Daten werden in der Regel in einer DB gespeichert § Angriff ist fü jeden möglich, der Formular der Seite nutzen kann
Ziel § Session klauen § Webseite umschreiben, Weiterleitungen auf Phishing Seiten
| FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller |
XSS - Beispiel
10.02.2011 27
1. Angreifer fügt ein Schad-‐Script auf Webseite
2. Alice besucht diese infizierte Webseite
3. Skript sendet Session Cookie, ...
| FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller |
Gegenmaßnahmen
§ Jeden Input prüfen § Input Encoden § White-‐List Befehle
10.02.2011 28
| FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller |
A3 - Broken Authentication and Session Management
10.02.2011 29
www.site.com?JSESSIONID=9FA1DB9EA...
User meldet sich an
URL rewri=ng
User klickt auf Link, evilsite.com
Hacker sieht die Referer Logs und sieht die Session
Hacker benutzt Session
| FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller |
Gegenmaßnahmen
§ SSL/Zer=fikate benutzen. § Session muss auch verschlüsselt sein § Logoff muss Session ID löschen
10.02.2011 30
| FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller |
A4 - Insecure Direct Object References
10.02.2011 31
Angreifer bemerkt Account ID ?acct=6065 Angreifer ändert Account ?acct=6066 Angreifer hat Zugriff auf Account 6066
hPps://www.onlinebank.com/user?acct=6065
| FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller |
A5 - Cross-Site Request Forgery (CSRF)
10.02.2011 32
1) Angreifer infiziert Webseite
2) Alice sieht manipulierte Webseite
Alice gibt unbewusst Befehle ab
| FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller |
A6 - Security Misconfiguration
10.02.2011 33
§ Menschliche Fehler § Fehlerhare Konfiguar=on
– ACL – Session Management – DB Zugriffe – ....
| FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller |
A7 - Insecure Cryptographic Storage
10.02.2011 34
LOGS
Alice übergibt Daten
ErrorHandling
Log Daten einsehbar
Administrator, IT Staff
| FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller |
A8 - Failure to Restrict URL Access
10.02.2011 35
Angreifer bemerkt seine Rolle /user/getAccountInfo Angreifer ändert Abfrage /admin/getAccountInfo Angreifer hat mehr Rechte
hPps://www.onlinebank.com/user/getAccountInfo
| FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller |
A9 - Insufficient Transport Layer Protection
10.02.2011 36
Sendet Daten
Liest Daten
| FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller |
A10 - Unvalidated Redirects and Forwards
10.02.2011 37
evilsite.com
1) AWacker sendet: „click here“ 2) Alice klickt Link 3) Skript leitet um
hPp://www.irs.gov/taxrefund/claim.jsp?year=2006& … &dest=www.evilsite.com
| FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller |
FRAGEN ? Vielen Dank für die Aufmerksamkeit
10.02.2011 38
| FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller |
DEMO - WEBGOAT
hWp://guest:[email protected]:8080/webgoat/aWack
10.02.2011 39
| FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller |
Literatur
§ [StPi08] Dafydd StuWard and Marcus Pinto, The Web Applica=on Hackers Handbook -‐ Discovering and Exploi=ng Security Flaws, Wiley, 2008
§ [OWSAP] OWASP, hWps://www.owasp.org/index.php/Main_Page
10.02.2011 40