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