Projektowanie Bezpieczeństwa Sieci i Serwerów mgr inż. Adam Mencwal Katedra Informatyki Stosowanej amencwal@kis.p.lodz.pl http://amencwal.kis.p.lodz.pl/
Bezpieczeństwo teleinformatyczne Bezpieczeństwo teleinformatyczne zbiór zagadnień z dziedziny telekomunikacji i informatyki związany z szacowaniem i kontrolą ryzyka wynikającego z korzystania z komputerów, sieci komputerowych i przesyłania danych do zdalnych lokalizacji, rozpatrywany z perspektywy: - poufności (szyfrowanie/utajnianie danych) - integralności (podmiana stron www, wykradanie baz danych, kradzież tożsamości, botnety) - dostępności (ataki typu Denial-of-Service, spam) (źródło: http://pl.wikipedia.org/wiki/bezpieczeństwo_teleinformatyczne)
Źródła zagrożeń Użytkownik social engineering (np. wykradanie hase ł) malware (opr. 'złośliwe') System Operacyjny exploity/rootkity scanning (skanowanie) Denial of Service spam Sprzęŧ i Sieć Komputerowa spoofing(fałszowanie) sniffing (podsłuchiwanie)
Sniffing, podsłuch Sniffer program przechwytujący dane na łączu przy włączonym trybie 'promiscuous' karty sieciowej. Umożliwia przegląd i analizę treści pakietów wraz z informacjami kontrolnymi takimi jak: -adresy źródłowe i docelowe IP i MAC -numery portów źródłowych i docelowych -numery sekwencyjne TCP -flagi TCP -wartości TTL i inne
Nagłówek protokołu IP (Internet Protocol) 0 4 8 12 16 20 24 28 32 wersja długość nagłówka Typ usługi (TOS) łączna długość pakietu (TL) identyfikator znaczniki przesunięcie fragmentu czas życia pakietu (TTL) protokół warstwy wyższej adres źródłowy adres docelowy opcje dane suma kontrolna nagłówka dopełnienie
Pola nagłówka protokołu TCP 0 4 8 12 16 20 24 28 32 port źródłowy port docelowy numer sekwencyjny numer potwierdzający przesunięcie danych zarezerwowane bity sterujące rozmiar okna suma kontrolna nagłówka wskaźnik danych pilnych opcje dopełnienie dane
Uwierzytelnianie i bezpieczeństwo w sieciach bezprzewodowych OPEN )))))))))))))))))))))))) zwykly_tekst PRE-SHARED KEY (WEP) )))))))))))))))))))))))) d#2f37f2hj WPA PSK (PERSONAL) )))))))))))))))))))))))) d#2f37f2hj WPA 802.1X (ENTERPRISE) )))))))))))))))))))))))) d#2f37f2hj A P A P A P A P BRAK JAKIEGOKOLWIEK SZYFROWANIA!!! transmisja nawiązywana na podstawie SSID szyfrowanie słabym (64 bit) algorytmem na podstawie stałego klucza znanego obu stronom przed rozpoczęciem procesu autentykacji możliwość deszyfracji klucza metodą brute-force możliwość podmiany danych w ramce bez znajomośći klucza(!) szyfrowanie silnym (172 bit) algorytmem na podstawie początkowego stałego klucza znanego obu stronom przed rozpoczęciem procesu autentykacji dynamiczna zmiana klucza (algorytm TKIP) zabezpieczenie przed podmianą danych w ramce (MIC message integrity code) te same cechy co WPA PSK ale z zastosowaniem złożonej infrastruktury autentykacyjnej (np. serwer RADIUS) możliwość wszechstronnej konfiguracji ( wyzwanieodpowiedź, hasła tymczasowe, żetony, certyfikaty, klucz publiczny, itp)
Zasada działania przełącznika, mac-flooding 00:0F:B0:75:DD:38 odebrałem wysyłam ramkę dood od 0B:BF:10:5E:CD:13 1A:0A:AC:3C:7D:01 nr portu 1 2 3 4 Tablica CAM adres MAC 00:0F:B0:75:DD:38 0B:BF:10:5E:CD:13 C5:C4:AC:17:D3:18 1A:0A:AC:3C:7D:01 C5:C4:AC:17:D3:18 wysyłam ramkę do 0B:BF:10:5E:CD:13 0B:BF:10:5E:CD:13 wysyłam odebrałem ramkę dood 00:0F:B0:75:DD:38 C5:C4:AC:17:D3:18 1 3 2 4 dostałem ramkę od dostałem ramkę od C5:C4:AC:17:D3:18 0B:BF:10:5E:CD:13 dostałem do do ramkę 0B:BF:10:5E:CD:13 00:0F:B0:75:DD:38 od 1A:0A:AC:3C:7D:01 do 00:0F:B0:75:DD:38 od 00:0F:B0:75:DD:38 dopisuję adres nadawcy do 1A:0A:AC:3C:7D:01 do tablicy CAM dopisuję adres nadawcy do tablicy CAM znam dopisuję adresata, adres więc nadawcy wysyłam do tablicy tylko na CAM port 12 znam adresata, więc wysyłam tylko na port nie znam adresata, więc rozsyłam na wszystkie porty 1A:0A:AC:3C:7D:01 wysyłam odpowiedź do 00:0F:B0:75:DD:38
Protokół ARP (Address Resolution Protocol) tablica ARP chce wysłać pakiet do IP MAC 10.0.0.3... jednak nie wiem jak zaadresować ja nie mam............ ramkę bo nie mam w adresu tablicy dostałem ARP żadnej ramkę 10.0.0.3... nie IP: 10.0.0.5 informacji adresowaną nt temat.. odpowiadam do... MAC: AA:0C:11:32:79:1E Wysyłam więc mnie, zapytanie z do wszystkich nieznanego (na adres mi broadcastowy adresu MAC... FF:FF:FF:FF:FF:FF) wpisuję go do tablicy ARP dostałem odpowiedź ARP! już wiem jak adresować ramkę do 10.0.0.3..! dopisuję informację do tablicy ARP i wysyłam ramkę. IP: 10.0.0.1 IP: 10.0.0.2 MAC: 00:0F:B0:75:DD:38MAC: 0B:BF:10:5E:CD:13 tablica ARP tablica ARP IP MAC IP MAC 10.0.0.4 00:0F:B0:75:DD:38 10.0.0.3 1A:0A:AC:3C:7D:01............ IP tablica ARP MAC 10.0.0.1 00:0F:B0:75:DD:38...... IP: 10.0.0.4 MAC: BA:00:A0:76:DD:01 ja nie mam adresu 10.0.0.3.. nie odpowiadam.. chcę wysłać pakiet do 10.0.0.1... wiem jak ja zaadresować nie mam ramkę adresu bo 10.0.0.3... mam w nie tablicy odpowiadam ARP... informacje o jego adresie MAC IP: 10.0.0.3 MAC: 1A:0A:AC:3C:7D:01 tablica ARP IP MAC............ ja mam adres 10.0.0.3! odpowiadam nadawcy!
ARP Spoofing, DNS Spoofing IP: 10.0.0.5 MAC: AA:0C:11:32:79:1E OFIARA tablica ARP IP MAC 10.0.0.4 0B:BF:10:5E:CD:13 (!) otrzymałem ramkę broadcastową, rozsyłam na wszystkie porty IP: 10.0.0.4 MAC: BA:00:A0:76:DD:01 chce wysłać pakiet do 10.0.0.4... jednak nie wiem jak zaadresować ramkę bo nie mam w tablicy ARP żadnej informacji nt temat.. Wysyłam więc zapytanie do wszystkich (na adres broadcastowy FF:FF:FF:FF:FF:FF) otrzymałem odpowiedź ARP, uzupełniam tablice ARP ATAKUJĄCY przechwyciłem zapytanie ARP, wysyłam sfałszowaną odpowiedź do nadawcy (10.0.0.5) IP: 10.0.0.2 MAC: 0B:BF:10:5E:CD:13
Ataki Man-in-the-middle tablica ARP IP MAC 10.0.0.4 0B:BF:10:5E:CD:13 (!) IP: 10.0.0.5 MAC: AA:0C:11:32:79:1E IP: 10.0.0.4 MAC: BA:00:A0:76:DD:01 OFIARA chcę połączyć się poprzez SSH z adresem 10.0.0.4 wysyłam nieświadomie pakiety do Atakującego.. certyfikat jest zmieniony..(?) ale podaję swoje dane poufne Ofiara podała dane poufne! Przesyłam je do 10.0.0.4, i pośredniczę w transmisji, tak aby Ofiara nie zauważyła ataku. Ofiara kieruje do mnie strumień danych SSH.. podstawiam fałszywy ATAKUJĄCY certyfikat ale wciąż oczekuję na wprowadzenie danych IP: 10.0.0.2 poufnych (login,hasło,itp) MAC: 0B:BF:10:5E:CD:13
wyznaczanie ścieżki rutowania pakietów na przykładzie działania programu traceroute 10.0.0.1 10.0.0.2 10.0.0.6 10.0.0.8 TTL=1 TTL=2 TTL=3 TTL=0 TTL=0 TTL=0 ICMP : TTL Exceeded ICMP : TTL Exceeded ICMP : TTL Exceeded ilość skoków adres IP 1 10.0.0.2 2 10.0.0.6 3 10.0.0.8
Nawiązanie, negocjacja, zamknięcie połączenia w sesji TCP 0 4 8 12 16 20 24 28 32 inne pola... numer sekwencyjny numer potwierdzający przesunięcie danych zarezerwowane bity sterujące rozmiar okna inne pola... 10 11 12 13 14 15 16 URG ACK PSH RST SYN FIN INICJUJĘ POŁĄCZENIE: wysyłam segment z nastawionym bitem SYN nastawiam nr sekwencyjny na X określam rozmiar okna na A POTWIERDZAM POŁĄCZENIE: wysyłam segment z nastawionym bitem ACK nastawiam nr potwierdzający na Y+1 FIN SYN INICJUJĘ POŁĄCZENIE: wysyłam segment z nastawionym bitem SYN+ACK FIN+ACK SYN+ACK nastawiam nr (RST) sekwencyjny na Y ACK nastawiam nr ACK potwierdzający na X +1 określam rozmiar okna na B
metody skanowania portów ATAKUJĄCY OFIARA skanowanie typu 'SYN': SYN port otwarty: port zamknięty: SYN,ACK RST skanowanie typu: ACK: ACK FIN: NULL: FIN - brak odpowiedzi RST XMAS: FIN,URG,PSH
OS Fingerprinting Badanie sygnatury ( odcisku palca ) systemu operacyjnego polega na analizie wybranych pól nagłówka IP i TCP takich jak: Initial TTL (8 bits) Window size (16 bits) Maximum segment size (16 bits) "Don't fragment" flag (1 bit) sackok option (1 bit) nop option (1 bit) Window scaling option (8 bits) Initial packet size (16 bits) przy założeniu że implementacje stosu TCP/IP w różnych systemach operacyjnych różnią się. Fingerprinting aktywny Analiza odpowiedzi na spreparowaną sekwencję pakietów (TCP/UDP/ICMP) wysłaną na wcześniej wykryte zamknięte i otwarte porty. Więcej informacji o testach używanych przy OS-fingerprintingu: http://nmap.org/book/osdetect-methods.html
Ataki Denial-of-Service (DoS) Distributed DoS master master Distributed Reflection DoS komenda rozpoczęcia ataku komenda rozpoczęcia ataku TCP SYN (SRC IP ofiary) zombie zombie TCP SYN TCP SYN UDP UDP ICMP ICMP TCP SYN ICMP TCP SYN UDP (SRC IP ofiary) TCP SYN+ACK TCP SYN+ACK ofiara ataku ofiara ataku
Podstawy konfiguracji i monitorowania środowiska sieciowego w systemie GNU/Linux ifconfig <= konfiguracja interfejsu sieciowego route <= konfiguracja rutingu statycznego netstat <= wyświetlanie otwartych gniazd UDP, połączeń TCP, tablicy rutingu,itp. ping, traceroute <= testowanie drożności tras /etc/hosts <= rozwiazywanie nazw(stat.) /etc/resolv.conf <= rozwiązywanie nazw(dyn.) /etc/hosts.{allow/deny} <= restrykcje dostępu do usług
ifconfig przykład wyjścia polecenia eth0 Link encap:ethernet HWaddr 00:0F:B0:75:DD:38 inet addr:10.10.50.206 Bcast:10.10.50.255 Mask:255.255.255.0 inet6 addr: fe80::20f:b0ff:fe75:dd38/64 Scope:Link UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1 RX packets:412113 errors:0 dropped:0 overruns:0 frame:0 TX packets:452451 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:231230851 (220.5 MB) TX bytes:235130192 (224.2 MB)
netstat przykład wyjścia polecenia (fragment) Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:8192 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:5222 0.0.0.0:* LISTEN tcp 0 0 192.168.0.5:80 0.0.0.0:* LISTEN tcp 0 22 83.26.26.21:3613 82.21.16.92:105 FIN_WAIT2 tcp 131 0 83.26.26.21:4247 80.108.9.23:2456 TIME_WAIT tcp 0 0 83.26.26.21:4662 83.24.14.20:3414 ESTABLISHED udp 0 0 0.0.0.0:4666 0.0.0.0:* udp 0 0 127.0.0.1:53 0.0.0.0:* Proto Ref Cnt Flags Type State I-Node Path unix 16 [ ] DGRAM 983 /dev/log unix 2 [ACC] STREAM LISTENING 11375257 /var/run/mysqld.sock