web app security slides

40
| FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller | Hacker-Contest 10. Mai 0x7DB // Daniel Quanz & Max Zeller 10.02.2011 1 Thema: WebApp(In)Security

Upload: christian-kdot

Post on 10-Mar-2015

158 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: 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    

Page 2: Web App Security Slides

| 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

Page 3: Web App Security Slides

| FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller |

EINLEITUNG

10.02.2011 3

Page 4: Web App Security Slides

| FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller | 10.02.2011 4

Übliche Web Applikationen

Page 5: Web App Security Slides

| FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller |

„This Site Is Secure“

10.02.2011 5

Page 6: Web App Security Slides

| 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

Page 7: Web App Security Slides

| 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

Page 8: Web App Security Slides

| 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

Page 9: Web App Security Slides

| 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

Page 10: Web App Security Slides

| 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

Page 11: Web App Security Slides

| FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller |

WEB TECHNOLOGIES

10.02.2011 11

Page 12: Web App Security Slides

| 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>

Page 13: Web App Security Slides

| 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

Page 14: Web App Security Slides

| 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

Page 15: Web App Security Slides

| 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  !  

Page 16: Web App Security Slides

| 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

Page 17: Web App Security Slides

| 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

Page 18: Web App Security Slides

| FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller |

ANALYSE

10.02.2011 18

Page 19: Web App Security Slides

| 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

Page 20: Web App Security Slides

| 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

Page 21: Web App Security Slides

| 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

Page 22: Web App Security Slides

| FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller |

OWASP TOP 10

10.02.2011 22

Page 23: Web App Security Slides

| 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)  

Page 24: Web App Security Slides

| 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

Page 25: Web App Security Slides

| 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

Page 26: Web App Security Slides

| 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  

Page 27: Web App Security Slides

| 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,  ...  

Page 28: Web App Security Slides

| 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

Page 29: Web App Security Slides

| 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  

Page 30: Web App Security Slides

| 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

Page 31: Web App Security Slides

| 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  

Page 32: Web App Security Slides

| 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  

Page 33: Web App Security Slides

| 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  –  ....  

Page 34: Web App Security Slides

| 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  

Page 35: Web App Security Slides

| 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  

Page 36: Web App Security Slides

| FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller |

A9 - Insufficient Transport Layer Protection

10.02.2011 36

Sendet  Daten  

Liest  Daten  

Page 37: Web App Security Slides

| 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    

Page 38: Web App Security Slides

| FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller |

FRAGEN ? Vielen  Dank  für  die  Aufmerksamkeit  

10.02.2011 38

Page 39: Web App Security Slides

| FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller |

DEMO - WEBGOAT

hWp://guest:[email protected]:8080/webgoat/aWack  

10.02.2011 39

Page 40: Web App Security Slides

| 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