przepisał: Aleksander Śmierciak
Bezpieczeństwo systemów informatycznych
Wykład
28 maja 2012
Źródła zagrożeń w sieciach komputerowych
Bezpieczeństwo systemów komputerowych
Wstęp
Prawie każde nadużycie komputerowe poprzedzone jest rozpoznaniem systemu ofiary. Sukces
włamania jest wprost proporcjonalny do zgromadzonych o tym systemie informacji.
Źródła informacji o systemie:
•
bazy typu „whois”, strony www (zdobywanie informacji bez konieczności oddziaływania na
system ofiary),
•
programy podsłuchujące lub skanujące sieci i systemy operacyjne potencjalnej ofiary.
Sniffing
Węszenie w sieci
Sniffing to metoda pasywna.
Definicja
Sniffery są to programy służące do przechwytywania całego ruchu odbieranego przez interfejs
sieciowy i przekształcania ich do postaci zrozumiałej dla człowieka. Stanowi to poważne
zagrożenie dla bezpieczeństwa komunikacji w sieciach.
Przełączając kartę sieciową w tryb promiscuous (mieszany) interfejs przejmuje wszystkie pakiety
i ramki, a nie tylko te które są explicite przeznaczone dla niego (zgodność adresu MAC
przeznaczenia).
1
przepisał: Aleksander Śmierciak
Umieszczenie sniffera
[Dyskusja na temat tego które komputery mogą podsłuchiwać ruch między różnymi komputerami]
Metody wykrywania snifferów
1. Metody zdalne
a) metody wykorzystujące błędy w implementacji stosu TCP/IP
•
metoda ARP
•
metoda ping
b) test DNS
c) badanie opóźnień
d) ARPcache
2. Metody lokalne
Co się dzieje, gdy mój komputer chce się skomunikować z zewnętrznym serwerem WWW?
W hipotetycznej sytuacji system operacyjny nie wysłał żadnego pakietu przed rozpoczęciem owej
komunikacji (np. użycia przeglądarki internetowej).
Nasz komputer bazując na wpisach swojej tablicy routingu będzie najpierw wykonywał zapytanie
DNSowe, ale nie będzie wiedział gdzie je przesłać w warstwie Ethernet (jedynie w warstwie IP,
gdyż zna jedynie swój adres sprzętowy). Musi poznać adres sprzętowy swojego routera, dlatego
wyśle zapytanie ARP.
Ramka Ethernet zapytania ARP składa się z adresu IP, adresu sprzętowego, adresu IP docelowego
będącego adresem rozgłoszeniowym (jedynki). Ponadto: typ protokołu warstwy łącza danych, typ
protokołu warstwy wyższej, długości adresów, adresy sprzętowe nadawcy oraz odbiorcy, operacja
do wykonania.
Zapytanie ARP jest de facto pytaniem: „jaki jest adres sprzętowy komputera o adresie IP …?”
Komputer będzie czekał na pierwsze zgłoszenie („kto pierwszy, ten lepszy”).
Wykrywanie sniffera – test ARP
Metoda wykrywania komputera nasłuchującego w sieci przy użyciu testu ARP polega na
wykorzystaniu faktu, iż host podsłuchujący w sieci przechwyci ramkę Ethernet z adresem
docelowym innym niż adres jego karty. Sytuacja taka nie miałaby miejsca, gdyby komputer nie
podsłuchiwał ruchu w sieci.
2
przepisał: Aleksander Śmierciak
Program testujący wysyła do sieci zapytanie ARP o adres sprzętowy komputera, który
poddawany jest testowi. W ramce Ethernet ustawiony jest nieprawidłowy adres docelowy. Adres ten
musi być także inny, od jakiegokolwiek używanego w danym segmencie sieci. Adres nadawcy
podawany jest zgodnie z prawdą. Komputer podsłuchujący odbierze taką ramkę i odpowie na nią,
czego skutkiem będzie odesłanie odpowiedzi ARP do komputera, który wygenerował zapytanie.
Pojawienie się odpowiedzi oznacza, że testowany komputer podsłuchuje w sieci.
Zablokowanie odpowiedzi na zapytania ARPowe uniemożliwi komputerowi funkcjonowanie w sieci.
Wykrywanie sniffera – ARP cache
Metoda ta wykorzystuje tablicę ARP cache utrzymywaną przez systemy komputerowe.
Komputer, którty podsłuchuje w sieci, będzie do sowjej tablicy ARP dopisywał każde
odwzorowanie jakie pojawi się w postaci pakietu ARP Reply (bo każdą taką odpowiedź przechwyci
w sieci).
Testujący program musi wysłać jakikolwiek pakiet do komputera badanego, podszywając się pod
ten nieistniejący komputer. Może to być nawet komunikat ICMP echo-request. W momencie w
którym testowany komputer odpowie komunikatem echo-reply bez wcześniejszego wykonania
zapytania ARP echo-request oznacza to, że miał w swojej tablicy ARP cache stosowny wpis. Wpis
ten może posiadać jedynie komputer podsłuchujący.
Najpierw trzeba wygenerować sztuczny ruch (do nieistniejącego w sieci komputera).
Wykrywanie sniffera – test ICMP
Metoda ta w swojej zasadzie działania podobna jest do metody ARP.
Wykorzystywany jest jednak inny protokół – ICMP. Metoda ta polega na wysłaniu do badanego
komputera komunikatu ICMP echo-request. Adres docelowy ramki Ethernet niosącej taki
komunikat musi jednak zostać sfałszowany. Adres ten musi się różnić od faktycznego adresu karty
sieciowej badanego komputera (i powinien być inny od używanych w danym segmencie sieci),
podczas gdy adres IP musi być poprawny. Podobnie źródłowe adresy IP oraz Ethernet powinny być
prawdziwe.
Komputer, który podsłuchuje w sieci odbierze taką ramkę. W przypadku komputera nie
podsłuchującego w sieci nie powinno do tego dojść, gdyż taka ramka ze względu na niezgodność
docelowego adresu zostałaby odfiltrowana. Komputer podsłuchujący odpowie na takie żądanie
echo-request i do komputera analizującego jego stan wyśle komunikat ICMP echo-reply. Jest to
jednoznaczny dowód, że komputer ten podsłuchuje w sieci.
Pozytywny wynik tych testów daje jednoznaczną odpowiedź, że dany komputer podsłuchuje w sieci.
Negatywny wynik nie jest jednoznaczną odpowiedzią.
3
przepisał: Aleksander Śmierciak
Wykrywanie sniffera – test DNS
Wiele aplikacji służących do podsłuchiwania pakietów w sieci próbuje w momencie ich
przechwycenia tłumaczyć adresy IP na nazwy domenowe. Fakt ten może zostać wykorzystany do
wykrycia podsłuchiwania w sieci. Konieczne jest wysłanie do komputera podsłuchującego
datagramu IP ze źródłowym adresem IP, który nie pojawia się w sieci. Datagram ten powinien być
transportowany przez ramkę Ethernet, która posiada fałszywy adres docelowy. Następnie należy
nasłuchiwać w sieci na zapytanie kierowane przez badany komputer do serwera DNS o nazwę
domenową źródłowego adresu IP. Jeśli takie zapytanie odwrotne pojawi się w sieci, oznacza to, że
badany komputer podsłuchuje w sieci.
Metoda ta do wykrycia sniffingu wymaga użycia sniffingu.
Badanie opóźnień
Kiedy karta sieciowa zostanie przełączona w tryb promiscuous, a sieć jest obciążona, to do
systemu zaczyna docierać ogromna ilość informacji, co spowalnia jego działanie.
Test zaczynamy od wyznaczenia czasu odpowiedzi (ping) podejrzanego hosta przy mało
obciążonej sieci. Następnie generujemy w sieci nadmiarowy ruch i badamy czas odpowiedzi hosta.
Wadą tej metody jest konieczność chwilowego obciążenia sieci, co może prowadzić do kolizji
i przerwy w działaniu.
De facto wykonujemy atak DoS na naszą własną sieć, dlatego ta metoda nie jest popularna.
Lokalne wykrywanie snifferów
Pierwsza metoda polega na wykryciu interfejsu z włączonym trybem promiscuous. Najlepiej
wykonać to komendą:
# ifconfig -a | grep PROMISC
Metoda ta często okazuje się zawodna. Pomocnym programem jest promiscan dostępny na
Drugą metodą jest sprawdzenie procesów o następujących cechach, charakteryzujących sniffer:
•
niska wartość PID
•
UID = 0
•
długi czas działania
•
znaczne obciążenie procesora
Niska wartość PID, bo uruchamia się ze startem systemu
UID = 0, bo wymagane są prawa administratora
Długi czas działania - oczywiste
Znaczne obciążenie procesora, bo w trybie promiscuous odbiera znaczną ilość informacji cały czas.
4
przepisał: Aleksander Śmierciak
Zabezpieczenia przed snifferami
Aby częściowo zabezpieczyć się przed działaniem sniffera można wyłączać co określony czas
tryb promiscuous na wszystkich interfejsach.
Inną metodą zabezpieczenia jest szyfrowanie pakietów za pomocą SSL, SSH, PGP i S/MIME
oraz tunelowanie połączeni przy pomocy VPN.
Kolejną metodą utrudniającą podsłuchiwanie i jednocześnie zwiększającą przepustowość sieci
lokalnej jest zmniejszenie rozmiaru domeny kolizyjnej przez zastąpienie koncentratorów
przełącznikami.
Domena kolizyjna to zbiór hostów, z których tylko jeden może w danym czasie nadawać, a reszta -
nasłuchiwać.
Ile wynosi domena kolizyjna na hubie?
Ile wynosi domena kolizyjna na switchu?
Domena kolizyjna switchów wynosi 1.
Secure ARP
Każdy komputer w sieci LAN posiada własną parę kluczy publiczny/prywatny podpisaną
cyfrowo przez zaufany host w sieci pracujący jako Centrum Certyfikacji. Pakiety ARP są cyfrowo
podpisane przez nadawcę, co pozwala odbiorcy sprawdzić skąd tak naprawdę pochodzą.
Protokół bez problemu pracuje także w sieciach, w których używany jest serwer DHCP, lecz
wymaga to jego modyfikacji (współpraca serwera DHCP z Authoritative Key Distributor) –
stworzony serwer S-DHCP.
Do standardowego nagłówka ARP dodawane jest 12 bajtów rozszerzenia Secure-ARP.
Protokół ten bazuje na infrastrukturze klucza publicznego. Sam standard nie został jednak
wdrożony popularnie i mało kto o nim słyszał.
Gdyby został wprowadzony, to uniemożliwiłby całkowicie nasłuchiwanie i oszukiwanie urządzeń
niższych warstw.
Secure ARP
Protokół zaproponowany w 2003 roku przez:
D. Bruschi, A. Ornaghi, E. Rosti […]
Opis protokołu do pobrania pod adresem:
www.acsac.org/2003/papers/111.pdf
Nie stosuje się przez czas potrzebny na wygenerowanie zapytania i odpowiedzi ARP.
5
przepisał: Aleksander Śmierciak
Secure ARP
W tabeli podany jest czas potrzebny na otrzymanie odpowiedzi na ICMP echo-request w
przypadku, gdy w tablicy S-ARP nie zostały zbuforowane pary adres IP, adres MAC.
Długość klucza Czas minimalny (µs) Czas maksymalny (µs)
512 bitów
17,7
18,1
1024 bity
48,0
48,8
ARP
0,6
0,8
Podsłuch sieci opartej na switchach
1. Przeciążenie przełącznika (switch jamming)
Przełączniki zalane potokiem ramek z losowymi, nieistniejącymi w sieci adresami MAC
przechodzą w tryb repeating i zaczynają pracować jak zwykłe koncentratory. Dzieje się tak
z powodu przepełnienia tablicy do odwzorowania adresów MCA na porty przełącznika.
Większość przełączników ma jednak specjalne funkcje zabezpieczające przed takimi
atakami. Jedną z nich jest ograniczenie liczby adresów MAC, które przełącznik przypisać
może do określonego portu. Gotowym narzędziem realizującym ten atak jest dsniff.
Switch kasuje starsze wpisy tablicy odwzorowującej gdy zostanie ona wypełniona.
Nowsze switche są zabezpieczone przed takim atakiem, ale podczas niego będą działały wolniej.
Podsłuch sieci opartej na switchach
2. Przekierowanie ARP (ARP redirect)
Metoda ta wykorzystuje sposób, w jaki komputery w jednej domenie rozgłoszeniowej
uzyskują informacje o adresach MAC innych hostów. Wykorzystanie słabości protokołu
ARP polega na wysłaniu zapytania ARP ze sfałszowanym powiązaniem MAC-IP. Z metodą
tą związane jest przekierowywanie routera (router redirection) jeśli zapytanie będzie
zawierało przypisanie adresu IP lokalnej bramy (routera) do adresu MAC komputera
podszywającego się. Spowoduje to, że wszystkie pakiety wysyłane w świat przechodzić
będą przez podszywający się komputer. Aby nie zablokować całego ruchu i nie wzbudzać
podejrzeń, komputer podszywający się może przekierowywać cały ruch do routera.
Narzędzie Ethercap realizuje ten atak.
Problemem jest to, że stosunkowo często trzeba wysyłać komunikaty echo-request, aby urządzenia
komunikujące się i podsłuchiwane realizowały ruch przez komputer podsłuchujący.
6
przepisał: Aleksander Śmierciak
Podsłuch sieci opartej na switchach
3. Przekierowywanie ICMP (ICMP redirect)
W metodzie tej, do poprawnego działania wymagany jest protokół IRDP (ICMP Discovery
Protocol) uruchomiony zarówno na stacjach roboczych jak i na routerze.
W skonfigurowanym środowisku maszyny w sieci lokalnej otrzymują od routerów pakiety
ICMP Router Adveritsement i na podstawie wartości pola numeru preferencyjnego
wybierają najlepszą bramkę domyślną. Jeśli router wybrany jako bramka domyślna na
podstawie tablicy routowania stwierdzi, że lepsza droga do konkretnego hosta prowadzi
przez inny router, to wyśle datagram ICMP redirect nakazujący zmienić hostowi bramkę
domyślną. Protokół IRDP nie ma jednak możliwości weryfikacji datagramów ICMP i ślep
wierzy w ich prawdziwość. Odpowiednio spreparowane datagramy ICMP pozwalają na
podszycie się pod bramkę domyślną i przechwycenie […]
Podsłuch sieci opartej na switchach
4. Rekonfiguracja portów span na przełącznikach
[to było na zeszłym wykładzie i prowadzący pominął opis]
Fałszowanie adresu MAC
[…] ideą jest spowodowanie sytuacji, w której przełącznik będzie przekazywał nam wszystkie
ramki skierowane do komputera ofiary. W tym celu wystarczy co jakiś czas wysyłać ramki z
adresem MAC podsłuchiwanego komputera. Spowoduje to aktualizację tablicy przełączania na
przełączniku, który przez chwilę będzie kierował ruch do segmentu maszyny podsłuchującej. W ten
sposób część pakietów nie dotrze do celu, ale cecha niezawodności TCIP sprawi, że odpowiednie
pakiety zostaną retransmitowane i ofiara doświadczy jedynie opóźnień sieciowych. Kiedy maszyna
podsłuchiwana wyśle kolejną ramkę, przełącznik znowu przeprowadzi aktualizację i powróci do
poprzednich ustawień. Aby temu zapobiec […]
Przykłady snifferów
1. tcpdump
[…]
2. wireshark
3. Inne
[…]
7
przepisał: Aleksander Śmierciak
Skanowanie
Zewnętrzne rozpoznawanie sieci
Definicje
Skanowanie jest sondowaniem atakowanego systemu poprzez przegląd jego adresów sieciowych
oraz portów sieciowych.
Skanowanie adresów sieciowych polega na przeglądaniu kolejnych adresów IP ze złożonego
zakresu w celu wytypowania ofiary lub poznania topologii atakowanej sieci.
Skanowanie portów sieciowych polega na przeglądaniu kolejnych portów sieciowych systemu
komputerowego w celu uzyskania informacji na temat tego jakie porty są otwarte […]
Techniki skanowania
1. Skanowanie z wykorzystaniem ICMP
Najprostszą i najczęściej stosowaną, ale i najbardziej zawodną metodą skanowania jest
wysłanie pakietu ping, czyli ICMP echo-request. Na jego podstawie można stwierdzić, czy
docelowy host jest osiągalny. Brak odpowiedzi świadczy jedynie o tym że komputer jest
nieosiągalny. Powodów tego może być wiele, np. zapora ogniowa filtrująca pakiety ICMP
czy wyłączona usługa ping.
Techniki skanowania
2. Technika TCP connect
Nazwa pochodzi od systemowej funkcji connect (), która służy do nawiązania pełnego
połączenia z odległym portem. Jeśli w fazie nawiązywania połączenia serwer odpowie
flagami SYN/ACK, oznacza to, że port jest otwarty w trybie nasłuchu – flaga RST/ACK
wskazuje na zamknięty port. Skanowanie kończy pakiet RST, czyli czyste zamknięcie
skanowania.
Techniki skanowania
3. Technika półotwarcia – TCP SYN
Polega na wysłaniu pakietu RST zaraz po otrzymaniu w drugiej fazie połączenia pakietu
SYN/ACK lub RST/ACK. Jej zaletą jesty utrudniona wykrywalność, wadą – konieczność
posiadania uprawnień zastrzeżonych dla administratora.
TCP connect – nie wymaga praw administratora, łatwiej wykryć
TCP SYN – wymaga praw administratora, trudniej wykryć
8
przepisał: Aleksander Śmierciak
Techniki skanowania
4. Zaawansowane techniki skanowania
Bardziej zaawansowane metody skanowania, wykrywane są z reguły dopiero przez
specjalizowane programy. Polegają na obserwacji zachowania się systemu w momencie
otrzymania niestandardowych pakietów TCP.
Techniki te mają za zadanie:
•
ominąć filtry pakietów (ACL),
•
nie dać się wykryć (stąd nazwa Stealth) przez systemy IDS,
•
ukryć się w typowym ruchu sieci.
Wszystkie one wykorzystują podstawową zasadę (RFC 793) stanowiącą, że zamknięty port
powinien odpowiedzieć pakietem RST na każdy pakiet niezgodny z kolejnością
nawiązywania połączenia TCP.
Techniki skanowania
5. Technika SYN/ACK
Technika SYN/ACK wysyła na wybrany port pakiet z flagami SYN/ACK bez
wcześniejszego zainicjowania połączenia pakietem SYN. Wartość ACK w tym pakiecie
odnosi się do nieistniejącego połączenia. Jeśli skanowany system odbierze taki pakiet na
otwartym porcie to zignoruje go, traktując jako uszkodzony. Jeśli pakiet trafi na port
zamknięty, wygenerowany zostanie pakiet RST.
Techniki skanowania
6. Pakiet XMAS
Ma ustawiony wszystkie możliwe flagi – URG, ACK, PSH, RST, SYN i FIN. Otrzymując
tak udziwniony pakiet, skanowany system odpowiada jak w poprzednim przypadku.
Załączone flagi układają się w rysunkową choinkę, stąd nazwa.
Techniki skanowania
7. Technika wykorzystująca flagę FIN.
Technika wykorzystująca flagę FIN. Reakcja skanowanego systemu jest identyczna z
przedstawioną poprzednio. Metoda ta wykorzystuje błąd w obsłudze stosu TCP/IP, przez co
działa jedynie w systemach, gdzie błąd ten nie został poprawiony.
Techniki skanowania
8. Pakiet NULL
Użycie pakietu NULL, który nie zawiera ustawionej żadnej flagi. Zgodnie z zaleceniami
RFC 793, wszystkie hosty zobowiązane są odpowiedzieć pakietem RST, jeżeli port jest
zamknięty.
9
przepisał: Aleksander Śmierciak
Techniki skanowania
9. Inverse mapping
Technika inverse mapping wysyła pakiety z ustawioną flagą RST. Wykorzystuje się ją z
reguły w celu poznania topologii sieci – stwierdzenia czy dany host istnieje, czy nie. W
typowym przypadku router po otrzymaniu pakietu do nieistniejącego hosta wygeneruje
komunikat: ICMP host unreachable lub ICMP time exceeded. Brak odpowiedzi może
oznaczać aktywność hosta, choć równie prawdopodobne jest to, że router nie wygenerował
komunikatu ICMP, komunikat się zgubił lub wysłany przez skanującego pakiet został
odfiltrowany w drodze powrotnej.
Techniki skanowania
10. Skanowanie UDP
W skanowaniu UDP wykorzystywane jest przesyłanie pakietów UDP na kolejne porty. W
odpowiedzi można uzyskać następujące pakiety:
•
komunikat ICMP port unreachable oznacza, że dany port jest zamknięty, czyli nie
nasłuchuje na nim żadna usługa,
•
inne komunikaty ICMP typu unreachable oznaczają, że port jest filtrowany,
•
pakiet UDP oznacza, że dany port jest otwarty i nasłuchuje na nim usługa,
•
brak odpowiedzi oznacza, że dany port jest otwarty (nasłuchuje usługa, ale nie odesłała
odpowiedzi na pusty pakiet UDP) lub filtrowany (pakiet nie dotarł do celu, ponieważ
został odfiltrowany przez zaporę sieciową).
Prowadzący do skanowania poleca program nmap.
Techniki skanowania
11. Skanowanie SCTP (Stream Control Transmission Protocol)
Skanowanie tego typu jest niemal identyczne ze skanowaniem TCP SYN. Różnica polega na
typie wykorzystywanego protokołu. Podobnie jak w TCP SYN inicjator skanowania
przesyła pakiet INIT i podobnie jak tam jest to skanowanie półotwarte. W odpowiedzi
można otrzymać:
•
pakiet INIT-ACK oznacza, że port jest otwarty.
•
pakiet ABORT oznacza, że port jest zamknięty.
•
brak odpowiedzi lub komunikaty ICMP typu unreachable oznaczają, że port jest
filtrowany.
10
przepisał: Aleksander Śmierciak
Analiza wielkości okna i pola TTL
Zagłębiając się w szczegóły implementacyjne stosów TCP/IP poszczególnych systemów
operacyjnych, daje się zaobserwować pewne prawidłowości, które można wykorzystać do
sprawdzania aktywności portów. Polegają one na analizie wielkości okna TCP oraz pola TTL
otrzymanego pakietu RST. Odpowiedź RST można otrzymać np. wysyłając pakiet FIN na wybrany
port. Niektóre systemy operacyjne zwracają pakiet RST z ustawionym polem TTL o wartości
wyższej dla portów zamkniętych. Porty otwarte zwrócą pakiet RST z niższą wartością TTL.
Podobną techniką jest sprawdzanie wielkości okna – różna od zera oznacza otwarty port.
System skanowany może wygenerować pakiet RST w bardzo wielu przypadkach. Zadanie
skanującego ogranicza się do znalezienia takiego pakietu, które nie zostanie zapisany w logach
routera i zapory ogniowej, ale spowoduje zwrócenie pakietu RST. Metoda ta jest jednak zależna od
systemu operacyjnego atakowanego.
Ukrywanie tożsamości skanującego
1. IP ID idle scan
[…]
Ukrywanie tożsamości skanującego
2. FTP Bounce Scanning
Wykorzystanie techniki FTP Bounce Scanning, używającej serwera FTP jako punktu
pośredniczącego – proxy. Metoda ta posługuje się cechą protokołu FTP określaną mianem
FXP, a polegającą na tym, że serwer FTP może wysłać dane do innego hosta niż źródłowy.
Do skanowania wykorzystana zostaje komenda PORT, precyzująca port docelowy oraz
adres IP w trybie pasywnego połączenia. Od tego momentu wyniki wszystkich poleceń
wydanych serwerowi FTP przesyłane będą do skanowanego hosta. Jeśli określony port jest
otwarty, serwer FTP zwróci przeprowadzającemu skanowanie komunikat 150 i/lub 226. W
przeciwnym wypadku pojawi się komunikat 425: Can't build data connection.
Programy skanujące
•
Nessus (
Zaawansowany skaner bezpieczeństwa. Wykorzystuje system wtyczek, zawierających
reguły poszczególnych ataków.
•
Nmap (
Profesjonalny skaner sieciowy. Umożliwia przeprowadzenie wielu metod skanowania o
różnym poziomie skuteczności i wykrywalności.
•
Inne
Nessus jest od niedawna narzędziem płatnym, ale bardzo zaawansowanym i profesjonalnym.
11
przepisał: Aleksander Śmierciak
Wykrywanie podziału łącza
•
wartość TTL
•
TCP timestamp
•
tablica routingu i wysyłanie komunikatów ICMP
•
Passive OS fingerprinting
•
Passive web browser fingerprinting
•
inne
12