wsei-2006-trynka

Transkrypt

wsei-2006-trynka
WYśSZA SZKOŁA EKONOMII I
INFORMATYKI W KRAKOWIE
Wydział Ekonomii i Zarządzania
Bartłomiej Trynka
Metody ochrony przed
włamaniami do systemu
informatycznego
Praca dyplomowa napisana
pod kierunkiem
dr inŜ. Tadeusza Wilusza
Kraków • 2006
Spis treści
WSTĘP........................................................................................................................................................ 4
1.
CHARAKTERYSTYKA NAJWAśNIEJSZYCH METOD ATAKÓW SIECIOWYCH.......... 5
1.1
KLASYFIKACJA ATAKÓW ........................................................................................................... 5
1.2
ATAKI AKTYWNE ....................................................................................................................... 7
1.2.1
PODSZYWANIE (SPOOFING) ................................................................................................... 7
1.2.2
PRZECHWYCENIE SESJI (HIJACKING).................................................................................... 11
1.2.3
ATAKI BLOKADY USŁUG...................................................................................................... 12
1.2.4
KONIE TROJAŃSKIE I TYLNE WEJŚCIA .................................................................................. 16
1.3
2.
1.3.1
SKANOWANIE SIECI ............................................................................................................. 20
1.3.2
PODSŁUCHIWANIE (SNIFFING) ............................................................................................. 21
1.3.3
KRADZIEśE HASEŁ .............................................................................................................. 24
1.4
BŁĘDY W OPROGRAMOWANIU.................................................................................................. 26
1.5
SOCJOTECHNIKA (SOCIAL ENGINEERING) ................................................................................ 28
PRZEGLĄD NARZĘDZI ATAKU............................................................................................... 30
2.1
NMAP - SKANOWANIE PORTÓW I HOSTÓW W SIECI ................................................................... 30
2.1.1
WYSZUKIWANIE HOSTÓW ................................................................................................... 30
2.1.2
SKANOWANIE PORTÓW TCP ............................................................................................... 31
2.1.3
SKANOWANIE PORTÓW UDP............................................................................................... 33
2.1.4
INNE FUNKCJE PROGRAMU .................................................................................................. 34
2.2
3.
ATAKI PASYWNE ...................................................................................................................... 19
JOHN THE RIPPER - ATAK NA HASŁA......................................................................................... 35
2.2.1
ATAK SŁOWNIKOWY NA HASŁO........................................................................................... 36
2.2.2
METODA SIŁOWA (BRUTE FORCE) ....................................................................................... 38
2.3
ETTERCAP – WĘSZENIE I PRZECHWYTYWANIE.......................................................................... 40
2.4
NARZĘDZIA ATAKU DDOS....................................................................................................... 42
2.4.1
TRINOO ............................................................................................................................... 42
2.4.2
TFN (TRIBAL FLOOD NETWORK)........................................................................................ 43
2.4.3
STACHELDRAHT .................................................................................................................. 44
2.4.4
ATAK DDOS Z WYKORZYSTANIEM ROBAKÓW POCZTOWYCH ............................................. 44
WSPÓŁCZESNE METODY BUDOWY POLITYKI BEZPIECZEŃSTWA SYSTEMÓW
INFORMATYCZNYCH ......................................................................................................................... 46
4.
3.1
DEFINICJA POLITYKI BEZPIECZEŃSTWA.................................................................................... 46
3.2
ZABEZPIECZENIA FIZYCZNE SYSTEMÓW................................................................................... 49
3.3
ZABEZPIECZENIA ORGANIZACYJNE .......................................................................................... 52
3.4
REGULACJE PRAWNE................................................................................................................ 55
METODY I ŚRODKI INFORMATYCZNEGO ZABEZPIECZANIA SYSTEMÓW............. 58
4.1
UWIERZYTELNIANIE................................................................................................................. 58
2
Spis treści
4.2
KERBEROS ............................................................................................................................... 62
4.3
ZAPORY SIECIOWE (FIREWALL) ............................................................................................... 65
4.4
IDS – SYSTEM WYKRYWANIA WŁAMAŃ .................................................................................. 70
ZAKOŃCZENIE...................................................................................................................................... 74
LITERATURA ......................................................................................................................................... 76
WYKAZ RYSUNKÓW ........................................................................................................................... 77
WYKAZ TABEL...................................................................................................................................... 77
DODATEK 1 – KLASY OCENY BEZPIECZEŃSTWA SYSTEMÓW INFORMATYCZNYCH.. 78
3
Wstęp
Rozwój Internetu oznacza, między innymi, Ŝe coraz większa liczba
komputerów jest na stale lub czasowo przyłączona do tejŜe sieci globalnej. Daje to
określone korzyści, ale stwarza równieŜ i zagroŜenia, których kaŜdy uŜytkownik
Internetu powinien być świadom. Jednym z nieodłącznych ryzyk związanych z pracą w
sieci w ogóle, a w sieci publicznej, jaką jest Internet w szczególności jest zagroŜenie
naruszenia prywatności ze strony innych uŜytkowników sieci, którzy nie zostali
upowaŜnieni do dostępu do określonych zasobów systemu podłączonego do Internetu.
W literaturze przedmiotu zdobycie uprawnień do działania w określonym systemie
komputerowym pracującym w sieci bez upowaŜnienia ze strony jego właściciela nosi
nazwę „ataku”. Jest to jeden z najbardziej spektakularnych aspektów szeroko
rozumianego bezpieczeństwa systemów informatycznych.
Niniejsza praca podejmuje tematykę ochrony systemów informatycznych przed
atakiem z zewnątrz, a jej zasadniczym celem jest zarówno przegląd metod i narzędzi
słuŜących atakującym do naruszania prywatności systemów dostępnych w sieci jak
i dyskusja moŜliwości i dostępnych technologii obrony.
Tekst pracy składa się z czterech zasadniczych rozdziałów. Rozdział pierwszy zawiera
charakterystykę współcześnie najczęściej stosowanych metod ataku.
W rozdziale drugim przedstawiono narzędzia, które umoŜliwiają przeprowadzanie
ataków na systemy informatyczne. Ponadto, zamieszczono tam wyniki eksperymentu
polegającego na łamaniu haseł.
Rozdziała trzeci to wskazanie współczesnych metod budowy polityki bezpieczeństwa
systemów informatycznych od strony fizycznej systemu, organizacyjnej i prawnej.
W
rozdziale
czwartym
omówione
zostały
metody
zabezpieczenia
systemu
informatycznego przed atakami oraz sposób, w jaki sobie z nimi radzić.
4
1. Charakterystyka najwaŜniejszych metod ataków
sieciowych
1.1 Klasyfikacja ataków
Atak na system komputerowy to działanie, którego celem jest przeniknięcie do
chronionego systemu komputerowego w celu przechwycenia, zniszczenia lub
zmodyfikowania przechowywanych tam informacji. Zapewnienie właściwej ochrony
przed zagroŜeniami z sieci to obecnie podstawowe wymaganie bezpieczeństwa
w systemach informatycznych. Przy klasyfikacji rodzaju ataków, moŜemy brać pod
uwagę róŜne kryteria:
-
miejsce przeprowadzania ataku
-
aktywność
-
sposób przepływu informacji
Biorąc pod uwagę miejsce przeprowadzanego ataku, moŜemy wyróŜnić ataki
zewnętrzne (zdalne), czyli takie, które prowadzone są z systemów znajdujących się
poza atakowaną siecią oraz ataki wewnętrzne (lokalne) przeprowadzane z systemów
znajdujących się w atakowanej sieci. O ile moŜna próbować przewidzieć, na jaki rodzaj
ataków system informatyczny będzie naraŜony z zewnątrz i próbować odpowiednio go
chronić o tyle ataki prowadzone z wewnątrz sieci atakowanej mogą być trudne do
wykrycia i przyczyną wielu problemów.
Innym podziałem ataków jest podział na aktywne oraz pasywne. Atak aktywny
prowadzi do utraty integralności systemu komputerowego, np.: atak włamywacza, który
usuwa pewną ilość waŜnych danych oraz powoduje zmianę działania programów.
Atakiem aktywnym moŜe być takŜe modyfikowanie strumienia danych lub tworzenie
danych fałszywych. Atak pasywny natomiast polega na wejściu do systemu bez
dokonywania Ŝadnych zmian, np.: atak włamywacza, który kopiuje pewną ilość
waŜnych danych nie powodując zmian w działaniu programów. Atakiem pasywnym
moŜe być takŜe podsłuchiwanie lub monitorowanie przesyłanych danych. W tym
przypadku celem osoby atakującej jest odkrycie zawartości komunikatu. Ataki pasywne
1. Charakterystyka najwaŜniejszych metod ataku
są bardzo trudne do wykrycia, poniewaŜ nie wiąŜą się z modyfikacjami jakichkolwiek
danych.
Biorąc pod uwagę sposób przepływu informacji w atakowanym systemie, moŜemy
wyróŜnić cztery przypadki:
•
Przerwanie sygnału (rys. 1), które polega na częściowym lub całkowitym
zniszczeniu systemu lub spowodowaniu jego niedostępności (niezdolności do
normalnego uŜytkowania) w skutek zerwania strumieni danych. Przykładem tutaj
moŜe być fizyczne zniszczenie fragmentu komputera lub sieci, np. uszkodzenie
dysku, przecięcie linii łączności między komputerem a drugim obiektem, lub
uniemoŜliwienie działania systemu zarządzania plikami.
Rys. 1 Atak przerwania
(źródło: opracowanie własne)
•
Przechwycenie sygnału (rys. 2), które opiera się na poufności i występuje wtedy,
gdy
ktoś
niepowołany
uzyskuje
dostęp
do
zasobów
naszego
systemu
komputerowego. Przykładem tutaj moŜe być podsłuch pakietów w celu
przechwycenia danych w sieci i nielegalne kopiowanie plików lub programów.
Rys. 2 Atak przechwycenia
(źródło: opracowanie własne)
•
Modyfikacja sygnału (rys. 3), która opiera się na zdobyciu dostępu do zasobów
przez niepowołaną osobę, która wprowadza do nich jakieś zmiany w celu uzyskania
wyŜszych praw lub utrzymaniu dostępu do danego systemu. Przykładem tutaj moŜe
być zmiana wartości w pliku z danymi, wprowadzenie zmiany w programie w celu
6
1. Charakterystyka najwaŜniejszych metod ataku
wywołania innego sposobu jego działania lub modyfikacja komunikatów
przesyłanych w sieci.
Rys. 3 Atak modyfikacji
(źródło: opracowanie własne)
•
Podrobienie sygnału (rys. 4) jest atakiem opierającym się na autentyczności.
Podczas przesyłania danych z jednego do drugiego komputera trzeci komputer
blokuje uniemoŜliwiając mu dalszy przesył, a sam wprowadza do systemu drugiego
komputera fałszywe obiekty. Przykładem tutaj moŜe być wprowadzenie
nieautentycznych komunikatów do sieci lub dodanie danych do pliku.
Rys. 4 Atak podrobienia
(źródło: opracowanie własne)
1.2 Ataki aktywne
1.2.1
Podszywanie (spoofing)
Spoofing jest techniką polegającą na podszywaniu się pod inny komputer w
celu złamania zabezpieczeń autoryzacyjnych opartych na adresie lub nazwie hosta.
W odniesieniu do zagadnienia transmisji danych popularną odmianą tego ataku jest "IP
Source Addresss Spoofing", który sprowadza się do przesyłania pakietów
zawierających sfałszowany adres źródłowy, co powoduje, Ŝe komputer odbierający te
pakiety błędnie identyfikuje ich nadawcę. Najczęściej atak "IP Spoofing" jest
7
1. Charakterystyka najwaŜniejszych metod ataku
wykonywany z obszaru sieci publicznej, skąd napastnik wysyła pakiety danych
w imieniu uprzywilejowanego komputera zlokalizowanego w atakowanej sieci
prywatnej. Pierwszy atak przeprowadzony z wykorzystaniem tej techniki odnotowano
w 1994 roku. Technika ta została po raz pierwszy opisana juŜ w 1985 roku, a prawie
dziesięć lat później zaawansowana technologia pozwoliła przeprowadzić niszczący
atak, który miał miejsce w 1994 r. i był skierowany przeciw Centrum
Superkomputerowemu w San Diego. Celem napastnika było włamanie i kradzieŜ
powstającego oprogramowania zabezpieczającego. Cel został osiągnięty za pomocą
"ręcznie" skonstruowanych pakietów wstrzelonych do sieci Centrum, dzięki którym
komputer hackera udawał jeden z komputerów tej sieci. Istnieje wiele innych mniej
znanych odmian tej techniki, wśród których moŜna wyróŜnić, np. „ARP Spoofing",
"DNS Spoofing", "RIP Spoofing".
IP Spoofing
Atak typu "IP Spoofing" składa się z trzech faz. Pierwszą z nich jest
wyłączenie z działania jednego z serwerów. Z reguły osiąga się to za pomocą powodzi
pakietów SYN Flood. W drugiej fazie napastnik przejmuje adres serwera i udaje jego
działanie w odniesieniu do ufających serwerowi klientów. Dzięki temu hacker moŜe
przejąć kompletną kontrole nad systemem. Z kolei trzecia faza obejmuje atak ze strony
właśnie zmienionego klienta na poprzednio wyłączony serwer. Od momentu przejęcia
kontroli nad serwerem, hacker ma nieograniczoną władzę nad siecią lokalną. Atak "IP
Spoofing" moŜna częściowo zablokować przez odpowiednio skonfigurowany filtr
pakietów, który blokuje wszystkie pakiety napływające z sieci publicznej, mające adres
źródłowy naleŜący do komputera z sieci prywatnej. Bardziej zaawansowane
przeciwdziałanie atakowi moŜna wykonać za pomocą odpowiedniej ściany ogniowej.
ARP Spoofing
Metoda ta związana jest z modyfikowaniem przechwyconych par adresów
MAC oraz IP w sieci lokalnej.
Działanie protokołu rozróŜniania adresów (ARP) polega na wysyłaniu ethernetowych
pakietów rozgłoszeniowych, zawierających poszukiwany adres IP. Stacja będąca
poszukiwanym odbiorcą, wysyła pakiet, w którym znajduje się para adresów –
8
1. Charakterystyka najwaŜniejszych metod ataku
IP i adres ethernetowy. System, z którego prowadzony jest atak, transmituje fałszywe
zapytania lub odpowiedzi ARP, skierowując cały ruch w swoim kierunku
i przedstawiając się jako autoryzowany odbiorca.
Jednym z najbardziej niebezpiecznych, jest atak Man In the Middle (MITM).
Atak ten polega na postawieniu atakującego systemu pomiędzy systemem ofiary
a lokalną bramą tak, aby system agresora mógł monitorować wszystko, co ofiara wysyła
i otrzymuje. Atakujący najpierw oszukuje system ofiary dzięki nieprawidłowo
zaadresowanej ramce ethernetowej w jego pakiecie. Powoduje to przesyłanie danych
ofiary do systemu naleŜącego do atakującego. Od tego momentu dla atakującego jest
moŜliwe monitorowanie połączeń ofiary. Aby umoŜliwić ofierze wysyłanie i odbieranie
danych, napastnik wysyła kolejną zmodyfikowaną ramkę rozgłoszeniową ARP.
Spreparowana wiadomość wprowadza w błąd system ofiary, mówiąc, Ŝe informacje
przeznaczone dla zdalnych systemów powinny być wysłane do atakującego adresu
MAC zanim zostaną wysłane przez lokalną bramkę. W tym momencie system
napastnika przechwytuje dane wejściowe i wyjściowe. Ostatnim krokiem ataku MITM
jest przekazanie ruchu do maszyny, dla której był on oryginalnie przeznaczony. W
efekcie napastnik zamienia się w tymczasową bramkę między systemem ofiary,
a prawdziwą bramką LAN. Ofiara nadal ma moŜliwość wysyłania i otrzymywania
danych do i z zdalnych systemów, ale wszystkie dane są transportowane przez system
agresora. W tym momencie kaŜda przesyłana informacja taka jak hasła, czy adresy
e-mail, mogą być monitorowane przez napastnika, a nawet modyfikowane. Umiejętność
edytowania sieciowych danych ofiary w locie pozwala atakującemu na zmianę kierunku
komunikacji systemu ofiary, wykonać atak MITM podczas wymiany kryptograficznego
klucza, oraz narazić wiele innych aspektów bezpieczeństwa. W przypadku
modyfikowania ruchu podczas inicjalizacji wymiany klucza w zaszyfrowanej sesji
Web, napastnik moŜe przechwycić i rozszyfrować sieciowy ruch ofiary, nawet, gdy
sesja nadal wydaje się być zaszyfrowana.
DNS Spoofing
DNS spoofing to atak na serwer DNS, który odwzorowuje nazwy hostów na
numery IP i odwrotnie. Atak ten polega na ingerencji w tablicę DNS i modyfikacje
poszczególnych wpisów tak, aby klient zamiast do komputera docelowego kierowany
był do komputera atakującego.
9
1. Charakterystyka najwaŜniejszych metod ataku
Na rysunku 5 przedstawiono schemat ataku typu DNS Spoofing, który
wykorzystuje fakt, Ŝe serwery DNS nie posiadają całej bazy adresów, lecz przechowują
- przez jakiś czas - informacje o numerach IP i odpowiadających im nazwach hostów
w pamięci podręcznej (cache’u).
Rys. 5 Schemat ataku DNS Spoofing
(źródło: opracowanie własne)
Sytuacja przedstawiona na rysunku 5 zakłada, Ŝe:
•
Napastnik posiada własną domenę (atak.net) i swój własny serwer DNS
(ns.atak.net) gdzie umieścił fałszywe wpisy (np.: www.onet.pl = 42.42.42.42).
Atakujący prosi serwer DNS, którego informację zawartą w cache’u chce
sfałszować („zatruć”) o połączenie z www.atak.net (rys 5.a).
•
Atakowany serwer DNS nie zna numeru IP adresu www.atak.net, więc sam
wysyła o niego zapytanie do autoryzowanego serwera domeny atak.net (rys. 5.b)
•
Serwer ns.atak.net odpowiada, jednocześnie transferując fałszywe wpisy
(rys. 5.c)
•
Próba wywołania adresu www.onet.pl spowoduje, Ŝe serwer DNS zwróci adres
IP taki jaki został pobrany z serwera ns.atak.net a nie adres rzeczywisty.
10
1. Charakterystyka najwaŜniejszych metod ataku
1.2.2
Przechwycenie sesji (hijacking)
Atak tego typu jest jednym z najbardziej niebezpiecznych ataków na system
komputerowy. Technika polega na tym, Ŝe napastnik powoduje przerwanie połączenia
zestawionego pomiędzy klientem a serwerem, następnie podszywa się pod klienta
i podsyła serwerowi pakiety z własnymi numerami sekwencji. Połączenie TCP wymaga
zsynchronizowanej wymiany pakietów, więc jeśli z jakiegoś powodu numery sekwencji
pakietu nie zgadzają się z wartościami oczekiwanymi przez komputer, to zostaną one
odrzucone i ponownie nastąpi faza oczekiwania na poprawnie numerowany pakiet.
Haker moŜe wykorzystać wymagania dotyczące numerów sekwencji protokołów TCP
i przechwycić połączenie. Aby mieć moŜliwość wglądu w przesyłane pakiety,
konieczne jest korzystanie ze sniffera. Hijacking jest więc połączeniem dwóch metod:
sniffingu i IPspoofingu. W celu doprowadzenia do przerwania połączenia TCP naleŜy je
wcześniej rozsynchronizować.
Synchronizacja połączenia TCP1
Rys. 6 Synchronizacja połączenia TCP
(źródło: W. Chestwick, M. Bellovin, A. Rubin „Firewalle i bezpieczeństwo w sieci)
Klient wysyła w kierunku serwera pakiet z bitem synchronizacji (SYN)
i wstępnym numerem sekwencji klienta (CSEQ). Po otrzymaniu przez serwer
pierwszego pakietu SYN, połączenie jest w stanie half-opened (na wpół otwarte). Pakiet
będący odpowiedzią serwera zawiera dane synchronizacji (SYN), potwierdzenia (ACK)
a takŜe numery sekwencyjne sesji, tj.: otrzymany numer sekwencji klienta zwiększony
o 1 (CSEQ + 1) oraz serwera (SSEQ). Następnie, po otrzymaniu pakietu, klient
zwiększa o 1 swój numer sekwencyjny i wysyła pakiet z ustawionym bitem
1
Douglas E. Comer: ‘Sieci komputerowe i intersieci’, WNT Warszawa 2000, 2001
11
1. Charakterystyka najwaŜniejszych metod ataku
potwierdzenia (ACK). Od tej chwili zostaje nawiązane połączenie i moŜe rozpocząć się
wymiana danych. Warto zaznaczyć, Ŝe napastnicy potrafią wykorzystywać istnienie
stanu „half-opened”. Ataki wykorzystujące pakiety SYN polegają na zalewaniu
serwera tylko pakietami synchronizacji (pierwszy etap procesu nawiązywania
połączenia) licząc, Ŝe tak duŜa liczba Ŝądań, które nigdy nie zamieniają się
w rzeczywiste połączenia spowoduje jego zablokowanie. Pierwszy etap tego
trzystopniowego procesu moŜe być równieŜ wykorzystywany do wykrycia aktywnych
usług TCP bez alarmowania aplikacji, które zwykle nie są informowane o połączeniu,
zanim nie zakończy się cała ta trzystopniowa procedura nawiązywania połączenia.
Istnieje kilka metod prowadzących do rozsynchronizowania połączenia takich jak:
•
Wczesne rozsynchronizowanie
•
Aktywne rozsynchronizowanie
•
Rozsynchronizowanie pustymi danymi
1.2.3
Ataki blokady usług
Ataki blokady(odmowy) usługi (DoS) polega na obciąŜaniu oprogramowania,
sprzętu czy łączy sieciowych poza granice ich załoŜonej wydajności. Celem takiego
ataku jest uniemoŜliwienie działania jakiejś usługi lub obniŜenie jakości jej działania.
Ataki takie w dość prosty sposób moŜna wykryć, jednak znacznie trudniej moŜna
ustalić źródło tych ataków. Mogą one przebiegać pod róŜnymi postaciami –
od zasypywania wiadomościami pocztowymi (mail bombing lub spam), po wysyłanie
specjalnie spreparowanych pakietów, by załamać działanie programu w atakowanym
systemie. Skutkiem tego działania moŜe być np.: przepełnienie dysku, przeciąŜenie
procesora, załamanie się systemu operacyjnego lub po prostu przeciąŜenie łącza. Aby
doszło do przeciąŜenia łącza wystarczy wygenerować więcej pakietów niŜ dany
odbiorca moŜe obsłuŜyć.
Ataki pakietami SYN
Ataki zalewania pakietami SYN nie powodują zablokowania łącza sieciowego,
ale są skierowane przeciwko stosowi TCP/IP. W protokole TCP będącym
12
1. Charakterystyka najwaŜniejszych metod ataku
odpowiedzialnym za obsługę połączeń, konieczne jest śledzenia ich stanu. Za to zadanie
odpowiedzialny jest stos TCP/IP, który moŜe jednak śledzić tylko określoną liczbę
połączeń. Atak przepełnienia typu SYN Flooding wykorzystuje to ograniczenie,
uniemoŜliwiając nawiązywanie nowych połączeń sieciowych.
Napastnik wysyła do systemu ofiary duŜą liczbę pakietów synchronizacji SYN
- pierwszymi w procesie nawiązywania połączenia, z fałszywym, nieistniejącym
adresem źródłowym. PoniewaŜ pakiet SYN jest uŜywany do inicjowania połączeń TCP,
komputer ofiary będzie wysyłał w odpowiedzi pakiet SYN/ACK, oczekując z kolei na
odpowiedź ACK. KaŜde takie częściowo otwarte połączenie jest umieszczane
w kolejce, która ma jednak ograniczoną pojemność. PoniewaŜ fałszywe adresy
źródłowe nie istnieją, system nigdy nie odbierze odpowiedzi ACK, które
spowodowałyby usunięcie niepotrzebnych wpisów z kolejki i nawiązanie pełnego
połączenia. W tym przypadku musi upłynąć czas waŜności poszczególnych połączeń,
co zwykle trwa dość długo. JeŜeli haker kontynuuje zalewanie systemu ofiary
fałszywymi pakietami SYN, kolejka połączeń pozostanie zapełniona, przez co
prawdziwe pakiety SYN nie będą mogły przedostać się do tego systemu. Oznacza to
brak moŜliwości tworzenia nowych połączeń TCP/IP.
Pierwszym dokładnie opisanym atakiem tego typu był atak przeprowadzony na
dostawcę usług internetowych – firmę Panix. Do komputera tej firmy w ciągu sekundy
wysyłano około 150 pakietów TCP SYN. Pakiety te zasypały mechanizm przetwarzania
połączeń półotwartych jądra systemu Unix. Gdy tabela połączeń półotwartych
wypełniła się, nadchodzące od upowaŜnionych uŜytkowników polecenia nawiązania
połączenia były odrzucane, uniemoŜliwiając im korzystanie z komputera.
Atak Ping of death
Zgodnie ze specyfikacją protokołu ICMP, komunikaty echa ICMP mogą
zawierać maksymalnie 65 536 bajtów w obszarze danych pakietu. Wiele systemów
operacyjnych moŜe się jednak zawiesić po odebraniu komunikatów echa ICMP, których
wielkość przekracza dozwolony limit. Proces wysyłania komunikatów echa o bardzo
duŜej wielkości został nazwany atakiem Ping of Death. Jest to bardzo prosta technika
ataku, poniewaŜ większość twórców oprogramowania nigdy nie zwracała uwagi na tę
kwestię, skupiając się na nagłówku tego pakietu gdzie zazwyczaj mieszczą się
13
1. Charakterystyka najwaŜniejszych metod ataku
najwaŜniejsze informacje. Obecnie większość systemów operacyjnych została jednak
zabezpieczona przeciwko atakom tego typu.
Smurf
Atak typu Smurf jest stosunkowo nowym atakiem w kategorii sieciowych
ataków na hosty, wykorzystujący efekt wzmocnienia. Zasada jego działania polega na
wysyłaniu przez atakującego duŜej ilości pakietów ICMP echo (ping) na adresy
rozgłoszeniowe (broadcast address) z podmienionymi adresami źródłowymi na adresy
ofiary. Jeśli router dostarczy pakiet na adres rozgłoszenia IP, spowoduje to, Ŝe kaŜda
maszyna przyjmie Ŝądanie ICMP echo i na nie odpowie.
Jako przykład moŜna przedstawić następującą sytuację2:
Zakładając, Ŝe celem atakującego jest sieć posiadająca 100 komputerów,
atakujący wysyła strumień 768 Kb/s pakietów ping na adres broadcastowy tej sieci.
Pakiety ping zostaną wysłane do kaŜdego z tych 100 komputerów z podmienionym
adresem źródłowym i w rezultacie zostanie stworzone 100 dodatkowe pakietów
odpowiedzi, które zostaną przesłane na adres ofiary strumieniem 76,8 Mb/s,
co najprawdopodobniej spowoduję blokadę usług.
DDoS
Rozproszony atak DDoS (Distributed Denial of Service) stanowi szczególną
odmianę klasycznego ataku przepełnienia. Jak juŜ wcześniej wspomniano, atak
przepełnienia jest przeprowadzany w celu całkowitego zablokowania łącza sieciowego
ofiary. W ataku DDoS wykorzystywanych jest wiele komputerów włączonych do
Internetu a komputery te uczestniczą w ataku zupełnie bezwiednie. W przypadku ataku
DDoS haker musi najpierw włamać się do wielu róŜnych systemów i zainstalować
w nich złośliwe oprogramowanie, które będzie czekało w ukryciu na sygnał do ataku.
Włamywacz wykorzystuje specjalny program sterujący, który umoŜliwia rozpoczęcie
ataku, a wszystkie zainfekowane systemy jednocześnie uderzają w ofiarę, wykonując
określony typ ataku DoS. Taka technika ataku moŜe spowodować powaŜne szkody,
2
Craig A. Huegen „The latest in Denial of Service attack: Smurfing” - http://www.pentics.net/denial-of-
service/white-papers/smurf.cgi
14
1. Charakterystyka najwaŜniejszych metod ataku
utrudniając jednocześnie próby wykrycia rzeczywistego połoŜenia hakera. Na rysunku 7
przedstawiono schemat ataku tego typu.
Rys. 7 Atak DDoS
(źródło: opracowanie własne)
Napastnik
za
pomocą
odpowiednich
środków
instaluje
odpowiednie
oprogramowanie na jak największej ilości komputerów zwanych „zombi”3. Program na
komputerze „zombi” wiąŜe się z jednym z portów i czeka na dalsze instrukcję.
Następnie, napastnik instaluje na jednym z komputerów w Internecie program główny,
który dysponuje listą wszystkich komputerów przygotowanych do przeprowadzenia
ataku. Kiedy nadchodzi czas ataku, napastnik wysyła programowi głównemu
komunikat, w którym przekazuje mu adres ofiary, po czym wszystkie komputery
„zombi” jednocześnie przeprowadzają atak typu DoS, wysyłając w kierunku celu taką
liczbę pakietów, które go obezwładnią.
Email bombing, email spamming
Email bomb jest serią wiadomości wysyłanych do skrzynki pocztowej ofiary.
Celem takiego ataku jest zapełnienie skrzynki nieistotnymi wiadomościami.
W przypadku słabych, niezabezpieczonych systemów, mogą one doprowadzić do
skutecznego zablokowania łącza i zapełnienia wolnego miejsca na twardym dysku.
3
William. R. Chestwick, Steven M. Bellovin, Aviel D. Rubin „Firewalle i bezpieczeństwo w sieci”
Helion 2003
15
1. Charakterystyka najwaŜniejszych metod ataku
Email spamming jest natomiast inną odmianą tego ataku. Dotyczy on większej
ilości uŜytkowników a polega na wysyłaniu wiadomości do wszystkich uŜytkowników
danego serwera. Metoda ta najczęściej wykorzystywana jest bardziej do wysyłania
reklam niŜ próbie wyrządzenia jakiś szkód.
Istnieje równieŜ inna metoda szybkiego zapełnienia skrzynki pocztowej.
Napastnik podszywając się pod innego uŜytkownika zapisuje go na duŜą ilość list
dyskusyjnych jednocześnie. Lista dyskusyjna działa w ten sposób, Ŝe wszyscy
uŜytkownicy piszą na jeden wspólny adres e-mail, a kopie tych wiadomości rozsyłane
są do wszystkich uczestników danej listy. Rezultaty tego działania mogą być
katastrofalne w skutkach dla ofiary. Zakładając, Ŝe została ona zapisana np. na 200 list
dyskusyjnych, z których kaŜda ma po 50 członków wysyłających średnio 2 listy
dziennie, na jego skrzynkę trafi dziennie 20000 wiadomości. Jeśli będą to same
wiadomości tekstowe liczące około 5 KB kaŜda, to dziennie trafia na skrzynkę
pocztową około 90MB danych. To chyba pozwala uzmysłowić sobie skalę zagroŜenia.
1.2.4
Konie trojańskie i tylne wejścia
Dr Alan Solomon, specjalista zajmujący się wirusami komputerowymi,
w swojej pracy pt. „All about Viruses”4 podaje następującą definicję konia trojańskiego:
„Koń trojański jest programem, który robi więcej, niŜ oczekuje od niego
uŜytkownik i te jego dodatkowe właściwości są z punktu widzenia uŜytkownika
niepoŜądane. To załoŜenie prowadzi nas do trudności w wykrywaniu koni trojańskich.
Przypuśćmy, Ŝe mamy program, który mógłby nieomylnie wykryć program, który
sformatował nam dysk twardy. Czy moŜna by wówczas stwierdzić jednoznacznie, Ŝe ten
program jest koniem trojańskim? Oczywiście nie. Jeśli ten inny program z załoŜenia
słuŜy do formatowania dysków (jak na przykład ‘format’) - wówczas nie jest on koniem
trojańskim. Problemem jest porównanie tego, co robi program, z tym, czego oczekuje
od niego uŜytkownik, a oczekiwania uŜytkownika wobec programów przez niego
wykorzystywanych są - na poziomie aplikacji - nieweryfikowalne”.
Koń trojański jest obcym kodem dołączonym do prawowitego programu, który
realizuje funkcje nieznane uŜytkownikowi (i zapewne przez niego niepoŜądane).
4
A. Solomon „All About Viruses” - http://vx.netlux.org/lib/aas10.html
16
1. Charakterystyka najwaŜniejszych metod ataku
Nielegalne funkcje realizowane przez konia trojańskiego mogą czasami zakwalifikować
go do grupy wyjątkowo niebezpiecznych programów destrukcyjnych. Do określenia
tego pasują niektóre wirusy, które mogą ukrywać swoją obecność w poŜytecznym
programie. Wówczas, taki program moŜna nazywać zarówno koniem trojańskim jak
i wirusem. Program, w którym zawarto konia trojańskiego, moŜe pełnić poŜyteczne
funkcje lub robić po prostu coś interesującego. Zawsze natomiast wykonuje zadania,
których nie spodziewa się osoba go uruchamiająca, jak na przykład zbieranie i
wysyłanie haseł czy usuwanie plików bez wiedzy uŜytkownika. Koń trojański moŜe być
programem narzędziowym, który indeksuje katalogi lub łamie kody rejestracyjne
w oprogramowaniu. MoŜe być edytorem tekstów lub narzędziowym programem
sieciowym. Krótko mówiąc, koń trojański moŜe robić wszystko to, co robią inne
programy i moŜe być znaleziony w kaŜdym programie.
Konie trojańskie mogą być zaszyte nie tylko w skompilowanych programach.
MoŜna je znaleźć równieŜ w skryptach powłoki, programach w Perlu, a nawet w
skryptach takich jak JavaScript czy VBScript. Jednak przypadki występowania koni
trojańskich w skryptach są rzadkie ze względu na to, Ŝe opisowy język skryptu jest
czytelny dla człowieka, stąd niepoŜądany kod jest łatwy do wykrycia. ZagnieŜdŜenie
konia trojańskiego w takim kodzie jest bardziej prawdopodobne w przypadku, gdy dany
skrypt jest częścią duŜego pakietu, poniewaŜ rozbudowana struktura wydatnie
zmniejsza prawdopodobieństwo wykrycia obcej wstawki programistycznej.
Dobrze napisany koń trojański pracuje w tle nie ujawniając swej obecności. Co gorsza,
większość dobrze zaprojektowanych programów tego typu zawiera się w narzędziach,
które normalnie są obecne i uruchomione w systemie. W takim przypadku, nawet
przeglądanie uruchomionych procesów niewiele moŜe pomóc w odkryciu konia
trojańskiego. W odróŜnieniu od wirusów koń trojański nie ulega replikacji i nie dołącza
się do innych plików. UŜytkownik sam uruchamia program, nie będąc świadom jego
przeznaczenia. Chcąc zainstalować komuś „trojana”, moŜna go samemu uruchomić na
jego maszynie, trzeba jednak postarać się o bezpośredni dostęp do komputera osoby,
której „trojan” zostanie podłoŜony.
Odmianą koni trojańskich są bomby logiczne (ang. logical bombs). RóŜnią się
od koni trojańskich tym, Ŝe koń trojański działa natychmiast natomiast bomba logiczna
swe destrukcyjne oblicze ukazuje tylko w określonym odpowiednimi warunkami czasie
(najczęściej zaleŜne od aktualnej daty lub liczby poprzednich wywołań programu).
17
1. Charakterystyka najwaŜniejszych metod ataku
Często mianem bomby określa się destrukcyjny kod zawarty w wirusach, którego
wywołanie następuje tylko po spełnieniu jakiegoś warunku.
Konie trojańskie często wykorzystywane są do instalowania tzw. tylnych
wejść (backdoor), które umoŜliwiają hakerowi dostęp do zainfekowanego komputera.
Najczęściej działają one w ten sposób, Ŝe po zainstalowaniu się na zaatakowanym
komputerze otwierają w systemie określone porty. Następnie wysyłają powiadomienie
do napastnika, Ŝe w komputerze o danym adresie została stworzona „dziura” w systemie
bezpieczeństwa i moŜe zostać zaatakowany. Często konie trojańskie występują jako
aplikacje klient - serwer. Serwer jest uruchomiony na komputerze ofiary i czeka na
rozkazy napływające drogą sieciową. Klient słuŜy do wysyłania owych rozkazów. Jeśli
„trojan” jest niezbyt skomplikowany, to do komunikacji z serwerem uŜywany jest
programu Telnet. W przypadku bardziej skomplikowanych koni trojańskich Telnet jest
zastępowany specjalnymi aplikacjami. Programy te maja na ogół przejrzysty i bogaty
interfejs uŜytkownika. Zasada współdziałania serwera i klienta jest zawsze taka sama.
Komunikują się one przy uŜyciu protokołu TCP/IP. Serwer zainstalowany na
komputerze, na którym przypuszcza się atak, otwiera jeden z nieuŜywanych dotąd
portów, z którym moŜe połączyć się klient i w ten sposób wysyłać mu rozkazy. Serwer
przyjmuje je i na maszynie „ofiary” podejmuje odpowiednie działanie. Proces ten moŜe
być zabezpieczony hasłem, aby nikt, oprócz osoby, która zainstalowała „konia
trojańskiego”, nie wykorzystał otwartej w ten sposób bramki.
Przykładem takiego konia trojańskiego jest Backdoor.Antilam5 działającego
w systemach Windows. Jest to rodzina programów pozwalających na zdalną
administrację zainfekowanym komputerem poprzez sieć lokalną lub Internet.
Większość funkcji tego backdoor’a moŜe być konfigurowana przez hakera przy pomocy
specjalnego narzędzia. Istnieje równieŜ aplikacja, wyposaŜona w graficzny interfejs
uŜytkownika, umoŜliwiająca wysyłanie komend. Przy uŜyciu Backdoor.Antilam,
napastnik moŜe wykonać następujące operacje na zainfekowanym komputerze:
zamykanie i usuwanie backdoor’a,
gromadzenie informacji o zainfekowanym systemie,
modyfikowanie zawartości pulpitu systemu Windows,
5
http://www.viruslist.pl/encyclopedia.html?cat=18&uid=196
18
1. Charakterystyka najwaŜniejszych metod ataku
wyświetlanie dowolnych komunikatów,
zarządzanie otwartymi oknami,
restartowanie i zamykanie komputera,
modyfikowanie daty systemowej,
wyłączanie klawiatury,
zarządzanie plikami zapisanymi na dyskach,
uzyskiwanie pełnego dostępu do rejestru systemowego
zapisywanie informacji wprowadzanych z klawiatury,
drukowanie dowolnych tekstów,
zarządzanie połączeniami dial-up,
zarządzanie schowkiem,
komunikowanie się z innymi hakerami podłączonymi do zainfekowanego
komputera.
Warto wspomnieć, Ŝe tworzenie tylnych wejść w systemie nie musi wiązać się
z instalowaniem w nim konia trojańskiego. Jedną z metod moŜe być zmiana kodu
źródłowego programu i jego podmiana w systemie. W systemach takich jak Linux,
gdzie dostępne są kody źródłowe, ewentualna modyfikacja i ponowna kompilacja nie
jest większym problemem. Jedyny problem to podmiana tak spreparowanego programu
czy teŜ usługi w atakowanym systemie. Jednak, jeśli uda się to napastnikowi, wykrycie
obecności tylnego wejścia w systemie będzie bardzo trudne.
1.3 Ataki pasywne
Atak ten polega na wejściu do systemu bez dokonywania Ŝadnych zmian.
Na przykład atak włamywacza, który kopiuje pewną ilość waŜnych danych nie
powodując zmian w działaniu programów. Atakiem pasywnym moŜe być takŜe
podsłuchiwanie lub monitorowanie przesyłanych danych. W tym przypadku celem
osoby atakującej jest odkrycie zawartości komunikatu. Ataki pasywne mogą być trudne
do wykrycia, poniewaŜ nie wiąŜą się z modyfikacjami jakichkolwiek danych.
19
1. Charakterystyka najwaŜniejszych metod ataku
1.3.1
Skanowanie sieci
Napastnik wybierając cel ataku, musi dowiedzieć się czegoś na jego temat.
Bezpośrednim sposobem uzyskania takiej wiedzy jest skanowanie sieci i jej
komponentów. Napastnik moŜe lokalizować komputery bezpośrednio za pomocą
skanerów sieciowych lub pośrednio (np. za pomocą informacji otrzymywanych z DNS).
Dostępnych jest wiele narzędzi skanujących komputery i porty. Najprostszymi z nich są
banalne programy składające się z kilku wierszy najczęściej napisanych w języku Perl
lub C. Jednak skanowanie takimi programami łatwo jest wychwytywane przez systemy
wykrywania włamań, dlatego teŜ przeprowadzane są one ze skradzionych kont lub
komputerów, do których się włamano.
Najczęściej stosowanymi próbnikami do wykrycia komputerów są pingi ICMP.
Napastnik skanuje komputery w celu wykrycia w nich aktywnych portów, poszukuje
aktywnych usług sieciowych oraz identyfikuje oprogramowanie serwera i jego wersje.
Istnieje kilka metod skanowania portów:
•
TCP Connect Scanning – jest to podstawowa metoda skanowania. Polega ona
na nawiązywaniu połączenia z interesującym portem. Jeśli połączenie dojdzie do
skutku, oznacza to, Ŝe dany port jest otwarty. Zaletą tej metody jest jej prostota.
Wadą zaś jest łatwość wykrycia skanowania, gdyŜ logi na danym serwerze
wskaŜą na duŜą ilość nawiązywanych połączeń i listę komunikatów z błędami.
Jeśli na serwerze działają antyskanery to zamkną połączenie z intruzem.
•
TCP SYN Scanning (half-opened scanning) – w przeciwieństwie do
poprzedniej metody, w metodzie tej połączenie nie jest ustanawiane. Napastnik
wysyła pakiet SYN tak jak by chciał nawiązać połączenie. Jeśli cel zwróci
pakiet RST wiadomo jest, Ŝe port jest zamknięty. JeŜeli natomiast,
w odpowiedzi serwer zwróci pakiet SYN/ACK wiadomo jest, Ŝe port jest
otwarty. Napastnik wtedy wysyła pakiet RST przerywając połączenie, zamiast
wysłać pakiet ACK kończący trzystopniową wymianę potwierdzeń. W takim
przypadku zwykle jądro nie poinformuje uŜytkownika o usiłowaniu nawiązania
połączenia. WaŜne jest by system monitorowania rejestrował wszystkie pakiety,
nie tylko te, które spowodowały nawiązanie połączenia.
20
1. Charakterystyka najwaŜniejszych metod ataku
•
UDP ICMP port unreachable scanning. W związku z tym, Ŝe protokół UDP
nie jest protokołem połączeniowym, nie moŜna stosować tych samych technik
skanowania jak dla protokołu TCP. Przeprowadzenie skanowania UDP jest
trudniejsze, pomimo tego, Ŝe sam protokół jest prostszy. Dzieje się tak, dlatego,
Ŝe otwarte porty nie wysyłają potwierdzeń w odpowiedzi na Ŝądanie, a porty
zamknięte nie wysyłają pakietów z komunikatem o błędzie. W protokole UDP
obsługa błędów spada na aplikację. Jednak większość systemów zwraca
komunikat ICMP_PORT_UNREACH, kiedy wysyłane są pakiety do portu
zamkniętego. W ten sposób moŜna się dowiedzieć, które porty są zamknięte
i poprzez eliminację wykazać, które mogą być otwarte. Czasami, dzięki tej
technice moŜliwe jest ominięcie firewalli.
•
ICMP echo scanning. Metoda ta pozwala sprawdzić czy istnieje komputer
o wskazanym numerze IP. Jeśli w odpowiedzi na wysłany pakiet ustawione są
bity 72-79 nagłówka na wartość 1 i pierwszym polem obszaru danych
ustawionym na 8, znaczy to, Ŝe istnieje komputer pod skanowanym numerem
IP. Tak działa m.in. program ping.
1.3.2
Podsłuchiwanie (sniffing)
Sniffing jest techniką polegającą na podsłuchiwaniu pakietów w sieci. Programy
podsłuchujące ruch (sniffery) początkowo były stosowane przez administratorów
systemów w celu identyfikacji potencjalnych problemów w sieci. PoniewaŜ sniffery
świetnie nadają się do przechwytywania cennych danych, zaczęły z czasem
wykorzystywane być przez hakerów. Warto wspomnieć, Ŝe istnieją zarówno programy
darmowe, łatwo dostępne w Internecie, ale równieŜ komercyjne, których koszt
niejednokrotnie sięga kilku tysięcy dolarów6.
Najłatwiej jest prowadzić sniffing w sieciach, w których wykorzystane są
urządzenia zwane koncentratorami (hubs), które działają w pierwszej warstwie
(fizycznej) modelu OSI. Ich zadaniem jest wzmacnianie transmitowanego sygnału
i przekazywanie go do wszystkich portów, do których mogą być podłączone inne
urządzenia sieciowe (komputery, kolejne koncentratory itp.). Karty sieciowe
6
Przykładowo pogram Anasil, umoŜliwiający nie tylko przechwytywanie pakietów, ale wykrywanie i
identyfikacje urządzeń sieciowych, tworzenie mapy sieci itp. kosztuje ok. 7000 zł.
21
1. Charakterystyka najwaŜniejszych metod ataku
w normalnym trybie pracy, są w stanie odfiltrować wszystkie pakiety, które skierowane
były do innego interfejsu sieciowego, sprawdzając swój adres MAC z zapisanym
w pakiecie adresem MAC odbiorcy. MoŜliwe jest jednak przełączenie karty sieciowej
w tryb „promiscuous” potocznie zwany trybem podsłuchu. W tym przypadku, karta
sieciowa przekazuje do wyŜszych warstw modelu OSI wszystkie odebrane pakiety,
nawet, jeŜeli nie były one do niej adresowane. Dzięki temu, moŜliwie jest odbieranie
pakietów nie zaadresowanych do niej. Sytuację tą ilustruje rysunek 8.
Rys. 8 Rozsyłanie pakietów w sieci opartej o hub
(źródło: opracowanie własne)
Poszczególne pakiety mogą być zapisane przez sniffer do pliku, co pozwoli
osobie korzystającej z programu na dokładniejszą analizę ruchu w dowolnym czasie.
Takie działanie umoŜliwia zebranie wielu informacji, które mogą być przydatne w celu
przeprowadzenia na przykład innego ataku, uzyskaniu nieautoryzowanego dostępu do
określonych zasobów, podejrzeniu niezaszyfrowanych haseł itp. Sniffing w sieciach bez
przełączników moŜna uznać za działanie pasywne, gdyŜ atakujący musi jedynie
programowo przestawić tryb pracy swojej karty sieciowej na bezładny, uruchomić
sniffer i określić, jakie pakiety ma on wychwytywać. Nie jest konieczna Ŝadna
interakcja z innymi urządzeniami pracującymi w sieci. Jedynym koniecznym
warunkiem jest, aby maszyna, na której prowadzony jest sniffing, była podpięta do
dowolnego portu koncentratora. Ten po odebraniu pakietu wyśle go na wszystkie swoje
porty i w rezultacie pakiet trafi do kaŜdego spiętego z koncentratorem urządzenia
(komputera lub kolejnego koncentratora). KaŜda z kart sieciowych - za wyjątkiem karty
prawdziwego odbiorcy oraz karty pracującej w trybie promiscuous (uŜywanej przez
sniffującego) - odfiltruje pakiet po adresie MAC. W ten sposób moŜliwe jest
podsłuchiwanie całej komunikacji odbywającej się w sieci.
22
1. Charakterystyka najwaŜniejszych metod ataku
W sieciach, w których zamiast koncentratorów wykorzystano przełączniki
(switches) sniffing jest znacznie utrudniony, ale nadal istnieje moŜliwość prowadzenia
podsłuchu. Trzeba jedynie wykorzystać jedną z dostępnych metod pozwalających
obejść ograniczenia, które narzuca zasada działania przełączników.
Typowe przełączniki spotykane w sieciach lokalnych są urządzeniami działającymi
w drugiej warstwie modelu OSI. Z tego względu funkcjonują one bardziej inteligentnie
niŜ koncentratory. W trakcie pracy przełączniki budują tablice adresów MAC urządzeń
przyłączonych do ich portów i zapisują te informacje we własnej pamięci. Dzięki temu
kaŜdy przełącznik po odebraniu pakietu przesyła go nie na wszystkie porty, a jedynie do
jednego z nich, do którego podpięte jest urządzenie o odpowiednim adresie MAC. To z
kolei oznacza, Ŝe do karty sieciowej maszyny-odbiorcy trafiają wyłącznie pakiety dla
niej przeznaczone oraz pakiety rozgłoszeniowe (broadcast). Wówczas przełączenie
karty w tryb bezładny i uruchomienie sniffera nie przyniesie poŜądanego efektu.
Sytuacja ta przedstawiona została na rysunku 9:
Rys. 9 Rozsyłanie pakietów w sieci opartej o switch
(źródło: opracowanie własne)
Istnieją jednak sposoby na przeprowadzenie tego ataku w sieci opartej na
przełącznikach, a mianowicie:
•
Dopóki przełącznik nie wybuduje aktualnej tablicy odwzorowań (MAC-port),
rozsyła pakiet przeznaczony dla nieokreślonego odbiorcy (moŜe to być np. nowy
komputer podpięty do wolnego portu, który jeszcze nie wygenerował Ŝadnego
ruchu) do wszystkich portów. Wówczas urządzenie to działa jak typowy
koncentrator. Tworzenie tablicy odwzorowań polega na tym, Ŝe kiedy na porcie
23
1. Charakterystyka najwaŜniejszych metod ataku
przełącznika pojawia się pakiet, ten odczytuje informację o nadawcy pakietu
i zapisuje ją w pamięci, łącząc odkryty adres MAC z określonym portem. Ten
proces ma charakter dynamiczny, gdyŜ w przeciwnym razie nie byłoby moŜliwe
przepinanie urządzeń na inne porty.
•
Pamięć przełącznika, w której przechowywana jest tablica odwzorowań ma
ograniczony rozmiar; napastnik moŜe więc dąŜyć do próby jej przepełnienia.
Pojedynczy adres MAC zajmuje 6 bajtów. Nie jest to duŜo, biorąc pod uwagę
pamięć urządzenia, jednak stosując technikę MAC flooding moŜna przesłać
odpowiednią ilość fałszywych pakietów i spowodować przepełnienie tablicy.
•
Większość producentów kart sieciowych pozwala na zmianę adresu MAC
przypisanego danemu urządzeniu, a to daje moŜliwość podszycia się pod inną
maszynę. Nie jest to jednak działanie konieczne, poniewaŜ istnieje wiele
narzędzi pozwalających na manipulację pakietami ARP, a to otwiera juŜ kilka
moŜliwych dróg rozwiązania problemu.
1.3.3
KradzieŜe haseł
W przypadku praktycznie wszystkich systemów, aby wejść do systemu
wymagane jest podanie w określonej liczbie prób prawidłowego hasła. We wczesnych
systemach operacyjnych, hasła przechowywane były w plikach dyskowych, w czystej
tekstowej postaci. Bezpieczeństwo takich systemów opierało się na tajności nazwy
pliku przechowującego hasło a systemowe polecenie przedstawiające zawartość
katalogu pomijało nazwę tego pliku. KaŜdy więc, kto znał nazwę pliku, mógł odczytać
hasło.
We współczesnych systemach, hasła nie są przechowywane w czystej
tekstowej postaci. Poddawane są one szyfrowaniu za pomocą jednostronnych
algorytmów szyfrujących (np. MD5), które to uniemoŜliwiają odszyfrowanie
zakodowanej informacji. Autoryzacja uŜytkownika polega na zaszyfrowaniu podanego
przez niego hasła i porównaniu z zaszyfrowanym hasłem przechowywanym w systemie.
Jednak największą słabością systemu haseł nie jest sposób ich szyfrowania czy
przechowywania, ale sami uŜytkownicy wybierający słabe hasła typu imię, nazwisko,
pesel itp. W badaniach przeprowadzonych w USA, na około 14000 losowo wybranych
kontach, ponad 3300 miało ustawione hasła, które znajdowały się w standardowym
24
1. Charakterystyka najwaŜniejszych metod ataku
słowniku, 1500 haseł składało się z sześciu lub mniej znaków, prawie 550 stanowiło
nazwy pospolite, a ponad 300 haseł zawierało imię7.
Ze względu na metodę działania programów słuŜących do łamania haseł moŜna
je podzielić na dwie grupy. Pierwszą grupę stanowią programy przeprowadzający tzw.
atak słownikowy. Polega on na generowaniu haseł na podstawie wyrazów
z dołączonego słownika i ich kombinacji - łączenia, dodawania liczb na początku i na
końcu wyrazów, itp. Dlatego teŜ, wybranie hasła, które jest wyrazem w jakimkolwiek
języku jest duŜym zagroŜeniem gdyŜ w Internecie znaleźć moŜna wiele słowników
zawierających po kilkaset tysięcy wyrazów w róŜnych językach. Błędem jest takŜe,
wybranie takiego wyrazu pisanego od końca, czy dodanie na początku bądź na końcu
liczby, co jest dość często stosowane. Często równieŜ uŜytkownicy uŜywają jako hasła
swojego „loginu” w połączeniu z innymi znakami. Złamanie hasła w tym przypadku,
trwa zazwyczaj kilka sekund.
Drugą grupą programów słuŜących łamaniu haseł są programy wykorzystujące
metodę siłową (brute force). W przeciwieństwie do metody słownikowej polega ona na
sprawdzeniu wszystkich moŜliwych kombinacji znaków. Powodzenie tej metody
(a przede wszystkim czas) zaleŜy od długości i złoŜoności wybranego hasła. Jeśli np.
składa się ono z samych cyfr, wygenerowanie prawidłowego hasła moŜe zająć zaledwie
kilka minut. Tabela 1 przedstawia przewidywany czas znalezienia hasła w zaleŜności od
jego złoŜoności, z wykorzystaniem jednego z najbardziej znanych programów do
łamania haseł jakim jest John the Ripper, na komputerze z procesorem 1,7 GHz, dla
średniej prędkości generowania haseł ok. 130 000 na sekundę.
znaki uŜyte
w haśle
długość hasła
7 znaków 8 znaków
cyfry
0,07 sekundy 7,7 sekund
76 sekund 12,8 minut
(10 znaków)
małe litery
3,5 sekundy
40 minut
17,1 godzin 18,5 dni
(26 znaków)
małe i duŜe litery
56,2 sekund 42,2 godziny 91,5 dni
13,3 lat
(52 znaki)
wszystkie znaki
10,4 minut
65,4 dni
17 lat
1,6 tys. lat
(95)
Tabela 1 Przewidywany czas łamania haseł
(źródło: opracowanie własne)
7
4 znaki
6 znaków
Daniel V. Klein „Foiling the Cracker - A Survey of Improvemented to Password Security”;
(http://www.ussrback.com/docs/passwords_klein.ps.gz)
25
1. Charakterystyka najwaŜniejszych metod ataku
NaleŜy zaznaczyć, Ŝe rzeczywisty czas wygenerowania hasła na ogół jest
mniejszy gdyŜ podane tutaj wartości są teoretycznymi, maksymalnymi czasami
potrzebnymi na przeanalizowanie wszystkich moŜliwych kombinacji znaków w danym
haśle. Ponadto załoŜono, Ŝe znaki składające się na dane hasło są losowe i nie
występują w całości lub w części słowniku. W przeciwnym wypadku czas moŜe ulec
znacznemu skróceniu. W rozdziale drugim przedstawiono przykładowe czasy „łamania”
konkretnych haseł.
1.4 Błędy w oprogramowaniu
Kolejnym sposobem wejścia do systemu, jego zablokowania czy wykradzenia
poufnych danych, jest wykorzystanie przez napastnika błędów w oprogramowaniu
danego systemu.
Jedną z najbardziej znanych metod wykorzystującej luki w oprogramowaniu
jest „przepełnienie bufora” (Buffer Overflow). Technika ta polega na podaniu
programowi większej liczby danych, niŜ przewidział to twórca programu. Nadmiarowe
dane przekraczają obszar pamięci, który został przeznaczony dla danych, a tym samym
wkraczają w obszar pamięci, który był przeznaczony na instrukcje programu.
W idealnej wersji tego ataku nadmiarowe dane są nowymi instrukcjami, które
umoŜliwiają napastnikowi sterowanie pracą procesora. PoniŜej znajduje się prosty
przykład programu podatnego na przepełnienie bufora:
void func(char *p);
int main(int argc, char *argv[]){
func("Tekst ten, spowoduje przepelnienie bufora");
return 0;
}
void func(char *p)
{
char tmp[10];
strcpy(tmp, p);
printf(tmp);
}
Kompilacja przebiegnie bez przeszkód, ale przekazanie funkcji func()
łańcucha o długości większej niŜ dziewięć znaków powoduje przepełnienie bufora.
26
1. Charakterystyka najwaŜniejszych metod ataku
W tym konkretnym przypadku załamanie programu spowodowane jest próbą czytania
poza granicą statycznego łańcucha. W najgorszym przypadku, tego rodzaju
przepełnienie umoŜliwia wykonanie w zaatakowanym systemie dowolnego kodu
(tzw. exploitów), choć przeprowadzenie takiego ataku jest dość trudne. Jednak nawet
wtedy, gdy atak przepełnienia bufora nie powiedzie się do końca, najczęściej i tak
spowoduje problemy w atakowanym komputerze. Zwykle polegają one na załamaniu
się działania zaatakowanego programu lub nawet całego systemu.
Kolejnym rodzajem ataku korzystającego tym razem z błędów w aplikacjach
internetowych jest tzw. SQL injection. Polega on na nieautoryzowanym wykonaniu
wyraŜeń języka SQL. Jednym z podstawowych błędów jest brak filtracji danych
przekazywanych
przez
uŜytkownika.
Oto
bardzo
prosty przykład
programu
weryfikującego login i hasło:
$query
=
”SELECT
*
FROM
user
WHERE
login=’$login’
AND
password=’$pass’”;
$result=mysql_db_query($db,$query);
$num_rows=mysql_num_rows($result);
if ($num_rows!=0){
login i hasło poprawne
} else brak dostepu
Jeśli dane nie są sprawdzane pod kątem metaznaków (konkretnie - '), sytuacja moŜe
wyglądać bardzo źle. Wpisując jako login i hasło:
' or ''='
zapytanie wysłane do serwera bazy danych ma postać:
SELECT * FROM use WHERE Login='' or ''='' AND Password='' or ''='';
Oczywiście ' ' = ' ' , więc warunek z klauzuli WHERE jest zawsze prawdziwy.
27
1. Charakterystyka najwaŜniejszych metod ataku
Gdy aplikacja sprawdza, czy zapytanie zwróciło jeden wiersz i tylko wtedy dokonuje
autoryzacji wystarczy znać albo nazwę uŜytkownika albo hasło:
login :
'janek' and ''='' or ''='
password : ' or ''='
W tym przypadku zapytanie ma postać:
SELECT * FROM user
Password='' or ''='';
WHERE
Login='janek'
and
''=''
or
''=''
AND
Inny sposób to wykorzystanie SQL'owego komentarza:
login : '/*
password : */ OR ''='
O ile powyŜsze działania mogą prowadzić do nieautoryzowanego dostępu do
danych, to nie trudno sobie wyobrazić napastnika, który wykorzystując błędy niszczy
bazę danych kasując całą tabelę. Np. podając login:
x';DROP TABLE user;--
Zapytanie sql’owe przyjmie postać:
SELECT * FROM user WHERE Login='x';
DROP TABLE user;
--and ''='' or ''='' AND Password='' or ''='';
1.5 Socjotechnika (Social Engineering)
Socjotechnika to wywieranie wpływu na ludzi i stosowanie perswazji w celu
oszukania ich tak, aby uwierzyli, Ŝe socjotechnik jest osobą o sugerowanej przez siebie,
a stworzonej na potrzeby manipulacji, toŜsamości. Dzięki temu socjotechnik jest
w stanie wykorzystać swoich rozmówców, przy dodatkowym (lub nie) uŜyciu środków
technologicznych, do zdobycia poszukiwanych informacji8.
Socjotechnika polega na wykorzystywaniu niewiedzy i naiwności ludzi w celu
uzyskania poufnych informacji. InŜynieria socjalna, we współczesnym świecie jest
dziedziną hackingu zajmującą się aspektami manipulacji ludźmi. Socjotechnik
przedstawia się jako osoba, która posługując się manipulacją wydobywa od innych
informacje. Nie moŜna jednoznacznie stwierdzić, iŜ jest to wymuszenie przekazania
8
K. Mitnick, W. Simon „Sztuka podstępu. Łamałem ludzi, nie hasła”, Helion 2003
28
1. Charakterystyka najwaŜniejszych metod ataku
danych. Socjotechnik do kaŜdego ataku dokładnie się przygotowuje. Często poświęca
trochę czasu na poznanie Ŝargonu firmy, specyfiki jej działalności. Metod stosowanych
przez napastnika korzystającego z socjotechniki moŜe być wiele i zaleŜą one jedynie od
jego pomysłowości i wyobraźni. Najprostszą z nich moŜe być wykonanie telefonu do
firmy i podając się za jej pracownika, serwisanta czy nawet za samego szefa
poproszenie o hasła dostępu. Warto tutaj zaznaczyć, Ŝe celem socjotechnika nie musi
być firma. Mogą nim być np. banki czy jednostki samorządu terytorialnego.
Wyzwaniem dla niego są miejsca, w których trudniej o pozyskanie informacji. Zapewne
ogromną satysfakcję daje zdobycie danych z jednostek, które, zgodnie z ich
przeznaczeniem, powinny te informacje chronić. Nierzadko w firmach i instytucjach
bagatelizuje się waŜność kaŜdej informacji. Dba się o te z klauzulą „niejawne”, a te bez
oznaczenia mogą swobodnie „wypływać”. Z drugiej strony coraz częściej mówi się
o bezpieczeństwie
firm,
co
moŜe
sugerować
powolne
wprowadzenie
zmian
organizacyjnych, proceduralnych w celu zapewnienia bezpieczeństwa informacji.
NajwaŜniejsze są tutaj szkolenia i odpowiednie zapisy w polityce bezpieczeństwa
kaŜdej firmy czy instytucji oraz ich realizacja. NaleŜy połoŜyć w nich nacisk na
klasyfikowanie informacji jako niejawne oraz na takie, które są jawne. JednakŜe przy
tych ostatnich naleŜy równieŜ spisać procedury ich przekazywania, szczególnie na
zewnątrz. Nie moŜna dopuścić do sytuacji, w której informacje z kategorii „jawne”,
przekazywane są kaŜdej zainteresowanej nimi osobie. Sposób podawania danych
powinien się odbywać poprzez róŜnego typu moŜliwości uwierzytelniania osoby, która
o nie prosi.
Więcej na temat wykorzystania socjotechniki moŜna znaleźć w cytowanej juŜ
ksiąŜce K. Mitnick'a, byłego hackera, który opanował socjotechnikę do perfekcji,
a obecnie zajmującego się bezpieczeństwem systemów komputerowych.
29
2. Przegląd narzędzi ataku
2.1 Nmap - skanowanie portów i hostów w sieci
Jednym z najbardziej popularnych skanerów sieci, który moŜe być uŜyty zarówno
do wykrywania hostów jak i do skanowania portów danego hosta jest program Nmap
(Network Mapper)9. Dostępny jest on w wersjach dla róŜnych systemów operacyjnych,
takich jak Linux, Microsoft Windows, FreeBSD, OpenBSD, Solaris, IRIX, Mac OS X,
HP-UX, NetBSD, Sun OS i innych.
2.1.1
Wyszukiwanie hostów
Wyszukiwanie hostów w programie Nmap (opcja –sP) działa podobnie do
tradycyjnego programu ping wysyłającego komunikat protokołu ICMP typu Echo
Request (prośba o odpowiedź, lub tzw. ping). Protokół ICMP słuŜy do diagnostyki
i sterowania przepływem komunikatów w sieci. Po wysłaniu pakietu ICMP, Nmap
czeka na odpowiedź od hosta, który był jego adresatem. PoniŜszy przykład ilustruje
wynik działania programu po przeszukaniu lokalnej sieci na obecność uruchomionych
hostów:
E:\nmap-3.93>nmap -sP 192.168.1.1-254
Starting nmap 3.93 ( http://www.insecure.org/nmap ) at 2005-12-03
11:44
Host (192.168.1.7) appears to be up.
Host trynka (192.168.1.20) appears to be up.
Host bartek (192.168.1.202) appears to be up.
Nmap finished: 254 IP address (3 host up) scanned in 14.837 seconds
Nmap zwrócił informację, Ŝe trzy hosty w sieci o adresie 192.168.1.0/24
odpowiedziały na wysłany pakiet. Są to komputery o adresach IP 192.168.1.7,
192.168.1.20 oraz 192.168.1.202.
9
Nmap jest programem darmowym i moŜna go pobrać z www.insecure.org
2. Przegląd narzędzi ataku
PoniewaŜ w wielu hostach pakiety protokołu ICMP są blokowane (np. przez
zapory ogniowe, rutery, itp.), moŜliwa jest próba nawiązania połączenia TCP
z portem 80 (standardowy port usługi WWW) lub na innym dowolnym porcie (opcja –
P). Zwykle, gdy skanowany host nie udostępnia Ŝadnej usługi (wszystkie porty są
zamknięte), wysyłany jest przez jego podsystem TCP/IP pakiet RST, co w tym
przypadku równieŜ wystarcza, aby stwierdzić, Ŝe dany komputer jest uruchomiony.
Jednak nie wszystkie systemy operacyjne postępują zgodnie ze specyfikacją
protokołów, dlatego brak odpowiedzi nie daje 100% pewności odnośnie braku istnienia
skanowanego hosta.
2.1.2
Skanowanie portów TCP
Podstawową metodą skanowania jest próba nawiązania połączenia z otwartym
portem zdalnego hosta (opcja -sT). W poniŜszym przykładzie, Nmap próbuje połączyć
się z portami od 1-1024 (tzw. well known ports - dobrze znane porty) hosta o adresie IP
192.168.1.20. Porty 1-1024 skanowane są domyślnie natomiast, jeŜeli istnieje potrzeba
skanowania portów powyŜej 1024, naleŜy to sprecyzować podczas uruchamiania
programu. Te porty, które odpowiedzą inaczej niŜ pakietem z ustawioną flagą RST
uznaje się za otwarte, pozostałe traktowane są jako zamknięte.
E:\nmap-3.93>nmap -sT 192.168.1.20
Starting nmap 3.93 ( http://www.insecure.org/nmap ) at 2005-12-03
14:48
Interesting ports on 192.168.1.20:
(The 1661 ports scanned but not shown below are in state: filtered)
PORT
STATE SERVICE
25/tcp
open
smtp
119/tcp
open
nntp
135/tcp
open
msrpc
139/tcp
open
netbios-ssn
143/tcp
open
imap
445/tcp
open
microsoft-ds
1025/tcp open
NFS-or-IIS
MAC Address: 00:20:ED:41:29:A5 (Giga-byte Technology CO.)
Nmap finished: 1 IP address (1 host up) scanned in 170.966 seconds
31
2. Przegląd narzędzi ataku
Jak widać, w badanym systemie zostało wykrytych siedem otwartych portów.
W celu wykrycia usług RPC10, naleŜy wprowadzić opcję -sR.
Ciekawy jest sposób, w jaki program działa w zaleŜności od uŜytych opcji
skanowania. W przypadku opcji: –sT, -sR oraz –sP (ping scan) zawsze najpierw
wysyłany jest pakiet SYN. Gdy zostanie wysłana odpowiedź SYN/ACK, Nmap
odpowiada pakietem ACK i od razu wysyła pakiet RST kończąc w ten sposób wymianę
pakietów. Wynikiem działania jest informacja, Ŝe skanowany port jest otwarty, a host
jest dostępny. Gdy Nmap otrzyma odpowiedź RST, oznacza to zamknięty port, ale
skanowany komputer jest dostępny. Gdy nie ma odpowiedzi, zakłada się, Ŝe port jest
zablokowany przez zaporę sieciową lub skanowany host nie działa. Jednak połączenia
nawiązywane w powyŜszy sposób raczej na pewno zostaną odnotowane w logach
systemowych skanowanej maszyny. Z punktu widzenia włamywacza jest to absolutnie
nie do zaakceptowania. I właśnie tutaj okazuje się jak bardzo wszechstronnym
narzędziem jest Nmap. UŜycie opcji -sS programu powoduje, Ŝe program nawiązuje
sesję ze skanowanym hostem wysyłając pakiet SYN, ale potem zachowuje się
niezgodnie ze specyfikacją protokołu TCP. Gdy otrzyma pakiet z ustawioną flagą RST
będzie to oznaczało, Ŝe port jest zamknięty. Natomiast, jeśli otrzyma w odpowiedzi
pakiet SYN/ACK, zamiast wysłać pakiet SYN (zgodnie ze specyfikacją) wysyła pakiet
RST. PoniewaŜ zachowanie to powoduje zerwanie procesu ustanawiania sesji, wiele
usług potraktowanych w ten sposób nie odnotuje takiego połączenia w logach
bezpieczeństwa. Skoro nie ma śladu w logach, intruz moŜe spokojnie skanować
wszystkie porty. Mimo Ŝe większość usług nie odnotuje przerwanego nawiązywania
sesji, większość systemów IDS (Intrusion Detection System) oraz zapór ogniowych
(firewalls) jest bardzo uczulona na podobne praktyki. Najnowsze systemy operacyjne
i systemy zapisujące zdarzenia odnotowują wszelkie nieprawidłowości, takŜe nie do
końca nawiązane sesje lub wszelkie anomalia (zdarzenia niezdefiniowane protokołem).
Jednak w Internecie funkcjonuje sporo starszych systemów, często w Ŝaden sposób
niezabezpieczonych. Skanowanie tym sposobem określane jest mianem skanowania
niewidzialnego – stealth.
Jednym z pomysłów na ominięcie powyŜszej niedogodności jest wykorzystanie
cechy protokołu TCP, w którym, w przypadku próby nawiązania połączenia
10
Remote Procedure Call - usługi pozwalające na zdalne wykonywanie zadań; np.: SSH, X11, HTTP i
inne
32
2. Przegląd narzędzi ataku
z zamkniętym portem wysyłany jest pakiet RST. Opcja -sF programu uruchamia
skanowanie FIN typu stealth. Pakiet TCP z ustawioną flagą FIN normalnie kończy sesję
między dwoma hostami. Gdy jednak zostanie wysłany bez wcześniejszego
ustanowienia sesji, otwarte porty powinny go zignorować, natomiast w przypadku
portów zamkniętych powinien zostać wysłany pakiet RST.
Innymi metodami skanowania typu stealth jest wysyłanie przez Nmap
pakietów z aŜ trzema bez sensownie (z punktu widzenia specyfikacji protokołu TCP)
ustawionymi flagami (opcja -sX) czy skanowanie puste (opcja -sN), w którym Nmap
próbuje nawiązać połączenie wysyłając pakiet bez ustawionych flag11.
Niestety nie wszystkie systemy operacyjne mają prawidłowo (zgodnie z
zaleceniem) zaimplementowaną obsługę stosu protokołów TCP/IP. Oznacza to, Ŝe nie
muszą się zachowywać tak, jak opisano wcześniej. Dobrze zabezpieczone hosty mogą
teŜ wysyłać fałszywe odpowiedzi. Istnieje teŜ grupa inteligentnych zapór ogniowych,
które zapisują w swoich tablicach stanów historię przepływu pakietów, potrafiąc
wyciągać wnioski i odpowiednio do potrzeb działać na podstawie ruchu pakietów
odbywającego się w określonym czasie.
2.1.3
Skanowanie portów UDP
Za pomocą programu Nmap moŜna równieŜ badać porty bezpołączeniowego
protokołu UDP. Określenie bezpołączeniowy oznacza, Ŝe pakiety wysyłane są bez
uprzedniego zestawienia sesji jak to ma miejsce w komunikacji poprzez protokół TCP.
W komunikacji przy pomocy protokołu UDP nie występują potwierdzenia otrzymania
informacji, dlatego pakiety te mogą się gubić w sieci. Nmap z opcją -sU wysyła pusty
pakiet UDP i czeka na informację zwrotną ICMP Port unreachable (port niedostępny).
Otrzymanie jej oznacza zamknięty port. Gdy skaner nie otrzyma Ŝadnej informacji
zwrotnej, zakłada się, Ŝe port jest otwarty. Trzeba teŜ wybadać, czy zapora sieciowa nie
blokuje pakietów ICMP wysyłanych do skanowanego hosta, poniewaŜ w takim
przypadku Nmap moŜe zwrócić informację, Ŝe wszystkie porty są otwarte, co moŜe
nie być prawdą. Mając na uwadze ten problem, program domyślnie próbuje wysłać
11
Więcej o opcjach programu i przykładach zastosowań moŜna znaleźć w dokumentacji programu, który
jest dostępny pod adresem http://www.insecure.org/nmap/man/
33
2. Przegląd narzędzi ataku
pakiet ICMP Echo request (tzw. ping) do skanowanego hosta zanim rozpocznie
skanowanie.
2.1.4
Inne funkcje programu
Dla hakera, nie mniej waŜne od zgodnych z rzeczywistością wyników
skanowania jest równieŜ skuteczne ukrywanie samego faktu skanowania. Nmap
pozwala na wykorzystanie kilku technik zmniejszających ryzyko wykrycia.
Pierwszą z nich jest FTP Bounce (odbijanie FTP). Technika ta wykorzystuje
pewną słabość zdefiniowaną w specyfikacji protokołu FTP. Kiedy nawiązywane jest
połączenie z serwerem FTP za pomocą klienta FTP, klient nawiązuje domyślnie
połączenie z serwerem poprzez port 21 TCP serwera. Jest to tzw. połączenie kontrolne,
słuŜące do przesyłania informacji diagnostycznych i konfiguracyjnych. Aby przesyłać
strumienie danych, serwer musi nawiązać osobne połączenie z klientem. Oczywiście
klient zacznie nasłuchiwać na nowym porcie, ale najpierw musi poinformować o tym
serwer FTP. SłuŜy do tego komenda PORT, za pomocą której klient prosi
o zainicjowanie połączenia podając adres IP i numer portu, na którym nasłuchuje.
Metoda ta nosi nazwę aktywnego transferu. Okazuje się jednak, Ŝe klient wcale nie
musi podać swojego adresu IP. MoŜna więc, wykorzystać serwer FTP do nawiązania
połączenia z innym hostem niŜ nasz klient FTP i przechwycić informacje, które
serwerowi zwróci ów host.
Z aktywnym transferem wiąŜe się teŜ pewien problem. OtóŜ wiele klientów
FTP znajduje się za zaporą sieciową lub urządzeniem NAT (Network Address
Translation), które nie dopuszczają ruchu FTP inicjowanego z zewnątrz. W takim
przypadku technika FTP bounce jest idealnym rozwiązaniem. Napastnik uzyskuje
dostęp do serwera FTP, a serwer FTP uzyskuje dostęp do poszczególnych hostów
wewnątrz strefy zwracając potrzebne informacje. Obecnie najczęściej komunikacja FTP
odbywa się w trybie pasywnym - klient inicjuje zarówno połączenie kontrolne jak i
transfer danych, co pozwala na korzystanie z FTP mimo obecności urządzeń
filtrujących, takich jak zapory sieciowe (pod warunkiem, Ŝe reguły w nich zdefiniowane
pozwalają na to komputerom z sieci wewnętrznej). Jednak w Internecie działa sporo
starych serwerów FTP podatnych na technikę FTP bounce i pozwalających na
wykorzystywanie aktywnego transferu. Nmap potrafi nawiązać połączenie FTP w trybie
34
2. Przegląd narzędzi ataku
aktywnym, a następnie wysłać do serwera FTP komendę PORT zawierającą adres IP
skanowanego hosta oraz numery portów, które mają być sprawdzone.
Drugą
techniką
zmniejszającą
ryzyko
wykrycia
jest
wykorzystanie
fragmentacji (opcja -f). Pakiety te wysyłane są z uciętymi nagłówkami TCP imitując
uszkodzone lub zdefragmentowane pakiety. Niektóre słabsze zapory ogniowe nie radzą
sobie z tego typu przepływem danych.
Trzecią techniką oferowaną przez Nmap jest wykorzystanie tzw. przynęty. Dzięki opcji
-D uŜytkownik moŜe wprowadzić kilka adresów IP oddzielonych przecinkami. Nmap
rozpocznie skanowanie wykorzystując te adresy jako adresy źródłowe. Dodatkowo
zostanie pomieszana kolejność skanowanych portów dla kaŜdego adresu. W logach
skanowanego systemu pojawi się więc kilka prób skanowania róŜnych portów
z róŜnych adresów IP i tylko jeden z tych adresów będzie prawdziwy.
Kolejną techniką mogącą ukryć fakt skanowania jest wykorzystywana domyślnie przez
Nmap randomizacja numerów skanowanych portów. O wiele trudniej jest znaleźć
w logach wpisy dotyczące skanowania, gdy numery portów wybierane są w kolejności
losowej, a nie po kolei np. od najmniejszego do największego.
Warto równieŜ wspomnieć, Ŝe program ten zawiera rozbudowaną bazę danych,
zawierającą luki w stosach TCP/IP wielu wersji, wielu systemów operacyjnych. Baza
ta, słuŜąca identyfikacji systemów operacyjnych i ich wersji na odległość uwaŜana jest
za jedną z najlepszych12. Do identyfikacji systemu komputera Nmap potrzebuje dostępu
do zamkniętych i otwartych portów TCP oraz działających usługach. Gdy program
napotka na system, którego nie moŜe rozpoznać, tworzy dla tego systemu „odcisk
palca” i prosi o przesłanie go twórcom bazy danych, by został uwzględniony
w następnych wersjach programu.
2.2 John the Ripper - atak na hasła
Jednym z najpopularniejszych programów umoŜliwiającym łamanie haseł jest
John the Ripper13 autorstwa Solar Designer. Dostępny jest on w wersji dla wielu
12
William. R. Chestwick, Steven M. Bellovin, Aviel D. Rubin „Firewalle i bezpieczeństwo w sieci”
Helion 2003
13
Źródła programu jak i pełna jego dokumentacja dostępna jest na stronie www.openwall.com/john
35
2. Przegląd narzędzi ataku
systemów operacyjnych (Unix, Linux, Windows, BeOS, OpenBSD, FreeBSD, IRIX,
AIX, HP-UX) oraz dla róŜnych platform sprzętowych (Intel, AMD, RISC).
Niewątpliwie jego zaletą jest łatwość uŜycia, zatrzymywanie i wznawianie sesji oraz
uŜywanie własnych, zoptymalizowanych modułów. John the Ripper potrafi łamać hasła
dostarczone w jednym z kilku formatów. Hasła mogą być zapisane za pomocą
algorytmów DES, Md5, Blowfish, NT LM. Program domyślnie potrafi odczytać
informacje zawarte w plikach passwd, shadow oraz z pliku wyjściowego programu
pwdump14. JeŜeli pliki zostały utworzone w inny sposób, naleŜy doprowadzić je do
formatu wymienionych plików. Aby uruchomić aplikację z domyślnymi ustawieniami,
wystarczy podać jako argument plik z haszami. Program automatycznie wybierze
algorytm kodowania i rozpocznie pracę. Łamanie haseł nie polega na ich
rozszyfrowywaniu, ale na szyfrowaniu losowo generowanych lub podanych w inny
sposób ciągów znaków i porównywanie ich z zaszyfrowanym wzorcem. JeŜeli
zaszyfrowana postać wygenerowanego ciągu jest identyczna jak poszukiwany wzorzec,
wtedy hasło uznaje się za złamane. Program zapisuje wszystkie złamane hasła w pliku
tekstowym „john.pot”. W zaleŜności od złoŜoności hasła, szybkości maszyny
dokonującej porównań oraz przyjętej metody łamania hasła, program moŜe
potrzebować od kilku sekund do wielu lat czasu na wykonanie zadania.
2.2.1
Atak słownikowy na hasło
PoniewaŜ losowe dopasowywanie haseł jest mało efektywne czasowo, John the
Ripper pozwala na wykorzystanie przygotowanych wcześniej zestawów (słowników)
zawierających najczęściej uŜywane hasła lub inne wyrazy (ciągi znaków). Aby
skorzystać z pliku słownika, naleŜy podać parametr -wordfile: oraz jako argument
nazwę pliku zawierającego ciągi wzorcowe (nazwę słownika). Siłą programu John the
Ripper jest moŜliwość definiowania i stosowania reguł (opcja –rules). Reguły te
pozwalają na dokonanie permutacji podstawowej zawartości pliku słownika. Definicja
zasad (reguł) znajduje się w pliku john.ini (dla systemu Windows) lub john.conf (dla
systemów UNIX/Linux).
14
Program do wydobywania zakodowanego hasła w systemach Windows
36
2. Przegląd narzędzi ataku
W sytuacji, gdy administrator zdefiniował w systemie operacyjnym zasadę,
według której wszystkie hasła mają się rozpoczynać (przykładowo) od cyfry,
standardowy słownik, zawierający tylko ciągi znaków rozpoczynające się od litery
będzie bezuŜyteczny. Korzystając jednak z mechanizmu wyraŜeń regularnych, moŜna
zdefiniować regułę, dzięki której John the Ripper korzystając z zawartości słownika,
doda do kaŜdego słowa cyfrę od 0 do 9. Na przykład dla jednego wzorca (z pliku
słownika) „hasło”, utworzonych zostanie 10 nowych wzorców w postaci: „0haslo”,
„1haslo”, „2haslo”,itd. Przykład definicji powyŜszej reguły rozwiązującej powyŜszy
problem i zamieszczonej w pliku konfiguracyjnym (john.conf lub john.ini) wygląda
następująco:
# Dodaj cyfry do wzorca
^[0123456789]
Symbol „ ^ ” oznacza, Ŝe modyfikacja wzorca powinna mieć miejsce na jego początku.
W nawiasach kwadratowych zamieszczono symbole, które mają być po kolei
wykorzystane.
Mechanizm wykorzystujący reguły, pozwala na tworzenie równieŜ skomplikowanych
kombinacji. Przykładowo w pliku konfiguracyjnym programu znajduje się reguła:
-c >2(?a!?Xc
Poszczególne znaki uŜyte w regule oznaczają:
-c – zastosuj tę regułę, jeśli hasło zawiera małe i wielkie litery
>2 – reguła dotyczy wzorców zawierających więcej niŜ 2 znaki
(?a – jeśli pierwszy znak wzorca nie naleŜy do klasy „a” (litery [a-z A-Z]) pomiń regułę
!?X – pomiń wzorzec, jeśli znajduje się on w klasie X (klasa ta zdefiniowana jest jako
liczby i litery [a-z A-Z 0-9])
c – zamień na wielkie litery
37
2. Przegląd narzędzi ataku
Oprócz reguł pozwalających na umieszczanie znaków w istniejących juŜ
wzorcach, istnieje moŜliwość zamieniania znaków we wzorcu na inne. Oto kilka
przykładów:
s?v. – wszystkie samogłoski zostaną zastąpione znakiem kropki
@?v – wszystkie samogłoski zostaną usunięte
so0 – wszystkie litery ‘o’ zostaną zastąpione cyfrą ‘0’
Obszerny opis reguł wraz z przykładami dostępny jest w dokumentacji programu.
2.2.2
Metoda siłowa (brute force)
Wykorzystanie słownika pozwala na bardzo szybkie odgadywanie haseł. Jednak,
gdy wszystkie zapisane i skonfigurowane kombinacje nie przyniosą rezultatu,
John the Ripper rozpoczyna działanie w sposób najbardziej skuteczny i zarazem
najbardziej czasochłonny, próbując kaŜdej kombinacji znaków. Zanim jednak
wykorzystana zostanie metoda siłowa, zaleca się wypróbowanie metody single crack
programu (opcja -single). Polega ona na generowaniu haseł na podstawie informacji
wydobytych z pola login i GECOS15 pliku haseł, wraz ze zdefiniowanymi regułami.
Metoda ta jest bardzo szybka a biorąc pod uwagę, Ŝe wielu uŜytkowników stosuje hasła
utworzone na podstawie swojego loginu, imienia lub nazwiska, moŜe okazać się
niezwykle skuteczna. Jeśli jednak i ta metoda nie przyniesie rezultatów w postaci
złamania zaszyfrowanego hasła naleŜy przejść do metody siłowej (opcja –
incremental:), która polega na generowaniu haseł składających się z wszystkich
moŜliwych kombinacji znaków. W pliku konfiguracyjnym programu zostały
zdefiniowane cztery reguły (opcje), według których moŜna przeprowadzać atak brute
force a są to :
15
•
incremental:All – generowane hasła zawierają wszystkie znaki
•
incremental:Alpha - generowane hasła składają się tylko z małych liter
•
incremental:Digits – generowanie haseł z składających się z samych cyfr
GECOS – pole komentarza, w którym mogą znajdować się informacje o uŜytkowniku np. imię i
nazwisko
38
2. Przegląd narzędzi ataku
•
incremental:LanMan – podobnie jak incremental:All, ale bez małych liter
MoŜna równieŜ tworzyć własne zestawy znaków, które będą wykorzystywane
w trakcie łamania hasła. NaleŜy jednak mieć świadomość, Ŝe ilość moŜliwych
kombinacji moŜe być ogromna. Dla przykładu, ilość kombinacji dla opcji LanMan
w przypadku hasła składającego się z 6 znaków wynosi prawie 108 miliardów. Dla
komputera, który potrafi sprawdzić 150000 kombinacji w ciągu sekundy, w najgorszym
wypadku złamanie hasła będzie trwało prawie 9 dni. Zwiększając hasło o jeden znak
(do 7), liczba kombinacji wzrasta do ponad 7 trylionów. W tym przypadku łamanie
hasła zajmie w najgorszej sytuacji ponad półtora roku. Biorąc to wszystko pod uwagę,
naleŜy dopasować ustawienia opcji oraz tworzyć własne reguły w celu maksymalnego
uściślenia zasad, doprowadzając do maksymalnego skrócenia czasu potrzebnego na
złamanie hasła.
W tabeli 2 przedstawiono faktyczny czas łamania przykładowych haseł
programem John the Ripper w wersji 1.4, na komputerze z procesorem 1,7 GHz, na
którym to średnia prędkość generowanych kombinacji znaków wynosi 135000 na
sekundę (dla metody siłowej). Czas podano w formacie gg:mm:ss.
login
bartek
bartek
hasło
Metoda łamania
Rozkodowane
zakodowane
słownikowa
Siłowa
bartek42
UFzylEoscmXEM
-
00:00:01
ketrab
UFg2FXaM.sM7Y
-
00:00:01
(login pisany od końca)
user
74826745
UFJy1w2tcyw3Q
-
00:02:48
root
Rower
UfywEDmtVctfI
00:00:06
00:25:10
root
H%7z@
UFOB/ald/ckWw
-
14:37:02
Tabela 2 Czas łamania haseł w zaleŜności od jego skomplikowania
(źródło: opracowanie własne)
Otrzymane wyniki wskazują, Ŝe hasła powstałe z loginu, cyfr lub pospolitych
wyrazów są bardzo łatwe do złamania. Jedynie stosowanie wszystkich znaków
klawiatury w haśle gwarantuje, Ŝe hasło będzie silne i trudne do złamania w rozsądnym
czasie. W przykładzie, dla hasła pięcioznakowego potrzeba było ponad 14 godzin, aby
je rozszyfrować. Wystarczy jednak zwiększyć hasło do 7 znaków, aby na jego złamanie
potrzeba było około 17 lat.
39
2. Przegląd narzędzi ataku
2.3 Ettercap – węszenie i przechwytywanie
Ettercap jest programem umoŜliwiającym zarówno podsłuchiwanie sieci
lokalnych jak i równieŜ przejęcie, modyfikację i odesłanie pakietów do nadawcy, który
był ich adresatem. Program ten jest darmowy i moŜe być on uruchomiony w systemach
Linux, FreeBSD, OpenBSD, NetBSD, Mac OS X, Windows 2000/XP/2003, Solaris.
PoniewaŜ działanie Ettercap’a opiera się na ARP-spoofing’u moŜe być on
wykorzystywany w sieciach przełączanych opartych na switch’ach.
PoniŜej przedstawiono niektóre moŜliwości, jakimi dysponuje program Ettercap.
Tworzenie listy hostów sieci.
Program wysyła pojedyncze pakiety ARP - REQUEST (zapytanie) na
wszystkie numery IP w sieci LAN, a dzięki pakietom ARP - REPLY (odpowiedź na
zapytanie) ma moŜliwość stworzenia listy wszystkich działających urządzeń
sieciowych. Dzięki tej metodzie moŜliwe jest wykrycie działających hostów, które nie
odpowiadają na tzw. „ping”. NaleŜy jednak podchodzić z ostroŜnością do badania sieci
o adresach klasy B (maska podsieci 255.255.0.0) poniewaŜ program będzie wysyłał
65025 pakietów ARP.
SSH1
Program umoŜliwia przechwytywanie informacji o loginie, hasłach oraz
danych w połączeniach uŜywających protokołu SSH1.
SSL
MoŜliwość
przechwytywania
danych
przesyłanych
protokołem
SSL,
fałszowanie przesyłanych certyfikatów i rozszyfrowywanie sesji.
Characters injection
Program umoŜliwia wysyłanie dowolnych znaków, dzięki czemu moŜliwe jest
wysyłania rozkazów do serwera i odpowiedzi do klienta w celu zachowania aktywnego
połączenia w trakcie ataku MITM (Man In the Middle)
40
2. Przegląd narzędzi ataku
Filtrowanie pakietów
Ettercap umoŜliwia zdefiniowanie filtrów wyszukujących ciągi znaków
w pakietach, przesyłanych za pomocą protokołów TCP i UDP. Tym sposobem moŜliwe
jest całkowite blokowanie pakietów zawierających określone dane lub fałszowanie
danych w przechwyconych pakietach i podmienione zostają odesłane do adresata.
Atak typu Man In the Middle
Program Ettercap umoŜliwia przeprowadzenie ataku typu „Man In the Middle”
czyli całkowite przejęcie ruchu sieciowego pomiędzy dwoma hostami. W trakcie tego
ataku moŜna skorzystać z czterech metod działania:
•
metoda ARP – polega ona na zatruwaniu ARP cache ofiary i podawaniu się za
inny host
•
metoda ICMP – polega na wysyłaniu przez napastnika fałszywych wiadomości
ICMP do hostów w sieci i podawaniu się za bramę sieciową (gateway). Dzięki
tej metodzie wszystkie połączenia z Internetem kierowane są do napastnika,
który następnie sam kieruje ruch do prawdziwej bramy sieciowej
•
metoda DHCP – napastnik podaje się za serwer DHCP i próbuje wysyłać
fałszywe odpowiedzi. Tą metodą program jest w stanie przejąć cały ruch
wychodzący do Internetu
•
metoda PORT – stosowana jest w sieciach, w których metoda zatruwania ARP
cache nie przynosi efektu (np.: poprzez stosowanie statycznego mapowania
ARP)
Oprócz wymienionych funkcji, Ettercap umoŜliwia wychwytywanie haseł
przesyłanych za pośrednictwem protokołów TELNET, FTP, POP, RLOGIN, SSH1,
ICQ, MySQL, HTTP, X11 i wielu innych. MoŜliwe jest równieŜ zbieranie informacji
o sieci, takich jak: rodzaj uŜywanego systemu operacyjnego, uruchomione usługi,
otwarte porty, numery IP oraz adresy MAC16.
16
Program jak i jego pełną dokumentację moŜna pobrać z http://ettercap.sourceforge.net
41
2. Przegląd narzędzi ataku
2.4 Narzędzia ataku DDoS
Według raportu organizacji CERT Polska zajmującej się bezpieczeństwem
sieci, w Polsce w 2004 roku odnotowano 77 przypadków ataków typu DoS i DDoS17.
Ataki tego typu przeprowadzone mogą być za pomocą specjalnych narzędzi, z których
najbardziej znane to Trinoo, Tribal Flood Network oraz Stacheldraht. Działanie ich
opiera się na budowie sieci DDoS składającej się z komputerów z zainfekowanym
systemem, do których to systemów atakujący wysyła komendy rozpoczynające atak
DDoS na wybrany cel. Innym sposobem przeprowadzenia ataku tego typu jest uŜycie
robaków pocztowych, które instalując się w systemie mają określony z góry czas i cel
ataku.
2.4.1
Trinoo
Program Trinoo, po raz pierwszy został odkryty na komputerach z systemem
Solaris 2.x. Włamanie do tych systemów było moŜliwe dzięki błędowi przepełnienia
bufora w usługach RPC (stadc, cmsd, ttdbserverd)18. Początkowo sądzono, Ŝe Trinoo
jest programem typu backdoor, umoŜliwiającym przesyłanie komend za pośrednictwem
protokołu UDP do zainfekowanego systemu, oraz słuŜącego podsłuchiwaniu sieci.
Dopiero później odkryto, Ŝe jego głównym celem jest przeprowadzanie ataku typu
DDoS. W 1999 roku sieć Trinoo składała się z setek maszyn, z których część
przeprowadziła 17 sierpnia 1999 roku udany atak na jeden z serwerów Uniwersytetu
w Minnesocie, co spowodowało paraliŜ sieci przez prawie dwa dni19. Działanie Trinoo
opiera się na budowie trójstopniowej architektury sieci DDoS, co zostało przedstawione
na rys.10
17
http://www.cert.pl/raporty
18
http://www.cert.org/incident_notes/IN-99-04.html
19
D. Dittrich: ‘The DoS Project's trinoo distributed denial of service attack tool’, University of
Washington, http://staff.washington.edu/dittrich/misc/trinoo.analysis
42
2. Przegląd narzędzi ataku
Rys. 10 Schemat trójstopniowej sieci DDoS
(źródło: opracowanie własne)
Napastnik, aby rozpocząć atak musi zalogować się do głównych serwerów
master i wydać komendę ataku. Komunikuje się on z serwerami master poprzez telnet
na porcie 27665 wykorzystując protokół TCP. KaŜdy z tych serwerów kontroluje wiele
komputerów zombi, czyli maszyn generujących powódź pakietów. Komunikacja
pomiędzy serwerami master a zombi odbywa się na porcie 27444 (protokół UDP),
natomiast komunikacja pomiędzy zombi a serwerami master na porcie 31335 (protokół
UDP). Atak właściwy prowadzony jest za pomocą techniki UDP Flood. Program
dostępny jest w systemach Unix, Linux i Windows.
2.4.2
TFN (Tribal Flood Network)
Podobnie jak w Trinoo, program Tribal Flood Network20 umoŜliwia budowę
trójstopniowej architektury sieci DDoS. TFN umoŜliwia przeprowadzenie róŜnych
rodzajów ataków, takich jak powódź pakietów SYN, UDP, ICMP oraz ataki typu
SMURF. Komunikacja w TFN moŜe być realizowana z wykorzystaniem protokołów
TCP, UDP oraz ICMP.
Zaletą programu jest moŜliwość wyeliminowania jakiejkolwiek komunikacji pomiędzy
klientem (odpowiednik serwera master z programu Trinoo) a komputerami zombi
w stworzonej sieci DDoS za pośrednictwem protokołów TCP lub UDP. Przekazywanie
komunikatów odbywa się wówczas za pośrednictwem pakietów ICMP Echo Reply
w postaci 16 bitowej liczby umieszczonej w polu id pakietu. Korzystając jednak
20
D. Dittrich: ‘The DoS Project's Tribal Flood Network distributed denial of service attack tool’,
University of Washington, http://staff.washington.edu/dittrich/misc/tfn.analysis
43
2. Przegląd narzędzi ataku
z takiego rodzaju komunikacji, niemoŜliwa jest autoryzacja wydawanych komend.
Z drugiej jednak strony, ten sposób komunikowania moŜe znacznie utrudnić wykrycie
ataku.
2.4.3
Stacheldraht
Stacheldraht21 jest narzędziem łączącym cechy programów Trinoo i TFN.
Narzędzie umoŜliwia budowanie sieci DDoS podobnej do tej z TFN, w której znajdują
się komputery główne (master) i podrzędne (zombi). Nowością zastosowaną w tym
pakiecie jest moŜliwość wymuszenia na maszynach master i zombi aktualizacji swojego
kodu, poprzez pobranie go z serwera podanego w komendzie. Pobranie plików
następuje poprzez protokół RPC i mogą być do tego wykorzystane inne konta zdobyte
przez włamywacza. Kolejną cechą tego programu odróŜniającą go od wcześniej
wymienionych jest kodowana transmisja wewnątrz sieci DDoS pomiędzy serwerami
master a komputerami zombi, co dość dobrze utrudnia wykrycie jej przez systemy
wykrywania włamań IDS (Intrusion Detection System).
2.4.4
Atak DDoS z wykorzystaniem robaków pocztowych
Tendencje w rozwoju ataków DDoS przesuwają się jednak w kierunku
tworzenia autonomicznych agentów, które w Ŝaden sposób nie komunikują się ze sobą.
W przeciwieństwie do wcześniej wymienionych narzędzi, duŜą rolę w atakach DDoS
odgrywają robaki rozsyłane za pomocą poczty elektronicznej. Mają one z góry
określony scenariusz ataku, a więc: czas, długość jego trwania oraz cel. Zapewnia to
bezpieczeństwo i duŜą anonimowość agresora, gdyŜ bardzo rzadko moŜna ustalić
pierwszą infekcję. Jednym z najbardziej znanych tego typu robaków jest MyDoom,
który rozprzestrzenia się w postaci załącznika do wiadomości e-mail. Po jego
uruchomieniu, instaluje się on w systemie Windows umoŜliwiając wykorzystanie
maszyny jako zombi. Następnie zaczyna wysyłać swoje kopie do wszystkich
uŜytkowników znalezionych w systemowej ksiąŜce adresowej oraz na adresy,
pozyskane za pośrednictwem wyszukiwarek internetowych Google, Yahoo i Altavista22.
21
D. Dittrich: ‘The DoS Project's stacheldraht distributed denial of service attack tool’, University of
Washington, http://staff.washington.edu/dittrich/misc/stacheldraht.analysis
22
D. Cieślak: ‘Google narzędziem MyDooma’, PC World Komputer, Luty 2005
44
2. Przegląd narzędzi ataku
Pierwszą ofiarą ataku DDoS stał się na początku lutego 2004 serwer internetowy SCO
Group23 . Szacuje się, Ŝe w ataku uczestniczyło od 25 do nawet 50 tysięcy komputerów.
Niedługo później pojawiła się następna wersja robaka - MyDoom.B.
Został on
zaprogramowany do przeprowadzenia ataku typu DDoS na serwery internetowe
Microsoft’u co zakończyło się częściowym sukcesem. Do dzisiaj odkryto ponad 30
wersji tego robaka, w których zmieniają się zarówno sposoby rozpowszechniania, jak
i cele ataku.
23
S. Górski: ‘Rok po MyDoomie: robak, który zmienił oblicze Internetu’, PC World Komputer, Styczeń
2005
45
3. Współczesne metody budowy polityki
bezpieczeństwa systemów informatycznych
3.1 Definicja polityki bezpieczeństwa
Polityka bezpieczeństwa jest zbiorem spójnych, precyzyjnych i zgodnych
z obowiązującym prawem przepisów, reguł i procedur, według których dana
organizacja buduje, zarządza oraz udostępnia zasoby i systemy informacyjne oraz
informatyczne. Swoim zakresem, obejmuje ona sprzęt i oprogramowanie, za pomocą
których informacje są przetwarzane, oraz ludzi, którzy te informację przetwarzają. Brak
istnienia polityki bezpieczeństwa moŜe prowadzić do nadmiernego rozbudowania
zabezpieczeń i nieuzasadnionego wzrostu kosztów utrzymania struktury IT lub
zaniedbania systemów i naraŜenia firmy na straty spowodowane incydentem, którego
moŜna było uniknąć. WaŜne jest, aby w tworzeniu polityki bezpieczeństwa oraz w
wypełnianiu jej postulatów brał udział zarząd lub kierownictwo firmy. Pozwala to nie
tylko uchwalić odpowiedni budŜet na bezpieczeństwo, ale teŜ wprowadzić wewnętrzne
normy i regulaminy oraz wyciągać konsekwencje wobec pracowników, którzy ich nie
przestrzegają. Szacuje się, Ŝe ponad 80% przypadków naruszających bezpieczeństwo
systemów informatycznych powodowanych jest przez działania pracowników
z wewnątrz instytucji24.
Poziom bezpieczeństwa systemu informatycznego moŜe być analizowany za
pomocą dwóch metod. Pierwsza z nich polega na przydziale systemowi tzw. klasy
bezpieczeństwa w ramach standardu zawartego w Pomarańczowej Księdze (The Orange
Book)25. Księga ta, zawiera opis kryteriów przydziału analizowanych systemów do
odpowiednich klas bezpieczeństwa, informacje na temat sposobu wykonywania analiz
bezpieczeństwa a takŜe zalecenia dotyczące zapewniania bezpieczeństwa systemu
informatycznego. Druga metoda oceny poziomu bezpieczeństwa polega na wykonaniu
ekspertyz określanych mianem analizy ryzyka. Cechą charakterystyczną analizy ryzyka
24
M. Koziński: ‘Szkoła przetrwania’, http://www.pckurier.pl/archiwum/art0.asp?ID=5457
25
Pełna nazwa standardu to “Trusted Computer Systems Evaluation Criteria”, który został opracowany
przez Departament Obrony USA. W załączniku przedstawiono opis poszczególnych klas standardu.
3. Współczesne metody budowy polityki bezpieczeństwa systemów informatycznych
jest to, Ŝe dokonywana ocena w silnym stopniu uwzględnia prawdopodobieństwo
wystąpienia danego zagroŜenia.
Do
najbardziej
znanych
organizacji
zajmujących
się
zagadnieniem
standaryzacji w dziedzinie bezpieczeństwa komputerowego naleŜą:
•
ANSI American National Standards Institute,
•
ISO - International Organization for Standarization,
•
NBS - National Bureau of Standards,
•
NCSC - National Computer Security Center.
Nie moŜna jednak opracowywać polityki bezpieczeństwa organizacji tylko na
podstawie funkcjonujących standardów w tej dziedzinie. KaŜda organizacja ma swoją
specyfikę i powinna mieć odrębną politykę bezpieczeństwa, która jest ściśle powiązana
z charakterem organizacji. Wydział na uniwersytecie ma inne potrzeby niŜ firma
produkcyjna, a ta z kolei róŜni się od jednostki wojskowej. Jednak kaŜda
z wymienionych organizacji powinna posiadać własną politykę bezpieczeństwa
wskazującą granice akceptowalnego zachowania oraz definiującą procedury reakcji na
incydent złamania bezpieczeństwa. Nie moŜna równieŜ zakładać, Ŝe raz opracowana
polityka bezpieczeństwa organizacji będzie w niej zawsze funkcjonowała poprawnie.
Organizacja zmienia się w czasie, zmienia się jej struktura, zatrudniani są nowi
pracownicy, zmienia się system informatyczny w niej funkcjonujący, zmienia się
otoczenie systemu informatycznego. Dlatego teŜ, polityka bezpieczeństwa powinna być
ciągle dostosowywana do zmieniających się warunków wewnętrznych i zewnętrznych
organizacji. Niemniej, moŜna wskazać typowe elementy, które powinna posiadać kaŜda
polityka bezpieczeństwa systemu informatycznego. Najczęściej wymienianymi są:
•
Określenie, kto moŜe mieć konto w systemie; czy mogą istnieć konta typu „gość”,
na jakich kontach mogą pracować dostawcy oprogramowania zajmujący się
konserwacją tego oprogramowania, itp.,
•
Określenie czy wiele osób moŜe korzystać z jednego konta,
•
Określenie, w jakich sytuacjach odbierane jest prawo do korzystania z konta, co
dzieje się z kontami pracowników, którzy odeszli z instytucji,
47
3. Współczesne metody budowy polityki bezpieczeństwa systemów informatycznych
•
Zdefiniowanie wymagań dotyczących haseł – ich skomplikowanie, moŜliwość
ujawniania współpracownikom - przełoŜonym, określenie okresów waŜności, itp.,
•
Określenie zasad przyłączania się i korzystania z Internetu; określenie osób, której
mają do tego prawo,
•
Określenie zakresu i zasad udostępniania informacji instytucji uŜytkownikom w
sieci globalnej (np. poprzez strony WWW, e-mail, ftp),
•
Zobligowanie pracowników do wyraŜenia zgody na wykonywanie przez
administratorów czynności związanych z bezpieczeństwem instytucji,
•
Określenie metod ochrony informacji o finansach firmy jej pracownikach, itp.,
•
Określenie zasad sporządzania i przechowywania wydruków informacji związanych
z instytucją,
•
Określenie metod ochrony przed atakami na system informatyczny z zewnątrz
firmy.
NaleŜy jednak zaznaczyć, Ŝe osiągnięcie całkowitego bezpieczeństwa w
dzisiejszych systemach informatycznych jest w praktyce niemoŜliwe. Związane jest to z
faktem,
iŜ
systemy
komputerowe
często
są
systemami
„otwartymi”
i zaimplementowanie w nich stuprocentowego bezpieczeństwa mogłoby spowodować,
Ŝe straciłyby swój charakter. Z drugiej strony, koszt wprowadzenia absolutnego
bezpieczeństwa mógłby być tak wysoki, iŜ przerósłby wartość samego systemu
i chronionych danych26. Dlatego, bardzo waŜne jest określenie kosztów i zysków
budowanej polityki bezpieczeństwa w powiązaniu z wartością zarówno systemu
informatycznego jak i chronionej informacji. Jednak w wielu sytuacjach, określenie
wartości informacji jest niezwykle trudne. Np., koszt utraty (lub modyfikacji) bazy
danych zawierającej listę płac pracowników, godziny pracy oraz stawkę moŜna
rozpatrywać w kilku róŜnych aspektach. Najłatwiejszy do określenia jest koszt
potrzebny do odtworzenia bazy danych (np. przez przywrócenie z archiwum lub
wykonanie pracy potrzebnej do zebrania informacji). Jednak, jeśli nieupowaŜniona
osoba zmieni w bazie stawkę wynagrodzenia, firma moŜe być naraŜona na koszty
związane z wypłatą wyŜszych nienaleŜnych pensji. Jeśli informacja o stawkach stanie
się publiczna, konkurencyjna firma moŜe zdecydować się na podkupywanie
26
Dr inŜ. A. Sadowski: ‘Strategie realizacji polityki bezpieczeństwa’ -
http://www.bezpieczenstwoit.pl/Polityka_bezpieczenstwa.html
48
3. Współczesne metody budowy polityki bezpieczeństwa systemów informatycznych
pracowników, co moŜe zwiększyć koszty związane z przyuczaniem nowych
pracowników lub płacami potrzebnymi do zatrzymania juŜ zatrudnionych27.
Opracowania polskich polityk bezpieczeństwa w głównej mierze dotyczą zabezpieczeń
i administracji systemów informatycznych. Jednak, rzadko która polityka określa, jakie
rodzaje informacji w tych systemach mogą być przetwarzane oraz jakie warunki musi
spełnić system, aby informacja się w nim znalazła. Polityka bezpieczeństwa powinna
więc jasno i wyraźnie określać, Ŝe jej przedmiotem jest informacja znajdująca się w
systemie informatycznym, a nie sam system28.
3.2 Zabezpieczenia fizyczne systemów
WaŜnym
składnikiem
zwiększającym
bezpieczeństwo
systemów
informatycznych jest stosowanie zabezpieczeń fizycznych, które powinny być
adekwatne do rodzajów systemów oraz świadczonych usług.
DuŜe organizacje gospodarcze, (np. banki) o terytorialnie rozbudowanej sieci,
posiadające własne ośrodki przetwarzania danych, mogą wymagać wyŜszego stopnia
fizycznego i informatycznego zabezpieczenia. W takiej sytuacji, w polityce
bezpieczeństwa organizacji naleŜy zdefiniować poziom zabezpieczeń fizycznych oraz
procedury działania, proporcjonalnie do wartości sprzętu i wielkości potencjalnych
strat, które mogą być wyrządzone w wyniku uszkodzenia zabezpieczeń. Dla sprzętu
komputerowego i nośników informacji, parametr bezpieczeństwa powinien określać,
które obszary stanowią miejsca silnie strzeŜone. Istniejące centrum przetwarzania
danych w organizacji, powinno posiadać stosowne zabezpieczenia fizyczne, zarówno
przed skutkami zdarzeń losowych (ogień, powódź, wybuchy itp.), jak i wszelkich
ludzkich ingerencji. MoŜe równieŜ istnieć konieczność zlokalizowania centralnych
systemów informatycznych w fizycznie wydzielonych strefach, zabezpieczonych przed
moŜliwością przebywania w ich pobliŜu osób do tego nieupowaŜnionych. Usytuowanie
takiego centrum informatycznego moŜe uniemoŜliwiać publiczny dostęp osobom
postronnym w postaci m.in.: osobnej nieruchomości, wyodrębnionej części budynku
27
Douglas. E. Comer: ‘Sieci komputerowe i intersieci’, WNT Warszawa 2000,2001
28
Dr inŜ. A. Sadowski: ‘Strategie realizacji polityki bezpieczeństwa’
http://www.bezpieczenstwoit.pl/Polityka_bezpieczenstwa.html
49
3. Współczesne metody budowy polityki bezpieczeństwa systemów informatycznych
bez dostępu osób nieupowaŜnionych, osobnego, zamkniętego pokoju, fizycznej bariery
uniemoŜliwiającej dostęp do sprzętu komputerowego, itp.
W instytucjach takich jak banki, zaleca się nawet rezygnację z tablic identyfikacyjnych,
szyldów, wywieszek informacyjnych itp., a takŜe umieszczania numerów telefonów w
spisach telefonicznych, pozwalających na łatwe zlokalizowanie zewnętrznych
i wewnętrznych pomieszczeń, w których odbywa się przetwarzanie danych29.
Zabezpieczenie infrastruktury i urządzeń systemu informatycznego
Problemy związane z infrastrukturą systemu informatycznego moŜna rozpatrywać w
róŜnych aspektach30:
•
zasady rozmieszczania urządzeń systemu informatycznego:
separacja urządzeń wymagających specjalnego zabezpieczenia i urządzeń
chronionych,
wybór odpowiednich pomieszczeń dla tych urządzeń - oddzielenie od
pomieszczeń, gdzie znajdują się urządzenia zapasowe oraz archiwizacyjne,
wybór takiej lokalizacji dla urządzeń z wymiennymi nośnikami danych
(pamięci taśmowych, napędów dyskowych, wyjmowalnych dysków) oraz
drukarek, aby utrudnić dostęp do nich nieuprawnionym osobom.
•
zasilanie:
powinny być opracowane i wykonane szczegółowe plany wszystkich
instalacji zasilających budynku (zasilanie elektryczne, instalacje: wodna,
gazowa, kanalizacyjna, telefoniczna, alarmowa itp.),
sieć zasilania elektrycznego systemu informatycznego powinna być
zabezpieczona przed przepięciami powstałymi na skutek indukcji lub
wyładowań atmosferycznych,
29
Komisja Nadzoru Bankowego NBP:
http://www.nbp.pl/Publikacje/nadzor_bankowy/pdf/rekomendacja_d.pdf
30
http://www.pckurier.pl/archiwum/art0.asp?ID=2671
50
3. Współczesne metody budowy polityki bezpieczeństwa systemów informatycznych
jeśli
nie
ma
odpowiedniego
zabezpieczenia
budynku,
to
naleŜy
zorganizować ochronę najwaŜniejszych urządzeń systemu (m.in. serwery,
urządzenia aktywne), urządzenia krytyczne z punktu widzenia działania
systemu powinny być wyposaŜone w zasilacze awaryjne, plany zachowania
ciągłości działania w stanach awaryjnych i katastrofalnych powinny
zawierać opis postępowania po ustaniu pracy zasilaczy awaryjnych, cele
działania niektórych instytucji mogą uzasadniać potrzebę zainstalowania
rezerwowego systemu zasilania.
•
zasady zabezpieczania okablowania:
kable zasilające i łącza zapewniające transmisję danych lub realizujące inne
usługi systemu informacyjnego powinny być chronione przed zniszczeniem
lub przechwyceniem przesyłanej informacji,
trasy kabli powinny być wybierane ze szczególną starannością (np. biorąc
pod uwagę łatwość dostępu przez nieuprawnione osoby).
•
zasady zabezpieczania urządzeń znajdujących się poza siedzibą instytucji:
powinien istnieć system zdalnego wykrywania i diagnozowania uszkodzeń
urządzeń,
uŜytkowanie urządzeń systemu informatycznego powinno odbywać się pod
kontrolą; dotyczy to zwłaszcza nośników danych poufnych i będących
tajemnicą instytucji,
naleŜy
opracować
i
przestrzegać
zasad
odpowiednie
środki
uŜytkowania
przenośnych
komputerów osobistych,
naleŜy
przedsięwziąć
zabezpieczenia
urządzeń
składowania danych przed kradzieŜą lub uszkodzeniem w czasie transportu,
np. przez zamknięcie w odpowiednich kontenerach, wcześniejsze wykonanie
kopii bezpieczeństwa danych, itp.
Strefy zabezpieczeń
Fizyczne zabezpieczenie systemów informatycznych powinno równieŜ opierać
się na zdefiniowaniu stref kontrolnych i wprowadzeniu barier między tymi strefami.
51
3. Współczesne metody budowy polityki bezpieczeństwa systemów informatycznych
Stworzenie bariery dla danej strefy powinno uwzględniać wartość chronionych
aktywów i usług, a takŜe ryzyko naruszenia zabezpieczeń oraz istniejące mechanizmy
ograniczające
to
ryzyko.
Jeśli
wyodrębniono
kilka
poziomów
fizycznego
zabezpieczenia, to kaŜdy z nich powinien mieć jednoznacznie przypisany zbiór
mechanizmów kontrolujących wejście do strefy. Chronione strefy powinny być
wyposaŜone w mechanizmy gwarantujące upowaŜnionym osobom autoryzowany
dostęp. MoŜna równieŜ rozpatrzyć zasadność stosowania dodatkowych ograniczeń
np. kontrolę dostępu gości i personelu pomocniczego oraz zapewnić niezwłoczne
pozbawienie prawa dostępu osób, które utraciły upowaŜnienie do wejścia do strefy
(np. w wyniku zwolnienia, przejścia do innego działu itp.)
Zasady fizycznego zabezpieczenia nośników danych
W celu zapewnienia bezpieczeństwa systemu informatycznego, naleŜy równieŜ
opracować i wdroŜyć zasady postępowania z takimi nośnikami danych, jak
np.: dyskietki, wyjmowalne dyski, płyty CD, taśmy magnetyczne. Dotyczy to
warunków przechowywania, transportowania i niszczenia tych nośników. NaleŜy
uwzględnić konieczność fizycznego ograniczenia dostępu do tych nośników oraz
opracować i wdroŜyć zasady opuszczania przez nie siedziby instytucji. Ponadto, musi
być zapewniona moŜliwość nieodwracalnego niszczenia niepotrzebnych nośników.
3.3 Zabezpieczenia organizacyjne
Zabezpieczenia organizacyjne mają na celu ochronę nie tylko systemu
informatycznego, ale całego systemu informacyjnego instytucji. System informatyczny
to wyodrębniona część systemu informacyjnego, w którym do przetwarzania danych
stosowane są środki i metody informatyczne, a zwłaszcza sprzęt i oprogramowanie
komputerów.
Utworzenie
struktury
organizacyjnej
zajmującej
się
bezpieczeństwem
informacji jest jednym z podstawowych zadań, jakie spoczywają na kierownictwie.
Organizacja słuŜb zabezpieczenia, ich forma, wielkość, umiejscowienie w strukturze
organizacyjnej i decyzyjnej instytucji zaleŜy od wielu czynników, np. wielkości i
struktury instytucji, celów działania instytucji, wymagań w zakresie zabezpieczenia,
uwarunkowań środowiskowych i kulturowych. Wspólną cechą tych struktur
52
3. Współczesne metody budowy polityki bezpieczeństwa systemów informatycznych
(bez względu na wielkość instytucji) jest podział odpowiedzialności za zarządzanie
systemem informacyjnym oraz za jego zabezpieczenie.
W duŜych organizacjach moŜe okazać się za niezbędne zorganizowanie działu, którego
zadaniem jest zarządzanie zabezpieczeniem całego systemu. Do głównych zadań
takiego działu naleŜy definiowanie celów zabezpieczenia, formułowanie polityki
bezpieczeństwa umoŜliwiającej osiągnięcie tych celów oraz określanie zadań inspektora
zabezpieczeń. W mniejszych instytucjach dział zarządzania zabezpieczeniami moŜe być
zredukowany np. do osoby pełnomocnika ds. zabezpieczenia.
Do zadań działu zarządzania zabezpieczeniami systemu informacyjnego naleŜy:
•
formułowanie celów zabezpieczenia i opracowywanie polityki zabezpieczenia,
•
określanie obowiązków inspektora ds. zabezpieczenia,
•
opracowywanie planu wdroŜenia zabezpieczeń,
•
nadzorowanie wdroŜenia zabezpieczeń,
•
promowanie działań uświadamiających wagę problemów zabezpieczenia systemów,
•
wskazywanie zasobów (osób, źródeł finansowania, wiedzy itp.), które mogą być
wykorzystane w procesie zabezpieczenia.
Inspektor zabezpieczenia systemu informacyjnego jest tą osobą w instytucji, na
której spoczywa odpowiedzialność za zabezpieczenie systemu informatycznego. Do
inspektora zabezpieczenia napływają wszelkie informacje dotyczące zabezpieczenia
systemu a jest on osobą, która odpowiada za:
•
nadzór nad implementacją planu zabezpieczenia systemu informatycznego,
•
wdraŜanie polityki zabezpieczenia systemu, wytycznych i dyrektyw,
•
sprawowanie nadzoru nad utrzymaniem zabezpieczenia w czasie eksploatacji
systemu,
•
koordynację działań podejmowanych w przypadku naruszenia zabezpieczenia
systemu,
•
kierowanie szkoleniami dotyczącymi zabezpieczenia systemu.
53
3. Współczesne metody budowy polityki bezpieczeństwa systemów informatycznych
Osoba pełniąca obowiązki inspektora zabezpieczenia powinna mieć wiedzę
i praktykę w tej dziedzinie. Doświadczonych inspektorów zabezpieczenia jest niewielu.
Na stanowisko to wybiera się więc najczęściej osoby, mające podstawy wykształcenia
informatycznego i przyucza się je w innych dziedzinach, niezbędnych w pracy
inspektora (np. problematyki przestępstw komputerowych, polityki kadrowej,
organizacji i zarządzania). Brak pracowników o odpowiednim wykształceniu oraz
ogólnie niska świadomość problematyki związanej z zabezpieczaniem systemów
informacyjnych powoduje, Ŝe w polskich instytucjach często w ogóle nie tworzy się
odrębnego stanowiska inspektora, powierzając jego obowiązki administratorom
systemu informatycznego31. Nie jest to dobre rozwiązanie. Trudno się spodziewać, by
inspektor zabezpieczenia umieszczony w dziale zarządzania informatyką, kontrolował
sam siebie. Prawidłowe usytuowanie stanowiska inspektora zabezpieczenia nie jest
sprawą łatwą. Z jednej strony obecność inspektora w działach bieŜącej eksploatacji
systemu umoŜliwia mu szybkie uzyskanie informacji o zachodzących zmianach
(np. ruchach
kadrowych
lub
zmianach
organizacyjnych),
z
całą
pewnością
dokładniejszej i bardziej aktualnej niŜ, gdyby pracował w odległej centrali. Z drugiej
strony, jeśli inspektor znajduje się zbyt blisko uŜytkowników i administratorów
systemu, moŜe ulegać ich wpływom, tracąc w ten sposób z pola widzenia cele swojej
działalności. Osiągnięcie rozsądnego kompromisu zaleŜy od wielu czynników, niemniej
jednak definiując to stanowisko warto wziąć pod uwagę zasadę rozdzielenia funkcji
inspektora zabezpieczeń i administratora systemu informacyjnego.
Odpowiedzialność za zabezpieczenie systemu informacyjnego spoczywa na
wszystkich jego uŜytkownikach. Nie zwalnia od niej utworzenie słuŜb zabezpieczenia
systemu informacyjnego. Polityka zabezpieczenia całego systemu informacyjnego
powinna zawierać generalne wytyczne dotyczące zakresu odpowiedzialności. Tam,
gdzie to konieczne, naleŜy szczegółowo zinterpretować wytyczne i określić
odpowiedzialność poszczególnych pracowników (np. za ochronę danych czy
zapewnienie działania systemu w sytuacji awaryjnej). Generalnie, odpowiedzialność
za system
informacyjny
ponosi
jego
właściciel.
Aby
uniknąć
rozmycia
odpowiedzialności, naleŜy starannie zdefiniować obszary, za które odpowiadają
poszczególni menedŜerowie. Takie obszary powstają w wyniku jednoznacznego
31
http://www.pckurier.pl/archiwum/art0.asp?ID=2562
54
3. Współczesne metody budowy polityki bezpieczeństwa systemów informatycznych
zidentyfikowania
i
sklasyfikowania
poszczególnych
aktywów
i
procesów
zabezpieczenia oraz uzgodnienia i udokumentowania zakresu odpowiedzialności dla
wszystkich aktywów oraz procesów zabezpieczenia
3.4 Regulacje prawne
Przepisy karne w Polsce, mające zastosowanie w przypadku łamania prawa
przez uŜytkowników komputerów i sieci zawarte zostały w kodeksie karnym w
rozdziale XXXIII zatytułowanym „Przestępczość przeciwko ochronie informacji”.
Powstało równieŜ lub zostało znowelizowanych wiele ustaw, które w duŜej mierze mają
na celu ochronę informacji. Są to między innymi:
•
Ustawa o podpisie elektronicznym z dnia 18 września 2001r. (Dz.U. Nr 130,
poz.1450),
•
Ustawa z dnia 27 lipca 2001r. o ochronie baz danych (Dz. U. Nr 128, poz. 1402).
•
Ustawa z dnia 18 lipca 2002r. o świadczeniu usług drogą elektroniczną (Dz.U. Nr
144, poz.120),
•
Ustawa o ochronie informacji niejawnych z dnia 22 stycznia 1999r. (Dz.U. Nr 11,
poz. 95 z późniejszymi zmianami),
•
Ustawa o ochronie danych osobowych z dnia 29 sierpnia 1997 (Dz. Nr 133, poz.
883 z późniejszymi zmianami),
•
Ustawa z dnia 5 lipca 2002r. o ochronie niektórych usług świadczonych drogą
elektroniczną opartych lub polegających na dostępie warunkowym (Dz.U. Nr 126,
poz. 1068).
Artykuł
267
§1
kodeksu
karnego
stanowi
podstawę
karalności
nieuprawnionego dostępu do systemu informatycznego. Pozwala on pociągnąć hakera
do odpowiedzialności karnej wówczas, gdy na skutek złamania zabezpieczeń uzyska on
zastrzeŜoną dla niego informację, przechowywaną nie w jego komputerze
(lub systemie). Stworzenie takiej właśnie konstrukcji prawnej moŜna podporządkować
istocie scanningu. O szerokim zakresie karalności samego podsłuchu komputerowego
mówi §2 tego artykułu. Powiększa on ujęcie nieuprawnionego dostępu poprzez
wykorzystywanie programów typu password-sniffer słuŜących do przechwytywania
55
3. Współczesne metody budowy polityki bezpieczeństwa systemów informatycznych
przede wszystkim haseł oraz przechwytywania informacji wprowadzanych do
komputera poprzez klawiaturę (tzw. key-loggers). Paragraf ten obejmuje równieŜ
przechwytywanie wiadomości wysyłanych pocztą elektroniczną i pozwala uznać to
wszystko za przestępstwo.
Integralność danych komputerowych przed ich nieuprawnionym usuwaniem,
niszczeniem lub zmienianiem chroni art. 268 kodeksu karnego. JednakŜe trudno na jego
podstawie mówić o bezwzględnym zakazie modyfikacji lub przekierowywaniu stron
WWW lub teŜ zakazie rozpowszechniania wirusów komputerowych.
Dostępność elektronicznie przetwarzanej informacji jest przedmiotem ochrony art. 269
kodeksu karnego. Przewiduje on karalność tzw. sabotaŜu komputerowego. Zapewnia
ochronę przede wszystkim serwerom związanym z sektorem publicznym oraz
niektórym rodzajom szczególnie chronionej informacji (np. istotnej dla obronności
kraju lub funkcjonowania administracji rządowej). Pozostawia tym samym niemalŜe
poza zakresem ochrony serwery komercyjne i inne domeny niŜ rządowa.
Pojęcie przestępstw związanych z uŜywaniem komputerów obejmuje równieŜ
zamachy na tradycyjne dobra prawne dokonywane z wykorzystaniem nowoczesnych
technologii przetwarzania informacji. Przykładem tego przestępstwa moŜe być
"elektroniczne pranie pieniędzy" lub oszustwo popełnione na szkodę uczestnika aukcji
internetowej. Przestępstwami związanymi z uŜywaniem komputerów są równieŜ typy
czynów zabronionych, które zostały specjalnie wprowadzone do ustawodawstwa
karnego w celu zapewnienia ochrony dobrom prawnym w sytuacji, gdy do ich
naruszenia dochodzi przy pomocy techniki komputerowej.
W kodeksie karnym, poza wyŜej wymienionymi, moŜna znaleźć artykuły
dotyczące następujących typów przestępstw związanych z uŜyciem komputerów:
•
oszustwo komputerowe (art. 287 § 1 k.k.),
•
oszustwo telekomunikacyjne (art. 285 k.k.),
•
fałszerstwo komputerowe (art. 270 k.k.),
•
nielegalne uzyskanie programu komputerowego (art. 278 § 2 k.k.),
•
paserstwo programu komputerowego (art. 293 § 1 i 2 k.k.),
•
szpiegostwo komputerowe (art. 130 k.k.),
56
3. Współczesne metody budowy polityki bezpieczeństwa systemów informatycznych
•
sprowadzanie niebezpieczeństwa powszechnego na skutek zakłócenia procesów
automatycznego przetwarzania informacji (art. 165 k.k.).
Kodeks karny zabrania równieŜ rozpowszechniania informacji uzyskanych w
sposób nielegalny. Przykładem takiego zakazu jest art. 267 k.k., który za ujawnienie
innej osobie informacji uzyskanych w wyniku naruszenia chroniących jej zabezpieczeń
lub przechwyconej podczas transmisji, przewiduje karę pozbawienia wolności do 2 lat.
Naruszeniem tego zakazu jest nie tylko ujawnienie pojedynczej osobie „złamanych”
haseł dostępu do systemów komputerowych, lecz takŜe rozpowszechnianie takich
informacji, np. za pomocą serwerów FTP lub stron WWW.
Od 10 marca 2003 roku obowiązuje w Polsce zakaz przesyłania informacji
handlowej, która nie została zamówiona, za pomocą środków komunikacji
elektronicznej, w szczególności poczty elektronicznej. Postępowanie taki stanowi czyn
nieuczciwej konkurencji i jest wykroczeniem zagroŜonym karą grzywny do 5000 zł.
Oczywiście kara ta grozi wyłącznie osobom podejmującym na terenie Polski działania
naruszające anty-spamowe przepisy.
57
4. Metody i środki informatycznego zabezpieczania
systemów
4.1 Uwierzytelnianie
Uwierzytelnianie to proces udowodnienia swojej toŜsamości. Podczas gdy
z perspektywy bezpieczeństwa sieci, waŜne są równieŜ i inne elementy (identyfikacja
oraz autoryzacja), to proces uwierzytelniania jest najtrudniejszy do osiągnięcia.
Uwierzytelnianie moŜe opierać się na jednym, dwóch bądź trzech elementach:
•
informacji,
która
powinna
być
znana
wyłącznie
autoryzowanemu
uŜytkownikowi, takich jak hasło lub osobisty numer PIN (personal
identification number). Element ten jest określany jako uwierzytelnianie typu 1
(Type 1 authentication),
•
urządzenia, które powinno być w posiadaniu wyłącznie autoryzowanego
uŜytkownika, takiego jak np. karta magnetyczna (z mikroprocesorem, z
pamięcią) lub tzw. token. Element ten jest określany jako uwierzytelnianie typu
2 (Type 2 authentication),
•
unikalnych cech biometrycznych autoryzowanego uŜytkownika, takich jak
odcisk palca lub wzór siatkówki. Ten element jest określany jako
uwierzytelnianie typu 3 (Type 3 authentication).
Oczywiście zastosowanie więcej niŜ jednego mechanizmu uwierzytelniającego
zwiększa wiarygodność procesu. Na przykład dwuetapowe uwierzytelnianie, moŜe
wykorzystywać takie elementy jak numer PIN w połączeniu z kartą magnetyczną lub
urządzeniem generującym hasło. Po uwierzytelnieniu uŜytkownik uzyskuje dostęp do
określonych zasobów systemu i informacji a taka alokacja uprawnień jest określana
mianem autoryzacji.
Najpopularniejszym
sposobem
uwierzytelniania
uŜytkowników
jest
uwierzytelnianie typu 1, czyli z wykorzystaniem haseł. Z tego powodu skuteczne
4. Metody i środki informatycznego zabezpieczania systemów
zabezpieczanie haseł przed niepowołanym dostępem jest kluczowym aspektem polityki
bezpieczeństwa. NajwyŜszy poziom bezpieczeństwa zapewniają hasła jednorazowe,
z których moŜna skorzystać dokładnie jeden raz, po którym przestaje ono być waŜne.
Przykładem zastosowania haseł jednorazowych jest np. mBank. Wykonanie
jakiejkolwiek operacji na koncie, wymaga podania przez klienta tego banku
jednorazowego hasła z listy, która dostarczana jest tradycyjną pocztą.
Hasła moŜna równieŜ podzielić na statyczne, które pozostaje identyczne przy
kaŜdym logowaniu oraz dynamiczne, które się zmienia. W organizacji moŜe istnieć
wymóg okresowych zmian haseł, na przykład raz na miesiąc, raz na kwartał lub
w innych odstępach czasu, w zaleŜności od stopnia poufności danych zabezpieczanych
tymi hasłami. Jednak przeprowadzone badania wskazują, Ŝe wymagane w polityce
bezpieczeństwa regularne zmiany haseł powodują osłabienie bezpieczeństwa systemu.
UŜytkownicy, od których wymaga się częstego zmieniania haseł, tworzą na ogół hasła
łatwiejsze do zapamiętania a przez to mniej bezpieczne i częściej je ujawniają32.
Spora część udanych włamań spowodowana jest uŜywaniem „słabych haseł”, w których
uŜyto imion, nazw, numerów telefonów, itp. Dobre hasło to niekoniecznie hasło bardzo
długie, ale dostatecznie skomplikowane. Hasła, które stosunkowo prosto jest złamać to
takie, które zawierają między innymi:
imię, nazwisko, datę urodzin i inne informacje o uŜytkowniku,
słowa, które występują w słownikach,
proste układy znaków na klawiaturze, takie jak np. QWERTY,
hasła składające się z samych liter lub samych cyfr,
ciąg powtarzających się takich samych cyfr lub liter,
takie same jak login.
32
William. R. Chestwick, Steven M. Bellovin, Aviel D. Rubin „Firewalle i bezpieczeństwo w sieci”
Helion 2003
59
4. Metody i środki informatycznego zabezpieczania systemów
Aby utrudnić napastnikowi złamanie hasła, warto przestrzegać kilku zasad w jego
wyborze:
nie uŜywać loginu, imion, nazwisk, wyrazów pospolitych w Ŝadnej formie:
normalnie, pisanych od końca, z duŜej litery lub z dodanymi liczbami,
nie uŜywać haseł składających się z samych liter lub samych cyfr,
nie uŜywać haseł krótszych niŜ 8 znaków,
korzystać ze znaków spoza alfabetu,
korzystać z haseł, które łatwo będzie zapamiętać w celu uniknięcia ich
zapisywania,
stosować róŜne hasła w róŜnych miejscach.
Aby utworzyć mocne hasło, które będzie proste do zapamiętania moŜna
kierować się róŜnymi metodami. Np. moŜna wybrać zdanie łatwe do zapamiętania:
„Urodziłem się w Krakowie, 1 stycznia 1978 roku”. Następnie wystarczy zapisać
pierwsze litery wyrazów zdania, dodatkowo wciskając klawisz shift przy wpisywaniu
cyfr. Posługując się tą metodą moŜna uzyskać silne hasło, które w tym przypadku ma
postać: UswK,!s!(&*r.
W niektórych sytuacjach zamiast haseł moŜe być stosowana fraza
(passphrase). Fraza jest ciągiem znaków, z reguły dłuŜszym od dopuszczalnej długości
hasła, która jest konwertowana przez system na formę wirtualnego hasła. Hasła mogą
być równieŜ generowane w sposób automatyczny z uŜyciem róŜnych kart
mikroprocesorowych, lub specjalnie dedykowanych urządzeń tzw. tokenów. Generatory
haseł stanowią implementację uwierzytelniania typu 2.
Kolejną,
trzecią
metodą
uwierzytelniania
są
techniki
biometryczne.
Biometryka jest zdefiniowana jako zautomatyzowane techniki identyfikacji lub
uwierzytelniania osób z wykorzystaniem ich charakterystyki fizjologicznej. Biometryka
naleŜy
do
mechanizmów
uwierzytelniających
typu
trzeciego.
Znajduje
ona
zastosowanie zarówno do identyfikacji, jak i do uwierzytelniania.
W
celu
identyfikacji
biometryka
jest
stosowana
w
wyszukiwaniach
typu
„jeden do wielu”, gdzie cechy biometryczne są odnajdywane w większej bazie danych
60
4. Metody i środki informatycznego zabezpieczania systemów
zapisanych cech biometrycznych. Przykładem takiego wyszukiwania moŜe być próba
dopasowania odcisków palców sprawcy za pomocą bazy danych, zawierającej odciski
palców wszystkich obywateli.
Uwierzytelnianie natomiast, obejmuje wyszukiwanie typu „jeden do jednego”,
poniewaŜ polega na sprawdzeniu, czy uŜytkownik poddany sprawdzeniu jest tym, za
kogo się podaje.
Przykładem takiego wyszukiwania moŜe być porównanie odcisków palców danej osoby
z jej odciskami palców, zapisanymi w bazie danych pracowników firmy. Biometryka w
zastosowaniach
kontroli
dostępu
jest
wykorzystywana
do
identyfikacji
w mechanizmach kontroli fizycznej i do uwierzytelniania w mechanizmach kontroli
logicznej. Typowe cechy biometryczne obejmują:
skanowanie siatkówki,
skanowanie tęczówki,
linie papilarne,
skanowanie twarzy,
skanowanie dłoni,
geometria dłoni,
głos,
dynamika ręcznego podpisu.
System biometryczny posiada kilka cech, które określają jego skuteczność
i wydajność. NaleŜą do nich nie tylko cechy techniczne, ale równieŜ subiektywne
poczucie komfortu uŜytkowników zmuszonych do poddania się badaniom. Przykładami
cech pomiaru skuteczności są33:
•
Współczynnik fałszywych odrzuceń (FRR - false rejection rate), zwanych błędami
typu
pierwszego.
Jest
to
procentowy
współczynnik
błędnych
odrzuceń
prawidłowych prób zalogowania,
•
Współczynnik fałszywych akceptacji (FAR - false acceptance rate), zwanych
błędami typu drugiego. Jest to procentowy współczynnik błędnych akceptacji
nieprawidłowych prób logowania,
33
http://www.biometryka.com/
61
4. Metody i środki informatycznego zabezpieczania systemów
•
SkrzyŜowany współczynnik błędu (CER - crossover error rate). Jest to procent
przypadków, w których FRR jest równy FAR. Im mniejsza wartość CER, tym
skuteczniejszy jest system biometryczny,
•
Czas pobrania - czas, który jest potrzebny do pobrania próbek biometrycznych.
Akceptowalny czas analizy wynosi około dwóch minut,
•
Przepustowość systemu - liczba uŜytkowników w jednostce czasu, których dane
mogą być przetworzone przez system po pobraniu próbek do analizy. Akceptowalna
przepustowość to około 10 podmiotów na minutę,
•
Akceptowalność - dotyczy zagadnień prywatności, inwazyjności i względów
psychologicznych, czyli ogólnie rozumianego komfortu korzystania z systemu. Na
przykład skanowanie siatkówki moŜe się wiązać z naruszeniem płynów ustrojowych
na powierzchni oka. Inne zagadnienie związane z tą technika moŜe dotyczyć zmian
w siatkówce związanych ze stanem zdrowia uŜytkownika, na przykład z
początkowymi stadiami cukrzycy lub podwyŜszonym ciśnieniem krwi.
Rzeczywistym problemem w stosowaniu technik biometrycznych w sieci,
polega na tym, Ŝe odległy komputer nie czyta np. odcisku palca tylko ciąg bitów. Bity te
mogą pochodzić z czytnika biometrycznego, ale nie ma Ŝadnego sposobu, który
pozwoliłby się o tym przekonać czy jest tak naprawdę. Innym problemem z
biometrykami jest równieŜ to, Ŝe pozostają one niezmienne oraz są „pozostawiane”
wszędzie wokół. Odciski palców moŜna znaleźć na róŜnych przedmiotach, głos moŜe
zostać nagrany, itp. Znaleźć moŜna raporty o sfałszowanych odciskach palców
wykonanych z Ŝelatyny i o programach rozpoznawania twarzy oszukiwanych przez
naturalnej wielkości fotografie34.
4.2 Kerberos
Kerberos to zaufany protokół uwierzytelniający, który działa w sieci i
zapewnia bezpieczny sposób kontroli dostępu do jej zasobów przy zastosowaniu
technik kryptografii z uŜyciem kluczy symetrycznych. Mechanizmy Kerberos opierają
się na załoŜeniu, Ŝe komputery przyłączone do sieci stanowią publicznie dostępne,
34
William. R. Chestwick, Steven M. Bellovin, Aviel D. Rubin „Firewalle i bezpieczeństwo w sieci”
Helion 2003
62
4. Metody i środki informatycznego zabezpieczania systemów
niegodne zaufania lokalizacje. Z tego wynika, Ŝe komunikaty mechanizmu Kerberos
przesyłane w sieci mogą być przechwytywane przez intruzów. Zakłada się jednak, Ŝe
niektóre lokalizacje moŜna zabezpieczyć na tyle, aby działały jako zaufane mechanizmy
uwierzytelniające, dostępne dla wszystkich klientów i usług w sieci.
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 KDC (Key Distribution
Center). Centrum to stanowią dwa bezpieczne, niezaleŜne od siebie serwery: serwer
uwierzytelniania AS (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. Na rysunku 11 przedstawiono przykładowy proces nawiązywania
połączenia przez klienta z serwerem FTP za pośrednictwem systemu Kerberos.
Rys. 11 Uwierzytelnianie w systemie Kerberos
(źródło: opracowanie własne)
Klient chcący uzyskać dostęp do danych na serwerze FTP, zwraca się do
serwera uwierzytelniającego AS z prośbą o dostęp. Wysyła wiadomość, zaszyfrowaną
kluczem opartym na haśle uŜytkownika. Serwer AS sprawdza w swojej bazie
63
4. Metody i środki informatycznego zabezpieczania systemów
uprawnienia klienta do Ŝądanego serwera, po czym w przypadku posiadania przez
klienta takowych uprawnień przyznaje tzw. bilet na przyznanie biletu, czyli
TGT (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 (rys. 11-A). Klient, korzystając ponownie ze swojego hasła
uŜytkownika rozszyfrowuje otrzymane dane. Dzięki takiemu podejściu, hasło
w Ŝadnym momencie nie jest przesyłane przez sieć. Następnie, po wcześniejszym
zaszyfrowaniu przesyłki kluczem sesji, klient przesyła do serwera TGS otrzymany bilet
TGT wraz z tzw. wartością uwierzytelniającą, zawierającą identyfikator klucza sesji,
adres sieciowy i stempel czasowy. Serwer TGT rozszyfrowuje przesyłkę i weryfikuje
Ŝądanie. W przypadku pozytywnej weryfikacji tworzy bilet do Ŝądanego serwera
i odsyła go do klienta (rys. 11-B). Klient, po odebraniu biletu, moŜe się juŜ zwrócić do
serwera FTP wysyłając bilet wraz z wartością uwierzytelniającą. Serwer równieŜ
zwraca wartość uwierzytelniającą, jeśli wymagane jest obustronne uwierzytelnienie
(rys. 11-C). 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 obszarze ryzyka danej sieci.
Serwer zaś moŜe wpuścić uŜytkownika, bez podania hasła (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 uwierzytelnianiu 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.
Podstawowym celem stosowania mechanizmu Kerberos jest zabezpieczenie
poufności i integralności informacji. Z powodu braku zaufania do stacji roboczych
i kabli sieciowych nie ma bezpośredniej moŜliwości zabezpieczenia dostępności.
Jednak pomimo tego, Ŝe Kerberos jest wyjątkowo uŜytecznym i duŜo lepszym
rozwiązaniem niŜ inne, bazujące na adresie metody uwierzytelniania, nie jest on
pozbawiony pewnych słabości i ograniczeń. PoniewaŜ wszystkie tajne klucze klientów
i innych zasobów sieciowych są zapisane na serwerach KDS i TGS, serwery te są
64
4. Metody i środki informatycznego zabezpieczania systemów
podatne
na
ataki
i
(single point of failure).
wygenerowanych
w
stanowią
Dzięki
sposób
potencjalny
wykorzystaniu
nielegalny,
pojedynczy
w
punkt
określonym
moŜliwe
jest
uszkodzenia
czasie
równieŜ
biletów
uzyskanie
nieautoryzowanego dostępu do zasobów. RównieŜ z uwagi na przesyłanie hasła
uŜytkownika do serwera Kerberos jawnym tekstem na początku sesji, mechanizm
Kerberos jest podatny na techniki zgadywania haseł. Tajny klucz klienta jest
zapisywany tymczasowo na stacji klienta, a więc jest potencjalnie podatny na
naruszenie bezpieczeństwa.
4.3 Zapory sieciowe (Firewall)
Zapora sieciowa (firewall) to jedna z najwaŜniejszych metod zabezpieczeń,
której uŜywa się do obsługi połączeń między dwoma sieciami, nieufającymi sobie
nawzajem. Zaporę sieciową moŜna definiować jako kaŜdy program, układ lub sprzęt
ograniczający korzystanie z sieci35. Funkcje zapory moŜe pełnić router, system
operacyjny, serwer pośredniczący (proxy), aplikacja czy teŜ urządzenie słuŜące do
rozkładania obciąŜenia ruchu (load-balanced). Funkcja zapory sieciowej potrzebna jest
w kaŜdej sieci, w której nawiązywane są połączenia z potencjalnie niebezpiecznymi
źródłami. Firewall sprawdza kaŜdy przepływający przez nią pakiet i przepuszcza lub
blokuje go zgodnie z regułami ustalonymi przez administratora. Zapory umoŜliwiają
utworzenie konfiguracji, która jest kompromisem między siecią izolowaną od Internetu
a siecią swobodnie do niego podłączoną. Ponadto, umoŜliwiają one tworzenie tzw. stref
zdemilitaryzowanych (Demilitarized Zone – DMZ). Strefy te, to podsieci, które
oddzielają serwery dostępne na zewnątrz, np. serwery WWW, podatne w większym
stopniu na atak z Internetu, od sieci wewnętrznej. W wypadku włamania na taki serwer,
intruz nie będzie miał moŜliwości (lub będzie ona znacznie utrudniona) dostać się do
sieci wewnętrznej. Przykładowy schemat strefy DMZ ilustruje rysunek 15.
35
W. R. Chestwick, S. M. Bellovin, A. D. Rubin: ‘Firewalle i bezpieczeństwo w sieci’ Helion Gliwice
2003
65
4. Metody i środki informatycznego zabezpieczania systemów
Rys. 12 Strefa zdemilitaryzowana (DMZ)
(źródło: opracowanie własne)
Zapory sieciowe wyróŜnia kilka podstawowych cech. Większość z nich jest
zaprogramowana tak, aby ograniczać lub przepuszczać charakterystyczny ruch w sieci.
Decyzje, o zablokowaniu lub przepuszczeniu pakietu, zapory sieciowe podejmują na
podstawie reguł zdefiniowanych przez producenta lub administratora. Typowa reguła w
najprostszej postaci zawiera informacje o źródle (nadawcy) pakietu, przeznaczeniu
(adresacie), usłudze (lub numerach portów) oraz jedną z dwóch opcji postępowania –
„zabroń” lub „zezwól”. Warto zauwaŜyć, Ŝe w regułach nie ma informacji
o połączeniach zwrotnych. Domyślną zasadą jest, Ŝe jeśli pakiet zawierający zapytanie
został przepuszczony, pakiet zwrotny zawierający odpowiedź równieŜ zostanie
przepuszczony.
Zapory sieciowe moŜna podzielić na trzy główne typy:
•
filtrujące (packet-filtering firewall) – filtrowane są pakiety przychodzące
i wychodzące z hosta,
•
z inspekcją stanów (stateful-inspection firewall) – zestawiające według określonych
zasad połączenia TCP pomiędzy komputerami z sieci wewnętrznej a Internetem.
Odbywa się to jednak bez kontroli zawartości pakietów (TCP tunneling),
•
pośredniczące (application proxy firewall) – umoŜliwiające kontrolowany dostęp do
określonych usług poprzez pośredniczący serwer proxy.
66
4. Metody i środki informatycznego zabezpieczania systemów
Większość rozwiązań typu Firewall, naleŜy do jednego z wyŜej wymienionych
typów. Istnieją równieŜ tzw. adaptacyjne zapory sieciowe, które są połączeniem tych
trzech odmian. Działanie ich polega na równoległym zastosowaniu wszystkich
moŜliwych metod obsługi danego ruchu (odpowiednie pośredniczenie lub filtrowanie).
Np. początkowe połączenie klienta z serwerem zostaje przeanalizowane na poziomie
aplikacji przez proxy, a następnie po podjęciu decyzji na temat jego charakteru kolejne
porcje danych są przetwarzane przez aktywny filtr pakietów.
Zapory sieciowe filtrująca pakiety
Zapora tego typu jest klasycznym filtrem pakietów. Jedną z jej cech jest brak
moŜliwości analizowania zawartości (treści zasadniczej) pakietów. Informacje
pobierane są z początkowych nagłówkowych pól pakietów, które zawierają informacje
o adresach IP nadawcy i odbiorcy oraz typie pakietu (porty źródłowe i przeznaczenia
TCP/IP). Analiza odbywa się tylko na poziomie warstwy sieciowej (IP) modelu OSI.
Filtr pakietów nie rozróŜnia pakietów rozpoczynających i kończących połączenie oraz
analizuje je wszystkie pojedynczo.
Jak juŜ wcześniej wspomniano, filtr zapory nie rozpoznaje informacji
znajdujących się poza kilkoma pierwszymi bajtami nagłówka pakietu. Z tego powodu
chroni on na przykład przed atakami DoS typu SYN flood. Filtr nie jest teŜ w stanie
kontrolować poprawności fragmentacji pakietów. Pakiety pofragmentowane mogą
wyglądać jak zwykły ruch HTTP, ale po złoŜeniu ich w całość juŜ poza zaporą
wewnątrz sieci lokalnej, mogą inicjować wychodzące połączenie, na przykład z usługą
telnet na komputerze napastnika. Implementacja zapory filtrującej pakiety pozwala na
zablokowanie znacznej części niepoŜądanego ruchu i powinna stanowić pierwszą linię
obrony. NaleŜy jednak pamiętać, Ŝe filtry pakietów moŜna oszukać. Dlatego teŜ,
zapewniają one podstawowe funkcje obronne i naleŜy je stosować w powiązaniu
z innymi mechanizmami ograniczającymi.
Zapory sieciowe z inspekcją stanów
Zapory sieciowe tego typu dokonują analizy ruchu na poziomie protokołów
w warstwie aplikacji (TCP, UDP) modelu OSI.) Odwołują się one do zdefiniowanych
reguł (podobnie jak filtry pakietów), ale są one interpretowane za pomocą dodatkowych
układów logicznych. W zaleŜności od rodzaju zapory, przed podjęciem decyzji
67
4. Metody i środki informatycznego zabezpieczania systemów
o dopuszczeniu lub odrzuceniu pakietów, firewall moŜe analizować jedną lub więcej
warstw modelu OSI.
Zapory z inspekcją stanów analizują nie tylko informacje o źródle,
przeznaczeniu i numerach portów, ale sprawdzają teŜ stan połączenia. Na pełną
informację o stanie połączenia składają się oprócz informacji o adresach i numerach
portów, numery sekwencji pakietów oraz znaczniki TCP. Zapory te, posiadają
wbudowaną bazę dotyczącą protokołów sieciowych oraz poprawnych i niepoprawnych
zachowań. Dlatego teŜ, napastnik nie ma moŜliwości podsyłania spreparowanych
pakietów, zawierających nietypowe lub błędne, niezgodne z definicjami protokołów
dane. Zostaną one zablokowane przez zaporę sieciową, która posiada tablicę stanów, w
której przechowywane są informacje dotyczące kaŜdego połączenia. Tablica stanów jest
aktualizowana za kaŜdym razem, gdy zmienia się status połączenia, gdy rozpoczyna się
nowa sesja lub inna dobiega końca. Zapora sieciowa z tablicą stanów pozwala równieŜ
na rozpoznawanie określonych rodzajów oprogramowania. Cecha ta pozwala na
konfigurowanie zapory umoŜliwiającej przepuszczanie ruchu korzystającego tylko
z wybranych typów protokołów. Np. administrator moŜe zezwolić zaporze na
połączenia ftp PUT, ale zablokować połączenia typu GET. Zapory tego typu mogą
równieŜ
analizować
dodatkowe
informacje,
takie
jak
fakt
wcześniejszego
uwierzytelnienia uŜytkownika.
Zapory pośredniczące
Zarówno zapory z tablicą stanów jak i zapory filtrujące pakiety, umoŜliwiają
bezpośrednie połączenia pomiędzy komputerami po obu stronach zapory. Zapora
sieciowa pośrednicząca, nie zezwala na bezpośrednie połączenia między hostami
znajdującymi się po obu stronach zapory. Wszystkie połączenia są dokonywane
za pośrednictwem serwera pośredniczącego (tzw. proxy), przechwytującego wszystkie
przychodzące i wychodzące sesje, oraz analizującego ich zgodność z listą reguł. Gdy
reguły pozwalają na przesłanie pakietu, zapora dopiero wtedy ustanawia połączenie
między sobą a urządzeniem docelowym. Serwer proxy działa jako pośrednik między
dwoma hostami. Największą niedogodnością tego typu zapory jest mała prędkość
działania i duŜe zapotrzebowanie na zasoby. Aby odpowiedzieć na kaŜde połączenie,
zapora musi zainicjować dwa połączenia. Najpierw z nadawcą, a po sprawdzeniu
poprawności z odbiorcą pakietu.
68
4. Metody i środki informatycznego zabezpieczania systemów
Istnieją równieŜ rozwiązania podobne funkcjonalnie, ale wykorzystujące dwie
zapory połączone ze sobą dedykowanym łączem i komunikujące się między sobą przy
pomocy innych protokołów niŜ na zewnątrz (z siecią Internet oraz LAN). Dzięki
takiemu rozwiązaniu, zdobycie przez intruza zapory zewnętrznej nie daje moŜliwości
dostania się do sieci wewnętrznej, gdyŜ broni jej druga zapora. Dodatkowym
elementem obronnym jest zastosowanie do komunikacji zapora-zapora nietypowego
i dedykowanego protokołu sieciowego, który nie jest podatny na słabości protokołów
stosu TCP/IP. Nie pozwala to intruzowi wykorzystywać tych słabości i oszukiwać
zaporę sieciową mającą problemy na przykład z prawidłowym rozpoznawaniem pakietu
zawierającego spreparowane dane. W tabeli 3 przedstawiono wady i zalety
wymienionych zapór sieciowych.
Rodzaj zapory
Filtrująca
Zalety
Wady
Szybkość w działaniu
Brak moŜliwości uwierzytelniania
Elastyczność
„Nie rozumie” protokołu warstwy aplikacji
Bezpośrednia komunikacja z siecią
pakiety
chronioną
Z inspekcją
stanów
Trudna konfiguracja
Brak bezpośrednich połączeń
Wolniejsze od filtrów pakietów
Przezroczystość
„Nie rozumie” protokołu warstwy aplikacji
MoŜliwość uwierzytelniania
Szybsze od zapory
Wolniejsze od filtrów pakietów
pośredniczącej
Pośredniczące
Adaptacyjne
Brak bezpośrednich połączeń
Przezroczystość
MoŜliwość uwierzytelniania
Rozbudowane moŜliwości
nowszych protokołów (potrzeba tworzenia
logowania
nowych modułów)
Zalety pozostałych trzech
i od zapór z inspekcją stanów
Brak wsparcia dla pojawiających się
Nadmiar elastyczności
Tabela 3. Wady i zalety zapór sieciowych
(źródło: P. Kijewski, K. Szczypiorski: „Bezpieczeństwo w sieciach TCP/IP”;
”Przegląd Telekomunikacyjny” nr 5-6 2001 r.))
Współcześnie, zapory sieciowy są często hybrydowym rozwiązaniem,
analizującym pakiety w kaŜdej warstwie - od poziomu protokołu IP aŜ do poziomu
aplikacji, umoŜliwiającym realizację złoŜonych polityk bezpieczeństwa oraz integrację
z systemami wykrywania włamań IDS (Intrusion Detection System).
69
4. Metody i środki informatycznego zabezpieczania systemów
4.4 IDS – System wykrywania włamań
System wykrywania włamań IDS (Intrusion Detection System) to system,
którego celem jest zidentyfikowanie niebezpiecznych działań zachodzących w sieci,
poprzez wykrycie akcji, które stanowią lub potencjalnie mogą stanowić zagroŜenie dla
systemu. Nie musi to być pełne włamanie. MoŜe to być takŜe nieudana próba, lub
przygotowanie do włamania, np. skanowanie portów. Jedną z waŜnych funkcji systemu
wykrywania włamań jest takŜe reakcja na atak, np. powiadomienie administratora lub
zablokowanie podejrzanego połączenia. Równocześnie systemy IDS mogą rozróŜniać
włamania wewnętrzne i zewnętrzne.
Podstawowe funkcje systemów IDS to:
•
Monitorowanie i analiza aktywności systemu i uŜytkowników,
•
Analiza
logów
systemu
operacyjnego,
aplikacji,
urządzeń
sieciowych
i rozpoznawanie naruszeń polityki bezpieczeństwa,
•
Rozpoznawanie wzorców aktywności znanych ataków,
•
Analiza statystyczna wzorców „nienormalnej” aktywności.
Systemy IDS posiadają często dodatkowe funkcje, takie jak m.in.:
•
Reakcja w czasie rzeczywistym na wykryte próby naruszenia bezpieczeństwa
systemu,
•
Ocena integralności krytycznych części systemu oraz danych,
•
Audyt konfiguracji systemu i jego podatność na ataki,
•
Automatyczna instalacja uaktualnień systemowych lub do wskazanych aplikacji,
•
Uruchamianie atrap serwisów jako pułapek na włamywacza, tzw. słoik miodu36
(honeypot).
Klasyczne systemy IDS koncentrowały się na monitorowaniu systemu
informatycznego, analizie zebranej informacji i raportowaniu. W miarę wzrostu
36
Więcej na temat techniki „słoiki miodu” moŜna znaleźć w ksiąŜce C. Peikari, A. Chuvakin: ‘StraŜnik
bezpieczeństwa danych’, Helion 2004
70
4. Metody i środki informatycznego zabezpieczania systemów
potrzeby bezpieczeństwa, producenci zaczęli rozszerzać funkcjonalność systemów IDS.
Początkowo pojawiła się wspomniana funkcja dynamicznego reagowania na
dostrzeŜone
zagroŜenia.
Następnym
krokiem
było
połączenie
monitorowania
z testowaniem zabezpieczeń i formułowaniem zaleceń poprawy ich stanu. Dodano
równieŜ moŜliwość automatycznego aplikowania poprawek dostarczanych przez
producenta
systemu
operacyjnego
czy
aplikacji,
oraz
wykonywania
zmian
konfiguracyjnych. Niektóre systemy IDS uruchamiają teŜ atrapy serwisów podatnych
na ataki, które spełniają rolę pułapki i pozwalają na identyfikację włamywacza
i zebranie materiału dowodowego.
Systemy wykrywania włamań, moŜna podzielić ze względu na róŜne kryteria:
•
Ze względu na sposób zbierania informacji:
Oparte na systemie operacyjnym hosta (host based) - działają na poziomie
systemu operacyjnego (system based) lub uruchamianych w nim aplikacji
(application based). W tym modelu, przetwarzane zostają informacje zawarte
w logach systemów operacyjnych, aplikacji, itp.
Oparte na sieci (network based) - monitorowany i analizowany jest ruch
pakietów w sieci a informacje pobierane są z warstwy łącza danych poprzez
podsłuch kanału transmisyjnego. W tym przypadku analizowane są nagłówki
protokołów (traffic based) lub zawartość pola danych (content based). System
IDS
działa
w
oparciu
o
sensory
(sondy,
agenci)
rozmieszczone
w poszczególnych segmentach sieci, które zbierają informacje i przewaŜnie
dokonują wstępnej analizy, wychwytując istotne informacje i przesyłając je do
modułu centralnego. Niektóre systemy łączą w sobie cechy obu rodzajów IDS,
porównując ruch w sieci i wpisy w logach z bazą sygnatur znanych ataków.
Takie rozwiązania są bardziej skomplikowane, ale znacznie skuteczniejsze.
•
Metody detekcji - wykrywanie zdarzeń zagraŜających bezpieczeństwu systemu
informatycznego przeprowadzane jest w oparciu o:
71
4. Metody i środki informatycznego zabezpieczania systemów
Bazę wiedzy - baza zawiera predefiniowane zasady bezpieczeństwa i wzorce
(sygnatury) znanych ataków systemowych lub sieciowych. Metoda ta, określana
jest jako „wykrywanie naduŜyć”.
Bazę zachowań – metoda ta wykrywa anomalie w systemie. W systemie IDS
przyjmuje się pewien model standardowego zachowania uŜytkowników sieci.
Wszelkie zachowania niezgodne z przyjętymi zasadami są uznawane za
anomalie (np. większe wykorzystanie mocy obliczeniowej, uŜycie przez
uŜytkownika niestandardowej sekwencji komend, itp.). Metoda ta określana jest
jako „wykrywanie anomalii”.
•
Częstotliwość przetwarzania informacji. Aby system IDS był skuteczny, musi
przetwarzać informację w czasie rzeczywistym, co powoduje wystąpienie opóźnień
spowodowanych koniecznością przesłania i analizy informacji. Jednak dynamiczne,
natychmiastowe przetwarzanie informacji jest konieczne. W przeciwnym razie
system IDS pełniłby jedynie rolę rejestratora naduŜyć, a nie systemu, który ma im
przeciwdziałać i neutralizować wykryte ataki lub naruszenia bezpieczeństwa.
Jednak niektóre elementy systemu IDS, takie jak skanery zabezpieczeń i
konfiguracji systemu, uruchamiane są okresowo.
•
Sposób reakcji na wykryte zagroŜenie
Pasywny - system IDS informuje o zagroŜeniu personel zajmujący się
bezpieczeństwem systemu, oraz zapisuje wszelkie informacje o wykrytym ataku
lub naruszeniu bezpieczeństwa.
Aktywny - w zaleŜności od rodzaju wykrytego zagroŜenia, system IDS
wykonuje szereg uprzednio zdefiniowanych czynności (zmiany wpisów na
routerze lub firewall’u, zablokowanie dostępu, blokada konta uŜytkownika,
wylogowanie uŜytkownika, przerwanie sesji, itp.).
72
4. Metody i środki informatycznego zabezpieczania systemów
W tabeli 4 zawarto zalety i wady systemów IDS.
Zalety
Wady
IDS oparty na
Obserwuje i interpretuje
zdarzenia w kontekście
systemie operacyjnym
protokołu
znanego systemu
hosta
operacyjnego albo aplikacji
Nie obserwuje niŜszych warstw
Trudność w monitorowaniu całych
podsieci
Zazwyczaj generuje znaczną ilość
logów
Analizujący
nagłówki
protokołów
IDS
Łatwość w monitorowaniu
Podatne na ataki DoS i modyfikacji
całych podsieci
Strata pakietów przy większym
Działa na najniŜszej warstwie
sieci
Generuje małą liczbę logów
Nie ingeruje w prywatność
obciąŜeniu sieci
Wykrywa mniej ataków niŜ IDS
analizujący zawartość pól
sesji
oparty na
sieci
Analizujący
zawartość
pól danych
Łatwość w monitorowaniu
Podatne na ataki DoS i modyfikacji
całych podsieci
Strata pakietów przy większym
Działa na najniŜszej warstwie
sieci
obciąŜeniu sieci
Nie potrafi analizować zaszyfrowanych
MoŜe generować duŜe ilości logów
MoŜliwa duŜa liczba wykryć
Wykrywa więcej ataków
niŜ IDS analizujący nagłówki
danych
protokołów
MoŜe wykrywać nieznane
ataki
IDS wykrywający
fałszywych ataków – trudny dobór
odpowiednich parametrów pracy
anomalie
MoŜliwość „szkolenia” systemu przez
atakującego
IDS wykrywający
naduŜycia
MoŜe wykrywać warianty
znanych ataków
MoŜe wykrywać tylko znane ataki
Tabela 4. Wady i zalety systemów IDS
(źródło: P. Kijewski, K. Szczypiorski: „Bezpieczeństwo w sieciach TCP/IP”;
”Przegląd Telekomunikacyjny” nr 5-6 2001 r.)
73
Zakończenie
Na podstawie zagadnień przedstawionych w niniejszej pracy moŜna
wnioskować, Ŝe rozwój technologii informatycznych i w konsekwencji samego
Internetu, oznaczającego coraz większe uzaleŜnienie od tego medium, nie zmniejsza
jednocześnie zagroŜenia bezpieczeństwa w systemach informatycznych. Dotyczy to
zarówno uŜytkowników indywidualnych jak i organizacji. Cel pracy, związany z
przedstawieniem zarówno metod i narzędzi słuŜących włamaniom do systemów
informatycznych, jak i współcześnie stosowanych metod ochrony tych systemów został
zrealizowany, a z informacji przedstawionych w niniejszej pracy moŜna wysunąć
następujące wnioski:
1. Osiągnięcie stuprocentowego bezpieczeństwa w systemie informatycznym jest
w praktyce nieosiągalne.
2. Środki informatyczne mogą w znaczny sposób zwiększyć ochronę systemów,
ale nigdy nie gwarantują pełnego bezpieczeństwa.
3. Skuteczność ochrony systemów informatycznych moŜna zwiększyć przez
równoczesne zastosowanie róŜnych metod i środków: informatycznych,
fizycznych, organizacyjnych.
4. W ciągle rozwijającej się sieci Internet istnieje wiele zagroŜeń, z istnienia
których wielu uŜytkowników nie zdaje sobie sprawy.
5. Naruszenie lub osłabienie bezpieczeństwa systemów informatycznych bardzo
często powodowanych jest przez działania samych uŜytkowników systemów.
6. Same rozwiązania technologiczne są niewystarczające dla zapewnienia
bezpieczeństwa w organizacji, dlatego potrzebna jest kompletna polityka
bezpieczeństwa.
7. KaŜda organizacja ma swoją specyfikę i powinna mieć odrębną politykę
bezpieczeństwa, która jest ściśle powiązana z jej charakterem i ciągle
dostosowywana do zmieniających się warunków wewnętrznych i zewnętrznych.
8. ZauwaŜalny jest ciągły rozwój metod ataków na systemy informatyczne
(szczególnie ataki DoS i DDoS).
9. Wirusy, robaki, konie trojańskie i inne „złośliwe” programy, stwarzają i będą
stwarzać w przyszłości potencjalne zagroŜenie i nic nie wskazuje na to, aby w
najbliŜszej przyszłości uległo to zmianie.
Zakończenie
10. KaŜdy komputer podłączony do sieci, moŜe być źródłem ataku na inne
komputery, lub teŜ moŜe rozsyłać „złośliwe” programy (wirusy, konie
trojańskie, itp.), dlatego teŜ kwestia bezpieczeństwa dotyczy wszystkich
uŜytkowników sieci a sieci Internet w szczególności.
75
Literatura
Literatura
1. Chestwick W. R., Bellovin S. M., Rubin A. D.: ‘Firewalle i bezpieczeństwo w sieci’,
Helion Gliwice 2003
2. Comer D. E.: ‘Sieci komputerowe i intersieci’, WNT Warszawa 2000, 2001
3. Erickson J.: ‘Hacking. Sztuka penetracji’, Helion 2004
4. Kifner T.: ‘Polityka bezpieczeństwa i ochrony informacji’, Helion 1999
5. Majwald E.: ‘Bezpieczeństwo w Sieci. Kurs podstawowy’, Wydawnictwo Edition
2000/2001
6. McNamara J.: ‘Arkana szpiegostwa komputerowego’, Helion Gliwice 2004
7. Mitnick K., Simon W.: ‘Sztuka podstępu. Łamałem ludzi, nie hasła’, Helion 2003
8. Pekari C., Chuvakin A.: ‘StraŜnik bezpieczeństwa danych’, Helion 2004
9. Waglowski P.: ‘Prawo w sieci. Zarys regulacji Internetu.’, Wydawnictwo
ONEPRESS 2005
Witryny internetowe
1. http://ettercap.sourceforge.net
2. http://staff.washington.edu
3. http://vx.netlux.org
4. www.bezpieczenstwoit.pl
5. www.biometryka.com
6. www.cert.pl
7. www.cert.org
8. www.haking.pl
9. www.insecure.org
10. www.nbp.pl
11. www.openwall.com
12. www.pckurier.pl
13. www.pentics.net
14. www.ussrback.com
15. www.viruslist.pl
76
Wykaz rysunków i tabel
Wykaz rysunków
Rys. 1 Atak przerwania .....................................................................................................6
Rys. 2 Atak przechwycenia...............................................................................................6
Rys. 3 Atak modyfikacji ...................................................................................................7
Rys. 4 Atak podrobienia....................................................................................................7
Rys. 5 Schemat ataku DNS Spoofing .............................................................................10
Rys. 6 Synchronizacja połączenia TCP ..........................................................................11
Rys. 7 Atak DDoS...........................................................................................................15
Rys. 8 Rozsyłanie pakietów w sieci opartej o hub..........................................................22
Rys. 9 Rozsyłanie pakietów w sieci opartej o switch .....................................................23
Rys. 10 Schemat trójstopniowej sieci DDoS ..................................................................43
Rys. 11 Uwierzytelnianie w systemie Kerberos .............................................................63
Rys. 12 Strefa zdemilitaryzowana (DMZ) ......................................................................66
Wykaz tabel
Tabela 1 Przewidywany czas łamania haseł ...................................................................25
Tabela 2 Czas łamania haseł w zaleŜności od jego skomplikowania .............................39
Tabela 3. Wady i zalety zapór sieciowych......................................................................69
Tabela 4. Wady i zalety systemów IDS ..........................................................................73
77
Dodatki
Dodatek 1 – Klasy oceny bezpieczeństwa systemów
informatycznych
Przedstawione klasy zawarte zostały w standardzie „Trusted Computer Systems
Evaluation Criteria” opracowanym przez Departament Obrony USA37.
klasa
D
nazwa
Minimal
protection
Discretionary
C1
security
protection
Controlled
C2
Access
protection
B1
Wymagania
System pozbawiony ochrony (brak ochrony uŜytkowników i plików). Posiada
tylko minimalne zabezpieczenia.
TCB38 tej klasy zapewnia separację uŜytkowników i danych. Uzyskany
poziom bezpieczeństwa pozwala uŜytkownikom chronić dane związane z
projektami nad którymi pracują lub dane prywatne, uniemoŜliwiając innym
uŜytkownikom ich odczyt, modyfikowanie lub usuwanie.
Systemy tej klasy wymuszają silniejszy poziom ochrony niŜ dla klasy C1
poprzez wprowadzanie procedur logowania, mechanizmów audytu i izolacji
zasobów.
Labeled
Systemy te posiadają wszystkie właściwości systemów klasy C2. Dodatkowo
security
wprowadzony jest element etykietowania podmiotów i obiektów (opisywania
protection
ich właściwości w systemie bezpieczeństwa).
TCB jest oparta na jasno zdefiniowanej i udokumentowanej polityce
bezpieczeństwa. Ponadto TCB musi być podzielona na część krytyczną pod
B2
Structured
protection
względem ochrony (protection-critical) i resztę. TCB ma posiadać dobrze
zdefiniowany interfejs i jest łatwa w testowaniu (posiada odpowiednie
mechanizmy). Wzmocnione muszą być mechanizmy uwierzytelniania oraz
narzędzia administrowania bezpieczeństwem systemu. System musi być
względnie odporny na penetrację.
Zminimalizowana jest złoŜoność TCB w celu umoŜliwienia wykonania
B3
Security
domains
dokładniejszych analiz. System posiada silne wsparcie dla administracji
bezpieczeństwem, mechanizm audytu rozszerzony do reagowania na sygnały
związane z bezpieczeństwem. Wymagane jest opracowanie procedur
odtwarzania stanu systemu. System jest wysoce odporny na penetrację.
A1
Verified
design
Systemy tej klasy są funkcjonalnie równowaŜne systemom klasy B3. RóŜnica
polega na tym, Ŝe istnieje moŜliwość weryfikacji czy TCB jest poprawnie
zaimplementowana.
37
http://www.radium.ncsc.mil/tpep/library/rainbow/5200.28-STD.html
38
Trusted Computing Base - godna zaufania baza komputera
78

Podobne dokumenty