Bezpieczeństwo w systemach operacyjnych


Prezentacja zrealizowana w ramach przedmiotu Systemy Operacyjne w roku akademickim 2004/2005

Autorzy:
Marianna Mysiorska (rozdział "Ataki na systemy komputerowe")
Katarzyna Poleszak (rozdziały "Luki zabezpieczeń w systemach UNIX" i "Mechanizmy obronne zintegrowane z OS")
Aleksander Siewierski (rozdział "Mechanizmy obronne na granicy sieci")


Spis treści


Wstęp

Zagadnienie bezpieczeństwa systemów komputerowych jest obecnie, szczególnie wraz z intensywnym w ostatnim dziesięcioleciu rozwojem Internetu, jednym z najbardziej aktualnych i "gorących" tematów w branży informatycznej. Żyjąc w społeczeństwie informacyjnym w pełnym tego słowa znaczeniu, w którym informacja jest towarem, i tak jak każdy towar ma swoją, często dość wysoką rynkowš wartość. Musimy zatem odpowiednio zadbać o jej bezpieczeństwo i poufność, tak by nie dostała się w niepowołane "ręce"). Użytkownicy i administratorzy systemów informatycznych, będšc świadomym powyższych argumentów nie wahają się płacić wysokich cen w celu jak najlepszego zabezpieczenia swoich sieci informatycznych.

W naszym referacie nie bylibyśmy w stanie nawet naszkicować pełnego bogactwa tematów związanych z bezpieczeństwem, dlatego też ograniczyliśmy się do kilku kwestii, starając się wybrać te najważniejsze i najaktualniejsze, ale jednocześnie trzymając się ram tego przedmiotu czyli tematyki systemów operacyjnych. Dlatego też w pierwszym rozdziale naszej pracy pokazaliśmy typowe luki zabezpieczeń w systemach unixowych, ich opis, zagrożenia, które mogą powodować oraz sposoby zabezpieczenia się przed nimi. Rozdział drugi dotyczy mechanizmów obronnych zintegrowanych z systemami operacyjnymi. Omówiliśmy kilka ciekawych rozwiązań, głównie do zastosowania w systemach unixowych, pozwalających podnieść poziom bezpieczeństwa na poziomie samego systemu operacyjnego, a także całe systemy operacyjne z podniesionym standardem bezpieczeństwa. Rozdział następny dotyczy głównych rodzajów ataków przeprowadzanych przez hakerów w celu zaatakowania systemu informatycznego. Rozdział ten obejmuje także ataki wykorzystujące luki w bezpieczeństwie aplikacji i błędy programistyczne, takie jak przepełnienie bufora, czy ataki poprzez SQL. Ostatni rozdział dotyczy mechazmów obronnych na granicy sieci lokalnej. Omówione zostały zarówno rozwišzania służące do ochrony całej sieci jak firewall, systemy detekcji intruzów IDS, czy systemy prewencji przed włamaniami IPS, ale oprócz tego system działający według trochę innej filozofii - Kerberos, który zakłada, że cała sieć nie musi być chroniona, a cały ciężar autoryzacji poszczgólnych komputerów w sieci może spoczywać na jednym lub kilku bezpiecznych serwerach.



Luki zabezpieczeń w systemach UNIX

Serwery WWW


Opis

Apache jest otwartym serwerem HTTP dostępnym dla wielu systemów operacyjnych (m.in. UNIX, GNU/Linux, BSD, Microsoft Windows). To najszerzej stosowany serwer HTTP w Internecie.


Zagrożenia

Cechy bezpiecznego serwera www:



Źródła:

http://www.it-faq.pl/EditModule.aspx?tabid=504&mid=1088&def= Cs_ITSCS_CMS_Articles_View&ArticleID=1388



Systemy kontroli wersji CVS

Opis

Concurrent Version System (CVS) jest najpopularniejszym narzędziem pomagającym w organizacji tworzenia projektu w środowisku Unix/Linux. CVS pamięta historię zmian. Pozwala m.in. dotrzeć do poprzednich wersji każdego pliku, porównywać se sobą różne wersje, tworzyć odgałęzienia w rozwoju modułu i nanosić na jedną wersję zmiany powstałe niezależnie od siebie albo powstałe w innych wersjach. Obecnie coraz większą popularność zyskuje inny system kontroli wersji - Subversion, który zapewnia m.in. niepodzielność wprowadzanych zmian i przechowywanie informacji o prawach dostępu do plików.



Zagrożenia

CVS zawiera następujące luki:

Jeżeli atakujący uzyska dostęp do repozytorium, może dodać do kodu źródlowego rozwijanego oprogramowania tylne furtki i błędy, których efektem będzie wiele skompromitowanych systemów, na którym oprogramowanie zostanie w przyszłości uruchomione. Atakujący może także spróbować podszyć się pod innych pracowników, wrabiając ich w podobne zmiany.



Źródła:

http://team.pld.org.pl/~klakier/doc/cvs/pl/



Serwer pocztowy MTA

Opis

Serwery pocztowe MTA (Mail Transfer Agents) są odpowiedzialne za dostarczenie poczty od nadawcy do odbiorcy lub odbiorców, zazwyczaj z wykorzystaniem protokołu SMTP. Protokół ten może być szyfrowany za pomocą TLS, jeżeli obie strony biorące udział w transmisji mają dla niego wsparcie.

Najczęściej spotykane MTA w środowisku Unix/Linux:

  • Sendmail (zawiera wiele luk),
  • Qmail,
  • Postfix,
  • Exim,
  • Courier-MTA.

    Zagrożenia

    Zabezpieczanie serwera MTA:

    Źródła:

    Raport SANS TOP 20-Lista Top 20 Internetowych Luk Bezpieczeństwa według SANS
    http://www.telenetforum.pl/index_2.php?show=pokaz_art_old&art=19_06_2001
    http://www.pckurier.pl/archiwum/art0.asp?ID=4762



    Protokół SNMP



    Opis

    Protokół SNMP (Simple Network Management Protocol) służy do zarządzania i monitorowania urządzeń sieciowych. Jest to protokół opisywany w terminologii SNMP jako protokół menedżer/agent. Agent działa na obsługiwanym urządzeniu nazywanym MNE (Managed Network Entity - obsługiwana jednostka sieciowa) i monitoruje stan urządzenia. Menedżer działa na jednostce NMS (Network Management Station - jednostka zarządzania siecią) i odbiera raporty od agenta. Dodatkowo każdy agent SNMP obsługuje własną niewielką bazę danych (MIB - Management Information Base), zawierającą informacje o stanie i historii pracy urządzenia, a także zmienne sterujące jego pracą.

    Zalety:
  • instalowane w węzłach programy zajmują mało miejsca w pamięci,
  • protokół pozwala kontrolować liczbę generowanych przez stację zarządzania powtórzeń żądań obsługi oraz czas oczekiwania na odpowiedzi urządzeń, 
  • możliwość wychwytywania konkretnych zdarzeń (informacje typu trap),
  • powszechna dostępność aplikacji opartych na protokole SNMP,
  • niskie koszty wdrożenia do eksploatacji.

    Wady:
  • skomplikowana pracę samego agenta, 
  • ograniczanie przepustowości sieci,
  • brak mechanizmów bezpieczeństwa.

    Zagrożenia

    SNMP staje się częstym celem ataków, gdyż: Odnalezione luki:

    Źródła

    http://www.eltronik.net.pl/index.pl/informacje_techniczne2#1152
    http://hip.ipadmin.info/own/mrtg/mrtg_referat.htm
    http://www.okmatura.cad.pl/infa/029.htm
    http://www.pckurier.pl/archiwum/art0.asp?ID= 4846
    http://www.pckurier.pl/archiwum/art0.asp?ID= 5453
    http://www.networld.pl/news/64905.html


    Protokół SSL

    Opis

    Protokół SSL (Secure Sockets Layer) pozwala na uwierzytelnienie stron transmisji oraz zachowanie poufności danych. Najogólniej mówiąc, odpowiada on za wynegocjowanie parametrów bezpiecznego połączenia z serwerem, a jego działanie opiera się na tzw. certyfikatach cyfrowych. Same algorytmy szyfrujące nie są częścią SSL, gdyż jest on wykorzystywany jedynie do określenia, które z nich mają być użyte do transmisji. Technologia SSL koduje hasła i inne tajne informacje podczas komunikacji serwera z komputerem użytkownika. Adresy URL stron internetowych chronionych tym protokołem rozpoczynają się od wyrażenia "https://", a w trakcie ich ładowania i pobytu na nich, w dolnej ramce przeglądarki widoczna jest ikona kłódki.

    Open source'owa biblioteka OpenSSL jest wykorzystywana jako zestaw narzędzi, których inne aplikacje używają do zapewnienia kryptograficznej ochrony dla połączeń sieciowych. Zamiast atakowania OpenSSL bezpośrednio, exploity są skierowane na aplikacje wykorzystujące OpenSSL.

    Zagrożenia

    Źródła:

    http://pl.wikipedia.org/
    http://www.egospodarka.pl/1095,Dziurawy-SSL,1,12,1.html
    http://www.chip.pl/arts/n/sub/article_120062.html
    http://www.pckurier.pl/archiwum/art0.asp?ID= 5635



    Poziomy dostępu

    Opis

    Kontrola dostępu należy, obok uwierzytelnienia użytkowników, do podstawowych usług bezpieczeństwa oferowanych przez systemy operacyjne. Warunkiem wstępnym jest uwierzytelnienie. Uwierzytelniony użytkownik otrzymuje dostęp do tych i tylko tych obiektów, do których jest upoważniony.

    W systemie Unix wszystkie właściwie obiekty są reprezentowane jako "pliki" w systemie plikowym. Dotyczy to także na przykład aktywnych procesów, gniazd czy połączeń sieciowych, jak również urządzeń: drukarek, terminali, dysków itp. Każdy z takich plików posiada nazwę, właściciela, prawa dostępu i inne atrybuty. Dane te są pamiętane w systemie plików w postaci tzw. i-węzłów (inodes, index nodes), podstawowej jednostki tworzącej system plików. Jedynie nazwy plików są zapisane w katalogach i skojarzone z węzłami za pomocą wskaźników.

    Przedstawiony sposób obsługi obiektów systemowych powoduje, że zagadnienie kontroli dostępu do zasobów de facto sprowadza się w Unixie do kontroli dostępu do plików. Rozróżnia się trzy rodzaje praw dostępu (uprawnień): do odczytu (r, read), do zapisu (w, write) i do wykonywania (x, execute). Uprawnienia te nadaje się osobno dla właściciela pliku, członków należących do tej samej grupy, co plik (nie koniecznie właściciel!), i wreszcie dla wszystkich pozostałych użytkowników; zapis rwxr-xr-x oznacza pełne prawa właściciela pliku oraz prawo do odczytu i wykonania (ale nie zapisu) dla wszystkich pozostałych użytkowników. Superużytkownik - root albo administrator - ma nieograniczone prawa do wszystkich plików, niezależnie od ustawień praw dostępu.

    Niektóre pliki wykonywalne - to jest programy - mogą jednak mieć inne, zwykle szersze prawa dostępu, niż użytkownik je wywołujący. Jest to oczywiste - czasami nieuprzywilejowani użytkownicy muszą wykonywać zadania, które wymagają przywilejów (na przykład polecenie systemowe passwd musi mieć dostęp do plików systemowych zawierających hasła). Pliki typu SUID (set user id) oraz SGID (set group id) to pliki wykonywalne, które na czas uruchomienia mogą przyjąć obcy identyfikator użytkownika lub grupy. Kiedy wykonywany jest program SUID (lub SGID), jego efektywny identyfikator użytkownika UID (lub grupy GID) przyjmuje wartość identyfikatora właściciela pliku, a nie uruchamiającego go użytkownika. Tak więc program SUID, którego właścicielem jest użytkownik root (czyli tzw. SUID root) może wszystko - ma nieograniczone uprawnienia bez względu na to, kto go uruchomił.



    Zagrożenia

    Programy SUID i SGID mogą stanowić poważne zagrożenie bezpieczeństwa systemu. Nieopatrznie (lub nielegalnie) utworzony program tego typu może dać postronnym osobom dostęp do chronionych zasobów. Na przykład skopiowanie pliku shella systemowego (cp /bin/sh super) i nadanie mu uprawnień SUID (np. chmod 4755) powoduje, że utworzony plik jest wytrychem, pozwalającym na swobodny dostęp do plików danego użytkownika. W ten sposób na intruz może przejąć kontrolę na przykład nad plikami superużytkownika root (czyli nad całym systemem plikowym komputera!).



    Zabezpieczenia

    Niektóre wersje Unixa obsługują listy kontroli dostępu (ACL - Access Control Lists). Stanowią one rozszerzenie standardowego systemu uprawnień. Pozwalają na zdefiniowanie dodatkowych praw dostępu dla poszczególnych użytkowników lub grup - a nie tylko dla bliżej nieokreślonego ogółu pozostałych użytkowników. Jeśli na przykład określony użytkownik X ma współpracownika Y, z którym chciałby dzielić dostęp do określonego pliku, to przy zastosowaniu ACL może po prostu dołączyć do listy związanej z plikiem odpowiednie uprawnienia dla Y. Bez list ACL musi się udać do administratora systemu (superużytkownika), który stworzy grupę użytkowników obejmującą X i Y, a następnie przepisać plik do tej grupy, jednocześnie ustawiając odpowiednio atrybuty dostępu do grupy.

    Niestety, nie wszystkie systemy Unix zawierają mechanizm ACL; co więcej wśród tych, które go implementują, nie ma zgody co do tego, jak powinien wyglądać standard.


    Źródła:

    http://sun.iinf.polsl.gliwice.pl/~jfrancik/publ/download/bielsko02.pdf


  • Mechanizmy obronne zintegrowane z OS


    Ochrona pamięci w kernelu


    Ochrona pamięci w kompilatorze



    Ścisła kontrola dostępu

    Kontrola dostępu należy, obok uwierzytelnienia użytkowników, do podstawowych usług bezpieczeństwa oferowanych przez systemy operacyjne. Warunkiem wstępnym jest uwierzytelnienie. Uwierzytelniony użytkownik otrzymuje dostęp do tych i tylko tych obiektów, do których jest upoważniony.
    Dostęp narzucony MAC (Mandatory Access Control)
    Uprawnienia użytkowników określa administrator systemu. Umożliwia to zaimplementowanie konsekwentnej polityki ochrony zasobów w całej sieci. Najczęściej wykorzystywanym mechanizmem są etykiety poziomów zaufania. Mechanizmy MAC są mniej elastyczne i wręcz przeszkadzają w otwartym współdzieleniu zasobów przez użytkowników. Mimo to MAC należy do mechanizmów implementowanych w łatach do systemu UNIX. 

    NSA Security Enhanced Linux

    http://www.nsa.gov/selinux/index.cfm

    SELinux został stworzony przez NSA (National Security Agency) w USA i developerów Linuksa. Jest to patch dla kerneli z rodziny 2.4.x i 2.6.x, ale oprócz tego zawiera także cały zespół łatek dla wielu innych programów (m.in. OpenSSH, coreutils, PAM). Głównym celem twórców SELinux była poprawa kwestii związanych z dostępem do danych, zabezpieczenie pamięci, w której wykonywane są programy, umożliwienie implementacji biblioteki "libselinux" we własnym oprogramowaniu i wiele innych zaawansowanych funkcji. Standardowo SELinux zaczyna być dołączany do niektórych dystrybucji Linuksa takich jak Fedora czy Gentoo, ale wymaga aktywacji i konfiguracji ze strony użytkownika



    Inne mechanizmy obronne zintegrowane z OS

    OpenBSD

    http://www.openbsd.org/

    Wolnodostępny system operacyjny typu UNIX z rodziny BSD zgodny z normą POSIX. Projekt powstał w 1996 roku jako efekt rozłamu w zespole NetBSD, jego inicjatorem był kanadyjski programista Theo de Raadt.

    Chronologia

    Pierwsza wersja systemu o numerze 2.0 ukazała się 18 października 1996. 29 października 2004 ukazała się najnowsza aktualnie wersja o numerze 3.6.

    Charakterystyka

    Nacisk przy tworzeniu systemu został położony przede wszystkim na bezpieczeństwo. Po rozłamie przyjęty za bazę projektu kod NetBSD został poddany audytowi w celu wykrycia i usunięcia wszelki dziur i błędów, które mogłyby zagrozić bezpieczeństwu systemu. Domyślnie wszystkie usługi dostępne w systemie, a które nie są niezbędne do jego działania, są zdeaktywowane (motto: Secure by Default). W związku umiejscowieniem siedziby poza USA w początkowej fazie rozwoju nie dotyczyły go restrykcje eksportowe narzucone na zaawansowane metody kryptograficzne. Dzięki temu OpenBSD od początku mogło być wyposażone w takie usługi, jak SSH (wolna wersja OpenSSH) czy SSL (OpenSSL). Dziedzictwo po NetBSD zaowocowało sporą przenośnością systemu (poszczególne wydania OpenBSD powstawały na bazie portów NetBSD). Obecnie jest on dostępny dla następujących platform: i386, SPARC, SPARC64, HP300, Amiga, Mac68k, MacPPC, Mvme68k, Alpha, VAX. Zarzucone platformy obejmują: Sun3 (do wersji 2.9), ARC, Mvme88k, PMax. OpenBSD pozwala uruchamiać binaria skompilowane dla następujących systemów: SVR4, Solaris, FreeBSD, Linux, BSD/OS, SunOS oraz HP-UX.

    Zastosowania

    Powszechnie stosowany jako system do tworzenia systemów ścian ogniowych (firewall), serwerów dostępowych czy bramkowych podłączających w bezpieczny sposób mniejsze sieci do Internetu.




    Ataki na systemy komputerowe

    Atak na system komputerowy jest to działanie mające na celu przeniknięcie do chronionego systemu komputerowego w celu przechwycenia, zniszczenia lub zmodyfikowania przechowywanych tam informacji.


    Klasyfikacja ataków

    Ataki możemy podzielić ze względu na:

    1. Miejsce ich przeprowadzania:

    2. Zamiar:

    3. Aktywność:

    4. Przepływ informacji:




    Omówienie ciekawszych przypadków

    Hasła




    Skanowanie




    Sniffing




    Spoofing




    Hijacking




    Programy szkodliwe




    DoS (Denial of Service)




    Buffer Overflow




    SQL injections


    źródła:




    Mechanizmy obronne na granicy sieci


    Firewall

    Wprowadzenie - zagadnienie ochrony sieci

    W czasach, gdy powstawała sieć Internet, jej twórcy zaprojektowali ją w ten sposób, by była odporna na awarie typu odłączenie pojedynczych składników sieci, uszkodzenia okablowania, bądź też wahania zasilania. Niestety w tamtych zamierzchłych już czasach nie przewidziano dodatkowych zabezpieczeń chroniących zasoby prywatne użytkowników Internetu i sieci lokalne przedsiębiorstw przed atakami z Internetu, bądź też z wnętrza samej sieci lokalnej. Obecnie wraz ze wzrostem popularności Internetu i liczby jego użytkowników, znacznie wzrosło niebezpieczeństwo utraty prywatności w wewnętrznych sieciach i zagrożenie przeprowadzania ataku na tą sieć przeprowadzone z Internetu, w celu np. wykradzenia danych lub ich uszkodzenia. Dlatego konieczne stało się zabezpieczanie sieci przed wtargnięciem do niej osób niepowołanych. Najbardziej skutecznym rozwiązaniem tego problemu byłoby fizyczne odseparowanie wszystkich komputerów realizujących istotne zadania i przechowujących ważne informacje, lecz oznaczałoby to kompleksową przebudowę całej sieci lokalnej. Rozwiązaniem tego problemu jest zastosowanie urządzenia zwanego "ścianą ognia" (z ang. firewall, w Polsce często też używa się określenia zapora) chroniącego system lokalny przed ingerencją zewnętrzną.



    Co to jest firewall

    Firewall jest to zwykle dedykowana maszyna, sprzętowa lub software'owa, która znajduje się między siecią prywatną, a publiczną (z reguły Internetem). Maszyna ta sprawdza każdy przepływający przez nią pakiet i albo go przepuszcza albo blokuje w zależności od ustalonych przez administratora reguł. Firewalle umożliwiają utworzenie konfiguracji stanowiącej kompromis pomiędzy siecią prywatną całkowicie izolowaną od publicznej (Internetu), a siecią prywatną swobodnie do publicznej podłączoną. Umieszczony na styku sieci prywatnej i publicznej, firewall stanowi prosty mechanizm kontroli ilości i rodzaju ruchu sieciowego między obiema sieciami. Konfiguracja firewalla z reguły może być opisana poprzez następującą politykę bezpieczeństwa: "co nie jest wyraźnie dozwolone, jest zabronione".

    Firewalle czasami stosuje się również wewnątrz sieci prywatnych, aby zabezpieczyć istotne elementy przed własnymi użytkownikami (np. dwa działy w jednej firmie nie powinny mieć dostępu do swoich informacji). Takie rozwiązanie jest korzystne również dlatego, że jeżeli napastnik włamie się do jednej grupy komputerów to i tak nie będzie miał dostępu do pozostałych komputerów.

    Są dwie różne idee projektowania firewalli. Pierwsza to tzw. "czarna skrzynka" - głównie sprzętowe firewalle produkowane przez komercyjne firmy. Ich sposób działania nie jest bliżej znany. Mamy jedynie dostęp do ich interfejsu użytkownika i ułatwieniach w ich sterowaniu, ale nie mamy pewności czy nie mają one jakichś luk w bezpieczeństwie, bądź nieudokumentowanych obejść. Druga koncepcja to tzw. "kryształowa skrzynka" - zasady filtrowania pakietów są ogólno dostępne, ponieważ mamy możliwość obejrzenia kodu źródłowego wraz z jego kompletną dokumentacją. Pozwala to na dokładne sprawdzenie całego kodu i własnoręczne wprowadzenie ewentualnych poprawek. Firewalle tego typu mają ogromne znaczenie w przypadku, gdy udostępniony jest kod źródłowy całego systemu operacyjnego, gdyż możemy dostosować konfigurację firewalla do ewentualnych niedociągnięć w samym kodzie systemu.



    Omówienie struktury protokołów komunikacyjnych - model OSI i DoD

    Żeby dokładniej poznać budowę, sposób działania i typy firewalli, musimy najpierw poznać w jaki sposób komputery komunikują się ze sobą, czyli model OSI (Open System Interconnection) - standard opisujący strukturę komunikacji sieciowej, zdefiniowany przez organizacje ISO i ITU-T. OSI traktowany jest jako model odniesienia dla większości rodzin protokołów komunikacji. Podstawowym założeniem tego modelu jest podział na 7 całkowicie niezależnych warstw (ang. layers). OSI definuje jakie zadania i rodzaje informacji mogą być przesyłane między warstwami w całkowitym oderwaniu od ich fizycznej i algorytmicznej realizacji. Żadna z warstw sama w sobie nie jest jeszcze funkcjonalna, ale możliwe jest projektowanie warstwy w całkowitym oderwaniu od pozostałych, po uprzednim zdefinowaniu protokołów wymiany informacji między poszczególnymi warstwami. W modelu OSI wyróżniamy trzy warstwy górne: aplikacji, prezentacji i sesji. Tworzą one interfejs, który pozwala na współpracę z programistą oraz niższymi warstwami, w zależności od kierunku przepływu informacji. Warstwy dolne to warstwa transportowa, sieciowa, łącza danych i fizyczna. Odpowiadają one za odnajdywanie odpowiedniej drogi do celu, gdzie ma trafić informacja, weryfikują ich bezbłędność, dzielą informacje na pakiety odpowiednie dla urządzeń sieciowych. W warstwie dolnej ignorowany jest sens samej informacji. Dla Internetu zdefiniowano uproszczony model DoD (z ang. Department of Defence - Departament Obrony USA - twórca Arpanet, przodka sieci Internet). Składa się on tylko z 4 warstw. Na poniższym rysunku widzimy porównanie obu modeli: OSI i DoD

    A teraz po kolei omówimy kolejne warstwy modelu DoD, gdyż są one dość ważne do zrozumienia działania poszczególnych rodzajów firewalli. Na model DoD składają się następujące warstwy:





    Typy firewalli

    Istnieją trzy typy firewalli, różniące się między sobą tym, w której warstwie modelu OSI kontrolowana jest komunikacja między sieciami:


    Filtrowanie pakietów:

    Ten rodzaj firewalla to z reguły ruter filtrujący (screening router) lub specjalny komputer. Na podstawie adresu źródłowego i docelowego oraz portu pojedynczego pakietu decyduje on, czy dana przesyłka może zostać przesłana dalej do sieci lokalnej, czy też powinna zostać zatrzymana. Firewall na poziomie sieci można na przykład skonfigurować tak, by blokował wszystkie wiadomości pochodzące od oraz wysyłane do określonej konkurencyjnej firmy. Firewall tego typu blokuje lub zezwala na komunikację z siecią chronioną stosując filtr w formie listy kontroli dostępu ACL (ang. Access Control List). Jest to lista zawierająca zbiór zasad i odpowiadających im akcji zapisanych w określonym porządku, mających na celu podjęcie decyzji czy dany pakiet jest dozwolony czy nie.

    Firewalle stosujące technikę filtrowania pakietów są zwykle bardzo szybkie, jednak głównym ich ograniczeniem jest to, że pracują one tylko w warstwie sieciowej i łącza danych. Zapewnia im to dostęp tylko do adresów IP, numerów portów oraz znaczników TCP, nie mają zaś dostępu do informacji o kontekście konkretnego pakietu, co jest niewystarczające dla niektórych usług internetowych. Poza tym nie są w stanie filtrować danych przesyłanych za pomocą protokołu UDP (User Datagram Protocol - protokół przesyłania datagramów). Poza tym że większość firewalli tego typu, przede wszystkim rutery, nie posiada mechanizmów kontrolnych, ani ostrzegawczych o zatrzymanych pakietach. Firewall może zatem odeprzeć wiele ataków, nie informując nawet o tym administratora sieci. Ponadto często wystarczy zmienić adres nadawcy pakietu, aby obejść tego rodzaju zabezpieczenie i filtr pakietowy jest już bezradny.

    Firewall poziomu aplikacji:

    Firewalle poziomu aplikacji to hosty, na których uruchomiono serwery proxy. Nie pozwalają one na bezpośredni ruch pakietów pomiędzy sieciami, a także rejestrują i śledzą cały ruch przechodzący przez nie. Dla każdej aplikacji (czyli usługi sieciowej, np. HTTP, FTP, telnet, SMTP, POP3, etc.) istnieje osobny proxy, dla którego definiowane są reguły według których podejmowana jest decyzja o zaakceptowaniu bądź odrzuceniu połączenia. Proxy serwery potrafią więc niejako odseparować wiarygodną część sieci od podejrzanej. Poza tym mogą magazynować najczęściej żądane informacje - klient kieruje swoje żądanie do proxy, który jeśli wyszuka obiekt w swoich lokalnych zasobach to zwraca zamawiającemu bez potrzeby komunikacji z siecią zewnętrzną. Tak więc proxy serwer jest też rodzajem cache'u. Niewątpliwym minusem tego rozwiązania jest konieczność stosowania wielu serwerów proxy do obsługi różnych aplikacji (usług sieciowych). Jeżeli dla danej usługi nie jest dostępny odpowiedni proxy serwer, to dane przesyłane w tym formacie nie będą w ogóle przepuszczane przez bramkę.

    Firewalle na poziomie aplikacji umożliwiają kontrolowanie typu i objętości danych napływających do sieci lokalnej. Fizycznie oddzielają one sieć lokalną od publicznej, dzięki czemu dobrze pełnią funkcje ochronne. Ponieważ jednak program musi kontrolować pakiety i decydować o ich przepuszczaniu, ten typ zapory ogniowej działa wolniej niż zapora ogniowa na poziomie sieci. Jeśli więc jest planowane użycie tego typu zabezpieczenia, to należy je umieścić w najszybszym komputerze.

    Analiza stanu połączeń:

    Zwane również firewallami typu stateful inspection. Firewalle tego rodzaju są rozwiązaniem kompromisowym między szybkością firewalli filtrujących pakiety, a bezpieczeństwem firewalli poziomu aplikacji. Firewalle te filtrują poszczególne pakiety, jednak nie tylko na podstawie ich nagłówków, tak jak w zwykłym filtrowaniu pakietów. Firewalle tego typu potrafią przyporządkowywać pakiety do istniejących połączeń TCP i dzięki temu kontrolować całą transmisję (zaawansowane systemy potrafią także kojarzyć pakiety protokołu UDP, który w rzeczywistości kontroli połączeń nie posiada). Technika ta zwana jest TCP tunnelingiem i odbywa się bez kontroli zawartości pakietów. Firewalle te na bieżąco śledzą i analizują przechodzące przez nie połączenia, co pozwala na znacznie skuteczniejsze kontrolowanie ich zgodności z regułami. Z tych powodów często zapory tego rodzaju są również określane pojęciem dynamicznego filtrowania pakietów. Firewall cały czas przechowuje w pamięci informacje na temat aktualnego stanu każdego połączenia, a jednocześnie wie jakie kolejne stany tego połączenia są dozwolone z punktu widzenia protokołu i polityki bezpieczeństwa. Administrator sieci określa tylko kierunek i politykę względem rozpoczęcia danego połączenia, firewall zaś automatycznie weryfikuje kolejne etapy jego nawiązywania oraz późniejszy przebieg. Ostatnia cecha pozwala również na odrzucanie pakietów, które do danej sesji nie należą, dzięki czemu firewalle te skutecznie blokują próby skanowania portów lub wprowadzania sfałszowanych pakietów (ang. spoofing).





    Wprowadzenie do architektury zapór ogniowych

    Z reguły sieć lokalna zbudowana w architekturze z firewallem składa się z następujących charakterystycznych elementów:





    Techniki integracji systemów ochronnych

    Technika konwencjonalna

    Klasyczny system firewall złożony jest z:

    • zewnętrznego rutera z filtrem pakietowym
    • strefy DMZ, w której świadczone będą usługi publiczne w sieci
    • bastion hosta/hostów w strefie DMZ przeznaczonego do odparcia najcięższych ataków. Na danym komputerze-bastionie uruchamia się proxy serwery dla poszczególnych usług sieciowych. Odpowiednia konfiguracja obu routerów gwarantuje, że transmisja wszelkich danych odbywa się poprzez właśnie bastion hosta.
    • wewnętrznego rutera, także z filtrem pakietowym
    Technika perspektywiczna

    Nowoczesne firewalle działają według zasady all-in-one. Są to pojedyncze urządzenia, które łączą w sobie funkcje obu ruterów z filtrami pakietowymi oraz bastion hosta. Czasami dodatkowo dysponują serwisami w rodzaju DNS bądź mail. W tego rodzaju systemie serwery typu WWW i pozostałe usługi publiczne świadczone w sieci najlepiej umieścić w osobnej sieci-strefie DMZ bezpośrednio podłączonej do firewalla. Jednak do prawidłowej pracy takiego systemu niezbędna jest współpraca firewalla z minimum trzema kartami sieciowymi, co w wielu przypadkach jest warunkiem trudnym do spełnienia.





    Stosowane konfiguracje i topologie sieci architektury firewall

    Screening Router (ruter ekranujący):

    Firewall postawiony jest na ruterze ekranującym lub podobnym, którego głównym zadaniem jest ochrona danych w sieci. Jest on jedynym połaczeniem sieci prywatnej z publiczną. Pracuje w warstwie sieci selekcjonując ruch poprzez filtrowanie pakietów zależny od adresów IP oraz adresu MAC nadawcy lub odbiorcy (MAC - z ang. Media Access Control address - sprzętowy adres karty sieciowej Ethernet i Token Ring, unikalny w skali światowej, nadawany przez producenta danej karty podczas produkcji). Ta konfiguracja jest przykładem działania firewalla filtrującego pakiety. Mechanizm ten nie jest bezpieczny, jeśli jest stosowany bez innych zabezpieczeń.

    Bastion Host Firewall (firewall na komputerze bastionie):

    To ogólne określenie konfiguracji, w której komunikacja pomiędzy siecią lokalną, a publiczną skupia się na jednym punkcie - bastion-hoście, na którym postawiony jest firewall. Rodzaj firewalla determinuje stopień zabezpieczenia sieci. Jeśli jest to firewall poziomu aplikacji to mamy do czynienia z konfiguracją Application Level Gateway opisaną niżej. Jeśli jest to zwykłe filtrowanie pakietów, rozwiązanie to jest niewiele lepsze, niż ruter ekranujący. Pośrednim rozwiązaniem jest postawienie firewalla typu stateful inspection (analiza stanu połączeń). Komputer-bastion jest szczególnie narażony na ataki z zewnątrz sieci, dlatego powinien być jak najlepiej zabezpieczony i szczegółowo monitorowany przez administratora sieci na wypadek ewentualnych prób włamania się do sieci lokalnej. Rozwiązanie to ma tą wadę, że nie separuje bezpośrednio obu sieci: lokalnej i publicznej, dlatego możliwe jest bezpośrednie połączenie między sieciami oraz sama struktura sieci lokalnej i jej pojedynccze hosty są widzialne z sieci zewnętrznej.

    Dual-Homed Gateway Firewall (firewall na komputerze-bastionie z dwoma kartami sieciowymi):

    Firewall pracujący na bastion-hoście zawierającym dwa interfejsy sieciowe: jeden dla sieci prywatnej, drugi publicznej. Ruch na warstwie sieciowej jest zablokowany, nie jest możliwe bezpośrednie przesyłanie pakietów pomiędzy obydwoma interfejsami sieciowym. Jedyny rodzaj ruchu to ten, który generują wyszczególnione aplikacje po zalogowaniu się na komputerze-bastionie, dlatego też komputer-bastion bywa nazywany bramą (ang. gateway). Struktura sieci i jej adresacja jest maskowana przez tą bramę. Z reguły na bastion-hoście pracuje firewall poziomu aplikacji dlatego jest to przykład zastosowania czystego mechanizmu bramy pracującej w warstwie aplikacji.

    Application Level Gateway Firewall (firewall poziomu aplikacji na komputerze-bastionie):

    W tej konfiguracji na komputerze-twierdzy zainstalowany jest firewall poziomu aplikacji z proxy serwerem. Rola tego komputera polega na odseparowaniu sieci na poziomie aplikacji, w odróżnieniu od Dual-Homed Gateway, gdzie sieci były odseparowane poprzez zastosowanie dwóch różnych kart sieciowych. Oprogramowanie serwera proxy odbiera pakiety z zewnątrz i przekazuje do sieci chronionej. Możemy postawić wiele różnych proxy serwerów na różnych maszynach zawierających oprogramowanie obsługujące poszczególne usługi sieciowe. Mechanizm ten spowalnia komunikacje, lecz jest "przezroczysty" dla użytkownika, i w odróżnieniu od Dual-Homed Gateway nie wymaga logowania się na proxy serwerze.

    Screened Host Gateway Firewall (firewall + ruter ekranujący):

    Konfiguracja ta wymaga dodania WAN rutera (z ang. Wide Area Network - sieć rozległa np. Internet) dostarczającego połączenie z siecią WAN i filtrującego pakiety. Komputer-bastion to firewall z usługami proxy i np. dodatkowym filtrowaniem pakietów i NAT-em (o NAT dalej). W konfiguracji tej zewnętrzny ruter współpracuje z komputerem-bastionem w ten sposób, że komputer pracuje w wewnętrznej, chronionej sieci, natomiast ruter tak reguluje dostęp z zewnątrz, by ten komputer był jedynym widzianym i dostępnym w sieci prywatnej od strony sieci publicznej. Odbywa się to dzięki filtrowaniu pakietów docierających do rutera. Dla użytkowników zewnętrznych jedyny znany adres IP to adres komputera-twierdzy, nie widzi on struktury sieci lokalnej. Natomiast użytkownicy wewnętrzni mają dostęp do sieci zewnętrznej tylko poprzez komputer-twierdzę.

    Konfiguracja ta jest przykładem syntezy dwóch typów firewalli: filtrowania pakietów przez ruter i firewalla poziomu aplikacji na komputerze-twierdzy z serwerem proxy.

    Screened Subnet Firewall (firewall + dwa rutery ekranujące):

    Firewall z dwoma ruterami ekranującymi stanowi dodatkową izolację sieci lokalnej. Oprócz rutera WAN dodajemy ruter LAN, kontrolujący przepływ danych w sieci lokalnej. Komputer-twierdza z proxy serwerem jest teraz umieszczony w osobnej sieci, dlatego atak ogranicza się jedynie do uderzenia na niego. Dodatkowy LAN ruter uniemożliwia także nieautoryzowany dostęp do komputera-bastionu z wnętrza sieci lokalnej. Można także skonfigurować oba rutery tak, by serwer komunikował się tylko z nimi.

    W architekturze tej, pomiędzy siecią chronioną, a siecią zewnętrzną znajduje się martwa strefa, strefa DMZ, w której ruch między sieciami jest częściowo blokowany. Dlatego na komputerze bastionie możemy udostępnić usługi publiczne dla użytkowników Internetu i lokalnych, takie jak serwer WWW, FTP, etc.




    Usługi dodatkowe firewalli

    Systemy firewall oferują wiele dodatkowych usług, które pomagają zabezpieczyć sieć bądź też przyspieszyć jej pracę. Oto niektóre z nich:





    Wady i zalety wynikające ze stosowania firewalli

    Ponieważ firewalle swoje działanie opierają na ograniczaniu ruchu sieciowego, z ich stosowania wynikają również pewne wady:

    Do najważniejszych zalet firewalli należą natomiast:





    Intrusion Detection System (IDS)

    Wprowadzenie - co to jest IDS

    Jeśli już zabezpieczyliśmy sieć komputerową przed włamaniem się (włamanie rozmumiemy tu jako sekwencje zdarzeń zagrażającą bezpieczeństwu sieci) osoby niepowołanej poprzez którąś z konfiguracji firewalla, musimy jeszcze wyposażyć sieć w system, który jeżeli jednak dojdzie do włamania do sieci, w miarę szybko wykryje włamanie, bądź nawet tylko próbę włamania i poinformuje o tym administratora. Systemem takim jest tzw. IDS, czyli z ang. Intrusion Detection System. IDS jest więc systemem, który wykrywa ataki na komputer i sieć oraz niewłaściwe użycie komputera, i wtedy informuje o tym administratora sieci. Działanie IDSu można więc porównać do alarmu zainstalowanego w domu, tak jak działanie firewalla można przyrównać do ogrodzenia i bramy, szczelnie otaczających dom. Oba systemy, IDS i firewall wzajemnie się bardzo dobrze uzupełniają, i stosowanie ich razem może w istotny sposób podnieść bezpieczeństwo sieci.



    Podstawy działania IDS

    Systemy IDS czyli systemy detekcji intruzów są to programy filtrujące pakiety przepływające w sieci jak i pliki na danym komputerze. Wiadomo, że same systemy operacyjne rejestrują niektóre ważniejsze zdarzenia zachodzące w systemie, np. Linux rejestruje zdarzenia od procesu logowania po wychodzenia z systemu, żądania połączeń, awarie sprzętowe, odmowę obsługi i polecenia użytkowników. To bardzo istotna część systemu, ale specjaliści od bezpieczeństwa wprowadzają rozwiązania jeszcze lepsze, gdyż pliki dziennika zawierają tylko ślad po czymś, co już zostało dokonane. Skuteczne wykrywanie włamań powinno odbywać się w czasie rzeczywistym, czyli w czasie, w którym program IDS wykonuje swoje czynności. Historia systemów IDS sięga już na początku lat 80. Do dziś przeprowadzono ogromną liczbę badań nad zastasowaniem tego rodzaju systemów i powstały setki różnych systemów wykrywania intruzów, ale większość z nich nie jest nawet dostępna do publicznego użytku.

    Do priorytetowych zadań wykonywanych przez systemy IDS należą:

    Zadania wykonywane przez systemy IDS zostały zdefiniowane dzięki wieloletniemu doświadczeniu różnych ludzi zajmujących się bezpieczeństwem. Zwrócili oni uwagę na to, że większość włamań do systemów komputerowych ma na celu uzyskanie poufnych danych lub w przypadku hakerów osiągnięcie uznania w hakerskim środowisku. Włamując się do systemu atakujący działa w sposób metodyczny. Typowy atak ma następujący scenariusz:

    Systemy IDS analizują przepływ informacji w newralgicznych punktach sieci. Wykrywają ataki na system zarówno podczas prób penetracji systemu poprzez detektory skanowania portów, jak również po wtargnięciu dzięki analizatorom logów i analizatorom anomalii).



    Rodzaje systemów IDS

    Obecnie możemy systemy IDS podzielić na dwa typy pod względem mechanizmu identyfikacji włamań:

    Systemy IDS podzielić można także ze względu na sposób w jaki monitorują one sieć. Tutaj znowu istnieją dwa podejścia:

    Widać więc, że oba systemy nie są doskonałe i mają swoje wady i zalety. Obu rodzajów firewalli dotyczy też jeszcze jedna wada: fałszywe alarmy. Z reguły administratorzy ustawiają opcje alarmowania sygnałem dźwiękowym w IDSie w przypadku włamania. Jeśli alarmy powtarzają się często i z reguły są fałszywe, obniża to czujność administratora, który na następne dźwięki nie reaguje tak szybko.



    Sposoby działania systemów IDS w kontekście całej sieci lokalnej

    Stosowane w systemach IDS rozwiązania z punktu widzenia działania całego systemu w sieci podzielić można na trzy kategorie:

    Host-based IDS (HIDS)

    System Host-based IDS (w skrócie HIDS) polega na zainstalowaniu na wszystkich hostach w sieci, które chcemy objąć monitorowaniem, modułów agentów. Dodatkowo w sieci istnieje jeden komputer będący konsolą zarządzania systemu HIDS, zbierający informacje od wszystkich agentów i pozwalający na monitorowanie ich pracy z poziomu jednego hosta. Każdy moduł agenta natomiast analizuje na danym hoście kluczowe pliki systemu, logi zdarzeń oraz inne sprawdzalne zasoby oraz szuka nieautoryzowanych zmian lub podejrzanej aktywności i w razie wykrycia jakiegokolwiek zdarzenia odbiegającego od normy generuje alarm lub uaktywnia pułapki SNMP (SNMP, z ang. Simple Network Monitoring Protocol - standard protokołu używanego do nadzoru i sterowania komputerami w sieci). Agent Host IDS wykorzystuje różne metody w celu wykrycia próby włamania. Przede wszystkim monitoruje próby zalogowania się do systemu i odnotowywuje każdy przypadek podania niewłaściwego hasła. Jeżeli próby użycia złego hasłą powtarzają się wielokrotnie w krótkich odstępach czasu, można podejrzewać że ktoś niepowołany próbuje zalogować się do systemu. Inną stosowaną metodą jest monitorowanie stanu ważnych plików na dysku poprzez metodę "fotografii stanów". Na początku agent rejestruje stany istotnych plików (na tej samej zasadzie jak program Tripwire). Jeśli intruz dostanie się do systemu i wykona jakieś zmiany na monitorowanych plikach, to agent wykryje to (niestety na ogół nie zostanie to wykryte w czasie rzeczywistym, czyli podczas samego aktu włamywania się do systemu).

    Większość systemów typu HIDS to systemy reaktywne. Monitorują system i w razie pojawienia się jakichś nietypowych zdarzeń podnoszą alarm. Istnieją jednak także systemy proaktywne, działające w czasie rzeczywistym. W celu zapobiegania atakom analizują one i przechwytują odwołania do jądra systemu operacyjnego lub API, a następnie rejestrują te fakty w dzienniku zdarzeń.

    Network-based IDS (NIDS)

    System Network-based IDS (w skrócie NIDS) monitoruje ruch wewnątrz sieci w czasie rzeczywistym i skupia się on wyłącznie na analizie ruchu TCP. Składa on się z sond NIDS umieszczonych w kilku newralgicznych miejscach w sieci. Sondy takie muszą być co najmniej między firewallem, a strefą DMZ oraz między chronioną siecią lokalną, a firewallem. Pracę sond koordynuje konsola zarządzająca systemem NIDS. Zbiera ona informacje od sond i poddaje je analizie, dzięki niej także administrator monitoruje działanie całej sieci z jednego miejsca. Sondy natomiast szczegółowo sprawdzają każdy pakiet przechodzący w sieci. System NIDS jest w stanie namierzyć ataki typu Denial of Service lub niebezpieczną zawartość przenoszoną w pakietach (wirusy, konie trojańskie), zanim osiągną one swoje miejsce przeznaczenia. IDS'y tego rodzaju porównują przechodzące w sieci pakiety z dostępną bazą danych sygnatur ataków. Bazy te uaktualniane są przez dostawców systemów IDS, możliwie często, w miarę pojawiania się nowych form ataków. W przypadku wykrycia podejrzanej aktywności w sieci konsola zarządzająca alarmuje administratora, czasem może także zamknąć natychmiast podejrzane połączenie. Wiele tego typu rozwiązań jest zintegrowanych bezpośrednio z firewallami w celu dodawania dla nich nowych reguł blokowania ruchu w czasie rzeczywistym, które wynikają z przeprowadzanych prób ataku na sieć lokalną. Dzięki takiemu rozwiązaniu atakujący przy kolejnej próbie ataku zostanie zatrzymany już na firewallu. Rozwiązania IDS oparte na metodzie sieciowej funkcjonują w tzw. trybie rozrzutnym (promiscous mode - tak jak sniffery). Polega to na przeglądaniu przez sondę NIDS każdego pakietu w kontrolowanym segmencie sieci, bez względu na jego adres przeznaczenia. Z uwagi na dość duże obciążenie, jakie niesie ze sobą przeglądanie każdego pakietu, sonda NIDS to zazwyczaj dedykowany host, specjalnie do tego przeznaczony.

    Sieciowe IDSy, chociaż generalnie skuteczniejsze i oferujące lepszy stopień bezpieczeństwa, niż HIDS, mają jednak dość znaczące wady. Nie są one kompatybilne z sieciami przesyłającymi zaszyfrowane dane. Nie są także w stanie pracować w sieciach o bardzo szybkim ruchu, już w sieci o prędkości 400Mbit/s dość znacząco spowalniają jej działanie, dlatego do sieci szybszych nie jest już używany. Systemy NIDS, by nie stać się wąskim gardłem sieci, a jednocześnie nadążać za ruchem pakietów często tylko powierzchownie analizują ich treść, np. ograniczając się do zwykłego filtrowania pakietów jak ruter ekranujący.

    Network Node IDS (NNIDS)

    Network Node IDS (w skrócie NNIDS) jest to typ agenta IDS, stanowiący rozwiązanie będące hybrydą hostowego oraz sieciowego IDS'a. Podobny jest pod względem architektury do HIDS, gdyż podobnie jak tam NNIDS składa się z agentów - węzłów sieci, umieszczonych na różnych hostach w sieci lokalnej i kontrolowanych przez jedną centralną konsolę zarządzającą, monitorującą całą sieć. Jednak agenci ci zamiast skupiać się na monitorowaniu plików logu, czy analizie zachowań, tak jak to czyniły systemy HIDS działają raczej w sposób podobny do NIDS - analizują przepływ pakietów w sieci. Pakiety te są następnie porównywane z sygnaturami ataków z bazy danych w identyczny sposób jak sieciowe IDS'y. Różnica tkwi w tym, że o ile NIDS działały w trybie "rozrzutnym", analizując cały ruch w danym segmencie sieci, tak węzłowe IDS'y skupiają się tylko na wybranych pakietach sieci - tylko tych adresowanych do danego węzła, na którym agent rezyduje.

    Z powyższych powodów NNIDS pozbawiony jest niektórych ograniczeń sieciowych rozwiązań IDS, ponieważ pracują one znacznie szybciej i wydajniej. Pozwala to na instalowanie ich na istniejących serwerach bez obawy ich przeciążenia. Nie istnieją poza tym tak duże ograniczenia co do prędkości ruchu w sieci, systemy NNIDS z powodzeniem działają w sieciach szybszych niż 400Mbit/s, a także w sieciach z szyfrowaniem przesyłanych danych. Rozwiązanie hybrydowe jest obecnie najpopularniejszym rozwiązaniem w zakresie systemów detekcji intruzów.




    Doskonalenie technik detekcji przez systemy IDS

    Wysokiej klasy systemy IDS wykorzystują wiele rozmaitych metod rozpoznawania ataków i innych nadużyć w sieci lokalnej. Metody detekcji ataków włączane są w zależności od kontrolowanego ruchu sieciowego, zaś dane są przetwarzane współbieżnie w czasie rzeczywistym przez poszczególne metody detekcji. Taka polityka zapewnia wysoką wykrywalność ataków bez obniżania wydajności. Omówimy teraz współcześnie stosowane technologie wspomagające detekcję ataków stosowane w systemach IDS na przykładzie systemu zabezpieczeń OneSecure (obecnie nazywa się NetScreen IDP):

    Kolejną własnością współczesnych systemów IDS są graficzne konsole do zarządzania całym układem zabezpieczeń. Mimo, że wyglądają z pozoru na efektowny gadżet, ich rola jest niebagatelna. Przedstawiają one bowiem w syntetycznej formie spójne informacje zebrane z różnych, często dość odległych miejsc, przez agentów lub sondy IDS. W praktyce liczba zdarzeń rejestrowanych przez poszczególnych agentów/sondy jest na tyle duża, że możliwości pojedynczego człowieka nie pozwalają na sprawną ich analizę bez specjalistycznych narzędzi i wcześniejszej obróbki. Odpowiednie narzędzia administracyjne dostępne z poziomu konsoli, przedstawiające te informacje w syntetycznej formie, pozwalają zapanować nad tym natłokiem informacji i ułatwiają podejmowanie decyzji szczególnie w sytuacji awaryjnej. W najnowszych systemach konsole takie potrafią zbierać i interpretować informacje z różnego typu systemów zabezpieczających: IDS, skanerów zabezpieczeń, firewalli oraz wykonywać korelacje pomiędzy rejestrowanymi przez nie zdarzeniami.



    Intrusion Prevention System (IPS)

    Wprowadzenie - nowe zagrożenia bezpieczeństwa w Internecie

    Zabezpieczenie sieci lokalnej poprzez firewall połączony z systemem IDS może w obecnych czasach okazać się niezbyt skutecznym rozwiązaniem. Wraz z rozwojem technologii sieciowych, a zwłaszcza zwiększeniem dostępności aplikacji w rozległym środowisku sieciowym, powstało mnóstwo nowych zagrożeń, dla których tradycyjne systemy zabezpieczeń okazały się niewystarczające. W obecnych czasach włamania do systemu komputerowego wykonują nie tylko ludzie, ale także specjalnie do tego celu zaprogramowane aplikacje - exploity czyli tzw. robaki internetowe. Są to programy wykorzystujące dziury w istniejącym oprogramowaniu. Najczęściej atakują poprzez techniki w rodzaju przepełnienia bufora, czy ataków SQL. Exploit wykorzystuje występującą w danej aplikacji dziurę, wykonując odpowiednio spreparowany kod (ang. shellcode) i następnie przejmuje nad nią kontrolę. Robaki internetowe takie jak Blaster, Slapper, Slammer, czy Sasser wykorzystując proste błędy systemów operacyjnych i aplikacji były w stanie w ciągu kilku godzin zainfekować miliony komputerów. Powstały także robaki bez problemów przełamujące obronę nie przygotowanych na to systemów IDS, jak np. Witty.



    Ewolucja systemów IDS

    Projektanci systemów zabezpieczeń, dostrzegając nowe zagrożenia starali się dostosować istniejące urządzenia do większych wymogów bezpieczeństwa. Można było zauważyć dwie tendencje: projektowanie firewalli wyposażonych w dodatkowe funkcje wykrywania prób ataków oraz IDS'y stosowane w roli tradycyjnie zarezerwowanej dla firewalli. Oba podejścia zaczęły się przenikać, co świetnie widać na przykładzie liderów technologii IDS i firewall. W ten sposób zaczęto mówić o nowym typie zabezpieczenia - systemie IPS (z ang. Intrusion Prevention System). W dużym uproszczeniu można powiedzieć, że są to systemy IDS, ale wyposażone w możliwości aktywnej reakcji na wykryte niepokojące zdarzenia. Pierwszym krokiem ku systemom IPS, umożliwiającym aktywną reakcję systemowi IDS była technologia przerywania połączeń (TCP Reset), co pozwala w przypadku wykrycia podejrzanego połączenia TCP przerwać je poprzez podszycie się pod stronę atakującą i wysłanie pakietu TCP z flagą RST (Reset), co oznacza zakończenie połączenia. Tak więc atakowany serwer zakończy połączenie i atak nie będzie mógł dojść do skutku. Technika ta działa przy atakach angażujących całą sesję TCP, ale nie zadziała np. dla ataków składających się z jednego pakietu, czy ataków poprzez inne protokoły niż TCP, zwłaszcza protokoły bezstanowe, jak np. UDP. Inną metodą stosowaną w IDS'ach był mechanizm rekonfiguracji firewalla (Firewall Signaling) w czasie rzeczywistym w przypadku zaistnienia ataku, w celu zablokowania niepożądanego adresu IP, z którego był dokonany atak.



    Możliwości systemów IPS

    Wymienione wcześniej metody przerywania połączeń oraz rekonfiguracji firewalla są już zupełnie nieskuteczne, a współczesne systemy IPS stosują znacznie bardziej zaawansowane metody prewencji, takie jak:

    Powyższe cechy charaktyrystyczne są dla sieciowej wersji IPS'ów (Network IPS). Oprócz sieciowych rozwiązań dostępne są także Host IPS. Różnica między nimi jest analogiczna do sieciowych i hostowych IDS'ów. Jednak hostowe IPS'y nie przyjęły się w powszechnym zastosowaniu, ponieważ stwarzają problemy ze stabilnością pracy chronionych serwerów. Wynika to z tego, że oprogramowanie Host IPS jest instalowane bezpośrednio na serwerach i przez to dodatkowo je obciąża i może powodować zakłócenia w ich pracy. Poza tym hostowe IPS nie blokują wielu ataków.



    Rodzaje systemów IPS

    Pod pojęciem IPS możemy rozumieć każde urządzenie będące w stanie wykryć próbę przeprowadzenia ataku i udaremnić ten atak. W tym ujęciu niektóre rodzaje firewalli też możemy uznać za systemy IPS. Przyjrzymy się teraz pięciu rodzajom urządzeń, działających wg. powyższej zasady, dlatego stanowiącymi rodzaj IDS'ów, jednak pracujących w sposób dla obecnych firewalli niedostępny. Rozwiązania te są relatywnie nowe, każde z nich pracuje w inny sposób, ale cel jest ten sam - wykryć i udaremnić próbę przeprowadzenia ataku.

    Inline IDS

    Inline IDS podobny jest do sieciowego IDS'a, o ile jednak tradycyjny IDS wykorzystuje jedną kartę sieciową, która pełni rolę sondy wpinanej w monitorowaną sieć lokalna, tak inline IDS skłaa się z dwóch kart: zewnętrznej i wewnętrznej. Pierwsza służy do zwykłych zastosowań, czyli normalnego przesyłu pakietów w sieci, tak druga wykorzystywana jest wyłącznie do wykrywania zagrożeń w systemie informatycznym. Karta monitorująca nie posiada przypisanego adresu IP i jest przezroczysta dla reszty systemu. Oznacza to, że nie można skierować do niej żadnego pakietu, ani poprosić ją o odpowiedź. Cały ruch sieciowy przechodzi przez inline IDS, który monitoruje pakiety szukając w nich podobieństw do wzorców sygnatur. Są nawet rozwiązania idące o krok dalej, takie jak HogWash, które potrafią zmienić treść złośliwych pakietów, tak aby nie mogły działać na niekorzyść systemu (tzw. packet scrubbing). Sposób ten zapewnia, że atakujący nie będzie nawet wiedział, że jego próby są nieudane, zaś w tym samym czasie broniący się będzie mógł zebrać więcej dowodów i odpowiednio zabezpieczyć się przed ponownym atakiem.

    Inline IDS w budowie przypomina firewalla, jednakże w działaniu bardziej IDS. W środku urządzenia działa silnik IDS, wykrywający i blokujący ataki. Urządzenie pełni również funkcje charakterystyczne dla firewalli jednakże jednakże w trochę inny sposób. Firewalle bowiem to technologia restryktywna, działająca wg. polityki:" "wszystko co nie jest dozwolone, jest zabronione". Blokują one wszystkie pakiety prócz tych dozwolonych poprzez reguły danego firewalla. Natomiast istotą działania IDS'ów jest wykrywanie prób ataku, dlatego inline IDS chociaż umieszczony w tym samym miejscu co firewall, przepuszcza cały ruch z wyjątkiem tego co uzna za próbę ataku.

    W przypadku inline IDS klasyfikacja ruchu sieciowego jest dużo bardziej zaawansowana, niż w firewallach. Inline IDS stosują do tego celu mnóstwo zaawansowanych technologii, zamiast opierać się na zwykłym zestawie reguł, czy serwerach pośredniczących. Ogólnie IDS analizuje ruch TCP i dopasowywuje przesyłane pakiety do sygnatur ataków. Nie opiera się jednak wyłącznie na bazie sygnatur, lecz na jej podstawie potrafi także wykryć ataki do nich podobne. Inaczej bowiem IDS'y byłyby łatwe do obejścia, przykładowo jeśli IDS analizowałby zapytania SQL, to wstawienie jednej lub więcej spacji spowodowałoby brak dopasowania reguły i udałoby się obejść całe zabezpieczenie. Nowoczesne inline IDS stosują całe mnóstwo zaawansowanych technik detekcji prób ataku, takich jak np. normalizatory i interpretery poszczególnych protokołów, sygnatury opisowe w miejsce konkretnych wzorców (wyżej opisane), oraz metody heurystyczne.

    Podobnie do sieciowego IDS'a inline IDS może monitorować działanie wielu serwerów i całego segmentu sieci z jednej maszyny. Pociąga to za sobą pewne wady. Po pierwsze w przypadku awarii systemu z IDS'em rych sieciowy nie musi już przepływać przez to urządzenie i przestaje być kontrolowany. Systemy IDS najlepiej przystosowane są do pracy z popularnymi, powszechnymi w użyciu aplikacjami takimi jak np. Apache, Microsoft Internet Information Service. Wówczas zabezpieczają luki w tych programach, oraz ich złe skonfigurowanie. Z pozostałymi, mniej popularnymi aplikacjami także współpracują oferując jednak podstawową ochronę, nie dostosowaną specjalnie do tej aplikacji. Nadal jednak stanowią jedno z lepszych rozwiązań w zakresie bezpieczeństwa, zwłaszcza dla urządzeń i aplikacji, dla których nie istnieje dedykowane zabezpieczenie i które zabezpieczyć trudno czyli np. IBM AS400, Tandem, mainframe'y i duże serwery.

    Mimo wyżej wymienionych zalet technologia inline IDS nie zastępuje firewalla, lecz tylko go uzupełnia. Wynika to ze wspomnianej wcześniej restryktywności firewalli, która jest potrzebna w dobrze zabezpieczonej sieci, lecz która nie jest możliwa do zrealizowania w inline IPS'ach. Z tych powodów rynek systemów IPS (w tym inline IDS) będzie prawdopodobnie rozwijał się w kierunku rozwiązań hybrydowych, w których funkcjonalność inline IDS będzie uzupełniana tradycyjnym firewallem typu stateful inspection (analiza stanu połączeń). Ponadto wykorzystywane metody obrony uzależnione będą od miejsca, w którym dane urządzenie jest zainstalowane. Na przykład na zewnętrznym styku sieci z Internetem będzie działał IPS wykorzystujący inline IDS i zintegrowany firewall, zaś wewnątrz sieci IPS zintegrowany w switchu (o switchach dalej) bazujący na technologii wieloportowego inline IDS.

    Switche warstwy siódmej (z ang. layer seven switches)

    Tradycyjne switche (przełączniki) są urządzeniami operującymi na drugiej warstwie modelu OSI, czyli warstwie łącza danych. Layer seven switches, zwane również content switches, jak sama nazwa wskazuje operują na wartwie siódmej OSI czyli warstwie aplikacji. Powstały one wskutek znacznego wzrostu wymagań przepustowości łączy i szybkości operacji przesyłu danych.

    Najczęstszym zastosowaniem tego rodzaju switchy jest więc równoważenie obciążenia powodowanego przez daną usługę sieciową, np. serwis WWW, sklep internetowy, serwer FTP, DNS, etc. Do tego typu usług chce mieć dostęp mnóśtwo ludzi z całego świata jednocześnie. Dlatego firmy udostępniające daną usługę instalują kilka serwerów ją oferujących i następnie starają się je w miarę równomiernie obciązać, by prędkość przesyłu była jak najszybsza. Procesem wysyłania żądania danej usługi mogą zajmować się właśnie przełączniki siódmej warstwy. Ich zadaniem jest skierowanie żądania klienta do właściwego serwera lub urządzenia typu cache. Decyzja o tym, do którego serwera skierować żądanie podejmowana jest w oparciu o szereg konfigurowalnych parametrów:

    Co więcej, w sytuacji, gdy wszystkie dostępne serwery są przeciążone przełącznik jest w stanie uruchomić dodatkowe serwery lub urządzenia typu cache, o ile takowe są dostępne, i skopiować na nie szczególnie często żądane pliki, a następnie dodać je do farmy serwerów do czasu zmniejszenia obciążenia głównych serwerów.

    Stosowanie content switcha pozwala zatem zminimalizować czas odpowiedzi od serwera w sposób zauważalny przez klienta oraz wyeliminować okresy niedostępności usług. Wiadomo jak ważne są to korzyści w przypadku firm prowadzących w Internecie działalność komercyjną.

    Jednakże przełączniki siódmej warstwy stanowią także dodatkowe zabezpieczenie sieci. Umieszczony przed firewallem switch tego rodzaju pracuje jak wieloportowy inline IDS, który tak jak wyżej tego typu IDS'y monitoruje przesyłane pakiety danych i porównuje je z bazą danych sygnatur ataków. Switch ten został stworzony do pracy w sieciach z dużymi prędkościami przesyłu danych, rzędu nawet kilku Gbps. Co więcej, potrafi także zablokować ataki typu Denial of Service i Distributed Denial of Service, nie wpływając na działanie reszty sieci, co jest cechą wyjątkową nawet w przypadku systemów IPS. Niestety podobnie jak inline IDS switch warstwy aplikacji nie potrafi powstrzymać ataków, których sygnatur nie ma w swojej bazie, ale urządzenie jest w pełni konfigurowywalne i bazę danych z atakami można aktualizować software'owo.

    Software'owe systemy firewall/IDS

    Software'owe systemy spełniające funkcje firewalla i IDS'a, są z reguły traktowane jako systemy IPS, niż tradycyjne IDS'y. Aplikacja tego typu powinna być zainstalowana na każdym hoście, który ma być chroniony. Rozwiązanie takie jest co prawda bardzo pracochłonne przy konfiguracji i konserwacji, gdyż na każdym hoście z osobna trzeba skonfigurować aplikację, co jak się zaraz przekonamy jest czynnością dość żmudną. Jednak z drugiej strony po zastosowaniu tego rodzaju aplikacji bezpieczeństwo systemu znacznie podniesie się.

    IPS tego rodzaju nie zajmuje się analizowaniem pakietów przepływających w sieci. Jako jedyny z tutaj wymienionych rodzajów podejść do systemu IPS, dostosowywuje ochronę do każdej poszczególnej aplikacji na hoście, poprzez sprawdzanie wywołań API, monitorowanie pamięci (w celu wykrycia próby ataku poprzez przepełnienie bufora) oraz badanie interakcji aplikacji z systemem operacyjnym.

    Na początku aplikacja typu firewall/IDS tworzy profil systemu. Określa jak wygląda zwyczajna aktywność użytkownika w systemie, podgląda interakcje użytkownika z oprogramowaniem oraz oprogramowania z systemem operacyjnym i zapisuje je w formie reguł, po to by móc potem stwierdzić zdarzenia odbiegające od normy. Z tego też powodu samo konfigurowanie jest czynnością ciężką. Trzeba bowiem wykonać wszystkie dozwolone aspekty użycia danej aplikacji, dla każdej aplikacji znajdującej się w systemie, tak aby potem IPS nie zrozumiał prawidłowego, lecz nie zdefiniowanego w czasie konfiguracji użycia aplikacji jako anomalii i próby ataku. Co więcej przy zainstalowaniu nowej aplikacji, bądź nowej wersji starej należy od nowa stworzyć jej profil w systemie IPS.

    O systemach tego typu mówi się, że są typu "file close", co oznacza, że jeśli w jakiejś aplikacji została podjęta akcja, dla której nie istnieje reguła w systemie IPS, to IPS ją anuluje. Systemy takie zabezpieczają także przed błędami w aplikacji, gdyż sytuacja błędu nie została raczej wcześniej zdefiniowana i zostanie potraktowana jako anomalia i anulowana. No i oczywiście IPS ten zabezpiecza przed nieznanymi atakami, obojętnie czy z Internetu, czy z sieci lokalnej. Dlatego software'owe firewalle/IDS'y są jednymi z najsilniejszych systemów typu IPS, oferujących największe bezpieczeństwo. IPS zajmuje się ochroną każdej aplikacji z osobna, dzięki czemu działa dużo dokładniej, kosztem jednak znacznego nakładu pracy podczas i późniejszych każdorazowych rekonfiguracji aplikacji na każdym hoście z osobna.

    Switche hybrydowe

    Switche hybrydowe, jak mówi sama nazwa, są hybrydą switchy warstwy aplikacji oraz software'owych systemów typu firewall/IDS. Są to rozwiązania sprzętowe, podobnie jak przełączniki siódmej warstwy umieszczone przed firewallem. Jednak zamiast badać każdy pakiet i przyrównywać do sygnatur z bazy, działają podobnie do aplikacyjnych firewalli/IDS'ów. Na początku poszczególne aplikacje na hostach, przed którymi stoi switch, są skanowane w poszukiwaniu słabych punktów bezpieczeństwa i metod jego zachowywania. Następnie informacje z takiego skanu są importowane bezpośrednio do switcha, który na tej podstawie opracowywuje odpowiednią politykę bezpieczeństwa i metody postępowania z danymi aplikacjami. Takie postępowanie oszczędza czas pracy administratora systemu, zużyty na konfigurację polityki switcha ochrony poszczególnych aplikacji. Następnie, podczas normalnego użycia, switch monitoruje przesyłane pakiety w poszukiwaniu podejrzanej, potencjalnie złośliwej zawartości w kontekście reguł zdefiniowanych przy skonfigurowaniu switcha. Przykładem takiej złośliwej zawartości pakietu może być żądanie pobrania pliku z hasłami danej aplikacji. Switch przy konfigurowaniu wykrył, że plik ten jest słabym punktem tej aplikacji i nie zezwolił na wysyłanie tego pliku.

    Przełaczniki hybrydowe mogą np. posłużyć do ochrony serwera WWW. Wówczas switch przechowuje dokładną wiedzę o serwerze i aplikacjach, na nim działających. Jest to też system typu "fail close", gdyż jeśli żadne żądanie klienta nie jest dozwolone, żadna akcja się nie wykona. Jeżeli sam switch jest podłączony do sieci o dużym przepływie danych i staje się jej wąskim gardłem, można go połączyć z przełącznikiem warstwy aplikacji. Wówczas najpier jest switch siódmego poziomu, analizujący pakiety, i jeśli jakiś pakiet jest podejrzany, to przesyła go dalej do switcha hybrydowego, by ten zdecydował co z nim zrobić, natomiast jeśli nie jest podejrzany to idzie dalej omijając switch hybrydowy. Takie rozwiązanie znacznie redukuje ilość pakietów analizowanych przez przełącznik hybrydowy i odciąża go.

    Aplikacje oszukujące

    Ten rodzaj IPS, zwany po ang. deceptive applications, reprezentuje trochę inne podejście do zagadnienia, niż pozostałe systemy IPS. Idea tej technologii powstała w 1998, więc nie jest ona nowa. Jest to rozwiązanie software'owe, opierające się na zwodzeniu intruza. Na początku, w fazie konfiguracji, analogicznie do konfiguracji systemów aplikacyjnych typu firewall/IDS, aplikacja monitoruje ruch TCP w sieci i wprowadza reguły dla występujących rodzajów połączeń (adresy IP i numery portów TCP używanych połączeń). Adresy z portami nie znajdujące się na liście będą traktowane podejrzliwie. W przypadku próby połączenia przez taki adres (np. przez intruza skanującego porty) i port, zostanie mu odesłany specjalny, zamarkowany nieistotnymi danymi pakiet, w ten sposób, że jeśli atakujący wróci i będzie chciał zaatakować serwer, IPS zauważy zamarkowane dane i zablokuje połączenie z intruzem. Intruz widząc fałszywy serwer, nie będzie już atakował.

    Podsumowanie

    Przedstawione wyżej pięć zupełnie różnych realizacji systemu prewencji IPS pokazuje, w jak różnych kierunkach systemy tego typu się rozwijają. Są to idee dość nowe i stale rozwiją się oraz powstają nowe. Mimo, że celem każdego systemu IPS jest rozpoznanie i zareagowanie na atak, każda z koncepcji realizuje ten cel zupełnie innymi metodami. Co więcej niektóre z nich można łączyć w celu jeszcze osiągnięcia jeszcze większego stopnia bezpieczeństwa. Zastosowanie konkretnej realizacji idei IPS, zależy od własnych potrzeb, nie ma rozwiązań uniwersalnych. I tak możemy przed firewallem zainstalować przełącznik siódmej warstwy, chroniący przed atakami DoS i atakami o znanych sygnaturach, następnie przełącznik hybrydowy, bądź aplikacyjny system typu firewall/IPS do ochrony serwerów WWW wewnątrz sieci, oraz inline IDS do ochrony stacji roboczych AS400.



    Kerberos

    Wprowadzenie - co to jest Kerberos

    Kerberos jest to system uwiarygodniania i autoryzacji. Powstał w 1980 roku w laboratorium komputerowym instytutu MIT. Sama nazwa pochodzi od imienia Cerber - trzygłowego psa strzegącego bram Hadesu. Reprezentuje on trochę inne podejście do zagadnienia ochrony danych w sieci lokalnej, niż wcześniej omówione rodzaje zabezpieczeń. Idea opiera się na dość prostej zasadzie. W systemie Kerberos zakłada się, że cała sieć jest jednym wielkim obszarem ryzyka, poza jednym serwerem (czasem nawet dwoma serwerami lub całą grupą). Serwer ten zwany jest dalej bezpiecznym serwerem (np. w instytucie MIT komputer ten nosi nazwę kerberos.mit.edu). Wyposażony jest w niezwykle sprawne zabezpieczenia przed włamaniami zarówno z sieci lokalnej, jak i publicznej. Powinien być umieszczony w pokoju chronionym przez 24 godziny na dobę, by nikt niepowołany nie uzyskał do niego fizaycznego dostępu. Na komputerze tym znajduje się baza danych zawierająca informacje o hasłach i prawach dostępu każdego użytkownika w danym systemie informatycznym. Wszystkie komputery i użytkownicy sieci działają tylko na podstawie danych dostarczanych przez ten serwer. W systemie Kerberos serwer ten, jest jedynym serwerem w sieci, który może dostarczać programom sieciowym informacje związane z dostępem. Dla serwerów działających w systemie Kerberos oraz pracujących w nim użytkowników wszystkie pozostałe elementy sieci są niepewne. Sama idea systemu opiera się na zasadzie upraszczania. Nie zabezpieczamy całej sieci lokalnej i wszystkich jej elementów z osobna, lecz ochrona całej sieci skupiona jest na jednym komputerze. Opiera się to na obserwacji, że łatwiej i taniej jest utrzymać jeden całkowicie bezpieczny serwer, niż zabezpieczać całą sieć.



    Schemat działania systemu Kerberos

    Sposób działania systemu Kerberos zależy od zastosowanej jego implementacji. Przedstawię wersję z dwoma bezpiecznymi serwerami.

    Kerberos umożliwia przeprowadzenie uwierzytelnienia zarówno przesyłanych komunikatów, jak i stron nawiązujących komunikację. Sam proces uwierzytelniania odbywa się za pośrednictwem tzw. centrum dystrybucji klucza czyli KDC (z ang. Key Distribution Center). Centrum to stanowią dwa bezpieczne, niezależne od siebie serwery: serwer uwierzytelniania AS (z ang. Authentification Server) oraz serwer przyznający bilety TGS (Ticket Granting Server). Serwer AS przechowuje hasła wszystkich użytkowników sieci, zaś serwer TGS zajmuje się weryfikacją i organizacją dostępu użytkowników do zasobów sieci.

    Typowy proces uwierzytelnienia w systemie Kerberos wygląda następująco:

    1. Klient chcący się uwierzytelnić u określonego dostawcy usług lub na danym serwerze z zasobami, zwraca się do serwera autentyfikacji AS z prośbą o dostęp. Wysyła zatem wiadomość zaszyfrowaną kluczem opartym na haśle użytkownika.
    2. Serwer AS sprawdza w swojej bazie uprawnienia klienta do żądanego serwera, po czym w przypadku posiadania przez klienta takowych praw przyznaje tzw. bilet na przyznanie biletu czyli TGT (z ang. ticket granting ticket). Następnie wynik całej operacji czyli bilet TGT wraz z kluczem sesji jest szyfrowany kluczem opartym na haśle użytkownika i odsyłany z powrotem do klienta.
    3. Klient, korzystając ponownie ze swojego hasła użytkownika, rozszyfrowywuje otrzymane dane. Dzięki takiemu podejściu hasło w żadnym momencie nie jest przesyłane przez sieć.
    4. Klient, po wcześniejszym zaszyfrowaniu przesyłki kluczem sesji, przesyła do serwera TGS otrzymany bilet TGT wraz z tzw. wartością uwierzytelniającą, zawierającą nazwę użytkownika, (a dokładniej identyfikator klucza sesji), adres sieciowy i stempel czasowy.
    5. Serwer TGT rozszyfrowywuje przesyłkę i weryfikuje żądanie.
    6. W przypadku pozytywnej weryfikacji tworzy bilet do żądanego serwera i odsyła go do klienta.
    7. Klient, po odebraniu biletu, może się już zwrócić do żądanego serwera. Musi mu wówczas wysłać bilet wraz z wartością uwierzytelniającą. Serwer również zwraca wartość uwierzytelniającą, jeśli wymagane jest obustronne uwierzytelnienie.

    Klient może otrzymany bilet TGT ponownie użyć, w celu otrzymania biletów do innych serwerów systemu. Ważne jest to, że klient uwierzytelnia się na kolejnych serwerach bez konieczności podawania swojego hasła, do uwierzytelnienia wystarczy przesłanie biletu. Zaletą tego rozwiązania jest to, ze użytkownik nie musi zdradzać hasła w nieznanym bliżej serwerze, który jest w końcu w obszarze ryzyka danej sieci. Serwer zaś może wpuścić użytkownika, bez podania hasłą, tylko na podstawie biletu, gdyż obie strony: użytkownik i serwer ufają centrum dystrybucji kluczy KDC. Zatem obie strony mogą się wzajemnie uwierzytelnić. Dla użytkownika istotne jest to, że musi on tylko raz podać swoje hasło, przy autentyfikacji na serwerze AS. Potem otrzymuje on bilet TGT i od tej chwili ma dostęp do zdalnych serwerów bez konieczności podawania hasła, gdyż nie jest ono wymagane do otrzymania biletu na konkretny serwer.



    Środowisko i sposób działania systemu Kerberos

    System Kerberos stanowi metodę weryfikowania tożsamości użytkowników w sieciach otwartych (nie zabezpieczonych). Weryfikacja tożsamości użytkowników w systemie odbywa się bez użycia mechanizmów uwiarygodniania systemu operacyjnego odległego komputera głównego oraz nie wymaga, aby wszystkie komputery główne w sieci były fizycznie wyposażone w systemy ochrony. Co więcej, system Kerberos zakłada, że każdy użytkownik może odczytywać i modyfikować pakiety przesyłane w sieci oraz dodawać nowe. Innymi słowy, w systemie tym cała sieć, oprócz serwera Kerberos, jest traktowana jako jeden wielki obszar zwiększonego ryzyka. System dopuszcza możliwość podglądania wszystkich transakcji przez hakerów i ich ciągłe próby włamania się do sieci.

    Tak więc Kerberos dokonuje uwiarygodniania transakcji działając zgodnie z tymi niedoskonałymi założeniami. System ten jest po prostu dodatkową bezpieczną usługą uwiarygodniania. Samo uwiarygodnianie transakcji odbywa się przy zastosowaniu tradycyjnych metod kryptograficznych, czyli z użyciem wspólnego klucza tajnego. Ważnym założeniem systemu jest to , że klucz ten jest wymieniany między dwiema stronami połączenia jeszcze przed rozpoczęciem przesyłania danych za pośrednictwem bezpiecznego kanału. Klucze te określa się jako wspólne klucze tajne, ponieważ podczas ich używania poufne informacje są wspólne dla dwóch (lub więcej) stron. Nie należy jednak mylić klucza tajnego z kluczem prywatnym używanym w systemach kryptograficznych, gdyż oba pojęcia oznaczają co innego. Klucz prywatny powinien znać tylko użytkownik, do którego ten klucz należy i nikt więcej. Wspólny klucz tajny zaś znają co najmniej dwie strony (użytkownik, chcący się uwierzytelnić i serwer).

    System Kerberos korzysta z jednego lub kilku serwerów uwiarygodniania (bezpiecznych serwerów) działających na zabezpieczonych fizycznie komputerach głównych. Serwery uwiarygodniania zawierają bazę danych z informacjami o użytkownikach. Baza taka zawiera spis wszystkich użytkowników i serwerów, a także wspólny klucz tajny i klucz publiczny każdego użytkownika.

    Biblioteki źródłowe systemu dostarczają gotowe mechanizmy szyfrowania i implementują protokół Kerberos. W każdej aplikacji, która musi się uwierzytelnić przez system Kerberos musimy wprowadzić odwołania do biblioteki Kerberos. Biblioteka ta udostępnia aplikacjom funkcje uwiarygodniania przesyłanych danych. Typowa aplikacja sieciowa, aby się uwiarygodnić musi wysyłać jedno lub dwa zapytania do biblioteki Kerberos. Wprowadzanie w aplikacjach odwołań do biblioteki Kerberos nosi nazwę kerberyzowania aplikacji.



    Konieczne założenia czynione przez system Kerberos

    System Kerberos opiera swoje działanie na tym, że pracuje w sieci stanowiącej jeden duży obszar zwiększonego ryzyka. Aby jednak Kerberos spełniał właściwie swoje zadania trzeba spełnić kilka dodatkowych założeń. Założenia te precyzują jak powinno wyglądać środowisko, w którym może on właściwie funkcjonować. Ich niespełnienie może osłabić bezpieczeństwo i odsłonić przed włamywaczami potencjalne czułe punkty systemu.





    Znane słabe punkty systemu Kerberos

    Jak wiadomo, system Kerberos wydaje uwiarygodnienie na podstawie identyfikatora logowania użytkownika i wspólnego klucza tajnego. Z takim rozwiązaniem wiąże się niebezpieczeństwo oszukania serwera przez hakera. Włamywacz może bowiem sprawić, że bezpieczny serwer będzie go traktował jak uprawnionego użytkownika i wówczas uzyska wszelkie prawa dostępu. Na przykład przy wysyłaniu do bezpiecznego serwera wiadomości z prośbą o przyznanie prawa dostępu do serwera plików, haker może ją przechwycić i przesłać ją następnie do bezpiecznego serwera. Wówczas serwer uzna, że to uprawniony użytkownik zażądał uwiarygodnienia, i haker uzyska dostęp. Jedną z prób wyeliminowania możliwości takiego ataku, było wprowadzenie przez twórców Kerberosa mechanizmu znaczników (stempli) czasowych. Mechanizm ten zapewnia, że wszystkie wiadomości otrzymywane przez bezpieczny serwer zawierają datę i czas. Bezpieczny serwer odrzuca wówczas wszystkie te wiadomości, które są przestarzałe o co najmniej 5 minut. Mechanizm znaczników czasu pomaga zapobiec wielu działaniom osób nieuprawnionych.

    Nadal jednak system Kerberos pozostaje niezwykle wrażliwy na atak poprzez rozszyfrowywanie poza siecią. Włamywacz może przechwycić wiadomość z odpowiedzią serwera przesłaną do użytkownika. Wiadomość taka zawiera bilet i zaszyfrowana jest przy użyciu publicznego klucza użytkownika). Dlatego może on próbować odszyfrować wiadomość poprzez odgadnięcie klucza prywatnego. Włamywacz może także wzmocnić atak poprzez obserwację przesyłanych wiadomości od dłuższego czasu i w celu zdobycia klucza prywatnego zastosować metodę ataku czasowego. Jeśli mu się powiedzie i odczyta wiadomość (znacznik czasu lub adres sieciowy), to może złamać klucz prywatny.