Sieci komputerowe Wykład 11: Podstawy bezpieczeństwa sieci Marcin Bieńkowski Instytut Informatyki Uniwersytet Wrocławski Sieci komputerowe (II UWr) Wykład 11 1 / 35
Czyli krótki przeglad niektórych problemów Sieci komputerowe (II UWr) Wykład 11 2 / 35
Wstęp Poruszane kwestie: Nieuprawniony dostęp do informacji przechowywanych na komputerach wysyłanych przez sieć Zakłócanie pracy systemu/systemów (ataki DoS) Atak = próba uzyskania nieuprawnionego dostępu do usług lub/i informacji Sieci komputerowe (II UWr) Wykład 11 3 / 35
Wstęp Poruszane kwestie: Nieuprawniony dostęp do informacji przechowywanych na komputerach wysyłanych przez sieć Zakłócanie pracy systemu/systemów (ataki DoS) Atak = próba uzyskania nieuprawnionego dostępu do usług lub/i informacji Sieci komputerowe (II UWr) Wykład 11 3 / 35
Podatność na ataki Wstęp Dwie przyczyny: Złe zaprojektowanie protokołów komunikacyjnych......i zła ich implementacja lub/i konfiguracja. Obecnie głównie: Czynnik ludzki! Każdy system jest tak bezpieczny jak jego najsłabsze ogniwo. Sieci komputerowe (II UWr) Wykład 11 4 / 35
Podatność na ataki Wstęp Dwie przyczyny: Złe zaprojektowanie protokołów komunikacyjnych......i zła ich implementacja lub/i konfiguracja. Obecnie głównie: Czynnik ludzki! Każdy system jest tak bezpieczny jak jego najsłabsze ogniwo. Sieci komputerowe (II UWr) Wykład 11 4 / 35
Sniffing and spoofing Źle zaprojektowane protokoły Podsłuchiwanie i podszywanie się Sieci komputerowe (II UWr) Wykład 11 5 / 35
Sniffing and spoofing Podsłuchiwanie (sniffing) Nieszyfrowane protokoły: Ethernet z koncentratorami = tryb nasłuchu (promiscous mode) W przypadku przełaczników sieciowych: przepełnianie pamięci CAM przełacznika ARP spoofing Sieci komputerowe (II UWr) Wykład 11 6 / 35
Sniffing and spoofing Podsłuchiwanie, cd. W wyższych warstwach: podsłuchujemy przez wstawienie swojego komputera pomiędzy strony niezabezpieczonej komunikacji (man-in-the-middle) niezabezpieczona komunikacja = protokoły tekstowe (poczta, www, ftp) Przykładowo: Fizyczne wpięcie się w odpowiednie miejsce (np. zostawienie własnego AP w publicznym miejscu) Własny serwer DHCP RIP spoofing Jeśli komunikacja jest szyfrowana, to jest trudniej (SSH) Sieci komputerowe (II UWr) Wykład 11 7 / 35
Sniffing and spoofing Podsłuchiwanie, cd. W wyższych warstwach: podsłuchujemy przez wstawienie swojego komputera pomiędzy strony niezabezpieczonej komunikacji (man-in-the-middle) niezabezpieczona komunikacja = protokoły tekstowe (poczta, www, ftp) Przykładowo: Fizyczne wpięcie się w odpowiednie miejsce (np. zostawienie własnego AP w publicznym miejscu) Własny serwer DHCP RIP spoofing Jeśli komunikacja jest szyfrowana, to jest trudniej (SSH) Sieci komputerowe (II UWr) Wykład 11 7 / 35
SSH Sniffing and spoofing SSH (Secure Shell) umożliwia łaczenie się ze zdalnym komputerem. Idea: na poczatku serwer podaje klientowi swój klucz publiczny, klient na tej podstawie może szyfrować komunikację do klienta. (tak naprawdę to na tej podstawie ustalany jest symetryczny klucz sesji) Skad wiemy, że łaczymy się z właściwym serwerem? Nie wiemy! Niby trudniej podsłuchać, ale wchodzi czynnik ludzki. Sieci komputerowe (II UWr) Wykład 11 8 / 35
SSH Sniffing and spoofing SSH (Secure Shell) umożliwia łaczenie się ze zdalnym komputerem. Idea: na poczatku serwer podaje klientowi swój klucz publiczny, klient na tej podstawie może szyfrować komunikację do klienta. (tak naprawdę to na tej podstawie ustalany jest symetryczny klucz sesji) Skad wiemy, że łaczymy się z właściwym serwerem? Nie wiemy! Niby trudniej podsłuchać, ale wchodzi czynnik ludzki. Sieci komputerowe (II UWr) Wykład 11 8 / 35
IP spoofing Sniffing and spoofing Fałszowanie adresu źródłowego IP Jedyny problem: sprawić, żeby taki pakiet został przepuszczony przez routery. Rozwiazanie: weryfikacja (tzw. ingress filtering). Skuteczna tylko jeśli router jest blisko nadawcy. Z danej podsieci moga nadchodzić tylko adresy o danych numerach IP. Sieci komputerowe (II UWr) Wykład 11 9 / 35
Błędy implementacji Dobry protokół, zła implementacja Sieci komputerowe (II UWr) Wykład 11 10 / 35
Błędy implementacji Błędy implementacji Równie często wykorzystywane, co błędy samych protokołów. (Zdalne) błędy przepełnienia bufora Usługi działajace z za dużymi uprawnieniami Brak sprawdzania poprawności wprowadzanych danych (../, sql injection,...) Exploits... Sieci komputerowe (II UWr) Wykład 11 11 / 35
Błędy implementacji Radzenie sobie z błędami w implementacji Dobre rady: Śledzenie specjalnych serwisów (np. www.securityfocus.org i list dyskusyjnych (Bugtraq) Aktualizacja / łatanie systemu / usług Uruchamianie tylko tych usług, które sa konieczne. Sieci komputerowe (II UWr) Wykład 11 12 / 35
Błędy implementacji Do przemyślenia Przykład nieprecyzyjnej specyfikacji: Ethernet definiuje minimalna długość ramki. Standard określa, że ewentualne wypełnienie ma być zerami. Nie określa, kto i kiedy to powinien zrobić Efekt: pamięć na wypełnienie nie jest inicjowana. W sieć wysyłamy część wcześniej używanej pamięci RAM. Sieci komputerowe (II UWr) Wykład 11 13 / 35
Błędy implementacji Skanowanie portów Wyszukiwanie otwartych portów być może sa za nimi podatne usługi nmap Rodzaje: connect scan SYN scan ustawianie różnych dziwnych flag (np. samo ACK) Niejasny status prawny Sieci komputerowe (II UWr) Wykład 11 14 / 35
Czynnik ludzki Czynnik ludzki Po co się włamywać na serwer, skoro można zadzwonić i spytać o hasło? (Kevin Mitnick) Odciski klucza (fingerprints): ssh + ssl Phishing Sieci komputerowe (II UWr) Wykład 11 15 / 35
Czynnik ludzki, cd. Czynnik ludzki Powyższe uwagi sa bez znaczenia: Obrazek ze strony http://www.securingjava.com/chapter-one/chapter-one-7.html Sieci komputerowe (II UWr) Wykład 11 16 / 35
Ataki typu DoS Denial of Service Sieci komputerowe (II UWr) Wykład 11 17 / 35
Ataki typu DoS Blokowanie dostępu do usługi (Denial of service Cel: wyczerpanie zasobów systemu operacyjnego albo zatkanie łacza Jakie zasoby możemy wyczerpać: moc obliczeniowa limit jednoczesnych połaczeń (connect() SYN flood = wysyłanie samych segmentów SYN (krótka kolejka oczekujacych połaczeń lub/i rezerwowanie zasobów już przed nawiazaniem połaczenia) Sieci komputerowe (II UWr) Wykład 11 18 / 35
Odmiany DoS Ataki typu DoS DoS wykonywany z już przejętych komputerów lub/i ze sfałszowanych adresów źródłowych IP DDoS rozproszony DoS (wykorzystanie tzw. botnets) Odbity (reflected) DoS Wysyłamy do różnych komputerów komunikat z fałszywym adresem źródłowym = adres IP ofiary Komputery odpowiadaja ofierze a nie nam Komunikat = segment SYN, ICMP echo request (ping) Przykład: smurf attack = wysyłamy ping na adres broadcast z podmienionym adresem IP ofiary (obecnie nie bardzo działa) Niezamierzony DDoS (tzw. slashdot effect) Sieci komputerowe (II UWr) Wykład 11 19 / 35
Odmiany DoS Ataki typu DoS DoS wykonywany z już przejętych komputerów lub/i ze sfałszowanych adresów źródłowych IP DDoS rozproszony DoS (wykorzystanie tzw. botnets) Odbity (reflected) DoS Wysyłamy do różnych komputerów komunikat z fałszywym adresem źródłowym = adres IP ofiary Komputery odpowiadaja ofierze a nie nam Komunikat = segment SYN, ICMP echo request (ping) Przykład: smurf attack = wysyłamy ping na adres broadcast z podmienionym adresem IP ofiary (obecnie nie bardzo działa) Niezamierzony DDoS (tzw. slashdot effect) Sieci komputerowe (II UWr) Wykład 11 19 / 35
Ataki typu DoS Obrona przed DDoS Nie ma dobrego sposobu Przed DDoS można się bronić tylko jeśli pochodzi z jednego geograficznego obszaru Problem przy DoS: ustalenie źródła ataków (podrobione źródłowe adresy IP), potem można zadzwonić do odpowiedniego administratora ICMP Traceback Każdy router dla przesyłanego pakietu, z małym prawdopodobieństwem (ok. 1/20.000), wysyła do odbiorcy dodatkowo komunikat ICMP Komunikat zawiera informacje o przesyłanym właśnie przez router pakiecie, informacje o routerze, etc. Sieci komputerowe (II UWr) Wykład 11 20 / 35
Zapory Zapory Sieci komputerowe (II UWr) Wykład 11 21 / 35
Zapora (firewall) Zapory Po co? Pierwsza linia obrony Rejestrowanie i kontrolowanie dostępu do usług Rejestrowanie ataków i skanowania portów Sieci komputerowe (II UWr) Wykład 11 22 / 35
Gdzie zapora? Zapory Często zapora jest osobnym komputerem, pełniacym też funkcję routera: Ilustracja z ksiażki Linux Serwery Bezpieczeństwo, Michael D. Bauer Sieci komputerowe (II UWr) Wykład 11 23 / 35
Gdzie zapora? (cd.) Zapory W takim przypadku zapora może: wpuszczać ruch do DMZ (strefa zdemilitaryzowana) tylko na określonych portach (WWW, FTP) wpuszczać na port SSH serwerów DMZ tylko z sieci lokalnej nie wpuszczać nic do sieci wewnętrznej... Sieci komputerowe (II UWr) Wykład 11 24 / 35
Reasumujac Zapory Zapora analizuje przechodzacy przez nia ruch (pakiety) i podejmuje decyzje co zrobić z pakietami: Przyjać Odrzucić Zmodyfikować Przekazać dalej Zarejestrować do pliku dziennika Dlatego będziemy zamiennie stosowali pojęcie filtr pakietów. Sieci komputerowe (II UWr) Wykład 11 25 / 35
Klasyfikacja filtrów Zapory Klasyfikacja filtrów pakietów 1 Filtry proste: działaja w warstwie IP, klasyfikacja na podstawie nagłówka IP + numery portów szybkie, bardzo nieprecyzyjne przykładowo: ipchains w jadrach 2.2 Linuksa 2 Filtry stanowe: działaja w warstwie TCP (śledza trójstopniowe uzgadnianie), znaja stan połaczenia nowe możliwości: np. odróżnienie pakietów, które sa odpowiedzia na nasze zapytanie od pakietów przychodzacych. 3 Filtry działajace w warstwie aplikacji wolne analizuja to co się dzieje wewnatrz segmentów i datagramów potrafia akceptować i odrzucać pakiety na tej podstawie: np. port danych w połaczeniach FTP Sieci komputerowe (II UWr) Wykład 11 26 / 35
Klasyfikacja filtrów Zapory Klasyfikacja filtrów pakietów 1 Filtry proste: działaja w warstwie IP, klasyfikacja na podstawie nagłówka IP + numery portów szybkie, bardzo nieprecyzyjne przykładowo: ipchains w jadrach 2.2 Linuksa 2 Filtry stanowe: działaja w warstwie TCP (śledza trójstopniowe uzgadnianie), znaja stan połaczenia nowe możliwości: np. odróżnienie pakietów, które sa odpowiedzia na nasze zapytanie od pakietów przychodzacych. 3 Filtry działajace w warstwie aplikacji wolne analizuja to co się dzieje wewnatrz segmentów i datagramów potrafia akceptować i odrzucać pakiety na tej podstawie: np. port danych w połaczeniach FTP Sieci komputerowe (II UWr) Wykład 11 26 / 35
Klasyfikacja filtrów Zapory Klasyfikacja filtrów pakietów 1 Filtry proste: działaja w warstwie IP, klasyfikacja na podstawie nagłówka IP + numery portów szybkie, bardzo nieprecyzyjne przykładowo: ipchains w jadrach 2.2 Linuksa 2 Filtry stanowe: działaja w warstwie TCP (śledza trójstopniowe uzgadnianie), znaja stan połaczenia nowe możliwości: np. odróżnienie pakietów, które sa odpowiedzia na nasze zapytanie od pakietów przychodzacych. 3 Filtry działajace w warstwie aplikacji wolne analizuja to co się dzieje wewnatrz segmentów i datagramów potrafia akceptować i odrzucać pakiety na tej podstawie: np. port danych w połaczeniach FTP Sieci komputerowe (II UWr) Wykład 11 26 / 35
Zapory Klasyfikacja filtrów pakietów Przykład filtra stanowego: iptables Filozofia: Trzy łańcuchy pakietów INPUT, FORWARD i OUTPUT. 1 INPUT: pakiety przychodzace z zewnatrz i kończace trasę na naszym komputerze 2 FORWARD: pakiety przechodzace przez nasz komputer 3 OUTPUT: pakiety tworzone lokalnie i opuszczajace nasz komputer Dla każdego łańcucha definiujemy ciag reguł (warunek + akcja) możemy zdefiniować domyślna politykę pakietów (odrzucanie lub przyjmowanie), jeśli żadna reguła nie zostanie dopasowana Sieci komputerowe (II UWr) Wykład 11 27 / 35
Zapory Klasyfikacja filtrów pakietów Przykład: Stacja robocza z usługa SSH Przykład iptables -P INPUT DROP iptables -P OUTPUT ACCEPT iptables -P FORWARD DROP iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT Czy to będzie działać? Tak ale tylko częściowo: połaczenia z zewnatrz na port SSH będa działać, ale połaczenia z naszego komputera na zewnętrzny serwer WWW już nie. Sieci komputerowe (II UWr) Wykład 11 28 / 35
Zapory Klasyfikacja filtrów pakietów Przykład: Stacja robocza z usługa SSH Przykład iptables -P INPUT DROP iptables -P OUTPUT ACCEPT iptables -P FORWARD DROP iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT Czy to będzie działać? Tak ale tylko częściowo: połaczenia z zewnatrz na port SSH będa działać, ale połaczenia z naszego komputera na zewnętrzny serwer WWW już nie. Sieci komputerowe (II UWr) Wykład 11 28 / 35
Zapory Klasyfikacja filtrów pakietów Przykład: Stacja robocza z usługa SSH Przykład iptables -P INPUT DROP iptables -P OUTPUT ACCEPT iptables -P FORWARD DROP iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT Czy to będzie działać? Tak ale tylko częściowo: połaczenia z zewnatrz na port SSH będa działać, ale połaczenia z naszego komputera na zewnętrzny serwer WWW już nie. Sieci komputerowe (II UWr) Wykład 11 28 / 35
Stan połaczeń Zapory Klasyfikacja filtrów pakietów W filtrach bezstanowych trzeba odblokować połaczenia które po naszej stronie maja wysokie porty ( > 1023 ). W filtrach stanowych: iptables -A INPUT -m state - -state ESTABLISHED -j ACCEPT Elementy filtra aplikacyjnego: iptables potrafi też śledzić połaczenia FTP i otwierać odpowiednie porty. Sieci komputerowe (II UWr) Wykład 11 29 / 35
Iptables Zapory Klasyfikacja filtrów pakietów Można klasyfikować pakiety na podstawie interfejsu przychodzacego/wychodz acego adresu źródłowego/docelowego IP portu docelowego/źródłowego Sieci komputerowe (II UWr) Wykład 11 30 / 35
Odrzucanie połaczeń Zapory Klasyfikacja filtrów pakietów Połaczenia można odrzucić na dwa sposoby: Zgodny z RFC: przez -j REJECT. Nasz serwer odpowie wtedy komunikatem ICMP icmp-port-unreachable. Ciche porzucenie pakietu przez -j DROP. Serwer nie odpowiada nic. Utrudnia to pracę skanerów portów, gdyż musza wtedy czekać na timeout dla połaczenia. Sieci komputerowe (II UWr) Wykład 11 31 / 35
NAT Zapory Klasyfikacja filtrów pakietów Często zaporę łaczy się z NAT (Network Adress Translation), choć sa to odrębne rozwiazania. Router NAT zamienia adresy źródłowe sieci X, która leży za nim na swój własny adres IP Dla użytkownika z zewnatrz wyglada to tak jakby komunikował się z routerem, sieć X jest niewidoczna. Sieci komputerowe (II UWr) Wykład 11 32 / 35
Tunelowanie połaczeń Tunelowanie połaczeń Sieci komputerowe (II UWr) Wykład 11 33 / 35
Tunelowanie połaczeń Tunelowanie połaczeń Często krytyczne dane przesyłamy niezaszyfrowane (POP3, SMTP, FTP...) Jeśli mamy konto na zdalnej maszynie, za pomoca ssh możemy szyfrować te połaczenia. Obrazek ze strony http://www.ssh.com/support/documentation/online/ssh/adminguide/32/port_forwarding.htm Sieci komputerowe (II UWr) Wykład 11 34 / 35
Tunelowanie połaczeń Tunelowanie połaczeń cd. Przykład Połaczenia z portem 4025 na lokalnym komputerze będa przekazywane (i szyfrowane po drodze) do komputera zdalny.serwer.pl, a tam przekazywane do portu 25. ssh -L 4025:localhost:25 user@zdalny.serwer.pl Tunelowanie wszystkich połaczeń: VPN (wirtualna sieć prywatna) Sieci komputerowe (II UWr) Wykład 11 35 / 35
Tunelowanie połaczeń Tunelowanie połaczeń cd. Przykład Połaczenia z portem 4025 na lokalnym komputerze będa przekazywane (i szyfrowane po drodze) do komputera zdalny.serwer.pl, a tam przekazywane do portu 25. ssh -L 4025:localhost:25 user@zdalny.serwer.pl Tunelowanie wszystkich połaczeń: VPN (wirtualna sieć prywatna) Sieci komputerowe (II UWr) Wykład 11 35 / 35