BEZPIECZEŃSTWO SYSTEMÓW KOMPUTEROWYCH. Spis treści. Spis treści



Podobne dokumenty
Metody ataków sieciowych

MODEL WARSTWOWY PROTOKOŁY TCP/IP

SEGMENT TCP CZ. II. Suma kontrolna (ang. Checksum) liczona dla danych jak i nagłówka, weryfikowana po stronie odbiorczej

Sieci komputerowe Warstwa transportowa

Przesyłania danych przez protokół TCP/IP

Protokoły sieciowe - TCP/IP

DR INŻ. ROBERT WÓJCIK DR INŻ. JERZY DOMŻAŁ

System operacyjny UNIX - użytkownicy. mgr Michał Popławski, WFAiIS

Router programowy z firewallem oparty o iptables

PROTOKOŁY WARSTWY TRANSPORTOWEJ

Sieci komputerowe. Zajęcia 3 c.d. Warstwa transportu, protokoły UDP, ICMP

Stos protokołów TCP/IP (ang. Transmission Control Protocol/Internet Protocol)

TCP/IP formaty ramek, datagramów, pakietów...

Enkapsulacja RARP DANE TYP PREAMBUŁA SFD ADRES DOCELOWY ADRES ŹRÓDŁOWY TYP SUMA KONTROLNA 2 B 2 B 1 B 1 B 2 B N B N B N B N B Typ: 0x0835 Ramka RARP T

FTP przesył plików w sieci

Metody zabezpieczania transmisji w sieci Ethernet

Wykład 2: Budowanie sieci lokalnych. A. Kisiel, Budowanie sieci lokalnych

Pierwsze kroki w systemie

Skąd dostać adres? Metody uzyskiwania adresów IP. Statycznie RARP. Część sieciowa. Część hosta

Bezpieczeństwo systemu Rubinet

SMB protokół udostępniania plików i drukarek

INSTRUKCJA OBSŁUGI DLA SIECI

TRX API opis funkcji interfejsu

Zestaw ten opiera się na pakietach co oznacza, że dane podczas wysyłania są dzielone na niewielkie porcje. Wojciech Śleziak

Klient-Serwer Komunikacja przy pomocy gniazd

Sieci komputerowe - Protokoły warstwy transportowej

Instrukcja konfiguracji funkcji skanowania

Adres IP

Sprawozdanie nr 4. Ewa Wojtanowska

Sieci komputerowe i bazy danych

Serwer druku w Windows Server

Serwer SSH. Wprowadzenie do serwera SSH Instalacja i konfiguracja Zarządzanie kluczami

Projektowanie bezpieczeństwa sieci i serwerów

Protokoły zdalnego logowania Telnet i SSH

Laboratorium - Przechwytywanie i badanie datagramów DNS w programie Wireshark

9. System wykrywania i blokowania włamań ASQ (IPS)

ZAŁĄCZNIK Nr 3 do CZĘŚCI II SIWZ

4. Podstawowa konfiguracja

dostępu do okręslonej usługi odbywa się na podstawie tego adresu dostaniemu inie uprawniony dostep

Akademickie Centrum Informatyki PS. Wydział Informatyki PS

Instrukcja instalacji Control Expert 3.0

Praca semestralna. Temat: Użytkownicy, grupy, autoryzacja i uprawnienia w systemie Linux. CENTRUM EDUKACJI AKADEMIA SUKCESU

Laboratorium Sieci Komputerowych - 2

Przegląd zagrożeń związanych z DNS. Tomasz Bukowski, Paweł Krześniak CERT Polska

Zarządzanie ruchem w sieci IP. Komunikat ICMP. Internet Control Message Protocol DSRG DSRG. DSRG Warstwa sieciowa DSRG. Protokół sterujący

DR INŻ. ROBERT WÓJCIK DR INŻ. JERZY DOMŻAŁ

Instrukcja do panelu administracyjnego. do zarządzania kontem FTP WebAs.

Telnet. Telnet jest najstarszą i najbardziej elementarną usługą internetową.

LABORATORIUM - SINUS Firewall

Laboratorium - Używanie programu Wireshark do obserwacji mechanizmu uzgodnienia trójetapowego TCP

Politechnika Łódzka. Instytut Systemów Inżynierii Elektrycznej

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 13 Topologie sieci i urządzenia

bla bla Guard podręcznik użytkownika

SKRÓCONA INSTRUKCJA OBSŁUGI SYSTEMU ZARZĄDZANIA OBIEGIEM INFORMACJI (SZOI)

ZAŁĄCZNIK Nr 1 do CZĘŚCI II SIWZ

Wykład 6: Bezpieczeństwo w sieci. A. Kisiel, Bezpieczeństwo w sieci

Zagrożenia warstwy drugiej modelu OSI - metody zabezpieczania i przeciwdziałania Autor: Miłosz Tomaszewski Opiekun: Dr inż. Łukasz Sturgulewski

Sprawozdanie. (notatki) Sieci komputerowe i bazy danych. Laboratorium nr.3 Temat: Zastosowanie protokołów przesyłania plików

MODEL OSI A INTERNET

SIECI KOMPUTEROWE I TECHNOLOGIE INTERNETOWE

Sieci Komputerowe Modele warstwowe sieci

Instrukcja konfiguracji i uruchamiania połączenia VPN z systemami SAP

Tytuł: Instrukcja obsługi Modułu Komunikacji internetowej MKi-sm TK / 3001 / 016 / 002. Wersja wykonania : wersja oprogramowania v.1.

Współpraca z platformą Emp@tia. dokumentacja techniczna

OBSŁUGA I KONFIGURACJA SIECI W WINDOWS

2014 Electronics For Imaging. Informacje zawarte w niniejszej publikacji podlegają postanowieniom opisanym w dokumencie Uwagi prawne dotyczącym tego

Memeo Instant Backup Podręcznik Szybkiego Startu

Konfiguracja programu MS Outlook 2007 dla poczty w hostingu Sprint Data Center

Zarządzanie bezpieczeństwem w sieciach

Sieci komputerowe. Wykład 5: Warstwa transportowa: TCP i UDP. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Usługi sieciowe systemu Linux

TELEFONIA INTERNETOWA

Instrukcja obsługi certyfikatów w programie pocztowym MS Outlook Express 5.x/6.x

Model sieci OSI, protokoły sieciowe, adresy IP

Laboratorium Protokoły sieci teleinformatycznych

System operacyjny Linux

Windows W celu dostępu do i konfiguracji firewall idź do Panelu sterowania -> System i zabezpieczenia -> Zapora systemu Windows.

Na podstawie: Kirch O., Dawson T. 2000: LINUX podręcznik administratora sieci. Wydawnictwo RM, Warszawa. FILTROWANIE IP

Instrukcja zarządzania systemem informatycznym służącym do przetwarzania danych osobowych w Urzędzie Miasta Lublin

Sieci komputerowe - administracja

Warstwy i funkcje modelu ISO/OSI

Zarządzanie dokumentacją techniczną. Wykł. 11 Zarządzania przepływem informacji w przedsiębiorstwie. Zabezpieczenia dokumentacji technicznej.

Dr Michał Tanaś(

Konfiguracja zapory Firewall w systemie Debian.

KONFIGURACJA TERMINALA GPON ONT HG8245

Bezpieczeństwo w M875

Program kadrowo płacowy - wersja wielodostępna z bazą danych Oracle SQL Server 8 lub 9

Skanowanie portów. Autorzy: Jakub Sorys, Dorota Szczpanik IVFDS

INFRA. System Connector. Opis systemu

Laboratorium 6.7.2: Śledzenie pakietów ICMP

Najczęściej występujące problemy z instalacją i konfiguracją i ich rozwiązania.

EuroFirma Sklep Internetowy do programów

Przykładowa konfiguracja konta pocztowego w programie Outlook Express z wykorzystaniem MKS 2k7 (MS Windows 2000 Proessional)

Skanowanie podsieci oraz wykrywanie terminali ABA-X3

Ćwiczenie 5b Sieć komputerowa z wykorzystaniem rutera.

iptables -F -t nat iptables -X -t nat iptables -F -t filter iptables -X -t filter echo "1" > /proc/sys/net/ipv4/ip_forward

LABORATORIUM SIECI KOMPUTEROWYCH (compnet.et.put.poznan.pl)

Protokoły wspomagające. Mikołaj Leszczuk

Nr: 12. Tytuł: UDOSTĘPNIANIE DANYCH O SPRAWACH KLIENTOM KANCELARII NA ZEWNĘTRZNYCH SERWERACH WWW. Data modyfikacji:

ARP Address Resolution Protocol (RFC 826)

Transkrypt:

Spis treści 2 Spis treści Wstęp 4 Rozdział I Problem bezpieczeństwa 1. Zagrożenia w sieci Internet 5 2. Kim jest haker? 9 3. Klasy zabezpieczeń 11 Rozdział II Podstawy Internetu 1. Protokół TCP/IP 15 Rozdział III 1. Rodzaje ataków 22 2. Ataki pasywne 27 2.1. Social engineering 27 2.2. Hasła 29 2.3. Skanowanie 38 2.4. Sniffing 48 3. Ataki aktywne 52 3.1. Spoofing 52 3.2. Hijacking 54 3.3. Konie trojańskie 58 3.4. Ataki typu DOS 61 3.5. Ataki typu Buffer Overflow 78 4. Tylne drzwi 80 Rozdział IV Rodzaje zabezpieczeń 1. Firewall 87 2. Tripwire 95

Spis treści 3 3. Kerberos 102 Zakończenie 106 Bibliografia 107 Spis tabel i rysunków 110

Wstęp 4 Wstęp W ostatnich latach obserwuje się dynamiczny rozwój Internetu. Z powodu możliwości jakie daje z dnia na dzień przybywa podłączanych komputerów oraz wzrasta ilość jego użytkowników. Coraz więcej osób korzysta z niego w pracy zawodowej i coraz więcej firm prowadzi dzięki niemu interesy. Internet powoli staje się nieodłącznym elementem naszego życia. Zrobienie zakupów nie łączy się już jednoznacznie z pójściem do sklepu, a przeczytanie gazety z koniecznością jej kupna. Wzrost znaczenia Internetu pociąga za sobą zwiększoną ilość informacji jakie są nim przesyłane. Rośnie także ich znaczenie i niezbędna staje się ich poufność. Nie ruszając się z domu możemy dokonywać transakcji elektronicznych, bądź korespondować z ważnymi osobami. Dla niektórych osób takie informacje mogą się okazać niezwykle cenne. Konieczne jest więc zadbanie o ich bezpieczeństwo, ponieważ kradzież tych danych staje się powoli nową profesją. Ma to miejsce głównie ze względów finansowych. Można sobie wyobrazić znaczenie jakie miałoby pozyskanie cennych informacji przez jedną z konkurujących ze sobą firm. Celem mojej pracy jest przedstawienie potencjalnych zagrożeń jakie niesie ze sobą podłączenie do Internetu. Pokazując różnorodność ataków i metody ograniczające ich skuteczność, starałem się uzmysłowić użytkownikowi niebezpieczeństwo, na jakie narażone są jego poufne informacje przesyłane w sieci. Kolejne rozdziały to podstawowe informacje o protokole TCP/IP będącym podstawą Internetu oraz rodzaje i typy najczęstszych ataków. Na koniec przytoczyłem kilka ogólnych metod stosowanych w celu zabezpieczenia systemu przed ingerencją włamywacza. Zakres przedstawionych zagadnień nie wyczerpuje dogłębnie tematu pracy, ponieważ codziennie pojawiają się nowe techniki, ale z pewnością stanowi jego większą część.

Problem bezpieczeństwa 5 Rozdział I 1. Zagrożenia w sieci Internet Gdy we wczesnych latach sześćdziesiątych powstawała sieć ARPAnet, nikt nie przypuszczał, że przyjmie ona kształt dzisiejszego Internetu. Na początku była to wojskowa sieć Departamentu Obrony USA i była przeznaczona do prowadzenia prac badawczych nad architekturą otwartych systemów komunikacyjnych. W roku 1973 oddzielono część cywilną NFSnet i wprowadzono protokół TCP/IP. Sieć miała służyć przede wszystkim środowisku akademickiemu, jednak w 1991r. została udostępniona światu i od tego momentu Internet zaczyna się dynamicznie rozwijać. Z czasem zaczęto go wykorzystywać do celów komercyjnych i stało się jasne, że niezbędne jest położenie większego niż do tej pory nacisku na kwestie bezpieczeństwa. Wraz ze wzrostem ilości komputerów podłączonych do Internetu, nasilać się będzie fala przestępstw elektronicznych. Jak przewiduje Computer Industry Almanac Inc. pod koniec roku 2000 liczba podłączonych do Internetu komputerów wyniesie blisko 600 mln, a użytkowników Internetu będzie aż 327 mln, z czego w Polsce około 2,1 mln osób 1. Stale rozbudowywana sieć i zwiększony w niej ruch powoduje wzrost zagrożenia bezpieczeństwa naszych danych. W momencie gdy podłączymy się do sieci Internet, dostęp do nas mają setki tysięcy, albo nawet miliony ludzi na całym świecie. 1 Prognoza przygotowana przez Credit Suisse First Boston, dostępna za strony Magazynu Value

Problem bezpieczeństwa 6 9,9 8,5 7,2 5,7 3,8 1,2 1,6 2,1 1998 1999 2000 2001 2002 2003 2004 2005 Rys. 1. Ilość użytkowników Internetu w Polsce (mln) 2 Utrata informacji lub naruszenie jej poufności może być spowodowane: awarią sprzętu, błędem oprogramowania, niedozwoloną ingerencją z zewnątrz lub wewnątrz systemu. Najczęstszymi sprawcami naruszenia bezpieczeństwa systemów komputerowych jest mniej lub bardziej wyspecjalizowana grupa użytkowników, zajmująca się włamaniami do systemów komputerowych. Do tego procederu wykorzystują oni błędy w oprogramowaniu i konfiguracji systemów komputerowych. 2 Źródło: Credit Suisse First Boston

Problem bezpieczeństwa 7 Zagrożenia bezpieczeństwa w sieci Internet można podzielić na następujące klasy: uzyskanie dostępu do danych transmitowanych przez sieć lub przechowywanych na dołączonych do sieci komputerach przez osoby niepowołane, uzyskanie dostępu do takich zasobów jak moc obliczeniowa, pamięć komputerów itp., utrata danych na skutek ingerencji zewnętrznej, fałszerstwo danych. Techniki, jakimi można posłużyć się dla osiągnięcia któregoś z tych celów, opierają się przede wszystkim na wykorzystaniu: wad protokołu TCP/IP i protokołów pokrewnych, błędów w oprogramowaniu systemowym, błędów administratora lub użytkownika systemu. Protokół TCP/IP nie zawiera wbudowanych mechanizmów szyfrowania przesyłanych danych. Umożliwia to przechwytywanie danych zwłaszcza w przypadku mediów transmisyjnych funkcjonujących na zasadzie magistrali takich jak Ethernet. Najczęstszym jednak sposobem naruszenia bezpieczeństwa w sieci jest pozyskanie dostępu do cudzego konta na komputerze pracującym w systemie wielodostępnym przyłączonym do sieci Internet. Można to osiągnąć między innymi wykorzystując błędy w oprogramowaniu systemowym. Włamanie na konto administratora jest szczególnie niebezpiecznym przypadkiem, ponieważ umożliwia dostęp do danych wszystkich użytkowników danego komputera, a także ułatwia zatarcie w systemie śladów włamania.

Problem bezpieczeństwa 8 Usuwanie skutków włamania jest jednym z najtrudniejszych zadań administratora, głównie ze względu na konieczność upewnienia się, czy nie zostały wprowadzone modyfikacje umożliwiające włamywaczowi powtórne wejście. Brak świadomości wśród użytkowników jest prawdopodobnie najczęstszą przyczyną naruszenia bezpieczeństwa. W większości systemów wielodostępnych, dostęp do konta chroniony jest indywidualnym hasłem użytkownika, a stosowanie łatwych haseł jest przyczyną większości włamań.

Problem bezpieczeństwa 9 2. Kim jest haker? Obecnie haker to ktoś, kto potrafi biegle poruszać się w szeroko pojętym środowisku informacyjnym, posiada specjalistyczne przygotowanie techniczne jak i zasób inteligencji wystarczający do tego, by realizować własne plany bez przesadnego naruszania prawa. Aby w ogóle próbować zostać prawdziwym hakerem, potrzeba dużo nauki i wiele wysiłku koniecznego do przyswojenia niezbędnej, bardzo szerokiej wiedzy, a później wiele kultury i samodyscypliny, która jest konieczna do uchronienia rasowego hakera przed pokusami crackingu czy phreakingu. Podstawą działania hakera jest znajomość systemów operacyjnych, na których oparte są atakowane aplikacje. Ze względu na charakter działalności programistów zajmujących się łamaniem zabezpieczeń systemów komputerowych dzieli się ich na kategorie: Hacker osoba, która jest oddana idei udostępniania technologii i pomaga innym korzystać z zalet nowoczesnej techniki. Jest to człowiek zafascynowany rozwiązywaniem problemów przy wykorzystaniu wszelkich możliwości techniki. Cracker jest to człowiek, który zajmuje się włamywaniem do systemów komputerowych w celu odniesienia konkretnych korzyści lub umożliwienia innym ich czerpania. Crackerem jest też ktoś, kto likwiduje zabezpieczenia programu przed nielegalnym kopiowaniem, czyli ktoś, kto nie tylko łamie zabezpieczenia, ale także normy etyczne.

Problem bezpieczeństwa 10 Phracker osoba zajmująca się kradzieżami programów umożliwiających bezpłatne korzystanie z usług telekomunikacyjnych lub badają komputery i bazy danych firm oferujących takie usługi. Phreaker osoba korzystająca z ukradzionych informacji dotyczących połączeń telefonicznych takich jak numery kart lub numery abonentów w celu uzyskania dostępu do innych komputerów. W ciągu ostatnich lat terminem haker zaczęto określać osoby, które specjalizują się we włamaniach do systemów. Stało się to głównie za sprawą mediów, które nakreśliły wizerunek hakera, jako przestępcy, który bezwzględnie się włamuje i kradnie. Taki stan rzeczy bardzo denerwuje prawdziwych hakerów ze starej szkoły, którzy uważają że tacy ludzie jak crackerzy psują im opinię. Należy więc jasno i wyraźnie rozgraniczyć pojęcia haker i cracker: haker dużo potrafi, ale utrzymuje się w swoich działaniach w granicach określonych jeśli nawet nie przez obowiązujące prawo, to przynajmniej przez środowiskowe normy etyczne, cracker swoje hakerskie umiejętności wykorzystuje w celu osiągnięcia konkretnych korzyści materialnych czy też w celu wyrządzenia konkretnych szkód 3. 3 Michał Kamfora, Kult hakingu, czasopismo Enter nr 9, 1999

Problem bezpieczeństwa 11 3. Klasy zabezpieczeń Departament Obrony USA w 1985 roku w dokumencie Trusted Computer System Evaluation Criteria (TCSEC), znanym także jako Orange Book, zdefiniował siedem poziomów bezpieczeństwa komputerowego systemu operacyjnego. Księga ta definiuje wymagania co do systemów przetwarzających poufne informacje. Różne poziomy określają różne sposoby zabezpieczania sprzętu, oprogramowania i danych. Klasyfikacja ta jest tak sformułowana, że wyższe poziomy posiadają wszystkie cechy poziomów niższych. Klasa D Minimalna ochrona (ang. minimal protection). Klasa D jest określa najniższy poziom bezpieczeństwa oznaczający całkowity brak wiarygodności systemu. Poziom ten nie wymaga certyfikacji, ponieważ cechuje go brak jakichkolwiek zabezpieczeń. Jedyne co można zrobić to ograniczyć fizyczny dostęp do systemu. Każdy użytkownik, który ma dostęp do systemu może w tym systemie zrobić wszystko. Klasa C1 Dobrowolna kontrola dostępu (ang. discretionary security protection). Każdy użytkownik kontroluje dostęp do obiektów, których jest właścicielem i zezwala na dostęp według własnego uznania. Dostęp może być inny dla właściciela, grupy czy pozostałych użytkowników. Przed rozpoczęciem pracy użytkownik musi zalogować

Problem bezpieczeństwa 12 się do systemu podając swoje hasło. System operacyjny kontroluje uprawnienia użytkowników do odczytu i zapisu plików i kartotek oraz dysponuje mechanizmem autoryzacji dostępu. System taki nie ma na ogół zdefiniowanego tzw. superużytkownika (np. root) lub użytkownik taki nie jest bardziej bezpieczny niż pozostali. Klasa C1 jest także pozbawiona mechanizmów rejestrowania zdarzeń. Informacja o nazwach kont użytkowników oraz zakodowane hasła są dostępne dla wszystkich użytkowników. Istnieje duże niebezpieczeństwo rozkodowania hasła na podstawie zakodowanego ciągu. Klasa C2 Dostęp kontrolowany (ang. controlled access protection). Poziom ten gwarantuje automatyczne rejestrowanie wszystkich istotnych z punktu widzenia bezpieczeństwa zdarzeń i zapewnia silniejszą ochronę kluczowych danych systemowych takich jak np. baza danych haseł użytkowych. Zakodowane hasła użytkowników dostępne są tylko dla systemu operacyjnego. Istnieje także możliwość zablokowania niektórych instrukcji poszczególnym użytkownikom. Klasa B1 Etykiety poziomu bezpieczeństwa (ang. labeled security protection). Etykiety pozwalają na stopniowanie poziomu poufności obiektów i poziomu zaufania do poszczególnych użytkowników. Klasa ta obsługuje bezpieczeństwo na kilku poziomach takich jak tajne i ściśle tajne. Ma wdrożone mechanizmy uznaniowej kontroli dostępu do zasobów systemu, co może np. sprowadzić się do braku możliwości zmiany charakterystyki dostępu do plików i kartotek przez

Problem bezpieczeństwa 13 określonego użytkownika. Klasa ta blokuje możliwość zmiany praw dostępu do obiektu przez jego właściciela. Klasa B2 Zabezpieczenie strukturalne (ang. structure protection). Poziom wymaga przypisania każdemu obiektowi systemu komputerowego etykiety bezpieczeństwa określającej status tego obiektu w odniesieniu do przyjętej polityki bezpieczeństwa, np. gdy obiekt użytkownik żąda dostępu do obiektu plik system ochrony akceptuje lub odrzuca to żądanie na podstawie porównania zawartości etykiet bezpieczeństwa tych obiektów. Etykiety te mogą zmieniać się dynamicznie w zależności od tego co jest aktualnie użytkowane. Klasa B3 Obszary poufne (ang. security domains). Jest to rozszerzenie problemu bezpieczeństwa na sprzęt komputerowy. W tym przypadku bezwzględnie obowiązkowym jest chronienie zarówno przechowywanej jak i przesyłanej informacji. Przykładowo: terminale mogą być połączone z serwerem tylko za pośrednictwem wiarygodnego okablowania i specjalizowanego sprzętu gwarantującego, że nikt nie będzie w stanie przechwycić znaków wciskanych na naszej klawiaturze.

Problem bezpieczeństwa 14 Klasa A1 Zweryfikowana realizacja systemu (ang. verified design). Jest to najwyższy poziom bezpieczeństwa. Cała konfiguracja sprzętowo-programowa wymaga matematycznej weryfikacji. Zarówno sprzęt jak i oprogramowanie musi podlegać specjalnej ochronie w trakcie transportu zapewniającej jego nienaruszalność (aby nikt niczego nie podmienił). Wymaga formalnego dowodu, że system jest zgodny z wymaganiami. W tym miejscu należy zwrócić uwagę na problem wzrostu obciążenia systemu operacyjnego związanego z uaktywnieniem opcji bezpieczeństwa. W szczególności może okazać się, że mało wydajne serwery nie będą w stanie obsłużyć wszystkich użytkowników po uruchomieniu wszystkich programów zabezpieczających, ze względu na duże zużycie zasobów procesora i powierzchni dyskowej 4. 4 Clico Centrum Oprogramowania, Wprowadzenie do problemów bezpieczeństwa komputerowych systemów sieciowych, 1997

Podstawy Internetu 15 Rozdział II 1. Protokół TCP/IP Protokół TCP/IP (Transmission Control Protocol/Internet Protocol) jest podstawowym protokołem stanowiącym szkielet Internetu. Węzły sieci komputerowej wymieniają dane korzystając z ustalonego zbioru reguł zwanych protokołami, dzięki którym wszystkie komputery w sieci są w stanie określić, czy mogą skorzystać z określonych usług, takich jak dostęp do plików lub sterowanie drukowaniem. Protokoły korzystają z mechanizmów specyficznych dla danego systemu operacyjnego, pozwalających na filtrowanie dostępu w sieci, zarządzanie jej użytkownikami, przesyłanie plików, obsługiwanie zdalnego logowania, a także nawiązywania połączeń internetowych. Należy zwrócić uwagę, że w skład protokółu TCP/IP wchodzi kilka innych protokołów. Tabela 1. Protokoły wchodzące w skład TCP/IP IP Internet Protocol należy do warstwy sieciowej, służy do przesyłania danych między dwoma komputerami głównymi. TCP Transmission Control Protocol należy do warstwy transportowej, służy do przesyłania danych wielopakietowych między aplikacjami. UDP User Datagram Protocol także należy do warstwy transportowej, służy do przesyłania danych między aplikacjami; jest mniej skomplikowany i bardziej zawodny niż TCP, służy do przesyłania pojedynczych pakietów.

Podstawy Internetu 16 ICMP Internet Control Message Protocol służy do przesyłania sieciowych komunikatów o błędach oraz do powiadamiania o innych zdarzeniach wymagających interwencji oprogramowania sieciowego. Protokół IP Protokół IP jest protokołem bezpołączeniowym zawartym w pakiecie TCP/IP, wysyłającym dane w postaci datagramów. Posiada dwa 32-bitowe pola w nagłówku do przechowywania informacji o adresach. Protokół IP kieruje pakietami w sieci, ale nie posiada mechanizmów niezawodności połączenia, polegając jedynie na protokołach z wyższych warstw, np. TCP. Ponieważ jest protokołem bezpołączeniowym, nie wysyła żadnych komunikatów o dostarczeniu. Protokół TCP Protokół TCP, tak jak UDP, służy do przesyłania danych między warstwą sieciową a warstwą aplikacji, ale jest od niego bardziej złożony, ponieważ oferuje niezawodną usługę dostarczania danych, opartą na strumieniu bajtów i nawiązaniu połączenia. TCP gwarantuje, że wiadomość zostanie dostarczona i aplikacja otrzyma dane w odpowiedniej kolejności. Jest to sytuacja odwrotna niż w wypadku protokołu UDP, który nie gwarantuje dostarczenia danych ani przesyłania ich w odpowiedniej kolejności. Protokół TCP próbuje ponadto zoptymalizować ruch w sieci, dąży do uzyskania maksymalnego przepływu danych w Internecie. W tym celu prowadzi dynamiczną kontrolę przepływu danych w poszczególnych połączeniach. Jeśli więc bufor danych umieszczony na końcu połączenia TCP, z którego napływają dane, zaczyna się przepełniać, to protokół TCP powoduje

Podstawy Internetu 17 zmniejszenie szybkości wysłania danych. Ważne jest także to, że TCP jest protokołem połączeniowym, a IP bezpołączeniowym. Protokół TCP pozwala na przesyłanie danych w postaci strumienia bajtów, podczas gdy protokół IP korzysta z datagramów, w związku z czym protokół TCP musi przekształcić swoje dane. Komunikat TCP Protokół TCP traktuje dane jako jeden nieprzerwany strumień informacji, ale ponieważ przesyłanie danych musi się odbywać za pośrednictwem datagramów protokołu IP, to każdy przesyłany komunikat (segment) TCP jest w rzeczywistości tylko pojedynczym segmentem ze strumienia bajtów protokołu TCP. Segment TCP składa się z nagłówka TCP, opcji TCP oraz danych przesyłanych za pomocą segmentu. 32 bity 0 16 16 31 16-bitowy port źródłowy 16-bitowy port źródłowy 32-bitowy numer sekwencji 32-bitowy numer potwierdzenia Długość nagłówka 4 bity Zarezerwowane 6-bitów U R G A C K P S H R S T S Y N F I N 16-bitowy rozmiar okna 16-bitowa suma kontrolna TCP 16-bitowy wskaźnik Urgent Opcje (jeśli występują) Dopełnienie (w razie potrzeby) Opcjonalne miejsce na dane Rys. 2. Budowa komunikatu TCP.

Podstawy Internetu 18 W tabeli przedstawiono przeznaczenie poszczególnych pól komunikatu TCP Tabela 2. Przeznaczenie pól danych w nagłówku TCP port źródłowy określa port protokołu aplikacji wysyłającej dane. port docelowy określa port protokołu aplikacji odbierającej dane. numer sekwencji określa położenie pierwszego bajtu w polu danych segmentu TCP. numer potwierdzenia zawiera numer bajtu ze strumienia danych, oczekiwanego przez stronę odbierającą. długość nagłówka określa długość nagłówka TCP flaga URG sygnalizuje modułowi TCP strony odbierającej, że pole wskaźnik Urgent wskazuje na dane pilne. flaga ACK sygnalizuje modułowi TCP strony odbierającej, że pole numer potwierdzenia zawiera poprawny numer potwierdzenia. flaga PSH polecenie dla modułu TCP strony odbierającej, aby bezzwłocznie wysłał do aplikacji odbierającej dane informacje zawarte w segmencie. flaga RST potwierdzenie resetu połączenia TCP skierowane do modułu TCP odbierającego dane. flaga SYN polecenie dla modułu TCP strony odbierającej dane, aby dokonał synchronizacji numerów sekwencji. flaga FIN sygnalizuje modułowi TCP strony odbierającej dane, że węzeł wysyłający zakończył przesyłanie informacji. rozmiar okna informacja dla modułu TCP strony odbierającej dane o liczbie bajtów proponowanej przez węzeł wysyłający dane.

Podstawy Internetu 19 suma kontrolna TCP wskaźnik Urgent opcje umożliwia wykrycie błędu transmisji przez moduł TCP strony odbierającej dane. wskazuje miejsce, gdzie jest położony ostatni bajt danych przesyłanych w trybie przyspieszonym, umieszczonych w polu danych segmentu TCP. pole używane zazwyczaj przez opcję maksymalny rozmiar segmentu zawierającą informację o maksymalnej wielkości segmentu, jaką może odebrać moduł TCP. Połączenie TCP Aby zapewnić transmisję pewną i sekwencyjny przepływ strumienia bajtów, protokół TCP wysyła i odbiera potwierdzenia korzystając z wartości pól: numer sekwencji, numer potwierdzenia oraz flagi. Za każdym razem, gdy program zamierza użyć protokołu TCP w celu przesłania danych, wysyła do warstwy transportowej komputera głównego żądanie utworzenia połączenia TCP. Wysyłana jest wiadomość z flagą SYN do odległego portu, z którym program zamierza się połączyć. Flaga SYN jest sygnałem dla serwera, że program typu klient chce nawiązać połączenie TCP. Wraz z flagą synchronizacji wysyłany jest 32-bitowy numer sekwencji. Serwer wysyła w odpowiedzi segment TCP zawierający flagę ACK oraz numer potwierdzenia. Po każdym wysłaniu danych protokół TCP uruchamia licznik odmierzający czas. Gdy licznik przekroczy ustaloną wartość a potwierdzenie wysłanych danych nie nadchodzi, wówczas są one automatycznie retransmitowane. Podczas przeprowadzania procesu synchronizacji węzły muszą ustalić metodę potwierdzania wiadomości. W przeciwnym wypadku przesyłanie danych może być niemożliwie. W protokole TCP identyfikacji danych dokonuje się za

Podstawy Internetu 20 pomocą numeru sekwencji, który może być wybierany na wiele sposobów. Jest to po prostu liczba wysyłaną przez jeden węzeł do drugiego. Gdy strona serwera otrzyma takie żądanie, wówczas wysyła odpowiedź, w której umieszcza własny początkowy numer sekwencji. Protokół TCP generuje początkowy numer sekwencji dla strony serwera całkowicie niezależnie od początkowego numeru sekwencji modułu TCP strony klienta. Połączenia TCP są dwukierunkowe, co oznacza, że dane są przesyłane jednocześnie w obydwie strony ale niezależnie do siebie. W związku z tym w każdym węźle muszą być przechowywane dwa numery sekwencji dla obydwu kierunków przesyłania danych. Moduł TCP strony serwera generuje numer potwierdzenia na podstawie numeru sekwencji otrzymanego od modułu TCP strony klienta. Numer potwierdzenia jest zawsze oczekiwanym numerem następnego numeru sekwencji przesyłanych danych. W ten sposób w pierwszej odpowiedzi moduł TCP strony serwera umieszcza numer sekwencji strony klienta powiększony o jeden. Jeśli na przykład moduł TCP strony klienta żądający utworzenia połączenia TCP wysłał na numer sekwencji 1000, to w odpowiedzi moduł TCP strony serwera prześle w polu numer potwierdzenia numer 2001 co oznacza, że odebrano element danych o numerze 2000 i oczekuje się, że następny element będzie miał numer 2001. Zamykanie połączenia TCP przez program odbywa się za pomocą operacji dwuetapowego potwierdzenia. Mechanizm zamykania połączenia może uruchomić każdy z węzłów należących do połączenia TCP. W związku z dwukierunkowością protokołu TCP zakończenie przesyłania danych musi być przeprowadzone niezależnie dla każdego kierunku. W wypadku połączeń TCP, gdy jeden z węzłów należących do połączenia TCP przerywa przesyłanie danych, nadal może odbierać dane wysyłane przez drugi węzeł. Aby zamknąć połączenie, jeden z nich wysyła wiadomość zawierającą flagę FIN, czyli przeprowadza tzw. aktywne zamknięcie. Zazwyczaj węzeł, który otrzymuje wiadomość z flagą FIN, natychmiast przeprowadza pasywne zamknięcie. Oznacza to po prostu, że węzeł ten także

Podstawy Internetu 21 wysyła wiadomość zawierającą flagę FIN. Potwierdzenie wysłane w odpowiedzi na tę wiadomość jest znakiem, że obydwa węzły uzgodniły ze sobą fakt zakończenia przesyłania danych w jednym kierunku. Gdy obydwa węzły należące do połączenia TCP wyślą wiadomości zawierające flagę FIN i otrzymają potwierdzenia, wówczas połączenie TCP zostaje oficjalnie zamknięte 5 5 Lars Klander, Hacker proof, czyli jak się bronić przed intruzami, str. 49

22 Rozdział III 1. Rodzaje ataków System komputerowy może być zaatakowany przez hakera na wiele różnych sposobów. Mogą to być ataki zarówno aktywne jak i pasywne, a są przeprowadzane w systemach, gdzie ma się do czynienia z przepływem informacji. Ze względu na charakter ataku rozróżnia się: Przerwanie (ang. interruption) jest atakiem na dyspozycyjność polegający na częściowym zniszczeniu systemu lub spowodowaniu jego niedostępności (jest niezdolny do użycia). Przykładem może być fizyczne zniszczenie fragmentu komputera lub sieci, np. uszkodzenie dysku, przecięcie linii łączności, lub uniemożliwienie działania systemu zarządzania plikami. przerwanie komputer użytkownika serwer Rys. 3. Schemat ataku przerwania.

23 Przechwycenie (ang. interception) jest atakiem na poufność i ma miejsce, gdy ktoś niepowołany uzyskuje dostęp do zasobów. Przykładem może być podsłuch pakietów w celu przechwycenia danych w sieci i nielegalne kopiowanie plików lub programów. przechwycenie komputer użytkownika serwer komputer hakera Rys. 4. Schemat ataku przechwycenia. Modyfikacja (ang. modification) jest atakiem na nienaruszalność polegający na zdobyciu dostępu do zasobów przez niepowołaną osobę, która wprowadza do nich jakieś zmiany. Przykładem może być zmiana wartości w pliku z danymi, wprowadzenie zmiany w programie w celu wywołania innego sposobu jego działania, modyfikacja komunikatów przesyłany w sieci.

24 modyfikacja komputer użytkownika serwer komputer hakera Rys. 5. Schemat ataku modyfikacji. Podrobienie (ang. fabrication) jest atakiem na autentyczność, gdy niepowołana osoba wprowadza do system fałszywe obiekty. Przykładem może być wprowadzenie nieautentycznych komunikatów do sieci lub dodanie danych do pliku. podrobienie komputer użytkownika serwer komputer hakera Rys. 6. Schemat ataku podrobienia.

25 Ataki pasywne Ataki pasywne polegają na podsłuchiwaniu lub monitorowaniu przesyłania danych. Celem osoby atakującej jest odkrycie zawartości komunikatu. Typowym atakiem pasywnych jest analiza przesyłu danych (ang. traffic analysis). Ataki pasywne są bardzo trudne do wykrycia, ponieważ nie wiążą się z modyfikacjami jakichkolwiek danych. W postępowaniu z tego rodzaju atakami należy skupić się bardziej na zapobieganiu, niż na wykrywaniu. Ataki aktywne Ataki te w przeciwieństwie do pasywnych polegają na modyfikowaniu strumienia danych lub tworzeniu danych fałszywych. Można wyróżnić kilka ich typów: maskarada (ang. masquerade) polega na podszywaniu się pod komputer uprzywilejowany i zazwyczaj występuje równocześnie z innymi atakami aktywnymi, powtórka (ang. replay) polega na przechwyceniu danych i ich retransmisji w celu otrzymania niedozwolonych rezultatów, modyfikacja (ang. modification) polega na zmianie fragmentu oryginalnego komunikatu lub na jego opóźnieniu w celu wywołania niedozwolonych skutków takich jak uzyskanie dostępu do zasobów. blokada usług (ang. denial of service) polega na przeszkadzaniu w normalnej pracy lub uniemożliwianiu właściwego zarządzania

26 urządzeniami komunikacyjnymi; celem ataku są głównie udostępnione przez serwer usługi od fizycznego zablokowania łącza danych przepływającymi pakietami, aż po programowe przepełnienie bufora, czy też zawieszenie usługi.

27 2. Ataki pasywne 2.1. Social engineering Terminem social engineering określa się szeroki zestaw sposobów na wyłudzanie informacji o kontach i hasłach dostępu oraz innych elementach wpływających na bezpieczeństwo systemów komputerowych. Social engineering jest sztuką i nauka dostawania od ludzi tych informacji, których potrzebujemy. Pod tym pojęciem kryje się niebezpieczny mechanizm nadużywania ludzkiego zaufania w celach kryminalnych. Technika ta była dość popularna przed upowszechnieniem Internetu, ale w czasach obecnych raczej już się nie stosowana, natomiast stanowi ona często podstawę działania rozmaitych oszustów, nie tylko tych, którzy używają komputerów. Należy z góry zakładać, że istnieją jacyś naiwni pracownicy, którzy o bezpieczeństwie nie maja w ogóle pojęcia i np. podają hasła telefonicznie. Pomimo tego, że jest to stara metoda, często odnosi skutek, ponieważ nasza kultura nie nadąża za technologią. Od dawna wiadomo, że nawet najbardziej zabezpieczony system ma poważną lukę, czyli beztroskiego użytkownika. Ważne jest zatem wcześniejsze przeszkolenie i uświadomienie kadry. Klasycznym przykładem mogą być przesyłki emailowe, w których pod pretekstem wystąpienia błędu systemowego u operatora pojawiają się prośby o podanie identyfikatora wraz z hasłem dostępu lub informacji o karcie kredytowej. Możliwości nadużyć metody social engineering nie są zarezerwowane wyłącznie dla poczty elektronicznej, są o wiele większe i ograniczone tylko pomysłowością i wyobraźnią hakera.

28 W związku nasilaniem się fali kradzieży informacji należy być świadomym pośrednich metod używanych przez hakerów. Należy zwrócić szczególną uwagę, gdy: zakłopotana i przygnębiona osoba dzwoni i prosi o zmianę swojego hasła, osoba przedstawiająca się jako dyrektor, pewnym i stanowczym głosem dzwoni do nowego administratora i żąda natychmiastowego dostępu do swojego konta, osoba na lotnisku zagląda innej przez ramie podglądając wpisywany PIN do karty bankomatowej lub telefonicznej (hakerzy często używają lornetek lub kamer wideo), osoba podgląda wpisywany login i hasło na klawiaturze, pewna siebie osoba będzie dzwonić do operatora komputera i każe mu wpisać kilka linijek instrukcji na konsoli, jakaś osoba przegląda papiery w koszu na śmieci szukając pewnych wskazówek do odblokowania konta.

29 2.2. Hasła Zazwyczaj kilka osób potrzebuje skorzystać z jednego komputera, lecz każdy w inny sposób i na innych zasadach, powstaje wtedy problem jak każdemu dać dostęp do komputera, ale tylko do swoich prywatnych zasobów i do żadnych innych. W systemach sieciowych takich jak UNIX rozwiązano to stosując system kont użytkowników. Każdy użytkownik posiada swoje osobiste konto, do którego tylko on ma dostęp. Dysponuje wtedy określonymi zasobami, plikami i programami. Odpowiada za wszystkie swoje działania, które są z nim identyfikowane. Konto takie jest zazwyczaj połączone z katalogiem zwanym katalogiem użytkownika, do którego użytkownik ma pełen dostęp i całkowitą nad nim kontrolę. Konto takie jest identyfikowane przez nazwę, tzw. login, i numer UID. Po założeniu konta system (lub administrator) sam przyznaje użytkownikowi hasło początkowe. Hasło to należy jak najszybciej zmienić na inne, gdyż bardzo często system nadaje wszystkim użytkownikom te same hasła początkowe lub ustawia je na takie same jak login. Hasło zmienia się poleceniem passwd, które najpierw żąda wpisania dotychczasowego hasła, aby uniemożliwić zmianę hasła użytkownikowi, który przez roztargnienie zostawił włączony terminal i zapomniał się wylogować. Potem należy wpisać dwa razy nowe hasło w celu potwierdzenia jego poprawności i uniknięcia sytuacji, w której użytkownik mógłby się pomylić przy wpisywaniu hasła. Niektóre systemy mają domyślnie ustawione różne zabezpieczenia dotyczące formatu haseł, ale wiele z nich może niezależnie od systemu ustawić administrator. Większość systemów wymaga haseł dłuższych, np. ponad 5 znaków, czasem hasło musi być kompozycją liter i cyfr, nie może zawierać nazwy systemu, komputera itp. (np. UNIX, XENIX, IBM nie zostaną dopuszczone do użycia). Wybranie dobrego hasła gwarantuje bezpieczeństwo konta i pewność,