Bezpieczeństwo warstwy łącza danych w sieciach opartych o Ethernet
Transkrypt
Bezpieczeństwo warstwy łącza danych w sieciach opartych o Ethernet
Aspekty bezpieczeństwa IT w systemach komputerowych Łukasz Czarniecki, Marcin Jerzak Poznańskie Centrum Superkomputerowo – Sieciowe Zespół Bezpieczeństwa Poznań, 16.12.2009 1 Agenda 11:00 – 12:30 „Bezpieczeństwo warstwy łącza danych w sieciach opartych o Ethernet” 12:30 – 12:45 Pytania i dyskusja 12:45 – 13:00 Przerwa 13:00 – 14:30 „Forensics & Anti-forensics - jak przeprowadzić analizę powłamaniową, a jak to utrudnić?” 14:30 – 14:45 Pytania i dyskusja 2 Informacje organizacyjne • Ankieta – krótka – anonimowa – bardzo pomocna w organizacji przyszłych szkoleń • Lista obecności – nie jest anonimowa ;-) – proszę zaznaczyć, jeśli NIE życzycie sobie Państwo otrzymywania informacji o kolejnych szkoleniach • Prezentacja – dostępna na stronach WWW: • http://szkolenia.man.poznan.pl • http://security.psnc.pl 3 PCSS Poznańskie Centrum SuperkomputerowoSieciowe Operator sieci PIONIER oraz POZMAN Uczestnik projektów naukowo-badawczych Główne obszary zainteresowań Gridy, sieci nowej generacji, portale Bezpieczeństwo sieci i systemów http://www.pcss.pl 4 Zespół Bezpieczeństwa PCSS Dedykowany zespół istnieje od 1996r. Podstawowy zakres prac Zespołu Zabezpieczanie infrastruktury PCSS Zadania bezpieczeństwa w projektach R&D Szkolenia i transfer wiedzy Badania własne Audyty i doradztwo w zakresie bezpieczeństwa IT Niektóre badania z ostatnich lat Bezpieczeństwo Bezpieczeństwo Bezpieczeństwo bankowości elektronicznej (2006) serwerów WWW Apache i MS IIS (2007) sklepów internetowych (2008) http://security.psnc.pl 5 Szkolenia ZB PCSS • Szkolenia Działu KDM – http://szkolenia.man.poznan.pl • Szkolenia Centrum Innowacji Microsoft – http://mic.psnc.pl/szkolenia • Możliwość zgłoszenia własnego tematu szkolenia 6 Bezpieczeństwo warstwy łącza danych w sieciach opartych o Ethernet Łukasz Czarniecki Zespół Bezpieczeństwa PCSS 7 Model referencyjny OSI FTP, SMTP, HTTP, TELNET MIME, HTML, JPG TCP, UDP IPv4, IPv6, ICMP, IPSEC Ethernet, Token Ring UTP, STP 8 Bezpieczeństwo warstwy fizycznej • Bezpieczeństwo fizyczne • Aktualna dokumentacja połączeń i topologii sieci • Sieci bezprzewodowe (warchalking, wardriving, stealth wallpaper) • Światłowody zamiast miedzi • ,,mrugająca dioda’’ • Kontrola ciągłości i niezawodności pracy – zagrożenia środowiskowe – odpowiednie zasilanie 9 Zaniedbywana warstwa łącza danych • Większość zabezpieczeń koncentruje się na warstwie sieciowej: firewall, listy kontroli dostępu • Najpopularniejszy Ethernet nie był projektowany z myślą o bezpieczeństwie • Sieci (10) Gigabit Ethernet obejmują swoim zasięgiem coraz większe obszary (Metro Ethernet) • Efekt domina • Ataki z wewnątrz sieci 10 Efekt domina • Kompromitacja jednej z niższych warstw OSI prowadzi do kompromitacji wszystkich wyższych warstw • Możliwe ataki: – podsłuchiwanie ruchu sieciowego – DNS spoofing – Man in the middle – Możliwe są również ataki na technologie uważane za bezpieczne (https): • sslstrip • TLS renegotiation attack • NULL certificate prefix 11 Format ramki Ethernet Length < 1501 oznacza długość ramki Length > 1535 oznacza typ ramki (np. IP, ARP, 802.1Q) Max długość 1518 + ewentualny tag 12 Podsłuchiwanie sieci Ethernet • Ethernet 10Base5, 10Base2 – wspólne medium transmisyjne – kabel koncentryczny • Ethernet 10BaseT, (Fast/Gigabit) Ethernet – w środowisku nieprzełączanym – hub rozsyła ramki przez wszystkie porty • 10Gigabit Ethernet - może działać już wyłącznie w środowisku przełączanym • W środowisku nieprzełączanym każdy może bezkarnie podsłuchiwać ruch, wystarczy uruchomić sniffer: – tcpdump – wireshark lub gotowe narzędzia do przechwytywania haseł: – dsniff – sniffpass 13 Metody wykrywania podsłuchujących • W normalnym trybie karta sieciowa odbiera wyłącznie ramki zaadresowane na jej adres MAC ew. broadcast/multicast • Aby odebrać ramki zaadresowane na dowolny adres MAC, należy przestawić kartę w tryb rozwiązły (ang. promiscuous), • Test stacji z MAC aa:aa:aa:aa:aa i IP 10.0.0.100: – wysyłamy np. PING: • docelowy MAC ustawiamy na adres nieistniejący w sieci, np. aa:aa:aa:aa:xx • docelowy adres IP: 10.0.0.100 – jeżeli karta sieciowa działa w trybie promiscuous, to host odpowie na ping-a, (nie musi to być ping, wystarczy dowolny otwarty port) • Narzędzie: AntiSniff 14 Jak podsłuchać ruch w środowisku przełączanym? 15 Zasada działania ARP Odwzorowanie 32-bitowych adresów IP na 48-bitowe adresy fizyczne. Próba przesłania danych na adres IP 192.168.1.34: • Karta sieciowa w komputerze źródłowym wysyła zapytanie ARP (do wszystkich): kto ma adres IP 192.168.1.34? • Karta sieciowa w komputerze docelowym o adresie MAC 00:07:95:03:1A:7E wysyła odpowiedź: Hej to ja! • W komputerze nadawcy zostaje do dynamicznej tablicy ARP dodany wpis: IP 192.168.1.34 -> MAC 00:07:95:03:1A:7E. • Również przełącznik uczy się, adresów MAC (pamięć jest ograniczona) i przyporządkowuje je do poszczególnych portów • Wszystkie pakiety z docelowym adresem IP 192.168.1.34 są przez warstwę łącza danych tłumaczone na ramki z docelowym adresem MAC 00:07:95:03:1A:7E. 16 ARP cache (host) C:\>arp -a Interfejs: 10.2.0.80 --- 0x10003 Adres internetowy Adres fizyczny 10.2.0.1 00-04-76-11-89-91 10.2.0.3 00-04-75-c2-55-d7 10.2.0.16 00-0c-6e-23-2a-c5 10.2.0.19 00-30-4f-20-e1-d9 10.2.0.28 00-40-f4-31-53-a2 10.2.0.37 00-04-76-22-be-fe 10.2.0.62 00-c0-26-28-93-4a Typ dynamiczne dynamiczne dynamiczne dynamiczne dynamiczne dynamiczne dynamiczne Host, który chce przesłać pakiet IP na adres 10.2.0.1, enkapsuluje go w ramkę z adresem docelowym z tablicy ARP 17 ARP cache (przełącznik) Switch#sh mac-address-table dynamic Mac Address Table ------------------------------------------Vlan Mac Address Type Ports ------------------------1 0016.d32d.2828 DYNAMIC Fa0/1 1 001c.c5d7.2c18 DYNAMIC Fa0/3 1 001e.c21b.aacd DYNAMIC Fa0/3 Total Mac Addresses for this criterion: 3 Na podstawie wpisów w tabeli ARP przełącznik „wie”, przez który port przesłać daną ramkę 18 MAC Flood • Atak polega na zalaniu sieci ramkami z losowo generowanymi adresami MAC • Narzędzie: macof • Atak jest dość „głośny”, propaguje się na wszystkie switche 19 MAC Flood • CAM i ARP cache to struktury o skończonej pojemności • Rozmiar tabeli ARP cache pod Linuksem → 1024 wpisy (to ma tylko znaczenie w przypadku nieprzełączanego Ethernetu) • Rozmiar ARP cache w przełącznikach (4, 8, 16k) • Na przepełnienie wystarczy kilkadziesiąt sekund • W starszych przełącznikach switch → hub, crash, reboot • Smart CAM Table: – nie nadpisuje istniejących wpisów – stare wpisy są usuwane tylko po upływie czasu time-out – wpisy dotyczące aktywnych hostów nie zostaną napisane – tylko ramki z nieznanymi adresami MAC zostaną przesłane przez wszystkie porty 20 Port Security • Pozwala ograniczyć liczbę adresów MAC/hostów podłączonych do jednego portu przełącznika • W przypadku pojawienia się kolejnych MAC-ów są one blokowane lub port może zostać wyłączony Switch#sh port-security Secure Port MaxSecureAddr CurrentAddr (Count) (Count) SecurityViolation Security Action (Count) --------------------------------------------------------------------------Fa0/1 1 1 0 Shutdown --------------------------------------------------------------------------Total Addresses in System (excluding one mac per port) : 0 Max Addresses limit in System (excluding one mac per port) : 5120 Switch# 01:44:48: %PM-4-ERR_DISABLE: psecure-violation error detected on Fa0/1, puttinge 01:44:48: %PORT_SECURITY-2-PSECURE_VIOLATION: Security violation occurred, caus. 01:44:49: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/1, chann 01:44:50: %LINK-3-UPDOWN: Interface FastEthernet0/1, changed state to down 21 ARP spoofing (1) • Bardziej 'subtelny' • Protokół ARP nie zapewnia żadnych mechanizmów bezpieczeństwa • Gratuitous ARP: przy pomocy odpowiedniej ramki możemy zmienić tablice ARP bez pytania, nawet wszystkim hostom w VLAN-ie • Umożliwia to nam podszywanie się pod dowolnego hosta, np. bramę, atakujemy całą podsieć • Narzędzia: arpspoof, ettercap 22 ARP spoofing (2) 23 Arpspoof • Jeden z programów pakietu dsniff • Bardzo prosty w obsłudze • Pozwala na arp poisoning całego segmentu sieci 24 ARP spoofing - ochrona • ARP spoofing można wykryć przy pomocy IDS warstwy 2: arpwatch – powiadomienie email/sms do administratora • • Najprostszy sposób -> statyczne wpisy w tablicy MAC (żmudna administracja, ma to sens w przypadku krytycznych systemów) ArpON – zapewnia ochronę przed ARP spoofingiem, – przyjmuje tylko ARP reply z adresów o które sam pytał, pamięta powiązania MAC->IP – musi być zainstalowany na chronionym hoście, co nie zawsze jest możliwe • Podział sieci na VLAN-y: separacja użytkowników i systemów • Mechanizmy bezpieczeństwa zaimplementowane w przełączniku 25 ArpWatch From: arpwatch@localhost (Arpwatch localhost) To: root@localhost Subject: changed ethernet address (test345) eth1 hostname: ip address: interface: ethernet address: ethernet vendor: old ethernet address: old ethernet vendor: timestamp: previous timestamp: delta: test345 192.168.54.34 eth1 0:1e:35:c8:19:7b <unknown> 0:18:f7:fd:e8:e2 <unknown> Monday, December 7, 2009 15:44:20 +0100 Monday, December 7, 2009 14:11:15 +0100 1 hour 26 Dynamic ARP Inspection/DHCP Snooping • Switch podsłuchuje ruch DHCP (ang. snooping) • Tworzy listę powiązań port → MAC → IP S1# show ip dhcp snooping binding MacAddress Lease(sec) Type VLAN Interface ----------------- ------------ ---------- ------------- ---- -------------- 00:02:00:02:00:02 1.1.1.2 4993 dhcp-snooping 1 FastEthernet6/4 • IpAddress switch przechwytuje zapytania ARP – limituje ich liczbę – stosuje ew. ACL – sprawdza powiązania w tabeli DHCP snooping – w przypadku nieprawidłowości port jest wyłączany – tylko port oznaczony jako „trust” może być podłączony do 27 serwera DHCP Broadcast Storm • Ramki z adresem docelowym FF:FF:FF:FF:FF:FF • Przesyłane przez wszystkie porty przełącznika • Przetwarzane przez wszystkie hosty w podsieci • Klasyczny przykład DoS • Działa w ramach VLAN-u • Metoda ochrony → Storm Control – możemy wyznaczyć pasmo dla ramek typu: broadcast i multicast jako procent całości ruchu przekazywanego przez port – w przypadku przekroczenia limitu: SNMP trap lub shutdown • Uwaga: ARP również wykorzystuje ramki broadcast 28 Protected ports • Najbezpieczniejsze rozwiązanie • Uniemożliwia bezpośrednią komunikację pomiędzy portami/hostami w danym VLAN'ie • Możliwa komunikacja wyłącznie przez urządzenie L3, np. router, firewall • Wymagany co najmniej jeden port „unprotected” • Pełna kontrola nad ruchem w sieci • Nieefektywne wykorzystanie pasma • Dodatkowo należy uruchomić blokowanie flood-owania ramek unicast i multicast z nieznanym przełącznikowi adresem docelowym (Speak First) 29 Bezpieczeństwo protokołów warstwy 2 wykorzystywanych w inteligentnych przełącznikach 30 Protokoły warstwy 2 wykorzystywane przez inteligentne przełączniki • STP → Spanning Tree Protocol • Trunking (ISL, 802.1q) • Protokoły Cisco: – – – – CDP → Cisco Discovery Protocol DTP → Dynamic Trunking Protocol VTP → VLAN Trunking Protocol HSRP → Hot Standby Router Protocol 31 Protokół STP • Standard w złożonych sieciach • Pozwala stworzyć sieć odporną na awarię • Protokół drzewa rozpinającego, tworzy wolną od pętli topologię łączącą wszystkie przełączniki • Ochrona przed pętlami w warstwie 2 jest niezbędna, ze względu na możliwość wystąpienia: – Ethernet flood (brak TTL) – kopii ramek (ramki nie są numerowane) 32 STP: Zasada działania • Przez (prawie) każdy z portów przełącznika wysyłane są ramki BPDU, zawierające: priorytet przełącznika, identyfikator VLAN-u, adres MAC i koszt łącza (przepływność) • Przełączniki, wymieniając ramki BPDU, wybierają spośród siebie korzeń (najniższy priorytet, ew. MAC) • Od korzenia powstaje drzewo najkrótszych (najszybszych) ścieżek, redundantne łącza są blokowane • W przypadku zmiany topologii (dodatkowe łącze, uszkodzenie łącza) przełączniki informują się wzajemnie przy pomocy bitu TCN o nowej topologii • Brak mechanizmów uwierzytelniania 33 STP: Zagrożenia • Gdy mamy dostęp do portu z aktywnym STP możemy: – zostać korzeniem, doprowadzając do nieefektywnej topologii sieci – zmieniając swój priorytet/MAC lub wysyłając ramki z bitem TCN, doprowadzić do ciągłej rekonfiguracji topologii (pętle, DOS) • Gdy mamy dostęp do dwóch portów należących do różnych przełączników z aktywnym STP, możemy podsłuchiwać ruch pomiędzy przełącznikami • Narzędzia: – Yersinia 34 STP: podsłuchiwanie ruchu 35 STP: Nieefektywna topologia sieci 1GB 100MB 1GB 100MB 100MB 100MB 36 STP: jak się bronić • Nie możemy wyłączyć STP, bo może to doprowadzić do wystąpienia pętli • Za bezpieczeństwo STP odpowiadają wyłącznie inteligentne przełączniki • Zabezpieczanie STP polega na odpowiedniej konfiguracji interfejsów • Portfast (wszystkie porty klienckie) • BPDU guard (przypadku odebrania ramki BPDU port ten jest wyłączany) • Root guard (w przypadku odebrania ramki BPDU z priorytetem niższym niż obecny korzeń, ramka ta jest ignorowana) 37 Trunking • Umożliwia przesyłanie ramek z różnych podsieci (kanałów logicznych) w jednym łączu (kanale fizycznym) • Ramki są tagowane na połączeniach pomiędzy switchami na podstawie przynależności do określonego VLAN-u • Łącza typu Trunk najczęściej są używane w połączeniach: – switch ↔ switch – switch ↔ router • Native VLAN → nietagowany Tag Control Information: priorytet, CFI, VLAN id 38 DTP • Dynamic Trunking Protocol – tylko Cisco (na szczęście?:) – domyślnie włączony – brak zabezpieczeń – pozwala na wynegocjowanie łącza typu trunk (ISL lub 802.1q) na interfejsie 39 VLAN Hopping • Negocjujemy ze switchem łącze typu trunk – uzyskujemy dostęp do wszystkich VLAN-ów skonfigurowanych na przełączniku – narzędzia: Yersinia • Double tagging – podwójna enkapsulacja 802.1q – umożliwia jednokierunkową komunikację z VLAN-ami skonfigurowanymi na innym przełączniku • Narzędzia: Scappy 40 DTP, VLAN hopping 41 VTP • Vlan Trunking Protocol – tylko Cisco (na szczęście?:) – domyślnie włączony – działa w VLAN1 – DoS • Zarządzanie VLAN: – dodanie – usunięcie – zmiana • Narzędzia – Yersinia 42 VTP 43 Trunking: zalecenia • Wyłączamy DTP • VTP nie da się wyłączyć (!) → ustawiamy tryb transparent • Używamy silnych haseł w przypadku konieczności wykorzystania VTP • Tworzymy osobny natywny VLAN dla łączy typu trunk • Dlaczego separujemy VLAN1: – służy do zarządzania: telnet, SNMP, SSH – jest wykorzystywany przez: CDP, VTP, DTP – jest to dobra praktyka bezpieczeństwa 44 CDP • Cisco Discovery Protocol • Tylko w urządzeniach Cisco (na szczęście?:) • Kiedyś HP miał licencję, teraz używa otwartego LLDP • Domyślnie aktywny • Rozsyła informacje m.in. dotyczące: – typu i modelu urządzenia – wersji systemu operacyjnego IOS – nazwy hosta – domeny VTP, natywnego VLAN-u – poboru mocy PoE • Przy pomocy CDP można regulować moc portu PoE 45 CDP: Problemy • Information disclosure • DoS (CDP flood) • Kolejny wektor ataku: – CVE-2001-1071: Cisco IOS 12.2 and earlier running Cisco Discovery Protocol (CDP) allows remote attackers to cause a denial of service (memory consumption) via a flood of CDP neighbor announcements. – CVE-2005-3921: Cross-site scripting (XSS) vulnerability in Cisco IOS Web Server for IOS 12.0(2a) allows remote attackers to inject arbitrary web script or HTML by sending the router Cisco Discovery Protocol (CDP) packets with HTML payload that an administrator views via the CDP status pages. 46 Yersinia - DEMO 47 Podsumowanie Attack within subnet Broadcast storm MAC Flooding DHCP DoS DHCP rogue Spanning Tree hijack ARP table poisoning IP address spoofing Private VLANs Protected Ports, Ports Speak First Storm Control Port Security DHCP Snooping BPDU Guard Dynamic ARP Inspection Anti-spoofing access lists IP Source Guard/Snooping 48 Środki zaradcze • Minimalizacja domen kolizji i rozgłoszeniowych • Podział sieci na VLAN-y • System IDS działający w warstwie 2 (arpwatch) • Warstwa łącza nie została zaprojektowana jako bezpieczna, dlatego o jej bezpieczeństwie decydują inteligentne przełączniki wykorzystujące technologie: – Port security – Protected ports – Storm control – Dynamic ARP inspection – DHCP/IP snooping – BPDU (root) guard – Silne hasła!!! – Uwierzytelnianie 802.11x 49 Zalecenia • Zarządzanie przełącznikiem w bezpieczny sposób: konsola, ssh, listy dostępu, osobny VLAN dla ruchu zarządzającego • Należy zrezygnować z wykorzystywania VLAN1, DTP, VTP • Utwórz osobny VLAN dla portów trunk • Port security, szczególnie na portach dostępnych dla użytkowników • Wyłącz niewykorzystywane porty i przydziel je do nieużywanego VLAN-u • Wyłącz CDP • Zaimplementuj mechanizm bezpieczeństwa 802.1X • TESTUJ SWOJĄ SIEĆ !!! • MONITORUJ SWOJĄ SIEĆ !!! 50 Przykład bezpiecznej konfiguracji 51 Cisco Catalyst 3550 IOS wersja 12.1(22)EA10b (najnowszy 11.2009) no service passwordencryption spanningtree mode pvst spanningtree extend systemid interface FastEthernet0/1 switchport mode dynamic desirable ... interface Vlan1 no ip address shutdown ! ip classless ip http server line con 0 line vty 5 15 52 Hardening konfiguracji (1) Switch(config)#service password encryption Switch(config)#crypto key generate rsa Switch(config)#enable secret <haslo> Switch(config)#line console 0 Switch(configline)#password <haslo> Switch(configline)#login Switch(config)#line vty 0 15 Switch(configline)#password <haslo> Switch(configline)#login Switch(configline)#transport input ssh Switch(configline)#transport output ssh 53 Hardening konfiguracji (2) Switch(config)#no ip http server Switch(config)#no cdp run Switch(config)#vtp mode transparent Swicth(config)#interface range FastEthernet 0/1 24 Switch(configifrange)#switchport mode access Switch(configifrange)#switchport nonegotiate Switch(configifrange)#switchport access vlan 100 Switch(configifrange)#stormcontrol broadcast level pps 100 20 (poniżej 20 port przestanie być blokowany) Switch(configifrange)#stormcontrol multicast level pps 100 20 54 Hardening konfiguracji (3) Switch(configifrange)#switchport protected Switch(configifrange)#switchport block multicast Switch(configifrange)#switchport block unicast Switch(configifrange)#switchport portsecurity maximum 1 Switch(configifrange)#switchport portsecurity violation shutdown 55 Problemy wyższych warstw... 56 Problemy warstwy sieci / transportowej • Brak możliwości weryfikacji autentyczności oraz integralności przesyłanych danych • Transmisja jest narażona na podsłuch • Atak typu „Man In The Middle” • Podszywanie się (IP spoofing) • SYN flood • Skanowanie portów i adresów • Ataki na protokoły routingu • Bezpieczeństwo DNS 57 Środki zaradcze IPSec/IPv6, VPN Firewall Filtrowanie ingress, egress Transport Layer Security Technika SYNcookie Mechanizmy uwierzytelniania w protokołach routingu • Port knocking • Systemy IDS • IP source guard • • • • • • 58 Źródła wiedzy • http://www.yersinia.net/ • http://www.monkey.org/~dugsong/dsniff/ • http://ettercap.sourceforge.net/ • Cisco Security Advisories • Hacking Layer 2: Fun with Ethernet Switches by Sean Convery • Guide To Harden Cisco IOS Devices • Layer 2 Security In-depth by Ido Dubrawsky - zawiera tabelę funkcjonalności bezpieczeństwa zawartych w różnych przełącznikach 59 Informacje kontaktowe • PCSS – WWW: http://www.pcss.pl – E-mail: [email protected] • Zespół Bezpieczeństwa PCSS – WWW: http://security.psnc.pl – E-mail: [email protected] – Autor prezentacji: Łukasz Czarniecki – E-mail: [email protected] 60 Pytania i dyskusja Dziękuję za uwagę! 61