Tradycyjny WAF (Web Application Firewall) jest zwykle oparty na regułach stworzonych przez inżynierów bezpieczeństwa na podstawie analizy opublikowanych najnowszych rodzajów podatności oraz przykładów ataków. Reguły te, często bazujące na wyrażeniach regularnych polegają m.in. na znalezieniu określonych ciągów znaków występujących w zapytaniu (sygnatur ataków). Doświadczenie pokazuje jednak, że atakujący stale dostosowują swoje metody, modyfikując zapytania tak, aby nie zostały one dopasowane do istniejących już sygnatur. W rezultacie, potrzebna jest ciągła praca ekspertów od cyberbezpieczeństwa, którzy analizują działanie WAF i aktualizują sygnatury tak, by był on w stanie wykrywać nowe zagrożenia. W prezentacji przedstawione zostanie rozwiązanie mające na celu optymalizację tego procesu poprzez wykorzystanie technik uczenia maszynowego. Posiadając przykłady poprawnych i błędnych zapytań można stworzyć model predykcyjny, który automatycznie będzie klasyfikował nowe żądania jako podejrzane lub prawidłowe, pozwalając na wykrycie nieznanych wcześniej naruszeń. W ten sposób, praca inżynierów bezpieczeństwa nad aktualizacją i ulepszeniem WAF, może zostać w znacznym stopniu zautomatyzowana, a analiza tysięcy zapytań zastąpiona przeglądem niewielkiego podzbioru żądań zaklasyfikowanych jako podejrzane.
http://plnog.pl
https://www.facebook.com/PLNOG/
https://twitter.com/PLNOG
Testy wydajnościowe - najlepsze praktyki - Kuba Gajda
PLNOG19 - Andrzej Prałat & Wojciech Rybicki - Jak usprawnić działanie WAF wykorzystując machine learning?
1. Jak usprawnić działanie WAF
wykorzystując uczenie maszynowe?
Andrzej Prałat & Wojciech Rybicki
2. Kim jesteśmy
● Andrzej Prałat
Machine Learning Engineer @ Grey Wizard
● Wojciech Rybicki
Machine Learning Engineer @ Grey Wizard
● WAF
● Ochrona przed atakami DDOS
● Load balancing
● CDN
3. Agenda
1. Wstęp
a. Ogólne informacje dotyczące Web Application Firewall (WAF)
b. Dlaczego WAF stanowi istotny element ochrony
c. Rodzaje błędów popełnianych przez WAF
d. Dlaczego WAF wymaga aktualizacji
e. Problemy związane z aktualizowaniem WAF
2. Opis rozwiązania
a. Wstęp do tematyki uczenia maszynowego
b. Zbiór danych
c. Przygotowywanie atrybutów
d. Jak oceniać model predykcyjny
e. Wybór modelu uczącego
3. Rezultaty
5. Dlaczego WAF stanowi istotny element ochrony?
● Większość aplikacji posiada przynajmniej jedną podatność na atak
○ 86% wg Whitehat Security’s 2015 Report
○ 80% wg Contrast Security’s 2017 Report
○ 99.7% wg Trustwave Global Security’s 2017 Report
● Podatność nie zawsze musi dotyczyć naszego kodu
● Virtual patching
6. Koszt pomyłek
fałszywie pozytywnych
Koszt pomyłek
fałszywie negatywnych
Web Application Firewall Wysoki Wysoki
Filtrowanie spamu Wysoki Niski
Badania przesiewowe Niski Wysoki
Weryfikowanie skuteczności działania WAF
7. Aktualizacja WAF
● Przyczyny potrzeby aktualizacji WAF:
○ Nowe podatności
○ Nowe sposoby ominięcia detekcji oraz błędy w obecnej implementacji reguł
https://github.com/attackercan/regexp-security-cheatsheet
○ Zmiany w sposobie działania chronionej aplikacji
● Celem aktualizacji jest redukcja liczby nowych błędów
● WAF, który nie jest aktualizowany przestaje pełnić swoją funkcję
Wyrażenia regularne
/?x=<script>alert(1)</script>
REGEX: (<script[^>]*>.*?)
8. Jakie problemy wiążą się z utrzymywaniem WAF?
/?x=<script>alert(1)</script>
● Jak ocenić czy WAF działa dobrze?
● Mała widoczność błędów fałszywie negatywnych.
● Dane silnie niezrównoważone (~ 1:2500)
● Wymaga dużej wiedzy
● Czasochłonne
12. Zbiór danych
URL ... Class
/?x=..%2F..%2F..%2F..%2Fetc%2Fpasswd ... 1
/backup.sql ... 1
/suggest/?q=hello%3Cscript%3Ejavascript(%27xss%27)%3B&platform_id=12 ... 1
/ ... 0
/faq ... 0
/index.php ... 0
/ ... 0
/category/251/index.html ... 0
/suggest/?q=gam ... 0
/index.asp ... 0
... ... ...
● Podział na zbiór treningowy i testowy
13. Feature engineering
● URL
○ N-grams
○ Liczba znaków specjalnych jak ‘..’, ‘<’, ‘>’, słowa kluczowe SQL
● IP
○ Geolokalizacja
○ Właściwości IP
○ Obecność na listach
● User agent
○ Wiek przeglądarki
○ Wykorzystywane oprogramowanie
● ...
14. N-Grams
● n=3
b a c k u p . s q l b a c k u p . s q l b a c k u p . s q l b a c k u p . s q l
b a c k u p . s q l b a c k u p . s q l b a c k u p . s q l b a c k u p . s q l
26. Co udało się uzyskać?
● Ciągła weryfikacja poprawności działania WAF - większa kontrola nad
systemem
● Zautomatyzowanie procesu weryfikacji - jego utrzymanie nie wymaga
żadnych czynności
● Szybsze usprawnianie WAF - oszczędność czasu i ludzi