Bezpieczeństwo protokołów i inne podatności Marek Zachara http://marek.zachara.name 1/19
Motywacje ataków na sieć i połączenia Podsłuchanie danych dane uwierzytelniające, osobowe itp. Modyfikacja danych / przechwycenie połączenia Ataki 'Denial of Service' Ukrycie źródła transmisji Etap złożonego ataku na system Wyzwanie (?) Co to jest malware Klasyfikacje Przykładowe malware Statystyki Malware mobilne Metody ochrony 2/19
Protokół TCP zakłada zaufanie do pakietów Identyfikacja pakietów na podstawie adresów IP oraz Initial Sequence Number 3/19
Możliwości przy dostępie do transmisji Podsłuchanie pakietów Włączenie się w sesję (IP + ISN) Wrzucenie danych w komunikację Przerwanie połączenia (RST) Atak typu 'Blind' Jest tylko 65k wariantów ISN Znając SRC i DST IP można wygenerować wystarczającą liczbę pakietów żeby np. przerwać połączenie 4/19
Internet Protocol Security (ipsec) Wykorzystuje mechanizmy szyfrowania na poziomie pakietów IP Oferuje dwa typy transmisji: transport IP header TCP payload / data AH header TCP header AH header Original IP header Tunel IP header TCP header TCP payload / data Szyfrowanie i podpisywanie pakietów Support w routingu wymagany dla urządzeń IPv6, opcjonalny dla IPv4 5/19
Syn Flood Połączenie TCP rozpoczyna się od 3 way handshake Wysłanie dużej ilości SYN SYN-ACK pakietów SYN blokuje kolejkę połączeń Atak możliwy z różnych adresów (DdoS)? Rozwiązaniem jest zastosowanie tzw. SYN Cookies: Zapamiętujemy SYN i zwalniamy zasoby aż do ACK a 6/19
Ping Flood Pakiety ping (ICMP) mają często wysoki priorytet w sieci Atak na wysycenie pasma Modyfikacja: SMURF attack Broadcast ping 192.168.1.0 src: 192.168.1.120 192.168.1.120 7/19
BGP Poisoning Border Gateway Protocol służy m.in. do ustalania tras routingu między AS ami Ogłaszanie fałszywej trasy może prowadzić do utraty części ruchu black hole Routing loops Ogłoszenie swojej trasy jako optymalnej pozwala przekierować do siebie ruch Ogłaszanie i wycofywanie tras ( link flapping ) obniża jakość komunikacji 8/19
Przykład ataku BGP source: http://research.dyn.com/2015/03/uk traffic diverted ukraine/ 9/19
Bezpieczeństwo sieci WiFi Sieci te są powszechnie dostępne, również w firmach Użytkownicy (a często i administratorzy) nie zdają sobie sprawy z zagrożeń Warstwa komunikacyjna poza kontrolą Możliwe ataki na: Access Point Użytkowników 10/19
Przykłady ataków na połączenia WiFi Podsłuchiwanie połączeń nieszyfrowanych Zbieranie danych do analizy kryptograficznej MAC spoofing Ataki na użytkownika Symulowanie Access Point a Pozyskanie danych uwierzytelniających Atak typu Man in the Middle Ataki na AP Zestawienie połączenia i generowanie kluczy jest złożone obliczeniowo 11/19
Protokoły WiFi WEP najstarszy protokół, obecnie przestarzały, klucz RC 4(liniowa złożoność łamania) Znane i dostępne techniki odzyskiwania klucza WPA wprowadzony jako szybki zamiennik dla WEP, TKIP znany exploit WPA2 na razie bezpieczny (przy szyfrowaniu CCMP/AES) 12/19
Inne podatności 13/19
Przepełnienie bufora Dotyczy przede wszystkim aplikacji w językach które nie kontrolują dostępu do pamięci (np. C/C++) Podstawowe obszary ataku: Nadpisanie stosu Nadpisanie sterty Przykład wadliwego kodu: char buffer[100]; gets (buffer); 14/19
Skutki przepełnienia bufora Nieprzewidywalne i praktycznie dowolne (łącznie z uruchomieniem arbitralnego kodu z uprawnieniami root a) Możliwości testowania Ograniczone. Można stosować fuzzing i długie parametry wejściowe Metody ochrony GRE security / PAX itp. Kanarki 15/19
Nadmiar całkowitoliczbowy Wartości zmiennych mogą przyjmować wartości ograniczone reprezentacją zmiennej Wartości ujemne z reguły oznacza się przez zaznaczenie najstarszego bitu (U2) Problemy mogą powstawać przy rzutowaniu unsigned int int; int char Oraz podczas operacji arytmetycznych Potencjalne zagrożenia Wadliwe działanie, DoS Eskalacja uprawnień 16/19
Hazardy (race conditions) Zagrożenie powstaje w sytuacji gdy kilka wątków korzysta z tego samego obszaru pamięci (lub innych zasobów) Przykład: Zapisywanie przygotowanych danych raportu w bean ie aplikacyjnym AJAX różne fragmenty kodu strony operujące na tym samym zbiorze danych Ochrona przez lock zasobów. Może jednak doprowadzić do różnego rodzaju deadlock ów 17/19
Wadliwa obsługa błędów Ignorowanie błędów i wartości zwracanych przez funkcję (np. 'catch all' i zignoruj...) Obsługa niespecyficzna wyjątków Rzucanie wyjątków 'w górę' do UI lub jako komentarz w HTML Logowanie błędów czy można to źle zrobić? Tak: log forging 18/19
Dziękuję za uwagę. Pytania? Dokument udostępniany na licencji Creative Commons Wykorzystane materiały które nie miały wcześniej podanego źródła: Clipart openclipart.org NOP sled, IPSec Wikimedia Commons Elementy licencjonowane (royalty free), nie mogą być wykorzystywane oddzielnie: Tło prezentacji, awatary postaci więcej informacji: http://marek.zachara.name Attribution Share Alike 19/19