際際滷

際際滷Share a Scribd company logo
Modsecurity  czy Tw坦j WAF to potrafi?
Leszek Mi
Linux Polska Sp. z o.o.
CEL:
Modsecurity jest cool!
Agenda
 Modsecurity
 Wprowadzenie
 Architektura
 Funkcjonalno
 Filtrowanie komunikacji JSON
 Aktywacja mechanizmu HMAC
 Aktywacja i wykorzystanie regu OWASP CRS
Wprowadzenie
 Aplikacje webowe jako cel czyli zagro甜enia kryj
si wszdzie:
 Aplikacja
 Protok坦
 Serwer HTTP/Proxy/Apps
 Framework
 Jzyk programowania
Wprowadzenie
 Rzeczywisto weryfikuje:
 Zimbra: priv_esc poprzez LFI:
 /res/I18nMsg,AjxMsg,ZMsg,ZmMsg,AjxKeys,ZmKeys,ZdMsg,Ajx%20TemplateMsg.js.zgz?
v=091214175450&skin=../../../../../../../../../opt/zimbra/conf/localconfig.xml
 OSSIM: SQL Injection
 Apache Struts: RCE
 F5 BigIQ  priv_esc
 Jira: directory traversal
 Katello: users/update_roles
 I wiele innych...
Wprowadzenie
 Problem z patchowaniem podatnoci:
 Zbyt wysoki koszt
 Kod 添r坦dowy firmy zewntrznej
 Ograniczony kontrakt/umowa
 Brak zasob坦w
 Brak skills坦w
 SDLC dla poprawki-> tst->acc->prod
 Niedostpno aplikacji
Zagro甜enia
 Cross Site Scripting
 SQL Injection
 LDAP Injection
 XPATH Injection
 XML Injection
 Blind SQLi
 Time based SQLi
 Remote Command Execution
 Local File Inlusion
 Remote File Inclusion
 Session Hijacking
 HTTP Response Spliiting
 Sniffing/Spoofing
 ClickJacking
 MitB
 Open Redirect
 DOS/DDOS
 Cross Site Request Forgery (CSRF)
 Information/Path Dislosure
 Double Encoding
 Server Side Includes Injection
 Bruteforce
 Buffer overflow
 Misconfiguration
 RE-DOS
 Forced browsing
 Drive by Download
Uchybienia
Wprowadzenie
 WAF pozwala na
 Pene logowanie audytowe ruchu HTTP:
 requests
 responses
 Monitorowanie HTTP w czasie rzeczywistym
 Wykrywanie i blokowanie atak坦w:
 Negative
 Positive
 Znane podatnoci (regexpy)
 Web Honeypoty
Wprowadzenie
 Negative security model:
 Monitoruje pod ktem anomalii, nietypowego
zachowania, pod ktem znanych appek.
 Wzrastajcy anomaly scoring per sesja, IP, user
 Regua musi si zamatchowa
 Positive security model:
 Tylko 甜dania uznawane za poprawne s obsugiwane
 Wymagana doskonaa znajomo aplikacji i zachowa
u甜ytkownik坦w, danych wejciowych
 Najlepsze dla rzadko aktualizowanych appek
Wprowadzenie
 Negative security model:
SecRule REQUEST_FILENAME @contains
/owa/scriptname.asx chain,
phase:1,block,log,msg:'XSS na mojej appce'
SecRule ARGS:parameter @pm < > ( ) --
 Positive security model:
SecRule REQUEST_FILENAME @contains
/owa/scriptname.asx chain,
phase:1,block,log,msg:'XSS na mojej appce'
SecRule ARGS:parameter !@rx ^w+$
Wprowadzenie
 Modsecurity for:
 Apache:
 Najpopularniejszy
 Ficzer riczi ricz
 Aktualnie 2.4
 Nginx:
 Reverse proxy
 Performance
 IIS
 Modsecurity Core Rule Set
Architektura
 Reverse Proxy:
 mod_proxy:
<Location /appka/>
ProxyPass http://192.168.122.217/appka/
ProxyPassreverse http://192.168.122.217/appka/
SecRuleEngine On
</Location>
 Lokalnie wbudowany
 Chain of proxies
Architektura Reverse proxy+modsecurity
Funkcjonalno
 Modsecurity:
 Parsuje:
 Chce zrozumie ruch HTTP
 Bufferuje:
 Kompletne 甜danie przez przekazaniem do aplikacji
 Kompletn odpowied添 przez przekazaniem do klienta
 Loguje:
 Peny zapis ruchu
 Analizuje:
 Checkuje pod ktem regu
Funkcjonalno
 Apache z modsecurity pozwala na:
 Deszyfrowanie SSL
 Wydobywanie z transmisji 甜da HTTP
 Parsowanie 甜da
 Aktywacj WAF
 Przekazywanie 甜da do serwer坦w typu backend
 Modyfikacja danych wychodzcych w locie -
dynamiczne wstrzykiwanie
 Wirtualne patchowanie
 LUA
Funkcjonalno
 Fazy filtrowania:
 Ka甜da transakcja przechodzi przez 5 faz filtrowania:
 1: Request headers
 2: Request body
 3: Response headers
 4: Response body
 5: Logging
Funkcjonalno
 Wirtualny patch w uproszczonym przypadku:
 Ograniczenie Request_Body_Size
 Wykrywanie powtarzajcych si payload坦w
 Ograniczenie iloci ARGS
 Weryfikacja ARGS
 Analiza i filtrowanie RESPONSE_BODY
Funkcjonalno
 Przykadowe reguy:
 SecRule REQUEST_URI "@detectSQLi"
"id:152,log,deny"
 SecRule REQUEST_BODY "@detectXSS"
"id:12345,log,deny"
 SecRule REQUEST_HEADERS:User-Agent "@pm
WebZIP WebCopier Webster WebStripper ...
SiteSnagger CheeseBot" "id:166"
 SecRule ARGS:foo "!@streq bar" "id:176"
LAB1  uruchomienie Apache
jako Reverse Proxy
Czym jest JSON?
 Prosty, tekstowy format wymiany danych
 Podzbi坦r jzyka JS
 Dwie struktury:
 Zbi坦r par nazwa/warto
 Lista/tabela/sekwencja wartoci
 MIME type: application/json
 Wykorzystywany w implementacjach API, np. Rest
Czym jest JSON?
 Openweathermap.org:
{"coord":{"lon":-0.13,"lat":51.51},"sys":
{"message":0.0139,"country":"GB","sunrise":1399436419,"sun
set":1399491223},"weather":
[{"id":521,"main":"Rain","description":"proximity shower
rain","icon":"09d"}],"base":"cmc stations","main":
{"temp":286.16,"pressure":1008,"humidity":66,"temp_min":284.
26,"temp_max":288.15},"wind":{"speed":6.7,"deg":250},"rain":
{"3h":0},"clouds":
{"all":75},"dt":1399448174,"id":2643743,"name":"London","cod"
:200}
Filtrowanie komunikacji JSON
 Modsecurity 2.8.0:
 SecRule REQUEST_HEADERS:Content-Type
"application/json"
"id:'2200001',phase:2,t:none,t:lowercase,pass,log,c
tl:requestBodyProcessor=JSON"
 Libyajl
LAB2 - Filtrowanie komunikacji JSON
Mechanizm HMAC
 HMAC Token Protection:
 Forceful Browsing
 Reflected XSS
 Ochrona CSRF
 Manipulacja QUERY_STRINGS
 Ochrona przed automatami/botami
HMAC
 Manipulacja kontentem:
 W jaki spos坦b sprawdzi czy odbya si
modyfikacja dokumentu?
 Parsowanie wyjcia (RESPONSE_BODY)
 Wyliczanie hasha dla wynikowego HTML
 Wstrzykiwanie unikalnych token坦w dla wszystkich
link坦w dokumentu HTML
 Token = request parameter validation token
HMAC
 Executing operator "validateHash" with param ".(aspx?|php)" against
REQUEST_URI.
Target value: "/showimage.php?file=./database_connect.php"
Request URI without hash parameter [/showimage.php?
file=./database_connect.php]
 Warning. Request URI matched ".(aspx?|php)" at REQUEST_URI. No Hash
parameter [file "/etc/httpd/modsecurity.d/base_rules/hmac.conf"] [line "10"] [id
"1000"] [msg "Hash Validation Violation."] [tag "testphp.vulnweb.com"]
HMAC
 HMAC zablokuje:
 Skanery
 Automaty
 Botnety
kt坦re nie pod甜aj za linkami dostpnymi w
kontekcie aplikacji
 XSS/SQL-Injection
HMAC
HMAC
 Dyrektywy:
 SecDisableBackendCompression On
 SecRuleEngine On
 SecContentInjection On
 SecStreamOutBodyInspection On
 SecHashEngine On
 SecHashKey rand keyOnly
 SecHashParam "hmac"
 SecHashMethodrx "Hashhref" ".(aspx?|php)"
 SecHashMethodrx "HashFormAction" ".(aspx?|php)"
 SecRule REQUEST_URI "@validateHash .(aspx?|php)"
"phase:2,id:1000,t:none,block,msg:'Hash Validation
Violation.',ctl:hashEnforcement=On,setvar:tx.anomaly_score=+%
{tx.critical_anomaly_score},setvar:'tx.msg=%{rule.msg}',setvar:tx.%
{rule.id}-OWASP_CRS/WEB_ATTACK/PARAM_MANIPULATION-%
{matched_var_name}=%{matched_var}"
LAB3 - HMAC
OWASP Top 10
 Zbi坦r 10 najistotniejszych, kluczowych bd坦w w zabezpieczeniach aplikacji
internetowych:
 A1  Injection
 A2  Broken Auth and Session MGMT
 A3  XSS
 A4  Insecure Direct Object References
 A5  Security Misconfiguration
 A6  Sensitive Data Exposure
 A7  Missing Function Level Access Control
 A8  CSRF
 A9  Known vulns
 A10  Unvalidated Redirects and Forwards
OWASP Docs & tools
 ASVS
 ESAPI
 Testing Guide
 Cheat Sheets
OWASP CRS
 Modsecurity to tylko silnik
 Musimy go naadowa:
 Tworzenie dedykowanych regu od podstaw per
aplikacja
 Wykorzystanie gotowych regu OWASP CRS
 Hybryda czyli poczenie regu CRS z wasnymi
reguami typu Whitelist
OWASP CRS
 HTTP Protection - detecting violations of the HTTP protocol and a locally defined usage policy.
 Real-time Blacklist Lookups - utilizes 3rd Party IP Reputation
 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.
 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.
OWASP CRS
 Reguy OWASP CRS podzielone s na:
 base_rules
 experimental_rules
 optional_rules
 slr_rules
 /etc/httpd/modsecurity.d/
LAB4  Atak.
OWASP CRS
 Dostosowanie regu per aplikacja:
 SecRuleRemoveById
 SecRuleRemoveByMsg
 SecRuleRemoveByTag
LAB5  instalacja i aktywacja regu CRS
R坦甜ne
 Integracja z BEEF
 DDOS
 LUA
 Splunk for Modsecurity
 Learning mode i generowanie regu na podstawie
raport坦w ze skaner坦w
 Wykrywanie zmiany User-Agent podczas sesji
Podsumowanie
 To tylko zajawka na dobry pocztek
 W Modsecurity drzemi ogromne mo甜liwoci i potencja
 Idealny komponent rozbudowanego stacku typu Web
Gateway/Secure Proxy
 Automatyzacja
 Skalowalno
 Customizacja
 Auditing
Dzikuj za uwag:)
lm@linuxpolska.pl

More Related Content

What's hot (15)

Quality of protection, grywalizacja i inne nietypowe zastosowania microsoft p...
Quality of protection, grywalizacja i inne nietypowe zastosowania microsoft p...Quality of protection, grywalizacja i inne nietypowe zastosowania microsoft p...
Quality of protection, grywalizacja i inne nietypowe zastosowania microsoft p...
Grzegorz Gazowski
JDD 2017: Bezpieczny wypoczynek - czyli uwierzytelnianie RESTa (Krzysztof Be...
JDD 2017:  Bezpieczny wypoczynek - czyli uwierzytelnianie RESTa (Krzysztof Be...JDD 2017:  Bezpieczny wypoczynek - czyli uwierzytelnianie RESTa (Krzysztof Be...
JDD 2017: Bezpieczny wypoczynek - czyli uwierzytelnianie RESTa (Krzysztof Be...
PROIDEA
GlusterFS
GlusterFSGlusterFS
GlusterFS
ukasz Jagieo
NGSec 2016 - Ile warstw, tyle szans. - Leszek Mi@Defensive-Security.com
NGSec 2016 - Ile warstw, tyle szans. - Leszek Mi@Defensive-Security.comNGSec 2016 - Ile warstw, tyle szans. - Leszek Mi@Defensive-Security.com
NGSec 2016 - Ile warstw, tyle szans. - Leszek Mi@Defensive-Security.com
Leszek Mi?
Infrastructure As Code
Infrastructure As CodeInfrastructure As Code
Infrastructure As Code
Kamil Grabowski
Serwer internetowy w systemie Linux
Serwer internetowy w systemie LinuxSerwer internetowy w systemie Linux
Serwer internetowy w systemie Linux
bm9ib2r5
PLNOG22: Tomasz Jarlaczyk & Tomasz Ludwiczak - DNSv6 i SSL - historie z 甜ycia...
PLNOG22: Tomasz Jarlaczyk & Tomasz Ludwiczak - DNSv6 i SSL - historie z 甜ycia...PLNOG22: Tomasz Jarlaczyk & Tomasz Ludwiczak - DNSv6 i SSL - historie z 甜ycia...
PLNOG22: Tomasz Jarlaczyk & Tomasz Ludwiczak - DNSv6 i SSL - historie z 甜ycia...
PROIDEA
Exatel Security Days 2017 - Niech dane pozostan z Tob! Sieciowe techniki ek...
Exatel Security Days 2017 - Niech dane pozostan z Tob! Sieciowe techniki ek...Exatel Security Days 2017 - Niech dane pozostan z Tob! Sieciowe techniki ek...
Exatel Security Days 2017 - Niech dane pozostan z Tob! Sieciowe techniki ek...
Leszek Mi?
PLNOG22 - Piotr Stolarek - Bezpieczestwo u甜ytkowania platform usugowych Tel...
PLNOG22 - Piotr Stolarek - Bezpieczestwo u甜ytkowania platform usugowych Tel...PLNOG22 - Piotr Stolarek - Bezpieczestwo u甜ytkowania platform usugowych Tel...
PLNOG22 - Piotr Stolarek - Bezpieczestwo u甜ytkowania platform usugowych Tel...
PROIDEA
PLNOG 22 - Krzysztof Zaski - Praktyczne zastosowanie narzdzi NetDevOps
PLNOG 22 - Krzysztof Zaski - Praktyczne zastosowanie narzdzi NetDevOpsPLNOG 22 - Krzysztof Zaski - Praktyczne zastosowanie narzdzi NetDevOps
PLNOG 22 - Krzysztof Zaski - Praktyczne zastosowanie narzdzi NetDevOps
PROIDEA
Ochrona podatnych webaplikacji za pomoc wirtualnych poprawek
Ochrona podatnych webaplikacji za pomoc wirtualnych poprawekOchrona podatnych webaplikacji za pomoc wirtualnych poprawek
Ochrona podatnych webaplikacji za pomoc wirtualnych poprawek
3camp
TGT#20 - Ataki XSS - Robert Charewicz
TGT#20 - Ataki XSS - Robert CharewiczTGT#20 - Ataki XSS - Robert Charewicz
TGT#20 - Ataki XSS - Robert Charewicz
Tr坦jmiejska Grupa Testerska
Mapowanie wiedzy pentestera na potrzeby ochrony krytycznej infrastruktury IT ...
Mapowanie wiedzy pentestera na potrzeby ochrony krytycznej infrastruktury IT ...Mapowanie wiedzy pentestera na potrzeby ochrony krytycznej infrastruktury IT ...
Mapowanie wiedzy pentestera na potrzeby ochrony krytycznej infrastruktury IT ...
Leszek Mi?
Info meet pomiary wydajnoci
Info meet pomiary wydajnociInfo meet pomiary wydajnoci
Info meet pomiary wydajnoci
magda3695
Shall we play a game? PL version
Shall we play a game? PL versionShall we play a game? PL version
Shall we play a game? PL version
Maciej Lasyk
Quality of protection, grywalizacja i inne nietypowe zastosowania microsoft p...
Quality of protection, grywalizacja i inne nietypowe zastosowania microsoft p...Quality of protection, grywalizacja i inne nietypowe zastosowania microsoft p...
Quality of protection, grywalizacja i inne nietypowe zastosowania microsoft p...
Grzegorz Gazowski
JDD 2017: Bezpieczny wypoczynek - czyli uwierzytelnianie RESTa (Krzysztof Be...
JDD 2017:  Bezpieczny wypoczynek - czyli uwierzytelnianie RESTa (Krzysztof Be...JDD 2017:  Bezpieczny wypoczynek - czyli uwierzytelnianie RESTa (Krzysztof Be...
JDD 2017: Bezpieczny wypoczynek - czyli uwierzytelnianie RESTa (Krzysztof Be...
PROIDEA
NGSec 2016 - Ile warstw, tyle szans. - Leszek Mi@Defensive-Security.com
NGSec 2016 - Ile warstw, tyle szans. - Leszek Mi@Defensive-Security.comNGSec 2016 - Ile warstw, tyle szans. - Leszek Mi@Defensive-Security.com
NGSec 2016 - Ile warstw, tyle szans. - Leszek Mi@Defensive-Security.com
Leszek Mi?
Infrastructure As Code
Infrastructure As CodeInfrastructure As Code
Infrastructure As Code
Kamil Grabowski
Serwer internetowy w systemie Linux
Serwer internetowy w systemie LinuxSerwer internetowy w systemie Linux
Serwer internetowy w systemie Linux
bm9ib2r5
PLNOG22: Tomasz Jarlaczyk & Tomasz Ludwiczak - DNSv6 i SSL - historie z 甜ycia...
PLNOG22: Tomasz Jarlaczyk & Tomasz Ludwiczak - DNSv6 i SSL - historie z 甜ycia...PLNOG22: Tomasz Jarlaczyk & Tomasz Ludwiczak - DNSv6 i SSL - historie z 甜ycia...
PLNOG22: Tomasz Jarlaczyk & Tomasz Ludwiczak - DNSv6 i SSL - historie z 甜ycia...
PROIDEA
Exatel Security Days 2017 - Niech dane pozostan z Tob! Sieciowe techniki ek...
Exatel Security Days 2017 - Niech dane pozostan z Tob! Sieciowe techniki ek...Exatel Security Days 2017 - Niech dane pozostan z Tob! Sieciowe techniki ek...
Exatel Security Days 2017 - Niech dane pozostan z Tob! Sieciowe techniki ek...
Leszek Mi?
PLNOG22 - Piotr Stolarek - Bezpieczestwo u甜ytkowania platform usugowych Tel...
PLNOG22 - Piotr Stolarek - Bezpieczestwo u甜ytkowania platform usugowych Tel...PLNOG22 - Piotr Stolarek - Bezpieczestwo u甜ytkowania platform usugowych Tel...
PLNOG22 - Piotr Stolarek - Bezpieczestwo u甜ytkowania platform usugowych Tel...
PROIDEA
PLNOG 22 - Krzysztof Zaski - Praktyczne zastosowanie narzdzi NetDevOps
PLNOG 22 - Krzysztof Zaski - Praktyczne zastosowanie narzdzi NetDevOpsPLNOG 22 - Krzysztof Zaski - Praktyczne zastosowanie narzdzi NetDevOps
PLNOG 22 - Krzysztof Zaski - Praktyczne zastosowanie narzdzi NetDevOps
PROIDEA
Ochrona podatnych webaplikacji za pomoc wirtualnych poprawek
Ochrona podatnych webaplikacji za pomoc wirtualnych poprawekOchrona podatnych webaplikacji za pomoc wirtualnych poprawek
Ochrona podatnych webaplikacji za pomoc wirtualnych poprawek
3camp
Mapowanie wiedzy pentestera na potrzeby ochrony krytycznej infrastruktury IT ...
Mapowanie wiedzy pentestera na potrzeby ochrony krytycznej infrastruktury IT ...Mapowanie wiedzy pentestera na potrzeby ochrony krytycznej infrastruktury IT ...
Mapowanie wiedzy pentestera na potrzeby ochrony krytycznej infrastruktury IT ...
Leszek Mi?
Info meet pomiary wydajnoci
Info meet pomiary wydajnociInfo meet pomiary wydajnoci
Info meet pomiary wydajnoci
magda3695
Shall we play a game? PL version
Shall we play a game? PL versionShall we play a game? PL version
Shall we play a game? PL version
Maciej Lasyk

Similar to Modsecurity-czy-Twoj-WAF-to-potrafi-Leszek-Mis-Linux-Polska (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...
PROIDEA
Webinar - Podstawy Node.js
Webinar - Podstawy Node.jsWebinar - Podstawy Node.js
Webinar - Podstawy Node.js
Wojciech Kaniuka
HTML5: Atak i obrona
HTML5: Atak i obronaHTML5: Atak i obrona
HTML5: Atak i obrona
Krzysztof Kotowicz
OWASP Appsensor in action
OWASP Appsensor in actionOWASP Appsensor in action
OWASP Appsensor in action
LeszekMis
Bezpieczenstwo Portali Spolecznosciowych W Ujeciu Robakow Web 20 Pingwinaria2009
Bezpieczenstwo Portali Spolecznosciowych W Ujeciu Robakow Web 20 Pingwinaria2009Bezpieczenstwo Portali Spolecznosciowych W Ujeciu Robakow Web 20 Pingwinaria2009
Bezpieczenstwo Portali Spolecznosciowych W Ujeciu Robakow Web 20 Pingwinaria2009
Logicaltrust pl
Micha Dec - Quality in Clouds
Micha Dec - Quality in CloudsMicha Dec - Quality in Clouds
Micha Dec - Quality in Clouds
kraqa
Advanced Crypto Service Provider kryptografia jako usuga
Advanced Crypto Service Provider  kryptografia jako usugaAdvanced Crypto Service Provider  kryptografia jako usuga
Advanced Crypto Service Provider kryptografia jako usuga
Smart Coders
rodowisko PWA
rodowisko PWArodowisko PWA
rodowisko PWA
University of Economics in Katowice
PLNOG19 - Krzysztof Banel - Nowe modele bezpieczestwa w sieciach SDN
PLNOG19 - Krzysztof Banel - Nowe modele bezpieczestwa w sieciach SDNPLNOG19 - Krzysztof Banel - Nowe modele bezpieczestwa w sieciach SDN
PLNOG19 - Krzysztof Banel - Nowe modele bezpieczestwa w sieciach SDN
PROIDEA
Security B-Sides Warsaw 2014 - Network Security Treasures - Gawel Mikolajczyk
Security B-Sides Warsaw 2014 - Network Security Treasures - Gawel MikolajczykSecurity B-Sides Warsaw 2014 - Network Security Treasures - Gawel Mikolajczyk
Security B-Sides Warsaw 2014 - Network Security Treasures - Gawel Mikolajczyk
Gawel Mikolajczyk
Dziesi serwer坦w poprosz!, czyli co mo甜e Ci zaoferowa definiowanie infra...
Dziesi serwer坦w poprosz!, czyli co mo甜e Ci zaoferowa definiowanie infra...Dziesi serwer坦w poprosz!, czyli co mo甜e Ci zaoferowa definiowanie infra...
Dziesi serwer坦w poprosz!, czyli co mo甜e Ci zaoferowa definiowanie infra...
The Software House
Tomek Banasiak: Jak bez stresu obserwowa rosncy ruch w Twojej usudze? Czyl...
Tomek Banasiak: Jak bez stresu obserwowa rosncy ruch w Twojej usudze? Czyl...Tomek Banasiak: Jak bez stresu obserwowa rosncy ruch w Twojej usudze? Czyl...
Tomek Banasiak: Jak bez stresu obserwowa rosncy ruch w Twojej usudze? Czyl...
RST Software Masters
10 przykaza bezpiecznego programowania
10 przykaza bezpiecznego programowania10 przykaza bezpiecznego programowania
10 przykaza bezpiecznego programowania
SecuRing
4Developers 2015: 10 przykaza bezpiecznego kodowania - Wojciech Dworakowski
4Developers 2015: 10 przykaza bezpiecznego kodowania - Wojciech Dworakowski4Developers 2015: 10 przykaza bezpiecznego kodowania - Wojciech Dworakowski
4Developers 2015: 10 przykaza bezpiecznego kodowania - Wojciech Dworakowski
PROIDEA
PLNOG16: Nowe zao甜enia dla zbieranie log坦w, statystyk i alert坦w, Maciej Kak...
PLNOG16: Nowe zao甜enia dla zbieranie log坦w, statystyk i alert坦w, Maciej Kak...PLNOG16: Nowe zao甜enia dla zbieranie log坦w, statystyk i alert坦w, Maciej Kak...
PLNOG16: Nowe zao甜enia dla zbieranie log坦w, statystyk i alert坦w, Maciej Kak...
PROIDEA
[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o uzytkownikach allegro
[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o uzytkownikach allegro[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o uzytkownikach allegro
[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o uzytkownikach allegro
allegro.tech
WebView security on iOS (PL)
WebView security on iOS (PL)WebView security on iOS (PL)
WebView security on iOS (PL)
lpilorz
integracja danych przesyanych za pomoc Web-Socket坦w na przykladie bibliote...
integracja danych przesyanych za pomoc Web-Socket坦w na przykladie bibliote...integracja danych przesyanych za pomoc Web-Socket坦w na przykladie bibliote...
integracja danych przesyanych za pomoc Web-Socket坦w na przykladie bibliote...
Nazar Patrylo
Tomasz Kopacz, Cloud computing na bazie Windows Azure
Tomasz Kopacz, Cloud computing na bazie Windows AzureTomasz Kopacz, Cloud computing na bazie Windows Azure
Tomasz Kopacz, Cloud computing na bazie Windows Azure
Webhosting.pl
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
Webinar - Podstawy Node.js
Webinar - Podstawy Node.jsWebinar - Podstawy Node.js
Webinar - Podstawy Node.js
Wojciech Kaniuka
OWASP Appsensor in action
OWASP Appsensor in actionOWASP Appsensor in action
OWASP Appsensor in action
LeszekMis
Bezpieczenstwo Portali Spolecznosciowych W Ujeciu Robakow Web 20 Pingwinaria2009
Bezpieczenstwo Portali Spolecznosciowych W Ujeciu Robakow Web 20 Pingwinaria2009Bezpieczenstwo Portali Spolecznosciowych W Ujeciu Robakow Web 20 Pingwinaria2009
Bezpieczenstwo Portali Spolecznosciowych W Ujeciu Robakow Web 20 Pingwinaria2009
Logicaltrust pl
Micha Dec - Quality in Clouds
Micha Dec - Quality in CloudsMicha Dec - Quality in Clouds
Micha Dec - Quality in Clouds
kraqa
Advanced Crypto Service Provider kryptografia jako usuga
Advanced Crypto Service Provider  kryptografia jako usugaAdvanced Crypto Service Provider  kryptografia jako usuga
Advanced Crypto Service Provider kryptografia jako usuga
Smart Coders
PLNOG19 - Krzysztof Banel - Nowe modele bezpieczestwa w sieciach SDN
PLNOG19 - Krzysztof Banel - Nowe modele bezpieczestwa w sieciach SDNPLNOG19 - Krzysztof Banel - Nowe modele bezpieczestwa w sieciach SDN
PLNOG19 - Krzysztof Banel - Nowe modele bezpieczestwa w sieciach SDN
PROIDEA
Security B-Sides Warsaw 2014 - Network Security Treasures - Gawel Mikolajczyk
Security B-Sides Warsaw 2014 - Network Security Treasures - Gawel MikolajczykSecurity B-Sides Warsaw 2014 - Network Security Treasures - Gawel Mikolajczyk
Security B-Sides Warsaw 2014 - Network Security Treasures - Gawel Mikolajczyk
Gawel Mikolajczyk
Dziesi serwer坦w poprosz!, czyli co mo甜e Ci zaoferowa definiowanie infra...
Dziesi serwer坦w poprosz!, czyli co mo甜e Ci zaoferowa definiowanie infra...Dziesi serwer坦w poprosz!, czyli co mo甜e Ci zaoferowa definiowanie infra...
Dziesi serwer坦w poprosz!, czyli co mo甜e Ci zaoferowa definiowanie infra...
The Software House
Tomek Banasiak: Jak bez stresu obserwowa rosncy ruch w Twojej usudze? Czyl...
Tomek Banasiak: Jak bez stresu obserwowa rosncy ruch w Twojej usudze? Czyl...Tomek Banasiak: Jak bez stresu obserwowa rosncy ruch w Twojej usudze? Czyl...
Tomek Banasiak: Jak bez stresu obserwowa rosncy ruch w Twojej usudze? Czyl...
RST Software Masters
10 przykaza bezpiecznego programowania
10 przykaza bezpiecznego programowania10 przykaza bezpiecznego programowania
10 przykaza bezpiecznego programowania
SecuRing
4Developers 2015: 10 przykaza bezpiecznego kodowania - Wojciech Dworakowski
4Developers 2015: 10 przykaza bezpiecznego kodowania - Wojciech Dworakowski4Developers 2015: 10 przykaza bezpiecznego kodowania - Wojciech Dworakowski
4Developers 2015: 10 przykaza bezpiecznego kodowania - Wojciech Dworakowski
PROIDEA
PLNOG16: Nowe zao甜enia dla zbieranie log坦w, statystyk i alert坦w, Maciej Kak...
PLNOG16: Nowe zao甜enia dla zbieranie log坦w, statystyk i alert坦w, Maciej Kak...PLNOG16: Nowe zao甜enia dla zbieranie log坦w, statystyk i alert坦w, Maciej Kak...
PLNOG16: Nowe zao甜enia dla zbieranie log坦w, statystyk i alert坦w, Maciej Kak...
PROIDEA
[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o uzytkownikach allegro
[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o uzytkownikach allegro[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o uzytkownikach allegro
[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o uzytkownikach allegro
allegro.tech
WebView security on iOS (PL)
WebView security on iOS (PL)WebView security on iOS (PL)
WebView security on iOS (PL)
lpilorz
integracja danych przesyanych za pomoc Web-Socket坦w na przykladie bibliote...
integracja danych przesyanych za pomoc Web-Socket坦w na przykladie bibliote...integracja danych przesyanych za pomoc Web-Socket坦w na przykladie bibliote...
integracja danych przesyanych za pomoc Web-Socket坦w na przykladie bibliote...
Nazar Patrylo
Tomasz Kopacz, Cloud computing na bazie Windows Azure
Tomasz Kopacz, Cloud computing na bazie Windows AzureTomasz Kopacz, Cloud computing na bazie Windows Azure
Tomasz Kopacz, Cloud computing na bazie Windows Azure
Webhosting.pl

Modsecurity-czy-Twoj-WAF-to-potrafi-Leszek-Mis-Linux-Polska

  • 1. Modsecurity czy Tw坦j WAF to potrafi? Leszek Mi Linux Polska Sp. z o.o.
  • 3. Agenda Modsecurity Wprowadzenie Architektura Funkcjonalno Filtrowanie komunikacji JSON Aktywacja mechanizmu HMAC Aktywacja i wykorzystanie regu OWASP CRS
  • 4. Wprowadzenie Aplikacje webowe jako cel czyli zagro甜enia kryj si wszdzie: Aplikacja Protok坦 Serwer HTTP/Proxy/Apps Framework Jzyk programowania
  • 5. Wprowadzenie Rzeczywisto weryfikuje: Zimbra: priv_esc poprzez LFI: /res/I18nMsg,AjxMsg,ZMsg,ZmMsg,AjxKeys,ZmKeys,ZdMsg,Ajx%20TemplateMsg.js.zgz? v=091214175450&skin=../../../../../../../../../opt/zimbra/conf/localconfig.xml OSSIM: SQL Injection Apache Struts: RCE F5 BigIQ priv_esc Jira: directory traversal Katello: users/update_roles I wiele innych...
  • 6. Wprowadzenie Problem z patchowaniem podatnoci: Zbyt wysoki koszt Kod 添r坦dowy firmy zewntrznej Ograniczony kontrakt/umowa Brak zasob坦w Brak skills坦w SDLC dla poprawki-> tst->acc->prod Niedostpno aplikacji
  • 7. Zagro甜enia Cross Site Scripting SQL Injection LDAP Injection XPATH Injection XML Injection Blind SQLi Time based SQLi Remote Command Execution Local File Inlusion Remote File Inclusion Session Hijacking HTTP Response Spliiting Sniffing/Spoofing ClickJacking MitB Open Redirect DOS/DDOS Cross Site Request Forgery (CSRF) Information/Path Dislosure Double Encoding Server Side Includes Injection Bruteforce Buffer overflow Misconfiguration RE-DOS Forced browsing Drive by Download
  • 9. Wprowadzenie WAF pozwala na Pene logowanie audytowe ruchu HTTP: requests responses Monitorowanie HTTP w czasie rzeczywistym Wykrywanie i blokowanie atak坦w: Negative Positive Znane podatnoci (regexpy) Web Honeypoty
  • 10. Wprowadzenie Negative security model: Monitoruje pod ktem anomalii, nietypowego zachowania, pod ktem znanych appek. Wzrastajcy anomaly scoring per sesja, IP, user Regua musi si zamatchowa Positive security model: Tylko 甜dania uznawane za poprawne s obsugiwane Wymagana doskonaa znajomo aplikacji i zachowa u甜ytkownik坦w, danych wejciowych Najlepsze dla rzadko aktualizowanych appek
  • 11. Wprowadzenie Negative security model: SecRule REQUEST_FILENAME @contains /owa/scriptname.asx chain, phase:1,block,log,msg:'XSS na mojej appce' SecRule ARGS:parameter @pm < > ( ) -- Positive security model: SecRule REQUEST_FILENAME @contains /owa/scriptname.asx chain, phase:1,block,log,msg:'XSS na mojej appce' SecRule ARGS:parameter !@rx ^w+$
  • 12. Wprowadzenie Modsecurity for: Apache: Najpopularniejszy Ficzer riczi ricz Aktualnie 2.4 Nginx: Reverse proxy Performance IIS Modsecurity Core Rule Set
  • 13. Architektura Reverse Proxy: mod_proxy: <Location /appka/> ProxyPass http://192.168.122.217/appka/ ProxyPassreverse http://192.168.122.217/appka/ SecRuleEngine On </Location> Lokalnie wbudowany Chain of proxies
  • 15. Funkcjonalno Modsecurity: Parsuje: Chce zrozumie ruch HTTP Bufferuje: Kompletne 甜danie przez przekazaniem do aplikacji Kompletn odpowied添 przez przekazaniem do klienta Loguje: Peny zapis ruchu Analizuje: Checkuje pod ktem regu
  • 16. Funkcjonalno Apache z modsecurity pozwala na: Deszyfrowanie SSL Wydobywanie z transmisji 甜da HTTP Parsowanie 甜da Aktywacj WAF Przekazywanie 甜da do serwer坦w typu backend Modyfikacja danych wychodzcych w locie - dynamiczne wstrzykiwanie Wirtualne patchowanie LUA
  • 17. Funkcjonalno Fazy filtrowania: Ka甜da transakcja przechodzi przez 5 faz filtrowania: 1: Request headers 2: Request body 3: Response headers 4: Response body 5: Logging
  • 18. Funkcjonalno Wirtualny patch w uproszczonym przypadku: Ograniczenie Request_Body_Size Wykrywanie powtarzajcych si payload坦w Ograniczenie iloci ARGS Weryfikacja ARGS Analiza i filtrowanie RESPONSE_BODY
  • 19. Funkcjonalno Przykadowe reguy: SecRule REQUEST_URI "@detectSQLi" "id:152,log,deny" SecRule REQUEST_BODY "@detectXSS" "id:12345,log,deny" SecRule REQUEST_HEADERS:User-Agent "@pm WebZIP WebCopier Webster WebStripper ... SiteSnagger CheeseBot" "id:166" SecRule ARGS:foo "!@streq bar" "id:176"
  • 20. LAB1 uruchomienie Apache jako Reverse Proxy
  • 21. Czym jest JSON? Prosty, tekstowy format wymiany danych Podzbi坦r jzyka JS Dwie struktury: Zbi坦r par nazwa/warto Lista/tabela/sekwencja wartoci MIME type: application/json Wykorzystywany w implementacjach API, np. Rest
  • 22. Czym jest JSON? Openweathermap.org: {"coord":{"lon":-0.13,"lat":51.51},"sys": {"message":0.0139,"country":"GB","sunrise":1399436419,"sun set":1399491223},"weather": [{"id":521,"main":"Rain","description":"proximity shower rain","icon":"09d"}],"base":"cmc stations","main": {"temp":286.16,"pressure":1008,"humidity":66,"temp_min":284. 26,"temp_max":288.15},"wind":{"speed":6.7,"deg":250},"rain": {"3h":0},"clouds": {"all":75},"dt":1399448174,"id":2643743,"name":"London","cod" :200}
  • 23. Filtrowanie komunikacji JSON Modsecurity 2.8.0: SecRule REQUEST_HEADERS:Content-Type "application/json" "id:'2200001',phase:2,t:none,t:lowercase,pass,log,c tl:requestBodyProcessor=JSON" Libyajl
  • 24. LAB2 - Filtrowanie komunikacji JSON
  • 25. Mechanizm HMAC HMAC Token Protection: Forceful Browsing Reflected XSS Ochrona CSRF Manipulacja QUERY_STRINGS Ochrona przed automatami/botami
  • 26. HMAC Manipulacja kontentem: W jaki spos坦b sprawdzi czy odbya si modyfikacja dokumentu? Parsowanie wyjcia (RESPONSE_BODY) Wyliczanie hasha dla wynikowego HTML Wstrzykiwanie unikalnych token坦w dla wszystkich link坦w dokumentu HTML Token = request parameter validation token
  • 27. HMAC Executing operator "validateHash" with param ".(aspx?|php)" against REQUEST_URI. Target value: "/showimage.php?file=./database_connect.php" Request URI without hash parameter [/showimage.php? file=./database_connect.php] Warning. Request URI matched ".(aspx?|php)" at REQUEST_URI. No Hash parameter [file "/etc/httpd/modsecurity.d/base_rules/hmac.conf"] [line "10"] [id "1000"] [msg "Hash Validation Violation."] [tag "testphp.vulnweb.com"]
  • 28. HMAC HMAC zablokuje: Skanery Automaty Botnety kt坦re nie pod甜aj za linkami dostpnymi w kontekcie aplikacji XSS/SQL-Injection
  • 29. HMAC
  • 30. HMAC Dyrektywy: SecDisableBackendCompression On SecRuleEngine On SecContentInjection On SecStreamOutBodyInspection On SecHashEngine On SecHashKey rand keyOnly SecHashParam "hmac" SecHashMethodrx "Hashhref" ".(aspx?|php)" SecHashMethodrx "HashFormAction" ".(aspx?|php)" SecRule REQUEST_URI "@validateHash .(aspx?|php)" "phase:2,id:1000,t:none,block,msg:'Hash Validation Violation.',ctl:hashEnforcement=On,setvar:tx.anomaly_score=+% {tx.critical_anomaly_score},setvar:'tx.msg=%{rule.msg}',setvar:tx.% {rule.id}-OWASP_CRS/WEB_ATTACK/PARAM_MANIPULATION-% {matched_var_name}=%{matched_var}"
  • 32. OWASP Top 10 Zbi坦r 10 najistotniejszych, kluczowych bd坦w w zabezpieczeniach aplikacji internetowych: A1 Injection A2 Broken Auth and Session MGMT A3 XSS A4 Insecure Direct Object References A5 Security Misconfiguration A6 Sensitive Data Exposure A7 Missing Function Level Access Control A8 CSRF A9 Known vulns A10 Unvalidated Redirects and Forwards
  • 33. OWASP Docs & tools ASVS ESAPI Testing Guide Cheat Sheets
  • 34. OWASP CRS Modsecurity to tylko silnik Musimy go naadowa: Tworzenie dedykowanych regu od podstaw per aplikacja Wykorzystanie gotowych regu OWASP CRS Hybryda czyli poczenie regu CRS z wasnymi reguami typu Whitelist
  • 35. OWASP CRS HTTP Protection - detecting violations of the HTTP protocol and a locally defined usage policy. Real-time Blacklist Lookups - utilizes 3rd Party IP Reputation 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. 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.
  • 36. OWASP CRS Reguy OWASP CRS podzielone s na: base_rules experimental_rules optional_rules slr_rules /etc/httpd/modsecurity.d/
  • 38. OWASP CRS Dostosowanie regu per aplikacja: SecRuleRemoveById SecRuleRemoveByMsg SecRuleRemoveByTag
  • 39. LAB5 instalacja i aktywacja regu CRS
  • 40. R坦甜ne Integracja z BEEF DDOS LUA Splunk for Modsecurity Learning mode i generowanie regu na podstawie raport坦w ze skaner坦w Wykrywanie zmiany User-Agent podczas sesji
  • 41. Podsumowanie To tylko zajawka na dobry pocztek W Modsecurity drzemi ogromne mo甜liwoci i potencja Idealny komponent rozbudowanego stacku typu Web Gateway/Secure Proxy Automatyzacja Skalowalno Customizacja Auditing