14 października 2010

Zagrożenia warstwy łącza danych i sieci w infrastrukturze sieciowej

Zapraszam do zapoznania się z kolejnym opracowaniem biorącym udział w Urodzinowym Konkursie HCSL, zorganizowanym przez serwis HARD CORE SECURITY LAB oraz firmę Securitum. Autorem poniższego artykułu, w którym obszernie omówione zostały podstawowe ataki oraz sposoby na skuteczne zabezpieczenie drugiej i trzeciej warstwy sieciowej wg modelu OSI, jest Sławomir Rozbicki (e-mail: slawek w domenie rozbicki.eu). Zapraszam do lektury oraz zachęcam do dzielenia się waszymi doświadczenia z pola walki o bezpieczeństwo zarządzanych przez was przełączników sieciowych i routerów.

Poziom tego artykułu został dobrany celowo w taki sposób, aby z jednej strony nie uczył krok po kroku jak przeprowadzić udany atak, z drugiej zaś żeby zmusił do szukania dodatkowych informacji o tym jak dokładnie zabezpieczyć się przed daną podatnością. Nie należy mylić go z poradnikiem. Ponadto dołożyłem starań by opisać mechanizmy ataku w sposób niezależny od platformy, wyjątkiem są pewne protokoły własnościowe takie jak EIGRP czy DTP, które występują tylko i wyłącznie na sprzęcie jednego producenta.

Wstęp

Niniejszy artykuł zawiera opracowanie najpopularniejszych ataków na infrastrukturę sieciową, oraz metod ich detekcji i zapobiegania. Moim celem jest zwrócenie uwagi na II i III warstwę modelu ISO OSI, które determinują wybór ścieżek komunikacji ramek i pakietów.

Często w firmach i instytucjach włącza się do sieci urządzenia bez optymalizacji i hardeningu ich konfiguracji. Uruchomienie nieskonfigurowanego zarządzalnego switcha w środowisku produkcyjnym od razu otwiera wiele dróg do zakłócenia pracy firmy jak i do wykradania poufnych informacji. Przypadki takie są niestety wyjątkowo często praktykowane ponieważ na pierwszy rzut oka, urządzenie takie będzie spełniało swoje funkcje. 

Zasadniczo możemy wyróżnić 2 typy ataków. Pierwszy z nich polega na sparaliżowaniu fragmentu lub całości systemu informatycznego a drugi na przemyślanej ingerencji w decyzje o trasowaniu i przełączaniu urządzeń sieciowych. O ile paraliż spowoduje z pewnością duże straty ponieważ pracownicy bez dostępu do zasobów Internetu i sieci lokalnej nie będą mogli wykonywać swoich obowiązków, o tyle 2 drugi rodzaj umożliwia zapoznanie się osobie nieuprawnionej z informacjami poufnymi, a w dalszej perspektywie wyciek i handel tymi danymi. Wyzwaniem jest detekcja tego typu ataków ponieważ nie powodują one widocznych na pierwszy rzut oka komplikacji w działaniu infrastruktury, mogą więc pozostać niewykryte przez długi czas a być może nigdy.

Zagrożenia zakłócające działanie infrastruktury

Przepełnienie tablicy MAC przełączników sieciowych
Klasyczny przełącznik sieciowy jest urządzeniem, które przełącza ramki na poszczególne porty na podstawie posiadanej tablicy CAM. Jest ona strukturą zawierającą mapowania adresów MAC na poszczególne interfejsy sieciowe. Zaraz po włączeniu urządzenia, tablica CAM jest pusta i wysyła ramki na wszystkie aktywne porty dopóki nie nauczy się topologii sieci. Dzieje się tak za każdym razem, kiedy do przełącznika przychodzi ramka o nieznanym dla niego adresie docelowym MAC. Z czasem ulega ona wypełnieniu i przełączenie odbywa się tylko i wyłącznie na port do którego przyłączone jest urządzenie o odpowiadającym adresie MAC. Oczywiście może dojść do sytuacji kiedy więcej niż jeden adres MAC będzie odpowiadał temu samemu portowi przełącznika, dzieje się tak ponieważ dozwolone jest łączenie przełączników ze sobą w celu tworzenia topologii wielu gwiazd. W tym celu producenci sprzętu sieciowego wyposażają swoje switche w pojemne tablice CAM, które mogą pomieścić na przykład 8000 rekordów, ale nawet ta ilość może zostać przekroczona przy użyciu prostego skryptu generującego ramki o losowych adresach MAC. Wysycenie tablicy CAM powoduje to że przełącznik zaczyna zachowywać się jak hub sieciowy. Przestaje adresować ramki na odpowiednie porty, zamiast tego powiela je i wysyła wszystkimi interfejsami. Powoduje to poszerzenie domeny kolizyjnej, spadek wydajności, a co gorsza umożliwia przechwytywanie ruchu sieciowego urządzeń, które powinny byc odseparowane.

Aby zapobiec takiemu atakowi należy skonfigurować mechanizmy zabezpieczające na portach switcha. Jeśli problem dotyczy większego systemu informatycznego, w którym występuje wiele stacji roboczych i sytuacja wymaga zastosowania kilku switchy to powinniśmy się trzymać modelu hierarchicznego, który nakazuje nam podział topologii na strefę dostępową, dystrybucyjną i korową. Następnie należy wydzielić porty switcha, które będą służyły tylko i wyłącznie do podłączenia urządzeń końcowych (stacji roboczych) i ustawić maksymalną ilość obsługiwanych adresów MAC na każdym z portów. Tak skonfigurowany switch nie pozwoli na przepełnienie tablicy. Po przekroczeniu liczby dozwolonych adresów MAC przełącznik może zamknąć port lub po prostu odrzucać ruch zawierający nieprawidłowe ramki. Dokładna konfiguracja bezpieczeństwa portów powinna być dostępna w podręczniku switcha.

Nadużycia Spanning Tree Protocol
Protokół drzewa rozpinającego jest mechanizmem zapobiegania pętlom 2 warstwy. Jego działanie opiera się o ramki BPDU, które pozwalają na komunikacje switchy i ewentualne wyłączanie linków w przypadku wykrycia pętli. Implementacji STP jest kilka, ale domyślnie uruchomiona jest najstarsza i najmniej wydajna. Oznacza to że po podłączeniu dowolnego urządzenia do portu, nawet jeśli nie jest to przełącznik, port będzie musiał przejść przez wszystkie fazy STP zanim pozwoli na typową komunikację.

Istnieją nowsze odmiany STP, które znacząco przyśpieszają proces tworzenia drzewa i ewentualną renegocjacje w przypadku awarii łącza, żadna jednak nie jest wyposażona w mechanizm uwierzytelniania ramek BPDU. Otwiera to drogę do zaburzenia prawidłowej struktury drzewa poprzez wysyłanie odpowiednio zmodyfikowanych ramek. Atakujący jest w stanie nie tylko stworzyć nieoptymalne ścieżki komunikacji, może on również spowodować odcięcie linków które nie powodują pętli. Należy też pamiętać że proces tworzenia topologii drzewa przez urządzenie wymaga pewnej mocy obliczeniowej (podobnie do algorytmu Dijkstry w routingu OSPF). Istnieje więc realne zagrożenie ataku denial of service opartego na wymuszeniu wielu rekalkulacji poprzez wysyłanie dużej ilości ramek o sprzecznych informacjach.

W celu zabezpieczenia się przed tego typu atakami producenci sprzętu wymyślili własne mechanizmy polegające na przykład na filtracji ramek BPDU na wybranych portach switcha lub wymuszaniu pozycji root bridge’a w topologii sieci. Odpowiednia konfiguracja tych zabezpieczeń urchoni nas od wyżej opisanych ataków ale polega to w pewnym sensie na wyłączeniu protokołu na wybranych portach. Oznacza to, że jeśli kiedyś nastąpi zmiana topologii sieciowej i utworzy się pętla to STP nie rozepnie jej, a więc nie spełni swej podstawowej roli. Dodatkowo musimy być świadomi że filtrowanie ramek na portach, które prowadzą do gniazdek dostępnych dla użytkowników umożliwia im stworzenie pętli poprzez połączenie patchcordem 2 portów.

Znacznie lepszym rozwiązaniem jest ograniczanie 2 warstwy do minimum. Droższe przełaczniki są w stanie przełączać w 3 warstwie wykorzystując wszystkie jej dobrodziejstwa włącznie z protokołami routingu dynamicznego. Jeśli stać nas na zapewnienie 3 warstwy na styku ze stacjami roboczymi to protokół STP może zostać całkowicie wyłączony a rolę zapobiegania pętlom pełnić będą sprytniejsze mechanizmy wyższych warstw.

Nie ufaj IP - fałszowanie nagłówków 3 warstwy
Stos TCP/IP urządzenia sieciowego enkapsuluje protokoły wyższych warstw w pakiet IP, który jak wiadomo zawiera m. im. pole źródłowego i docelowego adresu IP, oraz wartość czasu życia pakietu TTL. Należy zdawać sobie sprawę z tego, że może dojść do sfałszowania któregoś z tych pól. Wyjątkiem jest natowanie, które nadpisuje źródłowy adres pakietu w celu przeprowadzenia translacji. Szereg ataków może wykorzystać tę cechę w celu zatarcia swojego pochodzenia. Identyfikację źródła pakietu umozliwia też adres fizyczny ramki (MAC), który również może zostać zmodyfikowany. 

Dobrym pomysłem okazuje się filtrowanie pakietów przechodzących przez router do innej podsieci, jeśli wartość adresu źródłowego nie będzie mieściła się w zakresie adresacji podsieci źródłowej. Taki zabieg nie uchroni nas jednak przed atakami w ramach jednego segmentu sieci. Drobnym pocieszeniem jest właściwość protokołów połączeniowych wyższych warstw, takich jak TCP, które wymagają nawiązania sesji. Nie jest to możliwe w przypadku modyfikacji pola adresu źródłowego, ponieważ odpowieź z atakowanego hosta zostanie wysłana na adres sfałszowany. 

Istnieją jednak pewne ataki, które prowadzą do nasycenia pasma i nie wymagają nawiązywania połączenia. Przykładem może być atak typu smurf, który wysyła serie żądań ICMP echo na adres rozgłoszeniowy podsieci z adresem źródłowym atakowanego hosta. Rezultatem jest odpowiedź wszystkich aktywnych hostów na adres ofiary.

Opisane powyżej zagrożenie znane jest od lat i nie stanowi już poważnego problemu, jednak wiele robaków używa bardziej wyrafinowanych metod, które prowadzą do DDoS. Ich cechą charakterystyczną są tzw. kanały kontrolne, które umożliwiają im synchronizację ataków i komunikację. Urządzenia typu IDS potrafią wykrywać te kanały i blokować ruch z zainfekowanych hostów. W przypadku ataków DDoS pochodzących z internetu w gestii operatora leży umiejętne zbudowanie routingu i list dostępu ACL, które ochronią nasze łącze przed wysyceniem. 

Kolejną wykorzystywaną przez atakujących cechą protokołu IP jest fragmentacja i czas życia TTL. Duże pakiety, które przekraczają wartości MTU, dzielone są na części podczas enkapsulacji w ramki 2 warstwy. Następnie po przesłaniu do celu części pakietu składane są w odpowiedniej kolejności przez stos TCP/IP docelowego systemu. Pośredniczące w komunikacji systemy IDS są jednak w stanie przeprowadzić inspekcje pofragmentowanych pakietów i wykryć próby ataku. Umiejętnie manipulując polem TTL atakujący jest w stanie wysłać pakiet w kilku częściach, które zostaną złożone przez IDS i sprawdzone pod kątem zawierania podejrzanego kodu. Urządzenie przepuści ruch dalej, ponieważ jedna z części będzie zawierała niewinnie wyglądające dane warstw wyższych, ale w drodze dalszej komunikacji zostanie ona odrzucona przez stos, ponieważ jej TTL osiągnie wartość 0. Następnie atakujący może dosłać brakującą część komunikacji, która również nie wzbudzi podejrzeń systemu IDS ponieważ nie będzie ona rozpatrywana w kontekście poprzednich (wysłanych już dalej) fragmentów. Stos hosta docelowego poczeka na brakujący kawałek pakietu, złoży go w całość i wyśle do wyższych warstw, gdzie nastąpi próba ataku. 

Kontrola dostępu do sieci przy pomocy protokołu 802.1x, oraz systemów NAC, jak również stosowanie systemów monitorujących ruch sieciowy zapewnia ochronę przed tego typu nieprawidłościami.

Wykradanie informacji i eskalacja uprawnień

Wykorzystanie Cisco Discovery Protocol
Protokół CDP został stworzony w celu ułatwienia konfiguracji urządzeń sieciowych Cisco. Bazuje on na 2 warstwie modelu OSI, dlatego interesujące dane są enkapsulowane bezpośrednio w ramki a następnie wysyłane w eter.

CDP stanowi oczywiste zagrożenie z kilku powodów. Przede wszystkim nasłuchując komunikacji urządzeń można poznać informacje takie jak dokładny model, czy też wersja systemu operacyjnego. Po uzyskaniu takich informacji dużo łatwiej wyszukać podatność urządzenia i przeprowadzić udany atak. Dodatkowo czasami w badziej rozległych sieciach wykorzystuje się oprogramowanie monitorujące, które do detekcji urządzeń wykorzystuje CDP. Przykładem jest CiscoWorks oraz IBM Tivoli. Cechą tych programów jest to, że po wykryciu nowego urządzeniaa sieciowego następuje próba komunikacji z nim protokołem SNMP. Jej przechwycenie może prowadzić do zapoznania się z wartością community, która często bywa taka sama dla każdego zarządzalnego urządzenia w sieci i pełni role klucza uwierzytelniającego. 

CDP jest wykorzystywany również w implementacji telefonii voip. Ideą Cisco jest takie podłączenie linków telefonu, żeby pośredniczył on pomiędzy stacją roboczą a switchem, dodatkowo separując ruch obu urządzeń do osobnych VLANów. Wykorzystuje on więc CDP do pobrania informacji o przypisaniach VLAN, a następnie tagując odpowiednio własne ramki odpytuje serwer DHCP o adresację oraz adres TFTP firmware’u do pobrania i uruchomienia. Ingerencja w komunikację pomiędzy switchem a telefonem otwiera bardzo wiele dróg do wykonywania przemyślanych ataków włącznie z atakami DoS. 

Przykłady te pokazują jak groźnym może być protokół CDP z powodu całkowitego braku mechanizmu uwierzytelniania i szyfrowania. W dalszej części artykułu zostaną opisane rodzaje ataków, które można zastosować w celu wykorzystania słabości CDP. 

Sniffing w sieciach przełączanych: ARP Cache Poison
Upowszechnienie się przełączników sieciowych, jako urządzeń pośredniczących w komunikacji spowodowało wzrost wydajności i bezpieczeństwa. Razem z hubami sieciowymi, problemy kolizji znikły, ponieważ uniknięto bezmyślnego powielania informacji i wysyłania jej do wszystkich hostów domeny rozgłoszeniowej. Spowodowało to precyzyjne kierowanie wiadomości do prawidłowego odbiorcy, uniemożliwiając tym samym łatwe jej podsłuchanie poprzez samo przełączenie interfejsu sieciowego w tryb mieszany. 

Jedną z bardziej wyrafinowanych metod węszenia w sieci jest zatruwanie pamięci podręcznej tablicy ARP. Podczas enkapsulacji pakietu w ramkę nadawca musi wypełnić pola nagłówków m. in. docelowy adres fizyczny MAC (zostało to opisane dokładniej w punkcie 2.1). Decyzja o tym, jaki adres fizyczny zostanie wpisany, zależy od wpisów znajdujących się w tablicy ARP urządzenia nadającego. Jeśli stacja robocza, która chce się skomunikować z routerem bedącym jej bramą domyślną, nie zna jeszcze adresu MAC tego routera, następuje odpytanie poprzez protokół ARP wszystkich urządzeń w segmencie sieci LAN. Urządzenie, które przyzna się do posiadania pożądanego adresu IP, odpowie na zapytanie pakietem ARP reply. Po odebraniu odpowiedzi, pamięć podręczna nadawcy zostanie wypełniona odpowiednim wpisem w celu uniknięcia ponownego odpytywania w przyszłości. 

Mechanizm ten, choć sprawdza się, niesie za sobą poważne niebezpieczeństwo. Nawet jeśli w stacji roboczej lub routerze występuje już prawidłowy wpis w tablicy ARP, ulegnie on korekcji w przypadku kiedy urządzenie dostanie ponownie pakiet ARP reply odpowiadający występującemu już w tabeli adresowi IP z innym adresem fizycznym. Pozwala to na ataki typu Man In The Middle, ponieważ atakujący jest w stanie przekonać dwa komunikujące się urządzenia, aby opatrywały swoje ramki jego adresem fizycznym. Oznacza to, że stacja robocza która chce wysłać pakiet do routera pełniącego rolę jego bramy domyślnej, zaadresuje pakiet prawidłowym adresem IP, lecz w nagłówku 2 warstwy poda docelowy adres fizyczny interfejsu urządzenia które dopuściło się zatrucia jego tablicy ARP. Przełącznik sieciowy nie będzie wnikał w treść warstw wyższych niż łącza danych i prześle ramkę na interfejs, do którego podłączony jest komputer napastnika. Jeśli atakujący uruchomił forwardowanie pakietów IP na swojej maszynie, to przechwyci on pakiet, a następnie przepakuję go w ramkę która zostanie zaadresowana prawidłowym już adresem fizycznym routera i wyśle z powrotem do przełącznika. W dalszej perspektywnie ramka dotrze do routera, który prześle pakiet dalej zgodnie z intencją pierwotnego nadawcy. Jeśli atakujący pokusi się również o zatrucie pamięci podręcznej routera, to komunikacja zwrotna do nadawcy będzie również przechwytywana. 

Ta metoda ataku jest śmiertelnie skuteczna i stosunkowo łatwa do przeprowadzenia nawet przez osoby o przeciętnej znajomości działania sieci, z powodu dostępności programów automatyzujących cały proces. Niezabezpieczenie się przed nią jest poważnym i niestety powszechnym naruszeniem dobrych praktyk administracyjnych.

Zatruwanie tablicy ARP wiąże się zazwyczaj z wysyłaniem pakietów ARP reply w krótkich interwałach czasowych. Stanowi to łatwą do wykrycia anomalię, o ile administrator zada sobie trud uaktywnienia dowolnego mechanizmu broniącego przed tego typu nieprawidłowościami. Zarządzalne przełączniki posiadają często zabezpieczenia przez atakami typu ARP cache poison takie jak Dynamic ARP Inspection, które odrzucają niepożądane pakiety ARP. Dodatkowo istnieje możliwość zdefiniowania statycznych wpisów w tablicy ARP, które nie będą nadpisywane przez odpowiedzi ARP. Dobre przełączniki oferują również funkcję prywatnych VLANów. Polega ona na izolacji wybranych portów switcha tak, aby nie były w stanie nawiązywać ze sobą bezpośredniej komunikacji. Pozwala to zdefiniować listy kontroli dostępu na routerach, które będą umożliwiały ewentualną komunikację, ale tylko za pośrednictwem routera. Rozwiązuje to przy okazji problem przenikania infekcji na stacjach roboczych, na przykład za pośrednictwem protokołu NetBIOS, oferując wysoki poziom bezpieczeństwa w dużych sieciach. Niestety zarówno izolacja metodą prywatnych VLANów, jak i definiowanie statycznych wpisów tablicy ARP zwiększają poziom komplikacji infrastruktury przez co są rzadko stosowane. 

Sniffing w sieciach przełączanych: DHCP Spoofing
Protokół DHCP, którego zadaniem jest konfiguracja adresacji IP urządzeń w sposób dynamiczny, może również zostać wykorzystany do przeprowadzenia ataku typu MITM. Nieuprawniony serwer DHCP, włączony w korporacyjnej sieci LAN, może wysłać ofertę dzierżawy klientowi, który poprosił o przyznanie adresu. Sztuczka polega na podaniu adresu bramy domyślnej odpowiadającemu adresowi hosta który będzie przechwytywał pakiety i wysyłał je dalej do prawidłowej bramy. 

Switche sieciowe oferują zabezpieczenia typu DHCP Snooping, pozwalające zdefiniować porty, z których oferty dzierżaw są nieuprawione. Opcja ta spowoduje filtrację podejrzanych komunikatów protokołu DHCP, jednocześnie umożliwiając wysyłąnie żądań DHCP i dostawanie ofert z portów uprzywilejowanych.

Atak na protokoly routingu dynamicznego 
Złożone oraz rozproszone infrastruktury wymagają segmentacji przestrzeni adresowej sieci. W tym celu, wprowadza się osobne podsieci adresujące poszczególne struktury instytucji. Przykładem jest nadanie adresacji 10.1.1.0/24 dla pionu handlowego, oraz 10.1.2.0/24 dla pionu wykonawczego danej korporacji. Dodatkowo można dołączyć do sieci placówki zdalne Kraków 10.2.1.0/24 i Łódź 10.2.2.0/24. W ten sposób istnieje możliwość zachowania przejrzystego podziału wielkiej struktury, na mniejsze, łatwiej zarządzane podstruktury, wprowadzając do użytku wiele prefiksów sieciowych czyli adresacji podsieci. Jedynym sposobem na zachowanie spójności tak złożonej konfiguracji na routerach, oraz obsługę ewentualnych zmian topologii, jest uruchomienie protokołu routingu dynamicznego. Jego działanie polega na wymianie informacji o prefiksach dostępnych u poszczególnych routerów pomiędzy nimi. Następnie w zależności od rodzaju protokołu, tworzona jest topologia sieci (OSPF) lub router dokonuje oceny odległości/kosztu dotarcia do danej podsieci poszczególnymi portami (RIP, EIGRP). Te metody różnią się od siebie znacząco i posiadają charakterystyczne dla modelu swojej pracy wady i zalety.OSPF konsumuje dużo zasobów podczas rekalkulacji związanej ze zmianą struktury sieci, posiadając jednak unikalną wiedzę o wszystkich routerach i linkach pomiędzy nimi. RIP i EIGRP jest zainteresowany tylko własnym sąsiedztwem, ograniczając nakłady pracy podczas aktualizacji stanu sieci. Niezależnie od tego, podstawą pracy wszystkich protokołów jest wzajemne informowanie się routerów o obsługiwanych adresacjach na poszczególnych portach.

Protokoły routingu dynamicznego obsługują uwierzytelnianie przy użyciu funkcji skrótu MD5. Hash liczony jest na podstawie treści wiadomości oraz współdzielonego hasła. Należy jednak pamiętać, że algorytm MD5 uznawany jest już od dawna za przestarzały i niezalecany. Jest on obarczony plagą kolizji, a generowanie skrótu przy użyciu współczesnych kart graficznych pozwala na skuteczne ataki typu brute-force. Sytuacje ratuje funkcja pasywnych interfejsów. Polega ona na tym, że powiadomienia nie są wysyłane ani interpretowane przez określone z góry interfejsy. Pozwala to na filtrowanie wszystkich pakietów związanych z protokołami routingu dynamicznego, które pochodzą na przykład ze strefy dostępowej stacji roboczych. Dobre praktyki nakazują umiejętne konfigurowanie interfejsów pasywnych, co wydaje się zabezpieczeniem skuteczniejszym niż mechanizm uwierzytelniania.

Separacja ruchu przy użyciu VLAN
VLANy są podstawą w każdej rozległej sieci korporacyjnej. Pozwalają bardzo skutecznie separować ruch na poziomie 2 warstwy, ponieważ nie dystrybuują one ramek poza wybraną przez administratora grupę portów switcha. Rezultatem takiej konfiguracji jest wydzielenie zbiorów portów, które nie będą w stanie komunikować się z pozostałymi portami, chyba że zostanie to umożliwione routingiem. Jako praktycznie wykorzystanie tej funkcji zawsze przychodzi mi do głowy separacja stacji roboczych studentów od portów wykładowców uczelnianego kampusu. W korporacjach dokonuje się izolowania poszczególnych działów firmy, umożliwiając jednak dostęp do wszystkich zasobów stacjom roboczym administratorów. 

Kontrole dostępu zapewnia konfiguracja routerów lub interfejsów routujących switchy przełączających w trzeciej warstwie. Do oznaczania ramek przynależnych do konkretnych VLANów, wykorzystuje się tagi dodawane do nagłówków warstwy drugiej. W celu stworzenia jednolitego VLANu na więcej niż jednym przełączniku, należy skonfigurować trunking na linkach łączących te przełączniki. Porty w stanie trunk, nie dodają tagów do ramek przez nie odbieranych, tylko ufają tagom, które są już nadane (w domyśle przez przełącznik do którego podłączony jest nadawca). Gdyby do portu trunk podłączony został bezpośrednio komputer, mógłby on sam tagować własne ramki i mieć dostęp do każdego VLANa skonfigurowanego w infrastrukturze. Oczywistym więc wydaje się, że porty trunk nie powinny być fizycznie dostępne dla każdego.

Ataki na protokoly Cisco
W celu zautomatyzowania konfiguracji portów trunk, Cisco opracowało własnościowy protokół DTP. Jest on domyślnie uruchomiony i skonfigurowany w taki sposób, że wszystkie porty urządzenia pracują w trybie auto. Tryb ten charakteryzuje się tym, że podłączone do portu urządzenie może wynegocjować trunking. Oznacza to, że pomimo konfiguracji VLANów, atakujący może nakłonić przełącznik, aby ten traktował go w sposób uprzywilejowany wysyłając ruch wszystkich VLANów również na ten port, oraz nie ingerując w tagowanie pakietów wysyłanych przez podłączone urządzenie.

Aby uławić życie administratorów jeszcze bardziej, Cisco opracowało VTP. Jest to kolejny protokół własnościowy. Jego działanie polega w skrócie na tym, że w przypadku zmiany konfiguracji VLANów na dowolnym przełączniku sieciowym, korygowana jest cała konfiguracja na pozostałych urządzeniach które komunikują się poprzez VTP. W celu zabezpieczenia, wbudowano w protokół opcjonalne uwierzytelnienie oparte o algorytm MD5, jednak często nie wykorzystuje się go w praktyce. 

Świadomość działania tych protokołów i ich domyślnej konfiguracji jest bardzo ważna. Jeżeli poziom komplikacji VLANów nie jest wysoki, to zdecydowanie lepiej z nich poprostu nie korzystać.

Podwójne tagowanie ramek
Do grona niebezpieczeństw należy zaliczyć również pewne anomalie, występujące podczas niekonsystentnej konfiguracji VLAN na urządzeniach sieciowych. Istnieją ataki oparte na podwójnym tagowaniu ramek w celu “przemycenia” ich do innego VLANu. Są one szczególnie niebezpieczne w przypadku niespójności w konfiguracji wartości VLANu natywnego na przełącznikach. Taki atak może się powieść w przypadku uchybień konfiguracyjnych, ale nie pozwala on na utworzenie kanału komunikacji dwukierunkowej. 

Tunelowanie przy użyciu DNS
Bardzo często zwiększa się poziom bezpieczeństwa sieci odcinając dostęp do zasobów internetu nieuwierzytelnionym stacjom roboczym. Może to się odbywać poprzez wymuszenie korzystania z serwera proxy z uwierzytelnianiem, dynamiczne reguły NAT czy też przenoszenie maszyny do gościnnego VLANu na czas uwierzytelniania. Niezależnie od tego, często pozostawia się dostęp do wewnętrznego serwera DNS, na przykład po to aby umożliwić komunikacje stacji roboczej z domeną Microsoft Windows. Jeśli nie masz dostępu do internetu, a jednak jesteś w stanie rozwiązywać nazwy domen na adresy IP (na przykład przy pomocy polecenia nslookup), to prawdopodobnie znalazłeś się w opisywanej sytuacji. 

Serwery DNS działają w sposób hierarchiczny. Oznacza to, że jeśli zostaną poproszone o rozwiązanie nazwy której nie posiadają w plikach stref bądz pamięci podręcznej, odpytają inny serwer DNS i zwrócą wynik do hosta. Warto nadmienić że poza dobrze znanymi rodzajami rekordów DNS takimi jak A, NS, CNAME i MX, istnieje również rekord TXT, który może przechowywać dowolny ciąg znaków. Właściwości rekordu TXT sprawiają, że spełnia on dobrze rolę kontenera do przemycania danych. Wszystko co potrzebne do stworzenia tunelu przy użyciu DNS to zdalna maszyna, która będzie nasłuchiwała zapytań, przetwarzała je i zwracała dane serwerowi który zapytał o określony rekord, te będą wędrowały do stacji roboczej rzekomo odciętej od internetu. Opisany mechanizm może zostać dodatkowo wzbogacony o szyfrowanie.

Nie spotkałem się jeszcze z sytuacją, w której administrator świadomie zapobiegłby możliwości stworzenia tunelu DNS, nie mam jednak pewności czy firewalle aplikacyjne (przetwarzające protokoły 7 warstwy), nie filtrują tego typu aktywności. Mimo wszystko popularność tej luki jest szokująco wysoka. Dotyczy to również tzw. portalów uwierzytalniających (Captivate Portal), na lotniskach i w rejonie innych hotspotów. 

Kontrola dostępu 802.1x
Na koniec chciałem zachęcić do wprowadzania mechanizmów uwierzytelniania opartych o protokół Radius. Obsługę Radiusa posiadają przełączniki i punkty dostępowe i w oparciu o niego mogą kontrolować dostęp do sieci. Sprowadza to się do tego, że stacja robocza próbująca dostać się do sieci, wyposażona jest w suplikant, który potwierdza swoją tożsamość na przykład w oparciu o certyfikat, token USB czy też kartę smartcard. Przełącznik sprawdza czy w bazie danych figuruje klient i opcjonalnie może sprawdzić przypisanie VLANu. Taka konfiguracja wymaga uruchomienia w sieci serwera Radius i nawiązania połączenia pomiędzy nim a switchami. W przypadku nieudanej próby uwierzytelniania może nastąpić całkowite wyłączenie danego portu, co skutecznie wyeliminuje możliwość podłączenia do portu wrogiego urządzenia. Poprawna konfiguracja 802.1x znacząco zwiększa poziom bezpieczeństwa infrastruktury, szczególnie w połączeniu z mechanizmem prywatnych VLANów oraz przełączania w warstwie trzeciej. Sugeruję również by pamiętać o stosowaniu silnych, unikalnych haseł, chroniących dostęp do konfiguracji urządzeń sieciowych.

Posłowie

Jest to pierwsza wersja dokumentu i pewnym jest, że może zawierać pewne błędy i niedociągnięcia. W związku z tym bardzo proszę o komentarze, opinie, oraz ewentualne pytania. Przy okazji bardzo dziękuję wszystkim osobom, które przyczyniły się do jego powstania.

Prawa autorskie
Powyższe opracowanie zostało opublikowane na licencji Creative Commons Uznanie autorstwa-Użycie niekomercyjne 2.5 Polska. Możesz je więc wykorzystać w dowolnym serwisie (wyłącznie niekomercyjnym), jednak wymagamy, aby na początku bądź na końcu publikacji znalazł się następujący zapis:

"Źródło: Tytuł materiału linkujący do oryginalnego wpisu w HCSL (HARD CORE SECURITY LAB) Artykuł powstał w związku z konkursem zorganizowanym przez serwis HARD CORE SECURITY LAB oraz firmę Securitum."