ataki_na_lan_przez_stp_vovcia.pdf

(107 KB) Pobierz
114559688 UNPDF
Vladimir “vovcia” Mitiouchev <vovcia@irc.pl>
Zaawansowany sniffing, ataki typu MitM i DoS
w sieciach LAN i VLAN używając dziur w protokole STP
Spis treści:
1. Wprowadzenie
2. Krótki opis protokołu STP (Spanning Tree Protocol)
3. STP a VLAN (Virtual Local Area Network)
4. Algorytmy działania STP
5. Możliwe ataki
6. Ocena zagrożenia
7. Wykrywanie i przeciwdziałanie
1. Wprowadzenie
Wraz z rozwojem sieci lokalnych istniejące rozwiązania przestawały zaspokajać
potrzeby administratorów i projektantów. O ile zaprojektowanie sieci bez pętli nie
stanowiło większych problemów, problem na jednym łączu powodował rozdzielenie
segmentów LANu. Kiedy zachodziła potrzeba redundancji połączenia pomiędzy
segmentami LANu, trzeba było po obu stronach linków stawiać routery obsługujące
lan-bridging (mostkowanie lanów) i konfigurować zapasowe łącza.
Na początku lat 90-tych XX-tego wieku powstał standard protokołu
umożliwiającego działanie sieci lokalnej przy obecności nadmiarowych łącz
(ANSI/IEEE 802.1D 1993 Edition). Był on dopracowywany w latach 1996 i 1998 i
opierał się na przedstawieniu połączeń pomiędzy urządzeniami jako grafu w
kształcie drzewa. Protokół ten nazywa się STP. W roku 2000 została stworzona nowa
wersja protokołu nazywająca się RSTP (IEEE 802.1w), wprowadza ona kilka ulepszeń
umożliwiających szybszą stabilizację sieci. Ulepszenia te opierają się głównie o
funkcje wprowadzone wcześniej przez Cisco, takie jak Uplink Fast, Backbone Fast i
Port Fast. Niestety nie poprawiają one bezpieczeństwa protokołu.
Po wprowadzeniu STP, wszystko stało się prostsze. Umożliwia on
automagiczną konfigurację urządzeń wspierających ten protokół w sposób
zapobiegający powstawaniu logicznych pętli. Kiedy STP wykryje nadmiarowe
połączenie, blokuje on port na urządzeniu tak by nie przekazywał on żadnych
danych Natomiast w momencie wykrycia przez STP problemu z łączem następuje
aktywacja zapasowego łącza (o ile oczywiście takowe istnieje).
Niestety, podczas projektowania STP (standard IEEE 802.1d) nacisk położono
na funkcjonalność, a nie na bezpieczeństwo. Mówiąc wprost – nie uwzględniono
żadnych mechanizmów zabezpieczających przed manipulowaniem STP.
W konsekwencji stwarza on wiele możliwości ataków, poczynając od ataku typu DoS
na segment sieci lub całą sieć, poprzez sniffowanie ruchu i ataki MitM (Man in the
Middle – człowiek pośrodku), do rozprzestrzeniania się tych ataków na sieci VLAN.
W drugiej części omówię pokrótce sposób działania STP. W trzeciej mowa
będzie o działaniu STP w środowisku VLANów. W czwartej opowiem o algorytmach
kierujących budowaniem drzewa STP i wykrywaniem problemów. W piątej
przedstawię znane sposoby ataków na STP. W następnej znajduje się ocena
zagrożenia tymi atakami w zależności od topologii i konfiguracji sieci, a w ostatniej –
siódmej – metody wykrywania i przeciwdziałania tym atakom.
2.Krótki opis protokołu STP (Spanning Tree Protocol)
Wyobraźmy sobie sieć LAN stworzoną z 4 switchy połączonych ze sobą w
następujący sposób:
W sieci bez obsługi STP jakakolwiek ramka wpuszczona w taką sieć zaczęłaby
krążyć pomiędzy switchami, doprowadzając do przeciążenia sieci i w konsekwencji
 
114559688.002.png
jej załamania. Natomiast gdyby sieć ta obsługiwała STP, protokół ten stworzyłby graf
bez pętli w kształcie drzewa i ustalił zapasowe łącze, blokując je w trakcie normalnej
pracy sieci. Graf ten mógłby wyglądać na przykład tak:
Linią punktowaną zaznaczono tu łącze skonfigurowane jako nadmiarowe,
nieużywane do przesyłu danych. Jak widać powstaje struktura bez pętli. Co dzieje się
gdy jedno z łącz zostanie przerwanych, można zobaczyć poniżej:
Jak widać z rysunku, w momencie gdy STP wykryje zerwany link, uaktywnia on
łącze zapasowe. Czas potrzebny na wykrycie problemu zależy od zegarów
ustawionych przez administratora i wynosi zwykle od kilkudziesięciu sekund do
minuty (protokół RSTP w takiej sytuacji ustala stabilną konfigurację w ciągu
milisekund).
114559688.003.png 114559688.004.png 114559688.001.png
3.STP a VLAN (Virtual Local Area Network)
Na początek trochę o VLANie:
VLAN czyli Virtual LAN został stworzony by udostępnić możliwość rozdzielania
LANu na grupy użytkowników znajdujących się w wirtualnie różnych sieciach i
ograniczyć ruch rozgłoszeniowy
Kolejnym zastosowaniem jest uproszczenie procedury przeprowadzki
użytkownika, przy zmianie miejsca w LANie wciąż znajduje się on w swoim
domowym VLANie.
znamy 3 rodzaje VLANów: MAC-based, port-based i tag-based
MAC-based grupuje komputery na podstawie adresów sprzętowych
port-based grupuje porty w obrębie jednego switcha
tag-based grupuje porty w obrębie switcha i przesyła je dalej znakując tzw.
tagami, które są czytane przez switche pośredniczące, switch końcowy przed
wysłaniem ramki do komputera usuwa tag.
Niestety, większość implementacji protokołu STP w VLANie nie zachowuje się
tak jakbyśmy tego od nich oczekiwali. Z reguły w obrębie całego LANu funkcjonuje
jeden STP, co rozszerza wszystkie ataki opisane w tym dokumencie o atakowanie
VLANów właśnie. Wszędzie tam gdzie nie jest wyraźnie zaznaczone inaczej ataki w
LAN dają się analogicznie przeprowadzać również w VLAN.
4.Algorytmy działania STP
Pierwszą fazą działania protokołu STP są wybory Designated Root Bridge. Jest
to urządzenie od którego zaczynamy rysowanie drzewa. Oprócz bycia logicznym
początkiem nie pełni ono żadnych dodatkowych funkcji. Wybory te odbywają się w
następujący sposób:
każde urządzenie generuje ramkę BPDU zawierający Bridge Identifier, który zwykle
obliczany jest na podstawie adresu MAC i ustalonego przez administratora (bądź
fabrycznie) priorytetu
po otrzymaniu zgłoszenia od kandydata (A) na Root Bridge urządzenie (B)
porównuje otrzymany Bridge Identifier (A) ze swoim (B) i jeżeli kandydat (A) ma
mniejsze ID to urządzenie (B) przestaje kandydować w wyborach i zaczyna
anonsować do swoich sąsiadów że A jest Designated Root Bridge.
Kolejną fazą jest budowa drzewa, zasada jest podobna jak w protokołach
routingu – każde urządzenie anonsuje na każdym z portów koszt połączenia do
Root Bridge składający się z kosztów otrzymanych od poprzedniego urządzenia i
kosztu portu z którego wysyłany jest BPDU. Należy zauważyć że BPDU nigdy nie są
retransmitowane przez urządzenia podtrzymujące STP, są one interpretowane i na
ich podstawie tworzone są własne BPDU.
Port który dostanie od sąsiada BPDU z najmniejszym kosztem dostępu do Root
Bridge staje się Designated Root Port, co oznacza że komunikacja z resztą sieci
przechodzi właśnie przez niego. Pozostałe porty z większymi kosztami dostępu są
przełączane w tryb Blocking (więcej o trybach dalej). Na podobnej zasadzie
wybierany jest Designated Bridge który staje się odpowiedzialny za obsługę danego
segmentu LAN.
Po wszystkich wyborach następuje faza stabilności która charakteryzuje się
następującymi właściwościami:
jest tylko jedno urządzenie w sieci które regularnie ogłasza się jak Designated
Root Bridge, a wszystkie pozostałe ogłaszają TO urządzenie. BPDU są wysyłane w
regularnych odstępach czasu wyznaczanych przez parametr Hello Time.
W każdym segmencie sieci jest tylko jeden Designated Root Port przez który
następuje wymiana ruchu z Desigated Root Bridge
Wymiana danych poza obrębem switcha przebiega tylko poprzez Designated Root
Port, wszystkie pozostałe porty są w stanie Blocking
Teraz krótki opis stanów w którym może znajdować się port:
blocking: port zablokowany, ramki BPDU są otrzymywane i wysyłane, ramki
użytkowe są ignorowane
listening: pierwszy etap przygotowania do stanu Forwarding, BPDU są wysyłane i
interpretowane, cała reszta – ignorancja
learning: drugi etap: BPDU przetwarzane i wysyłane, uczenie się MACów, nie są
Zgłoś jeśli naruszono regulamin