Bezpieczeństwo Systemów Sieciowych dr inż. Łukasz Sturgulewski, luk@kis.p.lodz.pl, http://luk.kis.p.lodz.pl/ dr inż. Andrzej Frączyk, a.fraczyk@kis.p.lodz.pl BSS - v2013 1
Zestawienie producentów zapór sieciowych według Gartnera BSS - v2013 2
Warstwa sieciowa warstwa 3 application layer warstwa aplikacji presentation layer warstwa prezentacji session layer warstwa sesji transport layer warstwa transportowa network layer warstwa sieciowa data link layer warstwa łącza danych physical layer warstwa fizyczna Odpowiada za transmisję bloków informacji poprzez sieć. Określa, jaką drogą przesyłane będą poszczególne jednostki danych (routing). Podstawową jednostką informacji w warstwie sieciowej jest pakiet. Umożliwia uniezależnienie warstw wyższych od transmisji danych, rodzaju technologii komutacji itp. BSS - v2013 3
Router BSS - v2013 4
Router Router pracuje w trzeciej warstwie modelu OSI. Łączy ze sobą segmenty sieci lub całe sieci. Może łączyć sieci pracujące w różnych technologiach warstwy drugiej np.: Ethernet, Frame Relay, DSL. Podejmuje decyzje o porcie na który zostanie przesłany pakietu na podstawie adresu grupy jednostek (adres sieci część adresu IP) tak aby ścieżka jaką będzie poruszał się pakiet była optymalna. Najważniejsze z urządzeń regulujących ruch w sieciach. Graficzny symbol routera: BSS - v2013 5
Przesyłanie danych L2 i L3 Domena kolizyjna Domena rozgłoszeniowa Segmentacja L2 Segmentacja L3 BSS - v2013 6
Routing Protokół routowalny: Protokół warstwy sieciowej dopuszczający kierowanie przepływem pakietów np. IP (Internet Protocol). Protokół routingu: Protokół określający sposób kierowania pakietami routowalnego protokołu sieciowego. Protokół routingu ułatwia obsługą protokołów routowalnych poprzez dostarczenie mechanizmów umożliwiających wymianę informacji o trasach (ścieżkach) np. RIP (Routing Information Protocol), EIGRP (Enhanced Interior Gateway Routing Protocol), OSPF (Open Shortest Path First), IS-IS (Intermediate System to Intermediate System), BGP (Border Gateway Protocol). Routing wieloprotokołowy: Routery mogą obsługiwać wiele protokołów routingu oraz wiele protokołów routowalnych. BSS - v2013 7
Routing Routing = Wyznaczanie ścieżki pakietu. Wyznaczanie ścieżki to proces, który umożliwia routerowi wybranie następnego skoku w drodze pakietu do adresata. W tym procesie mogą być brane pod uwagę różne czynniki np.: Odległość do celu; Przepustowość łącza; Obciążenie łącza; Koszt łącza. BSS - v2013 8
Protokół IP RFC 760: DOD STANDARD INTERNET PROTOCOL January 1980 Obsoleted by: 791 Updated by: 777 BSS - v2013 9
Protokół IP RFC 791: INTERNET PROTOCOL DARPA INTERNET PROGRAM PROTOCOL SPECIFICATION September 1981 Updated by: 1349, 2474, 6864 BSS - v2013 10
Protokół IP (relacje z innymi protokołami) +------+ +-----+ +-----+ +-----+ Telnet FTP TFTP...... +------+ +-----+ +-----+ +-----+ +-----+ +-----+ +-----+ TCP UDP...... +-----+ +-----+ +-----+ +--------------------------+----+ Internet Protocol & ICMP +--------------------------+----+ +---------------------------+ Local Network Protocol +---------------------------+ BSS - v2013 11
Protokół IP W warstwie sieciowej dane są enkapsulowane w pakiety: Nagłówek pakietu Dane przenoszone przez pakiet Protokół przyjmuje dane z warstwy wyższej (transportowej), nie troszcząc się zupełnie o ich zawartość. Nagłówek pakietu IP: WERSJA DŁ. NAGŁ TYP OBSŁUGI DŁUGOŚĆ CAŁKOWITA IDENTYFIKACJA ZNACZ NIKI PRZES UNIĘCIE FRAGMENTU CZAS ŻYCIA PROTOKÓŁ SUMA K ONTROLNA NAGŁÓ WKA ADRES IP NADAWCY ADRE S IP ODBIORCY OPCJE IP UZUPEŁNIENIE BSS - v2013 12
Nagłówek pakietu IP WERSJA (4 bity): Wersja protokołu IP, z którego użyciem utworzono ten pakiet (obecnie jest to wersja czwarta). DŁUGOŚĆ NAGŁÓWKA (4 bity): Większość pól nagłówka ma stałą wielkość, oprócz pól OPCJE IP i UZUPEŁNIENIE. Wielkość ta określa długość nagłówka mierzoną w 32 bitowych słowach. TYP OBSŁUGI (8 bitów): 0 2 3 4 5 7 PIERWSZEŃSTWO O S P NIEUŻYWANE Pierwszeństwo: Pole to, pomimo iż daje duże możliwości kontroli przepływu danych, nie jest praktycznie wykorzystywane. Wartość tego pola jest liczbą całkowitą z przedziału od 0 do 7, gdzie 0 normalny stopień ważności, a 7 najwyższy stopień ważności (sterowanie siecią). O: Bit oznaczający prośbę o małe opóźnienia. S: Bit oznaczający prośbę o wysoką szybkość przesłania. P: Bit oznaczający prośbę o wysoką niezawodność. Uwaga: Powyższe prośby są traktowane w formie sugestii - nie mają i nie mogą mieć charakteru żądania! BSS - v2013 13
Nagłówek pakietu IP DŁUGOŚĆ CAŁKOWITA (16 bitów): Całkowita długość pakietu IP mierzona w oktetach (maksymalnie 65 535). Kontrola fragmentacji i składania pakietu (Fragmentacja następuje w wyniku przesyłania pakietów przez sieci o różnym MTU (Maximum Transfer Unit)): IDENTYFIKACJA (16 bitów): Umożliwia identyfikacje fragmentów należących do tego samego pakietu. ZNACZNIK (3 bity): Umożliwia kontrolę fragmentacji (zerowy bit = 0, pierwszy bit = 1 oznacza nie fragmentuj, drugi bit = 1 oznacza dalsze fragmenty ). PRZESUNIĘCIE FRAGMENTU (13 bitów): Mierzone w jednostkach 8-oktetowych. Fragmenty pakietu mogą docierać do celu w różnej kolejności, a dzięki temu polu możliwe jest prawidłowe połączenie wszystkich części. CZAS ŻYCIA (8 bitów): Określa jak długo pakiet może być transportowany w sieci. Nadawca decyduje o czasie życia a urządzenia obsługujące transmisję (routery) zmniejszają wartość tego parametru. W przypadku osiągnięcia zera, usuwają pakiet z sieci. PROTOKÓŁ (8 bitów): Określa protokół wyższego poziomu, który został użyty do utworzenia treści pola danych pakietu. SUMA KONTROLNA NAGŁÓWKA (16 bitów): Zapewnia kontrolę poprawności nagłówka (przy obliczaniu tego pola przyjmuje się, że suma kontrolna nagłówka równa się zero). ADRES IP NADAWCY i ADRES IP ODBIORCY (po 32 bity): Omówione wcześniej adresy IP jednostki wysyłającej i odbierającej pakiet. BSS - v2013 14
Przydzielanie adresów IP Początkowo jedyną organizacją dokonującą przydziałów numerów IP była IANA (Internet Assigned Numbers Authority). Później części przestrzeni adresowej były przekazywane w zarząd różnych lokalnych organizacji, przez które został przejęty proces przydzielania adresów IP. Pod adresem: http://www.iana.org/assignments/ipv4-address-space znajduje się aktualny przydział adresów IP dla organizacji i firm. BSS - v2013 15
Przydzielanie adresów IP Wiadomo, że 32-bitowe adresy IP są wyczerpane (licznik z roku 2011). Z ogólnej puli ponad 4 mld adresów (dokładnie 4 294 967 296) 100% zostało już rozdysponowanych. Można to zobaczyć odwiedzając stronę www.potaroo.net/tools/ipv4 BSS - v2013 16
ICMP (Internet Control Message Protocol) Protokół ICMP jest częścią protokołu IP i służy do przekazywania informacji o sytuacjach wyjątkowych. Powstał z myślą o udostępnieniu routerom mechanizmu powiadamiania węzłów o przyczynach problemów w dostarczeniu pakietów do celu. Jednak może być wykorzystany do komunikacji pomiędzy dwoma dowolnymi węzłami w sieci. Komunikaty ICMP są wysyłane do pierwotnego nadawcy, który musi otrzymaną wiadomość, zinterpretować i podjąć odpowiednie kroki w celu wyeliminowania błędów. Komunikat ICMP jest przesyłany przez sieć w części danych pakietu IP (mimo to nie jest on protokołem wyższego poziomu, lecz stanowi rozszerzenie protokołu IP). Komunikat o błędzie nie jest tworzony, jeśli błąd powstał przy przesyłaniu komunikatu ICMP. BSS - v2013 17
Typy komunikatów Prośba o echo, Odbiorca nieosiągalny, Tłumienie nadawcy, Zmień trasowanie, Przekroczenie czasu, Inne kłopoty, Prośba o czas, Prośba o maskę adresową. BSS - v2013 18
Budowa komunikatu ICMP Każdy komunikat ICMP ma swój własny format. Jednak istnieje kilka cech wspólnych. Pierwsze pola komunikatu są takie same: TYP (8 bitów) Identyfikator typu komunikatu; KOD (8 bitów) Dalsze informacje na temat rodzaju komunikatu; SUMA KONTROLNA odnosi się wyłącznie do komunikatu ICMP i jest obliczana wg tych samych reguł, co w przypadku IP. BSS - v2013 19
Prośba o echo Pomyślna odpowiedź tzw. odpowiedź z echem oznacza, że komunikacja między węzłami funkcjonuje prawidłowo. TYP (8 lub 0) KOD SUMA KONTROLNA IDENTYFIKATOR NUMER KOLEJNY DANE... TYP: 8 prośba o echo, 0 odpowiedź z echem; IDENTYFIKATOR umożliwia powiązanie próśb i odpowiedzi przez nadawcę; NUMER KOLEJNY umożliwia powiązanie próśb i odpowiedzi przez nadawcę; DANE te same dane są w prośbie i odpowiedzi z echem. BSS - v2013 20
Odbiorca nieosiągalny Wysyłane przez router, jeśli nie jest on w stanie nic dalej zrobić z pakietem (router wysyła komunikat ICMP i traci pakiet). TYP (3) KOD (0 12) SUMA KONTROLNA ZERO (nieużywane) Nagłówek oraz pierwsze 64 bity pakietu, który spowodował błąd.... BSS - v2013 21
Tłumienie nadawcy Komunikat wysyłany przez router w celu powiadomienia nadawcy o zbyt dużym obciążeniu napływającymi pakietami. TYP (4) KOD (0) SUMA KONTROLNA ZERO (nieużywane) Nagłówek oraz pierwsze 64 bity pakietu, który spowodował błąd.... BSS - v2013 22
Zmień trasowanie Komunikat przesyłany z routera do węzła znajdującego się w tej samej sieci i próbującego wysyłać pakiety przez powyższy router podczas gdy istnieje bardziej optymalna droga. TYP (5) KOD (0 3) SUMA KONTROLNA ADRES ROUTERA (zapewniającego bardziej optymalną obsługę) Nagłówek oraz pierwsze 64 bity pakietu, który spowodował błąd.... BSS - v2013 23
Przekroczenie czasu Router porzuca pakiet, gdy licznik czasu jego życia został wyczerpany, oraz wysyła komunikat ICMP przekroczenie czasu (KOD 0). Ten sam komunikat jest wysyłany, gdy zostanie przekroczony czas na składanie fragmentów pakietu w węźle (KOD 1). TYP (11) KOD (0 1) SUMA KONTROLNA ZERO (nieużywane) Nagłówek oraz pierwsze 64 bity pakietu, który spowodował błąd.... BSS - v2013 24
Inne kłopoty Komunikat inne kłopoty jest wysyłany przez router gdy stwierdzi np. błędy w nagłówku pakietu. TYP (12) KOD (0 1) SUMA KONTROLNA WSKAŹNIK ZERO (nieużywane) Nagłówek oraz pierwsze 64 bity pakietu, który spowodował błąd.... WSKAŹNIK wskaźnik do oktetu, który spowodował błąd (KOD 0). Jeśli brakuje jakiejś opcji pole WSKAŹNIK nie jest wypełniane tylko zwracany jest KOD 1. BSS - v2013 25
Prośba o czas Komunikat prośba o czas umożliwia synchronizację zegarów i szacowanie czasu przesyłania pakietów. TYP (13 14) KOD (0) SUMA KONTROLNA IDENTYFIKATOR NUMER KOLEJNY CZAS POCZĄTKOWY (wypełnia pierwotny nadawca przed wysłaniem) CZAS OTRZYMANIA (wypełnia odbiorca tuż po otrzymaniu) CZAS ODESŁANIA (wypełnia odbiorca tuż przed wysłaniem odpowiedzi) BSS - v2013 26
Prośba o maskę adresową Jednostka wysyła do routera to zapytanie, aby ustalić maskę podsieci. TYP (17 18) KOD (0) SUMA KONTROLNA IDENTYFIKATOR NUMER KOLEJNY MASKA ADRESOWA BSS - v2013 27
Warstwa transportowa warstwa 4 application layer warstwa aplikacji presentation layer warstwa prezentacji session layer warstwa sesji transport layer warstwa transportowa network layer warstwa sieciowa data link layer warstwa łącza danych physical layer warstwa fizyczna Najważniejsza zadania warstwy transportowej: Transport i regulacja przepływu informacji pomiędzy nadawcą i odbiorcą. Niezawodny i przezroczysty transfer danych między punktami końcowymi (hostami). Kontrola transmisji oraz wykrywanie błędów transmisji. Jednostką informacji na poziomie warstwy transportowej jest segment. Niezawodność połączenia w warstwie transportowej realizuje się wyłącznie środkami programowymi. BSS - v2013 28
Warstwa transportowa Rodzina protokołów TCP/IP zawiera dwa protokoły warstwy transportowej: TCP (Transmission Control Protocol) UDP (User Datagram Protocol) Warstwa sieciowa: dostarczenie danych Warstwa transportowa: kontrola poprawności danych BSS - v2013 29
TCP - własności usługi niezawodnego dostarczania danych Przesyłanie strumieni (przekazanie odbiorcy tego samego ciągu oktetów, który wysłał nadawca). Łączenie w obwód wirtualny (tworzenie wirtualnego połączenia między nadawcą i odbiorcą w celu ustalenia gotowości obu jednostek a później w celu wykrywania błędów transmisji). Przesyłanie z użyciem buforów (oczekiwanie i wysyłanie większej ilości danych tak, aby ograniczyć zbędny ruch w sieci mechanizm wypchnięcia, gdy dane należy wysłać natychmiast). Brak strukturyzacji strumienia (brak rozróżniania rodzaju przesyłanych danych użytkownika). Połączenie w pełni dwukierunkowe. BSS - v2013 30
Segment TCP Nagłówek Dane a.) postać ogólna PORT NADAWCY PORT ODBIORCY NUMER PORZĄDKOWY NUMER POTWIERDZENIA DŁ. NAG. ZAREZERWOWANE BITY KODU OKNO SUMA KONTROLNA WSKAŹNIK PILNYCH DANYCH OPCJE UZUPEŁNIENIE b.) postać szczegółowa nagłówka BSS - v2013 31
Segment TCP W TCP informacje między jednostkami są wymieniane w postaci segmentów TCP. Dotyczy to zarówno danych jak i procesów otwierania czy zamykania połączenia. PORT NADAWCY i PORT ODBIORCY (16 bitów): Porty TCP określające programy wymieniające między sobą dane. NUMER PORZĄDKOWY (32 bity): Liczba porządkowa pozwalająca odtworzyć właściwą kolejność segmentów. NUMER POTWIERDZENIA (32 bity): Określa numer oktetu, który nadawca spodziewa się otrzymać w następnej kolejności. DŁUGOŚĆ NAGŁÓWKA (4 bity): Określa rozmiar nagłówka segmentu jako wielokrotność 32 bitów. ZAREZERWOWANE (6 bitów): Przeznaczone do ewentualnego wykorzystania w przyszłości. BSS - v2013 32
Segment TCP BITY KODU (6 bitów): Określają przeznaczenie zawartości segmentu: Bity pola BITY KODU opisane od lewej do prawej: URG Wskaźnik pilności jest istotny; ACK Pole potwierdzenia jest istotne; PSH Ten segment zawiera prośbę o natychmiastowe wysłanie; RST Skasuj połączenie; SYN Zsynchronizuj numery porządkowe; FIN Koniec strumienia bajtów u nadawcy. OKNO (16 bit): Liczba oktetów którą może nadać nadawca bez potwierdzenia (16- bitowa liczba całkowita); SUMA KONTROLNA (16 bit): Służy do kontroli poprawności transmisji danych i nagłówka (16 bitów). Do jej obliczenia także stosuje się pseudonagłówek. WSKAŹNIK PILNYCH DANYCH (16 bit): Oznacza miejsce w segmencie gdzie kończą się pilne dane. Pilne dane powinny zostać dostarczone do programu po stronie odbiorcy poza strumieniem tak szybko jak to jest tylko możliwe. OPCJE: Jedna z opcji służy do ustalenia maksymalnego rozmiaru segmentu. Rozmiar segmentu zależy od: buforów jednostki nadawcy i odbiorcy; rodzaju sieci przez, którą będzie podróżował segment. BSS - v2013 33
TCP Nawiązywanie połączenia między punktami końcowymi Oba punkty końcowe muszą zgodzić się na współpracę. Jeden z punktów wykonuje funkcję pasywnego otwarcia (sygnalizując gotowość do nawiązania połączenia). Drugi używa funkcji aktywnego otwarcia aby ustalić połączenie. Nawiązanie połączenia TCP: Węzeł 1: Wysyła segment, w którym pole kodu ma ustawiony bit SYN; Węzeł 2: Wysyła segment, w którym pole kodu ma ustawione bity SYN i ACK; Węzeł 1: Wysyła segment, w którym pole kodu ma ustawiony bit ACK. BSS - v2013 34
TCP Zamykanie połączenia między punktami końcowymi Zamykanie połączenia: Węzeł 1: Wysyła segment, w którym pole kodu ma ustawiony bit FIN; Węzeł 2: Wysyła segment, w którym pole kodu ma ustawiony bit ACK; Węzeł 2: Wysyła segment, w którym pole kodu ma ustawione bity FIN i ACK; Węzeł 1: Wysyła segment, w którym pole kodu ma ustawiony bit ACK. BSS - v2013 35
TCP - Realizacja niezawodnego połączenie Metoda Pozytywne potwierdzanie z retransmisją : Nadawca zapisuje informacje o każdym wysłanym segmencie (uruchamia także licznik czasowy) i przed wysłaniem następnego segmentu czeka na potwierdzenie (komunikat ACK). Wykrywanie duplikatów: Każdy segment ma przydzielany numer identyfikacyjny, który musi być odesłany przez odbiorcę (potwierdzenie otrzymania segmentu). Technika Przesuwających się okien : Umożliwia przesyłanie wielu segmentów zanim nadawca otrzyma potwierdzenie. Technika Zmiennych rozmiarów okien : Nadawca i odbiorca ustalają w czasie transmisji rozmiar okna, dzięki temu można płynnie regulować generowany ruch. Uwaga: W TCP mechanizm okien działa na poziomie oktetów a nie segmentów. BSS - v2013 36
TCP Identyfikacja jednostek Protokół TCP jest zorientowany na połączenie, które musi nastąpić pomiędzy dwoma jednostkami końcowymi przed rozpoczęciem transmisji. Każdy punkt końcowy jest identyfikowany przez adres IP i port węzła np.: 192.51.212.4:80 Ten zapis oznacza port 80 węzła o adresie IP 192.51.212.4 Uwaga: Połączenie identyfikowane jest przez parę punktów końcowych stąd np. punkt 192.51.212.4:80 może występować w dwóch różnych połączeniach. BSS - v2013 37
UDP - Właściwości Minimalna, dodatkowa ilość przesyłanych danych przez sieć (małe obciążenie). Programy użytkowe biorą na siebie całą odpowiedzialność za rozwiązywanie problemów niezawodności, czyli: gubienie komunikatów; duplikowanie; opóźnienia; dostarczanie w niewłaściwej kolejności; utratę łączności z adresatem. BSS - v2013 38
Segment UDP Port UDP nadawcy Długość komunikatu UDP DANE... Port UDP odbiorcy Suma kontrolna UDP PORTY (16 bitów): Używane do odnajdywania procesu oczekującego na dany segment. DŁUGOŚĆ (16 bitów): Liczba oktetów segmentu UDP (min. 8). SUMA KONTROLNA (16 bitów): (może być zero, gdy nie używana). W celu obliczenia sumy kontrolnej stosuje się pseudonagłówek. BSS - v2013 39
UDP - Problemy Uwaga: Aplikacje wykorzystujące UDP, napisane bez obsługi błędów transmisji, ale testowane w środowisku sieci lokalnej, mogą działać bardzo dobrze, podczas gdy w sieci rozległej praktycznie przestaną funkcjonować. BSS - v2013 40
Numery portów TCP i UDP korzystają z numerów portów by dostarczyć dane do wyższych warstw modelu. Programiści używają numerów portów zgodnie z dokumentem RFC 1700. Podział: Porty poniżej 255 dla publicznych aplikacji Porty od 255 do 1023 dla firm i ich komercyjnych aplikacji Porty powyżej 1023 niezarezerwowane BSS - v2013 41
Najpopularniejsze numery portów Numer portu Usługa 7 ECHO 13 DAYTIME 20 FTP-DATA 21 FTP 23 TELNET 25 SMTP 37 TIME 42 NAMESERVER 53 DOMAIN 69 TFTP 113 AUTH 161 SNMP 162 SNMP-TRAP BSS - v2013 42
Wireshark: IP, TCP i UDP Wpisujemy w przeglądarce adres i OUTSIDE 79.96.21.160 / 28 tcp.pcapng Pakiety od 11, od 522 outside security-level 0 212.191.89.128 / 25 dmz security-level 50 subinterfaces, trunk 172.18.0.0 / 16 10.2.0.0 / 16 VLAN Admin sec.lev.95 10.10.0.0 / 16 VLAN Dyrekcja sec.lev.85 10.20.0.0 / 16 VLAN Pracownicy sec.lev.80 BSS - v2013 43
Wireshark: ICMP Wpisujemy w cmd ping OUTSIDE 79.96.21.160 / 28 ping.pcapng Pakiety od 6 outside security-level 0 212.191.89.128 / 25 dmz security-level 50 subinterfaces, trunk 172.18.0.0 / 16 10.2.0.0 / 16 VLAN Admin sec.lev.95 10.10.0.0 / 16 VLAN Dyrekcja sec.lev.85 10.20.0.0 / 16 VLAN Pracownicy sec.lev.80 BSS - v2013 44
Firewall Pojęcie Firewall (ściana ogniowa, zapora sieciowa): Co to jest? Jakie realizuje zadania? Czy konieczne? BSS - v2013 45
Firewall - Filtracja pakietów Filtracja pakietów to jedno z prostszych ale nadal bardzo ważnych i często używanych rozwiązań z zakresu bezpieczeństwa w sieciach komputerowych: wzrost bezpieczeństwa, zmniejszenie ruchu, może bazować na wybranych parametrach ruchu z warstw 2, 3, 4 i 7. BSS - v2013 46
Filtracja pakietów Filtracja pakietów: pl Listy kontroli dostępu ang Access Control List (ACL) BSS - v2013 47
ACL Idea działania list kontroli dostępu: BSS - v2013 48
ACL BSS - v2013 49
ACL Typy ACL: Standard ACL Extended ACL IP Named ACL Reflexive ACL Lock and Key (Dynamic ACL) Time Based ACL Context Based Access Control Authentication Proxy Commented IP ACL Entries Turbo ACL Distributed Time Based ACL Receive ACL Infrastructure Protection ACL Transit ACL http://perso.ens-lyon.fr/christophe.crespelle/enseignements/asr/acl-config.pdf BSS - v2013 50
Standard ACL Standard ACL weryfikuje pakiety sprawdzając wyłącznie pole adresu IP źródłowego. Weryfikuje więc wyłącznie adres źródła w protokole L3. Standard ACL pozwala albo zabrania na przesłanie pakietu bazując wyłącznie na adresie źródła! Składnia polecenia konfiguracji standardowej numerowanej IP ACL: Router(config)# access-list acl-number {deny permit} source [source-wildcard] [log] BSS - v2013 51
ACL definiowanie Jeśli chcemy określić każdy, dowolny adres i maskę sieci można zastąpić słowem any (any = 0.0.0.0 0.0.0.0). Jeśli chcemy wybrać jeden konkretny host, podajemy słowo host i adres (host 10.0.0.13 = 10.0.0.13 255.255.255.255). Jeśli chcemy do listy dostępu dodać wiele warunków (dopasowań) należy w następnym poleceniu accesslist podać ten sam numer listy. Kolejność kolejnych warunków (dopasowań) jest ważna, zgodnie z nią będą sprawdzane kolejne dopasowania. BSS - v2013 52
Extended ACL Extended ACL weryfikuje pakiety sprawdzając w nich dane warstw L3 i L4 źródła i celu. Dane warstwy L4 mogą dotyczyć portów TCP and UDP. Extended ACL daje większą elastyczność i kontrolę nad dostępem do sieci niż standard ACL. Składnia polecenia konfiguracji rozszerzonej numerowanej ACL: Router(config)# access-list acl-number {permit deny} protocol source-addr [source-wildcard] [operator operand] destination-addr [destination-wildcard] [operator operand] [established] BSS - v2013 53
Extended ACL - typy protokołów <0-255> An IP protocol number ahp Authentication Header Protocol eigrp Cisco's EIGRP routing protocol esp Encapsulation Security Payload gre Cisco's GRE tunneling icmp Internet Control Message Protocol igmp Internet Gateway Message Protocol ip Any Internet Protocol ipinip IP in IP tunneling nos KA9Q NOS compatible IP over IP tunneling ospf OSPF routing protocol pcp Payload Compression Protocol pim Protocol Independent Multicast tcp Transmission Control Protocol udp User Datagram Protocol BSS - v2013 54
Named ACL Named ACL umożliwia tworzenie zarówno standard jak i extended ACL. Named ACL ma nadawane nazwy zamiast numerów. Czy to jedyna zaleta / różnica?? Dodanie warunku pomiędzy istniejące. Usunięcie pojedynczego warunku z listy. Składnia polecenia konfiguracji IP TCP named ACL: Router(config)# ip access list {extended standard} name Router(config-std-nacl)# [sequence-number] {permit deny} tcp source source wildcard [operator [port]] destination destination wildcard [operator [port]] [established] BSS - v2013 55
ACL Etapy tworzenia ACL: Definiowanie listy dostępu Dodanie listy dostępu do interfejsu BSS - v2013 56
ACL definiowanie Definicja warunku (dopasowania) rozszerzonej listy dostępu: ASA(config)# access-list nr_listy extended <permit deny> protokół adres_źródła maska_źródła adres_celu maska_celu eq nr_portu Router(config)# access-list nr_listy <permit deny> protokół adres_źródła maska_źródła adres_celu maska_celu eq nr_portu BSS - v2013 57
ACL dodanie do interfejsu Dodanie listy dostępu do interfejsu: ASA(config)# access-group nr_listy <in out> interface nazwa_interfejsu Router(config-if)# ip access-group nr_listy <in out> BSS - v2013 58
Inbound, outbound Inbound dotyczy ruchu wchodzącego do interfejsu routera, przed użyciem tablicy routingu. Outbound dotyczy ruchu wychodzącego z interfejsu routera, po użyciu tablicy routingu. BSS - v2013 59
BSS - v2013 60
10.0.0.13 przed ACL BSS - v2013 61
Router konfig po dodaniu ACL running-config access-list 101 permit tcp host 10.0.0.13 any eq www access-list 102 deny tcp host 10.0.0.13 any eq ftp log access-list 102 permit ip any any interface FastEthernet0/1 description INSIDE ip address 10.255.255.254 255.0.0.0 ip access-group 102 in ip nat inside duplex auto speed auto! BSS - v2013 62
10.0.0.13 po ACL BSS - v2013 63
Router po ACL Log zgodny z protokołem Syslog (konsola, serwer Syslog): *Mar 1 05:51:55.406: %SEC-6-IPACCESSLOGP: list 102 denied tcp 10.0.0.13(1524) -> 153.19.251.222(21), 1 packet Router#sh ip access-lists Standard IP access list 1 10 permit 10.0.0.0, wildcard bits 0.255.255.255 (4716 matches) Extended IP access list 101 10 permit tcp host 10.0.0.13 any eq www Extended IP access list 102 10 deny tcp host 10.0.0.13 any eq ftp log (7 matches) 20 permit ip any any (26001 matches) BSS - v2013 64
Router po ACL debug ip packet *Mar 1 05:56:58.607: IP: s=10.0.0.13 (FastEthernet0/1), d=153.19.251.222, len 48, access denied BSS - v2013 65
Problemy ACL Problemy standard i extended ACL: Statyczność wpisów. Problem z połączeniami dwukierunkowymi. Analiza wyłącznie: IP + port. BSS - v2013 66
Extended ACL - established Urządzenie brzegowe ma wycinać ruch z zewnątrz: R1(config)# access-list 100 deny ip any any R1(config)# interface s0/0/0 R1(config-if)# ip access-group 100 in A co z ruchem powracającym do naszej sieci? established = (ACK) or (RST) R1(config)# access-list 100 permit tcp any eq 443 192.168.1.0 0.0.0.255 established BSS - v2013 67
Reflexive ACL Reflexive ACL zostały wprowadzone do Cisco IOS w 1996, rok po opcji TCP established. Reflexive ACL (filtrowanie pakietów sesji) używa tymczasowych reguł, które są usuwane gdy sesja zostanie zakończona (limituje to czas dla jednostki atakującej). Opcja established dostępna jest wyłącznie dla połączeń TCP. Dla pozostałych protokołów takich jak UDP i ICMP, należy definiować osobno, niezależnie reguły dla ruchu wychodzącego i powracającego. ACL zostały opracowane z myślą o ruchu jednokierunkowym a nie dwukierunkowym. Używając opcji reflect, dynamicznie tworzone są ACE aby zezwolić (nie odrzucić!) ruchu powrotnego. BSS - v2013 68
Reflexive ACL - przykład R1(config)# ip access-list extended internal_acl R1(config-ext-nacl)# permit tcp any any eq 80 reflect web-only-reflexive-acl R1(config-ext-nacl)# permit udp any any eq 53 reflect dns-only-reflexive-acl R1(config)# ip access-list extended external_acl R1(config-ext-nacl)# evaluate web-only-reflexive-acl R1(config-ext-nacl)# evaluate dns-only-reflexive-acl R1(config-ext-nacl)# deny ip any any R1(config)# interface s0/0/0 R1(config-if)# description connection to the ISP. R1(config-if)# ip access-group internal_acl out R1(config-if)# ip access-group external_acl in BSS - v2013 69
Dynamic ACL = lock-and-key ACL Dynamic ACL = lock-and-key ACL zostały wprowadzone do Cisco IOS w 1996 roku. Dynamic ACL tylko dla ruchu IP. Dynamic ACL są uzależnione od: połączenia Telnet, uwierzytelniania (lokalnego lub zdalnego) oraz extended ACL. Dynamic ACL przykładowe zastosowanie: Dostęp do wybranego hosta / serwera wewnątrz sieci dla wybranego użytkownika lub grupy użytkowników. Dynamic ACL zalety w stosunku do zwykłych standard i extended ACL: Dostarcza mechanizmów uwierzytelniania na poziomie użytkowników. Upraszcza zarządzanie w dużych sieciach (np. łączonych poprzez sieci publiczne). Redukuje liczbę przetwarzanych przez router ACL. Mniej możliwości / okazji do włamania dla intruza. Dostęp dla użytkowników do sieci wewnętrznej bez zmniejszania / wyłączania innych mechanizmów bezpieczeństwa. BSS - v2013 70
Dynamic ACL = lock-and-key ACL BSS - v2013 71
Dynamic ACL = lock-and-key ACL BSS - v2013 72
Time Based ACL Time-based ACL została wprowadzona do Cisco IOS w 1998, jest podobna do extended ACL ale jej aktywność jest uzależniona od aktualnego czasu (daty). Przykład: Użytkownicy mają prawo do swobodnego surfowania po Internecie w czasie przerwy i po pracy, nie mają zaś tego prawa w czasie godzin pracy. Time-based ACL pozwala zrealizować ten rodzaj polityki. Time-based ACL może zostać użyta także do pobierania logów z określonego ruchu w wybranym czasie (gdy mniejsze obciążenie sieci, gdy brak aktywności użytkowników). Zakres czasu musi zostać dodany do ACL. Taka ACL jest aktywna / używana tylko w określonym czasie (periodic lub absolute). BSS - v2013 73
Time Based ACL BSS - v2013 74
ACL weryfikacja ASA# show interface ASA# show access-list ASA# debug ip packet Router# show ip interface Router# show access-list Router# debug ip packet BSS - v2013 75
Wpływ ACL na bezpieczeństwo ACL pomagają w zwalczaniu różnych zagrożeń, np.: IP spoofing (wewnętrznych i zewnętrznych) Atak DoS TCP SYN Atak DoS smurf (np. podrzucenie ICMP do wnętrza sieci z adresem źródła takim jak adres ofiary) ACL także mogą filtrować wybrany ruch: Zmniejszają obciążenie urządzeń. Zwiększają bezpieczeństwo (np. odrzucanie komunikatów ICMP wchodzących i wychodzących (w tym ping i traceroute)). BSS - v2013 76
IP spoofing (wewnętrznych i zewnętrznych) Z zasady administrator powinien wyciąć ruch zewnętrzny zawierający niedozwolone adresy źródłowe: adresy local host (127.0.0.0/8), zarezerwowane, prywatne adresy (RFC 1918, Address Allocation for Private Internets), adresy zarezerwowane dla ruchu multicastowego (224.0.0.0/4). Z zasady administrator nie powinien pozwolić aby pakiety wychodzące miały adres źródła inny niż prawidłowy adres IP dla wewnętrznej sieci. BSS - v2013 77
Atak DoS TCP SYN Wycięcie ruchu wchodzącego. Standardowa każda ACL na końcu posiada wpis zabroń wszystkiego (deny ip any any). http://fengnet.com/book/ccie.professional.development.series.network.security.technologies.and.solutions/final/ch02lev1sec6.html BSS - v2013 78
Atak DoS smurf SMURF nazwa programu implementującego ten typ ataku. Ogólna koncepcja polega na wysłaniu niewielkiej / średniej ilości danych (ruchu), która spowoduje lawinę ruchu w zaatakowanej sieci. Przykłady: Intruz wysyła pakiet ICMP Echo Request ze sfałszowanym adresem źródła, wskazującym na zaatakowaną sieć. Co się dzieje gdy hosty otrzymają takie żądanie? Hosty wysyłają na sfałszowany adres nadawcy odpowiedzi ICMP Echo Reply. Intruz wysyła pakiet rozgłoszeniowy do atakowanej sieci (directed broadcast addresses). Taki pakiet jest rozsyłany rozgłoszeniowo przez router obsługujący tę sieć (do tej sieci). Intruz może korzystać z większych pakietów ICMP (w okolicach MTU dla Eth) aby zwiększyć siłę ataku i wysycić szybkie łącza. BSS - v2013 79
Atak DoS smurf Przykłady rozwiązanie: Wyłączenie przesyłania directed broadcast na wszystkich portach routera. Filtrowanie ruchu wchodzącego: ACL zgodnie z RFC 2267 - Network Ingress Filtering: Defeating Denial of Service Attacks which employ IP Source Address Spoofing. Łagodzenie ataku: wprowadzenie limitów na liczbę odpowiedzi ICMP Echo Reply. BSS - v2013 80
Zagrożenia w ICMP Typowy rekonesans często realizowany jest przez ICMP: Za pomocą ICMP echo można odkryć podsieci i hosty w atakowanej sieci. Atak także może być realizowany przez ICMP: Za pomocą ICMP redirect można zmieniać tablice routingu hostów. BSS - v2013 81
Filtrowanie ICMP Router(config)# access-list acl_id {deny permit} icmp {source_addr local_addr} {source_mask local_mask} {dest_addr remote_addr} {dest_mask remote_mask} icmp_type icmp_type słownie icmp_type słownie 0 echo-reply 12 parameter-problem 3 unreachable 13 timestamp-reply 4 source-quench 14 timestamp-request 5 redirect 15 information-request 6 alternate-address 16 information-reply 8 echo 17 mask-request 9 router-advertisement 18 mask-reply 10 router-solicitation 31 conversion-error 11 time-exceeded 32 mobile-redirect BSS - v2013 82
Typowe zasady dla ICMP Pozwól: Inbound: Echo reply (analiza Wireshark) Source quench Unreachable Outbound: Echo (request) (analiza Wireshark) Parameter problem Packet too big Source quench Reszta zabroń. BSS - v2013 83
Filtry pakietów Zalety: Proste regułki permit / deny pozwalają filtrować ruch. Niski wpływ na wydajność (ale gdy jest ich mało są dobrze przemyślane). Łatwe w implementacji i wspierane przez wiele urządzeń. Pierwszy stopień bezpieczeństwa w sieci. Niski koszt wdrożenia. BSS - v2013 84
Filtry pakietów Wady: Brak odporności na IP spoofing. Intruz wysyła pakiet, który spełnia kryteria (permit) filtrów i przechodzi przez urządzenie. Brak możliwości wykrycia pofragmentowanych pakietów. Złożone filtry są trudne w implementacji i utrzymaniu. Brak możliwości dynamicznego filtrowania usług. Usługi wymagające dynamicznej negocjacji portów są trudne do filtrowania (należałoby otworzyć cały zakres portów). Każdy pakiet jest przetwarzany indywidualnie a przecież jest elementem strumienia danych przesyłanych od nadawcy do odbiorcy (a czasem także od odbiorcy do nadawcy). BSS - v2013 85
Filtry pakietów Filtr pakietów pozwala albo zabrania przesłania pakietu podróżującego przez urządzenie na podstawie: Źródłowego adresu IP Docelowego adresu IP Protokołu Źródłowego numeru portu Docelowego numeru portu Flagi SYN w nagłówku TCP (synchronize/start) Filtr pakietów nie reprezentuje kompletnej implementacji zapory sieciowej lecz stanowi ważny jej element. BSS - v2013 86
Zapory sieciowe System (w złożonych sieciach grupa systemów) kontroli dostępu działający pomiędzy sieciami: linia oporu przed atakami, tranzyt cały ruch przechodzi przez zaporę sieciową, wymusza Access Control Policy. Kryją się za nim bardzo różne pojęcia i techniki ochrony. BSS - v2013 87
Zapory sieciowe Pierwsza zapora sieciowa: rok 1988 firma DEC: packet filter firewall. Weryfikacja pakietów czy spełniają zbiór reguł; reakacje: forward albo drop. Czyli praktycznie identyczna koncepcja jak obecne ACL! BSS - v2013 88
Zapory sieciowe Pierwsza zapora sieciowa stateful: rok 1989 firma AT&T Bell Laboratories. Weryfikacja pakietów na podstawie danych przechowywanych przez zaporę, zdobytych na podstawie przesyłanego ruchu (strumienia). BSS - v2013 89
Zalety i wady Zalety stosowania zapór sieciowych: Odcięcie bezpośredniego dostępu do istotnych zasobów (sprzęt, aplikacje) od niezaufanych, zewnętrznych zasobów. Protokoły są weryfikowane, co zapobiega wykorzystaniu ich podatności. Szkodliwe dane mogą być zablokowane, nie dotrą do zaufanych, chronionych zasobów. Polityka bezpieczeństwa może zostać szybko, łatwo i skalowalnie wdrożona dzięki dobrej konfiguracji zapory. Ograniczenie punktów kontroli dostępu zmniejsza złożoność procesu zarządzania bezpieczeństwem. Wady, ograniczenia: Utrata konfiguracji, zła konfiguracja może mieć poważne konsekwencje. Pojedynczy punkt awarii. Użytkownicy nadal mogą aktywnie szukać metod obejścia zapory. Wydajność sieci zostaje zmniejszona. Wiele aplikacji nie może zostać przesłanych przez zaporę bezpiecznie. Nieuwierzytelniony ruch może być tunelowany albo ukryty jak ruch prawidłowy. BSS - v2013 90
Rodzaje zapór sieciowych Packet-filtering firewall Typowo router z filtrem pakietów L3, L4. Stateful firewall Monitoruje stan połączeń (nawiązanie, działanie, zakończenie i inne). Application gateway firewall (proxy firewall) zapora weryfikuje informacje na poziomie L3, 4, 5 i 7 modelu OSI. Address-translation firewall Rozszerza liczbę adresów dostępną w sieci oraz ukrywa ją przed bezpośrednim widokiem z zewnątrz. Host-based (server and personal) firewall - PC lub serwer z oprogramowaniem zapory uruchomionym na nim. Transparent firewall Monitoruje ruch pomiędzy parą interfejsów typu bridged. Hybrid firewall BSS - v2013 91
Packet-filtering firewall Source IP address Destination IP address Protocol Source port number Destination port number Synchronize/start (SYN) packet receipt BSS - v2013 92
Stateful firewall Przechowuje kompletną informacje o stanie każdej sesji ustanawianej przez ścianę ogniową. Za każdym razem, gdy nawiązywane jest wychodzące lub przychodzące połączenie IP, informacje o nim są logowane w tabeli stanów filtra. Weryfikowane są informacje w nagłówkach pakietów L3 i L4. Między innymi sprawdzane są flagi: synchronize (SYN), (SYN flood), reset (RST), (RST flood), acknowledgment (ACK), finish (FIN). oraz inne dane, w tym np. numery sekwencyjne datagramów, fragmentacja pakietów. BSS - v2013 93
Stanowa zapora sieciowa Tabela stanów zawiera: adresy źródłowe i docelowe, numery portów, informacje o numerach sekwencyjnych TCP dodatkowe flagi dla każdego połączenia TCP/UDP skojarzonego z określoną sesją. BSS - v2013 94
Stanowa zapora sieciowa Ponieważ sesje są ustanawiane poprzez ścianę ogniową tworzy ona obiekt połączenia i wszystkie przychodzące lub wychodzące pakiety są porównywane z informacjami z tabeli stanów. Pakiety są przepuszczane przez ścianę ogniową tylko wtedy, gdy istnieje określony wpis w tabeli, sankcjonujący ich ruch. Taki sposób kontroli ruchu pakietów jest wysoce efektywny, ponieważ: Obsługuje indywidualne pakiety, ale porównuje je z nawiązanymi już połączeniami; Pracuje z większą wydajnością niż filtr pakietów; Zapisuje w tabeli stanów informacje o każdym połączeniu zarówno o takim, które ma charakterystykę połączeniową, jak i bezpołączeniową. Tabela pozwala ocenić, czy pakiety należą do istniejącego połączenia, czy tez pochodzą z nieautoryzowanego źródła. BSS - v2013 95
Zaawansowany stanowy firewall Parsowanie protokołów pod kątem zmian np. w numerach portów (np. FTP) i wprowadzanie ich do tablicy stanów. Inspekcja numerów sekwencyjnych TCP. Inspekcja zapytań DNS i odpowiedzi aby była pewność, że odpowiedź pochodzi na zapytanie DNS wysłane z sieci chronionej. Wskazane jest użycie kilku technik: Stateful firewall NAT proxy BSS - v2013 96
Stanowa zapora sieciowa BSS - v2013 97
Stanowa zapora sieciowa Zalety: Kontroluje ruch na granicy sieci, w prosty sposób, odrzucając niechciany, niepotrzebny czy nieprawidłowy ruch. Więcej parametrów kontrolowanych dynamicznie (na podstawie sesji a nie pojedynczych pakietów). Lepsza wydajność (omówić na przykładzie Cisco ASA). Chroni przed atakami typu spoof i DoS sprawdzając czy pakiet należy do istniejącego prawidłowego, połączenia. Więcej informacji w logach. Wady: Nie przeciwdziała atakom z warstwy aplikacji, nie weryfikuje zawartości ich protokołów. Nie wszystkie protokoły są stateful np. UDP i ICMP, nie otrzymują więc tak dużego wsparcia. Brak wsparcia dla uwierzytelniania użytkowników. BSS - v2013 98
Przykład z urządzenia OUTSIDE dmz security-level 50 outside security-level 0 192.168.255.128 / 25 inside security-level 100 172.18.0.0 / 16 10.0.0.0 / 8 BSS - v2013 99
Przykład z urządzenia Cisco PIX (Private Internet exchange) lukpix# show conn long all 6 in use Flags: A - awaiting inside ACK to SYN, a - awaiting outside ACK to SYN, B - initial SYN from outside, C - CTIQBE media, D - DNS, d - dump, E - outside back connection, F - outside FIN, f - inside FIN, G - group, g - MGCP, H - H.323, h - H.225.0, I - inbound data, i - incomplete, J - GTP, j - GTP data, K - GTP t3-response k - Skinny media, M - SMTP data, m - SIP media, n - GUP O - outbound data, P - inside back connection, q - SQL*Net data, R - outside acknowledged FIN, R - UDP SUNRPC, r - inside acknowledged FIN, S - awaiting inside SYN, s - awaiting outside SYN, T - SIP, t - SIP transient, U - up, W - WAAS, TCP outside:213.180.141.140/21 (213.180.141.140/21) inside:10.0.1.5/1630 (192.168.255.129/1630) flags saa idle 0:00:04 bytes 0 TCP outside:195.113.232.73/80 (195.113.232.73/80) inside:10.0.1.5/1629 (192.168.255.129/1629) flags UIO idle 0:00:16 bytes 200634725 TCP outside:157.56.124.71/443 (157.56.124.71/443) inside:10.0.1.5/1124 (192.168.255.129/1124) flags UIO idle 0:08:04 bytes 7244 UDP outside:192.168.1.213/427 (192.168.1.213/427) inside:10.0.1.5/427 (192.168.255.129/427) flags - idle 0:00:08 bytes 2772 TCP outside:157.55.236.134/443 (157.55.236.134/443) inside:10.0.1.5/1044 (192.168.255.129/1044) flags UIO idle 0:02:37 bytes 7874 UDP outside:5.6.124.135/161 (5.6.124.135/161) inside:10.0.1.5/57133 (192.168.255.129/57133) flags - idle 0:00:00 bytes 13109 BSS - v2013 100
BSS Ciąg dalszy BSS: kryptografia SSL, VPN: różne! PKI IDS, IPS zabezpieczenia urządzeń sieciowych Application Firewall: analiza DNS i inne protokoły TOR Sandbox, Honeypot BSS - v2013 101
CBAC (Context-Based Access Control) Context-Based Access Control (CBAC) zawarte w Cisco IOS Firewall od 1997 roku: stateful Application Layer filtering: zawiera także protokoły warstwy aplikacji wymagające dodatkowych kanałów transmisyjnych (połączeń) np. FTP, H.323! CBAC główne funkcjonalności: traffic filtering (tworzy tymczasowe ACL typu permit, wspiera protokoły wielokanałowe), traffic inspection (monitoruje pakiety na poziomie warstwy L7 i utrzymuje informacje o sesjach TCP, UDP, w tym: numery sekwencyjne), intrusion detection (wersja ograniczona ale posiada: sygnatury + poziomy np. chroni przed połączeniami half-open, fragmentacją pakietów), generation of audits and alerts (generuje w czasie rzeczywistym alarmy i informacje także do zewnętrznych urządzeń). BSS - v2013 102
CBAC Znaczący wzrost możliwości w stosunku do ACL: Monitoruje ustanawianie sesji TCP Utrzymuje informacje o sesji UDP Śledzi numery sekwencyjne TCP DNS inspekcja zapytań i odpowiedzi Inspekcja komunikatów ICMP Wsparcie dla aplikacji wykorzystujących wiele połączeń (np. zarządzanie połączeniem, przesyłanie danych) Inspekcja informacji na poziomie warstwy aplikacji BSS - v2013 103
CBAC podsumowanie Pełna ochrona tylko dla protokołów wybranych przez admina i obsługiwanych przez IOS. Dla pozostałych pozostają zwykłe ACL. IPSec w trybie zwykłego filtrowania. Należy rozważyć ochronę dwukierunkową (nawet 80% ataków z wnętrza sieci!). BSS - v2013 104
CBAC działanie BSS - v2013 105
CBAC TCP BSS - v2013 106
CBAC UDP BSS - v2013 107
CBAC inne protokoły Wg możliwości IOS (ip inspect.txt) BSS - v2013 108
CBAC konfiguracja BSS - v2013 109
CBAC konfiguracja CBAC działania na wykryte zagrożenia: Generuje alarmy Blokuje pakiety wykryte jako niezgodne z regułami Zmniejsza obciążanie innych urządzeń zbędnym, szkodliwym ruchem Liczniki czasowe (timeout) i poziomy (threshold) są używane do zarządzania stanem połączeń. Pozwalają określić kiedy połączenie odrzucić: całkowita liczba sesji TCP half-opened liczba sesji TCP half-opened w przedziale czasu liczba sesji TCP half-opened na host Jeśli limit zostanie przekroczony wtedy: RST do najstarszych sesji. Blokada na określony czas nowych SYN. BSS - v2013 110
CBAC konfiguracja BSS - v2013 111
CBAC konfiguracja BSS - v2013 112
CBAC konfiguracja Router(config)# ip inspect name inspection_name protocol [alert {on off}] [audit-trail {on off}] [timeout seconds] ip inspect name FWRULE smtp alert on audit-trail on timeout 300 ip inspect name FWRULE ftp alert on audit-trail on timeout 300 ip inspect name PERMIT_JAVA http java-list 10 access-list 10 permit 10.224.10.0 0.0.0.255 BSS - v2013 113
CBAC konfiguracja BSS - v2013 114
CBAC działanie (SMTP) Przykład wymiany komunikatów pomiędzy klientem a serwerem poczty: Dwie części listu: Nagłówek każdy wiersz nagłówka rozpoczyna się słowem kluczowym From To CC (BCC) Date Subject Reply-To X-Charset; Treść listu; BSS - v2013 115
CBAC działanie (SMTP) 220 READY FOR MAIL "HELO zly.kis.p.lodz.pl\n" "250" "MAIL FROM:<luk@kis.p.lodz.pl>\n" "250" "RCPT TO:<pawel@poczta.onet.pl>\n" "250" "RCPT TO:<zuza@poczta.onet.pl>\n" 250" "DATA\n" "354" Czesc! To jest probny e-mail! "\n.\n" "250" "QUIT\n" "221" BSS - v2013 116
CBAC działanie 02:04:55: %FW-4-SMTP_INVALID_COMMAND: Invalid SMTP command from initiator(209.165.201.5:49387) 02:07:31: %FW-4-TCP_MAJORDOMO_EXEC_BUG: Sig:3107:Majordomo Execute Attack - from 209.165.201.5 to 192.168.1.1: 02:09:50: %FW-6-SESS_AUDIT_TRAIL: tcp session initiator (192.168.1.2:32782) sent 22 bytes responder (209.165.201.1:23) sent 200 bytes BSS - v2013 117
Logowanie zdarzeń BSS - v2013 118
CBAC problemy, ograniczenia CBAC ograniczenia: Wiele polityk i ACL na wielu interfejsach sprawia, że trudno to korelować z politykami przepływu ruchu pomiędzy wieloma interfejsami. Polityki nie mogą być stosowane do wybranych hostów czy podsieci są takie same dla całego typu ruchu przepływającego przez interfejs. Zbyt duże znaczenie ACL. Ruch domyślnie jest odblokowany tylko jawne ACL go blokują. BSS - v2013 119
Zone-Based Policy Firewall Zone: Strefa grupuje razem interfejsy, które wyglądają podobnie z perspektywy bezpieczeństwa czyli interfejsy (podinterfejsy), które mają identyczne potrzeby z zakresu bezpieczeństwa powinny być umieszczone w tej samej strefie. BSS - v2013 120
ZPF powstanie Rok 2006. Cisco Systems: zone-based policy firewall dodane do systemu Cisco IOS Release 12.4(6)T. Interfejsy są przypisywane do stref (zones). Następnie admin określa zasady ruchu pomiędzy strefami. Różne polityki dla hostów przyłączonych do tego samego interfejsu urządzenia. Domyślnie deny-all pomiędzy strefami. BSS - v2013 121
ZPF Zalety modelu ZPF: Struktury (łatwiejsza dokumentacja, komunikacja, implementacja). (coś podobnego do struktur w języku C) Łatwość użycia (szczególnie gdy duże sieci, wielu pracowników IT). BSS - v2013 122
ZPF Strefy określają granice bezpieczeństwa sieci (jak w przypadku granic państwowych). Określa zasady przekraczania granic pomiędzy strefami. Domyślna polityka pomiędzy strefami: deny all. Polecenia zbliżone do CBAC. Struktury modularna implementacja zapory sieciowej. BSS - v2013 123
ZPF Kilka zalet ZPF: Nie zależy od ACL. Domyślne działanie to blokuj tylko jawne odblokowanie pozwala na ruch. Polityki są łatwe do interpretacji i rozwiązywania problemów dzięki strukturom (czasem dodatkowym językom opisu pseudo obiektów). Jedna zdefiniowana polityka załatwia cały temat ochrony ruchu bez potrzeby tworzenia wielu ACL i akcji inspekcji. BSS - v2013 124
ZPF projektowanie Etapy wdrożenia zone-based firewall: Określenie stref (Determine the Zones) Infrastruktura teleinformatyczna musi zostać podzielona na różne strefy o różnych poziomach bezpieczeństwa. W tym kroku admin nie analizuje (nie skupia się) na fizycznej infrastrukturze ale rozpatruje podziały na części o różnych potrzebach ochrony / bezpieczeństwa związanych z funkcjami i zasobami systemu. BSS - v2013 125
Określenie stref 79.96.21.160 / 28 OUTSIDE dmz security-level 50 outside security-level 0 212.191.89.128 / 25 subinterfaces, trunk 172.18.0.0 / 16 10.2.0.0 / 16 VLAN Admin sec.lev.95 10.10.0.0 / 16 VLAN Dyrekcja sec.lev.85 10.20.0.0 / 16 VLAN Pracownicy sec.lev.80 BSS - v2013 126
ZPF projektowanie Utworzenie polityk pomiędzy strefami dla każdej pary stref "source-destination (np. ze strefy inside do strefy Internet) zdefiniowanie sesji (TCP, UDP, ICMP, IPSec), których klient (klienci) w źródłowej strefie mogą żądać od urządzeń ze strefy docelowej (pomiędzy strefami nie fizycznymi połączeniami, interfejsami!) Łatwe BSS - v2013 127
ZPF projektowanie Po określeniu stref i zasad ruchu pomiędzy nimi, admin musi zaprojektować fizyczną infrastrukturę (urządzenia, połączenia, redundancja). Trudne, złożone BSS - v2013 128
ZPF projektowanie Połączenie polityk (stref), zasad ruchu, z fizycznymi interfejsami urządzeń. BSS - v2013 129
ZPF podejmowane akcje ZPF może podjąć poniższe działania: Inspect - stateful packet inspection = CBAC ip inspect. Automatycznie zezwala na ruch powrotny. Protokoły wymagające wielu jednoczesnych sesji (np. sterowania i danych jak FTP czy H.323) także są prawidłowo obsługiwane. Drop = deny w ACL. Opcja logowania także jest dostępna. Pass = permit w ACL. Nie trzyma, śledzi danych o sesji jedynie przekazuje dalej ruch. Działa tylko w jedną stronę. Na ruch powrotny należy założyć niezależną politykę. BSS - v2013 130
ZPF działanie Zasady działania interfejsu należącego do Strefy: Musi istnieć strefa aby przypisać ją do interfejsu. Interfejs można przypisać tylko do jednaj strefy. Ruch jest domyślnie dozwolony ale tylko pomiędzy interfejsami należącymi do tej samej strefy. Aby pozwolić na ruch pomiędzy interfejsami należącymi do różnych stref musi być odpowiednia polityka zdefiniowana. Ruch nie przepływa pomiędzy interfejsem należącym do strefy oraz takim nie przypisanym do żadnej ze stref. Jeśli admin bardzo tego chce może np. utworzyć dodatkową strefę i pozwolić na cały ruch pomiędzy nią a innymi strefami (pass-all policy = dummy policy). Interfejs nie przypisany do żadnej strefy nadal może korzystać z CBAC. BSS - v2013 131
ZPF działanie BSS - v2013 132
ZPF self zone Jedynym wyjątkiem od reguły deny-by-default jest ruch kierowany (terminowany) do tego urządzenia. Taki ruch domyślnie jest dozwolony. Potrzebne są dodatkowe polityki aby go ograniczyć. Zasady domyślnego zachowania urządzenia: Ruch jest blokowany pomiędzy interfejsami należącymi do różnych stref, poza ruchem z hostów do interfejsu urządzenia należącego do tej samej strefy co hosty. Wszystkie interfejsy IP urządzenia stają się automatycznie elementami strefy self zone kiedy ZPF jest uruchomiony. BSS - v2013 133
ZPF self zone BSS - v2013 134
ZPF konfiguracja, przykład BSS - v2013 135
ZPF konfiguracja, przykład BSS - v2013 136
ZPF konfiguracja, przykład Traffic Classes pozwalają adminowi zdefiniować interesujący ruch bardzo szczegółowo (ziarniście, granularnie), przykładowe polecenia: match access-group {access-group name access-group-name} match protocol protocol-name match class-map class-map-name BSS - v2013 137
ZPF konfiguracja, przykład BSS - v2013 138
ZPF konfiguracja, przykład BSS - v2013 139
ZPF Analiza działania BSS - v2013 140
ZPF Analiza działania Router#show policy-map type inspect zone-pair session Zone-pair: CNS-PAIR Service-policy inspect : HTTP-Policy Class-map: HTTP-Class (match-all) Match: access-group 110 Match: protocol http Inspect Established Sessions Session 643BCF88 (10.0.2.12:3364)=>(172.26.26.51:80) http SIS_OPEN Created 00:00:10, Last heard 00:00:00 Bytes sent (initiator:responder) [1268:64324] Session 643BB9C8 (10.0.2.12:3361)=>(172.26.26.51:80) http SIS_OPEN Created 00:00:16, Last heard 00:00:06 Bytes sent (initiator:responder) [2734:38447] Session 643BD240 (10.0.2.12:3362)=>(172.26.26.51:80) http SIS_OPEN Created 00:00:14, Last heard 00:00:07 Bytes sent (initiator:responder) [2219:39813] Session 643BBF38 (10.0.2.12:3363)=>(172.26.26.51:80) http SIS_OPEN Created 00:00:14, Last heard 00:00:06 Bytes sent (initiator:responder) [2106:19895] Class-map: class-default (match-any) Match: any Drop (default action) 58 packets, 2104 bytes BSS - v2013 141
Cisco FW comparison Classic Firewall: Stateful Inspection Firewall features are supported through CBAC + ACL Policy is defined by applying static Access-Control List (ACL) configuration on router interfaces to define the types of traffic allowed through an interface. Stateful Packet Inspection is applied with "ip inspect" policies that monitor network traffic to allow desired return traffic through ACLs that would otherwise drop traffic that had been originated by trusted hosts. Classic Firewall's `interface-based' model ay be difficult in circumstances where multiple ACLs affect traffic, especially when ACLs were applied for both router-local traffic as well as traffic "transiting" Zone-Based Policy Firewall: Zone-Based Policy Firewall more flexible, easier-understood zone-based configuration model. Router interfaces are assigned to security zones, and firewall inspection policy is applied to traffic moving between the zones. Zone-Based Policy Firewall enforces a secure inter-zone policy by default, such that a given interface cannot pass traffic to interfaces in other security zones until an explicit policy allowing traffic is defined. Firewall policies are configured using Class-Based Policy Language (CPL), which employs a hierarchical structure to define inspection for network protocols and the groups of hosts' traffic to which inspection will be applied. Inter-zone policies offer considerable flexibility and granularity, so different inspection policies can be applied to hosts, host groups, or subnets connected to the same router interface. BSS - v2013 142
Urządzenia zapory sieciowe Początki: Routery (z odpowiednim systemem) Serwery Obecnie także: Dedykowane urządzenia (zapory sieciowe) FW NGFW, UTM, AFW, Application Delivery Controller BSS - v2013 143
UTM Unified Threat Management (rok 2004) bezpieczeństwo all-in-one: Firewall zapora sieciowa (stateless, stateful) IDS/IPS system detekcji i zapobiegania intruzom GAV (ang. Gateway Antivirus) ochrona antywirusowa na bramie Filtrowanie poczty i spamu Filtrowanie treści stron WWW (Filtr URL) Obsługa wielu połączeń VPN (IPSec, SSL) + NAT Zarządzanie pasmem Ochrona w czasie rzeczywistym (kontrola aplikacji i scentralizowane raportowanie) BSS - v2013 144
UTM Zalety UTM: Zredukowana złożoność: Pojedyncze rozwiązanie bezpieczeństwa od jednego producenta. Prostota: Unikanie wielokrotnej instalacji i konserwacji oprogramowania. Łatwe zarządzanie: Architektura Plug & Play, GUI. Zmniejszone wymagania szkolenia technicznego, jedno urządzenie. Wady UTM: Pojedynczy punkt awarii ruchu sieciowego. Pojedynczy punkt zagrożenia, jeśli UTM ma luki. Potencjalny wpływ na opóźnienie i przepustowość. BSS - v2013 145
UTM Jakie mogą być problemy z urządzeniem all-in-one? uszkodzenie włamanie wydajność BSS - v2013 146
NGFW Posiada nieuciążliwą konfiguracje. Standardowe funkcje pierwszej generacji zapór sieciowych np. translacje adresów (NAT), stanową inspekcję protokołów (SPI) i wirtualne sieci prywatne (VPN), itp. Zintegrowany silnik IPS. Świadomość aplikacji, pełna widoczność stosu i ziarnistą kontrole w tym identyfikacja użytkownika wykonana przy udziale bibliotek zewnętrznych (ang. Active Directory). Możliwość włączenia informacji z zewnątrz zapory, np. czarne i białe listy, itp. Uaktualnianie ścieżki, uwzględniając przyszłe kanały informacji i związane z nimi zagrożenia bezpieczeństwa. SSL powinien deszyfrować i identyfikować zaszyfrowane i niepożądane aplikacje. BSS - v2013 147
Application Delivery Controller load balancer access control application security and filtering compression local traffic management BSS - v2013 148
Zestawienie producentów zapór sieciowych według Gartnera BSS - v2013 149
Przykłady urządzeń Cisco Router (z Cisco IOS Firewall): ACL CBAC Stateful firewall Zone-based policy framework for intuitive management Instant messenger and peer-to-peer application filtering VoIP protocol firewalling Virtual routing and forwarding (VRF) firewalling Wireless integration Stateful failover Local URL whitelist and blacklist support Application inspection for web and email traffic ASA Adaptive Security Appliances BSS - v2013 150
Cisco Adaptive Security Appliance (ASA) BSS - v2013 151
BSS - v2013 152
Cisco Adaptive Security Appliance (ASA) Inspekcja ruchu typu stateful przy użyciu Cisco Adaptive Security Algorithm: Sprawdza ruch i podejmuje decyzję: permit lub drop. Zasada działania: Jeśli pakiet jest częścią nowego, ustanawianego właśnie połączenia idzie ścieżką wymagającą więcej mocy obliczeniowej (nazwanej session management path ), gdyż ścieżka ta zawiera: Sprawdzenie list dostępu. Weryfikacja routingu. Alokacja tablicy translacji adresów. Ustanowienie sesji w innej ścieżce nazwanej fast path. Jeśli pakiet jest częścią istniejącego, ustanawianego wcześniej połączenia, używana jest znacznie szybsza ścieżka fast path. fast path jest znacznie szybsza, ma do wykonania tylko kilka zdań: Weryfikacja sumy kontrolnej dla IP Wyszukanie sesji Weryfikacja numerów sekwencyjnych TCP i flag TCP Translacja NAT dla istniejącej sesji Modyfikacja, jeśli potrzebna, nagłówków L3 i L4 Czasami może zostać wymuszone przejście przez session management path np. przy zaawansowanej inspekcji i filtrowaniu zwartości. Jeśli pakiet wymaga inspekcji w warstwie L7 przesyłany jest inną ścieżką: control plane path. BSS - v2013 153
ASA: idea działania BSS - v2013 154
Zapory sieciowe i projektowanie sieci BSS - v2013 155
Firewall Sam firewall to za mało: co z redundancją urządzeń? co z końcówkami? (dziś BYOD - Bring Your Own Device) czym jest NAC (Network Access Control), UAC (Unified Access Control)? BSS - v2013 156
Protokół routingu: OSPF BSS - v2013 157
Bezpieczeństwo OSPF tryb Passive Uwierzytelnianie (weryfikacja tożsamości źródła) BSS - v2013 158
Konfigurowanie uwierzytelnienia w OSPF BSS - v2013 159
IPSec IPSec to zbiór protokołów L3 służących implementacji bezpiecznych połączeń oraz wymiany kluczy szyfrowania. IPSec wykorzystywany jest do tworzenia sieci VPN (Virtual Private Network). BSS - v2013 160
NAT Translacja adresów sieciowych - NAT (ang. Network Address Translation) została opisana w dokumencie RFC 1631. Wyróżniamy dwa typy translacji: statyczny dynamiczny BSS - v2013 161
Adresy IP publiczne i prywatne BSS - v2013 162