Zagrożenia związane z udostępnianiem aplikacji w sieci Internet I Ogólnopolska Konferencja Informatyki Śledczej Katowice, 8-9 stycznia 2009 Michał Kurek, Aleksander Ludynia
Cel prezentacji Wskazanie skali zagrożeń związanych z udostępnianiem systemów informatycznych w sieci Internet poprzez demonstrację praktycznych ataków sieciowych Wskazanie głównych metod ochrony przedsiębiorstw przed tymi zagrożeniami Strona 2
Plan prezentacji Statystyki dotyczące zagrożeń ze strony sieci Internet Omówienie podstawowych podatności aplikacji internetowych Demonstracja wykorzystania podatności typu Cross Site Scripting Demonstracja wykorzystania podatności typu SQL Injection Metody przeciwdziałania zagrożeniom Podsumowanie Strona 3
Zawsze jest jakaś droga wejścia... Strona 4
Zagrożenia związane z wykorzystaniem sieci informatycznych 69% zarejestrowanych incydentów bezpieczeństwa pochodziła z zewnątrz organizacji* Największe zagrożenie dla bezpieczeństwa organizacji stanowią*: przestępcy komputerowi (40%) pracownicy organizacji (34%) Średnia roczna wartość strat spowodowanych incydentami bezpieczeństwa wynosi w ramach jednej organizacji $465 700* Cel ataków na aplikacje internetowe**: Kradzież poufnych informacji (42%) Podmiana zawartości strony (23%) * Źródło: 2007 E-Crime Watch Survey Carnegie Mellon University ** Źródło: 2007 The WebHackingIncidentsDatabase AnnualReport Strona 5
Wzrost złożoności ataków w czasie Wysoka Wiedza włamywacza Ataki koordynowane automatycznie Rozproszone ataki odmowy dostępu Narzędzia Próbkowanie / skanowanie Podszywanie się Diagnostyka zarządzania siecią GUI Ataki na www Atak etapowy Cross site scripting Zaawansowane techniki skanujące Przejmowanie sesji Ataki odmowy dostępu Wyłączenie audytu Nasłuchiwanie Łamanie hasła Backdoory Włamania Złożoność ataku Wykorzystywanie stwierdzonych podatności Niska Zgadywanie hasła Samopowielający się kod 1980 1985 1990 1995 2000 Źródło: 2006Carnegie Mellon University Strona 6
Cykl życia podatności Liczba udanych ataków Początkujący włamywacze korzystają z pierwszych wersji exploit ów Pierwsze wersje exploit ów Stworzenie automatycznych narzędzi wykorzystujących podatność Wykorzystywanie automatycznych narzędzi na szeroką skalę Włamywacze zaczynają korzystać z nowych typów exploitów Doświadczeni włamywacze odkrywają podatność Publikacja łaty bezpieczeństwa Czas Źródło: 2006Carnegie Mellon University Strona 7
Najczęstsze podatności aplikacji internetowych (OWASP TOP 10) 1. 2. 3. 4. Podatności Cross Site Scripting (XSS) Podatności typu Injection Nieautoryzowane wykonanie plików Słabości wynikające z bezpośredniego odniesienia do obiektów 5. Podatności Cross Site Request Forgery (CSRF) 6. Wyciek informacji i niepoprawna obsługa błędów 7. Słabości w mechanizmach uwierzytelniania i zarządzania sesją 8. Nieskuteczne zabezpieczenia kryptograficzne 9. Niezabezpieczona transmisja danych 10. Niezabezpieczony dostęp do ukrytych adresów URL * Źródło: The Ten Most Critical Web Application Security Vulnerabilities OWASP 2007 Strona 8
Demonstracja podatności Cross Site Scripting
Podatność Cross Site Scripting (XSS) Przebieg ataku Cross Site Scripting: podatna aplikacja otrzymuje od atakującego odpowiednio spreparowane dane przeglądarka ofiary generuje stronę zawierającą złośliwe treści złośliwy kod zostaje wykonany w przeglądarce z uprawnieniami użytkownika Główne rodzaje podatności XSS: nietrwałe XSS (non-persistent / reflected XSS) trwałe XSS (persistent / stored XSS) Główne ryzyka: przejęcie sesji użytkownika ułatwienie ataków typu phishing podmiana zawartości strony przejęcie przeglądarki użytkownika Strona 10
Demonstracja podatności SQL Injection
Podatność SQL Injection Przebieg ataku SQL Injection: podatna aplikacja otrzymuje od atakującego odpowiednio spreparowane dane dane przekazywane są do zapytania do bazy danych bez odpowiedniej walidacji na poziomie bazy danych uruchamiane jest nieautoryzowane zapytanie Główne ryzyka: nieautoryzowany dostęp do danych obejście uwierzytelnienia nieautoryzowana modyfikacja danych atak typu odmowa usługi poprzez zniszczenie danych SQL_zap = "SELECT userfrom Users WHERE user= " & Username& &" " AND pswd = = " "& & Password& & " " " " wynik= GetQueryResult(SQL_zap) If wynik= "" ThenczyUwierzytelniono = False ElseczyUwierzytelniono = True SELECT user FROM Users WHERE user= x OR a = a AND pswd= x OR a = a Strona 12
Metody ochrony przed zagrożeniami
Metody ochrony przed zagrożeniami Wdrożenie skutecznych procesów: bezpieczeństwo w procesie tworzenia oprogramowania testowanie bezpieczeństwa wdrażanych zmian zarządzania podatnościami monitorowania bezpieczeństwa reagowania na incydenty bezpieczeństwa Wdrożenie środków technicznych ochrony przed zagrożeniami ze strony sieci informatycznych Przeprowadzanie okresowych audytów bezpieczeństwa aplikacji internetowych Strona 14
Audyt bezpieczeństwa aplikacji internetowych Techniki audytu bezpieczeństwa aplikacji internetowych: techniki automatyczne techniki manualne przegląd kodu źródłowego Rodzaj testów ze względu na zakres udostępnionych informacji: podejście black box podejście gray box podejście white box Inne istotne aspekty audytu bezpieczeństwa: niezależność audytora konieczność akceptacji testów przez strony trzecie potencjalne ryzyka związane z dostępnością aplikacji Strona 15
Czas na pytania
Ernst & Young Rondo ONZ 1 00-124 Warszawa Tel.: +48 (22) 557 70 00 Fax: +48 (22) 557 70 01 Michał Kurek Manager e-mail: michal.kurek@pl.ey.com Tel.: +48 22 557 8715 Fax: +48 22 557 7001 www.ey.com/pl Aleksander Ludynia Doświadczony Konsultant e-mail: aleksander.ludynia@pl.ey.com Tel.: +48 12 424 3213 Fax: +48 12 424 3201 2008 Ernst & Young Wszelkie prawa zastrzeżone Ernst & Young jest zarejestrowanym znakiem towarowym