Ataki powodujące blokowanie usług DoS (denial of service)

Oceń tę pracę

Ataki typu DoS  stanowią znacznie większe zagrożenie – zwłaszcza dla provider’ów i administratorów sieci, ponieważ mogą tymczasowo unieruchomić całą sieć (a przynajmniej te serwery, których działanie opiera się na protokole TCP/IP).

Cel blokady usług jest jeden – pozbawienie prawowitych użytkowników możliwości korzystania z usług sieciowych, od prostego zajęcia całego pasma, po drastyczne wymuszenie załamania serwera. Każde takie działanie jest nielegalne [1]. Administrator zaatakowanej sieci powinien powiadomić władze – nie są to bowiem działania ciekawskich hakerów, lecz czyny przestępcze, dokonywane we wrogich zamiarach.

Atak polegający na blokowaniu usług wykorzystuje immanentne właściwości protokołu IP, tak więc może być wyprowadzony przeciw serwerowi na dowolnej platformie systemowej. Co gorsza – z racji faktu, że implementacje tego protokołu nie różnią się zbytnio pomiędzy platformami – pojedynczy atak  DoS może unieszkodliwiać kilka docelowych systemów operacyjnych. Niesławnym dowodem na potwierdzenie tej tezy jest atak przy pomocy programu destrukcyjnego LAND, który potrafi zablokować ponad 20 różnych systemów operacyjnych, w tym Windows NT i kilka odmian UNIX-a. Co więcej, analiza kodu źródłowego programów do przeprowadzania ataków DoS wykazuje, że raz wymyślony algorytm – nawet jeśli początkowo działa przeciw jednemu systemowi – szybko zyskuje na swej „funkcjonalności”. Nowe odmiany programów atakujących typu DoS pojawiają się mniej więcej co dwa tygodnie.

Programy te są zazwyczaj przeznaczone do uruchamiania na jednej platformie (na przykład Linux-ie), a ich celem również jest jedna platforma systemowa (powiedzmy Windows 95). Gdy taki kod zostanie udostępniony, wpada w ręce hakerów i krakerów, czego efektem jest powstanie w przeciągu dni zmodyfikowanych wersji programu (mutacji), które mogą unieruchomić większą ilość systemów operacyjnych.

[1] Prawo amerykańskie

Ściany Ogniowe w systemie Linux

Oceń tę pracę

Ściany ogniowe (firewalle) w systemie Linux to narzędzia służące do zarządzania ruchem sieciowym, które kontrolują, które połączenia są dozwolone, a które blokowane w oparciu o określone zasady bezpieczeństwa. W systemie Linux firewalle są kluczowym elementem w zapewnianiu bezpieczeństwa sieciowego, umożliwiając administratorom ochronę przed nieautoryzowanym dostępem oraz innymi zagrożeniami związanymi z siecią.

1. iptables:
Najbardziej popularnym narzędziem do zarządzania zaporami sieciowymi w systemie Linux jest iptables. Jest to narzędzie wbudowane w jądro systemu Linux, które pozwala na tworzenie i zarządzanie regułami filtracji pakietów. Iptables umożliwia definiowanie zasad dotyczących przychodzącego i wychodzącego ruchu sieciowego, na przykład poprzez określenie, które porty są otwarte, jakie protokoły mogą być używane, a także które adresy IP mogą mieć dostęp do zasobów systemu. Reguły w iptables są zazwyczaj zapisane w tabelach, które są podzielone na różne łańcuchy odpowiadające różnym etapom przetwarzania pakietów.

2. nftables:
nftables to nowsza i bardziej zaawansowana wersja narzędzia iptables, które zostało wprowadzone w jądrze Linux 3.13. Jest to system zarządzania zaporami, który zastępuje iptables, ip6tables, arptables oraz ebtables, umożliwiając jednolite zarządzanie różnymi typami ruchu w jednym narzędziu. Nftables oferuje bardziej zwięzłą składnię, lepszą wydajność oraz elastyczność w definiowaniu reguł, co czyni go preferowanym rozwiązaniem w nowszych dystrybucjach Linuksa. Nftables umożliwia łatwiejsze zarządzanie i bardziej złożoną konfigurację reguł, dzięki czemu jest bardziej skalowalny.

3. Firewalld:
Firewalld to narzędzie zapory sieciowej, które bazuje na iptables, ale oferuje bardziej przyjazny interfejs do zarządzania regułami zapory. Jest dostępne głównie w dystrybucjach takich jak CentOS, Fedora oraz RHEL. Firewalld działa na zasadzie stref, które definiują poziom zaufania dla różnych połączeń sieciowych. Każda strefa ma przypisane reguły dotyczące ruchu, co pozwala na łatwiejsze zarządzanie zaporą w porównaniu do iptables. Firewalld pozwala na dynamiczne dodawanie, usuwanie i modyfikowanie reguł bez konieczności restartowania zapory, co czyni go wygodnym narzędziem w środowiskach produkcyjnych.

4. UFW (Uncomplicated Firewall):
UFW to narzędzie zapory, które jest szczególnie popularne w dystrybucjach opartych na Debianie, takich jak Ubuntu. Jego celem jest zapewnienie prostoty konfiguracji zapory przy zachowaniu wysokiego poziomu bezpieczeństwa. UFW zapewnia łatwy sposób na tworzenie reguł filtracji pakietów za pomocą prostych poleceń. Dzięki temu jest to dobre rozwiązanie dla osób, które nie chcą zagłębiać się w szczegóły iptables, a potrzebują narzędzia do szybkiej konfiguracji zapory. UFW jest idealnym rozwiązaniem dla początkujących użytkowników Linuxa, którzy potrzebują prostych, ale skutecznych narzędzi zabezpieczających.

5. SELinux i AppArmor:
Choć SELinux (Security-Enhanced Linux) i AppArmor nie są zaporami sieciowymi w tradycyjnym sensie, to również pełnią istotną rolę w bezpieczeństwie systemu Linux, zwłaszcza w kontekście ochrony aplikacji i procesów przed nieautoryzowanym dostępem. SELinux to mechanizm kontroli dostępu oparty na politykach, który może ograniczać, do jakich zasobów mogą uzyskać dostęp aplikacje w systemie. Z kolei AppArmor oferuje podobną funkcjonalność, pozwalając na tworzenie profili bezpieczeństwa dla aplikacji i usług. Oba narzędzia współpracują z zaporami, aby zapewnić wielowarstwową ochronę systemu.

6. Zastosowanie ścian ogniowych w praktyce:
W kontekście praktycznym, zapory ogniowe w systemie Linux pełnią rolę pierwszej linii obrony przed atakami z sieci. Mogą być używane do blokowania nieautoryzowanego dostępu do systemu, ochrony przed atakami typu DoS (Denial of Service) oraz kontrolowania ruchu wychodzącego z systemu. W środowiskach produkcyjnych często stosuje się połączenie kilku narzędzi, takich jak firewalld lub iptables wraz z SELinux lub AppArmor, aby zapewnić kompleksową ochronę systemu przed zagrożeniami z sieci.

Zarządzanie zaporami sieciowymi w systemie Linux jest kluczowym elementem zapewnienia bezpieczeństwa i integralności systemu. Odpowiednia konfiguracja zapory ogniowej może znacząco zwiększyć odporność systemu na ataki z sieci, jednocześnie umożliwiając elastyczną kontrolę nad dostępem do zasobów systemowych.

Należy zacząć od świeżej instalacji posiadanej dystrybucji Linuxa (poniższe przykłady bazują na dystrybucji RedHat 3.0.3). Im mniej oprogramowania zostanie zainstalowane tym mniej będzie w nim dziur, tylnych wejść i / lub błędów wprowadzających do naszego systemu problem bezpieczeństwa, więc dobrze jest zainstalować jedynie minimalny zestaw aplikacji.

Należy użyć stabilnego jądra. Poniżej przedstawiona jest dokumentacja podstawowych ustawień (dla wersji 2.0.14) [1].

Oto są sieciowe ustawienia, które poznajemy wykonując komendę make config

  1. Under General setup
    1. Turn Networking Support ON
  2. Under Networking Options
    1. Turn Network firewalls ON
    2. Turn TCP/IP Networking ON
    3. Turn IP forwarding/gatewaying OFF (UNLESS you wish to use IP filtering)
    4. Turn IP Firewalling ON
    5. Turn IP firewall packet loggin ON (this is not required but it is a good idea)
    6. Turn IP: masquerading OFF (I am not covering this subject here.)
    7. Turn IP: accounting ON
    8. Turn IP: tunneling OFF
    9. Turn IP: aliasing OFF
    10. Turn IP: PC/TCP compatibility mode OFF
    11. Turn IP: Reverse ARP OFF
    12. Turn Drop source routed frames ON
  3. Under Network device support
    1. Turn Network device support ON
    2. Turn Dummy net driver support ON
    3. Turn Ethernet (10 or 100Mbit) ON
    4. Select your network card

Teraz możemy dokonać rekompilacji i reinstalacji jądra oraz zrestartować system. Nasza karta/y sieciowa/e powinna pojawić się w trakcie procedury startowej.


[1] R. Ziegler „Linux. Firewalls“

Programy analizy ruchu w sieci komputerowej (Sniffery)

Oceń tę pracę

podrozdział pracy magisterskiej o zaporach ogniowych

Sniffery to programy służące do przechwytywania pakietów sieciowych. Pierwotnym zastosowaniem programów tego typu jest analiza ruchu w sieci i identyfikacja potencjalnych problemów. Przykładowo, w sytuacji kiedy jeden segment sieci działa mało wydajnie – dostarczenie pakietu odbywa się bardzo wolno lub komputery blokują się przy uruchamianiu w sieci. Do dokładnego określenia przyczyny takiego zachowania używamy programu typu Sniffer. Sniffery różnią się znacznie między sobą funkcjonalnością i stopniem programistycznego zaawansowania – niektóre z nich analizują tylko jeden protokół, podczas gdy inne setki. Ogólnie rzecz ujmując, program taki analizuje protokoły:

  • Standardowy Ethernet
  • TCP/ IP
  • IPX
  • DECNet

Analizatory protokołów zawsze są kombinacją sprzętu i oprogramowania. Komercyjne programy tego typu są drogie (zazwyczaj sprzedawane są w pakiecie z komputerem zbudowanym z uwzględnieniem funkcji sieciowej, jaką będzie on pełnić), natomiast te, które są dostępne jako oprogramowanie typu freeware, nie oferują żadnej pomocy technicznej.

Analizatory ruchu w sieci komputerowej znacznie różnią się od programów przechwytujących kody naciskanych klawiszy. Programy typu sniffer przechwytują pakiety sieciowe poprzez ustawienie karty sieciowej w tzw. tryb mieszany (promiscuous mode). Lokalne sieci komputerowe są małymi sieciami typu Ethernet (najczęściej). Dane z jednego komputera przesyłane są do drugiego przy pomocy kabla sieciowego.

Istnieją różne rodzaje kabli, różniących się szybkością przesyłania danych, z których najpowszechniej stosowanych jest pięć:

  • 10BASE-2 kabel koncentryczny (cienki), którym standardowo można przesyłać dane na odległość 152 metrów.
  • 10BASE-5 kabel koncentryczny (gruby), którym standardowo można przesyłać dane na odległość 457 metrów.
  • 10BASE-5 kabel światłowodowy
  • 10BASE-T skrętka dwuprzewodowa, standardowo przesyłająca dane na odległość 183 metry.
  • 100BASE-T kabel przystosowany do przesyłania danych z prędkością 100 megabitów na sekundę, (na odległość do 100 metrów).

Transmisja danych w sieci komputerowej odbywa się małych porcjach –  ramkach. Ramki te są podzielone na sekcje, z których każda zawiera z góry określone informacje, na przykład pierwsze 12 bajtów ramki sieci Ethernet niesie informacje o adresie odbiorcy i nadawcy pakietu. Inne sekcje ramki przenoszą właściwe dane użytkownika, nagłówki TCP/IP, nagłówki IPX, itd.

Ramki są przygotowywane do wysłania przez specjalny program, zwany sterownikiem sieciowym. Następnie przesyłane są z komputera wyjściowego do sieci poprzez kartę sieciową, skąd przemieszczają się do miejsca przeznaczenia. Po dotarciu do maszyny docelowej proces jest odwracany, tj. karta sieciowa w komputerze odbiorcy pobiera ramki i, informując system operacyjny o tym fakcie, przekazuje sterowanie odpowiedniemu oprogramowaniu, które zajmuje się dalszą obróbką pakietów.

Analizatory protokołów stanowią zagrożenie dla bezpieczeństwa z powodu sposobu, w jaki ramki są przesyłane i dostarczane do miejsca przeznaczenia. Poniżej przedstawione jest krótkie omówienie tego procesu.

Każda stacja robocza w lokalnej sieci komputerowej ma swój własny adres sprzętowy. Adres ten jest unikalny dla odróżnienia poszczególnych komputerów w sieci (przypomina to system adresowania w sieci Internet). Wysyłając jakiekolwiek dane przez sieć LAN, pakiety z danymi trafiają do wszystkich komputerów w tej sieci.

W normalnych okolicznościach wszystkie komputery w sieci mogą „słyszeć” cały ruch, który się w niej dobywa, ale reagują tylko na te dane, które są zaadresowane specjalnie dla nich (innymi słowy stacja robocza A nie przechwyci danych przeznaczonych dla stacji roboczej B lecz je zignoruje). Jeśli jednak karta sieciowa danej maszyny znajduje się w trybie mieszanym, może przechwytywać wszystkie pakiety i ramki w sieci. Stacja robocza skonfigurowana w ten sposób (i jej oprogramowanie) stanowi analizator ruchu w sieci komputerowej (sniffer).

Programy tego typu sniffer stanowią wysoki poziom ryzyka.

  1. Mogą przechwytywać hasła.
  2. Mogą przechwytywać poufne lub zastrzeżone informacje.
  3. Mogą być użyte do naruszenia bezpieczeństwa sąsiednich sieci lub zdobycia stopniowego dostępu do nich.

Wykrycie przez administratora „obcego” analizatora umieszczonego w jego sieci oznacza w większości przypadków, że zabezpieczenia sieci już zostały pokonane.

Programy tego typu przechwytują wszystkie pakiety danych podróżujące w sieci, lecz w praktyce konieczne jest zawężenie przechwytywanych pakietów do tych, które są dla użytkownika z jakiegoś względu istotne.

Przeprowadzenie ataku przy pomocy sniffera nie jest proste – wymaga dość zaawansowanej wiedzy o sieciach. Zwyczajne zainstalowanie takiego programu i uruchomienie go prowadzi do problemów, gdyż nawet sieć z pięcioma stacjami roboczymi przesyła tysiące pakietów na godzinę. W krótkim czasie plik wynikowy sniffera może zapełnić cały dysk twardy (jeśli przechwytywany jest każdy pakiet).
Aby obejść ten problem, krakerzy na ogół przechwytują tylko 200-300 początkowych bajtów każdego pakietu, gdzie zawarta jest nazwa użytkownika i jego hasło (a to właściwie wszystko, co kraker chce wiedzieć). Jednakże, jeśli intruz dysponuje maszyną z wystarczającą ilością miejsca na dyskach – może przechwytywać cały ruch w sieci – niekiedy i w dalszej części pakietu można znaleźć interesujące informacje.

Analizator ruchu w sieci może zostać założony w dowolnym miejscu w sieci. Jednak są pewne punkty strategiczne, które pozostają w kręgu szczególnego zainteresowania krakerów (jak na przykład miejsca, gdzie często dokonuje się procedur autoryzacji). Na szczególne niebezpieczeństwo narażone są maszyny będące bramkami pomiędzy sieciami. Ruch generowany w okolicach takiego komputera zawiera stosunkowo najwięcej pakietów pochodzących z procedur autoryzacji. Umiejscowienie sniffera w tym miejscu zwiększa sferę wpływów intruza w sposób wykładniczy.

W ostatnim czasie technologie związane z bezpieczeństwem systemów uległy znacznemu udoskonaleniu. Niektóre systemy operacyjne wykorzystują szyfrowanie na poziomie pakietu i dlatego, nawet jeśli sniffer przechwyci istotne dane, będą one zaszyfrowane. Stanowi to przeszkodę do ominięcia jedynie przez użytkowników posiadających dogłębną wiedzę z dziedzin: bezpieczeństwa systemów, szyfrowania oraz sieci.

Sniffery dostępne są w postaci pakietów komercyjnych (często programowo-sprzętowych) oraz programów typu freeware. Początkującym administratorom zaleca się zapoznanie z ogólną charakterystyką analizatora ruchu na podstawie któregoś z darmowych pakietów. Doświadczeni administratorzy dużych sieci powinni posiadać przynajmniej jeden sniffer komercyjny. Programy te są nieocenione przy diagnozowaniu problemów sieci.

Zabezpieczenia komputera – Programy skanujące

Oceń tę pracę

Błędem byłoby jednakże zawierzenie bezpieczeństwa sieci programowi skanującemu. W najlepszym przypadku programy skanujące oferują możliwość szybkiego sprawdzenia bezpieczeństwa protokołów TCP/IP i nic ponadto. Nie powinny one być zatem jedynymi narzędziami stosowanymi do sprawdzania bezpieczeństwa sieci. Jeżeli po przebadaniu sieci uzyskamy potwierdzenie jej bezpieczeństwa, nie musi to wcale oznaczać, że sieć pozbawiona jest luk w systemie zabezpieczeń.

Programy skanujące:

Nessus

Tabela 8

Typ pogramy skanującego: Skaner portów TCP/IP
Autor: Renaud Deraison
Język programowania: C
Wyjściowy system operacyjny: Linux
Docelowy system operacyjny: UNIX (ogólnie)
Wymagania: Linux,C

Źródło własne

Podstawowe cechy programu

Pierwotnie Nessus powstał na platformie Linux, a w maju 1998 roku napisane zostały wersje na platformy NetBSD i Solaris. Nessus jest zestawem narzędzi do skanowania, w który zostały wbudowane kody źródłowe wszystkich najistotniejszych programów służących do wykorzystywania luk systemowych. Do programu można w łatwy sposób dołączać nowe moduły, co świadczy o jego elastyczności.

Nessus pracuje w środowisku graficznym X Windows. Jego graficzny interfejs zbudowano przy wykorzystaniu elementów graficznych z biblioteki gtk (Gimp Toolklfj – wymaganej do jego uruchomienia.

gtk jest bezpłatną biblioteką tzw. widget’ów – elementów wykorzystywanych do konstrukcji interfejsu programu w środowisku graficznym (X Windows w tym przypadku).

Usługi dodatkowe systemów firewall

Oceń tę pracę

Systemy firewall oferują wiele dodatkowych usług, które pomagają zabezpieczyć sieć bądź przyspieszyć jej pracę. Wśród nich na szczególne wyróżnienie zasługują Proxy Cache Services. Usługa ta umożliwia zoptymalizowanie ruchu na łączu WAN poprzez przechowywanie informacji (stron WWW), do których często odwołują się użytkownicy sieci; zwykle jest to element zintegrowany z serwerami pośredniczącymi.

W przypadku przyspieszania pracy klientów lokalnej sieci, Proxy Cache Server umieszczamy pomiędzy nimi a Internetem. Wówczas żądania o strony umieszczone w pamięci serwera są obsługiwane z prędkością LAN, a łącze WAN nie jest wcale obciążane.

Rysunek 4


źródło własne

W przypadku intensywnie eksploatowanych serwerów WWW, umieszczonych w głębi sieci lokalnej, również warto zastosować Proxy Cache Server. Odciąży on serwery i zmniejszy transmisję w sieci LAN.

Rysunek 5


źródło własne

W przypadku bardzo dużych i intensywnie eksploatowanych serwisów WWW możemy użyć kilku połączonych równolegle Proxy Cache Server. Mogą one obsługiwać serwery WWW różnych producentów.

Rysunek 6


źródło własne

Gdy nasza sieć jest jednym z wielu rozrzuconych elementów sieci korporacyjnej, warto zastosować hierarchiczne połączenie wielu Proxy Cache Servers. Można również połączyć serwery na tym samym poziomie drzewa, uzyskując ten sposób wielopiętrowe przyśpieszenie pracy całej sieci. Taka budowa zwiększa szansę na znalezienie poszukiwanej strony w pamięci podręcznej. Dostęp do stron rzadko używanych jest wolniejszy, ale i tak przewyższa prędkość odnalezienia strony w Internecie.

Rysunek 7


źródło własne

W pracy serwera bardzo istotne jest odpowiednie ustawienie parametrów. Przede wszystkim czasu przechowywania stron w pamięci podręcznej, czasu, po którym strona staje się nie aktualna, ilość miejsca przeznaczonego na cache.

Wiele firm, które potrzebują ciągłej wymiany informacji, staje przed dużym problemem – jak połączyć sieci lokalne wielu oddziałów oddalonych od siebie o setki, a nawet tysiące kilometrów. Wykupienie łącza dzierżawionego jest bardzo drogie, a czasem wręcz niemożliwe. Jedynym wyjściem staje się podłączenie wszystkich filii do sieci globalnej, takiej jak Internet. Virtual Private Network to usługa, która pozwala łączyć kilka sieci prywatnych tunelami, przez które przenoszone są tylko informacje zaszyfrowane. Szyfrowanie całych pakietów znacznie zwiększa bezpieczeństwo połączenia, ponieważ ukrywa numery połączeń i przesyłane dane.

Rysunek 8


źródło własne

Serwer z VPN zainstalowany na obrzeżu sieci umożliwia zarządzanie całą siecią wirtualną z dowolnego miejsca, co dodatkowo upraszcza administrację. Jedynym elementem, który powinien zostać przekazany tradycyjną metodą jest klucz (w BorderManager firmy Novell klucz jest 40- lub 128-bitowy; na eksport poza terytorium USA klucza 128-bitowego nałożone są spore restrykcje) umożliwiający nawiązanie zaszyfrowanego połączenia.

Narzędzia w rodzaju Novell IP Gateway umożliwiają sieciom pracującym z innymi protokołami, bądź z adresami IP, które nie są unikalne, korzystanie z sieci Internet. Dają możliwość całemu systemowi na korzystanie z jednego adresu IP, który również może być przydzielany dynamicznie. Umożliwia to firmie korzystającej np. z protokołu IPX na podłączenie do Internetu za pomocą modemu u dostawcy przydzielającego adresy dynamicznie (TP S.A.). Dodatkową zaletą zwiększającą bezpieczeństwo przy korzystaniu z takich usług jest ukrycie adresów lokalnych systemu.

Usługa Network Address Translation (NAT), podobnie jak IP Gateway, pozwala klientom, którzy nie posiadają unikalnych adresów, korzystać z Internetu. Dodatkowo może pracować jako filtr pozwalający tylko na niektóre połączenia z zewnątrz i gwarantujący, że wewnętrzne połączenia nie będą inicjowane z sieci publicznej.

W celu precyzyjnego określenia praw rządzących dostępem do sieci tworzy się tak zwane listy reguł. Listy takie opisują prawa poszczególnych obiektów do korzystania z określonych usług/protokołów sieciowych, zezwalają na pewne rodzaje połączeń z zewnątrz jednocześnie zabraniając innych, mogą limitować liczbę połączeń z jakiegoś adresu albo ograniczać liczbę jednoczesnych połączeń. Przykładowo, kierownictwo firmy może zabronić pracownikom w określonych godzinach korzystania z usługi http z konkretnych miejsc sieci (co, oczywiście, jest decyzją polityczną). Edytor reguł jest narzędziem, przy pomocy którego budujemy i modyfikujemy zbiory reguł oraz wiążemy aplikacje z protokołami, a tym z kolei przypisujemy interfejsy sieciowe. Na użytek zaawansowanych administratorów tworzone są specjalne języki skryptowe, ułatwiające automatyzowanie konfigurowania serwera.

Integralną częścią systemów firewall jest mechanizm o zbliżonej roli do „czarnej skrzynki” w samolotach, śledzący i rejestrujący wszelkie wydarzenia w sieci. Dzięki monitorowaniu uwadze administratora z pewnością nie umknie, na przykład, 30-krotna nieudana próba zdalnego logowania się do systemu. Innym zastosowaniem jest analiza adresów, z którymi najczęściej nawiązywane są połączenia przez lokalnych użytkowników, gdyż dane takie są istotne do efektywnego skonfigurowania serwera proxy. Jednocześnie zarządca ma wgląd w dziennik błędów, gdzie zachowywane są ostrzeżenia o występowaniu wszelkich problemów z poprawnością transmisji. W przypadkach, gdy zachodzi uzasadnione podejrzenie, iż nastąpiło włamanie do sieci, system monitorujący może samodzielnie podjąć akcję zdefiniowaną przez administratora, na przykład decyzję o zerwaniu połączenia albo uruchomieniu „alarmu”.