13 najpopularniejszych sieciowych ataków na Twój komputer. Wykrywanie, usuwanie skutków i zapobieganie 9788324632572, 8324616462, 9788324616466, 8324632573

Pewnie myślisz, że Twojemu komputerowi nic nie grozi, bo nie przechowujesz na nim żadnych wartościowych danych. Albo wrę

170 101 5MB

Polish Pages 208 [210] Year 2008

Report DMCA / Copyright

DOWNLOAD PDF FILE

Table of contents :
Spis treści
Wstęp
Rozdział 1. Zagrożenia i ataki fizyczne, czyli po pierwsze zrób backup
Rozdział 2. Podsłuch sieciowy (sniffing)
2.1. Atak 1: klasyczny sniffing pasywny (trochę historii)
2.2. Atak 2: ARP-spoofing. Sieci zbudowane w oparciu o przełączniki
2.3. Atak 3: Wardriving — sieci bezprzewodowe
2.4. Wykrywanie podsłuchów
2.4.1. Sprawdzenie trybu pracy karty sieciowej
2.4.2. Antysniffery
2.5. Zabezpieczenia przed podsłuchem
2.5.1. Statyczne odwzorowanie tablicy ARP
2.5.2. Użycie inteligentnych przełączników trzeciej warstwy
2.5.3. Szyfrowanie
2.5.4. Anonimowość w sieci
Rozdział 3. Podszywanie się i oszustwa: DNS-spoofing, MITM, phishing i pharming
3.1. Atak 4: DNS-spoofing
3.2. Atak 5: Man In The Middle (MITM)
3.3. Atak 6: phishing
3.4. Atak 7: pharming
Rozdział 4. Złośliwe oprogramowanie
4.1. Atak 8: malware — infekcja z sieci komputerowej
4.2. Atak 9: malware — infekcja z pendrive’a
4.3. Atak 10: rootkity — niewidzialne zagrożenie
4.4. Atak 11: malware — infekcja w telefonie komórkowym
4.5. Atak 12: sieci botnet — środowisko rozprzestrzeniania się złośliwego oprogramowania
4.6. Atak 13: malware i drive-by pharming
Rozdział 5. Zanim zostaniesz przestępcą
5.1. W sieci przepisów
5.2. Prawna ochrona bezpieczeństwa informacji
5.3. Punkt widzenia zależy od punktu siedzenia. Prawa autorskie
Załącznik A. Nagrywanie obrazu ISO z załączonego krążka DVD
Załącznik B. Podstawy komunikacji sieciowej
Załącznik C. Wykaz oprogramowania, które należy sciągnąć z Internetu
Skorowidz
Recommend Papers

13 najpopularniejszych sieciowych ataków na Twój komputer. Wykrywanie, usuwanie skutków i zapobieganie
 9788324632572, 8324616462, 9788324616466, 8324632573

  • 0 0 0
  • Like this paper and download? You can publish your own PDF file online for free in a few minutes! Sign Up
File loading please wait...
Citation preview

Autorzy: Maciej Szmit (rozdziały: 1, załącznik B), Mariusz Tomaszewski (rozdziały: 2, 4, załącznik A), Dominika Lisiak (rozdziały: 2 – 3), Izabela Politowska (rozdział 5). Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą kserograficzną, fotograficzną, a także kopiowanie książki na nośniku filmowym, magnetycznym lub innym powoduje naruszenie praw autorskich niniejszej publikacji. Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich właścicieli. Autor oraz Wydawnictwo HELION dołożyli wszelkich starań, by zawarte w tej książce informacje były kompletne i rzetelne. Nie biorą jednak żadnej odpowiedzialności ani za ich wykorzystanie, ani za związane z tym ewentualne naruszenie praw patentowych lub autorskich. Autor oraz Wydawnictwo HELION nie ponoszą również żadnej odpowiedzialności za ewentualne szkody wynikłe z wykorzystania informacji zawartych w książce. Redakcja: Krzysztof Zemanek Projekt okładki: Urszula Banaszewska Recenzent: prof. dr hab. inż. Dominik Sankowski Wydawnictwo HELION ul. Kościuszki 1c, 44-100 GLIWICE tel. 32 231 22 19, 32 230 98 63 e-mail: [email protected] WWW: http://helion.pl (księgarnia internetowa, katalog książek) Drogi Czytelniku! Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres http://helion.pl/user/opinie?xxatak_p Możesz tam wpisać swoje uwagi, spostrzeżenia, recenzję. ISBN: 978-83-246-3257-2 Nr katalogowy: 6106 Copyright © Helion 2011 Printed in Poland.

Spis treści Wstęp .............................................................................................. 5 Rozdział 1. Zagrożenia i ataki fizyczne, czyli po pierwsze zrób backup ................. 7 Rozdział 2. Podsłuch sieciowy (sniffing) ........................................................... 15 2.1. Atak 1: klasyczny sniffing pasywny (trochę historii) .............................................. 16 2.2. Atak 2: ARP-spoofing. Sieci zbudowane w oparciu o przełączniki ......................... 17 2.3. Atak 3: Wardriving — sieci bezprzewodowe .......................................................... 18 2.4. Wykrywanie podsłuchów ........................................................................................ 20 2.4.1. Sprawdzenie trybu pracy karty sieciowej ...................................................... 20 2.4.2. Antysniffery .................................................................................................. 22 2.5. Zabezpieczenia przed podsłuchem .......................................................................... 28 2.5.1. Statyczne odwzorowanie tablicy ARP ........................................................... 28 2.5.2. Użycie inteligentnych przełączników trzeciej warstwy ................................. 30 2.5.3. Szyfrowanie ................................................................................................... 31 2.5.4. Anonimowość w sieci .................................................................................... 56

Rozdział 3. Podszywanie się i oszustwa: DNS-spoofing, MITM, phishing i pharming ........................................................................ 67 3.1. 3.2. 3.3. 3.4.

Atak 4: DNS-spoofing ............................................................................................. 68 Atak 5: Man In The Middle (MITM) ...................................................................... 69 Atak 6: phishing ...................................................................................................... 72 Atak 7: pharming ..................................................................................................... 76

Rozdział 4. Złośliwe oprogramowanie ............................................................... 77 4.1. 4.2. 4.3. 4.4. 4.5.

Atak 8: malware — infekcja z sieci komputerowej ................................................. 80 Atak 9: malware — infekcja z pendrive’a ............................................................. 102 Atak 10: rootkity — niewidzialne zagrożenie ....................................................... 107 Atak 11: malware — infekcja w telefonie komórkowym ...................................... 112 Atak 12: sieci botnet — środowisko rozprzestrzeniania się złośliwego oprogramowania .................................................................................. 114 4.6.Atak 13: malware i drive-by pharming ................................................................... 118

Rozdział 5. Zanim zostaniesz przestępcą ........................................................ 121 5.1. W sieci przepisów .................................................................................................. 122 5.2. Prawna ochrona bezpieczeństwa informacji .......................................................... 126 5.3. Punkt widzenia zależy od punktu siedzenia. Prawa autorskie ............................... 136

4

13 najpopularniejszych sieciowych ataków na Twój komputer

Załącznik A Nagrywanie obrazu ISO z załączonego krążka DVD ......................... 141 Załącznik B Podstawy komunikacji sieciowej ................................................... 145 Załącznik C Wykaz oprogramowania, które należy sciągnąć z Internetu .......... 197 Skorowidz ....................................................................................................... 199

Zawartość aplikacji umieszczonych na płycie CD, dołączonych do książki drukowanej, została usunięta z uwagi na objętość oraz względy techniczne, które mają ułatwić Czytelnikom korzystanie z książki.

Wstęp Czy rzeczywiście Twojemu komputerowi cokolwiek zagraża, w szczególności czy tych zagrożeń jest naprawdę tak wiele? Niedawno miałem okazję rozmawiać z prezesem sporej firmy, który przez niefrasobliwość stracił po włamaniu do swojego systemu informatycznego kilkaset tysięcy złotych. Od tej pory zaczął doceniać wagę bezpieczeństwa. Co ciekawe, mechanizm ataku był trywialny i naprawdę, by uniknąć zagrożenia, wystarczyłoby zastosowanie podstawowych, zdroworozsądkowych wręcz zasad. A wszystko zaczęło się od zdalnego przejęcia kiepsko zabezpieczonego peceta… Czy jednak jakikolwiek złoczyńca będzie tracił czas akurat na Twój komputer, w którym nie ma przecież informacji wartych miliony ani firmowych tajemnic (to jest ulubione pytanie wszystkich, którzy lubią na bezpieczeństwie oszczędzać)? Oczywiście tak i to z kilku powodów:  Po pierwsze, spora część zagrożeń jest bezkierunkowa. Zagrożenia takie jak

awaria dysku czy atak robaka sieciowego nie kierują się tym, czy w swoim komputerze przechowujesz informacje warte miliony czy bezwartościowe śmiecie. W tym wypadku znaczenie ma jedynie to, czy jesteś dobrze zabezpieczony.  Po drugie, komputerowi włamywacze potrzebują „stacji przesiadkowych”,

za pomocą których będą prowadzili działalność. Jeśli nie będziesz wystarczająco ostrożny, adres Twojego komputera (zamienionego przez złośliwe oprogramowanie w „maszynę zombie”) zostanie znaleziony na miejscu poważnego przestępstwa. Wprawdzie po krótszym lub dłuższym śledztwie cały mechanizm stanie się jasny, ale do czasu zbadania Twojego komputera pozostanie on pewnie poza Twoim zasięgiem. W skrajnym przypadku może okazać się, że Ty też — choć miałeś inne plany — jakiś czas spędzisz w zacisznym i dobrze strzeżonym, choć mało zachęcającym miejscu. To nie jest czcza teoria — mieliśmy okazję widzieć takie sytuacje na sali sądowej…

6

13 najpopularniejszych sieciowych ataków na Twój komputer  Po trzecie wreszcie, przez nieprzemyślane działania czy użycie niewłaściwych

narzędzi możesz sam sobie zaszkodzić. Nie na darmo mówi się, że dla komputera groźniejszy od wirusa jest tylko użytkownik, który boi się wirusów. Nie chodzi zresztą tylko o wirusy — użycie niektórych programów jest wysoce ryzykowne, zarówno z technicznego, jak i z prawnego punktu widzenia. Źle skonfigurowany lub źle napisany program, który udostępnia dysk Twojego komputera i Twoje łącze internetowe nie wiadomo komu i po co, nie jest bezpieczny w sensie ani technicznym, ani prawnym, ani zresztą jakimkolwiek. Przyznasz, że są to realne zagrożenia i niepokojące perspektywy. I właśnie po to, żeby Cię przed nimi uchronić, napisaliśmy tę książkę. Pisząc ją, staraliśmy się z jednej strony dostarczyć Ci rzetelną wiedzę, a z drugiej — zrobić to w sposób, mamy nadzieję, czytelny, zwięzły i niezbyt „techniczny” (w złym tego słowa znaczeniu). Oczywiście, żeby zmieścić się w stosunkowo małej objętości, musieliśmy starannie wybrać omawiane zagadnienia. Zdecydowaliśmy się pokazać przede wszystkim te spośród zagrożeń, które są obecnie stosunkowo najbardziej popularne, i opowiedzieć szczegółowo o metodach ochrony znajdujących się w zasięgu (technicznym i finansowym) zwykłego użytkownika domowego komputera. Osobny rozdział poświeciliśmy kwestiom prawnym. Jak mieliśmy się wielokrotnie okazję przekonać, użytkownicy komputerów mają bardzo często dość mgliste pojęcie o obowiązujących w Polsce przepisach. A one naprawdę bardzo różnią się od tych, o których można przeczytać w tłumaczeniach anglojęzycznych książek czy usłyszeć — w skądinąd znakomitych — amerykańskich thrillerach prawniczych. A warto sobie uświadomić, że — parafrazując hasło reklamowe — jeszcze nigdy popełnienie przestępstwa nie było tak proste jak obecnie, w wieku Internetu i komputera w każdym domu. Z myślą o osobach szukających nieco głębszej wiedzy dotyczącej zagadnień sieciowych zdecydowaliśmy się na dołączenie do książki załącznika poświęconego podstawom komunikacji sieciowej. Jest to uwspółcześniona wersja tekstu z książki 101 zabezpieczeń przed atakami w sieci komputerowej (Helion 2005), przy której pisaniu część z nas brała udział. Osoby niezainteresowane kwestiami sieciowymi mogą z jej lektury zrezygnować. Zachęcamy Cię gorąco do podzielenia się Twoimi uwagami na temat książki na jej stronach na witrynie Wydawnictwa. Twoje uwagi będą dla nas cenną wskazówką na przyszłość. A teraz zapraszamy do lektury.

Rozdział 1.

Zagrożenia i ataki fizyczne, czyli po pierwsze zrób backup Wypadki chodzą po ludziach. Po komputerach także. Dysk jest urządzeniem jak każde inne i ma prawo się popsuć. Z jednej strony wszyscy o tym wiedzą, ale z drugiej spora część użytkowników nie robi kopii bezpieczeństwa (ang. backup), duża część z tych, którzy je robią, już ich nie testuje, a znaczna część z tych, którzy je i robią, i testują, pozostawia je w miejscu co najmniej tak samo narażonym na niebezpieczeństwo jak dane pierwotne. A przecież nie od dziś wiadomo, że jedno z podstawowych zagrożeń bezpieczeństwa informacji stanowią przyczyny fizyczne: pożar, pęknięty kaloryfer, płyny wylane na komputer czy wreszcie złodziej, który kradł wszystko, co akurat znajdowało się w mieszkaniu. Kopie bezpieczeństwa warto wykonywać i robić to w sposób taki, żeby zabezpieczyć się przed utratą danych (czy ściślej mówiąc, przed utratą dostępności zabezpieczanej informacji). Istnieją zasadniczo cztery rodzaje kopii bezpieczeństwa (jakkolwiek producenci różnych systemów operacyjnych różnie je nazywają):  Plikowa (ang. file backup) — archiwizacji podlegają wybrane przez

administratora pliki i katalogi (foldery). Tego rodzaju kopie, przynajmniej krytycznych dokumentów, robią zazwyczaj nawet osoby skrajnie leniwe.  Pełna (ang. full backup) — archiwizacji podlega całość zasobów dyskowych

serwera (w szczególności mogą to być również ukryte standardowo katalogi zawierające informacje o usługach katalogowych, takich jak e-directory czy Active Directory.

8

13 najpopularniejszych sieciowych ataków na Twój komputer  Przyrostowa (ang. incremential backup) — archiwizuje się w niej dane,

które zostały dodane („przyrosły”) od czasu wykonania poprzedniej kopii bezpieczeństwa.  Różnicowa (ang. differential backup) — archiwizuje się w niej dane,

które zostały zmienione od czasu wykonania poprzedniej pełnej kopii bezpieczeństwa (czyli to, czym różni się stan systemu dziś, od stanu systemu w czasie wykonywania ostatniej pełnej kopii). Zasady tworzenia poszczególnych kopii zostały pokazane na rysunku poniżej (zobacz rysunek 1.1). Niedziela

Kopie pełne (full backup)

Środa

Czwartek

Piątek

Sobota

Poniedziałek

Wtorek

Środa

Czwartek

Piątek

Sobota

Poniedziałek

Wtorek

Środa

Czwartek

Piątek

Sobota

Wszystko

Niedziela

Kopie różnicowe (differential backup)

Wtorek

Wszystko

Niedziela

Kopie przyrostowe (incremential backup)

Poniedziałek

Wszystko

Rysunek 1.1. Rodzaje kopii bezpieczeństwa

Oczywiście w przypadku dwóch ostatnich kopii przez „dodane dane” rozumie się też archiwizowanie informacji o usunięciu jakichś plików czy wykasowaniu ich zawartości, bo przecież część danych może z dysku zostać skasowana. Microsoft wyróżnia dodatkowo kopię dzienną będącą plikową kopią wszystkich plików, których czas ostatniej modyfikacji przypada danego dnia, przy czym podczas wykonywania tej kopii system nie zmienia atrybutu Archive plików, dzięki czemu można bezpiecznie wykonywać kopię dzienną bez obawy o integralność wykonywanych później kopii przyrostowych czy różnicowych.

Rozdział 1. ♦ Zagrożenia i ataki fizyczne, czyli po pierwsze zrób backup

9

W zastosowaniach komercyjnych, gdzie używa się mediów wielokrotnego zapisu (np. taśmy do streamera albo dyski RW), zazwyczaj funkcjonuje kilka nośników każdy dla odpowiedniego dnia tygodnia (lub jeżeli cykle są dłuższe np. dla każdego dnia miesiąca), tak że taśma (krążek) z soboty kasowana i zapisywana jest powtórnie w następną sobotę. Profesjonalne oprogramowanie do wykonywania kopii bezpieczeństwa nadaje każdemu nośnikowi etykietę i nie pozwala na jego użycie przed upływem pełnego cyklu. Oczywiście w przypadku nośników jednokrotnego zapisu (np. DVD-R) nie ma tego problemu, w przypadku mediów wielokrotnego zapisu jest to natomiast kwestią krytyczną. Aby np. odtworzyć dane ze środy w cyklu przyrostowym, należy najpierw odtworzyć dane z niedzieli (wówczas wykonano pełną kopię bezpieczeństwa), następnie kopię z poniedziałku, która zawierała dane wprowadzone (i informacje o danych usuniętych) w poniedziałek, kolejno kopię z wtorku i ze środy. Jeśli pomyłkowo w środę wykonałeś kopię na medium zawierającym dane z wtorku, możesz odtworzyć stan systemu co najwyżej na poniedziałek. Jeśli — co gorsza — przez pomyłkę nadpisałeś kopię niedzielną, to — mimo posiadania kopii (przyrostowych) wykonanych w poniedziałek i we wtorek — utraciłeś możliwość odzyskania danych. Dlatego też w systemach kopii przyrostowych i różnicowych wskazane jest wykonywanie podwójnych kopii pełnych na początku każdego okresu, jak bowiem wiadomo z praw Murphy’ego uszkodzony okaże się nośnik zawierający kopię pełną. Istnieją dwa szczególne rodzaje kopii pełnej:  Disaster Backup to kopia, która umożliwia automatyczne odtworzenie całości

systemu i danych bez ingerencji użytkownika. Disaster Backup generuje bootującą dyskietkę lub krążek CD/DVD, który w wypadku całkowitej awarii systemu (kiedy nie można nawet uruchomić programu do odzyskiwania danych z kopii zapasowej) administrator uruchamia system z tejże dyskietki, a dalej następuje automatyczne odtworzenie wszystkich plików.  Image lub ghost to dokładna kopia nośnika z uwzględnieniem fizycznego

położenia poszczególnych plików (czasami łącznie z zawartością nieprzydzielonych obszarów dyskowych). Kopie takie wykorzystuje się w informatyce śledczej oraz do odtwarzania partycji systemowej po awarii systemu operacyjnego (jak wiadomo w przypadku niektórych elementów systemu operacyjnego ważne jest ich fizyczne położenie na dysku). Pełna kopia bezpieczeństwa jest rozwiązaniem dobrym, ale nie jest panaceum na wszelkie dolegliwości. W szczególności — oprócz konieczności zainstalowania oprogramowania systemowego, narzędziowego i sterowników niezbędnych do odzyskania danych (ang. restore) — przy jej wykonywaniu pojawia się problem otwartych plików. Niektóre programy (np. systemowe narzędzia do wykonywania kopii zapasowych w Windows 98 czy w NetWare 5) nie radzą sobie z robieniem kopii zapasowych otwartych plików. W zasadzie można to jakoś obejść, ale należy pamiętać, że zawsze — niezależnie od oprogramowania — kopiowanie otwartych plików grozi utratą integralności danych. Proces kopiowania nie przebiega przecież natychmiastowo. Jeśli kopiujemy kilkanaście plików, w których zawarte są informacje powiązane wzajemnymi zależnościami, to zawsze może zdarzyć się, że połowa plików skopiowana zostanie przed dokonaniem jakiejś zmiany, a połowa — już po niej. W ten sposób informacja utraci integralność.

10

13 najpopularniejszych sieciowych ataków na Twój komputer

Istnieją różne metody rozwiązania tego problemu, warto jednak przyjąć zasadę, że kopie bezpieczeństwa robi się w systemie, na którym nikt albo prawie nikt nie pracuje. Tak czy inaczej, pozostaje zagadnienie kopiowania otwartych plików systemu operacyjnego oraz zrobienia kopii typu ghost na wypadek jego awarii. Ponieważ w przypadku komputerów osobistych możliwość przerwania pracy na dłuższy czas nie jest problemem, niezłym rozwiązaniem jest założenie dodatkowego dysku logicznego (albo i fizycznego) zawierającego czysty system operacyjny i sterowniki. Licencja na użytkowanie niektórych systemów operacyjnych nie pozwala na instalowanie dwóch ich kopii na tym samym komputerze ani nawet na maszynach wirtualnych. Pamiętaj, żeby sprawdzić, jak to wygląda w licencji do Twojego systemu.

Możliwość uruchomienia komputera przy użyciu takiej „ratunkowej” wersji systemu pozwala na spokojne wykonanie kopii dysku podstawowego (i pewność, że wszystkie pliki na nim, nie wyłączając systemowych, są zamknięte). Innym rozwiązaniem jest przygotowanie startowej płyty CD lub DVD zawierającej wersję startową „live” systemu operacyjnego (znowu: nie we wszystkich systemach operacyjnych jest to zgodne z prawem). Jeśli licencja systemu operacyjnego nie pozwala na instalację dwóch jego kopii na tej samej maszynie albo nie chcesz tego robić z innych powodów, zawsze możesz posłużyć się którąś z dystrybucji live systemu Linux, np. specjalnie do tego celu przygotowaną dystrybucją SystemRescueCd http://www.sysresccd.org. SystemRescueCd udostępnia szereg narzędzi, w tym środowisko graficzne XWindows oraz programy, które mogą być pomocne w przypadku problemów z dyskami. Wśród tych narzędzi należy przede wszystkim wymienić działający w trybie pełnoekranowym program partimage, stosunkowo intuicyjny w obsłudze (zobacz rysunek 1.2). Obraz ISO startowego CD z systemem SystemRescueCd znajdziesz na krążku dołączonym do książki. Aby z niego skorzystać, musisz przygotować z niego płytę bootującą zgodnie instrukcją umieszczoną w załączniku. Oczywiście musisz pamiętać, że kopia bezpieczeństwa powinna być wykonana raczej nie wyłącznie na inną partycję dysku, który właśnie kopiujemy, ale na jakiś nośnik zewnętrzny, np. dysk twardy podłączany przez USB albo nagrywarkę DVD. Jeśli poprzestaniesz na kopiowaniu danych w inne miejsce tego samego dysku, w razie awarii dysku pozostaniesz i bez danych, i bez ich kopii. Jeśli zdecydowanie preferujesz Windows, możesz skorzystać z darmowego programu DriveImage XML, również zamieszczonego na krążku. Ma on, niestety, to do siebie, że nie potrafi odtworzyć kopii partycji systemowej będącej właśnie w użyciu. W takiej sytuacji powinniśmy zamontować dysk z partycją systemową w innym systemie i tam dokonać odtworzenia.

Rozdział 1. ♦ Zagrożenia i ataki fizyczne, czyli po pierwsze zrób backup

Rysunek 1.2. Program partimage uruchomiony w xterminalu w systemie SystemRescueCd

Użycie DriveImage XML 1. Po uruchomieniu programu zobaczysz ekran powitalny (zobacz rysunek 1.3): 2. Wybierz opcję backup. Pojawi się okno z informacjami o dostępnych dyskach

logicznych (zobacz rysunek 1.4). 3. Zaznacz dysk logiczny, który chcesz skopiować, i wybierz Next. Otworzy się

okno kreatora (ang. wizard) kopii bezpieczeństwa (zobacz rysunek 1.5). 4. Wybierz Next i przejdź do kolejnego okna kreatora (zobacz rysunek 1.6). 5. Interesujące są tu dwie opcje. Split large files (podziel na kawałki duże pliki)

może mieć znaczenie, gdy chcesz wykonywać kopię na partycję typu FAT (jak wiadomo, maksymalny rozmiar plików na partycji FAT wynosi 2 GB). Hot Imaging Strategy określa strategię postępowania z dyskami aktualnie wykorzystywanymi przez system: za pomocą usługi Microsoft Volume Shadow Services lub poprzez próbę zablokowania (ang. lock) dysku i stworzenia przez program kopii działających serwisów. Aby wykorzystać VSS w systemie, musi być uruchomiona odpowiednia usługa (jeśli jej nie będzie, a opcja jej wykorzystania jako pierwszej zostanie zaznaczona, program spróbuje w drugiej kolejności skorzystać ze strategii Hot Imaging). W tym samym kroku w edytorze Directory wybierasz folder, w którym zostanie umieszczona kopia.

11

12

13 najpopularniejszych sieciowych ataków na Twój komputer

Rysunek 1.3. DriveImage XML — ekran powitalny

Rysunek 1.4. DriveImage XML — informacje o dyskach logicznych

Rozdział 1. ♦ Zagrożenia i ataki fizyczne, czyli po pierwsze zrób backup

13

Rysunek 1.5. DriveImage XML — kreator kopii bezpieczeństwa

Rysunek 1.6. DriveImage XML — wybór opcji i lokalizacji kopii

6. Po wybraniu Next pojawia się kolejne okno z informacją o przebiegu pracy

programu (zobacz rysunek 1.7). Odtwarzanie kopii bezpieczeństwa przebiega analogicznie, przy czym w pierwszym kroku powinieneś oczywiście wybrać opcję Restore, następnie zaś wskazać programowi miejsce położenia plików zawierających kopię bezpieczeństwa.

14 Rysunek 1.7. DriveImage XML — przebieg pracy programu

13 najpopularniejszych sieciowych ataków na Twój komputer

Rozdział 2.

Podsłuch sieciowy (sniffing) Pierwszym i — w pewnej mierze — podstawowym zagrożeniem, z którym możesz się spotkać, jest nieuprawnione przechwycenie (podsłuchanie) Twoich danych. Może ono dotyczyć informacji zgromadzonych przez Ciebie na nośnikach (dyskach twardych, krążkach DVD czy CD) bądź informacji przesyłanej poprzez sieć komputerową. W tym drugim przypadku używamy najczęściej terminu sniffing, czyli dosłownie „węszenie” (zobacz rysunek 2.1). Rysunek 2.1. Podsłuch

Komputer 1

Komputer 2 przechwytywanie infromacji

atakujący

Na rysunku 2.1 komputer 1 jest połączony w sieci z komputerem 2. Działanie atakującego polega na przechwytywaniu danych transmitowanych pomiędzy komputerami 1 a 2. Taka analiza ruchu sieciowego umożliwia wychwycenie istotnych informacji np. loginów, haseł czy danych osobowych. Podsłuch jest najczęściej początkową fazą ataku i służy do zebrania niezbędnych informacji w celu dokonania późniejszego włamania do kolejnych komputerów w sieci.

16

13 najpopularniejszych sieciowych ataków na Twój komputer

2.1. Atak 1: klasyczny sniffing pasywny (trochę historii) Dawno, dawno temu, kiedy sieci budowano przy użyciu kabla koncentrycznego, ewentualnie przy wykorzystaniu koncentratorów (ang. hub), każda wysłana informacja trafiała do wszystkich podłączonych do sieci komputerów. Oczywiście każda paczka informacji (ramka ang. frame) opatrzona była adresem karty sieciowej odbiorcy (tzw. adres fizyczny albo adres MAC). Karty sieciowe w poszczególnych komputerach zachowywały się bardzo przyzwoicie i przetwarzały jedynie tę informację, która była zaadresowana do tej konkretnej karty. Do podsłuchiwania wystarczyło przestawienie karty w nieco mniej przyzwoity tryb zwany promiscuous (po angielsku to słowo oznacza zarówno „ogólny”, jak i „rozwiązły”), który umożliwiał przechwytywanie informacji pochodzących z całej sieci lokalnej, nie tylko tych adresowanych do właściwego odbiorcy (zobacz rysunek 2.2). Rysunek 2.2. Komputery połączone w sieci koncentratorem. Informacje przesyłane od jednego komputera są rozsyłane do wszystkich komputerów połączonych za pomocą koncentratora

Działanie klasycznego sniffera w takiej sieci było działaniem pasywnym, to znaczy atakujący nie umieszczał żadnych dodatkowych informacji w sieci ani w podsłuchiwanym komputerze. Karierę klasycznego sniffingu przerwało upowszechnienie przełączników sieciowych (ang. switch). Przełącznik rozpoznaje sam adresy MAC odbiorcy i przesyła (przełącza) informację na ten ze swoich portów, do którego fizycznie dołączony jest komputer o żądanym adresie. Pozostałe maszyny w sieci tej informacji nie otrzymują (zobacz rysunek 2.3). Do podsłuchu w sieciach przełączanych należało posłużyć się znacznie bardziej skomplikowanymi metodami takimi jak ARP-spoofing czy MAC-flooding, które są atakami aktywnymi, a co za tym idzie, znacznie łatwiejszymi do wykrycia.

Rozdział 2. ♦ Podsłuch sieciowy (sniffing)

17

Rysunek 2.3. Komputery połączone w sieci za pomocą przełącznika (switcha)

Na szczęście dla klasycznego, pasywnego podsłuchu w ostatnich latach upowszechniły się sieci bezprzewodowe, w których — podobnie jak miało to miejsce we wczesnych sieciach przewodowych — wszystkie maszyny korzystają ze współdzielonego medium transmisyjnego, a wysyłana informacja trafia do wszystkich (i to nie tylko do wszystkich komputerów w sieci, ale wszystkich w okolicy).

2.2. Atak 2: ARP-spoofing. Sieci zbudowane w oparciu o przełączniki Biorąc pod uwagę, że z sieciami bazującymi na koncentratorach i przewodzie bądź kablu koncentrycznym raczej się nie spotkasz (były one nowinką techniczną jakieś dwadzieścia lat temu), nie będziemy się zajmować wykrywaniem klasycznego sniffingu. Jeśli chciałbyś jednak dowiedzieć się czegoś więcej na temat wykrywania snifferów w takich archaicznych sieciach, zajrzyj do książki 101 zabezpieczeń przed atakami w sieci komputerowej (Maciej Szmit, Marek Gusta, Mariusz Tomaszewski, Wydawnictwo Helion, Gliwice 2005, ISBN 83-7361-517-2), znajdziesz w niej wszystko, co może być Ci potrzebne. Na krążku dołączonym do tej książki znajdziesz też program WinAntisniffer, który potrafi wykrywać zdalnie sniffery pracujące zarówno w sieciach przełączanych, jak i w sieciach wykorzystujących huby czy koncentryk, a także programy ifpromisc (dla Linuksa) oraz promiscdetect (dla Windows) pozwalające na stwierdzenie, czy lokalna karta sieciowa pracuje w trybie promiscuous.

18

13 najpopularniejszych sieciowych ataków na Twój komputer

W sieciach zbudowanych przy wykorzystaniu przełączników sniffing jest trudniejszy. Jednym z rodzajów ataków jest ARP-spoofing (fałszowanie pakietów ARP1). Polega on na wysyłaniu sfałszowanego pakietu ARP Reply, na podstawie którego komputery w sieci są informowane o odwzorowaniach adresów logicznych (IP) na adresy fizyczne (MAC). Nadawca wysyła zapytanie o konkretny adres IP. Odpowiedź na to zapytanie wysyła komputer atakującego, podając swój adres MAC. W komputerze wysyłającego dokonywany jest wpis w dynamicznej tablicy ARP — odwzorowanie szukanego adresu IP na adres MAC komputera atakującego. W ten sposób komunikacja zamiast z rzeczywistym odbiorcą odbywa się z komputerem atakującego. Dodatkowo komputer atakującego wysyła zapytanie o adres IP rzeczywistego odbiorcy i po jego odpowiedzi może przekazywać mu informacje. W ten sposób komunikacja jest niezauważona, a atakujący ma możliwość przeglądania i modyfikowania przesyłanych danych (zobacz rysunek 2.4).

2.3. Atak 3: Wardriving — sieci bezprzewodowe W ostatnich latach sieci bezprzewodowe (ang. Wireless LAN) stały się bardzo popularne. Jako media transmisji wykorzystywane są w nich fale radiowe. Taki rodzaj transmisji stosowany jest przede wszystkim w urządzeniach przenośnych (m.in. laptopy, palmptopy, telefony komórkowe). WLAN charakteryzują się dużą mobilnością — można podłączyć się do nich w dowolnym miejscu, w którym jest zasięg (w sieciach przewodowych przemieszczanie jest ograniczone długością kabla). Dodatkowo cechują się prostą instalacją (bez użycia kabli, instalowania gniazdek) oraz łatwą rozbudową o nowe urządzenia końcowe. Pomimo licznych zalet WLAN należy zwrócić uwagę na poziom ich bezpieczeństwa. Medium transmisji (fale radiowe) jest wspólne nie tylko dla urządzeń podłączonych do niej, ale i urządzeń z innych sieci bezprzewodowych. Każdy może podsłuchiwać transmisję danych w sieci bezprzewodowej, która nie ma odpowiedniego zabezpieczenia. Na rysunku 2.5 przedstawiony został schemat sieci bezprzewodowej. Punkt dostępu (ang. Access Point) ma określony zasięg sygnału. Komputery 1 – 4 muszą znaleźć się w tym zasięgu, aby połączyć się w sieć. W sytuacji gdy atakujący znajdzie się w tym samym obszarze, może przechwycić cały ruch sieciowy bez względu na to, do kogo dane informacje są kierowane. Analogicznie jak przy sieciach przewodowych, w celu podsłuchu transmitowanych danych karta sieciowa bezprzewodowa musi pracować w trybie ogólnym, określanym jako tryb monitorujący (ang. Monitor Mode).

1

ARP (ang. Address Resolution Protocol) — protokół stosowany w sieciach komputerowych polegający na odwzorowywaniu adresu logicznego IP na adres fizyczny MAC. Zdefiniowany został w RFC 826.

Rozdział 2. ♦ Podsłuch sieciowy (sniffing) Rysunek 2.4. Schemat ataku ARP-spoofing

Komputer 1 NADAWCA

19

Komputer 2 ATAKUJĄCY

Komputer 3 ODBIORCA

Wysłanie zapytania ARP o adres IP 192.168.1.4

Odpowiedź To mój adres 00:C1:DA:01:AE:23 Wpis w dynamicznej tablicy ARP Adres IP 192.168.1.4 to adres MAC: 00:C1:DA:01:AE:23

Komunikacja pomiędzy Komputerami 1 i 2

Wysłanie zapytania ARP o adres IP 192.168.1.4

Odpowiedź To mój adres 00:C1:A4:01:2E:13 Wpis w dynamicznej tablicy ARP Adres IP 192.168.1.4 to adres MAC: 00:C1:A4:01:2E:13

Komputer 2 przesyła informacje od nadawcy (Komputer 1) do rzeczywistego odbiorcy (Komputer 3)

Wykrywanie niezabezpieczonych sieci bezprzewodowych stało się swojego rodzaju sportem znanym jako Wardriving (ang. WAR — Wireless Access Revolution, rewolucja bezprzewodowego dostępu oraz driving — jazda samochodem). Wardriver używa notebooka lub palmtopa wyposażonego w antenę i kartę sieciową WLAN oraz odpowiedniego oprogramowania czasami połączonego z systemem GPS, aby uzyskane informacje móc od razu nanieść na mapę cyfrową. Ściśle rzecz ujmując, sam wardriving nie jest jeszcze atakiem, problem zaczyna się, gdy ktoś korzystając ze słabości jakiejś sieci, zaczyna za jej pomocą coś wysyłać albo podsłuchiwać transmisję.

20

13 najpopularniejszych sieciowych ataków na Twój komputer

Rysunek 2.5. Schemat sieci bezprzewodowej

Komputer 2

Komputer 1

Punkt dostępu (Access Point)

Komputer 3

Komputer 4

2.4. Wykrywanie podsłuchów 2.4.1. Sprawdzenie trybu pracy karty sieciowej Należy sprawdzić, w jakim trybie pracuje karta sieciowa. Dla systemu operacyjnego Linux w wierszu poleceń wpisz polecenie: # ifconfig -a | grep PROMISC

Jeśli polecenie nie wyświetli żadnych informacji, oznacza to, że żaden z interfejsów nie pracuje w trybie promiscuous. W przypadku wykrycia trybu ogólnego, aby go wyłączyć, zastosuj polecenie: # ifconfig eth0 -promisc

gdzie eth0 to interfejs danej karty sieciowej, na której ma być wyłączony tryb ogólny (promiscuous). Takie jednokrotne przestawienie karty na tryb normalny (non-promiscuous) nie daje dobrego efektu na dłuższy czas. Sniffery mogą co jakiś czas aktualizować i przestawiać ponownie karty w tryb promiscuous. Inną możliwością sprawdzenia trybu pracy karty sieciowej jest uruchomienie programu ifpromisc. Na płycie dołączonej do książki znajduje się plik chkrootkit-0.45.tar.gz. Pobierz plik i zapisz na dysku. Następnie rozpakuj i wykonaj polecenia: # make sense

Rozdział 2. ♦ Podsłuch sieciowy (sniffing)

21

aby skompilować program, oraz # ./ifpromisc

aby go uruchomić. Jeśli karta pracuje w normalnym trybie, pojawi się komunikat: # eth0: PF_PACKET(/sbin/dhcpcd)

W przypadku gdy karta pracuje w trybie promiscuous, wyświetli się informacja z podaną nazwą sniffera (w przykładzie program wychwycił działanie sniffera tcpdump) # eth0: PF_PACKET(/sbin/dhcpcd, usr/sbin/tcpdump)

Dla systemów Windows można skorzystać z programu promiscdetect.exe. Należy uruchomić go z poziomu wiersza poleceń. Pobierz plik z płyty i skopiuj w miejsce docelowe na dysku twardym. Potem kliknij Start/Uruchom. W oknie podaj nazwę programu cmd i kliknij przycisk OK. Uruchomi się program cmd.exe. Następnie zmień lokalizację (na taką, gdzie jest skopiowany program) i poleceniem promiscdetect.exe uruchom program promiscdetect. Działanie programu zostało przedstawione na rysunku 2.6. Rysunek 2.6. Działanie programu promiscdetect w przypadku braku podsłuchu

Program informuje o trzech filtrach karty (directed, multicast, broadcast). Po uruchomieniu sniffera program wykrywa zmianę trybu karty na promiscuous i wyświetla komunikat o możliwości podsłuchu (zobacz rysunek 2.7). Program promiscdetect nie wykrywa trybu nasłuchu dla bezprzewodowych kart sieciowych.

W celu sprawdzenia lub zmiany trybu pracy karty bezprzewodowej w systemie Linux zastosuj polecenie iwconfig: iwconfig wlan0 mode tryb_pracy

gdzie wlan0 — interfejs karty bezprzewodowej, a tryb_pracy np.: Monitor, Managed, Ad-hoc.

22

13 najpopularniejszych sieciowych ataków na Twój komputer

Rysunek 2.7. Działanie programu promiscdetect — wykrycie możliwości podsłuchu

Pamiętaj, że jeśli włamywaczowi udało się opanować Twój komputer, to prawdopodobnie zmodyfikuje znajdujące się w nim narzędzia lub jądro systemu w ten sposób, żeby nie dało się lokalnie wykryć kart pracujących w trybie nasłuchu.

2.4.2. Antysniffery Inną metodą wykrywania podsłuchu w sieci komputerowej jest zastosowanie programów, tzw. antynisfferów.

WinAntisniffer Program działający w środowisku Windows. Obecna wersja 2.41 oprócz wykrywania trybu ogólnego karty sieciowej pozwala wykryć atak ARP-spoofing. Plik instalacyjny znajduje się na płycie dołączonej do książki. W trakcie instalacji postępuj zgodnie z poleceniami kreatora instalacji WinAntisniffera (zobacz rysunek 2.8). Podaj docelową lokalizację programu (zobacz rysunek 2.9). Zaakceptuj lub zmień nazwę skrótu, który pojawi się w Menu Start/Programy. Po tej czynności instalator jest gotowy do rozpoczęcia instalacji (zobacz rysunek 2.10). Kliknij przycisk Instaluj, aby rozpocząć instalację. Na koniec zainstaluj bibliotekę WinPcap 3.0 niezbędną do działania programów analizujących ruch sieciowy. Zaznacz pole Czy chcesz zainstalować bibliotekę WinPcap3.0? i dalej postępuj zgodnie z punktami 1 – 4.

Rozdział 2. ♦ Podsłuch sieciowy (sniffing) Rysunek 2.8. Kreator instalacji programu WinAntisniffer

Rysunek 2.9. Wybór docelowej lokalizacji

1. W oknie WinPcap 3.0 Setup kliknij przycisk Next. 2. W oknie WinPcap 3.0 Setup License Agreement zaznacz pole Yes, I agree all

the terms of this license agreement i kliknj przycisk Next. Instalator rozpocznie instalację plików. 3. W oknie WinPcap 3.0 Setup Readme information kliknij przycisk Next. 4. W oknie WinPcap 3.0 Setup Instalation Complete wybierz przycisk OK.

23

24

13 najpopularniejszych sieciowych ataków na Twój komputer

Rysunek 2.10. Gotowość instalatora

Program WinAntisniffer współpracuje tylko z wersją 3.0 biblioteki WinPcap — nie działa z wcześniejszymi i nowszymi wersjami. Gdy na Twoim komputerze jest zainstalowana inna wersja tej biblioteki, usuń ją (o ile oczywiście nie będziesz korzystał z programów, które jej używają, przy czym niektóre programy jak np. Etherael współpracują z różnymi wersjami tej biblioteki) i zainstaluj 3.0. Podczas instalacji w systemie operacyjnym Windows 2000, gdy pojawi się komunikat, czy pozostawić istniejące pliki, wybierz przycisk No to All, aby nadpisać je nowymi plikami z instalacji.

Przed uruchomieniem programu zapoznaj się z treścią Pomocy dołączonej do programu (zobacz rysunek 2.11). W przypadku gdy Twój komputer ma zainstalowanych kilka kart sieciowych, musisz wybrać kartę, która zostanie użyta podczas badań (zobacz rysunek 2.12). Jeśli masz jedną kartę sieciową, to jest ona domyślnie wybierana przez program. Wyboru karty sieciowej możesz dokonać również za pomocą przycisku Wybór/ Szczegółowe informacje. Kliknij ten przycisk, by otworzyć okno z dodatkowymi informacjami o dostępnych kartach sieciowych, ich adresach IP, MAC, maskach podsieci i adresach rozgłoszeniowych (ang. broadcast) (zobacz rysunek 2.13). Program umożliwia przeprowadzenie kilku testów wykrywania sniffingu w sieciach komputerowych. Są to:  testy odpowiedzi: ARP, ARP-Cache, ICMP,  test pasywności sniffera (test DNS),  wykrywanie ARP-spoofing.

Rozdział 2. ♦ Podsłuch sieciowy (sniffing)

25

Rysunek 2.11. Pomoc programu WinAntisniffer

Wyniki analizy wyświetlane są w dolnej części okna i zawierają następujące informacje:  nazwę testu,  datę i czas rozpoczęcia testu,  adresy IP komputerów, na których wykryto sniffery,  datę i czas zakończenia testu.

Można je zapisać jako „log” programu w pliku tekstowym o rozszerzeniu .snf. Program pozwala również odczytywać i drukować tego rodzaju pliki.

26

13 najpopularniejszych sieciowych ataków na Twój komputer

Rysunek 2.12. Okno startowe programu WinAntisniffer Rysunek 2.13. Wybór karty sieciowej

Rozdział 2. ♦ Podsłuch sieciowy (sniffing)

27

Wykrywanie ARP-spoofing Program WinAntisniffer pozwala przeprowadzić test wykrywania ataku ARP-spoofing. W celu przeprowadzenia testu: 1. W zakładce Konfiguracja sieci wybierz kartę sieciową. 2. W zakładce Wykrywanie ARP-spoofing wybierz metodę: Zliczanie odpowiedzi

ARP reply lub Metodę Traceroute. 3. Dla zliczania odpowiedzi ARP ustaw jedną z opcji: test dla adresów lokalnego

interfejsu (należy podać adres IP komputera podsłuchiwanego), test z fałszywego IP (należy podać adresy IP i MAC komputera, spod którego nastąpi odpytywanie) lub przepytaj całą sieć. 4. Dla metody Traceroute można wybrać dwie opcje: test IP bramki (adres IP

bramki jest podawany automatycznie) lub test dla konkretnego IP z sieci (należy podać adres IP) — opcja test dla IP z sieci LAN. 5. Uruchom test przyciskiem Start.

Przed wypełnieniem pól zapoznaj się z opisem ustawienia kontrolek dostępnym pod przyciskiem Opis testu (zobacz rysunek 2.14). Rysunek 2.14. Opis ustawienia kontrolek

Wyniki testu zostaną wyświetlone w dolnej części okna. Rysunek 2.15 przedstawia przykładową konfigurację wykorzystaną do wykrywania ARP-spoofingu. Program WinAntisniffer może być niebezpieczny w użyciu. Żeby wykryć atak prowadzony na różne komputery, sam podszywa się pod nie, co może prowadzić do ich chwilowego odcięcia od sieci. Nie używaj programu WinAntisniffer, jeśli nie jesteś przekonany, że wiesz, co robisz, i nigdy nie używaj go bez uzgodnienia tego z administratorem Twojej sieci. Pamiętaj, że nieuprawnione zakłócanie działania sieci jest przestępstwem.

28

13 najpopularniejszych sieciowych ataków na Twój komputer

Rysunek 2.15. Wykrywanie ARP-spoofingu

2.5. Zabezpieczenia przed podsłuchem 2.5.1. Statyczne odwzorowanie tablicy ARP W systemie Windows za pomocą polecenia arp -a można wyświetlić bieżące odwzorowania w tablicy ARP. Z menu Start/Uruchom wpisz cmd i po uruchomieniu programu cmd.exe wpisz w wierszu poleceń arp -a. Efekt wywołania polecenia arp -a przedstawia rysunek 2.16:

Rozdział 2. ♦ Podsłuch sieciowy (sniffing)

29

Rysunek 2.16. Polecenie arp -a

Przed wykonaniem ataku wpisy w tablicy ARP są jednoznaczne. Do każdego adresu IP jest przypisany inny adres MAC (zobacz rysunek 2.17): Rysunek 2.17. Wywołanie polecenia arp -a przed atakiem ARP-spoofing

Zauważ, że po przeprowadzeniu ataku w tablicy ARP są dwa wpisy o takich samych adresach MAC, ale różnych adresach IP (zobacz rysunek 2.18): Rysunek 2.18. Wywołanie polecenia arp -a po przeprowadzeniu ataku ARP-spoofing

Sytuacja przedstawiona na rysunku 2.18 jest możliwa w przypadku, gdy komputer, który jest atakowany, komunikował się z atakującym. Jeśli takiej komunikacji nie było, to w tablicy ARP nie będzie takiego wpisu. Nie oznacza to jednak, że atak ARP-spoofing nie jest przeprowadzany. Jedną z metod zabezpieczenia przed atakiem ARP-spoofing jest ustawienie statycznych wpisów w tablicy ARP za pomocą polecenia arp-s. Składnia polecenia arp -s (informacje te możesz uzyskać, wpisując w wierszu poleceń „arp/?”: ARP -s ADRES_IP ADRES_MAC

Dodaje host i kojarzy adres internetowy inet_addr z fizycznym adresem internetowym eth_addr. Adres fizyczny jest reprezentowany przez 6 szesnastkowych bajtów oddzielonych znakami łącznika. Wpis dokonywany jest na stałe. Przykład: arp -s 192.168.1.2

00-1a-b3-52-63-fa

Na rysunku 2.19 przedstawiono sposób generowania statycznego wpisu do tablicy ARP.

30

13 najpopularniejszych sieciowych ataków na Twój komputer

Rysunek 2.19. Statyczny wpis w tablicy arp

2.5.2. Użycie inteligentnych przełączników trzeciej warstwy Inną metodą zapobiegania atakom sniffingu jest stosowanie przełączników pracujących dodatkowo w trzeciej warstwie modelu ISO/OSI (ang. switch layer 3, routing switch). Przełączniki te za pomocą układów ASIC dokonują sprzętowego rozdzielania przesyłanych danych do odbiorców. Są odporne na ataki ARP-spoofing, bo na każdym porcie mają stałe powiązania adresów fizycznych i adresów IP. Podszywający się pod inny komputer nie będzie mógł dokonać ataku, bo po zmianie adresu IP switch wykryje, że takie powiązanie nie jest możliwe, i odrzuci próbę połączenia. Schemat działania przełączników warstwy trzeciej został przedstawiony na rysunku 2.20.

Na tym porcie istnieje powiązanie adresu MAC 00-53-45-00-20-3f z adresem IP 192.168.1.2 Na tym porcie istnieje powiązanie adresu MAC 00-1e-25-01-00-00 z adresem IP 192.168.1.4 Atakujący podszywa się pod inny komputer. Przełącznik wykryje niezgodność powiązań pomiędzy adresem MAC i adresem IP na danym porcie i przerwie połączenie Atakujący

Rysunek 2.20. Działanie przełączników trzeciej warstwy

Przełącznik 3 warstwy

Rozdział 2. ♦ Podsłuch sieciowy (sniffing)

31

2.5.3. Szyfrowanie Kolejną metodą zabezpieczenia przed podsłuchem jest szyfrowanie danych transmitowanych w sieciach. Co prawda nie zapobiega ona przechwyceniu danych, ale skutecznie utrudnia ich odczyt. Obecnie dostępnych jest wiele gotowych rozwiązań szyfrowania: np. Wirtualne Sieci Prywatne, protokoły SSL i SSH z wykorzystaniem PKI, standardy szyfrowania w sieciach bezprzewodowych.

2.5.3.1. Wirtualne sieci prywatne Wirtualne sieci prywatne (ang. Virtual Private Network, VPN) to logiczne połączenie pomiędzy dwoma komputerami za pośrednictwem sieci publicznej (np. Internetu). Sieci takie charakteryzują się wysokim poziomem bezpieczeństwa (ze względu na szyfrowanie). Najczęściej spotykane protokoły VPN to:  IPSec,  PPTP (ang. Point to Point Tunneling Protocol),  L2TP (ang. Layer two Tunneling Protocol).

Na rysunku 2.21 przedstawiony został schemat VPN. Pomiędzy komputerami 1 i 2 należącymi do dwóch prywatnych sieci lokalnych utworzono bezpieczne połączenie za pośrednictwem Internetu. Cały ruch sieciowy transmitowany jest szyfrowanym tunelem przez publiczną sieć (Internet).

Rysunek 2.21. Wirtualna sieć prywatna

Poniżej opisane zostały poszczególne etapy utworzenia VPN dla systemu Windows od strony serwera i klienta.

SERWER 1. Z menu Start wybierz Panel sterowania, a następnie Połączenia sieciowe. 2. Wybierz opcję Utwórz nowe połączenie.

32

13 najpopularniejszych sieciowych ataków na Twój komputer 3. Uruchomi się kreator nowego połączenia, kliknij przycisk Dalej. 4. W oknie kreatora zaznacz opcję Konfiguruj połączenie zaawansowane

i kliknij przycisk Dalej (zobacz rysunek 2.22). Rysunek 2.22. Wybór typu połączenia sieciowego

5. Następnie zaznacz opcję Zaakceptuj połączenia przychodzące

(zobacz rysunek 2.23). Rysunek 2.23. Zaawansowane opcje połączenia

Rozdział 2. ♦ Podsłuch sieciowy (sniffing) 6. Pojawi się okno z informacjami o urządzeniach dla połączeń przychodzących.

Nie zaznaczaj żadnej opcji, kliknij przycisk Dalej (zobacz rysunek 2.24). Rysunek 2.24. Urządzenia dla połączeń przychodzących

7. Zaznacz opcję Zezwalaj na wirtualne połączenia prywatne (zobacz rysunek 2.25). Rysunek 2.25. Przychodzące połączenia VPN

8. Wybierz użytkowników, którzy mają mieć dostęp do VPN (zobacz rysunek 2.26).

33

34

13 najpopularniejszych sieciowych ataków na Twój komputer

Rysunek 2.26. Uprawnienia użytkowników

9. W oknie Oprogramowanie sieciowe wybierz Protokół internetowy TCP/IP

i kliknij przycisk Właściwości (zobacz rysunek 2.27). Rysunek 2.27. Oprogramowanie sieciowe

10. Ustaw opcje w oknie Właściwości przychodzących pakietów TCP/IP,

a w szczególności określ adresy komputerów, które będą mogły się połączyć przez VPN, lub wybierz opcję Przypisz automatycznie adresy TCP/IP w celu użycia serwera DHCP z danej podsieci do przydzielenia adresów IP klientom (zobacz rysunek 2.28).

Rozdział 2. ♦ Podsłuch sieciowy (sniffing) Rysunek 2.28. Właściwości przychodzących pakietów TCP/IP

11. Zakończ pracę kreatora połączenia. W Panelu sterowania w Połączeniach

sieciowych sprawdź ustawienia połączenia Przychodzące (zobacz rysunek 2.29). Rysunek 2.29. Połączenia sieciowe — Przychodzące

35

36

13 najpopularniejszych sieciowych ataków na Twój komputer

KLIENT 1. Z menu Start wybierz Panel sterowania, a następnie Połączenia sieciowe. 2. Wybierz opcję Utwórz nowe połączenie. 3. Uruchomi się kreator nowego połączenia (zobacz rysunek 2.30). Rysunek 2.30. Kreator nowego połączenia

4. Wybierz typ połączenia sieciowego (zobacz rysunek 2.31). Rysunek 2.31. Wybór typu połączenia sieciowego

Rozdział 2. ♦ Podsłuch sieciowy (sniffing) 5. Wybierz sposób połączenia — Połączenie wirtualnej sieci prywatnej

(zobacz rysunek 2.32). Rysunek 2.32. Wybór VPN

6. Wpisz nazwę połączenia (zobacz rysunek 2.33). Rysunek 2.33. Nazwa połączenia

7. W dalszej części podaj adres IP komputera, z którym chcesz utworzyć VPN

(zobacz rysunek 2.34).

37

38

13 najpopularniejszych sieciowych ataków na Twój komputer

Rysunek 2.34. Adres komputera, z którym tworzona jest VPN

Adres serwera musi być adresem zewnętrznym sieci, z którą się łączysz. 8. I przyciskiem Zakończ zamknij pracę kreatora (zobacz rysunek 2.35). Rysunek 2.35. Zakończenie pracy kreatora nowego połączenia

9. Zostanie dodane nowe połączenie (zobacz rysunek 2.36), którego właściwości

możesz obejrzeć, klikając prawym przyciskiem myszy ikonę połączenia i wybierając opcję Właściwości z menu kontekstowego (zobacz rysunek 2.37).

Rozdział 2. ♦ Podsłuch sieciowy (sniffing) Rysunek 2.36. Połączenia sieciowe — wirtualna sieć prywatna

Rysunek 2.37. Właściwości połączenia VPN

39

40

13 najpopularniejszych sieciowych ataków na Twój komputer

System Windows umożliwia stosowanie dwóch protokołów w VPN:  PPTP,  L2TP.

Oba protokoły zapewniają szyfrowanie transmitowanych danych.

2.5.3.2. Szyfrowanie przy użyciu PKI PKI (ang. Public Key Infrastructure) jest to zbiór reguł, procedur, a także sprzętu oraz oprogramowania niezbędnych do tworzenia, przechowywania, dystrybucji certyfikatów opartych na kryptografii z kluczem publicznym i zarządzania takimi certyfikatami. W skład PKI wchodzą m.in.:  urzędy certyfikacyjne (ang. Certification Authority, CA) wydające certyfikaty,  urzędy rejestracyjne (ang. Registration Authority, RA) przyjmujące wnioski,

weryfikujące i rejestrujące użytkowników,  repozytoria kluczy, certyfikatów i list unieważnionych certyfikatów

(ang. Certificate Revocation Lists — CRL). Początkowo wykorzystywane były metody szyfrowania symetrycznego. W metodzie takiej do szyfrowania i deszyfrowania wykorzystywany jest ten sam klucz. Istotnym problemem jest dystrybucja tego klucza. Np. jeśli Julka zaszyfrowała wiadomość, zastępując litery przypisanym im odpowiednio liczbami, wysłała ją do Jacka, to musiała się z nim skontaktować, by powiadomić go, jaki algorytm zastosowała. Bezpieczeństwo takiego szyfrowania zależne jest od wykorzystanego algorytmu (im trudniejszy algorytm, tym większe jego bezpieczeństwo) oraz od odpowiedniego sposobu jego dystrybucji. Pod koniec XX wieku wprowadzona została nowa metoda — szyfrowanie asymetryczne z wykorzystaniem kluczy publicznych (ogólnie dostępnych) i prywatnych (znanych tylko właścicielowi). Klucz publiczny używany jest do zaszyfrowania informacji, klucz prywatny do jej odczytu. To tak, jakby do skrzynki Jacka Julka wrzuciła wiadomość, a tylko on miał klucz umożliwiający otworzenie tej skrzynki i odebranie listu. W szyfrowaniu asymetrycznym Julka szyfruje wiadomość publicznym kluczem Jacka, który jest ogólnie dostępny, a następnie wysyła ją do adresata (Jacka). Gdyby ktoś przechwycił po drodze plik z wiadomością i tak nie uda mu się go odczytać, bo nie ma odpowiedniego klucza prywatnego. Tylko Jacek ma taki klucz i tylko on może odszyfrować wysłaną przez Julkę wiadomość. Szyfrowanie asymetryczne działa więc w ten sposób, że skrzynkę zamkniętą jednym kluczem można otworzyć tylko drugim z tej samej pary, tj list zaszyfrowany kluczem publicznym da się odszyfrować wyłącznie kluczem prywatnym. Co więcej — znajomość jednego z kluczy oraz postaci jawnej i zaszyfrowanej tym kluczem nie pozwala na odgadnięcie drugiego klucza. Inny przykład wymiany danych pomiędzy dwoma użytkownikami za pomocą szyfrowania asymetrycznego został przedstawiony na rysunku 2.38. Każda ze stron generuje parę kluczy (publiczny i prywatny). Klucze publiczne są ogólnie dostępne w sieci, natomiast klucze prywatne znane są tylko ich właścicielom. Jeżeli użytkownik A chce

Rozdział 2. ♦ Podsłuch sieciowy (sniffing)

41

Rysunek 2.38. Szyfrowanie wiadomości

klucz publiczny użytkownika B

zaszyfrowana wiadomość

klucz prywatny użytkownika B

użytkownik A

użytkownik B

przesłać wiadomość do użytkownika B, to szyfruje ją kluczem publicznym B (tylko taki klucz użytkownika B jest wszystkim znany). Użytkownik B, chcąc odszyfrować przesłane dane, użyje swojego klucza prywatnego B (wiadomość jest tylko dla niego i tylko on dysponuje takim kluczem, żeby ją odczytać). Aby potwierdzić autentyczność przesyłanych danych, dodatkowo podpisuje się je podpisem cyfrowym (zobacz rysunek 2.39). Użytkownik A za pomocą tzw. funkcji skrótu (ang. hash) generuje tzw. skrót wiadomości, to jest pewną liczbę, z której wprawdzie nie da się odtworzyć oryginalnej wiadomości, ale która ma tę własność, że przy najmniejszej zmianie treści wiadomości jej wartość będzie znacząco różnić się od wyniku dla oryginalnej, niezmienionej wiadomości. To pozwala na szybkie stwierdzenie, czy w przesyłanych danych dokonane były jakieś zmiany: odbiorca oblicza wartość funkcji skrótu dla wiadomości, którą właśnie otrzymał, i porównuje ją z wartością zapisaną (i oczywiście zaszyfrowaną za pomocą klucza prywatnego nadawcy A) umieszczoną w podpisie. Jeśli obie wartości się różnią, to znaczy, że wiadomość była modyfikowana. Odszyfrowanie odbywa się po stronie odbiorcy przy użyciu klucza publicznego nadawcy A. Schemat generowania podpisu cyfrowego i jego weryfikacja został przedstawiony na rysunku 2.40. Rysunek 2.39. Podpisywanie wiadomości klucz publiczny użytkownika A

podpisana wiadomość

użytkownik A

klucz prywatny użytkownika A

użytkownik B

42

13 najpopularniejszych sieciowych ataków na Twój komputer

Tworzenie podpisu cyfrowego

Dane

funkcja skrótu

Skrót wiadomości

funkcja podpisu

Podpis cyfrowy

prywatny klucz nadawcy

Wysyłana wiadomość

Podpis cyfrowy

Dane publiczny klucz nadawcy

funkcja skrótu

Skrót wiadomości

funkcja podpisu

Skrót wiadomości

sprawdzenie zgodności

odrzucenie

akceptacja

Weryfikacja podpisu cyfrowego

Rysunek 2.40. Tworzenie podpisu cyfrowego i jego weryfikacja

Rozdział 2. ♦ Podsłuch sieciowy (sniffing)

43

Dla pełniejszej ochrony przesyłane podpisane dane możesz jeszcze dodatkowo zaszyfrować kluczem publicznym odbiorcy. Schemat postępowania przedstawia rysunek 2.41.

klucz publiczny użytkownika A

klucz publiczny użytkownika B

podpisana i zaszyfrowana wiadomość

użytkownik A

klucz prywatny użytkownika A

klucz publiczny użytkownika B

klucz prywatny klucz publiczny użytkownika B użytkownika A

użytkownik B

Rysunek 2.41. Podpisywanie i szyfrowanie wiadomości Najsłabszym punktem podpisu elektronicznego jest przechowywanie i używanie klucza prywatnego. Nie udostępniaj nikomu swojego klucza prywatnego. Przechowuj go na nośnikach wymiennych (np. flash USB) lub na kartach mikroprocesorowych. Przechwycenie klucza prywatnego daje możliwość podszywania się pod jego właściciela oraz odszyfrowania wysyłanych do niego listów.

Kontrolę nad tożsamością (czy klucz publiczny należy do właściwego użytkownika) sprawują specjalne instytucje, które wydają zaświadczenia — certyfikaty. Jeśli chcesz wygenerować swój certyfikat, możesz skorzystać z generatora darmowego certyfikatu na jednej ze stron internetowych:  https://www.certum.pl/services/enroll.html?lang=pl&oid=1.1  http://secure.polcert.pl/phoenixng/verify.cfm?id=4671063052&reset=yes,  http://ca.podpiselektroniczny.pl/pemica/kodpoczta3.asp

Konfiguracja Outlook Express Po wygenerowaniu i zainstalowaniu certyfikatu możesz obejrzeć go z poziomu przeglądarki internetowej. Dla Internet Explorera wybierz z menu Narzędzia/Opcje internetowe (zobacz rysunek 2.42). Na zakładce Zawartość wybierz przycisk Certyfikaty. Otworzy się lista Twoich osobistych certyfikatów (zobacz rysunek 2.43), po wybraniu certyfikatu i kliknięciu przycisku Wyświetl możesz obejrzeć jego zawartość. Z poziomu okna Certyfikaty możesz również wyeksportować swój certyfikat, tak abyś mógł korzystać z niego na innych komputerach (zobacz rysunek 2.44). W celu skorzystania z certyfikatu musisz jeszcze skonfigurować program pocztowy. W programie Outlook Express z menu Narzędzia wybierz konta, a następnie nazwę konta, które będziesz konfigurować. We właściwościach konta na zakładce Zabezpieczenia za pomocą przycisków Wybierz ustaw swój certyfikat dla podpisywania i szyfrowania wiadomości (zobacz rysunek 2.45).

44 Rysunek 2.42. Opcje internetowe

Rysunek 2.43. Osobiste certyfikaty

13 najpopularniejszych sieciowych ataków na Twój komputer

Rozdział 2. ♦ Podsłuch sieciowy (sniffing)

45

Rysunek 2.44. Szczegóły certyfikatu

Rysunek 2.45. Wybór certyfikatu podpisywania i szyfrowania dla konta pocztowego

Teraz Twoje konto pocztowe jest skonfigurowane do korzystania z certyfikatu do podpisywania i szyfrowania wysyłanych wiadomości. W celu wysłania podpisanej wiadomości z menu głównego wybierz Nowa wiadomość, a następnie wprowadź adres e-mail

46

13 najpopularniejszych sieciowych ataków na Twój komputer

osoby, do której chcesz wysłać podpisaną wiadomość. Wprowadź treść wiadomości, kliknij ikonę Podpisz, a następnie kliknij Wyślij. Zwróć uwagę, że po kliknięciu przycisku Podpisz Twoja wiadomość została oflagowana znaczkiem kotyliona, który symbolizuje podpisaną wiadomość (zobacz rysunek 2.46). Taka wysłana podpisana wiadomość pojawi się w skrzynce odbiorcy, a przy próbie jej otwarcia wyświetli się komunikat jak na rysunku 2.47. Oczywiście można zakreślić opcję, żeby przy kolejnych wiadomościach taki komunikat się nie pojawiał.

Rysunek 2.46. Podpisana wiadomość Rysunek 2.47. Komunikat u odbiorcy podpisanej wiadomości

Rozdział 2. ♦ Podsłuch sieciowy (sniffing)

47

W odebranej wiadomości również znajduje się znak kotyliona, a po jego naciśnięciu wyświetli się okno z informacjami o certyfikacie nadawcy (zobacz rysunek 2.48 i 2.49).

Rysunek 2.48. Wyświetlenie odebranej wiadomości Rysunek 2.49. Informacje o podpisie cyfrowym

Jeśli ktoś dokona zmiany w tak przesyłanej wiadomości, Twój program pocztowy wykryje nieprawidłowości i wyświetli ostrzeżenie o zabezpieczeniach (zobacz rysunek 2.50). W sieciach komputerowych w transmisji szyfrowanej wykorzystywane są protokoły SSL i SSH oparte na metodzie kluczy publicznych i prywatnych.

48

13 najpopularniejszych sieciowych ataków na Twój komputer

Rysunek 2.50. Ostrzeżenie o zabezpieczeniach

SSL SSL (ang. Secure Sockets Layer) — uzupełnienie istniejących protokołów (głównie HTTP) dla połączeń szyfrowanych. Za pomocą protokołu tworzony jest kanał transmisyjny dla informacji przesyłanych przez aplikacje, który jest odporny na ataki podsłuchu. Standard ten zapewnia uwierzytelnienie, poufność i integralność przesyłanych danych. Wykorzystuje następujące algorytmy szyfrujące:  Asymetryczny z kluczem publicznym i prywatnym serwera, wykorzystywany

w trakcie inicjacji połączenia. Przeglądarka generuje losowo klucz sesyjny symetryczny, a następnie szyfruje go za pomocą klucza publicznego serwera. Po przesłaniu tych danych do serwera odczytuje on klucz sesyjny, wykorzystując swój asymetryczny klucz prywatny.  Algorytm symetryczny z kluczem prywatnym, stosowany w transmisji danych

po przesłaniu klucza sesyjnego. Dla każdej sesji generowany jest nowy klucz symetryczny.

Rozdział 2. ♦ Podsłuch sieciowy (sniffing)

49

 Funkcję skrótu stosowaną do generowania podpisów cyfrowych.

Skrót dokumentu jest to liczba o określonej długości. Nie ma praktycznie możliwości, aby dwa dokumenty miały taki sam skrót (nawet gdy różnią się tylko jednym znakiem). Szybkość złamania szyfru symetrycznego zależy od długości użytego klucza. Im dłuższy klucz, tym większy nakład obliczeniowy i czasowy potrzebny do jego złamania.

Proces nawiązania połączenia z serwerem za pomocą protokołu SSL został przedstawiony na rysunku 2.51. Rysunek 2.51. Nawiązanie połączenia z serwerem za pomocą protokołu SSL

Użytkownik

Serwer

Łączenie z serwerem za pomocą przeglądarki Wysłanie certyfikatu Sprawdzenie autentyczności certyfikatu Wybór długości kluczy do szyfrowania na podstawie informacji z certyfikatu Generowanie klucza sesyjnego przez przeglądarkę, szyfowanie go kluczem publicznym otrzymanym w certyfikacie i wysyłanie do serwera

Proces odszyfrowania klucza sesyjnego za pomocą klucza prywatnego serwera

Transmisja szyfrowana

Protokół ten zapewnia trzy podstawowe składniki bezpiecznej komunikacji:  poufność — udostępnienie przesyłanych danych tylko osobie wysyłającej

i odbierającej,  uwierzytelnianie — weryfikowanie tożsamości obu stron połączenia,  integralność — zapewnienie niezmienności danych podczas ich przesyłania.

50

13 najpopularniejszych sieciowych ataków na Twój komputer

Praktyczne wykorzystanie protokółu SSL w przeglądarkach internetowych i konfiguracji poczty Aby upewnić się, że w trakcie transmisji stosujesz bezpieczne połączenia, sprawdź, czy korzystasz z protokołu https. Adres strony internetowej powinien wyglądać następująco: https://www.mojbank.com.pl O korzystaniu z protokołu SSL świadczy również znak kłódki znajdujący się na dolnym pasku przeglądarki (zobacz rysunek 2.52). Skieruj wskaźnik myszy na znak kłódki, a wyświetli się informacja o protokole. Dwukrotne kliknięcie wyświetli okno ze szczegółami certyfikatu. Rysunek 2.52. Informacja o bezpiecznym połączeniu https

W Outlook Express we właściwościach konta pocztowego w zakładce Zaawansowane ustaw opcje bezpiecznego połączenia dla serwerów poczty przychodzącej i wychodzącej (zobacz rysunek 2.53). Rysunek 2.53. Właściwości konta pocztowego — Zaawansowane

Rozdział 2. ♦ Podsłuch sieciowy (sniffing)

51

Nie wszystkie serwisy pocztowe wspierają tę usługę. Sprawdź w ustawieniach konfiguracji konta danego serwera, czy możliwe jest stosowanie bezpiecznych połączeń SSL. Staraj się wybierać takie, gdzie ta usługa jest zapewniona.

SSH SSH (ang. Secure SHell) — następca protokołu Telnet służącego do terminalowego łączenia się z komputerami (zdalna praca poprzez port 22 SSH). Połączenie (sesja) szyfrowana jest za pomocą algorytmów kryptograficznych opartych na metodzie kluczy kodujących i dekodujących. Uwierzytelnianie odbywa się za pomocą hasła. Obecnie stosowany do szyfrowanych połączeń dla dowolnego protokołu. W praktyce wykorzystywane są pomocnicze programy np. Putty w celu łączenia się ze zdalną konsolą i klientem FTP poprzez protokół SSH. Na rysunku 2.54 pokazane jest okno startowe programu Putty. Wpisując adres serwera i wybierając typ połączenia SSH za pomocą przycisku Open, połączysz się bezpiecznie z wybranym serwerem. Transmisja w takim połączeniu będzie szyfrowana. Rysunek 2.54. Program Putty

Pakiet zaszyfrowany, nawet jeśli został przechwycony, pozostaje „nieczytelny” dla osoby korzystającej ze snifffera.

52

13 najpopularniejszych sieciowych ataków na Twój komputer

Przykład: Za pomocą analizatora sieciowego przechwycony został pakiet z transmisji szyfrowanej. Zauważ, że dane są nieczytelne. Poniżej fragment przechwyconego pakietu: 0x0000 0x0010 0x0020 0x0030 0x0040 0x0050 0x0060 0x0070 0x0080 0x0090 0x00A0 0x00B0 0x00C0 0x00D0 0x00E0 0x00F0 0x0100

00 02 01 41 2C 47 F4 3A 99 2A 81 A8 05 EF 0F 54 90

08 40 22 00 34 63 9C 38 A3 7C A4 3E 7B 45 B3 84 88

C7 43 01 11 73 52 13 3E 00 39 D4 CD BB B9 CF 5A B1

52 17 BB C3 05 ED A7 FE 6C 36 4B 46 B1 28 D0 E2 A2

CC 00 0B 00 0B FC C8 42 57 0F 3B 47 DA 49 19 D4 A4

B3 00 0E 00 1A 96 54 8F 28 F6 CA 4D 6B 92 C0 2E FC

00 74 10 75 5C A6 3B BE F4 23 38 6D 73 BB 61 0B 5C

A0-C9 06-4E EF-6E 39-B6 5F-03 FC-FD 7B-99 B4-41 90-24 C2-68 40-D8 1E-81 5A-92 FE-C2 2B-86 77-83 9D-A0

42 FA E3 48 68 D7 EB 11 46 A5 32 E3 C8 55 99 9D 87

EE C1 1D 87 31 11 E0 D1 18 DE 4C C8 FB 46 E7 D2 C7

93 29 C2 33 2E 2B 1D 1C F6 72 CD 44 33 8A CF E3 10

08 E6 9B 95 F2 D5 BC AD EF D5 5E F1 26 62 35 B0 2C

00 51 A5 77 AE 17 E0 83 18 AC C2 B4 AD AA DE 00 33

45 0A 50 63 0B AE 29 49 E9 3C 14 3D 7D F4 5D 3D 37

00 0A 10 BD 11 52 17 71 2F 7C 4D D5 77 78 93 58 E8

..ÇRĚł. ÉBî“..E. [email protected]úÁ)ćQ.. .".»...ďnă.›ĄP. A..Ă..u9¶H‡3•wc˝ ,4s...\_.h1.ň®.. GcRíü–¦üý×.+Ő.®R ôś.§ČT;{™ëŕ.Ľŕ). :8>ţBŹľ´A.Ń.­ Iq ™Ł.lW(ô $F.öď.é/ *|96.ö#ÂhĄŢrŐ¬ÍFGMm. ăČDń´=Ő .{»±ÚksZ’Čű3&­}w ďEą(I’»ţÂUFŠbŞôx .łĎĐ.Ŕa+†™çĎ5Ţ]“ T„ZâÔ..w ťŇă°.=X ±˘¤ü\ť ‡Ç.,37č

2.5.3.3. WEP, WPA, WPA2 Najprostszą metodą szyfrowania w sieciach bezprzewodowych jest wykorzystanie protokołu WEP (ang. Wired Equivalent Privacy), który zapewnia kodowanie kluczami o długościach 64 i 128 bitów. Praktyka stosowania tej metody wykazała jej niską skuteczność. Okazało się, że klucze szyfrowania są łatwe do złamania. Następcą WEP jest standard szyfrowania WPA (ang. WiFi Protected Access), który generuje dla każdego klienta niepowtarzalne klucze szyfrowania w określonych odstępach czasu. Są to tzw. dynamiczne klucze. Dla WPA stosowane są dwa rozwiązania:  Enterprise Mode — dla sieci z dużą liczbą klientów, korzysta z serwera

uwierzytelniania RADIUS, który dla każdego użytkownika przydziela inny klucz.  Personal — dla małej sieci, w której każdy klient korzysta ze wspólnego

dzielonego klucza (PSK ang. Pre-Shared Key). Rozszerzeniem protokołu WPA jest WPA2. Wykorzystuje on 128-bitowe długości kluczy (dynamicznych) oraz standard szyfrowania AES (ang. Advanced Encryption Standard). Dodatkowo ma zabezpieczone wszystkie wykryte błędy, które pojawiały się w szyfrowaniu WEP. Obecnie jest najskuteczniejszą metodą szyfrowania stosowaną w sieciach WLAN. Rysunek 2.55 przedstawia rozwój standardów szyfrowania w sieciach bezprzewodowych.

Ustawianie szyfrowania w połączeniach bezprzewodowych: 1. Z Menu Start wybierz Panel sterowania. 2. W oknie Panel sterowania otwórz Połączenia sieciowe (zobacz rysunek 2.56).

Rozdział 2. ♦ Podsłuch sieciowy (sniffing)

802.11

WEP

53

802.11i

WPA

WPA2

Rysunek 2.55. Standardy szyfrowania w sieciach bezprzewodowych

Rysunek 2.56. Połączenia sieciowe 3. Kliknij dwukrotnie Połączenie bezprzewodowe. Otworzy się okno wyświetlające

informacje o sieciach bezprzewodowych, które wykryła karta (zobacz rysunek 2.57).

54

13 najpopularniejszych sieciowych ataków na Twój komputer

Rysunek 2.57. Połączenie sieci bezprzewodowej 4. W celu ustawienia szyfrowania dla nowej sieci kliknij prawym przyciskiem

Połączenie bezprzewodowe (okno Połączenia sieciowe) i z menu kontekstowego wybierz Właściwości. Na zakładce Sieci bezprzewodowe upewnij się, czy opcja Użyj systemu Windows do konfiguracji ustawień sieci bezprzewodowej jest zaznaczona. Następnie wybierz przycisk Dodaj (zobacz rysunek 2.58). W wyświetlonym oknie wpisz nazwę sieci (SSID), a następnie ustaw odpowiedni poziom szyfrowania. 5. Otworzy się okno, w którym możesz wybrać sposób szyfrowania

i uwierzytelniania (zobacz rysunek 2.59 i 2.60). Nie wszystkie karty sieciowe zapewniają szyfrowanie WPA2. Sprawdź w danych konfiguracyjnych dostarczonych przy zakupie karty, czy taki sposób kodowania jest możliwy. Dodatkowo w systemie Windows XP z SP2 musisz zainstalować poprawkę KB893357 — obsługa standardu Wi-Fi Protected Access 2 (WPA2). Więcej informacji na temat tej aktualizacji znajdziesz na stronie internetowej: http://www. ´microsoft.com/downloads/details.aspx?displaylang=pl&FamilyID=2726f32f-d52b´4f84-ace8-f7fc20195769. Użytkownicy innych systemów muszą korzystać z zewnętrznych modułów zapewniających szyfrowanie WPA2.

Rozdział 2. ♦ Podsłuch sieciowy (sniffing) Rysunek 2.58. Właściwości połączenia sieci bezprzewodowej

Rysunek 2.59. Wybór szyfrowania

55

56

13 najpopularniejszych sieciowych ataków na Twój komputer

Rysunek 2.60. Wybór szyfrowania

Obecnie wyłącznie szyfrowanie WPA2 jest bezpieczne (to znaczy nie jest znany żaden sposób złamania zabezpieczeń w rozsądnym czasie). Pozostałe standardy szyfrowania są łatwe do złamania, choć może to wymagać od atakującego „wstrzykiwania” do sieci odpowiednio spreparowanych ramek. Przy użyciu odpowiedniego oprogramowania ataki na sieci bezprzewodowe można prowadzić w sposób bardzo łatwy, nawet bez znajomości szczegółów ich działania. Dlatego jeśli chcesz czuć się bezpiecznie w swojej sieci bezprzewodowej, musisz korzystać z protokołu WPA2.

Na rysunkach 2.61 i 2.62 przedstawione zostały możliwości wyboru szyfrowania z użyciem WPA2. Niektórzy producenci kart sieciowych bezprzewodowych dołączają aplikację do obsługi i konfiguracji połączeń. Za pomocą takiego programu również można ustawiać opcje szyfrowania (zobacz rysunek 2.63).

2.5.4. Anonimowość w sieci Komputery w sieci identyfikowane są poprzez adresy IP. Jeśli nie chcesz być narażony na szereg ataków, dobrym rozwiązaniem jest ukrycie swojej obecności. Obecnie wiele stron WWW zawiera specjalne skrypty do identyfikacji odwiedzających je komputerów. Co więcej, nie tylko rozpoznają one adresy IP, ale również rodzaj i wersje systemów operacyjnych, przeglądarki internetowe, a nawet rozdzielczość ekranu. Wszystkie te dane dostarczają administratorom cennych informacji, jak dostosować witrynę do środowisk komputerów odwiedzających. Niestety, informacje te mogą posłużyć również

Rozdział 2. ♦ Podsłuch sieciowy (sniffing) Rysunek 2.61. Wybór WPA2

Rysunek 2.62. Wybór szyfrowania

57

58

13 najpopularniejszych sieciowych ataków na Twój komputer

Rysunek 2.63. Cisco Aironet Desktop Utility — Profile Management

hakerom, którzy mogą wykorzystać je do przeprowadzenia ataków. Gdy jesteś anonimowym użytkownikiem, nikt nie odgadnie (a przynajmniej będzie miał utrudnione zadanie), że jesteś w sieci. W celu zachowania anonimowości w sieci możesz skorzystać z routingu cebulowego — TOR (ang. The Onion Routing).

Routing cebulowy TOR jest zespołem pośredników służących do tzw. trasowania cebulowego, które umożliwia użytkownikom anonimowy dostęp do zasobów Internetu. TOR, za pomocą tzw. ukrytych usług, dodatkowo umożliwia przeglądanie stron blokowanych przez lokalną cenzurę i dostawców sieci bez potrzeby ujawniania fizycznej lokalizacji serwera. Klient podczas łączenia się z siecią TOR pobiera listę węzłów od serwera katalogowego. Następnie budowana jest sieć pośredników, której struktura jest dodatkowo dynamicznie przebudowywana co kilka minut. W ten sposób wysyłane informacje, zanim dojdą do celu, przechodzą przez kolejne „warstwy cebuli” (serwery pośredniczące), na których przepakowywane są w pakiety i opatrywane nowymi adresami pochodzenia i dodatkowo szyfrowane. Każdy z przekaźników zna tylko przekaźnik, z którego otrzymał dane, i przekaźnik, któremu dane wysyła (dla każdego skoku w obwodzie używana jest osobna para kluczy, żaden z węzłów połączenia nie jest w stanie odtworzyć trasy pakietu). Co więcej, nawet

Rozdział 2. ♦ Podsłuch sieciowy (sniffing)

59

wstawienie w którejś z warstw wrogiego (podsłuchującego) węzła nie umożliwi zazwyczaj identyfikacji użytkownika (chyba że będzie to akurat pierwszy węzeł połączony bezpośrednio z pechowym użytkownikiem). Schemat działania TOR-a przedstawia rysunek 2.64.

klient

Węzeł TOR

Węzeł wyjściowy TOR

Węzeł TOR

Węzeł TOR

Serwer

Połączenie szyfrowane Połączenie nieszyfrowane

Rysunek 2.64. Schemat działania TOR-a

TOR ma oczywiście swoje ograniczenia. Przede wszystkim szyfrowana jest komunikacja TCP, natomiast nie jest szyfrowana komunikacja UDP. Jak się można spodziewać, po UDP zazwyczaj przesyłane są komunikaty DNS-u (choć można to zmienić), więc cała anonimowość staje pod znakiem zapytania, dopóki nie użyjemy dodatkowego oprogramowania, np. programu Privoxy, który zresztą wchodzi w skład pakietu dystrybucyjnego TOR-a. Dodatkowo szyfrowanie nie dotyczy komunikacji pomiędzy ostatnim z pośredników (zwanym węzłem wyjściowym TOR-a) a serwerem, z którego usług chcemy skorzystać, zwykły serwer bowiem dostarcza usługi wyłącznie w postaci jawnej (nieszyfrowanej), nie mając pojęcia, czy zgłosił się do niego węzeł wyjściowy TOR-a, czy zwykły użytkownik.

Instalacja klienta TOR-a w systemie Windows Wersja instalacyjna TOR-a znajduje się na stronie internetowej: http://www.torproject.org/ ´download.html.pl. Plik instalacyjny znajduje się również na płycie dołączonej do książki. Instalator dla MS Windows zawiera programy: TOR-a, Vidalia (odpowiadająca za konfigurację poszczególnych komponentów i dodatkowo chroniąca komputer), Privoxy (filtrujący serwer proxy do WWW) i Torbuttona (dodatek do Mozilli umożliwiający łatwe włączanie i wyłączanie TOR-a) w jednym pliku, wszystkie prekonfigurowane do współpracy ze sobą. Uruchom plik instalacyjny. Pojawi się okno kreatora instalacji (zobacz rysunek 2.65). Kliknij przycisk Dalej. W oknie Instalatora wybierz komponenty, które chcesz zainstalować (zobacz rysunek 2.66). Następnie wybierz folder, w którym mają być zainstalowane aplikacje (zobacz rysunek 2.67), i wybierz przycisk Zainstaluj.

60

13 najpopularniejszych sieciowych ataków na Twój komputer

Rysunek 2.65. Kreator instalacji Vidalia Bundle

Rysunek 2.66. Wybór komponentów

W calu zakończenia instalacji wybierz przycisk Zakończ (zobacz rysunek 2.68). Po zakończeniu instalacji wybrane składniki zostaną automatycznie uruchomione. Pojawi się okno Panelu Kontrolnego Vidalii (zobacz rysunek 2.69). Po instalacji TOR-a i Privoxy należy skonfigurować aplikacje, by ich używały. Pierwszym krokiem jest ustawienie sposobu przeglądania sieci WWW. Dla przeglądarki Mozilla Firefox instalator programu Vidalia automatycznie zainstaluje rozszerzenie Torbutton (zobacz rysunek 2.70). Ponownie uruchom Firefoksa.

Rozdział 2. ♦ Podsłuch sieciowy (sniffing)

61

Rysunek 2.67. Wybór lokalizacji dla instalacji

Rysunek 2.68. Kończenie pracy kreatora instalacji

Privoxy to serwer proxy odpowiadający, oprócz anonimizacji żądań DNS-ów, za obsługę cookies, filtrowanie treści i banerów na stronach WWW. Korzystanie z Privoxy jest konieczne, aby przeglądarki używały serwera proxy, co umożliwi zachowanie pełnej anonimowości. Żeby „storyfikować” inne aplikacje, które używają proxy dla HTTP, należy skierować je na Privoxy (czyli localhost port 8118).

62

13 najpopularniejszych sieciowych ataków na Twój komputer

Rysunek 2.69. Panel kontrolny Vidalii

Rysunek 2.70. Torbutton

Dla przeglądarki Firefox (gdy nie instalujesz Torbuttona): Z okna przeglądarki z menu Narzędzia/Opcje/Zaawansowane/Sieć/Ustawienia/Ręczna konfiguracja serwerów proxy w edytorze Serwer proxy HTTP podaj adres 127.0.0.1 i port 8118 (zobacz rysunek 2.71). Bez tego ruch sieciowy nie będzie przechodził przez Privoxy, pozostanie niezaszyfrowany i nieanonimizowany. Dla przeglądarki Internet Explorer (ustawienia te są konieczne przy instalacji TOR-a) ustawienia serwera proxy skonfigurujesz w przeglądarce w menu Narzędzia/Opcje internetowe/Połączenia/Ustawienia/Ustawienia serwera proxy (zobacz rysunek 2.72). Następnie sprawdź, czy Privoxy i Vidalia są uruchomione. Ikona Privoxy to niebieskie lub zielone kółko z P w środku, Vidalia oznaczona jest ikoną małej zielonej cebuli, gdy anonimizacja działa, lub ciemnej cebuli z czerwonym X, gdy nie działa (zobacz rysunek 2.73). Możesz zatrzymać lub uruchomić TOR-a, klikając prawym przyciskiem myszy ikonę Vidalii i wybierając odpowiednią opcję z menu podręcznego (zobacz rysunek 2.74). Sprawdź teraz, czy zainstalowanie TOR-a spowodowało zmianę na podglądzie logów adresów IP Twojego komputera. Za pomocą wykrywacza TOR-a: http://torcheck. ´xenobite.eu/ sprawdź, czy jego zdaniem używany jest TOR, czy nie. Skorzystaj również z innych stron identyfikujących adresy IP np. http://www.showmyip.com/ ´torstatus/ (zobacz rysunek 2.75 i 2.76).

Rozdział 2. ♦ Podsłuch sieciowy (sniffing) Rysunek 2.71. Ręczna konfiguracja serwera Proxy w przeglądarce Firefox

Rysunek 2.72. Ręczna konfiguracja serwera proxy w przeglądarce Internet Explorer

Rysunek 2.73. Ikony TOR-a i Privoxy

63

64

13 najpopularniejszych sieciowych ataków na Twój komputer

Rysunek 2.74. Menu kontekstowe TOR-a

Rysunek 2.75. Przykład działania TOR-a

Konfiguracja przekaźnika TOR-a Jeśli masz dużą przepustowość łącza, możesz przekazać jej część i sam skonfigurować przekaźnik TOR. Im więcej takich przekaźników, tym sieć TOR-a jest szybsza, zwiększa się bezpieczeństwo i anonimowość. Przekaźniki sieci, z którymi się łączysz, nie są w stanie rozpoznać, czy połączenie pochodzi z Twojego komputera, czy zostało przekierowane z innego przekaźnika.

Rozdział 2. ♦ Podsłuch sieciowy (sniffing)

65

Rysunek 2.76. Przykład działania TOR-a Pamiętaj, że nie wszyscy korzystają z TOR-a w godnych pochwały i zgodnych z prawem celach. Jeśli TOR-em posłuży się przestępca, a Ty będziesz miał wyjątkowego pecha i Twój węzeł stanie się dla niego wyjściem z cebuli, to ślady pozostawione przez przestępcę będą prowadzić do Twojego komputera. Wprawdzie prawdopodobieństwo takiego zdarzenia jest stosunkowo małe i w razie czego dość łatwo wykażesz swoją niewinność, ale powinieneś uwzględnić, że któregoś dnia do Twoich drzwi zapuka policja i sprawdzi Twój komputer.

W celu skonfigurowania swojego klienta jako przekaźnika sieci z menu kontekstowego Vidalii wybierz Panel kontrolny, a następnie Ustawienia. W zakładce Przekazywanie połączeń wpisz nazwę Twojego przekaźnika oraz swój adres mailowy. Ustaw limity przepustowości oraz Politykę połączeń (zobacz rysunek 2.77). Przed konfiguracją sprawdź, czy Twój zegar jest dobrze ustawiony (najlepiej, aby pobierał czas z publicznego serwera czasu) oraz czy działa rozwiązywanie nazw sieciowych, tzn., czy Twój komputer uzyskuje poprawny numer IP po wysłaniu zapytania o nazwę serwera.

Jeśli używasz firewalla, pamiętaj, aby pozwolić połączeniom przychodzącym łączenie się z portami węzła i listy. Upewnij się, że dozwolone są wszystkie połączenia wychodzące.

66

13 najpopularniejszych sieciowych ataków na Twój komputer

Rysunek 2.77. Konfiguracja przekaźnika TOR-a

Instalacja klienta TOR-a — system LINUX Pobierz wersję instalacyjną odpowiadającą systemowi Linux. W celu skompilowania TOR-a najpierw musisz zainstalować wersje developerskie pakietów OpenSSL, zlib i libevent. Następnie uruchom: #tar xzf tor-0.1.2.19.tar.gz; cd tor-0.1.2.19 #./configure && make #make install

TOR zostanie zainstalowany w katalogu /usr/local, zatem można go uruchomić poleceniem tor. Ustawienia w pliku konfiguracyjnym są zgodne z wymaganiami większości użytkowników — nie wymagają wprowadzenia w nich zmian. Po instalacji TOR-a musisz skonfigurować swoje aplikacje, by z niego korzystały. W tym celu należy zainstalować Privoxy. Instalacja przebiega standardowo za pomocą poleceń: configure, make, make install. Następnie, aby Privoxy korzystało z TOR-a, w pliku config zawierającym konfigurację Privoxy (znajduje się w /etc/privoxy lub /usr/local/etc/) dodaj wiersz: forward-socks4a / 127.0.0.1:9050

Dodatkowo wyłącz logi serwera, wstawiając znak # przed następującymi wierszami: # # # #

logfile logfile jarfile jarfile debug 1 show each GET/POST/CONNECT request

Uruchom ponownie Privoxy, aby zmiany zostały zapisane.

Rozdział 3.

Podszywanie się i oszustwa: DNS-spoofing, MITM, phishing i pharming Szyfrowanie przy użyciu algorytmów o odpowiedniej złożoności zapewnia obecnie bardzo dużą ochronę poufności transmitowanej informacji. Atakujący zatem, aby mieć możliwość przeprowadzenia skutecznego ataku, podejmują próby wykorzystania słabości związanych z innymi niż przesyłanie danych elementami procesu transmisji i przetwarzania danych. Przede wszystkim są to procesy rozwiązywania adresów symbolicznych i zestawiania połączenia pomiędzy stronami dialogu. Jeśli uda się przekonać zaatakowanego, żeby zamiast z właściwym serwerem połączył się z maszyną agresora, uzyskanie poufnych danych będzie już łatwe. Po nawiązaniu takiego połączenia atakujący będzie miał dostęp do wszystkich informacji, które będą próbowały dotrzeć do właściwego serwera. Można to wykonać albo za pomocą ataków na proces rozwiązywania nazw, albo przy użyciu złośliwego oprogramowania zainstalowanego na maszynie klienta. Zwróć uwagę, że tego typu ataki są bardzo niebezpieczne ze względu na skutki, jakie mogą wystąpić po ich przeprowadzeniu. Jeśli nie zauważysz, że zamiast z prawdziwym serwerem połączyłeś się z komputerem atakującego, to możesz spodziewać się większych szkód, np. materialnych (łącząc się z fałszywą stroną internetową, możesz przekazać poufne informacje, dzięki którym atakujący będzie miał możliwość dysponowania Twoimi pieniędzmi). To tylko jeden z przykładów sytuacji, jakie mogą Ci się przytrafić, jeśli nie będziesz miał odpowiedniej wiedzy, jak zabezpieczyć się przed niepożądanym połączeniem. Duże znaczenie przy zabezpieczaniu się przed takimi rodzajami ataków ma odpowiednia ochrona serwera DNS, o co powinien zadbać administrator sieci, z której korzystasz. Przede wszystkim powinien wprowadzić następujące zasady:  ograniczenia liczby hostów, które mogą przesyłać zapytania do serwera,  zablokowania wszystkich portów poza możliwością komunikacji dla zaufanych

komputerów,

68

13 najpopularniejszych sieciowych ataków na Twój komputer  uniemożliwienia odpytania serwera o właściwą wersję oprogramowania.

(znajomość oprogramowania ułatwia atakującemu znalezienie w nim usterek oraz błędów i ich wykorzystanie w celu przeprowadzenia ataku),  aktualizowania oprogramowania serwera oraz wprowadzanie poprawek

systemowych. Zapytaj swojego administratora, czy stosuje odpowiednie zabezpieczenia serwera DNS. Nie wszystkie ataki skierowane są na serwer DNS. Często do przeprowadzenia ataku wykorzystywany jest komputer zaatakowanego (np. poprzez podmianę odpowiednich plików odpowiadających za translację adresów domenowych na adresy IP, łączenie się z pozorowaną stroną poprzez łącze z fałszywej wiadomości e-mail). Szczegółowy opis metod zabezpieczania i ochrony dla takich przypadków został przedstawiony w podrozdziałach 3.1., 3.2, 3.3., 3.4.

3.1. Atak 4: DNS-spoofing Użytkownicy w sieci komputerowej najczęściej korzystają z nazw domenowych (np.: www.onet.pl, www.wp.pl). Są one łatwiejsze do zapamiętania i dlatego często są używane zamiast adresów IP. Przy przeglądaniu stron internetowych, łączeniu się z serwerami w oknie adresu wpisywana jest nazwa domenowa, która jest tłumaczona przez specjalne serwery DNS (ang. Doman Name System — system nazw domen) na adresy IP. Wykorzystywanie nazw domenowych niesie ze sobą niebezpieczeństwo poważnego ataku — DNS-spoofingu. DNS-spoofing polega najczęściej na fałszowaniu odpowiedzi serwera DNS. Wykorzystuje lukę w protokole polegającą na braku autoryzacji źródła odpowiedzi. Jeśli posługujesz się nazwami domenowymi, jesteś narażony na ten typ ataków. Nazwa serwera, z którym chcesz się połączyć, może zostać odwzorowana na niewłaściwy adres IP. Taka sytuacja spowoduje, że zamiast do serwera dane będą trafiać do komputera atakującego. Do przeprowadzenia ataku wykorzystuje się fałszywy serwer DNS, który nasłuchuje zapytań o odwzorowania nazw domenowych. W odpowiedzi wysyła on fałszywe adresy IP. Klient wiąże nazwę domenową z przesłanym przez fałszywy serwer adresem IP. Inną metodą, znacznie trudniejszą, jest włamanie do serwera DNS i podmiana tablicy odwzorowań.

Zabezpieczenia Statyczne odwzorowanie adresów IP na nazwy domenowe jest jednym z zabezpieczeń przed atakiem DNS-spoofing. W momencie nawiązywania połączenia poszukiwane odwzorowania będą rozwiązywane lokalnie. W systemie Windows w katalogu C:\WINDOWS\system32\drivers\etc w pliku hosts wpisz odwzorowanie, dodając wiersz, np.: 10.0.0.1 www.mojbank.com.pl

Rozdział 3. ♦ Podszywanie się i oszustwa: DNS-spoofing, MITM, phishing i pharming

69

W systemie Linux wpisów należy dokonać w katalogu /etc i mają one następującą składnię: adres_IP nazwa_domenowa alias_nazwy

np. 10.0.0.1 www.mojbank.com.pl mojbank

Alias nazwy jest skrótem, którego możesz użyć, by nie wprowadzać pełnej nazwy domenowej. Ustaw uprawnienia tylko do odczytu do pliku hosts dla aplikacji systemowych. Będziesz miał pewność, że nie zostanie on zmodyfikowany przez złośliwe aplikacje.

Innym sposobem zabezpieczenia przed połączeniem z fałszywą stroną jest zapisanie w zakładce ulubione bezpośrednio adresu IP strony internetowej np. jak na rysunku 3.1. Rysunek 3.1. Dodawanie ulubionych stron internetowych

Przy takim zapisie będzie pojawiać się komunikat weryfikujący certyfikat. Będziesz musiał weryfikować informacje, które pojawią się w alercie. W sytuacjach, w których bezpieczeństwo odgrywa ważną rolę, najlepiej zrezygnuj z wykorzystywania protokołu DNS.

3.2. Atak 5: Man In The Middle (MITM) Polega na tym, że próba połączenia się klienta z serwerem jest kierowana do fałszywego serwera lub też przechodzi przez komputer atakującego. Aby istniała możliwość przekierowania takich zapytań, dokonuje się ataku DNS-spoofing, który polega na fałszowaniu odpowiedzi z serwera lub ataku ARP-spoofing. W przypadku ataku MITM atakujący jest osobą znajdującą się pomiędzy klientem a serwerem. Określany jest jako „człowiek w środku” (ang. man in the middle) (zobacz rysunek 3.2). Poprzez przekierowanie zapytania klienta do własnego komputera i przedstawienie mu fałszywego certyfikatu lub klucza publicznego atakujący uzyskuje dostęp do zaszyfrowanego połączenia. Następnie nawiązuje połączenie z rzeczywistym serwerem, udając właściwego klienta. Cały ruch między klientem a serwerem przechodzi przez komputer atakującego, a za pomocą wygenerowanych przez siebie kluczy atakujący ma możliwość odszyfrowania przesyłanych danych.

70

13 najpopularniejszych sieciowych ataków na Twój komputer

Rysunek 3.2. Atak MITM

serwer

klient

„człowiek w środku” man in the middle

Na atak MITM musisz uważać w szczególności, gdy używasz bezpiecznego połączenia szyfrowanego np. za pomocą protokołu SSL. W momencie łączenia się z serwerem za pomocą przeglądarki i protokołu https serwer identyfikuje się swoim certyfikatem. Jeśli certyfikat jest kwalifikowany (tzn. jest zaufany, a jego autentyczność potwierdza urząd certyfikujący), przeglądarka akceptuje połączenie. Jeżeli natomiast w trakcie weryfikacji nastąpi błąd (tzn. przeglądarka nie zweryfikuje certyfikatu), wyświetli się komunikat jak na rysunku 3.3 lub 3.4. Teraz od Ciebie zależy, czy zaakceptujesz, czy odrzucisz to połączenie. Rysunek 3.3. Alert zabezpieczeń w przeglądarce Internet Explorer

Nigdy nie akceptuj takiego alertu. Przejrzyj dokładnie informacje o certyfikacie (przycisk wyświetl certyfikat) i dopiero po tym zadecyduj o kontynuowaniu oglądania strony. Jeśli pochopnie zaakceptujesz taki certyfikat, przeglądarka zapisze go w magazynie certyfikatów i nie zapyta Cię ponownie o jego weryfikację. Takie uważne czytanie komunikatów pozwala ochronić się przed atakami MITM.

Można zwiększyć bezpieczeństwo, wyłączając obsługę protokołu SSL 3.0. W przypadku Internet Explorera z menu Narzędzia wybierz Opcje internetowe, przejdź do zakładki Zaawansowane i w podpunkcie Zabezpieczenia odznacz opcję Użyj SSL 2.0

Rozdział 3. ♦ Podszywanie się i oszustwa: DNS-spoofing, MITM, phishing i pharming

71

Rysunek 3.4. Alert zabezpieczeń w przeglądarce Mozilla Firefox

(zobacz rysunek 3.5). Przeglądarka Mozilla Firefox obsługuje tylko SSL 3 (zobacz rysunek 3.6). Należy pamiętać o tym, że niektóre strony po odznaczeniu lub całkowitym braku SSL 2.0 mogą nie uruchamiać się poprawnie. Rysunek 3.5. Opcje internetowe — Zaawansowane — Zabezpieczenia w przeglądarce Internet Explorer

72

13 najpopularniejszych sieciowych ataków na Twój komputer

Rysunek 3.6. Opcje Zaawansowane — Szyfrowanie w przeglądarce Mozilla Firefox

Pamiętaj również, żeby stosować zasadę ograniczonego zaufania, jeśli z Twojego komputera korzysta wiele osób lub jeśli Ty korzystasz z komputera publicznie dostępnego (np. w kawiarence internetowej, w pracy, w szkole). Najlepiej nie przesyłaj w takich miejscach poufnych danych, ponieważ nie możesz mieć pewności, czy ktoś nie zaakceptował niebezpiecznych certyfikatów lub nie dodał do ich magazynu specjalnie wygenerowanych, by móc podsłuchiwać transmisję.

3.3. Atak 6: phishing Phishing (ang. password harvesting fishing — łowienie haseł) jest atakiem mającym na celu pozyskanie poufnych informacji poprzez podszywanie się pod zaufane podmioty (np. banki, sklepy internetowe, serwisy aukcyjne, serwisy pocztowe). Atak ten polega na wysyłaniu e-maili kierujących na fałszywą stronę, prawie identyczną z oryginalną, która w rzeczywistości przechwytuje wpisywane na niej informacje. Przykładowo: atakujący wysyła wiadomości e-mail z linkiem do udawanej strony Twojego banku z prośbą o zalogowanie i sprawdzenie informacji o najnowszych promocjach przy zakładaniu lokat bankowych. Klikasz link i logujesz się. W tym momencie Twój login i hasło przesyłane są zamiast do serwisu bankowego do atakującego, który ma już dostęp do Twojego konta bankowego. Przykładowe e-maile phishingowe zostały przedstawione na rysunkach 3.7 i 3.8.

Rozdział 3. ♦ Podszywanie się i oszustwa: DNS-spoofing, MITM, phishing i pharming

73

Rysunek 3.7. Przykładowy e-mail phishingowy

Rysunek 3.8. Przykładowy e-mail phishingowy

Poniżej przedstawiono kilka sformułowań, które w e-mailu powinny zwrócić Twoją szczególną uwagę: „Sprawdź ustawienia swojego konta”. Firmy nie powinny prosić o przesyłanie haseł, nazw użytkownika, numerów PESEL czy innych informacji osobistych pocztą e-mail. „W przypadku braku odpowiedzi w ciągu 48 godzin, Pani/Pana konto zostanie zamknięte”. „Szanowny Kliencie”. Wiadomości e-mail związane z phishingiem są zwykle rozsyłane masowo i nie zawierają imienia ani nazwiska. „Kliknij poniższe łącze, aby uzyskać dostęp do swego konta”. Łącze może prowadzić do sfałszowanej witryny.

74

13 najpopularniejszych sieciowych ataków na Twój komputer

Istnieje także pewna odmiana phishingu zwana spear phishing. Jest to próba kradzieży informacji, precyzyjnie skierowana przeciwko konkretnej grupie osób, takiej jak firma, w przeciwieństwie do phishingu, który jest skierowany raczej do dużej liczby osób. Polega również na wysłaniu do takiej grupy wiadomości e-mail, która wygląda na oryginalną i prawdziwą. Odbiorca może ją potraktować jako autentyczną wiadomość wysłaną przez pracodawcę lub kolegę z pracy do każdego pracownika firmy. W treści maila jak zwykle pojawia się prośba mająca skłonić daną osobę do podania np. nazwy użytkownika lub hasła. Podczas gdy tradycyjny phishing kradnie informacje często od przypadkowych pojedynczych osób, atak typu spear phishing ma na celu uzyskanie dostępu do całej sieci przedsiębiorstwa.

Ochrona przed phishingiem  Po pierwsze, instytucje takie jak banki, organizacje finansowe nigdy nie wysyłają

e-maili z prośbą o ujawnienie poufnych danych. Sprawdzaj dokładnie wiadomości w Twojej skrzynce odbiorczej. Wiadomości przesyłane przez atakującego mogą być łudząco podobne do oryginalnych, dlatego bądź czujny i najpierw sprawdź autentyczność listu. Nie klikaj bezmyślnie każdego linka w e-mailach.  Po drugie, łącz się bezpośrednio ze stronami banków internetowych, nie korzystaj

z odsyłaczy. Po otwarciu strony sprawdź certyfikaty poprzez naciśnięcie znaku kłódki w dolnej części przeglądarki internetowej.  Po trzecie, korzystaj z najnowszej wersji przeglądarek internetowych,

uaktualniaj oprogramowanie. Starsze wersje przeglądarek mogą być podatne na błędy. Korzystaj z przeglądarek wyposażonych w filtry phishingowe np. Mozilla Firefox, Opera, Internet Explorer 7.0.  Po czwarte, możesz użyć specjalnego oprogramowania chroniącego przed

takimi atakami, np. Kaspersky Internet Security, ArcaVir System Protection, AntiVirenKit Internet Security. Do badania witryn internetowych przydatne jest narzędzie firmy McAffe, z którego możesz skorzystać bezpośrednio ze strony internetowej www.siteadvisor.pl bądź instalując plugin do przeglądarek internetowych, takich jak Internet Explorer czy Mozilla Firefox. Narzędzie wykonuje szereg automatycznych testów badających bezpieczeństwo witryn, m.in.:  testy wiadomości e-mail rozsyłanych do użytkowników danej strony,  badanie plików możliwych do pobrania z witryny i irytujących elementów,  badanie powiązań z innymi stronami, na które testowana strona próbuje

skierować użytkownika, wykrywanie powiązań z witrynami niebezpiecznymi i (lub) podejrzanymi. Na rysunkach 3.9 i 3.10 przedstawiony został przykładowy raport z testu strony kazaa.com wykonany narzędziem siteadvisor.

Rozdział 3. ♦ Podszywanie się i oszustwa: DNS-spoofing, MITM, phishing i pharming

Rysunek 3.9. Działanie narzędzia SiteAdvisor

Rysunek 3.10. Działanie narzędzia SiteAdvisor

75

76

13 najpopularniejszych sieciowych ataków na Twój komputer

3.4. Atak 7: pharming Pharming jest zaawansowaną formą phishingu Jest trudniejszy do wykrycia, ponieważ zaatakowany nie spodziewa się zagrożenia, bo nie otrzymuje żadnych fałszywych wiadomości e-mail. Łącząc się ze stroną np. banku internetowego, zaatakowany jest przekonany, że jest to prawidłowa strona (adres strony jest zgodny, strona wyglądem jest identyczna lub bardzo podobna), i przesyłając dane, przekazuje je prosto do atakującego. Atakujący działa zazwyczaj na jeden z dwóch sposobów: instaluje w komputerze zaatakowanego złośliwe oprogramowanie bądź przeprowadza atak DNS-spoofing. W pierwszym przypadku w najprostszej wersji złośliwe oprogramowanie modyfikuje wpisy w pliku hosts lub lmhosts (w których to plikach system operacyjny przechowuje informacje o odwzorowaniach nazw symbolicznych na adresy IP — wpisy w tych plikach są sprawdzane, zanim system wygeneruje zapytanie do DNS-a). Na rysunku 3.11 przedstawiony został schemat ataku pharming. Rysunek 3.11. Atak pharming

1 atak na serwer DNS

atakujący

fałszywa strona www

4

połączenie z fałszywą stroną www

5 odpowiedź z zaatakowango serwera

serwer DNS

oryginalna strona www

3

2

wysłanie zapytania do serwera dns o adres IP strony www

próba połączenia ze stroną www

użytkownik

1. Atakujący przeprowadza atak DNS-spoofing na serwer DNS, 2. Użytkownik próbuje nawiązać połączenie ze stroną WWW. 3. Następnie wysyła zapytanie do serwera DNS o adres IP szukanej strony. 4. Otrzymuje odpowiedź od zaatakowanego serwera. 5. Zamiast z oryginalną stroną łączy się z fałszywą stroną WWW wygenerowaną

przez atakującego. W celu ochrony przed takim atakiem, podobnie jak w przypadku phishingu, stosuj aktualne oprogramowanie antywirusowe oraz zaporę sieciową (ang. firewall), aby uniemożliwić podmianę pliku zawierającego adresy stron najczęściej odwiedzanych. Jeśli zauważysz na stronie nieprawidłowości, różnice w stosunku do oryginalnej, skontaktuj się z administratorem lub właścicielem tej strony.

Rozdział 4.

Złośliwe oprogramowanie Niewątpliwie współcześnie największym zagrożeniem dla komputerów osobistych jest złośliwe oprogramowanie (ang. malware, malicious software). Jeszcze kilka lat temu zabezpieczenie komputera osobistego sprowadzało się do zainstalowania firewalla i programu antywirusowego. To w zasadzie wystarczało do zapewnienia sobie komfortu pracy i bezpieczeństwa swoich danych. Przy obecnym rozwoju Internetu i nowych technologii, takich jak sieci bezprzewodowe i bluetooth, to za mało. Złośliwe oprogramowanie przybiera tak różnorodne formy, że aby czuć się „bezpiecznie” (należy pamiętać, że nigdy tak naprawdę nie można się tak czuć), komputer musi zostać wyposażony w inne formy zabezpieczeń adekwatne do sposobów atakowania komputerów, które wykorzystuje ten rodzaj zagrożenia. Malware to ogólnie takie oprogramowanie, które wykonuje szkodliwe lub przestępcze działania wobec komputera użytkownika. Dla przykładu programy spyware szpiegują Twoje działania na komputerze (np. to, jakie strony odwiedzasz, do kogo piszesz e-maile, hasła, loginy, numery kont, jeżeli korzystasz z banku internetowego, historię wyszukiwanych stron itd.). Często także rozsyła spam i wyświetla reklamy. To wszystko oczywiście bez Twojej zgody i wiedzy. Każdego dnia powstają nowe formy złośliwego oprogramowania, zatem codziennie jesteśmy narażeni na nowe niebezpieczeństwo. Klasyfikując malware, możemy wyróżnić następujące jego formy:  Wirus — program, który powiela się bez zgody użytkownika. Wymaga nosiciela

w postaci programu wykonywalnego lub obszaru dysku, do którego się dołącza. Ze względu na różne rodzaje infekcji wirusy dzielą się m.in. na:  Wirusy gnieżdżące się w bootsektorze dysku twardego. Wzięły się stąd,

że dawniej system operacyjny był ładowany z dyskietki systemowej, z której odczytywany, ładowany do pamięci i wykonywany był kod zawarty w pierwszym sektorze (bootsektorze). Stwarzało to ogromne możliwości dla rozpowszechniania wirusów, których kod mógł być załadowany do pamięci przed załadowaniem systemu operacyjnego. Potem pojawiły się wirusy, które infekowały główny rekord startowy (ang. Master Boot Record — MBR), co powodowało ich uruchamianie przed załadowaniem systemu operacyjnego z dysku twardego.

78

13 najpopularniejszych sieciowych ataków na Twój komputer  Wirusy plikowe, infekujące pliki. Jest to najczęściej spotykany rodzaj wirusów.

Kod wirusa umieszcza się na początku pliku wykonywalnego. Po wykonaniu kodu wirusa plik, który jest jego nosicielem, zaczyna działać w sposób poprawny. Jest to sposób, który pozwala wirusom na ukrycie swojej obecności.  Wirusy EPO (ang. Entry-Point Obscuring — ukrywanie punktu wejścia)

to wirusy, które nie zmieniają ani adresu pierwszej wykonywanej instrukcji, ani jej samej. Zamiast tego w określonym miejscu kodu wykonują skok (np. poprzez instrukcję CALL) do innego fragmentu kodu.  Wirusy rezydentne, które pozostają w pamięci po zainicjowaniu swojego kodu,

zarażając wszystkie uruchamiane pliki wykonywalne. Ten rodzaj wirusów wyróżniano w systemach z rodziny DOS. Oczywiście w wielozadaniowym systemie, jakim jest na przykład Windows czy Linux, pojęcie programów rezydentnych nie ma sensu.  Wirusy towarzyszące — wirusy tworzące osobny plik wykonywalny

z własnym kodem i zastępujące nim plik z oryginalnym programem (który przechowywany był pod zmienioną nazwą lub usuwany na stałe z systemu). Jest to bardzo prymitywny rodzaj wirusa tworzony zazwyczaj przez początkujących programistów w językach wysokiego poziomu.  Robak — program samopowielający się, który w odróżnieniu od wirusa

nie potrzebuje programu nosiciela i sam rozprzestrzenia się za pomocą sieci komputerowej. Często powiela się pocztą elektroniczną (mailery i mass-mailery) w postaci załączników do wysyłanych losowo e-maili. Aby uniknąć robaków, należy instalować najnowsze poprawki i uaktualnienia systemu operacyjnego zalecane przez producenta oraz unikać otwierania załączników pochodzących z nieznanych źródeł.  Trojan, Trojan Horse (koń trojański) — program, który wykonuje w ukryciu

szkodliwe dla użytkownika operacje (np. otwiera odpowiedni port komputera, wykrada hasła, ściąga z sieci inne programy, zapisuje czynności przeprowadzane przez użytkownika), udając przy tym, że wykonuje inne pożyteczne funkcje. W celu zapewnienia ochrony komputera należy wystrzegać się uruchamiania programów pochodzących z niepewnych, nielegalnych źródeł. Trojany mogą także być rozsyłane przez niektóre robaki jako załączniki do wiadomości e-mail (rzekomo pochodzących od osób z Twojej książki adresowej).  Backdoor (tylne drzwi) — program pozwalający uzyskać w sposób zdalny

dostęp do komputera. Tworzy umyślnie lukę w zabezpieczeniach w celu jej późniejszego wykorzystania. Podobnie jak trojan, backdoor podszywa się pod pliki i programy, z których często korzysta użytkownik. Typowy backdoor otwiera port sieciowy na komputerze, na którym został uruchomiony, i nasłuchuje na nim, oczekując na polecenia, które może wykonać lokalnie (np. zmodyfikować rejestr czy uruchomić inny program). Backdoory często są rozsyłane takimi samymi metodami jak trojany, dlatego można się przed nimi zabezpieczyć w ten sam sposób.

Rozdział 4. ♦ Złośliwe oprogramowanie

79

 Spyware — oprogramowanie szpiegowskie zbierające informacje o osobach

i komputerach bez ich zgody i przekazujące je do autora spyware’a. Do tej kategorii zaliczyć należy:  wyskakujące okna (pop-ups): najczęściej znajdują się na stronach WWW

lub wewnątrz innych aplikacji, a ich celem jest nakłonienie użytkownika, aby je kliknął. Są nośnikiem reklam dobranych pod kątem profilu danego użytkownika,  ciasteczka (ang. tracing cookie) — identyfikują użytkownika korzystającego

z danej witryny WWW, ale także służą do śledzenia jego zwyczajów.  Exploit — specjalny program umożliwiający zdalne przejęcie kontroli nad

komputerem poprzez sieć, do czego wykorzystuje luki bezpieczeństwa w programach i systemach operacyjnych.  Rootkit — program, którego podstawowym zadaniem jest ukrywanie określonych

przez napastnika procesów w pamięci i plików na dysku. Rootkity są wykorzystywane do uzyskania pełnego dostępu do systemu i zazwyczaj rozpowszechniane w formie trojanów, backdoorów i innego rodzaju robaków udających funkcjonalności zwykłych programów lub bibliotek systemowych. Niektóre wersje potrafią nawet zagnieździć się w pamięci BIOS płyty głównej czy karty graficznej, przez co nawet formatowanie dysku twardego nic w takiej sytuacji nie da. Można wyróżnić następujące rodzaje rootkitów:  Kernel-mode rootkit — potrafi ukryć swoją obecność w wyniku podmiany

fragmentu kodu jądra. Tego typu rootkita można się nabawić, np. instalując sterowniki z nieznanego lub nielegalnego miejsca w sieci.  Application rootkit — podmienia pliki binarne aplikacji.  Memory-based rootkit — działa w pamięci operacyjnej komputera.  Persistent rootkit — zmienia wpisy w rejestrze systemu po to, żeby wywołać

niestabilną pracę systemu operacyjnego.  User-mode rootkit — może działać tylko w zakresie praw danego

użytkownika, na których często instaluje się w systemie.  Root-mode rootkit — korzysta z praw administratora systemu operacyjnego.

Z uwagi na stosowane przez rootkity mechanizmy maskowania obecności ich wykrycie zarówno w systemach Windows, jak i Linux nie jest łatwe. W dalszej części książki przedstawione są metody wykrywania i usuwania rootkitów.  Keylogger — program odczytujący i zapisujący wszystkie naciśnięte przez

użytkownika klawisze. W ten sposób gromadzi cenne informacje np. hasła.  Dialer — program łączący się poprzez dial-up z określonym numerem telefonu

bez wiedzy i zgody użytkownika. Najczęściej są to numery komercyjne o początku 0-700 lub numery zagraniczne.  Hijacker — program, który wymusza połączenie z określonym serwisem.

Na przykład Browser Hijacker modyfikuje ustawienia przeglądarki internetowej użytkownika, co może oznaczać zmianę domyślnej strony startowej.

80

13 najpopularniejszych sieciowych ataków na Twój komputer  Adware (ang. advertising software) — oprogramowanie wyświetlające reklamy.

Program tego typu z reguły sprawdza i monitoruje strony WWW odwiedzane przez użytkownika i w ten sposób dostosowuje treści reklam do konkretnych zainteresowań. W ten sposób nie tylko zajmuje pasmo transmisyjne, ale przede wszystkim narusza prywatność użytkownika. Nowoczesne programy antywirusowe wykrywają te aplikacje jako niebezpieczne programy. W celu uniknięcia ich potencjalnie szkodliwego działania nie należy instalować programów, które w umowie licencyjnej mają zapis o gromadzeniu danych o użytkowniku bądź wyświetlaniu reklam.

4.1. Atak 8: malware — infekcja z sieci komputerowej Najczęstszą drogą zainfekowania komputera złośliwym oprogramowaniem jest Internet. Poniżej przedstawione są sposoby ochrony, jak i metody walki z malware, jeśli Twój system jest już zarażony.

Zapora sieciowa1 Zacznijmy od firewalla, który jest jedną z metod ochrony przed atakami sieciowymi. Zabezpieczanie systemu Windows przed atakami z sieci było do niedawna nie lada wyzwaniem. Brakowało narzędzi, usług systemowych i przede wszystkim informacji od producenta systemu — firmy Microsoft. System Windows 2000 nie miał jeszcze wbudowanej zapory sieciowej, był to jednak pierwszy system z tej rodziny wyposażony w filtr pakietów TCP/IP. Aby go uruchomić, należy otworzyć folder Połączenia sieciowe i telefoniczne, wybrać właściwości połączenia, które ma być zabezpieczane. Następnie zaznaczyć składnik Protokół internetowy (TCP/IP) i kliknąć przycisk Właściwości. W nowo otwartym oknie kliknąć Zaawansowane i w kolejnym oknie wybrać kartę Opcje. Zaznaczyć Filtrowanie TCP/IP i kliknąć przycisk Właściwości. Zaznaczyć opcję Włącz filtrowanie TCP/IP. W nowo otwartym oknie (zobacz rysunek 4.1) mamy możliwość wprowadzenia definicji portów TCP/UDP, w których będzie dopuszczalny ruch sieciowy. Niestety, konfiguracja jest uciążliwa, ponieważ nie ma żadnych predefiniowanych ustawień i numery portów trzeba wpisywać ręcznie. Jest to nieskomplikowane rozwiązanie, jednak niezbyt intuicyjna konfiguracja (szczególnie dla zwykłego użytkownika) nie ułatwiała zadania, a mogła czasami odstraszać. Dodatkowo filtrowanie pakietów można tu włączać jedynie dla połączeń LAN, połączenia dial-up nie są obsługiwane. Nie ma też możliwości rejestrowania zdarzeń.

1

Używa się również pojęć firewall, zapora ogniowa bądź zapora przeciwogniowa.

Rozdział 4. ♦ Złośliwe oprogramowanie

81

Rysunek 4.1. Konfiguracja filtra TCP/IP w Windows 2000

Innym sposobem jest w Windows 2000 konfiguracja zasad IPSec, która jednak też może wykraczać poza wiedzę zwykłego użytkownika. Zatem większość osób korzystających z systemów rodziny Windows stosuje zazwyczaj rozwiązania firm trzecich lub w przypadku systemu Windows XP i nowszych samego Microsoftu. Należy jednak pamiętać, iż zapora w Windows XP (ang. Internet Connection Firewall, ICF) to też nic innego jak możliwość blokady portów i usług. Włączanie zapory w Windows XP pokazane jest na rysunku 4.2. Rysunek 4.2. Uruchamianie zapory w Windows XP

82

13 najpopularniejszych sieciowych ataków na Twój komputer

Jeśli korzystasz z notebooka i często zmieniasz miejsce pobytu, podłączając się do sieci w różnych, nie zawsze bezpiecznych miejscach np. kawiarenkach, na lotniskach, lepiej zaznaczyć również opcję Nie zezwalaj na wyjątki. Z kolei na rysunku 4.3 pokazano, jak włączyć lub wyłączyć zaporę na konkretnym połączeniu sieciowym. Rysunek 4.3. Ustawianie zapory dla konkretnego połączenia sieciowego w Windows XP

ICF występuje w obu wersjach Windows XP (Home i Professional). Może ściśle współpracować z Internet Connection Share (ICS). W sieciach firmowych oba są raczej mało użyteczne ze względu na brak możliwości centralnego zarządzania ustawieniami ICF w wielu stacjach roboczych. Pierwsze komercyjne osobiste firewalle tzw. personal firewalls były dość kosztownym oprogramowaniem, ponadto trudnym do skonfigurowania i zarządzania. Zresztą i współczesne, np. Outpoost Firewall Pro, który jest uważany za jeden z lepszych firewalli, nadal są stosunkowo trudne w konfiguracji. Z kolei darmowe zapory sieciowe (np. Zone Alarm, Sygate Personal Firewall czy Tiny Personal Firewall), łatwiejsze w konfiguracji, pozostawiają dużo do życzenia w kwestiach bezpieczeństwa i stabilności samego systemu operacyjnego. W jednym systemie nie może działać więcej niż jeden firewall. Zainstalowanie kilku takich programów w systemie może być równoznaczne z sytuacją, w której system nie ma żadnego firewalla, albo tak obciążyć system, że nie będzie się dało na nim pracować. Podobnie jest zresztą z programami antywirusowymi.

Rozdział 4. ♦ Złośliwe oprogramowanie

83

Bardzo ważną rzeczą, o której należy pamiętać, konfigurując osobistą zaporę, jest tworzenie oddzielnych profili dla połączeń lokalnych wykorzystujących adresy prywatne (np. sieci 192.168.0.0 do 192.168.255.0). Takie połączenia w przypadku sieci domowych mogą być skonfigurowane na zaporze sieciowej jako zaufane. Jeśli jednak Twoim komputerem przenośnym będziesz się wpinać do różnych sieci wykorzystujących te same klasy adresów prywatnych, to bez odrębnego profilu Twoja zapora sieciowa będzie w takim przypadku po prostu „dziurawa”. Nie jest ona bowiem w stanie stwierdzić, czy w danej chwili filtruje ruch w sieci domowej, czy też nie, bazując tylko na tym samym adresowaniu IP. Zatem to, że jesteś bezpieczny w domu, wcale nie oznacza, że wycieczka do innej sieci nie zakończy się przyniesieniem do domu niepożądanych gości w postaci wirusów czy koni trojańskich.

Istnieją programy dla Windows XP (niestety, większość jest komercyjnych), które pozwalają użytkownikom laptopów konfigurować i zapisywać ustawienia dla różnych sieci (pomiędzy którymi się przemieszczają) w oddzielnych profilach. Zamiast uciążliwego i niewygodnego ręcznego dopasowywania ustawień sieciowych do nowego otoczenia, wystarczy wybrać skonfigurowany wcześniej profil. Co więcej, ze względów bezpieczeństwa możesz wybrać dla własnej sieci domowej jakiś mniej spotykany adres sieci np. 172.27.0.0 lub 192.168.193.0, który będzie zaufany dla Twojego firewalla, a podpinając się do innych sieci, będziesz mógł wykorzystać inny profil (zdefiniowany wcześniej dla danej sieci), który będzie filtrowany na Twoim firewallu (w takiej konfiguracji bardzo dobrze sprawdza się firewall CHX opisany w dalszej części tego rozdziału). Jednym z nieodpłatnych (ale tylko pod warunkiem niekomercyjnego wykorzystywania) programów tego typu jest NetSetMan (www.netsetman.com). Z aplikacji komercyjnych dość ciekawym rozwiązaniem może być Mobile Net Switch (www.mobilenetswitch.com) lub Network Configuration Management (www.missilesoft.net). Pierwszy z nich kosztuje w chwili pisania książki 24 euro (licencja dla jednego użytkownika), a drugi 29,95 euro.

NetSetMan NetSetMan jest prostym menadżerem ustawień sieciowych, pozwalającym zdefiniować sześć profili. Dla każdego z nich można ustawić dla danej karty sieciowej m.in.:  adres IP,  maskę podsieci,  domyślną bramkę,  adresy serwerów DNS,  nazwę komputera,  nazwę grupy roboczej,  domenę DNS,  serwer WINS.

Przykład definicji profilu został pokazany na rysunku 4.4. Przycisk Ustaw służy do wprowadzania ustawień z aktualnej zakładki do systemu.

84

13 najpopularniejszych sieciowych ataków na Twój komputer

Rysunek 4.4. Definicja profilu w programie NetSetMan

Każdy profil zapisany jest w oddzielnej sekcji w pliku settings.ini w katalogu instalacyjnym programu. Fragment pliku zawierający ustawienia z rysunku 4.4 pokazano na listingu 4.1. Listing 4.1. Fragment profilu z pliku settings.ini dla ustawień z rysunku 4.4 [Settings] Language=pl Top=200 Left=200 CurrentTab=1 CurrentCat=0 [0] name=SET1 ShowInTray=1 AdapterID={F5DE62AD-4519-4506-A565-FE80CEEC1603} IPList=172.27.99.99:255.255.0.0| GatewayList=172.27.99.1| DNSList=172.27.99.1| WINSList= IPradio=1 DNSradio=1 chkIP=0 chkDNS=0 chkComputername=1 chkWorkgroup=0 chkDNSDomain=0 chkWINS=0 chkScript=0 chkPrinter=0 chkNetDrive=0 ComputerName=komputer Workgroup= DNSDomain= PrinterName=HP DeskJet 890C

Rozdział 4. ♦ Złośliwe oprogramowanie

85

Mobile Net Switch Program podobnie jak poprzednik zapisuje ustawienia sieci w profilach, ale pozwala zdefiniować więcej niż sześć profili, a także ma dużo więcej opcji. Pozwala zdefiniować m.in.:  adresację IP,  ustawienia dla sieci WiFi,  serwer proxy,  mapowanie dysków sieciowych,  strefę czasową,  ustawienia pulpitu,  ustawienia przeglądarki internetowej.

Program nie wymaga uprawnień administratora i pracuje zarówno w systemie Windows XP, jak i Windows Vista. Przy pierwszym uruchomieniu program zapyta, czy ma się uruchamiać przy starcie systemu (rysunek 4.5). Rysunek 4.5. Pierwsze uruchomienie programu Mobile Net Switch

Żeby zdefiniować nowy profil, należy wybrać przycisk Add i podać nazwę profilu (zobacz rysunek 4.6). Po lewej stronie głównego okna znajdują są zakładki, dla których można definiować poszczególne parametry np. Network, Internet, System. Dla zakładki Network na rysunku 4.7 przedstawione zostały przykładowe ustawienia dla karty bezprzewodowej. Na rysunku 4.8 pokazano parametry dla zakładki Internet, gdzie można zdefiniować np. adres strony startowej Twojej przeglądarki internetowej. Przycisk Activate służy do zatwierdzenia ustawień.

86

13 najpopularniejszych sieciowych ataków na Twój komputer

Rysunek 4.6. Tworzenie nowego profilu

Rysunek 4.7. Ustawienia sieciowe

Rozdział 4. ♦ Złośliwe oprogramowanie

87

Rysunek 4.8. Ustawienie strony startowej

Skoro już wiesz, jak stworzyć własny profil sieci i jak ten profil szybko uaktywniać, zobaczmy, w jaki sposób powiązać to z bezpieczeństwem Twojego komputera, czyli z firewallem. Możesz wykorzystać w tym celu program CHX-I, w którym podobnie jak w przypadku firewalli dla systemów Linux masz możliwość tworzenia własnych reguł filtrowania. W połączeniu ze switchem zmieniającym Twoje ustawienia sieciowe możesz w prosty i skuteczny sposób stworzyć środowisko, w którym po przyłączeniu się laptopem do danej sieci automatycznie Twój firewall będzie Cię chronił, sprawdzając odpowiednie reguły filtrujące. Dla przykładu załóżmy, że w domu podłączony jesteś do własnej sieci LAN, ale często podpinasz swój laptop (a dokładniej ten sam interfejs sieciowy co w domu) również w pracy. Zakładasz, że w domu jesteś bezpieczny w swojej wewnętrznej sieci, natomiast w pracy chciałbyś korzystać z sieci firmowej, jak i Internetu, a jednocześnie nie zezwalać na nawiązywanie połączeń z Twoim komputerem. Nie będziemy tu opisywali tworzenia firewalla dla karty sieciowej podłączonej do Internetu. W Net Mobile Switch można utworzyć dwa oddzielne profile ustawiane w zależności od miejsca, w którym się znajdujesz. Na rysunku 4.9 i 4.10 pokazano dwie konfiguracje dla sieci domowej i dla sieci firmowej. Następnie należy odpowiednio skonfigurować firewall CHX. Zacznijmy od krótkiego przeglądu najważniejszych opcji i ustawień. Główne okno konsoli pokazano na rysunku 4.11 z wybraną pozycją Active Network Processes.

88

13 najpopularniejszych sieciowych ataków na Twój komputer

Rysunek 4.9. Profil dla sieci domowej

Rysunek 4.10. Profil dla sieci w pracy

Rozdział 4. ♦ Złośliwe oprogramowanie

89

Rysunek 4.11. Okno konsoli służące do zarządzania firewallem

Pozycja Active Network Processes wyświetla aktywne procesy sieciowe uruchomione na Twoim komputerze. Rozwinięcie opcji Services Status pozwala zobaczyć stan zainstalowanych usług Twojego firewalla. Z kolei rozwijając opcję Logs, uzyskamy dostęp do dzienników, w których znajduje się zapis pracy filtrów. Pliki te tworzą się automatycznie i mogą być dowolnie usuwane. Najważniejszą dla nas opcją jest Packet Filters (Global). Wyświetla ona listę dostępnych interfejsów sieciowych. Podczas konfiguracji firewalla będzie nas interesował interfejs karty sieciowej, za pomocą której przyłączamy się do sieci lokalnej (w przykładzie Local Area Conection). Na rysunku 4.12 pokazano stan firewalla dla karty z adresem Twojej sieci domowej. Jak widać na rysunku 4.12, lista reguł jest pusta. Z kolei na rysunku 4.13 pokazano listę przykładowych reguł, jakie można utworzyć dla interfejsu przyłączonego do sieci w pracy. Bardzo istotny jest tu fakt, iż firewall CHX potrafi tworzyć niezależne listy reguł dla każdego adresu IP danego interfejsu fizycznego. W ten sposób po przełączeniu profilu w Net Mobile Switch od razu zostaną zastosowane odpowiednie reguły filtrowania po zmianie adresu IP na karcie sieciowej. Filtr z rysunku 4.13 chroni Cię m.in. przed pakietami ze sfałszowanymi adresami źródłowymi IP (pierwsze trzy reguły dla pakietów przychodzących — kolumna Direction z wartością Incoming). Kolejna reguła pozwala na wykorzystywanie serwera FTP, który znajduje się na Twoim komputerze. To jest oczywiście reguła opcjonalna. Kolejne pięć reguł to zezwolenie na odbiór pewnych komunikatów informacyjnych ICMP. Jednym z nich jest ICMP Echo Reply. Reguły te zostały dodane, ponieważ następna ICMP — zabroń nie

90

13 najpopularniejszych sieciowych ataków na Twój komputer

Rysunek 4.12. Konfiguracja firewalla dla sieci domowej

Rysunek 4.13. Konfiguracja firewalla dla sieci w pracy

zezwala na żaden ruch ICMP. W ten sposób nie pozwalamy nikomu pingować naszego interfejsu, jednocześnie zostawiając sobie możliwość wysyłania pakietów PING. Kolejna reguła pozwala korzystać z serwera DNS, następna blokuje ruch na portach charakterystycznych dla pewnych znanych zagrożeń. Ostania zdefiniowana reguła blokuje cały ruch przychodzący TCP. Oczywiście jest to tylko przykład reguł filtrowania mający na celu pokazanie, jak takie filtry z udziałem CHX budować. Każdy musi sobie sam skonfigurować firewalla odpowiednio do swoich potrzeb.

Rozdział 4. ♦ Złośliwe oprogramowanie

91

Pokażmy zatem na przykładzie dwóch reguł, jak je utworzyć. Aby dodać filtr, klikamy prawym przyciskiem myszy wybrany interfejs w lewym panelu okna, z podręcznego menu wybieramy New/New Filter (zobacz rysunek 4.14).

Rysunek 4.14. Tworzenie nowej reguły filtrującej

Otworzy się okno edycji filtru (zobacz rysunek 4.15). Rysunek 4.15. Okno edycji filtru

92

13 najpopularniejszych sieciowych ataków na Twój komputer

Poniżej przedstawiono krótki opis parametrów:  File decription — opis filtra, informacja przydatna dla użytkownika,

informująca jak działa dana reguła.  Filter action type — rodzaj akcji podejmowanej przez filtr. Do wyboru mamy:

Force Allow — przepuszcza wszystko bez wyjątku, Allow (Deny All Except) — pozwala na przepływ zdefiniowanych niżej pakietów, Deny — zabrania przepływu zdefiniowanych niżej pakietów.  Packets’ direction — kierunek pakietów. Do wyboru jest: Incoming

— przychodzące z zewnątrz sieci, Outgoing — wychodzące na zewnątrz sieci.  Protocol — rodzaj protokołu, po którym filtrujemy pakiety.  Packets’ Source — tu podajemy adresy źródłowe IP.  Packets’ Destination — tu podajemy adresy docelowe IP.

Na rysunku 4.16 pokazano przykład reguły zezwalającej na odbieranie pakietów ICMP Echo Reply. Rysunek 4.16. Przykładowa reguła dla protokołu ICMP

Rozdział 4. ♦ Złośliwe oprogramowanie

93

Powyższy filtr wymaga podania typu i kodu dla pakietu ICMP. Do tworzenia takich reguł potrzebna jest pewna wiedza na temat protokołów sieciowych. Na rysunku 4.17 pokazano również filtr pozwalający odbierać ruch powrotny z serwera DNS. Rysunek 4.17. Przepuszczamy ruch powrotny z serwera DNS

Na rysunku poniżej pozwalamy, aby ruch TCP lub UDP (TCP+UDP) przychodzący do naszej karty (Incoming) z portu źródłowego 53 na port docelowy z zakresu 1023-6000 został przepuszczony przez regułę. Na wybrany interfejs możemy załadować reguły z pliku (z rozszerzeniem *.sfd). Wybieramy w tym celu Import filters from file z menu kontekstowego rozwiniętego po kliknięciu prawym przyciskiem myszy naszego interfejsu sieciowego (zobacz rysunek 4.14) i wskazujemy odpowiedni plik SFD. Również utworzone przez nas filtry możemy zapisać na dysku w pliku. Należy zaznaczyć wybrane reguły, następnie kliknąć je prawym przyciskiem myszy i z podręcznego menu wybrać Export in a new file, jeśli mają być zapisane w nowym pliku SFD, lub Export & Append to an existing file, aby dopisać wybrane filtry do wcześniej utworzonego pliku z filtrami.

94

13 najpopularniejszych sieciowych ataków na Twój komputer

W menu podręcznym dla każdej reguły mamy jeszcze do wyboru opcję Enable pozwalającą uaktywnić dany filtr i Disable służącą do wyłączania danego filtra w trakcie działania usługi. Jest to bardzo przydatne podczas testowania reguł i pozwala sprawdzać reguła po regule, czy Twój firewall zachowuje się poprawnie.

Pakiety bezpieczeństwa (pakiety ochronne) Aby ochrona komputera była kompletna, powinieneś zainstalować jeszcze program antywirusowy, program antyspamowy, program zwalczające spyware, program anty adware i system detekcji intruzów (ang. intrusion detecion system). Prawdziwym problemem jest wybór programów, bo jest ich na rynku bardzo dużo. Pewną pomocą mogą służyć tu rozmaite rankingi, choć nie można im bezkrytycznie ufać. Jak dobrać programy, aby w całości stanowiły one kompleksowe zabezpieczenie, a przy okazji żeby Twój komputer nie zaczął pracować wolniej? Niestety, nie jest to sprawa prosta. Z pomocą mogą Ci przyjść tzw. pakiety bezpieczeństwa (zwane Internet Security), które mają wbudowane większość lub wszystkie narzędzia służące do kompletnej ochrony systemu. Przy czym należy tutaj również uważać i zdecydowanie przyjąć zasadę, iż program komercyjny będzie na pewno lepiej spełniał swoje zadania niż program typu freeware. W większości przypadków programy Internet Security mają następujące moduły:  moduł antywirusowy,  moduł firewall,  moduł antyspamowy,  moduł wykrywania rootkitów,  moduł anti-spyware.

Dodatkowo można się spotkać także z dodatkowymi funkcjami jak np.:  Anti-Leak, czyli ochrona przed znanymi metodami obchodzenia firewalli,  IDS służący do wykrywania ataków sieciowych,  ochrona przed wyciekami danych, zabezpieczająca przed wysyłaniem danych,

o których program wie, że są prywatne (np. numery kart kredytowych),  filtrowanie zawartości, czyli blokowanie dostępu do stron internetowych

o niepożądanych treściach. Producenci tego typu oprogramowania prześcigają się w zapewnieniach, że ich produkt potrafi już wszystko, począwszy od wykrywania wirusów, szpiegów i phishingu, kończąc na ochronie proaktywnej i wykrywaniu rootkitów. Nawet testy przeprowadzane przez takie organizacje jak Virus Bulletin (http://www.virusbtn.com) nie dają pełnej wiedzy o tym, który z nich jest najlepszy. Wynika to z faktu, że nawet najlepsze testy nie sprawdzą reakcji takiego pakietu ochronnego na nowe zagrożenia, które przecież pojawiają się z dnia na dzień. Ponadto produkt, który bardzo dobrze pełni funkcję np. programu antywirusowego, wykaże się słabymi wynikami w innej roli np. firewalla. Inną ważną rzeczą, którą trzeba wziąć pod uwagę przy wyborze tego typu programu,

Rozdział 4. ♦ Złośliwe oprogramowanie

95

jest czas reakcji producenta na nowy typ ataku. Ochrona proaktywna i analiza heurystyczna próbują chronić system przed właśnie takimi nowymi zagrożeniami poprzez wykrycie podejrzanego ruchu. Zapory sieciowe w takich programach też bez dodatkowej własnej konfiguracji nie zawsze wykrywają np. połączenia nawiązywane przez aplikacje Twojego komputera. Najlepsza metoda obrony to częste aktualizacje systemu i zdrowy rozsądek przy korzystaniu z sieci. Otwieranie pliku nieznanego pochodzenia, ściągniętego z sieci peer-to-peer to przykład możliwości łatwego zainfekowania i po prostu braku wyobraźni. Często w takim przypadku można np. skorzystać z maszyny wirtualnej i tam sprawdzić, z czym mamy do czynienia.

Skanery do wykrywania wirusów, trojanów i spyware Jednym z lepszych darmowych skanerów służących do wykrywania różnego rodzaju „robactwa” jest Hitman Pro (http://www.hitmanpro.nl/hitmanpro/), którego główne okno jest przedstawione na rysunku 4.18.

Rysunek 4.18. Hitman Pro w akcji

96

13 najpopularniejszych sieciowych ataków na Twój komputer

Systemy wykrywania intruzów IDS System wykrywania włamań IDS to kolejny element ochrony Twojego komputera. Celem systemu IDS jest zidentyfikowanie niebezpiecznych działań zachodzących w sieci, a skierowanych przeciwko Twojemu komputerowi. Do zagrożeń takich można zaliczyć nieudaną próbę ataku lub przygotowanie włamania do systemu np. poprzez skanowanie portów. Z punktu widzenia systemów IDS można wyróżnić trzy kategorie ataków:  Rozpoznawanie celu, czyli skanowanie portów, zbieranie informacji o rodzaju

i wersji systemu operacyjnego. Takie działanie poprzedza z reguły właściwy atak. Służy zgromadzeniu informacji o słabych i niezabezpieczonych punktach systemu operacyjnego, jak i uruchomionych na nim usług.  Właściwy atak przeprowadzany w celu włamania się do komputera.  Ataki DDoS mające na celu unieruchomienie usług lub całej maszyny.

IDS rozpoznaje podejrzany ruch sieciowy na podstawie skanowania pakietów i sprawdzania, czy ich zawartość lub pewien ich ciąg pasuje do zdefiniowanych tzw. sygnatur (podobnie jak w przypadku systemów antywirusowych). Sygnatura zawiera niejako opis znanych ataków czy anomalii w ruchu sieciowym. Wykrywanie ataków opiera się w systemach IDS na:  dopasowywaniu wzorców (sygnatur),  badaniu częstotliwości zdarzeń i przekraczania pewnych limitów

w jednostce czasu,  analizie statystycznej. W systemie można stworzyć profil opierający się

na podstawowych codziennych działaniach danego użytkownika korzystającego z sieci, a następnie porównywaniu aktualnego zachowania ze zdefiniowanym wcześniej wzorcem. Do ochrony komputera osobistego możemy wykorzystać program Snort. Jest to darmowy system IDS, który może pracować pod kontrolą systemów Unix, Linux i Windows. Żeby uruchomić go w systemie Windows, wymagane jest zainstalowanie biblioteki WinPCap (Windows Packet Capture Library) przynajmniej w wersji 3.1, która służy do przechwytywania pakietów sieciowych w środowisku Windows. Jest ona odpowiednikiem linuksowej biblioteki libpcap. Bibliotekę w wersji instalacyjnej można pobrać ze strony http://www.winpcap.org/install/default.htm. Ostatnią stabilną wersją w chwili pisania książki była wersja 4.0.2. Plik instalacyjny Snorta dla wersji Windows można pobrać pod adresem http:// ´www.snort.org/dl/binaries/win32/. Podczas instalacji zostaniesz poproszony o wybór bazy danych, w której Snort będzie zapisywał wyniki swoich działań. W oknie przedstawionym na rysunku 4.19 należy zostawić zaznaczoną opcję I do not plan to log to a database, or I am planning to log to one of the databases listed above, gdyż zapewne nie masz bazy danych Oracle czy Microsoft SQL Server na swoim komputerze.

Rozdział 4. ♦ Złośliwe oprogramowanie

97

Rysunek 4.19. Okno wyboru bazy danych dla logów Snorta

Instalację wykonujemy w domyślnym katalogu c:\Snort. Aby skorzystać z gotowych reguł dla Snorta, możemy je pobrać ze strony http://www.snort.org/vrt/. Trzeba jednak wcześniej dokonać krótkiej wymaganej rejestracji. Pobrane reguły (snortrules-snapshot´-2.8.tar.gz) trzeba po rozpakowaniu umieścić w katalogu c:\Snort\rules. Następnie musisz wprowadzić kilka zmian w konfiguracji domyślnej Twojego systemu IDS, m.in. w celu wskazania miejsca reguł Snorta. W tym celu należy edytować plik konfiguracyjny c:\Snort\etc\snort.conf i: Zamienić poniższe wiersze: var RULE_PATH ../rules var PREPROC_RULE_PATH ../preproc_rules

na następujące: var RULE_PATH c:\Snort\rules var PREPROC_RULE_PATH c:\Snort\rules

Włączyć wiersz (czyli usunąć znak # na początku wiersza): config detection: search-method lowmem

Opcja ta powoduje ustawienie mocy silnika detekcji: w tym przypadku małe zużycie pamięci, słabe przetwarzanie. Zamienić poniższy wiersz: dynamicpreprocessor directory /usr/local/lib/snort_dynamicpreprocessor/

na następujący: dynamicpreprocessor directory c:\Snort\lib\snort_dynamicpreprocessor

98

13 najpopularniejszych sieciowych ataków na Twój komputer

Opcja ta wskazuje katalog z preprocesorami ładowanymi dynamicznie. Preprocesory to moduły Snorta odpowiedzialne za wstępną analizę pakietu pod kątem danego zagrożenia. Zamienić poniższy wiersz: dynamicengine /usr/local/lib/snort_dynamicengine/libsf_engine.so

na następujący: dynamicengine c:\Snort\lib\snort_dynamicengine\sf_engine.dll

Zamienić poniższy wiersz: include classification.config

na następujący: include c:\Snort\etc\classification.config

Opcja ta zawiera klasyfikatory rodzajów ataków z nadanym priorytetem zagrożenia. Zamienić poniższy wiersz: include reference.config

na następujący: include c:\Snort\etc\reference.config

Opcja ta definiuje adresy URL, odnośniki do słów kluczowych zawartych w regułach. Zamienić poniższy wiersz: # include threshold.conf

na następujący: include c:\Snort\etc\threshold.conf

Opcja ta włącza metody postępowania z fałszywymi alarmami. Można również zmodyfikować poniższe wiersze, wpisując konkretne adresy IP sieci zamiast słowa any oznaczającego wszystkie sieci: var HOME_NET any var EXTERNAL_NET any

Pierwsza opcja określa adres sieci lokalnej, druga adres sieci zewnętrznej. Można również skorzystać z gotowego pliku snort.conf znajdującego się na płycie dołączonej do książki. Program może pracować w trzech trybach:  sniffera,  programu logującego ruch sieciowy,  systemu NIDS.

Rozdział 4. ♦ Złośliwe oprogramowanie

99

W celu sprawdzenia poprawności uruchamiania i działania programu możesz skorzystać na wstępie z trybu sniffera. W tym celu należy: 1. Uruchomić konsolę cmd.exe. 2. Zmienić katalog: cd c:\Snort\bin. 3. Zidentyfikować karty sieciowe w systemie. Do uruchomienia Snorta

potrzebny będzie numer karty sieciowej zwracany przez polecenie: snort -W (zobacz rysunek 4.20). Rysunek 4.20. Sprawdzenie dostępnych kart sieciowych

4. Uruchomić Snorta na odpowiednim interfejsie: snort -v -i

(zobacz rysunek 4.21). Rysunek 4.21. Uruchomienie Snorta w trybie sniffer

Teraz uruchomimy Snorta w trybie systemu detekcji intruzów. Należy w tym celu wykorzystać opcję -c i podać po niej ścieżkę do pliku snort.conf. Należy również określić ścieżkę do katalogu log, w którym będą tworzone pliki z logami. Przykładowe uruchomienie pokazano na rysunku 4.22.

100

13 najpopularniejszych sieciowych ataków na Twój komputer

Rysunek 4.22. Uruchomienie Snorta w trybie IDS

Gdybyś teraz z innego komputera dla przykładu przeprowadził skanowanie portów np. programem nmap (zobacz rysunek 4.23), w pliku c:\Snort\log\alert.id powinny pojawić się zapisy podobne do tych z listingu 4.2. Listing 4.2. Fragment pliku c:\Snort\log\alert.id po wykonaniu skanowania portów 03/29-20:12:33.393402 [**] [1:469:4] ICMP PING NMAP [**] [Classification: Attempted ´Information Leak] [Priority: 2] {ICMP} 192.168.127.131 -> 192.168.127.1 03/29-20:12:34.270805 [**] [122:1:0] (portscan) TCP Portscan [**] [Priority: 3] ´{PROTO:255} 192.168.127.131 -> 192.168.127.1

Rysunek 4.23. Przykład skanowania portów w programie nmap

Rozdział 4. ♦ Złośliwe oprogramowanie

101

Po przerwaniu działania programu Snort (klawisze Ctrl+C) wyświetla on jeszcze w konsoli użyteczne statystyki. Przykład fragmentu statystyk pokazano na rysunku 4.24. Rysunek 4.24. Statystyki programu Snort wyświetlone po zakończeniu działania

Istnieje również możliwość uruchomienia Snorta jako usługi systemowej, która będzie się automatycznie uruchamiała przy starcie systemu. Zwolni Cię to z konieczności ręcznego i zapewne uciążliwego uruchamiania programu za każdym razem po włączeniu komputera. Pierwsza rzecz, jaką trzeba zrobić, to zainstalować Snorta jako usługę (zobacz rysunek 4.25): snort /SERVICE /INSTALL -i 2 -c c:\Snort\etc\snort.conf -l c:\Snort\log

Rysunek 4.25. Uruchomienie Snorta jako usługi systemowej

Następnie należy z menu Start wybrać Panel sterowania/Narzędzia administracyjne/Usługi. Na liście usług trzeba odnaleźć pozycję Snort (zobacz rysunek 4.26).

Rysunek 4.26. Usługa Snort

102

13 najpopularniejszych sieciowych ataków na Twój komputer

Teraz klikamy pozycję Snort i w wyświetlonym oknie (zobacz rysunek 4.27) zmieniamy sposób uruchamiania na Automatyczny, zapamiętujemy zmianę, klikając Zastosuj, wybieramy Uruchom. Od tej pory usługa będzie uruchamiana zawsze przy starcie systemu Windows. Rysunek 4.27. Automatyczne uruchamianie Snorta

4.2. Atak 9: malware — infekcja z pendrive’a Inną drogą przedostania się do systemu wirusa, robaka czy konia trojańskiego są karty pamięci, płyty CD i DVD oraz pamięci USB, czyli tzw. pendrive’y. Szczególnie te ostanie mogą być przyczyną sporych problemów ze względu na włączoną domyślnie w systemie Windows funkcję autoodtwarzania. Może być ona przyczyną wprowadzenia do systemu różnego rodzaju szkodników, przeważnie robaków z urządzenia przenośnego, jakim jest pendrive. Jeśli pendrive jest zainfekowany, to po podpięciu go do komputera może natychmiast zainfekować dyski twarde peceta. Zapis infekcji można znaleźć w plikach autoodtwarzania autorun.inf. Dopisany tam szkodnik jest automatycznie uruchamiany, po czym przekopiowuje on pliki z pendrive’a na dysk twardy, tworząc podobne pliki autorun.inf, ale dla dysków twardych. Powoduje to przypisanie im funkcji autoodtwarzania, a co za tym idzie, automatyczną reinfekcję w chwili otwierania dysku. Należy zwrócić uwagę, iż nie

Rozdział 4. ♦ Złośliwe oprogramowanie

103

wszystkie pliki autorun.inf są szkodliwe. Wiele programów z nich korzysta np. płyty CD z grami czy instalatorami programów. Groźne są te pliki autorun.inf, które są umieszczone w głównym katalogu dysku twardego oraz na zarażonym nośniku przenośnym. Pliki autorun.inf mają swoje odwołania w odpowiednich wpisach w rejestrze w kluczu: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ Explorer\MountPoints2 Jest to klucz mapowania wszystkich dysków. Szkodniki dodają swoje zapisy, które powodują, że konkretna akcja autoodtwarzania staje się domyślną akcją dla tych dysków. Jednym ze skutków obecności ukrytych plików autorun.inf na dyskach jest problem z ich bezpośrednim otwieraniem w Moim komputerze. Na przykład po kliknięciu dysku jest zwracany błąd dostępu. Jeśli usunie się natomiast plik szkodnika z dysku, mogą się pojawić takie niespodzianki jak informacja, że system Windows nie może znaleźć jakiegoś pliku systemowego np. pliku copy.exe (zobacz rysunek 4.28).

Rysunek 4.28. Problem z odnalezieniem pliku

Przykładem infekcji z pendrive’a może być problem z fałszywym folderem Kosza. Stoi za nim koń trojański pod nazwą Trojan.Win32.VB.aqt. Objawia się tym, że po włożeniu pendrive’a pojawia się plik autorun.inf ze ścieżką Recycled\ctfmon (listing 4.3). Listing 4.3. Zawartość pliku autorun.inf KOD [AutoRun] shellexecute=Recycled\Recycled\ctfmon.exe shell\Open(&O)\command=Recycled\Recycled\ctfmon.exe shell=Open(&0)

Następstwem tego jest utworzenie fałszywego Kosza w postaci folderu RECYCLED. Ciekawostką jest to, że w systemie plików NTFS nazwa prawdziwego folderu Kosza to RECYCLER, ale na partycjach FAT32 folder Kosza ma dokładnie taką samą nazwę jak tworzony przez szkodnika, czyli RECYCLED. Plik szkodnika jest uruchamiany z Kosza D:\Recycled\ctfmon.exe, gdzie D to odpowiednia litera dysku, lub z folderu Autostart. Należy uważać, żeby nie pomylić go z plikiem systemowym odpowiedzialnym za pasek językowy, który znajduje się w C:\WINDOWS\system32\ctfmon.exe. Jednym z najlepszych programów pozwalających na wykrycie tego typu złośliwego oprogramowania jest HijackThis. Program umożliwia np. wyszukanie komponentów takich jak dodatkowe paski narzędzi (toolbars), kontrolki ActiveX, dialery, programy

104

13 najpopularniejszych sieciowych ataków na Twój komputer

szpiegujące. Wyniki wyszukiwania są prezentowane w postaci logu. Każdy z wykrytych wpisów, komponentów czy programów można naprawić bądź usunąć. Okno programu przy pierwszym uruchomieniu po instalacji wygląda tak jak na rysunku 4.29. Rysunek 4.29. Okno programu HijackThis

Do wyboru mamy dwie główne metody: skanowanie systemu z zapisem loga (Do a system scan and save a logfile) lub tylko skanowanie systemu (Do a system scan only). Przykład skanowania pokazany jest na rysunku 4.30. Bardzo ważną rzeczą jest to, że wyniki skanowania nie wskazują jednoznacznie, czy dany wpis jest błędny, czy nie. Wymaga on od użytkownika analizy takiego wpisu (Info a selected item...). Jest też możliwość naprawienia problemu poprzez wybór przycisku Fix checked. Mając już wiedzę na temat jakiegoś szkodnika w systemie, można również użyć innych programów, które potrafią usunąć pliki autorun.inf i towarzyszące im trojany, robaki oraz odpowiednie zapisy w rejestrze. Do takich programów można zaliczyć: ComboFix, Flash Disinfector, czy BitDefender Pica Removal Tool. Niestety, żadne z tych narzędzi nie jest w pełni skuteczne. Aby usunąć problem, trzeba czasami użyć kilku, tak aby się wzajemnie uzupełniły. Dodatkowo można również sprawdzić i ewentualnie usunąć ręcznie mapowania z klucza MountPoints2. Niestety, powyższe programy nie zawsze likwidują takie zapisy. W celu pozbycia się takich wpisów należy z menu Start wybrać Uruchom i wpisać regedit. Uruchomi się rejestr systemowy. Teraz w kluczu HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ Explorer\MountPoints2

Rozdział 4. ♦ Złośliwe oprogramowanie

105

Rysunek 4.30. Wyniki skanowania systemu

należy skasować odpowiedni podklucz odnoszący się do zapisu wykonanego przez złośliwe oprogramowanie. Należy pamiętać, że nie wszystkie klucze w MountPoints2 są szkodliwe. Ten, o który nam chodzi, można odczytać z logu np. programu ComboFix. Przed rozpoczęciem jakichkolwiek operacji na rejestrze wykonaj jego kopię. Uszkodzenie rejestru może prowadzić do niemożliwości korzystania z systemu Windows.

W celu uniknięcia takich problemów, jak te opisane powyżej, nie powinieneś podłączać pendrive’a w miejscach, które mogą być niebezpieczne np. w kawiarenkach internetowych, na uczelni, a także nie podłączać do własnego komputera pendrive’ów lub uruchamiać płyt CD lub DVD niewiadomego pochodzenia. Dodatkowo możesz też wyłączyć funkcję autoodtwarzania w systemie Windows, co umożliwi przerwanie infekowania Twojego systemu, nawet jeśli zainfekowany nośnik jest podpinany (pliki autorun.inf nie będą mogły się wykonać), a także stanowi dobre zabezpieczenie przed infekcją w przyszłości. W systemach Windows 2000, XP Professional i 2003 należy: 1. Wybrać Start/Uruchom. 2. Wpisać gpedit.msc i nacisnąć enter. 3. Na liście Konfiguracja komputera rozwinąć pozycję Szablony administracyjne,

następnie kliknąć System. 4. W oknie po prawej stronie dwukrotnie kliknąć pozycję Wyłącz funkcję

Autoodtwarzanie (zobacz rysunek 4.31).

106

13 najpopularniejszych sieciowych ataków na Twój komputer

Rysunek 4.31. Wyłączanie autoodtwarzania 5. Zaznacz Włączone, a na rozwijanej liście wybierz Wszystkie dyski

(zobacz rysunek 4.32). Rysunek 4.32. Wyłączanie autoodtwarzania

W systemie Windows XP Home, który nie ma gpedit.msc, należy bezpośrednio edytować klucz w rejestrze: [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer] "NoDriveTypeAutoRun"=dword:0x000000FF

Rozdział 4. ♦ Złośliwe oprogramowanie

107

4.3. Atak 10: rootkity — niewidzialne zagrożenie Podstawowa metoda wykrywania rootkitów, którą można spotkać w tradycyjnych programach antywirusowych, korzysta z techniki cross-check. Polega ona na porównywaniu listy plików działającego systemu operacyjnego z plikami, które aktualnie znajdują się na dysku. Podobnie działają programy służące do wykrywania rootkitów, robaków i koni trojańskich w systemach z rodziny UNIX i Linux np. program chkrootkit. Ponieważ jednak z reguły rootkit po zainfekowaniu systemu potrafi się w nim skutecznie ukryć, metoda ta nie zawsze będzie skuteczna. Dużo lepszym sposobem jest porównanie listy plików zainfekowanego systemu z listą plików ze zdrowego systemu. W tym celu potrzebny jest niezainfekowany system, w którym moglibyśmy uruchomić program do wykrywania rootkita. Można to zrobić poprzez uruchomienie na danym komputerze systemu z płyty CD lub DVD i przeskanowanie dysku podejrzanego systemu. Metoda Ghostbuster Rootkit Detection polega na porównaniu listy plików wygenerowanej przez rootkit w zarażonym systemie z listą plików środowiska uruchomionego ze zdrowego systemu (czyli uruchomionego z płyty CD lub DVD). Celem tego porównania jest wykrycie tych plików, które zostały celowo ukryte. Metoda ta jest także niezależna od systemu operacyjnego. Aby utworzyć bootowalne CD z systemem Windows, można skorzystać z programu BartPE (w chwili pisania książki dostępny pod adresem http://www.nu2.nu/pebuilder/). Dla systemów uniksowych można skorzystać z wielu dostępnych bootowalnych płyt CD zawierających np. aplikację chkrootkit. Jedną z nich jest InSeRT (Inside Security Rescue Toolkit), którą można pobrać ze strony http://www.inside-security.de/ ´insert_en.html.

Wykrywanie ukrytego rootkita w systemie Windows Najlepszym rozwiązaniem jest utworzenie startowej płyty CD lub DVD z pełnym systemem Windows przy wykorzystaniu programu BartPE (Bart’s Preinstalled Environment), a dokładniej PE Builder, oraz oryginalnej płyty instalacyjnej systemu Windows XP SP1/SP2 lub Windows Server 2003. Program umożliwia również stworzenie systemu z plików zainstalowanego na dysku twardym systemu. W przypadku polskiej wersji Windows w niektórych programach mogą się pojawić problemy z wyświetlaniem czcionek. Aby je rozwiązać, można po zainstalowaniu w systemie programu PE Builder podmienić plik z katalogu pebuilder3110a\plugin\keyboard\keyboard.inf na plik keyboard.inf, który znajduje się na płycie dołączonej do książki. W pliku tym ustawiona jest jako domyślna klawiatura Polski (programisty). Przy pierwszym uruchomieniu programu PE Builder należy zaakceptować licencję. Program będzie chciał również od razu przeszukać pliki instalacyjne Windows. Jeśli nie chcemy tworzyć wersji z zainstalowanego na dysku systemu, trzeba wybrać Nie. W kolejnym oknie (to okno będzie się pojawiać przy każdym uruchomieniu programu) mamy dostępne ustawienia programu (zobacz rysunek 4.33).

108

13 najpopularniejszych sieciowych ataków na Twój komputer

Rysunek 4.33. Główne okno programu PE Builder

W pierwszym polu podajemy ten napęd CD lub DVD, w którym znajduje się płyta instalacyjna Windows. Jeżeli chcesz dodać do kompilacji jakieś dodatkowe pliki lub foldery, możesz je wskazać w polu Dowolne: (Wciągnąć pliki i katalogi z tej ścieżki). Kolejne pole to nazwa folderu, w jakim zostanie zapisany Twój nowo tworzony system. Następnie należy wybrać opcję Twórz ISO obraz. Obraz wystarczy zapisać na płycie i uruchomić z niej komputer lub od razu nagrać obraz na płytę, wybierając opcję Wypal na CD/DVD. Jako przykład wybraliśmy tworzenie obrazu ISO i kliknęliśmy przycisk Buduj. Zanim utworzymy taki system, możemy jeszcze dodać do niego dodatkowe składniki w postaci dostępnych pluginów (przycisk Pluginy). Należy bowiem zauważyć, że system utworzony poprzez PE Buildera nie ma wielu składników dostępnych w tradycyjnie zainstalowanym systemie Windows. Dla przykładu nie znajdziemy w nim prawie żadnych sterowników. Poprzez dodanie takich pluginów możemy otrzymać środowisko będące prawie zamiennikiem Windows XP. Według Microsoft End User License Agreement dla Windows XP/2003 użytkownik nie może równocześnie używać więcej instalacji tych systemów, niż ma na nie licencji. W przypadku korzystania z BartPE oznacza to, że użytkownik nie może używać jednocześnie systemu zainstalowanego na danym komputerze i instalacji BartPE (utworzonej na podstawie tego zainstalowanego systemu i jego licencji) na innym komputerze. Zanim program rozpocznie tworzenie systemu, wyświetli jeszcze licencję Twojego systemu Windows, aby Ci o tym przypomnieć. Na rysunku 4.34 pokazano okno tworzenia nowego systemu.

Wynikiem jest utworzony obraz. Następnie można go nagrać na płytę CD lub DVD i uruchomić komputer z takiej płyty (w BIOS-ie należy ustawić bootowanie z dysku CD-ROM). Po uruchomieniu system zapyta, czy włączyć obsługę sieci. Należy wybrać Nie, gdyż i tak sieć nie będzie nam potrzebna. Jak już wcześniej wspominaliśmy, należy

Rozdział 4. ♦ Złośliwe oprogramowanie

109

Rysunek 4.34. Tworzenie nowego systemu Windows

być przygotowanym na to, że system uruchomiony z płyty różni się od normalnie instalowanej wersji Windows XP. Zamiast pulpitu z paskiem START w lewym dolnym rogu jest tylko bardzo proste menu z kilkoma opcjami i programami (zobacz rysunek 4.35). Rysunek 4.35. Nowy Windows po uruchomieniu z płyty CD/DVD

110

13 najpopularniejszych sieciowych ataków na Twój komputer

Teraz musisz wykonać listing plików dysku c:\ Twojego systemu w dwóch środowiskach: rzeczywistym i tym uruchomionym z dysku CD/DVD. 1. W Windows XP (zobacz rysunek 4.36): Rysunek 4.36. Listing plików dysku c:\ dla systemu Windows

2. W systemie z płyty CD/DVD (zobacz rysunek 4.37): Rysunek 4.37. Listing plików dysku c:\ dla systemu z płyty CD/DVD

Następnie wystarczy porównać pary plików np. programem WinDiff (http://www. ´grigsoft.com/download-windiff.htm). Żeby porównać pliki, trzeba wskazać w menu File pozycję Compare Files... i wskazać kolejno dwa pliki do porównania (zobacz rysunek 4.38). Rysunek 4.38. Porównanie plików w programie WinDiff

Wszystkie różnice (wyświetlają się na czerwono), które nie wskazują na pliki systemowe, powinny wzbudzić Twoje zainteresowanie. Chodzi o sytuację, w której pliki widoczne w systemie uruchomionym z płyty CD znikają w systemie rzeczywistym. Na rysunku 4.39 przedstawiono wyniki porównania plików, w których nie było zmian.

Rozdział 4. ♦ Złośliwe oprogramowanie

111

Rysunek 4.39. Wynik porównania plików

Inne metody walki z rootkitem Tripwire Jednym ze sposobów wykrycia w systemie działania osób niepożądanych jest badanie integralności systemu plików. Pierwszą bazę danych o plikach systemowych należy utworzyć, mając pewność, że system jest bezpieczny i niezarażony, najlepiej zaraz po instalacji i konfiguracji systemu, jeszcze przed włączeniem go do sieci. Potem przy użyciu narzędzi takich jak Tripwire dla systemów Linux (dla Windows dostępna jest tylko wersja komercyjna) lub FastSum dla Windows można porównać informacje o obecnym stanie plików i katalogów systemu z tymi przechowywanymi w bazie danych. W ten sposób można sprawdzić, czy pliki nie zostały zmodyfikowane, podmienione na inne, zainfekowane lub usunięte. Tripwire tworzy bazę danych zawierającą informacje na temat atrybutów plików i katalogów (łącznie z ich sygnaturami MD5), którą można zapisać na jakimś nośniku w celu późniejszego odczytu dla dokonania porównania. Windows Signature Verification Innym sposobem dbałości o integralność systemu plików w Windows XP może być wykorzystanie wbudowanej usługi zapewniającej ochronę plików systemowych. Chroni ona pliki z rozszerzeniami: DLL, EXE, SYS, OCX i TTF w ten sposób, że jeśli zostaną one zmienione, to będzie można przywrócić oryginalne wersje tych plików z płyty instalacyjnej. W celu określenia, czy nowy plik jest prawidłowy, czy nie, stosowane są podpisy cyfrowe plików. Windows pozwala na zastąpienie zasobów systemowych jedynie plikami instalowanymi podczas uaktualniania systemu, instalacji service-packów oraz hotfiksów. Do sprawdzania aktualnego stanu systemu dostępne są dwa narzędzia: kontroler plików systemowych (sfc.exe) oraz program służący do weryfikacji podpisów plików (sigverif.exe).

112

13 najpopularniejszych sieciowych ataków na Twój komputer

W przypadku wykrycia zmienionego pliku System File Checker pyta, czy ma przywrócić oryginalną wersję pliku z płyty instalacyjnej. Uruchomienie programu z parametrem /scanboot spowoduje sprawdzanie wszystkich chronionych plików systemowych przy każdym rozruchu. Drugie z narzędzi służy do wyszukiwania plików bez podpisu cyfrowego. Sprawdza, czy pliki wykonywalne *.exe, *.dll oraz sterowniki mają podpis cyfrowy, a także weryfikuje podpisy i sygnatury pliku z posiadanymi bazami danych. W przypadku wykrycia zmian w podpisanym pliku lub pojawienia się pliku, który nie jest rozpoznawany, np. może to być rootkit, wyświetlana jest odpowiednia informacja.

4.4. Atak 11: malware — infekcja w telefonie komórkowym Wirusy, trojany i robaki to również zagrożenie dla sieci WLAN, a także technologii bluetooth. Taka automatyczna transmisja przez tysiące połączeń radiowych może być bardzo szybka: z jednego laptopa na inny, z laptopa na palmtop, z palmtopa na komórkę, a z komórki do wewnętrznej sieci przedsiębiorstwa. W ten sposób wirus uzyskuje łatwy dostęp do niechronionego przez firewalle obszaru, który jest uważany za dobrze zabezpieczony. Bluetooth jest technologią, która powstała, by ułatwić ludziom komunikowanie się. Działa ona w zakresie częstotliwości od 2402 do 2480 GHz w paśmie podzielonym na 79 kanałów (co 1 MHz). Wymiana danych między dwoma urządzeniami wyposażonymi w bluetooth odbywa się po zsynchronizowaniu procesu „przeskakiwania” między wszystkimi kanałami (frequency hooping). Urządzenie inicjujące sygnał zmienia kanały transmisyjne zgodnie z pewnym algorytmem, który jest rozsyłany do wszystkich odbiorników znajdujących się w zasięgu jego działania. Jeżeli nieświadomy użytkownik ma włączony bluetooth, haker może dopasować swoje urządzenie do schematu „przeskoków” i odpowiedzieć na sygnał, przesyłając wirusa. Technologia bluetooth obecnie jest dostępna praktycznie we wszystkich urządzeniach przenośnych (telefony komórkowe, słuchawki, PDA, laptopy itd.). Powstała ona głównie dlatego, żeby znieść ograniczenia portów na podczerwień IRDA (Infra Red Device Adapter), gdzie urządzenia peryferyjne musiały być wzajemnie widoczne i oferowały niskie prędkości przesyłania danych. W przypadku bluetooth zasięg komunikacji jest znacznie większy. Ponadto technologia ta pozwala w prosty sposób utworzyć prywatną sieć, w której można np. wydrukować na drukarce dokument z PDA. Niestety, szybko okazało się, że przy jej wykorzystaniu można również w łatwy sposób ukraść cenne dane. Podobnie jak w przypadku sieci bezprzewodowych Wi-Fi, jej szybkiemu rozwojowi nie towarzyszyła należyta dbałość o sprawy bezpieczeństwa. Telefony mają coraz bardziej zaawansowane funkcje, co powoduje, że są narażone na podobne zagrożenia jak komputery. Najpopularniejszymi systemami przeznaczonymi na telefony komórkowe są Symbian OS i Microsoft Windows Mobile. W przypadku tego drugiego, ze względu na dostępny kod źródłowy jądra, dużo łatwiej jest stworzyć szkodliwe oprogramowanie, dlatego w pierwszej kolejności należy samemu zadbać o sprawy

Rozdział 4. ♦ Złośliwe oprogramowanie

113

bezpieczeństwa. Urządzenie z włączoną komunikacją bluetooth może mieć domyślnie wyłączone opcje zabezpieczeń. Jeśli ponadto zawiera ważne dane, jest łatwym celem przebywającego w pobliżu napastnika. Niektórzy dostawcy oferują swoje produkty bluetooth z narzędziami pozwalającymi na znajdowanie niezabezpieczonego sprzętu bluetooth. Aby znaleźć inne urządzenia mogące się komunikować w ten sposób w firmowej sieci, można posłużyć się laptopem z Linuksem i oprogramowaniem Redfang (www.atstake.com/research/tools/ ´info_gathering). Wirusy działające na telefonach komórkowych, rozprzestrzeniające się poprzez bluetooth bazują na tym samym mechanizmie co wirusy e-mailowe. Ludzie czytają temat i treść wiadomości, a potem nic nie podejrzewając, otwierają załącznik. Wirusy te można podzielić na dwie grupy. Pierwsza zamienia oryginalne pliki na własne, co prowadzi do niepoprawnego funkcjonowania telefonu. Druga grupa obejmuje programy powodujące restartowanie telefonu. Szkodniki tego typu pobierane są przez inne trojany. Instalują się tak, aby uruchamiać się razem z systemem, co prowadzi do stałych restartów telefonu. Jeżeli chodzi o infekcje telefonów, to trzeba wymienić także takie trojany, które w ogóle uniemożliwiają ich uruchomienie. Naprawa takiego telefonu może się odbyć na kilka sposobów. Można zresetować telefon do ustawień fabrycznych, co spowoduje formatowanie całej pamięci i utratę wszystkich danych. Można też użyć innego telefonu do przygotowania karty pamięci z naszym oprogramowaniem — usuwającym złośliwy program z zainfekowanego telefonu. W przypadku telefonów najczęstszymi zagrożeniami są nie wirusy, ale konie trojańskie. Wielu użytkowników ściąga z Internetu dodatkowe oprogramowanie (np. gry), które okazuje się koniem trojańskim. Taki koń trojański sam nie rozprzestrzenia się dalej, ale zainstalowany w telefonie może go albo zawiesić, albo zmodyfikować w celu rozsyłania drogich SMS-ów. Istnieją również sniffery na komórkę. Sniffer taki potrafi np. przechwytywać SMS-y wysyłane i odbierane z danego telefonu, które są wysyłane na uprzednio skonfigurowany numer telefonu na koszt użytkownika. Tak jak w przypadku większości tego typu zagrożenia, program może zostać zainstalowany tylko świadomie. Wymaga bowiem podania numeru IMEI aparatu. Kolejne zagrożenie dla użytkowników telefonów komórkowych stanowi tzw. SmiShing. Nazwa pochodzi od SMS phishing i polega na rozsyłaniu SMS-ów, które mają skłonić ofiarę do wykonania określonego działania. Jest to poważny sygnał ze względu na możliwość masowego rozsyłania zagrożeń przez SMS. Atak może polegać na wysłaniu SMS-a osobom z listy kontaktowej użytkownika. Jeśli odbiorca ufa osobie, od której dostał wiadomość, na podstawie tylko i wyłącznie numeru wyświetlonego telefonu, to jest w zasadzie bezbronny w takiej sytuacji.

114

13 najpopularniejszych sieciowych ataków na Twój komputer

Lista kontaktowa, szczególnie telefonów służbowych, może być obiektem zainteresowań napastnika. Wydostanie się takiej listy poza obszary przedsiębiorstwa może mieć więc strategiczne znaczenie dla dalszego funkcjonowania firmy. Podobnie sytuacja wygląda w przypadku historii połączeń czy utraty plików typu Word, Excel przechowywanej w kieszonkowych komputerach typu Pocket PC.

Sposoby zabezpieczania telefonów komórkowych Jednym z zabezpieczeń dla systemów Microsoft Windows Mobile jest zastosowany system certyfikacji, który pozwala uruchamiać programy tylko podpisane certyfikatami. Działa to jednak dobrze tylko do momentu, w którym użytkownik nie zacznie korzystać z innych programów bez podpisu. Inny sposób to zastosowanie programu antywirusowego na komórkę. Specjalizuje się w tym np. firma F-secure. Na stronie http://mobile.f-secure.com/downloads/trial/ index.html (link aktualny w trakcie pisania książki) można pobrać oprogramowanie odpowiednie dla danego modelu telefonu komórkowego wraz z instrukcją instalacji i używania. Kolejny sposób to wyłączenie bluetootha lub chociaż przejście do trybu ukrytego oraz nieakceptowania nadchodzących aplikacji, jeśli się ich nie spodziewamy. Tą drogą łatwo przenoszą się wirusy. Podobnie sniffery mają wtedy pole do działania. Niezbędną rzeczą jest wykonywanie kopii zapasowych danych i listy kontaktów. W razie zarażenia urządzenia i (lub) utraty pewnych danych będzie można je przynajmniej łatwo przywrócić.

4.5. Atak 12: sieci botnet — środowisko rozprzestrzeniania się złośliwego oprogramowania Botnety to sieci zbudowane z tzw. komputerów zombie. Słowo bot pochodzi od usługi IRC. W usłudze tej rozmowa z inną osobą wymaga przyłączenia się do kanału tematycznego na serwerze IRC lub utworzenie własnego kanału. Twórca kanału może wysyłać do serwera komendy. Podobnie może to robić program zwany botem, sterując komputerami zombie. Zombie to maszyna, która bez wiedzy właściciela jest kontrolowana przez inną osobę. Wszystkie takie komputery jako całość są wykorzystywane do rozsyłania różnego rodzaju złośliwego oprogramowania, spamu, przeprowadzania ataków rozproszonej odmowy usług (ang. Distributed Denial of Service, DDoS), a także dokonywania innych rodzajów przestępstw lub oszustw.

Rozdział 4. ♦ Złośliwe oprogramowanie

115

Współczesne ataki DDoS przybrały nawet formę produktu, który można sprzedać. W Internecie pojawiają się ogłoszenia, w których oferuje się możliwość zakupu ataku typu Distributed Denial Of Service. Mało tego, klient ma możliwość wyboru techniki wykorzystanej podczas ataku. W ten sposób przestępcy, wykorzystując zainfekowane wcześniej i przygotowane do ataku komputery zombie, mogą zablokować działanie nawet największych serwisów internetowych na świecie, a przy okazji dobrze zarobić. Atak DoS ma na celu wyczerpanie zasobów serwera lub uniemożliwienie komunikacji pomiędzy klientem a serwerem (np. poprzez duże wykorzystanie przepustowości łącza od strony serwera). Ataki DoS możemy podzielić na trzy grupy:  ataki bazujące na implementacji stosu TCP/IP. Ataki tego typu wykorzystują

słabości w specyfikacji TCP/IP w konkretnym systemie operacyjnym. Przykładami ataków z tej grupy są Ping of Death, Teardrop, Smbnuke;  ataki bazujące na standardach TCP/IP. Ataki tego typu wykorzystują słabości

w samych standardach stosu TCP/IP. Przykładami ataków z tej grupy są SYN attack oraz Land;  ataki siłowe (ang. brute force). Ataki tego typu generują duży ruch, który zajmuje

pasmo sieciowe. Przykładami ataków tego typu są Smurf, Fraggle. Więcej o wymienionych wyżej atakach można przeczytać w książce 101 zabezpieczeń przed atakami w sieci komputerowej wydawnictwa Helion. Atak DDoS realizuje ten sam cel co atak DoS, lecz z dużo większą siłą ze względu na ich rozproszony (przeprowadzany z wielu źródeł) charakter. Takie podejście likwiduje ograniczenie, jakie ma miejsce w przypadku ataków DoS, gdzie atakujący musi dysponować przynajmniej łączem o podobnej przepustowości jak jego cel. Ponadto w ataku rozproszonym maszyna, z której uruchamiany jest atak, w ogóle w nim nie uczestniczy, co bardzo utrudnia jej namierzenie. Oprócz tego w atakach tych korzysta się z mechanizmów mających na celu utrudnienie wykrycia napastnika np. poprzez fałszowanie adresów IP. Bardzo często wykorzystywane jest fałszowanie adresów źródłowych IP w pakietach skierowanych do ofiary w celu ukrycia miejsca, z którego przeprowadzany jest atak. Ataki DDoS są przeprowadzane zdalnie. Składają się one z dwóch faz. Pierwsza polega na zgromadzeniu przez atakującego (zdobyciu uprawnień administratora) jak największej liczby komputerów służących w drugiej fazie do generowania pakietów (właściwego ataku DDoS). Zgromadzone w ten sposób komputery tworzą tzw. sieć DDoS lub sieć botnet. Ta faza jest bardzo istotna z punktu widzenia powodzenia ataku. Agresor musi, używając różnych metod ataku, uzyskać dostęp do innych hostów w celu zainstalowania na nich narzędzi (programów zwanych demonami) DDoS. Dla przykładu atak DDoS może polegać na masowym wysyłaniu zapytań do serwera z wielu komputerów jednocześnie. Najpierw są infekowane maszyny, na których instalowany jest backdoor lub koń trojański. To właśnie przez niego przestępcy mogą przejąć kontrolę nad systemem operacyjnym i zainstalować na nich agenta sieci DDoS.

116

13 najpopularniejszych sieciowych ataków na Twój komputer

Z kolei do ukrycia, a zarazem do zabezpieczenia przed wykryciem w skompromitowanym systemie programów demonów, plików oraz komunikacji sieciowej pomiędzy narzędziami DDoS napastnik używa innej formy malware, a mianowicie rootkitów. Druga faza jest właściwym atakiem i polega na tym, że przeprowadzający atak, wykorzystując sieć komputerów, doprowadza w rzeczywistości do wygenerowania ogromnego strumienia pakietów skierowanego do ofiary z wielu różnych miejsc. Topologia sieci DDoS może mieć architekturę dwustopniową (atakujący i demony) lub trójstopniową (atakujący, węzły i demony). Ta druga forma jest znacznie trudniejsza do wykrycia i częściej stosowana. Sieć DDoS składa się z następujących elementów:  Komputera atakującego (ang. attacker), tzn. komputera, z którego zostaje

wydany rozkaz rozpoczęcia ataku. Komunikuje się on z komputerami zarządzającymi (ang. master) w przypadku sieci trójstopniowej lub bezpośrednio z demonami w architekturze dwustopniowej.  Komputerów zarządzających atakiem (komputerów master), które kontrolują

tzw. komputery demony i przekazują do nich rozkaz ataku z komputera atakującego.  Komputerów demonów, które wysyłają i odbierają polecenia od komputerów

zarządzających (jeden demon może podlegać pod wielu zarządców). Podstawową funkcją demonów jest właściwa faza ataku, czyli generowanie strumienia pakietów.  Ofiary (ang. victim), którą może być jeden komputer lub cała sieć.

Atak DDoS jest zazwyczaj zwielokrotnieniem siły pojedynczego ataku DoS takiego jak: SYN flooding, Smurf, UDP flooding czy ICMP flooding. Do ataków DDoS zalicza się m.in. takie ataki jak: Trinoo, Tribe Flood Network (TFN), Tribe Flood Network 2000 (TFN2K) czy Stacheldraht. Poniżej przedstawiona jest charakterystyka jednego z powyższych ataków, jakim jest Stacheldraht. Architektura ataku (która jest podobna również do innych ataków DDoS) przedstawiona jest na rysunku 4.40.

Rysunek 4.40. Architektura ataku Stacheldraht

Rozdział 4. ♦ Złośliwe oprogramowanie

117

Komputer atakującego komunikuje się z komputerami zarządzającymi poprzez protokół TCP na porcie 16 660. Jest to szyfrowana kluczem symetrycznym sesja Telnet. Uwierzytelnienie następuje poprzez podanie hasła (domyślnie sicken). Demony zainstalowane na komputerach zombie zgłaszają się do swoich komputerów zarządzających za pomocą protokołu TCP na porcie 65 000 lub za pomocą pakietów ICMP Echo Reply. Jedna stacja zarządzająca może kontrolować nawet 1000 demonów. Stacheldraht umożliwia komputerom zarządzającym automatyczną aktualizację swoich demonów na komputerach zombie poprzez wydanie polecenia .distro. Wtedy demony poprzez protokół RCP (Remote Copy Protocol) ściągają najnowszą wersję trojana z podanej wcześniej w poleceniu .distro lokalizacji. Demony rozpoczynają działanie od odczytania plików konfiguracyjnych i sprawdzenia adresów IP komputerów zarządzających, które je kontrolują. Następnie zaczynają wysyłać po kolei do wszystkich węzłów znajdujących się na liście pakiety ICMP echoreply z wartością 666 w polu ID pakietu ICMP i tekstem skillz w polu danych. Demony odpowiadają takim samym pakietem tyle, że pole ID ma wartość 667, a pole danych zawiera łańcuch ficken. Właściwy atak polega na wysłaniu rozkazu do komputerów zarządzających, które z kolei informują swoje demony. Wszystkie ataki typu DDoS mają formę podobną do ataku Stacheldraht. Różnice między nimi polegają na sposobie komunikacji między składnikami sieci DDoS, a także na sposobie ukrywania demonów na komputerach zombie.

Czy jestem już zombie i jak nie stać się zombie Bardzo trudno jest stwierdzić, czy dany komputer to już zombie, czy nie, ponieważ po zarażeniu rootkitem ukrywa on dość skutecznie procesy napastnika. Mogą natomiast pojawić się takie objawy jak wolniejsze działanie komputera, a ikona połączenia sieciowego często świeci się, nawet wtedy gdy nie korzystasz z sieci. Dlatego lepiej zadbać od samego początku o profilaktykę, a więc:  Nie należy otwierać załączników wiadomości e-mail ani wiadomości SMS

otrzymanych nawet od znajomych, chyba że dokładnie wiadomo, co znajduje się w tych załącznikach.  Włączyć zaporę sieciową.  Aktualizować na bieżąco system operacyjny. Zbyt późne załatanie dziury

może już nic nie pomóc.  Uruchomić program antywirusowy i tym podobne. Często aktualizować

bazy sygnatur.

118

13 najpopularniejszych sieciowych ataków na Twój komputer

4.6. Atak 13: malware i drive-by pharming Istnieje również pewna odmiana ataku pharming tzw. drive-by pharming. Polega on na tym, że po odwiedzeniu przez użytkownika sfałszowanej witryny atakujący może zmienić ustawienia DNS na routerze użytkownika lub w punkcie dostępu bezprzewodowego. Zmiana ta sprowadza się do przekierowania ruchu DNS z domowego routera na serwer DNS należący do napastnika (zobacz rysunek 4.41).

Rysunek 4.41. Kolejne kroki ataku drive-by pharming

Zmiana dokonywana jest za pomocą kodu napisanego w JavaScripcie po wejściu na fałszywą stronę i jest możliwa w sytuacji, gdy router szerokopasmowy nie jest chroniony hasłem lub gdy atakujący jest w stanie je odgadnąć (nie zmieniono hasła domyślnego). Jest to możliwe dzięki temu, że wielu właścicieli takich routerów wcale ich nie konfiguruje. W ten sposób na routerze pozostają aktywne login i hasło ustawione fabrycznie przez producenta.

Rozdział 4. ♦ Złośliwe oprogramowanie

119

Niestety, atak ten otwiera również furtkę dla złośliwego oprogramowania. Skompromitowany system DNS może skutecznie utrudniać użytkownikowi pobieranie nowych sygnatur wirusów, a także nowych łat bezpieczeństwa (poprzez unieważnianie odpowiednich rekordów DNS). W takim miejscu mogą spokojnie rozprzestrzeniać się wirusy, robaki i inny rodzaj malware.

Obrona przed atakiem drive-by pharming Oprócz standardowych metod obrony stosowanych w przypadku klasycznego pharmingu należy przede wszystkim zmienić domyślne hasło na routerze. Ponadto należy w miarę możliwości wykonywać uaktualnienie firmware, czyli zmieniać na nowsze oprogramowanie wbudowane w urządzenie.

120

13 najpopularniejszych sieciowych ataków na Twój komputer

Rozdział 5.

Zanim zostaniesz przestępcą Prawo tworzy ustawodawca, a stosują i egzekwują różne, mniej lub bardziej przyjazne, instytucje zatrudniające często zawodowych prawników. Jednym ze skutków takiego stanu rzeczy jest to, że zrozumienie systemu prawnego dla przeciętnego użytkownika komputera (dla nieprzeciętnego zresztą też...) bywa co najmniej kłopotliwe. Kiedy w serwisach informacyjnych pojawia się doniesienie o złapaniu kolejnego „hakera” czy „pirata”, o gorszych osobnikach nie wspominając, zazwyczaj nie zdajesz sobie sprawy, o co chodzi, ba — nie wiesz nawet, że być może sam właśnie popełniasz podobne przestępstwa. Bo w Kodeksie karnym nie napisano niczego o takim czy innym skanerze sieci ani o ściąganiu plików z takich czy innych serwisów. I choć prawnicy z uporem nazywają sniffing — hackingiem, a ataki DoS — sabotażem, to kiedy okaże się, że masz „nielegalne oprogramowanie” albo że „pozyskałeś informacje, przełamując jej szczególne zabezpieczenia” Twoja sytuacja nie będzie wyglądać zbyt różowo. Nie pomogą Ci także — a nawet wprowadzą w błąd — wyobrażenia o prawie zbudowane w oparciu o amerykańskie filmy albo lektury wydawanych w Polsce tłumaczeń książek. Mówią one bowiem o przepisach obowiązujących w systemie common law, które są diametralnie różne od przepisów prawa polskiego, zarówno w odniesieniu do tzw. prawa materialnego (a zatem tego, co podlega karze), jak i proceduralnego (a więc dotyczącego procedur związanych ze stosowaniem prawa), a nawet konstrukcji samego systemu prawnego. Dlatego też na zakończenie książki (last but not least) zdecydowaliśmy się zamieścić krótki rozdział dotyczący wybranych zagrożeń natury prawnej, związanych z użytkowaniem komputerów, w szczególności komputerów podłączonych do Internetu. Ma on z konieczności charakter bardzo pobieżnego przeglądu i sygnalizuje jedynie najważniejsze problemy. Pamiętaj, że jeśli kiedykolwiek będziesz zmuszony zająć się bliżej kwestiami prawnymi (a może Ci się to przytrafić czy to jako ofierze przestępstwa, czy jako potencjalnemu podejrzanemu — np. współużytkownikowi sieci, w której działał przestępca), powinieneś przede wszystkim skorzystać z fachowej pomocy prawnika. Choć domorosłych lekarzy, trenerów piłki nożnej i prawników (a ostatnimi czasy także

122

13 najpopularniejszych sieciowych ataków na Twój komputer

informatyków) mamy w kraju zatrzęsienie, na szczęście mało kto decyduje się na osobiste wycinanie ślepej kiszki. Zachowaj tę zasadę również w odniesieniu do kwestii prawnych, a nie wyjdziesz na tym źle.

5.1. W sieci przepisów Przepisy prawa karnego obowiązujące w polskim systemie prawnym są zebrane w różnych miejscach. Dają się one podzielić na:  prawo materialne — określające poszczególne czyny karalne, skutki prawne

w postaci kar i środków karnych stosowanych w związku z naruszeniem prawa karnego oraz zasady odpowiedzialności karnej za popełnienie przestępstwa;  prawo procesowe — określające sposób prowadzenia postępowania karnego,

czyli prawne, ściśle sformalizowane ramy działalności zmierzającej do realizacji prawa karnego materialnego (zastosowanie prawnych konsekwencji wobec sprawcy czynu);  prawo wykonawcze — określające sposób wykonywania kar i środków karnych.

Jeśli chodzi o to pierwsze — najważniejszym zbiorem przepisów jest Kodeks karny (ustawa z dnia 6 czerwca 1997 r. — kodeks karny, Dz. U. z 1997 r., Nr 88, poz. 553, z późn. zm.), ale istnieje także tzw. pozakodeksowe prawo karne, tzn. przepisy karne możemy znaleźć w innych (ponad stu) ustawach. Kodeks karny traktujmy więc jako „dekalog”, ale jeśli nie chcemy „niechcący” popełnić przestępstwa, to trzeba także zapoznać się z przepisami zawartymi w innych ustawach, a dotyczącymi obszarów, w których najczęściej się poruszamy w codziennym życiu. W razie potrzeby nie możemy tłumaczyć się przed sądem, że nie wiedzieliśmy, iż podejmując jakieś działanie, popełniamy przestępstwo, bo przyjmuje się taką generalną zasadę, iż nieznajomość prawa szkodzi i w naszym interesie jest zapoznanie się z nim. Zatem warto, żebyś zapoznał się z wybranymi przepisami Kodeksu karnego, które przedstawimy w niniejszym rozdziale, a także z wybranymi przepisami karnymi z następujących ustaw:  Ustawa z dnia 29 sierpnia 1997 r. o ochronie danych osobowych (tekst jednolity:

Dz. U. z 2002 r., Nr 101, poz. 926 z późn. zm.).  Ustawa z dnia 18 września 2001 r. o podpisie elektronicznym (Dz. U. Nr 130,

poz. 1450 z późn. zm.).  Ustawa z dnia 4 lutego 1994 r. o prawie autorskim i prawach pokrewnych

(Dz. U. z 1994 Nr 24 poz. 83, z późn. zm.). Jako świadomy użytkownik powinieneś także poznać ramy cywilnej odpowiedzialności za ewentualne wyrządzone szkody, nie będziemy jednak tutaj się do tego odnosić. Pamiętaj jednak, że sama lektura przepisów nie zawsze wystarczy do zrozumienia ich treści. Przepisy są bowiem pisane w języku prawnym, który jest odmianą języka naturalnego, potocznego, ma taką samą składnię, jednak cechuje go wyższy stopień sformalizowania. W szczególności chodzi o to, że celem używania języka prawnego jest unikanie

Rozdział 5. ♦ Zanim zostaniesz przestępcą

123

wieloznaczności używanych w ustawach terminów. Stąd często ustawodawca wprowadza do tekstów przepisów prawnych tzw. definicje legalne, a więc konkretną definicję użytego terminu, nie zawsze zgodną ze znaczeniem, jakie nadajemy temu pojęciu w języku potocznym. Czasem następuje w ustawie przywołanie definicji określonej już w innej ustawie. Jednak sprawę komplikuje fakt, że w różnych ustawach możemy mieć różne definicje legalne tak samo brzmiących terminów, więc trzeba momentami być ostrożnym i nie przenosić automatycznie rozumienia pojęcia zawartego w jednej ustawie na potrzeby innej. Przykłady definicji legalnych: System teleinformatyczny — jest to system, który tworzą urządzenia, narzędzia, metody postępowania i procedury stosowane przez wyspecjalizowanych pracowników, w sposób zapewniający wytwarzanie, przechowywanie, przetwarzanie lub przekazywanie informacji — art. 2 pkt 8) ustawy z dnia 22 stycznia 1999 r. o ochronie informacji niejawnych (Dz. U. z 1999 r., Nr 11, poz. 95, z późn. zm.). Sieć teleinformatyczna — jest to organizacyjne i techniczne połączenie systemów teleinformatycznych — art. 2 pkt 9) ustawy z dnia 22 stycznia 1999 r. o ochronie informacji niejawnych (Dz. U. z 1999 r., Nr 11, poz. 95, z późn. zm.). System informatyczny — rozumie się przez to zespół współpracujących ze sobą urządzeń, programów, procedur przetwarzania informacji i narzędzi programowych zastosowanych w celu przetwarzania danych — art. 7 pkt 2a) ustawy z dnia 29 sierpnia 1997 r. o ochronie danych osobowych (tekst jednolity: Dz. U. z 2002 r., Nr 101, poz. 926 z późn. zm.). Zabezpieczenie danych w systemie informatycznym — rozumie się przez to wdrożenie i eksploatację stosownych środków technicznych i organizacyjnych zapewniających ochronę danych przed ich nieuprawnionym przetwarzaniem — art. 7 pkt 2b) ustawy z 29 sierpnia 1997 r. o ochronie danych osobowych (tekst jednolity: Dz. U. z 2002 r., Nr 101, poz. 926 z późn. zm.). System teleinformatyczny — zespół współpracujących ze sobą urządzeń informatycznych i oprogramowania, zapewniający przetwarzanie i przechowywanie, a także wysyłanie i odbieranie danych poprzez sieci telekomunikacyjne za pomocą właściwego dla danego rodzaju sieci urządzenia końcowego w rozumieniu ustawy z dnia 21 lipca 2000 r. — Prawo telekomunikacyjne (Dz. U. Nr 73, poz. 852, z 2001 r. Nr 122, poz. 1321 i Nr 154, poz. 1800 i 1802 oraz z 2002 r. Nr 25, poz. 253 i Nr 74, poz. 676) — art. 2 pkt. 3) ustawy z dnia 18 lipca 2002 r. o świadczeniu usług drogą elektroniczną (Dz. U. z dnia 2002 r. Nr 144, poz. 1204, z późn. zm.). System teleinformatyczny — system teleinformatyczny w rozumieniu art. 2 pkt 3 ustawy z dnia 18 lipca 2002 r. o świadczeniu usług drogą elektroniczną (Dz. U. Nr 144, poz. 1204 oraz z 2004 r. Nr 96, poz. 959 i Nr 173, poz. 1808) — art. 3 pkt. 3) ustawy z dnia 17 lutego 2005 r. o informatyzacji działalności podmiotów realizujących zadania publiczne (Dz. U. z dnia 20 kwietnia 2005 r.). Informatyczny nośnik danych — materiał lub urządzenie służące do zapisywania, przechowywania i odczytywania danych w postaci cyfrowej lub analogowej — art. 3 pkt.1) ustawy z dnia 17 lutego 2005 r. o informatyzacji działalności podmiotów realizujących zadania publiczne (Dz. U. z dnia 20 kwietnia 2005 r.).

Nie wszystkie jednak pojęcia używane w ustawach mają definicje, bo wtedy akty prawne musiałyby być bardzo obszerne. Część terminów nie budzi wątpliwości interpretacyjnych i są one rozumiane tak jak w języku potocznym. Część jednak stwarza niemałe problemy, bo można je różnie rozumieć albo próba ich interpretowania w oparciu o potoczne znaczenie słów prowadzi do błędnych czy wręcz absurdalnych wniosków.

124

13 najpopularniejszych sieciowych ataków na Twój komputer

W takich sytuacjach dokonuje się wyjaśniania, interpretacji tych pojęć, czyli tzw. wykładni prawa. Wykładni o mocy powszechnie obowiązującej mogą dokonywać organy prawo stanowiące (wykładnia autentyczna) i ma to miejsce wtedy, gdy ustawodawca podaje w tekście aktu prawnego definicje legalne używanych pojęć — o czym już wyżej pisaliśmy — oraz organy na mocy przepisów upoważnione do dokonywania wykładni o mocy powszechnie obowiązującej — w Polsce jest to Trybunał Konstytucyjny. Wykładni o ograniczonej mocy obowiązującej dokonują organy stosujące prawo, a więc sądy i urzędy, jest to wykładnia dokonywana na użytek konkretnego rozstrzygnięcia, wiąże strony, których postępowanie dotyczy. Z kolei wykładnia dokonana przez sąd wyższego rzędu na skutek odwołania wiąże sąd niższej instancji orzekający w konkretnej sprawie. Ufff... co z tego wynika dla Ciebie? Może się zdarzyć, że np. sąd w Gdańsku inaczej zinterpretuje pewne pojęcie użyte w ustawie niż sąd w Warszawie, a więc zapadną dwa różne rozstrzygnięcia w podobnych stanach faktycznych. Nie jest to komfortowa sytuacja, bo tak do końca nie możesz być pewien, za co tak naprawdę sąd może Cię ukarać, w szczególności jeśli idzie o ciągle jeszcze stosunkowo nowe dla prawników zagadnienia związane z technologiami komputerowymi. Po pewnym czasie obowiązywania przepisu z reguły ustala się jakaś bardziej ujednolicona linia orzecznictwa, w szczególności służy temu wykładnia dokonywana przez Sąd Najwyższy. Jeśli przed sądem rozstrzygającym Twoją sprawę powołasz się na interpretację dokonaną przez Sąd Najwyższy (należy zwrócić uwagę na najbardziej aktualne rozstrzygnięcia, bo w miarę upływu czasu one też mogą się zmieniać), sąd będzie musiał wziąć to pod uwagę. Z kolei jeśli chodzi o sposób dokonywania wykładni, to stosuje się w pierwszej kolejności wykładnię językową (zwaną też gramatycznosłownikową), czyli ustala się znaczenie użytych w tekście prawnym wyrażeń w oparciu o język, w którym zostały sformułowane, oraz o reguły wypracowane przez nauki prawnicze zwane dyrektywami wykładni językowej. Jeśli to nie przynosi zadowalającego rezultatu, stosuje się wykładnię systemową (ustala się znaczenia interpretowanej normy w kontekście całego systemu prawa i w powiązaniu z innymi normami), funkcjonalną (inaczej celowościową, ustala się znaczenie normy ze względu na funkcje i cele, jakie ma spełniać) lub historyczną (rzadko wykorzystywana, ustala się znaczenie normy prawnej w odniesieniu do materiałów historycznych, pozwalających zrozumieć właściwy sens normy w kontekście okoliczności, w których powstawała). W wyroku z dnia 8 stycznia 1993 r. sygn. akt III ARN 84/92 (OSNC 1993, Nr 10, poz. 183) Sąd Najwyższy stwierdził: „Wykładnia gramatyczno-słownikowa jest tylko jednym z przyjmowanych powszechnie w rozumowaniu prawniczym sposobów wykładni, a wnioski z niej płynące mogą być również często mylące i prowadzić do merytorycznie błędnych, niezgodnych z rzeczywistymi intencjami ustawodawcy, a w końcu również do niesprawiedliwych i krzywdzących stronę procesu rezultatów. Dlatego też musi być ona uzupełniona wnioskami płynącymi z zastosowania innych rodzajów wykładni: historycznej, systemowej, funkcjonalnej, logicznej, a wreszcie — jeśli nie przede wszystkim celowościowej”.

Jak zatem widzisz, jeśli chcesz np. dowiedzieć się, co prawnicy rozumieją pod pojęciem przestępstwa hackingu, to nie możesz poprzestać tylko na lekturze Kodeksu karnego, ale powinieneś zapoznać się z orzecznictwem (wyrokami, które zapadły w sprawach tego przestępstwa dotyczących), a także z pracami teoretyków prawa karnego (tzw. karnistów). W interesującej nas dziedzinie możesz przeczytać np. książkę Prawo karne

Rozdział 5. ♦ Zanim zostaniesz przestępcą

125

komputerowe Andrzeja Adamskiego, Warszawa 2000, w której znajdziesz wyjaśnienie nurtującego Cię problemu prawnego przedstawione przez przedstawiciela środowiska akademickiego (wykładnia doktrynalna), ale pamiętaj, że może to być próba interpretacji przepisów przez autora, będąca jego opinią, która nie wiąże sądów, choć oczywiście z uwagi na autorytet autora sąd może ją wziąć pod uwagę. I tak np. w różnych komentarzach można spotkać się z różnymi próbami wyjaśnienia pojęcia „urządzenie specjalne” użytego w treści art. 267 § 2 k.k. i opiniami, czy np. laptop z kartą sieci bezprzewodowej, anteną kierunkową i oprogramowaniem do sniffingu jest takim „urządzeniem specjalnym”, czy też nie. Wymiar sprawiedliwości kieruje się przepisami prawa, a nie np. przyjętymi przez Ciebie albo grupę, do której należysz, zasadami etyki, estetyki czy światopoglądem. Możesz uważać, że np. wszystkie filmy powinny być za darmo albo że ochrona praw autorskich do programów komputerowych powinna dopuszczać dozwolony użytek w kręgu rodziny i znajomych, niemniej łamiąc przepisy prawa, narażasz się na przewidzianą nimi sankcję karną.

Powyższe wyjaśnienia dotyczące wykładni prawa mogą Ci się wydać dość skomplikowane, w informatyce jest przecież znacznie mniej niejasności terminologicznych czy definicyjnych, ale informatyka jest jedną z niewielu dziedzin, w której istnieje znormalizowane słownictwo. Wraz z rozwojem nowych technologii pojawiły się nowe typy przestępstw skierowanych przeciwko tradycyjnie chronionym dobrom prawnym, popełnianych przy użyciu komputerów (przestępstwa komputerowe w szerokim znaczeniu: sensu largo), bądź mających na celu paraliż systemu komputerowego, kradzież czy zniszczenie danych w nim przechowywanych (przestępstwa komputerowe w wąskim znaczeniu: sensu stricte). Podejmowano różne próby zdefiniowania pojęcia przestępstwa komputerowego, jednak jak do tej pory odnoszą się one bardziej do próby opisu zjawiska przez ekspertów bądź specjalistyczne instytucje. Pojawiają się także próby ich podziałów (zainteresowanych odsyłamy do lektury Europejskiej Konwencji o Cyberprzestępczości — Convention on Cybercrime, Concil of Europe, Budapest, 23.XI.2001, http://conventions.coe.int/ Treaty/EN/Treaties/Html/185.htm, tekst polskojęzyczny (tłumaczenie robocze): http:// ´www.ms.gov.pl/ue/ue3in32.shtml, gdzie został przedstawiony podział będący proponowanym w skali globalnej standardem do przyjęcia). Prawo próbuje nadążać za rozwojem rzeczywistości, ale siłą rzeczy w przypadku obszaru nowych technologii jest to praktycznie niemożliwe. Stąd, niestety, niektóre przyjęte regulacje prawne zbyt szybko tracą aktualność, a z kolei pewne typy naruszeń pozostają poza ich obrębem. Obecnie w prawie polskim nie ma jednolitego zbioru przepisów dotyczących szeroko rozumianego prawa komputerowego. Brak jest też, niestety, spójności pomiędzy redakcją przepisów prawa a słownictwem używanym w normach (Polskie Normy, normy ISO), co może być dla Ciebie źródłem jeszcze większego zamieszania.

126

13 najpopularniejszych sieciowych ataków na Twój komputer

5.2. Prawna ochrona bezpieczeństwa informacji Nas — ze względu na to, iż tematem przewodnim książki jest ochrona danych informatycznych — zasadniczo najbardziej będą interesowały przepisy prawa materialnego zebrane w rozdziale XXXIII Kodeksu karnego — Przestępstwa przeciwko ochronie informacji oraz art. 287 i 165 § 1 pkt. 4). Spróbujmy po kolei przyjrzeć im się bliżej i omówić najistotniejsze zagadnienia z nimi związane. Poniżej dla ułatwienia masz je wypisane prosto z Kodeksu karnego: Art. 267. § 1. Kto bez uprawnienia uzyskuje informację dla niego nie przeznaczoną, otwierając zamknięte pismo, podłączając się do przewodu służącego do przekazywania informacji lub przełamując elektroniczne, magnetyczne albo inne szczególne jej zabezpieczenie, podlega grzywnie, karze ograniczenia wolności albo pozbawienia wolności do lat 2. § 2. Tej samej karze podlega, kto w celu uzyskania informacji, do której nie jest uprawniony, zakłada lub posługuje się urządzeniem podsłuchowym, wizualnym albo innym urządzeniem specjalnym. § 3. Tej samej karze podlega, kto informację uzyskaną w sposób określony w § 1 lub 2 ujawnia innej osobie. § 4. Ściganie przestępstwa określonego w § 1 – 3 następuje na wniosek pokrzywdzonego. Art. 268. § 1. Kto, nie będąc do tego uprawnionym, niszczy, uszkadza, usuwa lub zmienia zapis istotnej informacji albo w inny sposób udaremnia lub znacznie utrudnia osobie uprawnionej zapoznanie się z nią, podlega grzywnie, karze ograniczenia wolności albo pozbawienia wolności do lat 2. § 2. Jeżeli czyn określony w § 1 dotyczy zapisu na komputerowym nośniku informacji, sprawca podlega karze pozbawienia wolności do lat 3. § 3. Kto, dopuszczając się czynu określonego w § 1 lub 2, wyrządza znaczną szkodę majątkową, podlega karze pozbawienia wolności od 3 miesięcy do lat 5. § 4. Ściganie przestępstwa określonego w § 1 – 3 następuje na wniosek pokrzywdzonego.

Rozdział 5. ♦ Zanim zostaniesz przestępcą

127

Art. 268a. § 1. Kto, nie będąc do tego uprawnionym, niszczy, uszkadza, usuwa, zmienia lub utrudnia dostęp do danych informatycznych albo w istotnym stopniu zakłóca lub uniemożliwia automatyczne przetwarzanie, gromadzenie lub przekazywanie takich danych, podlega karze pozbawienia wolności do lat 3. § 2. Kto, dopuszczając się czynu określonego w § 1, wyrządza znaczną szkodę majątkową, podlega karze pozbawienia wolności od 3 miesięcy do lat 5. § 3. Ściganie przestępstwa określonego w § 1 lub 2 następuje na wniosek pokrzywdzonego. Art. 269. § 1. Kto niszczy, uszkadza, usuwa lub zmienia dane informatyczne o szczególnym znaczeniu dla obronności kraju, bezpieczeństwa w komunikacji, funkcjonowania administracji rządowej, innego organu państwowego lub instytucji państwowej albo samorządu terytorialnego albo zakłóca lub uniemożliwia automatyczne przetwarzanie, gromadzenie lub przekazywanie takich danych, podlega karze pozbawienia wolności od 6 miesięcy do lat 8. § 2. Tej samej karze podlega, kto dopuszcza się czynu określonego w § 1, niszcząc albo wymieniając nośnik informacji lub niszcząc albo uszkadzając urządzenie służące do automatycznego przetwarzania, gromadzenia lub przekazywania danych informatycznych. Art. 269a. Kto, nie będąc do tego uprawnionym, przez transmisję, zniszczenie, usunięcie, uszkodzenie lub zmianę danych informatycznych, w istotnym stopniu zakłóca pracę systemu komputerowego lub sieci teleinformatycznej, podlega karze pozbawienia wolności od 3 miesięcy do lat 5. Art. 269b. § 1. Kto wytwarza, pozyskuje, zbywa lub udostępnia innym osobom urządzenia lub programy komputerowe przystosowane do popełnienia przestępstwa określonego w art. 165 § 1 pkt. 4, art. 267 § 2, art. 268a § 1 albo § 2 w związku z § 1, art. 269 § 2 albo art. 269a, a także hasła komputerowe, kody dostępu lub inne dane umożliwiające dostęp do informacji przechowywanych w systemie komputerowym lub sieci teleinformatycznej, podlega karze pozbawienia wolności do lat 3. § 2. W razie skazania za przestępstwo określone w § 1, sąd orzeka przepadek określonych w nim przedmiotów, a może orzec ich przepadek, jeżeli nie stanowiły własności sprawcy.

128

13 najpopularniejszych sieciowych ataków na Twój komputer

Art. 287. § 1. Kto, w celu osiągnięcia korzyści majątkowej lub wyrządzenia innej osobie szkody, bez upoważnienia, wpływa na automatyczne przetwarzanie, gromadzenie lub przekazywanie danych informatycznych lub zmienia, usuwa albo wprowadza nowy zapis danych informatycznych, podlega karze pozbawienia wolności od 3 miesięcy do lat 5. § 2. W wypadku mniejszej wagi, sprawca podlega grzywnie, karze ograniczenia wolności albo pozbawienia wolności do roku. § 3. Jeżeli oszustwo popełniono na szkodę osoby najbliższej, ściganie następuje na wniosek pokrzywdzonego. Art. 165. § 1. Kto sprowadza niebezpieczeństwo dla życia lub zdrowia wielu osób albo dla mienia w wielkich rozmiarach: (…) 4) zakłócając, uniemożliwiając lub w inny sposób wpływając na automatyczne przetwarzanie, gromadzenie lub przekazywanie danych informatycznych, (…) podlega karze pozbawienia wolności od 6 miesięcy do lat 8. § 2. Jeżeli sprawca działa nieumyślnie, podlega karze pozbawienia wolności do lat 3. § 3. Jeżeli następstwem czynu określonego w § 1 jest śmierć człowieka lub ciężki uszczerbek na zdrowiu wielu osób, sprawca podlega karze pozbawienia wolności od lat 2 do 12. § 4. Jeżeli następstwem czynu określonego w § 2 jest śmierć człowieka lub ciężki uszczerbek na zdrowiu wielu osób, sprawca podlega karze pozbawienia wolności od 6 miesięcy do lat 8. To jest brzmienie przepisów obowiązujące w chwili pisania książki (maj 2008). Przepisy mają to do siebie, że od czasu do czasu się zmieniają, warto więc żebyś znał ich aktualne brzmienie. Ustawy — w tym i Kodeks karny — możesz całkowicie za darmo pobrać ze stron Sejmu http://www.sejm.gov.pl.

Cytowane powyżej artykuły określają następujące rodzaje przestępstw:  Art. 267 § 1 — tzw. hacking.  Art. 267 § 2 — podsłuch komputerowy.  Art. 268 § 2 — naruszenie integralności komputerowego zapisu informacji.  Art. 268a — udaremnienie lub utrudnienie korzystania z informacji.  Art. 269 — niszczenie danych informatycznych.  Art. 269a — sabotaż komputerowy.

Rozdział 5. ♦ Zanim zostaniesz przestępcą

129

 Art. 269b — tzw. narzędzia hakerskie.  Art. 287 — oszustwo komputerowe.  Art. 165 § 1 pkt. 4) — sprowadzenie stanu powszechnego niebezpieczeństwa.

Spróbujmy zatem zastanowić się, co jest karalne w świetle powołanych wyżej przepisów. Art. 267 § 1 penalizuje przestępstwo zwane w literaturze prawniczej hackingem — najpierw wyjaśnijmy samą nazwę. Ostatnio coraz częściej spotkać się można z krzykliwymi nagłówkami prasowymi dotyczącymi „ataków hakerskich”, w świetle których haker to groźny przestępca. Tymczasem w świecie informatyków haker to raczej komputerowy pasjonat, osoba mająca wiedzę informatyczną, testująca zabezpieczenia w celu wyeliminowania błędów w programie, ale określenie to ma wydźwięk neutralny lub pozytywny. Natomiast kogoś, kto bez uprawnienia przełamuje zabezpieczenia, uzyskując dostęp do systemu, nazywa się crackerem i słowo to ma znaczenie negatywne. Jednak, głównie właśnie za sprawą mediów, określenia haker i hacking uzyskały znaczenie pejoratywne i powszechnie są stosowane jako synonimy działań o charakterze przestępczym. Prawnicy używają pojęcia hackingu do określenia przestępstwa określonego w art. 267 § 1 k.k. — nieuprawnionego uzyskania dostępu do informacji przechowywanej lub przetwarzanej w systemach i sieciach komputerowych poprzez przełamanie zabezpieczeń. Zgodnie z jego brzmieniem karalne jest uzyskanie informacji przez osobę, która nie była uprawniona do jej posiadania, a jednym ze sposobów uzyskania tejże informacji może być przełamanie zabezpieczeń elektronicznych. Co konkretnie rozumieć pod pojęciem uzyskania? Okazuje się to nie być takie proste, bo termin ten może być rozumiany dwojako: po pierwsze jako samo wejście w posiadanie nośnika informacji, po drugie jako zapoznanie się z jej treścią — i to ta druga interpretacja jest częściej przyjmowana. Podkreślmy, że w świetle prawa polskiego karalne jest właśnie uzyskanie informacji, a nie samo wejście do systemu informatycznego, a więc już widzimy tutaj rozbieżności pomiędzy tym, co polski ustawodawca nazywa hackingem, a co znaczyć by to mogło dla informatyka (i taka redakcja przepisu jest szeroko krytykowana przez przedstawicieli doktryny prawniczej oraz nie jest tożsama z wyznaczonymi obecnie standardami regulacji w tej dziedzinie w świetle Europejskiej Konwencji o Cyberprzestępczości). Dlatego jedna z proponowanych wykładni tego przepisu zakłada, iż haker, łamiąc zabezpieczenie w postaci hasła, zapoznaje się już z nieprzeznaczoną dla niego informacją, jaką jest treść hasła, co wyczerpywałoby znamiona przestępstwa z art. 267 § 1 k.k. Zdajesz sobie jednak sprawę (a jeśli nie, to jeszcze raz przeczytaj poprzednie rozdziały książki), że do „wejścia do systemu informatycznego” nie potrzeba czasami wcale znajomości hasła, więc różnie to może wyglądać. Jak ktoś kiedyś powiedział „dla hakera w prawie są luki, jak zresztą we wszystkim”. Co więcej, przepis, o którym mówimy, stawia wymóg faktycznego zabezpieczenia informacji, a więc jeśli w momencie popełnienia czynu zabezpieczenie nie istniało albo nie było aktywne, nie można mówić o popełnieniu przestępstwa. Zatem z punktu widzenia ewentualnego pociągnięcia sprawcy do odpowiedzialności karnej bardzo ważna jest dbałość o posiadanie aktywnych zabezpieczeń, dane niezabezpieczone nie podlegają ochronie prawnej (sic!). Zatem jeśli pełnisz w firmie obowiązki administratora — wystrzegaj się zaniedbań w tym zakresie. Jeśli np. korzystasz z nieszyfrowanej

130

13 najpopularniejszych sieciowych ataków na Twój komputer

sieci bezprzewodowej, to sam szukasz kłopotów. Ani prokuratura, ani policja, ani sąd nie uznają, że ktoś „włamał się” do Twojej sieci. Nie ma zabezpieczeń — nie ma ich przełamywania. Przepis mówi też wyłącznie o uzyskaniu informacji poprzez przełamanie zabezpieczeń, a wykładnia przepisu wprowadza dość kontrowersyjne pojęcie „ominięcia” zabezpieczeń. Informatyk zapewne potraktuje obejście zabezpieczeń jako szczególny przypadek przełamania, natomiast prawnicy rozróżniają te pojęcia. Według najpopularniejszej wykładni przepisu obejście to takie działanie, które nie oddziałuje bezpośrednio na istniejące zabezpieczenia i nie usuwa ich. W praktyce ustalenie, czy mamy do czynienia z przełamaniem, czy ominięciem zabezpieczenia, może nie być takie proste, nawet dla specjalisty w tym zakresie. Jako przykłady „obejść” w literaturze prawniczej podaje się przechwytywanie sesji (ang. session hijacking). Różnorodne techniki ataków na systemy informatyczne nie dają się tak łatwo sklasyfikować, a o tym, co w jest przełamaniem, a co ominięciem, zdecyduje w konkretnym przypadku sąd, opierając się na opinii biegłych informatyków. W każdym razie trudno spodziewać się, żeby za „przełamanie” uznać np. atak SQL-injection (np. dopisanie w URL-u „or 1=1”), natomiast na pewno będzie nim — powiedzmy — zainstalowanie na komputerach użytkowników rootkitów zamieniających je w sieć zombie. Jak widać, jest tu spore pole do popisu dla prawników. A wydawało się, że wszystko jest takie oczywiste... Pamiętaj też, że nawet jeśli nie nastąpiło przełamanie zabezpieczeń i czyn nie wypełnia znamion przestępstwa określonego w art. 267 § 1 k.k., to i tak może on wypełniać znamiona innego przestępstwa np. określonego w art. 268a § 1 k.k. zakłócenia pracy systemu informatycznego, albo też konkretne działanie może mieścić się w ramach opisów czynów zabronionych określonych w kilku różnych artykułach, np. fizyczne zniszczenie zabezpieczeń informatycznych (np. wejście do serwerowni i przełączenie sieci firmowej na bezpośrednie połączenie z Internetem z ominięciem zapory sieciowej) z pewnością będzie „przełamaniem zabezpieczeń”, to jednak należałoby raczej uznać za działania wypełniające znamiona art 268a §1 k.k. (przewidującego zresztą karę surowszą niż omawiany artykuł 267 § 1). Jak więc widzisz, nie jest to takie proste, jak można by sobie wyobrazić. Jeśli przechwycisz ruch w sieci bezprzewodowej, to wszystko jest w porządku, jeśli — tym samym narzędziem — spróbujesz np. odzyskać hasło WEP metodą „wstrzykiwania” ramek dla znalezienia wektora inicjalizacji — popełniasz przestępstwo. Wystrzegaj się więc używania narzędzi, których działania dokładnie nie znasz. Większość ataków w sieciach komputerowych prowadzona jest przez tzw. script kiddies, czyli osoby, które korzystają z gotowych rozwiązań, nie zagłębiając się w tajniki ich działania. Osoba taka zazwyczaj uruchamia zestaw skryptów i oczekuje na wyniki. Nie zawsze nawet metody informatyki śledczej pozwolą stwierdzić, w jaki sposób doszło do ujawnienia poufnych informacji, w szczególności jeśli system podatny jest na różne rodzaje ataków — w tym takie, które można uznać za „ominięcia”, i takie, które można uznać za „przełamania”. Może okazać się, że o klasyfikacji prawnej czynu zadecyduje kolejność uruchamiania odpowiednich skryptów, o ile da się ją na podstawie analizy powłamaniowej ustalić.

Rozdział 5. ♦ Zanim zostaniesz przestępcą

131

Zastanów się też nad legalnością prowadzenia rozmaitych „auditów bezpieczeństwa” i „testów penetracyjnych”. Pamiętaj o sformułowaniu użytym w treści omawianego art. 267 § 1 k.k. — karalne jest uzyskanie informacji przez osobę, dla której informacja nie była przeznaczona, a więc nieuprawnioną do jej uzyskania. Czy zatem we „własnej” sieci (np. osiedlowej sieci amatorskiej) jesteś uprawniony do dokonywania testów penetracyjnych? To zależy od sposobu, w jaki sformułowano umowy, zakresy odpowiedzialności, uprawnień i obowiązków. Czy osobą uprawnioną może być kolega administratora, z którym ten umówił się, że przeprowadzi jakąś próbę włamania? Raczej nie. Taka osoba narazi się na odpowiedzialność karną. Nie polecamy Ci także zabawy w „usłużnego wykrywacza luk bezpieczeństwa w systemach”. Trudno czasami odróżnić takie „dobre intencje” od próby wymuszenia. Zresztą, o ile np. choćby skanowanie portów trudno uznać za „uzyskiwanie informacji nie przeznaczonej dla działającego” (będzie to przecież uzyskiwanie udostępnianej domyślnie wszystkim zainteresowanym przez system operacyjny informacji o możliwości skorzystania z usług oferowanych przez serwer), o tyle łatwo sobie wyobrazić, że może doprowadzić ono np. do zawieszenia się któregoś z komputerów u ofiary (rzeczywiście wczesne wersje niektórych systemów operacyjnych dziwnie reagowały np. na pakiety z niestandardowymi flagami albo nawet na nadmiar przychodzących pakietów SYN). Pytanie, czy dla prokuratora wyczerpie to znamiona jeszcze innego przestępstwa, mianowicie sabotażu komputerowego (art. 269a k.k.)? Może okazać się, że tak. Jeśli to Ty staniesz się celem „niezamawianego auditu”, powinieneś sam zdecydować, czy zwrócić się do policji lub prokuratury (jeśli penetracja i informacja o niej miała jawnie złowrogi charakter i wiązała się np. z próbą wymuszenia zapłaty za ujawnienie i załatanie znalezionych luk), czy raczej podziękować za okazaną — choć w sposób nieco niefortunny — troskę o bezpieczeństwo. Jeśli stało się to w Twoim miejscu pracy, powinieneś oczywiście poinformować osobę zarządzającą instytucją, w której pracujesz. Pamiętaj, że policja i prokuratura nie mają specjalistycznej wiedzy z dziedziny informatyki. W wypadku uzasadnionego podejrzenia popełnienia przestępstwa przez te organy może zostać wszczęte i prowadzone postępowanie przygotowawcze, które może przejść w postępowanie sądowe. Postępując lekkomyślnie, możesz narazić się na spore nieprzyjemności i koszty, włączając postawienie się w roli podejrzanego lub dalej — oskarżonego. Przykład z życia wzięty to właśnie wszczęcie śledztwa przeciwko osobie, która według własnych słów — dokonała ataku typu SQL-injection polegającego — w uproszczeniu — na odpowiednim sformułowaniu kwerendy przekazywanej przez przeglądarkę WWW. W przypadku wrażliwej konstrukcji strony WWW kwerenda taka prowadzi do potencjalnego uzyskania dostępu do danych, który normalnie wymaga podania hasła. W opinii biegłego nie doszło do przełamania zabezpieczeń serwera. Zatem ustalono, że podejrzany nie naruszył w danym konkretnym przypadku działania zabezpieczeń, raczej wykorzystał lukę w zabezpieczeniach i fakt, że zostały one źle oprogramowane. Jednak każdy przypadek musi być rozpatrywany indywidualnie i pamiętaj, że jeśli podejmujesz ryzykowne zachowania, może czekać Cię długa droga „udowadniania niewinności”. Nawet jeśli wszystko zakończy się dobrze, po co narażać się na nieprzyjemne śledztwo czy zatrzymanie (w najlepszym razie Twojego komputera) do czasu wyjaśnienia sprawy?

Z drugiej strony sprawdzanie bezpieczeństwa sieci czy serwerów, które (przy założeniu, że jesteśmy „osobą uprawnioną”) winno być prowadzone systematycznie, wymaga od strony technicznej użycia specjalnie do tego przygotowanych narzędzi. Są to przede wszystkim skanery bezpieczeństwa (np. Internet Security Scanner, Nessus

132

13 najpopularniejszych sieciowych ataków na Twój komputer

czy Retina), można też w skrajnym przypadku zdecydować się na test penetracyjny — spróbować przeprowadzić atak (np. uruchomić prawdziwego exploita) przeciwko własnemu systemowi. I właśnie tutaj pojawia się kolejna istotna kwestia prawna — karalność użycia tzw. narzędzi hakerskich określona w art. 269b k.k. W prawie polskim karalne jest wytwarzanie, pozyskiwanie, zbywanie lub udostępnianie innym osobom tzw. narzędzi hakerskich, a więc urządzeń lub programów komputerowych przystosowanych do popełnienia przestępstw wymienionych w art. 269b k.k. (czyli, jak czytamy po kolei w przepisie przestępstw określonych w: art. 165 § 1 pkt. 4 — sprowadzenia stanu powszechnego niebezpieczeństwa; art. 267 § 2 — podsłuchu komputerowego; art. 268a § 1 albo § 2 w związku z § 1 — udaremnienia lub utrudnienia korzystania z informacji; art. 269 § 2 albo art. 269a — sabotażu komputerowego) lub haseł komputerowych, kodów dostępu lub innych danych umożliwiających dostęp do informacji przechowywanych w systemie komputerowym lub sieci teleinformatycznej. Brak jest natomiast w przepisie doprecyzowania, iż karalność takich zachowań następuje jedynie w wypadku zamiaru popełnienia przestępstwa (dlatego aktualna redakcja przepisu jest krytykowana). Administratorzy sieci posługujący się takim oprogramowaniem w celach jak najbardziej słusznych znaleźli się wobec tego zapisu w mało komfortowej sytuacji. Stosowanie wykładni językowej dla wyjaśnienia treści przepisu w tym przypadku wydaje się być nieracjonalne, przy obecnej chybionej redakcji trzeba raczej odwołać się do wykładni celowościowej. I w myśl tej wykładni przepis ma mieć zastosowanie, gdy program komputerowy lub urządzenie zostało wytworzone w celu popełnienia przestępstwa — przepis pozwala na ściganie twórców wirusów komputerowych, nie zaś w celu testowania lub ochrony systemu informatycznego. W praktyce przepis ten nie jest zbyt często stosowany, przynajmniej według statystyk Ministerstwa Sprawiedliwości do 2006 roku włącznie nikt nie został z niego prawomocnie skazany, choć — według statystyk Komendy Głównej Policji — policja uznała, że kilkukrotnie popełniono przestępstwo z tego artykułu. Kodeks karny nie przewiduje odpowiedzialności za podstępne uzyskanie informacji przez osobę nieuprawnioną (social engineering), chyba że nastąpiło to przy użyciu urządzenia podsłuchowego, wizualnego lub innego urządzenia specjalnego (czyli możesz podsłuchiwać pod drzwiami, ale już nie wolno sobie w tym pomagać np. aparatem słuchowym). W odniesieniu do komputerów możemy mówić w kontekście art. 267 § 2 k.k. o podsłuchu komputerowym. Komputer z zainstalowanym odpowiednim oprogramowaniem może być uznany za urządzenie specjalne w świetle tego artykułu (choć trwają wśród prawników dyskusje na ten temat). I tu karalne jest już samo posługiwanie się urządzeniem przez osobę nieuprawnioną, nie jest istotne, czy sprawca faktycznie uzyskał informację. Nie ma też znaczenia, czy informacja ta była skutecznie zabezpieczona. Ustawodawcy chodzi w tym przypadku głównie o ochronę prywatności człowieka. Zatem samo monitorowanie ruchu w sieci za pomocą sniffera jest już zachowaniem karalnym, o ile oczywiście nie mamy do tego potrzebnych uprawnień. Takowe zazwyczaj ma administrator sieci, ale pamiętaj, że powinno to być gdzieś (w jego zakresie obowiązków czy regulaminie sieci) na piśmie uwzględnione. Jeśli współdzielisz z kolegą łącze internetowe i to Ty uważasz się za administratora tego rozwiązania, to wcale nie znaczy, że wolno Ci czytać jego listy czy sprawdzać, po jakich stronach surfuje.

Rozdział 5. ♦ Zanim zostaniesz przestępcą

133

Jeśli ktoś, nie będąc do tego uprawnionym, utrudnia lub uniemożliwia osobie uprawnionej zapoznanie się z istotną dla niej informacją, a więc niszczy, uszkadza, usuwa lub zmienia zapis istotnej informacji na komputerowym nośniku bądź w inny sposób udaremnia lub znacznie utrudnia tej osobie zapoznanie się z nią — podlega odpowiedzialności na podstawie art. 268 § 2. W przypadku wyrządzenia takim działaniem znacznej szkody majątkowej sprawca odpowiada z art. 268 § 3 k.k. (zagrożenie wyższą karą). Z kolei jeśli swoim działaniem spowodujesz zniszczenie, uszkodzenie, usunięcie, zmianę lub utrudnienie dostępu do danych informatycznych bądź zakłócenie w istotnym stopniu lub uniemożliwienie automatycznego przetwarzania, gromadzenia lub przekazywania takich danych — to popełnisz przestępstwo określone w art. 268a. k.k. W przypadku gdy dotyczyło to danych informatycznych o szczególnym znaczeniu dla obronności kraju, bezpieczeństwa w komunikacji, funkcjonowania administracji rządowej, innego organu państwowego albo samorządu terytorialnego — poniesiesz większą odpowiedzialność określoną w art. 269 k.k. Dotyczy to również działania na szkodę innych niż polski rządów czy samorządów. Za naruszenie prawidłowego funkcjonowania systemu komputerowego lub sieci teleinformatycznej poprzez transmisję, zniszczenie, usunięcie lub zmianę danych (np. rozsyłanie wirusów komputerowych) na podstawie art. 269a k.k. grozi kara pozbawienia wolności od 3 miesięcy do lat 5 (sabotaż komputerowy). Natomiast wpływanie na automatyczne przetwarzanie, gromadzenie lub przesyłanie informacji elektronicznych bądź ich zmienianie, usuwanie albo wprowadzanie nowego zapisu, dokonywane w celu osiągnięcia korzyści majątkowej lub wyrządzenia szkody innej osobie, nazywane jest oszustwem komputerowym i wypełnia znamiona czynu z art. 287 § 1 k.k. (bez tej motywacji sprawca popełnia czyn z wskazanego powyżej art. 268 k.k.). Włamanie na stronę internetową firmy jest traktowane jak przestępstwo właśnie z tego artykułu. System systemowi nie równy i z kolei zakłócenie pracy systemu informatycznego wiążące się ze skutkiem wywołania przez sprawcę stanu zagrożenia o charakterze powszechnym, dotyczącym życia lub zdrowia wielu osób lub mienia w znacznych rozmiarach, to przestępstwo określone w art. 164 § 1 pkt. 4) i wiąże się ze znacznie wyższą odpowiedzialnością karną. Nie czyń drugiemu, co Tobie niemiłe, nie rozsyłaj spamu. Rozsyłając oferty bez uprzednio wyrażonej zgody odbiorcy popełniasz wykroczenie. Mówi o tym przepis karny zamieszczony w ustawie z 18 lipca 2004 r. o świadczeniu usług drogą elektroniczną (Dz. U. Nr 144, poz. 1204 z późn. zm.) — art. 24, który brzmi: Art. 24. 1. Kto przesyła za pomocą środków komunikacji elektronicznej niezamówione informacje handlowe, podlega karze grzywny. 2. Ściganie wykroczenia, o którym mowa w ust. 1, następuje na wniosek pokrzywdzonego. Pewne kategorie informacji i danych wymagają zapewnienia szczególnych warunków bezpieczeństwa informatycznego — dokładnie określonych w przepisach prawnych. Jeśli Twoja praca tego wymaga — musisz zwrócić na to szczególną uwagę, tak aby stworzona i wdrożona przez Ciebie polityka bezpieczeństwa odpowiadała wymogom

134

13 najpopularniejszych sieciowych ataków na Twój komputer

prawnym. Wobec systemów i sieci teleinformatycznych służących do wytwarzania, przetwarzania, przechowywania lub przekazywania informacji niejawnych wymogi te zostały określone w rozdziale 10 ustawy z 22 stycznia 1999 r. o ochronie informacji niejawnych (Dz. U. z 1999 r., Nr 11, poz. 95, z późn. zm.) oraz rozporządzeniu wykonawczym do niej z 25 sierpnia 2005 r. w sprawie podstawowych wymagań bezpieczeństwa teleinformatycznego (Dz. U. z 2005 r., Nr 171, poz. 1433). Są to wytyczne w zakresie ochrony fizycznej (§ 5 rozporządzenia), elektromagnetycznej (§ 6), kryptograficznej (§ 7). Należy zapewnić niezawodność transmisji (§ 8) oraz kontrolę dostępu do systemu lub sieci (§ 9). Z kolei warunki w zakresie zapewnienia zabezpieczenia danych osobowych określone są w art. 36 – 39 ustawy z 29 sierpnia 1997 r. o ochronie danych osobowych (tekst jednolity: Dz. U. z 2002 r., Nr 101, poz. 926 z późn. zm.), a co do danych osobowych przechowywanych w systemach informatycznych dodatkowo doprecyzowane w rozporządzeniu Ministra Spraw Wewnętrznych i Administracji z 29 kwietnia 2004 r. w sprawie dokumentacji przetwarzania danych osobowych oraz warunków technicznych i organizacyjnych, jakim powinny odpowiadać urządzenia i systemy informatyczne służące do przetwarzania danych osobowych (Dz. U. z 2004 r., Nr 100, poz. 926). Zgodnie z nim powinny zostać opracowane polityka bezpieczeństwa i instrukcja zarządzania systemem informatycznym służącym do przetwarzania danych osobowych (§ 3 rozp.). Elementy polityki bezpieczeństwa określa § 4, zakres instrukcji zawiera § 5 rozporządzenia. Ze względu na kategorie przetwarzanych danych wprowadza się trzy poziomy bezpieczeństwa — podstawowy, podwyższony i wysoki, opisane w załączniku do rozporządzenia. Administrator zbioru danych (którym jest w rozumieniu ustawy podmiot decydujący o celach i środkach przetwarzania danych) wyznacza w celu zapewnienia ochrony administratora bezpieczeństwa informacji, więc osobę nadzorującą przestrzeganie zasad ochrony. Jeśli jesteś odpowiedzialny za bezpieczeństwo takiej sieci (zostałeś wyznaczony na stanowisko administratora bezpieczeństwa informacji albo Twój zakres obowiązków przewiduje pełnienie takiej funkcji), musisz pamiętać m.in. o: 1) fizycznym zabezpieczeniu pomieszczeń, w których przetwarzane są dane osobowe; 2) kontroli osób w nich przebywających i ochronie przed dostępem osób nieuprawnionych; 3) zapewnieniu ochrony przed nieuprawnionym dostępem do systemu; 3) zapewnieniu awaryjnego zasilania; 4) nadzorze nad sprawdzaniem obecności wirusów komputerowych oraz wykonywaniu i przechowywaniu kopii awaryjnych; 5) zarządzaniu hasłami użytkowników oraz procedurą ich zmiany; 6) zabezpieczeniu systemu informatycznego w przypadku stwierdzenia naruszenia jego bezpieczeństwa. Ustawa o ochronie danych osobowych zawiera przepisy karne (rozdział 8). Dotyczą one m.in. odpowiedzialności za udostępnienie lub umożliwienie udostępnienia danych osobom nieupoważnionym (art. 51) oraz niedopełnienia obowiązku dotyczącego zabezpieczenia danych przed ich zabraniem, uszkodzeniem lub zniszczeniem (art. 52). Przepisy stanowią, że odpowiedzialność ta dotyczy administratora danych osobowych (przypomnijmy: w rozumieniu ustawy podmiotu decydującego o celach i środkach przetwarzania danych) oraz w przypadku art. 51 także osoby zobowiązanej do ochrony danych osobowych. Na koniec wreszcie o jeszcze jednej kategorii informacji, której przetwarzanie jest w Polsce karalne.

Rozdział 5. ♦ Zanim zostaniesz przestępcą

135

Art. 202. § 1. Kto publicznie prezentuje treści pornograficzne w taki sposób, że może to narzucić ich odbiór osobie, która tego sobie nie życzy, podlega grzywnie, karze ograniczenia wolności albo pozbawienia wolności do roku. § 2. Kto małoletniemu poniżej lat 15 prezentuje treści pornograficzne lub udostępnia mu przedmioty mające taki charakter albo rozpowszechnia treści pornograficzne w sposób umożliwiający takiemu małoletniemu zapoznanie się z nimi, podlega grzywnie, karze ograniczenia wolności albo pozbawienia wolności do lat 2. § 3. Kto w celu rozpowszechniania produkuje, utrwala lub sprowadza, przechowuje lub posiada albo rozpowszechnia lub publicznie prezentuje treści pornograficzne z udziałem małoletniego albo treści pornograficzne związane z prezentowaniem przemocy lub posługiwaniem się zwierzęciem, podlega karze pozbawienia wolności od 6 miesięcy do lat 8. § 4. Kto utrwala treści pornograficzne z udziałem małoletniego poniżej lat 15, podlega karze pozbawienia wolności od roku do lat 10. § 4a. Kto sprowadza, przechowuje lub posiada treści pornograficzne z udziałem małoletniego poniżej lat 15, podlega karze pozbawienia wolności od 3 miesięcy do lat 5. § 5. Sąd może orzec przepadek narzędzi lub innych przedmiotów, które służyły lub były przeznaczone do popełnienia przestępstw określonych w § 1-4, chociażby nie stanowiły własności sprawcy. Ponieważ możesz stać się świadkiem takiej sytuacji (np. otrzymać spam zawierający podejrzane zdjęcia lub trafić na stronę WWW oferującą treści tego rodzaju), warto wiedzieć, jak powinieneś się w takiej sytuacji zachować. Przede wszystkim możesz i powinieneś zgłosić istnienie tego rodzaju serwisów do dyżurnetu —zespołu Naukowej Akademickiej Sieci Komputerowej zajmującego się zwalczaniem tego typu przestępczości. Dzięki współpracy z podobnymi zespołami na całym świecie jest szansa, że sprawa znajdzie swój finał w sądzie niezależnie od miejsca, w którym stoi serwer. Po wtóre możesz i powinieneś zgłosić podejrzenie popełnienia przestępstwa na policji lub w prokuraturze (o ile do dyżurnetu możesz to uczynić anonimowo, o tyle policja do wszczęcia oficjalnego dochodzenia będzie potrzebować Twoich danych, jakkolwiek nawet anonimy są traktowane poważnie i mogą pociągnąć za sobą podjęcie działań operacyjnych). Możesz zgłosić się do dowolnego komisariatu policji niezależnie od miejsca Twojego zamieszkania czy lokalizacji serwera.

136

13 najpopularniejszych sieciowych ataków na Twój komputer

5.3. Punkt widzenia zależy od punktu siedzenia. Prawa autorskie Chociaż nie jest to bezpośrednio związane z tematem przewodnim książki, zdecydowaliśmy się jeszcze dodatkowo zamieścić krótką informację dotyczącą odpowiedzialności karnej za naruszenie praw autorskich. Temat ten wydaje nam się bardzo istotny z praktycznego punktu widzenia z uwagi na powszechność naruszeń w tym zakresie. Istnieje ogromna łatwość i jakaś niepisana akceptacja społeczna nieprzestrzegania praw autorskich związana z wykorzystaniem nowych technologii i Internetu. Spojrzenie na to różni się jednak w zależności od tego, po której stronie biurka siedzimy. Jeśli jesteś twórcą — nie chciałbyś pewnie, by ktoś inny przywłaszczył sobie autorstwo Twojego dzieła ani by czerpał korzyści majątkowe związane z jego rozpowszechnianiem z pominięciem Twojej kieszeni. Jeśli zaś jesteś niezbyt zamożnym użytkownikiem — cóż, wtedy szukasz pewnie na pobliskim bazarze lub w Internecie nielegalnych kopi programów komputerowych, filmów, muzyki. Albo, co gorsza, sam kopiujesz je i rozpowszechniasz… Zobacz zatem, jak to wygląda w świetle przepisów polskiego prawa i na co możesz sobie pozwolić, a co naraża Cię na odpowiedzialność karną w świetle Kodeksu karnego i ustawy z 4 lutego 1994 o prawie autorskim i prawach pokrewnych (Dz. U. 1994 Nr 24, poz. 83 ze zm.): Art. 278. § 2 k.k. piractwo komputerowe Art. 278. § 1. Kto zabiera w celu przywłaszczenia cudzą rzecz ruchomą, podlega karze pozbawienia wolności od 3 miesięcy do lat 5. § 2. Tej samej karze podlega, kto bez zgody osoby uprawnionej uzyskuje cudzy program komputerowy w celu osiągnięcia korzyści majątkowej. § 3. W wypadku mniejszej wagi, sprawca podlega grzywnie, karze ograniczenia wolności albo pozbawienia wolności do roku. § 4. Jeżeli kradzież popełniono na szkodę osoby najbliższej, ściganie następuje na wniosek pokrzywdzonego. § 5. Przepisy § 1, 3 i 4 stosuje się odpowiednio do kradzieży energii lub karty uprawniającej do podjęcia pieniędzy z automatu bankowego. Art. 293 § 1. paserstwo programu komputerowego. Art. 293. § 1. Przepisy art. 291 i 292 stosuje się odpowiednio do programu komputerowego.

Rozdział 5. ♦ Zanim zostaniesz przestępcą

137

§ 2. Sąd może orzec przepadek rzeczy określonej w § 1 oraz w art. 291 i 292, chociażby nie stanowiła ona własności sprawcy. Art. 291. § 1. Kto rzecz uzyskaną za pomocą czynu zabronionego nabywa lub pomaga do jej zbycia albo tę rzecz przyjmuje lub pomaga do jej ukrycia, podlega karze pozbawienia wolności od 3 miesięcy do lat 5. § 2. W wypadku mniejszej wagi, sprawca podlega grzywnie, karze ograniczenia wolności albo pozbawienia wolności do roku. Art. 292. § 1. Kto rzecz, o której na podstawie towarzyszących okoliczności powinien i może przypuszczać, że została uzyskana za pomocą czynu zabronionego, nabywa lub pomaga do jej zbycia albo tę rzecz przyjmuje lub pomaga do jej ukrycia, podlega grzywnie, karze ograniczenia wolności albo pozbawienia wolności do lat 2. § 2. W wypadku znacznej wartości rzeczy, o której mowa w § 1, sprawca podlega karze pozbawienia wolności od 3 miesięcy do lat 5. Przepisy karne w ustawie o prawie autorskim i prawach pokrewnych: Art. 115. 1. Kto przywłaszcza sobie autorstwo albo wprowadza w błąd co do autorstwa całości lub części cudzego utworu albo artystycznego wykonania, podlega grzywnie, karze ograniczenia wolności albo pozbawienia wolności do lat 3. 2. Tej samej karze podlega, kto rozpowszechnia bez podania nazwiska lub pseudonimu twórcy cudzy utwór w wersji oryginalnej albo w postaci opracowania, artystyczne wykonanie albo publicznie zniekształca taki utwór, artystyczne wykonanie, fonogram, wideogram lub nadanie. 3. Kto w celu osiągnięcia korzyści majątkowej w inny sposób niż określony w ust. 1 lub ust. 2 narusza cudze prawa autorskie lub prawa pokrewne określone w art. 16, art. 17, art. 18, art. 19 ust. 1, art. 191, art. 86, art. 94 ust. 4 lub art. 97, albo nie wykonuje obowiązków określonych w art. 193 ust. 2, art. 20 ust. 1-4, art. 40 ust. 1 lub ust. 2, podlega grzywnie, karze ograniczenia wolności albo pozbawienia wolności do roku. Art. 116. 1. Kto bez uprawnienia albo wbrew jego warunkom rozpowszechnia cudzy utwór w wersji oryginalnej albo w postaci opracowania, artystyczne wykonanie, fonogram, wideogram lub nadanie, podlega grzywnie, karze ograniczenia wolności albo pozbawienia wolności do lat 2. 2. Jeżeli sprawca dopuszcza się czynu określonego w ust. 1 w celu osiągnięcia korzyści majątkowej, podlega karze pozbawienia wolności do lat 3.

138

13 najpopularniejszych sieciowych ataków na Twój komputer

3. Jeżeli sprawca uczynił sobie z popełniania przestępstwa określonego w ust. 1 stałe źródło dochodu albo działalność przestępną, określoną w ust. 1, organizuje lub nią kieruje, podlega karze pozbawienia wolności od 6 miesięcy do lat 5. 4. Jeżeli sprawca czynu określonego w ust. 1 działa nieumyślnie, podlega grzywnie, karze ograniczenia wolności albo pozbawienia wolności do roku. Art. 117. 1. Kto bez uprawnienia albo wbrew jego warunkom w celu rozpowszechnienia utrwala lub zwielokrotnia cudzy utwór w wersji oryginalnej lub w postaci opracowania, artystyczne wykonanie, fonogram, wideogram lub nadanie, podlega grzywnie, karze ograniczenia wolności albo pozbawienia wolności do lat 2. 2. Jeżeli sprawca uczynił sobie z popełniania przestępstwa określonego w ust. 1 stałe źródło dochodu albo działalność przestępną, określoną w ust. 1, organizuje lub nią kieruje, podlega karze pozbawienia wolności do lat 3. Art. 118. 1. Kto w celu osiągnięcia korzyści majątkowej przedmiot będący nośnikiem utworu, artystycznego wykonania, fonogramu, wideogramu rozpowszechnianego lub zwielokrotnionego bez uprawnienia albo wbrew jego warunkom nabywa lub pomaga w jego zbyciu albo przedmiot ten przyjmuje lub pomaga w jego ukryciu, podlega karze pozbawienia wolności od 3 miesięcy do lat 5. 2. Jeżeli sprawca uczynił sobie z popełniania przestępstwa określonego w ust. 1 stałe źródło dochodu albo działalność przestępną, określoną w ust. 1, organizuje lub nią kieruje, podlega karze pozbawienia wolności od roku do lat 5. 3. Jeżeli na podstawie towarzyszących okoliczności sprawca przestępstwa określonego w ust. 1 lub 2 powinien i może przypuszczać, że przedmiot został uzyskany za pomocą czynu zabronionego, podlega grzywnie, karze ograniczenia wolności albo pozbawienia wolności do lat 2. Art. 1181. 1. Kto wytwarza urządzenia lub ich komponenty przeznaczone do niedozwolonego usuwania lub obchodzenia skutecznych technicznych zabezpieczeń przed odtwarzaniem, przegrywaniem lub zwielokrotnianiem utworów lub przedmiotów praw pokrewnych albo dokonuje obrotu takimi urządzeniami lub ich komponentami, albo reklamuje je w celu sprzedaży lub najmu, podlega grzywnie, karze ograniczenia wolności albo pozbawienia wolności do lat 3. 2. Kto posiada, przechowuje lub wykorzystuje urządzenia lub ich komponenty, o których mowa w ust. 1, podlega grzywnie, karze ograniczenia wolności albo pozbawienia wolności do roku.

Rozdział 5. ♦ Zanim zostaniesz przestępcą

139

Art. 119. Kto uniemożliwia lub utrudnia wykonywanie prawa do kontroli korzystania z utworu, artystycznego wykonania, fonogramu lub wideogramu albo odmawia udzielenia informacji przewidzianych w art. 47, podlega grzywnie, karze ograniczenia wolności albo pozbawienia wolności do roku. Art. 122. Ściganie przestępstw określonych w art. 116 ust. 1, 2 i 4, art. 117 ust. 1, art. 118 ust. 1, art. 1181 oraz art. 119 następuje na wniosek pokrzywdzonego. W świetle prawa autorskiego utwór to „każdy przejaw działalności twórczej o indywidualnym charakterze, ustalony w jakiejkolwiek postaci, niezależnie od wartości, przeznaczenia i sposobu wyrażenia”. A więc zapamiętaj — mogą to być wyłącznie oryginalne, indywidualne dzieła, oceniane w kategoriach obiektywnych. W szczególności utworami mogą być: utwory literackie, publicystyczne, naukowe, kartograficzne, programy komputerowe, utwory plastyczne, lutnicze, wzornictwa przemysłowego, fotografie, utwory architektoniczne i urbanistyczne, muzyczne i słowno-muzyczne, choreograficzne i audiowizualne, w tym filmowe. W szczególności, czyli inne dzieła mające twórczy i indywidualny charakter, a niemieszczące się w tym katalogu, oczywiście podlegają ochronie, ale też trzeba pamiętać, że jakiekolwiek dzieło spośród tutaj wymienionych będzie podlegało ochronie prawnej właśnie pod warunkiem posiadania twórczego i oryginalnego charakteru. Tłumaczenie, przeróbka i adaptacja cudzego utworu są osobnym przedmiotem ochrony prawa autorskiego. Mamy też wykaz tego, co nie podlega ochronie prawnej, i są to: akty normatywne lub ich urzędowe projekty; urzędowe dokumenty, materiały, znaki i symbole; opublikowane opisy patentowe lub ochronne, proste informacje prasowe. Twórcą jest każdy, kto stworzył utwór, nie ma znaczenia, czy ma np. kierunkowe wykształcenie albo znane już nazwisko. Podkreśla się więź emocjonalną twórcy z utworem (której każdy z nas w codziennym życiu doświadczył) i dlatego twórcy przysługują niezbywalne autorskie prawa osobiste, w tym prawo do autorstwa. Z kolei autorskie prawa majątkowe (wygasają po upływie 70 lat od śmierci autora) dają Ci prawo do wynagrodzenia za korzystanie z utworu i wyłączność eksploatowania utworu na wszelkich polach eksploatacji (a więc jak czytamy w ustawie: utrwalenie dzieła, powielenie, wprowadzenie do obrotu, wprowadzenie do pamięci komputera, publiczne wykonanie lub odtworzenie, wystawienie, wyświetlenie, najem, dzierżawa, nadanie wizji lub fonii przez stacje naziemne, przez satelitę, retransmisja). Autorskie prawa majątkowe mogą przejść na inne osoby poprzez dziedziczenie lub podpisanie umowy o przeniesieniu praw autorskich lub licencji. Jeśli jesteś twórcą — ochrona Twoich praw przysługuje Ci od chwili powstania utworu, nie musisz dopełniać w związku z tym żadnych formalności ani rejestracji w urzędach. A z kolei za naruszenie praw autorskich możesz ponieść zarówno odpowiedzialność cywilną, jak i karną. Jeśli więc podpiszesz się pod czyimś tekstem, filmem, zdjęciem — a łatwo znaleźć taki „łup”, buszując w Internecie — popełnisz przestępstwo określone w art. 115 § 1 ustawy o pr. aut. i pr. pokr., czyli plagiat. Grozi Ci za to grzywna, kara ograniczenia wolności albo pozbawienia wolności do lat 3. Jeśli chcesz wykorzystać cudzy utwór w swoim opracowaniu, na swojej stronie internetowej — pamiętaj o podaniu jego autora i źródła pochodzenia. Możesz skorzystać z tzw. prawa cytatu.

140

13 najpopularniejszych sieciowych ataków na Twój komputer

Nie wolno rozpowszechniać cudzych utworów bez zgody uprawnionego — za takie przestępstwo możesz ponieść karę pozbawienia wolności nawet do dwóch lat (art. 116 § 1). Jeśli rozpowszechniasz cudze utwory, osiągając z tego tytułu korzyść majątkową lub, co gorsza, uczyniłeś sobie z tego stałe źródło dochodu — to możesz ponieść karę do 3 (w pierwszym przypadku) lub 5 (w drugim) lat pozbawienia wolności (art. 116 § 2 i 3). Więc co z popularnym ściąganiem plików muzycznych mp3 bądź filmów zapisanych w formacie divx dostępnych w Internecie? Pobieranie takich plików nie jest karalne, jeśli osoby kopiują je tylko na własny użytek. Jednak odpowiedzialność karną ponosi osoba udostępniająca te utwory, jeśli są to kopie nielegalne, np. sporządzone przez użytkowników z ich własnych kolekcji i udostępniane, powiedzmy, w sieciach peer-to-peer. Zastanów się zatem dobrze, zanim podeślesz komuś plik z filmem lub nagraniem muzycznym, bo za taką uczynność możesz słono zapłacić. Inaczej wygląda sprawa, jeśli chodzi o programy komputerowe — nie wolno ich pobierać nawet na swój własny użytek. Korzystając z nielegalnej kopii programu, już uzyskujesz korzyść majątkową (nie wydałeś pieniędzy na jego zakup) i tym samym popełniasz przestępstwo określone w art. 278 § 2 kodeksu karnego. W Twoim własnym interesie jest zadbanie o posiadanie licencji. Zawsze też dokładnie ją przeczytaj, bo są różne rodzaje licencji dające Ci różne uprawnienia do eksploatacji utworu. Większość klientów w sieci peer-to-peer ma ustawioną domyślną opcję udostępniania, a nie tylko pobierania plików. Zatem o ile samo pobieranie plików (z pominięciem programów komputerowych) nie jest karalne, to udostępnianie ich może być już przestępstwem.

Wyłomem w restrykcyjnym przestrzeganiu praw autorskich jest tzw. dozwolony użytek prywatny, określony w art. 23 ustawy o pr. aut. i pr. pokr. Chodzi o to, że bez zgody twórcy możesz korzystać z utworu w ramach tzw. własnego użytku osobistego, czyli w kręgu osób pozostających w związku osobistym — rodziny i znajomych. Dotyczy to wyłącznie utworów już rozpowszechnionych (mogą to być utwory rozpowszechnione jedynie w Internecie). Oznacza, że możesz sobie zrobić kopię zapasową jakiegoś pliku (co do programów komputerowych zasadniczo też, ale zawsze sprawdź w licencji), ale nie możesz takiej kopii umieścić na własnej stronie internetowej. Osoby pozostające w kręgu osobistym to osoby, z którymi utrzymujesz stały i bliski kontakt, a nie np. przypadkowo poznane na czacie. Możesz sobie odtwarzać muzykę z płyty CD na domowej prywatce, nie możesz zaś tego robić w pubie. Programów komputerowych nie możesz udostępniać (rozpowszechniać) w kręgu rodziny i znajomych.

Załącznik A

Nagrywanie obrazu ISO z załączonego krążka DVD Żeby skorzystać z obrazów ISO zamieszczonych na krążku DVD, należy przygotować z danego obrazu ISO oddzielny krążek bootujący (jeśli dany obraz jest obrazem startowym). Można w tym celu wykorzystać jeden z wielu dostępnych darmowych programów np. Ashampoo Burning Studio 6 (wymaga rejestracji w celu pobrania klucza rejestracyjnego) lub DeepBurner 1.8.0.224. Poniższa instrukcja dotyczy drugiego z wymienionych programów. Program DeepBurner można pobrać np. ze strony: http://dobreprogramy.pl/. Jest to bezpłatne narzędzie umożliwiające nagrywanie dowolnego rodzaju płyt CD oraz DVD. Program umożliwia tworzenie płyt bootowalnych. Interfejs jest dość przejrzysty, wykorzystuje technologię drag & drop (przeciągnij i upuść). Program wykorzystuje technologię zabezpieczającą przed opróżnieniem bufora Burn-prof, umożliwia również nagrywanie powyżej 700 MB na CD (Overburning). Program umożliwia też drukowanie etykietek na płyty. Instalacja programu jest typowa dla programów przeznaczonych dla platformę Windows. Ogranicza się do klikania przycisku Dalej. Po uruchomieniu programu pojawia się okno przedstawione na rysunku A.1. Aby nagrać plik ISO, należy wybrać opcję Burn ISO image. Pojawi się okno z rysunku A.2. Należy wskazać plik ISO do nagrania (jeśli w systemie dysponujemy tylko jedną nagrywarką, należy wybrany plik przegrać najpierw z płyty dołączonej do książki na dysk) w kontrolce Plik obrazu. Opcja Usuń obraz po pomyślnym nagraniu może być zaznaczona, jeśli obraz został uprzednio nagrany na dysk twardy. Trzeba również określić napęd, prędkość zapisu, wybrać liczbę kopii, ewentualnie przeprowadzić najpierw symulację zapisu.

142

13 najpopularniejszych sieciowych ataków na Twój komputer

Rysunek A.1. Okno programu DeepBurner zaraz po uruchomieniu

Rysunek A.2. Wybór pliku ISO do nagrania

Po nagraniu obrazu na płytę należy uruchomić ponownie komputer i w ustawieniach BIOSU (do BIOSU można wejść, wciskając klawisz Del lub F2) ustawić CD-ROM jako pierwszy nośnik, z którego komputer będzie próbował uruchomić system operacyjny (zobacz rysunek A.3).

Załącznik A ♦ Nagrywanie obrazu ISO z załączonego krążka DVD Rysunek A.3. Ustawienie bootowania z napędu CD-ROM

143

144

13 najpopularniejszych sieciowych ataków na Twój komputer

Załącznik B

Podstawy komunikacji sieciowej Rozdział ten jest poprawioną i uzupełnioną wersją dodatku A z książki 101 zabezpieczeń.... Biorąc pod uwagę rozwój, jaki przeszły sieci komputerowe od chwili jej napisania, postanowiliśmy uwzględnić w nim coraz popularniejsze sieci bezprzewodowe pracujące w oparciu o standardy 802.11 oraz adresowanie IP w wersji szóstej. Zrezygnowaliśmy natomiast ze szczegółowego omawiania przestarzałych już rozwiązań 10base2/ 10base5 oraz sieci wykorzystujących klasyczne koncentratory. Przesyłanie informacji pomiędzy systemami połączonymi w ramach sieci komputerowej, bądź pomiędzy sieciami połączonymi w intersieć, jest złożonym procesem angażującym szereg urządzeń i programów. Poniżej przedstawimy podstawowe informacje dotyczące najpopularniejszych obecnie standardów i technologii sieciowych.

Pojęcia podstawowe Sieć komputerowa jest to system przynajmniej dwóch komputerów połączonych medium1 transmisyjnym, za pomocą którego odbywa się przesyłanie danych lub uwspólnianie zasobów. Tradycyjnie wyróżnia się pięć rodzajów usług sieciowych2:  współdzielenie drukarek,  współdzielenie plików,  pocztę elektroniczną,  sieciowe bazy danych,  aplikacje sieciowe,

1

Medium (łac. środek, ośrodek) — środek transmisji danych np. przewód miedziany.

2

Usługa (ang. service) jest to sposób udostępniania zasobu (ang. resource).

146

13 najpopularniejszych sieciowych ataków na Twój komputer

przy czym przez sieciową bazę danych lub przez aplikację sieciową rozumie się oczywiście oprogramowanie, które potrafi wykorzystywać technologie sieciowe, a nie plik (z danymi lub wykonywalny) udostępniony w sieci przy wykorzystaniu mechanizmów współdzielenia plików. Taką sieciową aplikacją jest np. wyszukiwarka stron WWW. W zależności od geograficznego rozmiaru sieci dzieli się je na: sieci lokalne (ang. Local Area Network, LAN), rozległe (ang. Wide Area Network, WAN), miejskie (ang. Metropolitan Area Network, MAN) oraz kampusowe.  Sieci lokalne to sieci obejmujące swoim zasięgiem jedno bądź kilka sąsiadujących

pomieszczeń, lub w najlepszym razie kilka budynków położonych blisko siebie, w odległości rzędu kilkudziesięciu lub kilkuset metrów.  Sieci rozległe to sieci łączące ze sobą dwie lokalizacje lub więcej (np. centralę

firmy znajdującą się w Warszawie z jej oddziałem w Krakowie albo dwa budynki znajdujące się w różnych dzielnicach dużego miasta).  Sieci miejskie to sieci obejmujące swoim zasięgiem miasto lub dzielnicę,

np. sieci akademickie łączące wszystkie uczelnie w danym mieście.  Sieci kampusowe to rodzaj małych sieci miejskich łączących budynki w ramach

jednego osiedla np. miasteczka akademickiego. Podział taki uwarunkowany jest wykorzystywanymi technologiami sieciowymi choć, wraz z upowszechnieniem się światłowodowych odmian Ethernetu oraz sieci bezprzewodowych, granice pomiędzy poszczególnymi rodzajami sieci zaczynają być coraz mniej oczywiste. Najbardziej popularną technologią w sieciach lokalnych, a ostatnio także rozległych, jest Ethernet — zbiór standardów zapoczątkowanych w latach siedemdziesiątych XX wieku przez firmę Xerox. Wśród sieci bezprzewodowych warto zwrócić uwagę na dwie grupy rozwiązań: przeznaczony zasadniczo do pracy w sieciach lokalnych standard 802.11 (w odmianach a, b, g oraz n) i — bazujące na sieci GSM — standardy pakietowej transmisji danych GPRS/EDGE/UMTS/HSDPA (ang. General Packet Radio Service, Universal Enhanced Data Rates for Global Evolution, Mobile Telecommunications System, High-Speed Downlink Packet Access) wykorzystywane powszechnie do realizacji usługi dostępu do Internetu. Z uwagi na tematykę książki skoncentrujemy się wyłącznie na rozwiązaniach 802.11. Nie będziemy zajmować się również — mającymi coraz mniejsze znaczenie — komutowanymi i dzierżawionymi połączeniami telefonicznymi ani modemami czy też analogowymi i cyfrowymi liniami abonenckimi. Zainteresowanym tą tematyką gorąco polecamy książkę Karola Krysiaka Sieci komputerowe (wydanie 2 — Helion 2005). Istotną cechą systemów sieciowych jest miejsce i sposób przetwarzania danych. Istnieją trzy takie sposoby:  przetwarzanie scentralizowane (ang. centralized computing),  rozproszone (ang. distributed computing) oraz  współbieżne (ang. collaborative computing).

Załącznik B ♦ Podstawy komunikacji sieciowej

147

Przetwarzanie scentralizowane wywodzi się z epoki dużych komputerów, w których do jednej centralnej maszyny podłączonych było kilka bądź kilkanaście urządzeń wejścia − wyjścia (zestawów klawiatura + monitor lub klawiatura + drukarka), co pozwalało na jej wykorzystanie przez kilka osób na raz. Zestawy te nazywane są terminalami lub potocznie końcówkami (ang. terminate — kończyć). Rolę terminala może pełnić odpowiednie oprogramowanie — emulator terminala na komputerze osobistym (np. program hyper terminal znany z wczesnych wersji systemu Windows). Cały proces przetwarzania danych zachodzi w tym modelu na maszynie centralnej (ang. mainframe), a terminal służy wyłącznie do wprowadzania danych i odczytywania wyników ich przetwarzania. Mówiąc obrazowo, mamy do czynienia z jednym komputerem z kilkoma klawiaturami i monitorami. Oczywiście centralny komputer musi umożliwiać równoległe wykonywanie kilku procesów (współbieżność) obsługujących równocześnie kilku lub kilkunastu użytkowników (wielodostęp). Główną zaletą przetwarzania scentralizowanego jest to, że w modelu tym wszystkie procesy obliczeniowe zachodzą w jednym miejscu, zatem można zredukować znacząco koszt utrzymania personelu informatycznego, łatwiej jest też zapewnić odpowiedni poziom bezpieczeństwa (m.in. dlatego model ten znajduje współcześnie szerokie zastosowanie w instytucjach finansowych). W serwerowych odmianach Windows Microsoft wprowadził usługę zwaną — nieco dziwacznie — serwerem terminali. Umożliwia ona zdalną pracę na serwerze, przy czym każdy użytkownik pracuje w osobnej sesji w środowisku graficznym. Jest to więc dobry przykład modelu przetwarzania scentralizowanego z wykorzystaniem terminali graficznych. Przetwarzanie współbieżne ma miejsce wtedy, kiedy poszczególne procesy dzielone są między kilka maszyn bądź prowadzone jest równolegle na kilku maszynach dla zapewnienia ciągłości pracy w czasie awarii. Z przetwarzaniem takim spotykamy się np. w klastrach i gridach (klastrach obliczeniowych). Przetwarzanie rozproszone ma miejsce wtedy, kiedy proces obróbki danych odbywa się w poszczególnych przyłączonych do sieci komputerach (zwanych stacjami roboczymi, ang. workstation). Rozwiązanie takie ma szereg zalet: umożliwia łączenie w sieci niewątpliwie najbardziej popularnych współcześnie mikrokomputerów, jakimi są komputery osobiste, tak aby funkcje sieciowe stały się dla użytkownika rozszerzeniem możliwości jego komputera osobistego. Systemy o architekturze rozproszonej wykazują też dużą odporność na awarie sprzętowe (po uszkodzeniu np. kilku stacji roboczych nadal można kontynuować pracę przy wykorzystaniu pozostałych), łatwo też taki system rozbudować. Sieci komputerowe oparte na modelu przetwarzania rozproszonego budowane są przy wykorzystaniu trzech głównych architektur sieciowych: klient − serwer (ang. Client-Server, C/S) oraz peer-to-peer (oznaczany czasem P2P; ang. peer — równy), czasami wyróżnia się też model klient − sieć (ang. Client-Network, C/N). W architekturze klient − serwer w sieci istnieją dwa rodzaje komputerów. Serwer (ang. server, skrót od service provider — dostawca usług) jest to komputer (czy dokładnej proces uruchomiony na nim) zajmujący się świadczeniem usług dostępu do zasobów sieciowych (np. udostępniający pliki czy pocztę elektroniczną), natomiast klient (ang. client) to komputer (proces) mający możliwość korzystania z tychże.

148

13 najpopularniejszych sieciowych ataków na Twój komputer

W architekturze klient − sieć poszczególne usługi realizowane są w sieci nie przez pojedynczy serwer, ale raczej przez system stworzony przez kilka serwerów, tak że użytkownik korzysta z udostępnianych przez nie zasobów i usług w sposób dla niego przezroczysty, tj. nie orientując się, który fizyczny serwer realizuje jego żądania. Komunikacja pomiędzy serwerami odbywa się w tym modelu za pośrednictwem zaawansowanych mechanizmów, takich jak inteligentne agenty i brokery (pośrednicy), wymaga więc istnienia jakiejś formy bazy danych o klientach i usługach sieciowych, dostępnej dla poszczególnych serwerów. Zazwyczaj realizuje się to poprzez usługi katalogowe, takie jak Microsoft Active Directory, Novell e-Directory czy Lightweight Directory Access Protocol (LDAP). W architekturze peer-to-peer wszystkie komputery mogą pełnić funkcję zarówno dostawców usług, jak i klientów. Architektura peer-to-peer nadaje się raczej do małych sieci, w których skład wchodzi kilka lub co najwyżej kilkanaście komputerów. Dzieje się tak m.in. dlatego, że liczba możliwych relacji związanych z przyznawanymi uprawnieniami do korzystania z usług rośnie proporcjonalnie do kwadratu liczby komputerów Powoduje to, że administrowanie dużymi sieciami wykorzystującymi tę architekturę jest w praktyce niemożliwe. Zazwyczaj systemy działające w architekturze P2P mają wbudowane ograniczenia zapobiegające tworzeniu zbyt dużych struktur. Na przykład w Windows stacja robocza działająca w architekturze grup roboczych może obsłużyć do 10 połączeń przychodzących. W przypadku architektury klient − serwer określa się uprawnienia dostępu oczywiście wyłącznie do zasobów serwerów, co znakomicie redukuje liczbę relacji i ułatwia administrowanie nimi. W rzeczywistych sieciach komputerowych stosunkowo często korzysta się równolegle z różnych architektur i sposobów przetwarzania danych. Dla sieci całej firmy bądź korporacji wykorzystuje się model klient − serwer lub klient − sieć, dla małej grupy roboczej — peer-to-peer (np. dla kilkuosobowego działu marketingu — dodatkowa możliwość uwspólniania zasobów stacji roboczych pomiędzy jej członkami), a obok tego dla potrzeb niektórych programów uruchamiany jest emulator terminala. Na rysunku B.1 przedstawiony został schematycznie podział typologiczny rodzajów przetwarzania i architektur sieciowych. Przetwarzanie Rozproszone (distributed)

Scentralizowane (centralized)

Współbieżne (collaborative)

Architektury Client/Server Peer-to-Peer Client/Network

Rysunek B.1. Rodzaje przetwarzania w sieciach i architektury przetwarzania rozporoszonego

Załącznik B ♦ Podstawy komunikacji sieciowej

149

Modele łączenia systemów Efektywna i bezbłędna wymiana danych pomiędzy systemami komputerowymi wymaga ustalenia szeregu szczegółów technicznych i organizacyjnych, tak aby możliwe było współdziałanie sprzętu pochodzącego od różnych producentów, różnych systemów operacyjnych i rozmaitych aplikacji. Przesyłanie informacji wymaga rozwiązania wielu problemów i ustalenia ogólnie przyjętych standardów. Dla przykładu: przy przekazywaniu sygnału przez medium transmisyjne (np. przewód miedziany) należy zdecydować, w jaki sposób nałożyć informację na falę nośną (drogą modulacji amplitudy, fazy albo częstotliwości), w jaki sposób zapewnić synchronizację zegarów w systemach nadawcy i odbiorcy (transmisja synchroniczna lub asynchroniczna), w jaki sposób zagospodarować dostępne pasmo transmisyjne, czy zarezerwować je dla jednej transmisji (baseband), czy umożliwić kilka transmisji równocześnie (broadband) itd. W epoce „dużych” komputerów wszystkie zagadnienia związane z transmisją sieciową musiał rozwiązać producent sprzętu, który jednocześnie bardzo często był producentem systemu operacyjnego oraz oprogramowania narzędziowego i aplikacyjnego. Współczesne systemy komputerowe mają budowę modułową, stąd też właściwe okazało się podzielenie wszystkich zagadnień na kilka grup i opracowanie osobnych technologii dla każdej z nich oraz standardowego sposobu komunikacji pomiędzy poszczególnymi rozwiązaniami. Dzięki takiemu podejściu np. producent karty sieciowej czy modemu nie musi martwić się o sposób wyświetlania stron WWW przez aplikację internetową uruchomioną w komputerze, w którym zainstalowano jego sprzęt, programista piszący oprogramowanie klienta poczty elektronicznej nie musi zaś zastanawiać się, czy komputer, na którym będzie ono uruchomione, podłączony jest do Internetu za pomocą łącza kablowego czy bezprzewodowego. Każdy z nich zajmuje się przygotowaniem wyłącznie odpowiedniego fragmentu sprzętu czy oprogramowania i zapewnieniem jego zgodności z ogólnie dostępnymi specyfikacjami standardów używanych przez pozostałe elementy sieciowe. Ogólnie przyjętym sposobem opisu komunikacji sieciowej jest referencyjny3 model łączenia systemów otwartych4 (ang. Open System Interconnection Reference Modell, OSI) opracowany przez Międzynarodową Organizację Standaryzacyjną (ang. International Organization for Standardization, ISO). Wszystkie zagadnienia związane z przekazywaniem informacji w sieciach i intersieciach zostały zebrane w modelu ISO/OSI w siedem grup zwanych warstwami (ang. layer). Noszą one nazwy odpowiednio:  Warstwy Aplikacji (ang. application layer).  Warstwy Prezentacji (ang. presentation layer).  Warstwy Sesji (ang. session layer).

3

Ang. reference — odniesienie.

4

System otwarty to system, który spełnia założenia modelu i dzięki temu może łączyć się z innymi systemami. Definicje pojęcia systemów otwartych i modelu ISO/OSI można znaleźć w normach ISO/IEC np. [PN-EN ISO/IEC 7489-1].

150

13 najpopularniejszych sieciowych ataków na Twój komputer  Warstwy Transportu (ang. transport layer).  Warstwy Sieci (ang. network layer).  Warstwy Łącza Danych (ang. data-link layer).  Warstwy Fizycznej (ang. physical layer).

Wszystkie współczesne rozwiązania sieciowe opisuje się przy wykorzystaniu modelu ISO/OSI lub też drugiego z modeli komunikacji sieciowej opracowanego przez Departament Obrony Rządu Stanów Zjednoczonych Ameryki Północnej (ang. Department of Defence, DoD). Model DoD ma również budowę warstwową i składa się z czterech warstw:  Procesów/Aplikacji (ang. Process/Application).  Host-to-host.  Intersieci (ang. Internet).  Dostępu do sieci (ang. Network Access).

Oba modele są w pewnym sensie równoważne, opisują bowiem to samo zjawisko i w dalszej części będziemy się nimi posługiwać zamiennie. Istotne dla zrozumienia standardów komunikacji sieciowej jest zrozumienie roli, jaką odgrywają modele referencyjne. Model jest sformalizowanym opisem rzeczywistości, sposobem uporządkowania zachodzących zjawisk, występujących problemów i przyjętych metod ich rozwiązywania. Model referencyjny łączenia systemów otwartych porządkuje zagadnienia związane z przesyłaniem informacji pomiędzy systemami komputerowymi (takie jak wspomniane powyżej problemy synchronizacji i modulacji), grupuje w logiczny sposób występujące problemy i metody ich rozwiązywania. Model referencyjny nie jest natomiast konkretną specyfikacją techniczną czy technologiczną, ma jedynie służyć pomocą autorom takich specyfikacji. W odniesieniu do sieci komputerowych dokumenty techniczne opisujące szczegółowe zasady komunikacji nazywane są protokołami. Model referencyjny jest więc z jednej strony pomocą dla twórców protokołów, a z drugiej pomaga (naprawdę!) zrozumieć zagadnienia komunikacji sieciowej tym, którzy stykają się z nimi po raz pierwszy, służąc im jako swoisty przewodnik. Na podstawie modelu referencyjnego opracowane zostają konkretne technologie i ich specyfikacje (protokoły sieciowe). W przypadku sieci komputerowych istnieje wiele technologii, jedne mniej, a inne bardziej popularne, czasami są one diametralnie różne, ale wszystkie muszą w jakiś sposób rozwiązywać znane zagadnienia (jak choćby wymieniony powyżej sposób kodowania sygnału czy synchronizacji zegarów). W oparciu o opracowane w ten sposób protokoły powstają rzeczywiste implementacje obejmujące konkretny sprzęt i oprogramowanie (zobacz rysunek B.2).

Załącznik B ♦ Podstawy komunikacji sieciowej

151

Rysunek B.2. Modele, protokoły i ich implementacje

Bardzo często — nie tylko w przypadku sieci komputerowych — jest tak, że opracowane w praktyce rozwiązania odchodzą od tego, co zalecają standardy i modele. Protokoły czasami nie zawierają rozwiązań wszystkich zagadnień ujętych w modelu (albo zawierają daleko idące uproszczenia), a producenci sprzętu i oprogramowania albo dodają do niego dodatkową funkcjonalność wykraczającą poza specyfikację protokołów, albo pewne ich części traktują po macoszemu, skąd później biorą się rozmaite luki i niedokładności wykorzystywane przez atakujących. Poszczególne warstwy modelu referencyjnego ułożone są w stos jak na rysunku B.3. Model został zbudowany w ten sposób, że informacja wysyłana przez nadawcę przemieszcza się „z góry na dół” stosu, a każda z warstw dodaje swoje informacje kontrolne, które ma odczytać odpowiadająca jej warstwa w systemie odbiorcy. Oczywiście w praktyce zadania należące do poszczególnych warstw wypełniają poszczególne biblioteki i programy systemowe czy też urządzenia sieciowe działające w oparciu o konkretne zestawy protokołów. Rysunek B.3. Referencyjny model łączenia systemów otwartych ISO/OSI

Taki sposób umieszczania informacji przez warstwy wyższe w obrębie warstw niższych nazywany jest kapsułkowaniem (ang. encapsulation). Dzięki kapsułkowaniu możliwa jest hermetyzacja, tj. ukrywanie przed protokołami warstw niższych informacji przekazywanej przez warstwy wyższe. Struktury danych kolejnych warstw umieszczane są wewnątrz struktur danych warstw niższych, które — w procesie wysyłania informacji — dodają do nich kolejne nagłówki przeznaczone dla odpowiednich warstw

152

13 najpopularniejszych sieciowych ataków na Twój komputer

u odbiorcy. W procesie odbierania kolejne warstwy odczytują i usuwają nagłówki dla nich przeznaczone tak, że cały proces komunikacji sprawia wrażenie, jakby odpowiednia warstwa u nadawcy „rozmawiała” z odpowiednią warstwą u odbiorcy (zobacz rysunek B.4).

Warstwa Aplikacji

Warstwa Fizyczna

Dane

H6

H7

Dane

H5

H6

H7

Dane

H4

H5

H6

H7

Dane

H3

H4

H5

H6

H7

Dane

H3

H4

H5

H6

H7

Dane

Warstwa Transportu

H2

Dane

Dane

Warstwa Sesji

Warstwa Łączenia Danych

Odbiorca

H7

Warstwa Prezentacji

Warstwa Sieci

Nadawca

10010101010010100111011011010100101

H2

H7

Dane

Warstwa Aplikacji

H6

H7

Dane

Warstwa Prezentacji

H5

H6

H7

Dane

Warstwa Sesji

H4

H5

H6

H7

Dane

Warstwa Transportu

H3

H4

H5

H6

H7

Dane

Warstwa Sieci

H3

H4

H5

H6

H7

Dane

Warstwa Łączenia Danych

10010101010010100111011011010100101

Warstwa Fizyczna

Medium

Rysunek B.4. Hermetyzacja informacji przy wykorzystaniu kapsułkowania w procesie komunikacji systemów otwartych

Model referencyjny ISO/OSI — warstwy: fizyczna i łącza danych, protokoły z rodziny Ethernet Warstwa fizyczna modelu ISO/OSI dotyczy grupy zagadnień związanych z przesyłaniem danych na „najniższym poziomie”. W warstwie fizycznej rozpatrywane są kwestie takie jak wspomniane powyżej sposoby synchronizacji zegarów nadawcy i odbiorcy czy sposób nanoszenia informacji na falę nośną. Rysunek B.5 pokazuje różne sposoby kodowania sygnału. Według PN-EN ISO/IEC 7489-1-1999 warstwa fizyczna dostarcza środków mechanicznych, elektrycznych oraz funkcjonalnych potrzebnych do uaktywnienia, utrzymania oraz dezaktywacji połączeń fizycznych stosowanych do transmisji bitów pomiędzy stacjami warstwy łącza danych. Definiuje jednostki danych usługi fizycznej, którymi są bity lub łańcuchy bitów, i określa sposób ich transmisji (transmisja synchroniczna lub asynchroniczna). W skrócie mówimy, że warstwa fizyczna odpowiada za specyfikacje elektromagnetycznych i mechanicznych właściwości mediów transmisyjnych oraz

Załącznik B ♦ Podstawy komunikacji sieciowej

153

Kodowanie za pomocą zmiany fazy

Kodowanie za pomocą zmiany częstotliwości

Kodowanie za pomocą zmiany amplitudy

Rysunek B.5. Kodowanie informacji na fali nośnej

za przesyłanie pojedynczych bitów. Oczywiście warstwę fizyczną, jak każdą z warstw modelu referencyjnego, należy traktować jak grupę pewnych zagadnień, problemów, tak więc nie przypisujemy rzeczywistych („fizycznych”) środków transmisyjnych (mediów sieciowych) do tej warstwy. Media transmisyjne leżą „pod” modelem referencyjnym. Przykładem urządzenia realizującego funkcje przypisane warstwie fizycznej jest wzmacniak (ang. repeater), urządzenie regenerujące sygnał elektryczny przekazywany przez sieć. Urządzenie takie musi spełniać wymagania określone odpowiednim protokołem (np. musi zapewnić odpowiednią moc sygnału wejściowego, a opóźnienie związane z przetwarzaniem sygnału nie może przekroczyć określonej protokołem wielkości). Gdybyśmy chcieli precyzyjnie opisać związek pomiędzy urządzeniem, protokołem i modelem, musielibyśmy powiedzieć, że wzmacniak jest urządzeniem implementującym rozwiązania dane protokołem, który z kolei jest opisem pewnej technologii realizującej zadania opisane w pierwszej warstwie (warstwie fizycznej) modelu referencyjnego łączenia systemów otwartych. Zamiast tak długiego opisu mówimy po prostu „repeater działa w pierwszej warstwie” lub „repeater jest urządzeniem pierwszej warstwy”.

154

13 najpopularniejszych sieciowych ataków na Twój komputer

Wybiegając nieco naprzód, możemy powiedzieć, że każde z urządzeń sieciowych, które poznamy, musi oczywiście realizować funkcje pierwszej warstwy (a więc umieć odebrać lub wysłać fizyczny sygnał niosący informację), niektóre z nich natomiast realizują również funkcje warstwy drugiej, trzeciej i wyższych. Opisując skrótowo działanie jakiegoś urządzenia, wymieniamy zawsze najwyższą z warstw, której funkcje to urządzenie realizuje. Na przykład mówimy „router działa w warstwie sieci”, to znaczy, że rzeczywisty router musi umieć wykonać operacje należące do protokołów warstw I, II i III. Protokoły warstwy fizycznej zapewniają wysyłanie do sieci i odbieranie z niej pojedynczych bitów. Oczywiście, aby możliwa była komunikacja pomiędzy systemami, konieczne jest przesyłanie nie pojedynczych bitów, ale bardziej złożonych struktur danych. Struktury takie definiowane są w II warstwie i noszą nazwę ramek (ang. frames). Żeby zbudować prawdziwą sieć komputerową (a nie tylko przesyłać dane pomiędzy dwoma maszynami), konieczne są również mechanizmy służące do rozpoznawania identyfikacji komputerów w sieci i adresowania przesyłanych danych do konkretnego odbiorcy. W warstwie łącza danych zdefiniowano adresy zwane adresami sprzętowymi (lub adresami fizycznymi) pozwalające jednoznacznie identyfikować każde z urządzeń podłączonych do sieci. Podczas transmisji danych może dojść do uszkodzenia bądź zniekształcenia przesyłanych informacji. Powinny zatem istnieć mechanizmy umożliwiające wykrycie i skorygowanie błędów. Również tego rodzaju mechanizmy mogą być implementowane w omawianej warstwie. Ostatnim wreszcie zagadnieniem poruszanym tutaj jest sposób ustalania zasad dostępu do współdzielonego przez wiele komputerów medium transmisyjnego. Według PN-EN ISO/IEC 7489-1-1999 warstwa łącza danych określa funkcje, które zapewniają rozpoznawanie sekwencji jednostek danych usługi warstwy fizycznej transmitowanych na połączeniu fizycznym jako jednostek danych protokołu łącza danych (określa format ramki). Dostarcza funkcji sterowania sekwencją, która umożliwia zachowanie kolejności jednostek danych warstwy łącza danych przechodzących przez połączenia fizyczne (kontrola przepływu). Odpowiada za łączenie otrzymanych bitów w ramki i obliczanie sum kontrolnych oraz wykrywanie i obsługę ewentualnych błędów transmisji. W skrócie mówimy, że warstwa łącza danych odpowiada za łączenie bitów w ramki, adresowanie fizyczne, określa sposób dostępu do medium transmisyjnego oraz metody wykrywania i obsługi błędów transmisji. Z powodów praktycznych organizacja IEEE (ang. Institute of Electrical and Electronics Engineers, Międzynarodowe Stowarzyszenie Inżynierów Elektryków i Elektroników) wprowadziła dodatkowy podział warstwy II na dwie podwarstwy: podwarstwę kontroli dostępu do mediów (ang. Media Access Control, MAC) oraz podwarstwę kontroli połączenia logicznego (ang. Logical Link Control). Pierwsza z nich odpowiada za zadania związane z dostępem do medium, druga za wykrywanie i obsługę błędów dotyczących przesyłanych informacji.

Załącznik B ♦ Podstawy komunikacji sieciowej

155

W modelu DoD zadania warstw I i II zgrupowano w jednej warstwie nazwanej warstwą dostępu do sieci. Oczywiście nie ma to wpływu na same funkcje czy zadania spełniane przez poszczególne urządzenia sieciowe, są to po prostu różne sposoby pogrupowania tych samych zagadnień związanych z transmisją danych na najniższym poziomie. Jakkolwiek zapewne wygodniejsze byłoby, żeby istniał jeden, ogólnie przyjęty model, ze względów praktycznych i historycznych używa się różnych standardów, a w literaturze przedmiotu operuje pojęciami odwołującymi się do różnych modeli, dlatego też konieczne jest zapoznanie się z nimi wszystkimi. Wzajemny stosunek obu modeli oraz norm IEEE przedstawiony jest na rysunku B.6. Rysunek B.6. Modele DoD i ISO/OSI i podwarstwy standardów 802.X

Warto przyjrzeć się bliżej najbardziej popularnej grupie protokołów warstw I i II, jaką są niewątpliwie technologie Ethernet. Szacuje się, że ponad 80% wszystkich danych przesyłanych w Internecie na początku lub na końcu swojej drogi trafia do sieci zbudowanej w oparciu o któreś z rozwiązań z rodziny Ethernet. Ściśle rzecz biorąc, mówiąc o Ethernecie, powinno mówić się o standardzie DIX (nazwa wzięła się od pierwszych liter nazw firm Digital Equipment Corporation, Intel i Xerox, które ją opracowały), w odróżnieniu od poszczególnych technologii (np. 10baseT czy 100baseF) oraz w odróżnieniu od norm oznaczanych numerami 802.x opisujących m.in. formaty transmitowanych ramek, ale współcześnie powszechnie, choć niezbyt ściśle, określa się mianem Ethernetu całą grupę protokołów wykorzystujących jako media transmisyjne przewody koncentryczne, skrętkę, światłowody czy fale radiowe. Klasyczny Ethernet zaprojektowany ponad trzydzieści lat temu był technologią zbudowaną w oparciu o przewód koncentryczny, do którego stacje podłączane były kolejno jedna po drugiej, mówiąc ściśle, w fizycznej topologii5 magistrali (zobacz rysunek B.7). Maksymalna przepustowość wczesnych standardów Ethernetu z lat osiemdziesiątych ubiegłego stulecia wynosiła 10 megabitów na sekundę, zasięg wahał się zaś od stu do pięciuset metrów. Współcześnie znaczenie mają standardy 100baseT (fastethernet, szybki Ethernet wykorzystujący skrętkę), 1000baseT (gigabitowy Ethernet wykorzystujący skrętkę) oraz ich odpowiedniki wykorzystujące światłowody, a także używany w sieciach szkieletowych dziesięciogigabitowy Ethernet wykorzystujący jako medium światłowód

5

Topologia (gr. topos — miejsce, logos — słowo) to opis fizycznych połączeń między komputerami w sieci (topologia fizyczna) lub opis drogi, którą przebywa informacja w sieci (topologia logiczna).

156

13 najpopularniejszych sieciowych ataków na Twój komputer

Rysunek B.7. Fizyczna topologia magistrali

jednomodowy. Wszystkie one wykorzystują jako medium przewody wymagające fizycznej topologii gwiazdy (z urządzeniem rozgałęziającym sygnał umieszczonym w punkcie dystrybucyjnym). Cechą charakterystyczną różnych standardów Ethernetu jest logiczna topologia magistrali. Oznacza to, że niezależnie od topologii fizycznej sieci (która może być magistralą bądź gwiazdą) transmitowana informacja trafia do wszystkich urządzeń podłączonych do danego segmentu (zobacz rysunek B.8). Rysunek B.8. Realizacja logicznej topologii magistrali przy fizycznej topologii gwiazdy

Urządzeniem umieszczonym w środku gwiazdy jest koncentrator rozgałęziający i wzmacniający sygnał. Klasyczny koncentrator (hub) działa jak „rozgałęźnik” sieci logicznej, przekazując otrzymaną porcję danych (ramkę) na wszystkie swoje porty. Dociera ona zatem do wszystkich komputerów przyłączonych do huba. Przetwarzana jest natomiast wyłącznie przez urządzenie, do którego została zaadresowana. W praktyce obecnie buduje się sieci wyłącznie przy wykorzystaniu przełączników (switchy), o których mowa poniżej.

Załącznik B ♦ Podstawy komunikacji sieciowej

157

Ramka ethernetowa niesie bowiem w sobie (zgodnie z założeniami dotyczącymi zadań warstwy łącza danych) informację o miejscu przeznaczenia (zobacz rysunek B.9).

Rysunek B.9. Budowa ramki DIX Ethernet

Struktury nagłówków jednostek danych poszczególnych protokołów często zapisuje się w postaci tabel z umieszczonymi na górze informacjami o długości w kolejnych bajtach i bitach (zobacz rysunek B.10). 0

1 2 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 46-1500 B +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+... ........+-+-+-+-+ | Dest MAC | Source MAC| T | data octets ... | CRC | +--------------------------------------------- ... ........+-+-+-+-+

Rysunek B.10. Budowa ramki DIX Ethernet — sposób zapisu przyjęty w dokumentach tekstowych

Do rozpoznawania miejsca przeznaczenia, a także nadawcy ramki, używany jest system adresów fizycznych lub adresów MAC (od nazwy podwarstwy, która jest odpowiedzialna za ich nadawanie). Mimo że adresy te nazywane są adresami fizycznymi, ich specyfikację zawierają protokoły warstwy łącza danych!

Adres MAC jest to czterdziestoośmiobitowa liczba całkowita bez znaku (czyli, mówiąc po prostu, ciąg czterdziestu ośmiu cyfr dwójkowych — zer i jedynek), zapisywana najczęściej w postaci sześciu liczb szesnastkowych oddzielonych dwukropkami, np.: A0:21:32:32:21:0C. Przy czym trzy najbardziej znaczące bajty (pierwsze pół adresu, patrząc od lewej strony) stanowi identyfikator producenta (nadany przez organizację IEEE), trzy najmniej znaczące bajty to zaś numer nadawany urządzeniu przez producenta. Adresy MAC są (a przynajmniej powinny być) unikatowe w skali całego świata, bowiem tylko dzięki systemowi adresowania komputer (a dokładniej karta sieciowa) odbiorcy rozpoznaje, czy powinien daną ramkę przetwarzać, czy też odrzucić (jeśli nie jest ona zaadresowana do niego). Oczywiście można zmusić kartę sieciową, aby przetwarzała wszystkie dane przychodzące do niej (tj. przestawić ją z normalnego trybu pracy w tryb ogólny), na tej zasadzie działają opisane na początku książki analizatory sieci — sniffery. Oczywiście hub jest urządzeniem warstwy fizycznej (nie musi rozpoznawać struktur danych warstwy II ani czytać adresów MAC, po prostu wzmacnia i rozgałęzia sygnał elektryczny). Dysponując systemem adresowania fizycznego, możemy jednak wyobrazić sobie urządzenia (działające już w II warstwie), które będą umiały przełączać nadchodzące ramki wyłącznie do właściwego portu (zobacz rysunek B.11). Najpopularniejszym urządzeniem tego typu jest przełącznik (switch), który zapamiętuje adresy komputerów przyłączonych do swoich poszczególnych portów.

158

13 najpopularniejszych sieciowych ataków na Twój komputer

Rysunek B.11. Zasada działania przełącznika

Wszystkie współczesne przełączniki wykorzystują mechanizm store-and-forward polegający na tym, że najpierw odbierają całą ramkę, a dopiero następnie (po sprawdzeniu jej poprawności) przesyłają ją do odbiorcy. Ponieważ switch dysponuje pewną ilością pamięci, w której może umieszczać ramki przychodzące, najpierw obsłuży jedną, a następnie kolejną, zatem, nawet jeśli zostały wysłane dokładnie w tym samym momencie do tego samego odbiorcy, nie dojdzie do kolizji. Jeśli oba komputery-nadawcy przesyłałyby do tego samego odbiorcy dużą ilość informacji przez czas dłuższy (jak to bywa np. przy transmisjach z kilku stacji-klientów do jednego serwera), co oczywiście przeciążyłoby łącze od switcha do odbiorcy, przełącznik powstrzyma jednego z nadawców, korzystając z odpowiedniego protokołu warstwy MAC (w przypadku sieci półdupleksowych wykorzystywano w tym celu ciąg występujących na przemian zer i jedynek zajmujący nośną). Kolejnym urządzeniem II warstwy jest most (bridge) służący do łączenia segmentów sieci. Zapamiętuje on, po której stronie znajdują się urządzenia o określonych adresach fizycznych, i w zależności od tego przekazuje (bądź nie) ramkę do odpowiedniego portu. Pozwala to na segmentację sieci, to znaczy na wyodrębnienie osobnych segmentów (II warstwy), w których obrębie komunikacja może odbywać się niezależnie od siebie. Ma to istotne znacznie, ponieważ omawiane tu standardy Ethernetu są rozwiązaniami typu baseband, tj. na raz „w przewodzie” może znajdować się tylko jedna ramka (w segmencie nie mogą odbywać się dwie transmisje w tym samym czasie), zatem segmentacja sieci pozwala na lepsze wykorzystanie pasma, o ile oczywiście informacja będzie przekazywana nie wyłącznie pomiędzy segmentami, ale — przynajmniej po części — w ich obrębie (zobacz rysunek B.12).

Załącznik B ♦ Podstawy komunikacji sieciowej

159

Rysunek B.12. Działanie mostu przy przekazywaniu informacji pomiędzy segmentami i wewnątrz segmentów

Jak łatwo zauważyć, przełącznik zachowuje się jak wieloportowy most. Rzeczywiście w przypadku topologii, jak na rysunku B.13, nie moglibyśmy rozstrzygnąć, czy mamy do czynienia z mostem, czy z przełącznikiem. Rysunek B.13. Segmentacja w II warstwie za pomocą switcha lub mostu (oba segmenty w topologii gwiazdy)

160

13 najpopularniejszych sieciowych ataków na Twój komputer

Główną zauważalną różnicą pomiędzy mostem a przełącznikiem jest umiejętność tworzenia połączeń nadmiarowych, którą mają mosty, a której nie mają przełączniki. W praktyce dotyczy to tanich switchy ethernetowych mniej znanych producentów. Lepsze (droższe) przełączniki mają wbudowaną obsługę protokołu STP.

Po utworzeniu połączenia nadmiarowego każda ramka, której celem jest segment znajdujący się po drugiej stronie mostu, byłaby przerzucana na drugą stronę również przez urządzenie nadmiarowe, zatem w segmencie docelowym pojawiłaby się dwa razy i cała konstrukcja szybko „zatkałaby się” na skutek zjawiska zwanego pętlą mostową. Mosty umieją, dzięki specjalnemu protokołowi (zwanemu protokołem drzewa rozpinającego, ang. Spanning Tree Protocol, STP), porozumieć się ze sobą i obsłużyć takie sytuacje poprzez przestawienie urządzenia nadmiarowego w nieaktywny stan oczekiwania. Dzięki temu rozwiązaniu mosty mogą być wykorzystywane do obsługi połączeń zapasowych (w razie uszkodzenia połączenia głównego lub mostu głównego most zapasowy automatycznie przejmuje jego funkcje i uaktywnia połączenie zapasowe — zobacz rysunek B.14), podczas gdy przełączniki — nie. Bardziej zaawansowane modele współczesnych przełączników również obsługują protokół STP. Rysunek B.14. Wykorzystanie mostów do obsługi połączenia nadmiarowego

Kolejnymi urządzeniami działającymi w warstwie dostępu do sieci modelu DoD (a dokładniej w warstwie fizycznej modelu ISO/OSI) są multipleksery i demultipleksery, które dzielą dostępne pasmo (za pomocą podziału przydzielanego czasu lub podziału dostępnej częstotliwości), umożliwiając prowadzenie kilku transmisji równolegle (zobacz rysunek B.15).

Załącznik B ♦ Podstawy komunikacji sieciowej

161

Rysunek B.15. Działanie multipleksera wykorzystującego podział czasu (Time Division Method, TDM)

Nieco inaczej wygląda sytuacja w przypadku sieci bezprzewodowych w standardzie 802.11. Z uwagi na charakter użytego medium (fale radiowe) każda ze stacji mogłaby mieć dostęp do transmisji pozostałych (co zresztą, jak pamiętamy, skutecznie ułatwia podsłuch sieciowy). Zasadniczo istnieją dwa sposoby budowy sieci bezprzewodowych: tzw. sieć infrastrukturalna oraz ad hoc. W tym drugim przypadku połączenie jest nawiązywane bezpośrednio pomiędzy bezprzewodowymi kartami sieciowymi poszczególnych komputerów, w tym pierwszym — wykorzystywane jest urządzenie pośredniczące zwane Access Pointem (AP) (zobacz rysunek B.16). Rysunek B.16. Wykorzystanie punktu dostępowego do budowy sieci bezprzewodowej

Komputer 1

AP

Komputer 2

Oprócz mechanizmów adresowania, w warstwie łącza danych określone są mechanizmy dostępu do łącza. Jeśli ze współdzielonego medium chce na raz skorzystać kilka czy kilkanaście stacji, konieczne jest ustalenie jakichś mechanizmów pozwalających im na bezkonfliktowy dostęp. Możliwe są trzy sposoby rozwiązania tak postawionego zagadnienia. Pierwszy z nich (ang. polling) wymaga zewnętrznego administratora łącza, który zarządzałby prawem do jego wykorzystania. Taka metoda jest całkiem skuteczna, wadą jej jest jednak konieczność zainstalowania i skonfigurowania dodatkowego urządzenia pełniącego funkcję zarządcy medium. Tak działają sieci 802.11 bazujące na Access Pointach, które wykorzystują mechanizm dostępu do łącza zwany RTS/CTS (ang. request-to-send and clear-to-send). Access Point działa w nim jako zewnętrzny administrator medium: stacja, która chce nadawać, wysyła prośbę do Access Pointa, który

162

13 najpopularniejszych sieciowych ataków na Twój komputer

odpowiada jej zgodą na nadawanie. Jeśli w czasie, kiedy stacja nadaje, inna stacja zgłasza prośbę, Access Point nie udziela jej takiej zgody, do czasu gdy pierwsza stacja zakończy transmisję (karty sieci 802.11 pracują w trybie halfduplexowym, nie mogą na raz nadawać i odbierać sygnałów). Innym sposobem jest przekazywanie żetonu (ang. token passing), stosowane np. w technologii token ring. Polega ono na tym, że w sieci istnieje specjalny znacznik (token, żeton) — ramka, po której otrzymaniu stacja uzyskuje prawo do określonego czasu dostępu do łącza. Po tym czasie żeton musi zostać przekazany kolejnej stacji. Trzecim wreszcie rozwiązaniem zagadnienia zarządzania dostępem do łącza są metody stosujące rozmaite mechanizmy uzgadniania (ang. contention) praw dostępu pomiędzy zainteresowanymi stacjami. W przypadku klasycznych odmian Ethernetu, takich jak 10base2, stosowano metodę z tej grupy zwaną wielodostępem z wykrywaniem fali nośnej i detekcją kolizji (ang. Carrier Sense/Multiple Access with Collision Detection, CSMA/CD). Poszczególne urządzenia warstw: fizycznej i łącza danych zostały przedstawione w tabeli B.1. Tabela B.1. Urządzenia wartw: fizycznej i łącza danych Warstwa

Urządzenia

Łącza danych

Karta sieciowa

Tworzy ramki, umożliwia podłączenie komputera do sieci

Most

Segmentuje sieć (w sensie II warstwy), potrafi obsługiwać połączenia nadmiarowe dzięki protokołowi STP

Przełącznik

Działa jak wieloportowy most (klasyczne przełączniki nie mają zaimplementowanego protokołu STP)

Access Point

Zarządza dostępem do medium w sieci bezprzewodowej 802.11

Repeater

Wzmacnia sygnał

Multiplexer/ Demultiplexer

Dzieli dostępne pasmo (za pomocą podziału przydzielanego czasu lub podziału dostępnej częstotliwości), umożliwiając prowadzenie kilku transmisji równolegle

Koncentrator

Rozgałęzia i wzmacnia (koncentrator aktywny) sygnał

Fizyczna

Współczesne urządzenia łączą w sobie niejednokrotnie funkcjonalność kilku różnych rozwiązań: switche obsługują „mostowy” protokół STP, routery potrafią przełączać ramki pomiędzy portami sieci lokalnej, Access Pointy mogą pracować w trybie bridge’a łączącego sieć przewodową i bezprzewodową, karty sieciowe mają zaawansowane mechanizmy TCP-offloading wspomagające obliczanie sum kontrolnych segmentów TCP (a więc protokołu IV warstwy). Podane w tabeli informacje dotyczą podstawowych funkcjonalności, a nie konkretnych urządzeń.

Załącznik B ♦ Podstawy komunikacji sieciowej

163

Model referencyjny ISO/OSI — warstwa sieciowa, protokół IP, hermetyzacja Mając do dyspozycji mechanizmy pierwszych dwóch warstw, moglibyśmy właściwie przesyłać już informacje przez sieć. Dysponujemy bowiem zarówno odpowiednimi strukturami danych (ramkami), jak i mechanizmami ich przesyłania (adresowanie, detekcja błędów, synchronizacja, kodowanie itd.). I rzeczywiście istnieją rozwiązania sieciowe, które do adresowania węzłów używają adresów fizycznych, wewnątrz ramki sieciowej umieszczają zaś odpowiednie komunikaty rozumiane przez komunikujące się aplikacje. Jak jednak łatwo zauważyć, w przypadku większych sieci komunikacja tego rodzaju byłaby bardzo niewygodna. Trudno wyobrazić sobie np., żeby administrator komputera, wymieniając w nim kartę sieciową, musiał informować wszystkich pozostałych użytkowników, że właśnie zmienił się adres jego maszyny. Rozwiązaniem tego problemu jest — wprowadzone w warstwie trzeciej — adresowanie logiczne. Warstwa III modelu ISO/OSI — warstwa sieci — i odpowiadająca jej warstwa intersieci modelu DoD realizują dwa podstawowe zadania: adresowanie logiczne i routing (wybór trasy w intersieci). Adres logiczny jest liczbą nadawaną hostowi przez administratora, niezależną od sprzętu, ale unikatową w całej intersieci. W przypadku Internetu najważniejszym protokołem III warstwy jest Internet Protocol (IP). W chwili obecnej w szkielecie Internetu wykorzystuje się dwie wersje protokołu IP: czwartą (Ipv4) i szóstą (IPv6 lub IPNG — IP next generation). Poniżej omówimy podstawy najpopularniejszego protokołu IPv4 oraz najważniejsze różnice pomiędzy protokołami IPv4 i IPv6. Osobom zainteresowanym szczegółami protokołu Ipv6 polecamy książkę R. Desmeulesa IPv6: Sieci oparte na protokole IP w wersji 6. Implementacja, projektowanie, konfiguracja, wdrożenia (Mikom PWN 2006).

Protokół IP w wersji 4 i routing Adres logiczny nadawany w protokole IP (czyli w skrócie adres IP) jest liczbą trzydziestodwubitową zapisywaną zazwyczaj w postaci kropkowo-dziesiętnej jako cztery liczby z zakresu od 0 do 255 oddzielone kropkami, np. 192.168.0.1. Oczywiście wprowadzenie adresów logicznych ma na celu nie tylko zabezpieczenie się przed przykrymi konsekwencjami wymiany karty sieciowej, ale przede wszystkim możliwość grupowania komputerów w logiczne sieci i zarządzanie ruchem pomiędzy nimi. W sieci lokalnej komputer, który chciał zlokalizować jakąś usługę, musiał wysłać zapytanie do wszystkich innych członków tejże sieci (model pasywny) albo też serwer co jakiś czas musiał wysyłać do wszystkich informacje o tym, jakie usługi oferuje i pod jakim adresem jest dostępny. Do przesyłania tego rodzaju komunikatów wykorzystywane są ramki rozgłoszeniowe (tj. zaadresowane „do wszystkich” — ang. broadcast) (zobacz rysunek B.17 i B.18). Ramki rozgłoszeniowe (w przypadku Ethernetu zaadresowane adresem MAC FF:FF: ´FF:FF:FF:FF) przesyłane są do wszystkich urządzeń w sieci. W szczególności jeżeli w centrum sieci gwiaździstej znajduje się przełącznik, to przesyła otrzymaną ramkę broadcastową na wszystkie swoje porty. Mówimy, że przełącznik separuje domeny kolizyjne, ale nie separuje domen rozgłoszeniowych6. 6

Domena rozgłoszeniowa to grupa komputerów, które otrzymają broadcast wysłany przez jeden z nich.

164

13 najpopularniejszych sieciowych ataków na Twój komputer

Rysunek B.17. Aktywne rozgłaszanie usług za pomocą broadcastów

Rysunek B.18. Pasywne lokalizowanie usług przy użyciu zapytań broadcastowych

Oczywiście ruch broadcastowy powoduje duże obciążenie sieci, dlatego też byłoby dobrym pomysłem pogrupowanie komputerów i wprowadzenie urządzeń separujących domeny rozgłoszeniowe. Znakomicie nadają się do tego celu protokoły warstwy III. Możemy umówić się np., że pierwsza z czterech liczb w adresie IP oznaczać będzie numer grupy komputerów (zwanej dla utrudnienia siecią), a trzy pozostałe — numer komputera w tej sieci. Urządzenia warstwy trzeciej noszą nazwę routerów (zobacz rysunek B.19). W powyższym przykładzie założyliśmy, że najbardziej znaczący bajt adresu IP oznacza identyfikator sieci. W rzeczywistości adresowanie IP jest nieco bardziej skomplikowane. Ponieważ w Internecie istnieją zarówno duże sieci liczące setki komputerów, jak i sieci małe z kilkoma komputerami (czy dokładniej — hostami), wprowadzono pojęcie klas adresowych. W zależności od tego, do której sieci należy dany adres, jego składowe zajmują różną ilość miejsca.

Załącznik B ♦ Podstawy komunikacji sieciowej

165

Rysunek B.19. Intersieć  W klasie A — jak w naszym przykładzie — najbardziej znaczący bajt

oznacza numer sieci, a trzy najmniej znaczące — numer hosta.  W klasie B dwa najbardziej znaczące bajty oznaczają numer sieci,

a dwa najmniej znaczące — numer hosta.  W klasie C trzy najbardziej znaczące bajty oznaczają numer sieci,

a bajt najmniej znaczący — numer hosta.  Klasa D używana jest do adresowania grupowego7.  Klasa E jest zarezerwowana dla przyszłych zastosowań.

To, do jakiej klasy należy adres, rozpoznaje się po wartości najbardziej znaczącego oktetu tego adresu. I tak:  adresy rozpoczynające się liczbami od zera do 127 należą do klasy A,  adresy rozpoczynające się liczbami od 128 do 191 należą do klasy B,  adresy rozpoczynające się liczbami od 192 do 223 należą do klasy C,  adresy rozpoczynające się liczbami od 224 do 239 należą do klasy D,  adresy rozpoczynające się liczbami od 240 do 255 należą do klasy E. 7

Adresowanie grupowe (ang. muslticast) jest podobne do adresowania rozgłoszeniowego, z tym że dane zaadresowane adresem grupowym otrzymują nie wszyscy użytkownicy sieci, ale tylko pewna ich grupa.

166

13 najpopularniejszych sieciowych ataków na Twój komputer

Jak łatwo zauważyć, zapisane dwójkowo wartości najbardziej znaczących oktetów w poszczególnych klasach mają postać:  dla klasy A 0xxxxxxx,  dla klasy B 10xxxxxx,  dla klasy C 110xxxxx,  dla klasy D 1110xxxx,  dla klasy E 1111xxxx,

gdzie x oznacza dowolną cyfrę dwójkową (zero lub jeden) (zobacz rysunek B.20). 0xxxxxxx

A

10xxxxxx

B

110xxxxx

C

1110xxxx

D

1111xxxx

E

Rysunek B.20. Klasy adresowe IP

W latach dziewięćdziesiątych ubiegłego wieku dla lepszego gospodarowania adresami IP wprowadzono inny sposób rozumienia adresów, w odróżnieniu od adresowania klasowego (ang. classfull addressing) zwany adresowaniem bezklasowym (ang. classless addressing). Zamiast sztywno ustalonej interpretacji, która część adresu odpowiada za adres hosta, a która za adres sieci, administrator mógł sam określać liczbę bitów odpowiedzialną za poszczególne części. W ten sposób zapis np. 192.168.2.3/26 oznacza, że dwadzieścia sześć najbardziej znaczących bitów adresu stanowi numer sieci, a pozostałe sześć — numer hosta. Innym sposobem zapisu tego standardu jest podawanie obok adresu tzw. maski podsieci, czyli liczby utworzonej w ten sposób, że w części odpowiedzialnej w adresie za część sieciową podaje się jedynki, a w części odpowiedzialnej za adres hosta — zera. Para: adres IP i maska podsieci pozwala na zinterpretowanie znaczenia poszczególnych bitów adresu (zobacz rysunek B.21). Pojęcie podsieci bierze się stąd, że w rzeczywistości dzięki naszemu zabiegowi podzieliliśmy sieć na cztery części — podsieci (ang. subnet) różniące się dwoma najbardziej znaczącymi bitami najmniej znaczącego bajtu. Operacja odwrotna (połączenie dwóch lub większej liczby sieci leżących koło siebie) prowadzi do powstania nadsieci (ang. supernet).

Załącznik B ♦ Podstawy komunikacji sieciowej

167

11000000 (192)

10101000 (168)

00000010 (2)

00000011 (3)

Adres

11111111 (255)

111111111 (255)

111111111 (255)

11000000 (192)

Maska

Rysunek B.21. Maska podsieci

Adres, w którym w części odpowiedzialnej za adres hosta wszystkie bity zostały ustawione na zero, jest adresem sieci (np. adresem sieci w klasie A, której najbardziej znaczący bajt ma wartość 10, a maska jest 255.0.0.0, jest adres 10.0.0.0). Czytelników zainteresowanych dalszymi szczegółami dotyczącymi adresowania IP odsyłamy w tym miejscu do literatury. Router jest urządzeniem mającym przynajmniej dwa interfejsy sieciowe. W sieci zawierającej zewnętrzne interfejsy sieciowe routerów również muszą być nadawane adresy logiczne. Na rysunku B.22 przedstawiamy połączenie sieci 10.0.0.0 i 30.0.0.0 za pomocą dwóch routerów oznaczonych R1 i R2. Router R1 ma dwa interfejsy: 10.0.0.123 znajdujący się w sieci 10.0.0.0 oraz 20.0.0.1 znajdujący się w sieci 20.0.0.0. Router R2 ma dwa interfejsy: 30.0.0.1 znajdujący się w sieci 30.0.0.0 oraz 20.0.0.2 znajdujący się w sieci 20.0.0.0. Ponieważ zewnętrzne interfejsy obu routerów znajdują się we wspólnej sieci logicznej (20.0.0.0), mogą one wymieniać między sobą informację, korzystając z mechanizmów poznanych przy okazji omawiania adresowania fizycznego. Rysunek B.22. Połączenie sieci w intersieć za pomocą routerów

Co więcej, routery potrafią odbierać informacje nadesłane przez inne komputery i przekazać je do właściwej sieci przeznaczenia (zobacz rysunek B.23). Informacje o trasowaniu pakietów zapisane są w pamięci routerów w tabelach zwanych tablicami routingu. Przykładowa tabela routingu została przedstawiona poniżej (tabela A.2.)

168

13 najpopularniejszych sieciowych ataków na Twój komputer

Rysunek B.23. Routing Tabela A.2. Tablica routingu routera R1 Dokąd

Którędy

Do sieci 10.0.0.0

Przez interfejs 10.0.0.123

Do sieci 20.0.0.0

Przez interfejs 20.0.0.1

Do sieci 30.0.0.1

Przez interfejs routera R2 o adresie 20.0.0.2

Routery potrafią obsługiwać połączenia nadmiarowe, kontaktować się ze sobą w celu zmiany wpisów w swoich tablicach routingu (np. kiedy któraś z tras zostanie przerwana). Routery „rozmawiają ze sobą” za pomocą specjalnych protokołów, takich jak Routing Information Protcol (RIP), Open Shortest Path First (OSPF), Exterior Gateway Protocol (EGP) czy Border Gateway Protocol (BGP). Często też — dzięki dodatkowemu oprogramowaniu — routery używane są jak translatory adresów sieciowych czy elementy zapór sieciowych. Oczywiście informacja o adresach IP musi być umieszczona w jakiejś strukturze danych przesyłanych przez sieć. Strukturą tą jest pakiet (zwany też czasem datagramem) IP. Jest on umieszczany wewnątrz ramki ethernetowej. Jak pamiętamy, proces taki nazywany jest kapsułkowaniem (zobacz rysunek B.24). Rysunek B.24. Kapsułkowanie pakietu IP wewnątrz ramki ethernetowej

Ramka protokołu II warstwy (np. Ethernet)

Pakiet III warstwy (np. IP)

Nagłówek pakietu

Dane

Rzeczywista komunikacja w Internecie działa według modelu DoD, w którym zadania niektórych warstw są (w stosunku do modelu ISO/OSI) pogrupowane ze sobą (zobacz rysunek B.25).

Załącznik B ♦ Podstawy komunikacji sieciowej

169

Nadawca

Dane

Warstwa Procesu/Aplikacji

Komunikaty sterujące

Dane

Nagłówek warstwy Host-to-host

Komunikaty sterujące

Dane

Nagłówek warstwy Intersieci

Nagłówek warstwy Host-to-host

Komunikaty sterujące

Dane

Nagłówek warstwy Intersieci

Nagłówek warstwy Host-to-host

Komunikaty sterujące

Dane

Warstwa Host-to-host

Warstwa Intersieci

Warstwa Dostępu do sieci

Nagłówek warstwy Dostępu do sieci

Rysunek B.25. Przesyłanie danych w dół stosu protokołów w modelu DoD

Routery są urządzeniami warstwy sieci (trzeciej warstwy modelu ISO/OSI lub drugiej warstwy modelu DoD — warstwy Internetu), potrafią zatem odczytać informacje zapisane w datagramach IP niesionych wewnątrz ramek i w zależności od tego, do kogo adresowany jest dany pakiet, przekazać go do odpowiedniego ze swoich interfejsów sieciowych (zobacz rysunek B.26). Oczywiście, aby pakiet mógł opuścić dany interfejs, musi zostać przepakowany w ramkę odpowiednią dla typu sieci podłączonej do interfejsu (routery łączą często sieci różne w I i II warstwie np. Ethernet z Token Ring czy z FDDI) oraz odpowiednio zaadresowaną (do kolejnego routera lub do systemu docelowego, o ile znajduje się on w sieci bezpośrednio przyłączonej do interfejsu routera). Oczywiście nagłówek protokołu IPv4 nie zawiera wyłącznie adresów IP nadawcy i odbiorcy, ale cały szereg informacji dodatkowych (zobacz rysunek B.27). Na rysunku B.27 przedstawiono strukturę nagłówka datagramu IP (oczywiście kolejne pola następujące po sobie zostały tu przedstawione w kolejnych wierszach, tak że np. pole Identiciation zaczyna się w 32. bicie nagłówka). Wybiegając nieco naprzód, przedstawiamy poniżej znaczenie wszystkich pól.  Pole wersja (ang. version) zawiera wersję protokołu IP, która była używana

przy tworzeniu datagramu (w przypadku protokołu stosowanego obecnie w sieci Internet jest to wartość 4).  W polu długość nagłówka (ang. Internet Header Length — IHL) umieszczona

jest długość nagłówka liczona w 32-bitowych słowach. Ponieważ pole to ma 4 bity, to długość nagłówka nie może przekroczyć 60 bajtów. Minimalna poprawna wartość dla tego pola wynosi 5 i określa nagłówek bez ustawionych opcji.

170

13 najpopularniejszych sieciowych ataków na Twój komputer

H2

Nadawca

Odbiorca

Dane

Dane

H7

Dane

H6

H7

Dane

H5

H6

H7

Dane

H4

H5

H6

H7

Dane

H3

H4

H5

H6

H7

Dane

H3

H4

H5

H6

H7

Dane

10010101010010100111011011010100101

H2

H3

H4

H5

H6

H7

Dane

H3

H4

H5

H6

H7

Dane

10010101010010100111011011010100101

H2a

H3

H4

H5

H6

H7

Dane

H3

H4

H5

H6

H7

Dane

10010101010010100111011011010100101

H2a

H7

Dane

H6

H7

Dane

H5

H6

H7

Dane

H4

H5

H6

H7

Dane

H3

H4

H5

H6

H7

Dane

H3

H4

H5

H6

H7

Dane

10010101010010100111011011010100101

Router

Rysunek B.26. Przekazywanie informacji poprzez system pośredniczący w III warstwie modelu ISO/OSI (routing) 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Version| IHL |Type of Service| Total Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Identification |Flags| Fragment Offset | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Time to Live | Protocol | Header Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Source Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Destination Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Options | Padding | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Rysunek B.27. Nagłówek IP w wersji 4  Pole typ usługi (ang. Type Of Service — TOS) składa się z 3 bitów pola

pierwszeństwa wskazującego, jak ważny jest datagram, 4 bitów TOS i 1 bitu MBZ, którego wartość musi być 0. Ustawienie każdego z 4 bitów TOS oznacza w kolejności następujące informacje: prośbę o minimalizację opóźnień, prośbę o przesyłanie łączami o dużej przepustowości, maksymalne dbanie o poprawność przesyłanych danych oraz prośbę o minimalizację kosztów. Tylko 1 z tych 4 bitów może być ustawiony jednocześnie. W zamierzeniu twórców protokołu pole TOS miało pomóc zapewnić odpowiednie traktowanie datagramów niosących dane wymagające szybszego przekazywania przez kolejne urządzenia sieciowe (np. datagramy niosące w sobie obrazy telewizyjne transmitowane na żywo powinny być przetwarzane szybciej niż datagramy zawierające list e-mail), ale w praktyce urządzenia sieciowe ignorują te wskazania.

Załącznik B ♦ Podstawy komunikacji sieciowej

171

 Pole długość całkowita (ang. total length) zawiera długość całego datagramu IP

(nagłówek i dane) wyrażoną w oktetach. Maksymalny rozmiar datagramu IP wynosi zatem to 216-1, czyli 65 535 bajtów.  Pola: identyfikacja (ang. identification), flagi (ang. flags) i przesunięcie

fragmentu (ang. fragment offset) związane są ściśle z procesem fragmentacji datagramów IP. Fragmentacja datagramów to proces podziału datagramu na mniejsze fragmenty. Wykonywana jest, jeżeli okaże się, że ramka sprzętowa, w której umieszczony zostaje datagram, przekracza narzuconą przez warstwę dostępu do sieci górną granicę rozmiaru ramek dla danej sieci (np. jeśli chcemy przesłać datagram o długości większej niż 1500 bajtów przez sieć Ethernet, to musi on być umieszczony w kilku ramkach). Charakterystyczna dla poszczególnych protokołów warstwy dostępu do sieci maksymalna wielkość ramki nazywana jest MTU (ang. Maximum Transmission Unit). Jeśli datagram jest większy niż MTU danej warstwy łącza, to IP dokonuje jego fragmentacji, a później — w programie obsługującym protokół warstwy intersieci w komputerze odbiorcy — defragmentacji, wykorzystując do tego celu informacje zawarte w nagłówku IP.  Pole identyfikacja zawiera unikatową wartość dla danego datagramu, która

musi być umieszczona w każdym fragmencie tego datagramu. Pozwala to później łatwo stwierdzić, do którego datagramu należy dany fragment.  Pole flagi składa się z 3 bitów. Pierwszy bit jest zarezerwowany i musi być

ustawiony na zero. Jeżeli drugi bit nie jest ustawiony, to fragmentacja jest dozwolona, jeśli natomiast jest ustawiony, to nie można fragmentować danego datagramu. Trzeci bit to bit „więcej fragmentów”, który jest ustawiany dla każdego fragmentu poza ostatnim, i informuje, czy wszystkie fragmenty datagramu dotarły już do celu. Fragmentacja wymaga, aby część zawierająca dane w generowanych fragmentach była wielokrotnością 8 bajtów we wszystkich fragmentach oprócz ostatniego. Nagłówek struktury danych protokołu warstwy transportowej umieszczany jest tylko w pierwszym fragmencie, co powoduje, że kolejne fragmenty takiego pofragmentowanego datagramu nie mogą być wychwytywane przez filtr pakietów analizujący numery portów nadawcy i odbiorcy. Mechanizm ten wykorzystywano więc do przeprowadzenia niektórych rodzajów ataków.  Pole przesunięcie fragmentu określa położenie danego fragmentu

w oryginalnym datagramie. Ponadto, kiedy datagram ulega fragmentacji, wartość pola długość całkowita zmienia się, pokazując zawsze wielkość danego fragmentu.  Pole czas życia (ang. time to live) lub TTL określa maksymalną liczbę routerów,

przez jakie datagram może przejść w sieci. Każdy router ma obowiązek podczas przetwarzania nagłówka datagramu zmniejszyć pole TTL o wartość równą liczbie sekund, przez które datagram był przetwarzany. Ponieważ routery przetrzymują datagramy przez mniej niż jedną sekundę, pole TTL zmniejszane jest o jeden. Kiedy wartość ta spadnie do zera, datagram jest przez kolejny

172

13 najpopularniejszych sieciowych ataków na Twój komputer

router odrzucany i usuwany z sieci, a nadawca otrzymuje komunikat o błędzie przy wykorzystaniu protokołu komunikatów kontrolnych Internetu (ang. Internet Control Message Protocol, ICMP).  Pole protokół określa, który protokół (ang. protocol) warstwy sieciowej

lub transportowej przekazał dane do IP w celu ich wysłania. Wartość tego pola dla protokołu ICMP wynosi 1, dla TCP — 6, a dla UDP — 17.  Wartość pola suma kontrolna nagłówka (ang. header checksum) służy

do sprawdzania poprawności nagłówka i wyliczana jest tylko dla nagłówka IP. Kiedy datagram zostanie odebrany, liczona jest suma kontrolna i następnie porównywana z sumą kontrolną zawartą w datagramie. Jeśli wystąpi błąd sumy kontrolnej, IP odrzuca odebrany datagram.  Pola adres źródłowy (ang. source address) i adres przeznaczenia

(ang. destination address) zawierają 32-bitowe adresy IP nadawcy i odbiorcy datagramu  Pole opcje zawiera dodatkowe informacje opcjonalne. Pole opcji kończy

się zawsze na granicy 32 bitów. Jeśli to konieczne, umieszczane są bity wypełnienia o wartości 0. Powoduje to, że nagłówek IP jest zawsze wielokrotnością 32 bitów. Użycie hermetyzacji powoduje, że podstawowym mechanizmem adresowania w sieci lokalnej jest mechanizm adresowania fizycznego. Jeśli dwa komputery w tej samej sieci logicznej pragną porozumieć się ze sobą, muszą znać swoje adresy fizyczne. Oczywiście użytkownicy i procesy posługują się raczej adresami IP, potrzebny jest zatem mechanizm, za pomocą którego komputer może dowiedzieć się, jaki jest adres fizyczny (MAC) hosta o znanym adresie logicznym (IP). Mechanizm ten jest obsługiwany przez protokół ARP (ang. Address Resolution Protocol — protokół rozpoznawania adresów). Komputer-nadawca zadaje w sieci lokalnej pytanie rozgłoszeniowe (adresowane „do wszystkich”) o adres fizyczny komputera odbiorcy. Zapytanie to nazywane jest ARP-request. Właściwy komputer odpowiada (ARP-reply) na zapytanie — już ramką adresowaną wyłącznie do komputera, który uprzednio zadał pytanie (unicast) — i dalej, znając już adres odbiorcy, komputer pytający może przesłać właściwą informację (zobacz rysunek B.28). Ponieważ zapytania i odpowiedzi ARP generują dodatkowy ruch w sieci, w celu jego redukcji komputery korzystają z dynamicznej tablicy odwzorowania adresów ARP. W tablicy tej adresat zapytania zapisuje adres IP i odpowiadający mu adres fizyczny komputera, od którego otrzymał odpowiedź ARP. Zwykle również system, wysyłając odpowiedź na otrzymane zapytanie ARP, zachowuje w pamięci podręcznej informacje o adresie sprzętowym pytającego hosta. Zastosowanie tej techniki sprawia, że nie jest konieczne wysyłanie zapytania ARP za każdym razem, kiedy potrzebne jest odwzorowanie adresu IP. Jeżeli do sieci wysyłany jest pakiet, to najpierw przeszukiwana jest tablica ARP, jeśli natomiast nie ma w niej odpowiedniego wpisu, wysyłane jest zapytanie ARP.

Załącznik B ♦ Podstawy komunikacji sieciowej

Rysunek B.28. Rozwiązywanie adresu IP na adres MAC

173

174

13 najpopularniejszych sieciowych ataków na Twój komputer

Wpisy w tablicy przechowywane są przez określony czas i kolejno usuwane po jego upływie. Wpisów w tablicy ARP nie rejestruje się na stałe, gdyż zawsze może pojawić się sytuacja, że jakiś komputer w sieci zmieni interfejs sieciowy i wpis stanie się nieaktualny. Oprócz protokołu IP, protokołu ARP oraz protokołów routingu w warstwie intersieci modelu DoD (czyli też w odpowiadającej jej warstwie sieci modelu ISO/OSI) zaimplementowany jest protokół komunikatów kontrolnych Internetu, czyli wspomniany powyżej ICMP (zobacz rysunek B.29). Jest on integralną częścią protokołu IP (to znaczy każde urządzenie obsługujące protokół IP musi mieć zaimplementowaną obsługę ICMP), a jego zadaniem jest przesyłanie w sieci wiadomości kontrolnych. Można je podzielić na komunikaty informacyjne, dzięki którym można uzyskać pewne dane o innych komputerach w sieci oraz komunikaty o błędach. Te drugie informują nadawcę o przyczynie, dla której nie można dostarczyć datagramu IP do miejsca przeznaczenia. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Code | Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Długość i zawartość tego pola zależy od rodzaju komunikatu | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Rysunek B.29. Nagłówek komunikatu ICMP  Pole typ (ang. type) określa rodzaj komunikatu (może ono przyjmować

15 wartości).  Pole kod (ang. code) dodatkowo specyfikuje komunikat określony w polu typ

(opisuje typ błędu).  Pole suma kontrolna (ang. checksum) zawiera wyliczoną sumę kontrolną

dla całego komunikatu ICMP. Komunikaty ICMP o błędzie muszą zawierać w polu informacja nagłówek IP i pierwsze 8 bajtów nagłówka TCP lub UDP tego datagramu, który spowodował wystąpienie błędu. Jest to konieczne, aby oprogramowanie protokołu ICMP mogło poprawnie dostarczyć komunikat do odpowiedniego protokołu transportowego i do określonego procesu. Protokół identyfikowany jest poprzez pole protokołu w nagłówku IP, a proces na podstawie numeru portu zawartego właśnie w tych pierwszych 8 bajtach. Opis wybranych komunikatów ICMP pokazano w tabeli B.3. Protokół IP w wersji 4 jest protokołem, który nie gwarantuje bezpieczeństwa przesyłanych przez sieć danych. Dane, które przenosi ten protokół, są przesyłane „czystym tekstem”, co pozwala w łatwy sposób je podejrzeć. Do zapewnienia ochrony poufności przesyłanych przez IP danych został stworzony protokół IPSec. Przy wykorzystaniu protokołu IPSec wszystkie informacje powyżej warstwy III modelu OSI są szyfrowane (zapewniana jest ich poufność) i sprawdzane pod kątem ich integralności. Tylko druga strona takiego połączenia jest w stanie uzyskać dostęp do tych danych, gdyż posiada odpowiednie tajne klucze kryptograficzne.

Załącznik B ♦ Podstawy komunikacji sieciowej

175

Tabela B.3. Wybrane komunikaty ICMP Message (komunikat) Type (typ)

Code (kod)

Description (opis)

Information (komunikat informacyjny)

0

0

echo reply (odpowiedź echo)

x

3

0

net unreachable (sieć nieosiągalna)

x

3

1

host unreachable (host nieosiągalny)

x

3

2

protocol unreachable (protokół nieosiągalny)

x

3

3

port unreachable (port nieosiągalny)

x

3

4

fragmentation needed (wymagana fragmentacja)

x

3

5

source route failed (błąd trasy rutowania)

x

4

0

source quench (tłumienie źródła)

x

5

0

redirect datagrams for the Network

x

(przekierunkowanie datagramu dla sieci) 5

1

redirect datagrams for the Host

x

(przekierunkowanie datagramu dla hosta) 5

2

Error (komunikat o błędzie)

redirect datagrams for the Type of Service and Network (przekierunkowanie datagramu

x

dla typu usługi i sieci) 5

3

redirect datagrams for the Type of Service and Host (przekierunkowanie datagramu dla typu

x

usługi i hosta) 8

0

echo request (zapytanie echo)

11

0

time to live exceeded in transit

x x

(czas życia równy 0) 11

1

fragment reassembly time exceeded

x

(przekroczony czas składania fragmentów) 12

0

pointer indicates the error

x

(wykrycie błędu w pakiecie) 13

0

timestamp request (zapytanie o czas)

x

14

0

timestamp reply (odpowiedź na zapytanie o czas)

x

IPSec jest wykorzystywany do ochrony transmisji pomiędzy:  dwoma komputerami,  komputerem a siecią lokalną znajdującą się za bramą bezpieczeństwa,  pomiędzy dwoma sieciami LAN znajdującymi się za bramami bezpieczeństwa

— pozwala wtedy na tworzenie wirtualnych sieci prywatnych.

176

13 najpopularniejszych sieciowych ataków na Twój komputer

Protokół IPSec zapewnia warstwie intersieci następujące usługi:  ochronę poufności przesyłanych danych poprzez ich szyfrowanie,  ochronę integralności danych poprzez generowanie i sprawdzanie sum

kontrolnych przy wykorzystaniu tzw. funkcji skrótu, które pozwalają wykryć, czy przesyłka nie została zmodyfikowana,  określenie źródła pochodzenia wiadomości, czyli uwierzytelnienie jej nadawcy.

Jest to realizowane poprzez podpisywanie każdego pakietu, co pozwala na jednoznaczne zweryfikowanie tożsamości jego nadawcy. IPSec definiuje dwa protokoły bezpieczeństwa, których nagłówki są dodawane do datagramu IP. Protokoły te to AH (ang. Authentication Header) oraz ESP (ang. Encapsulated Security Payload). AH jest protokołem, który jest wykorzystywany do zapewnienia integralności pakietu oraz uwierzytelnienia źródła pochodzenia tego pakietu. Protokół ten chroni cały pakiet (zarówno dane, jak i nagłówek IP). Drugim protokołem jest ESP, którego głównym zadaniem jest ochrona poufności przesyłanych danych, ale potrafi również (w mniejszym stopniu niż AH) zapewnić ich integralność. Szyfrowanie oraz sprawdzanie integralności w przypadku ESP dotyczy tylko przesyłanych danych i nie obejmuje nagłówka IP. Nagłówki protokołów AH i ESP mogą być niezależnie dodawane do oryginalnych nagłówków IP, można też stosować obydwa protokoły jednocześnie, co zapewnia wysoki poziom bezpieczeństwa, ponieważ przesyłane dane są zaszyfrowane, nadawca jest uwierzytelniony i zapewniona jest ich integralność. Do podpisywania pakietów, co pozwala na uwierzytelnienie źródła ich pochodzenia oraz sprawdzenia integralności, IPsec wykorzystuje funkcje skrótu:  md5,  sha1,  hmac.

Algorytmy wykorzystywane do zapewnienia poufności (szyfrowania) to:  des,  3des,  blowfish.

Protokół IPSec może pracować w dwóch trybach:  transportowym oraz  tunelowania.

Tryb transportowy stosuje się, aby zapewnić ochronę transmisji pomiędzy dwoma komputerami znajdującymi się najczęściej w jednej sieci lokalnej. Możemy go zastosować w przypadku wymiany ważnych danych pomiędzy komputerem a np. serwerem firmowym. Do ochrony danych w tym przypadku możemy stosować protokół AH lub ESP albo — jeśli chcemy zapewnić wysoki poziom bezpieczeństwa — obydwa jednocześnie.

Załącznik B ♦ Podstawy komunikacji sieciowej

177

W trybie transportowym możliwe jest dla strony trzeciej określenie nadawcy i odbiorcy pakietu, ale niemożliwe jest odczytanie jego zawartości. Wygląd nagłówków w przypadku zastosowania trybu transportowania jest pokazany na rysunku B.30. Rysunek B.30. Wygląd nagłówków IPSec w trybie transportowym

Tryb tunelowania jest trybem wykorzystywanym do tworzenia sieci VPN, czyli połączeń pomiędzy dwoma sieciami LAN za pośrednictwem bram bezpieczeństwa, które jako jedyne w tym przypadku muszą obsługiwać IPSec. Użytkownicy znajdujący się w tych dwóch sieciach nie muszą instalować dodatkowego oprogramowania. Tworzony tunel jest tak naprawdę dla nich niewidoczny. Wystarczy, że klient wyśle pakiety niezaszyfrowane skierowane do sieci LAN po drugiej stronie, a całym procesem ich ochrony zajmą się bramy bezpieczeństwa. VPN oparty na trybie tunelowania IPSec pozwala na ukrycie prawdziwego adresu przeznaczenia pakietów. Najczęściej sieci LAN będące po obu stronach tunelu zbudowane są przy wykorzystaniu prywatnych adresów IP. W tym przypadku wewnętrzny nagłówek IP oraz dane są szyfrowane. Jedyną niezaszyfrowaną częścią jest jego zewnętrzny nagłówek IP pozwalający pakietowi na dotarcie do miejsca przeznaczenia. Nagłówek ten zawiera adresy IP bram bezpieczeństwa znajdujących się po obu stronach tunelu. Wygląd nagłówków w przypadku zastosowania trybu tunelowania jest pokazany na rysunku B.31.

Rysunek B.31. Wygląd nagłówków IPSec w trybie tunelowania

178

13 najpopularniejszych sieciowych ataków na Twój komputer

Do zapewnienia bezpiecznego połączenia pomiędzy dwoma stronami trzeba określić, jakie mechanizmy IPSec zostaną wykorzystane. Dlatego zanim nastąpi wymiana danych, trzeba zdefiniować odpowiednie relacje powiązania bezpieczeństwa (ang. Security Association, SA) pomiędzy stronami. Dla każdego dwustronnego połączenia muszą być utworzone dwa oddzielne SA opisujące taką transmisję: jedno dla pakietów wychodzących, drugie dla pakietów przychodzących. Wszystkie SA są przechowywane w specjalnej bazie SAD (ang. Security Association Database). Aby komunikacja za pomocą IPSec mogła być przeprowadzona, musi zostać najpierw nawiązane bezpieczne połączenie i muszą być ustalone po obu stronach połączenia wspólne algorytmy, klucze kryptograficzne stosowane do szyfrowania i podpisywania danych oraz wpisy SA. Proces ustalenia parametrów IPSec może być zrealizowany za pomocą specjalnego protokołu np. IKE (ang. Internet Key Exchange) lub odpowiednie parametry połączenia mogą być wpisane ręcznie przez administratora i wtedy IKE nie jest wykorzystywany. W procesie bezpiecznego połączenia i uwierzytelnienia mogą być wykorzystane współdzielone klucze lub certyfikaty cyfrowe.

Protokół IP w wersji 6 — najważniejsze informacje Chociaż pula adresów IPv4 wydaje się być odpowiednio duża (2^32 daje ponad 4 miliardy potencjalnych adresów), w praktyce okazało się, że jest to zbyt mało: część sieci klas A i B zostało zbyt optymistycznie przydzielonych różnym instytucjom na samym początku istnienia Internetu, niektóre adresy są zarezerwowane do specjalnych zastosowań (np. wszystkie adresy w sieci 127.0.0.0 oznaczają pętlę zwrotną — loopback), a klasy D i E są przeznaczone do specjalnych celów. Odpowiedzią na wyczerpujący się zasób adresów było najpierw opracowanie koncepcji pod- i nadsieci (ang. CLIR — Classless Interdomain Routing), później — wykorzystanie adresów prywatnych w połączeniu z koncepcją NAT (Network Address Translation) bądź serwerami pośredniczącymi (proxy). Wszystkie te zabiegi miały jednak charakter tymczasowy, niezbędne było natomiast opracowanie nowego schematu adresowego. Takim schematem stała się kolejna wersja protokołu IP oznaczana jako IpnG (IP Next Generation) bądź IPv6. Najciekawszymi cechami IP w wersji 6 są:  wykorzystanie 128-bitowych adresów (co daje niewyobrażalnie wielką przestrzeń

340 282 366 920 938 463 463 374 607 431 768 211 456 adresów),  funkcja autokonfiguracji — host dołącza swój adres sprzętowy w formacie

EUI-64 (Extended Unique Interface, 64-bit) do globalnie unikatowego prefiksu IPV6 ogłaszanego w podsieci przez router (korzystając z tego mechanizmu, można zapewnić z jednej strony szybkie przydzielanie adresów nawet bez serwera DHCP, a z drugiej — możliwość łatwego zidentyfikowania sprzętu, niezależnie od tego, w jakim miejscu się znajdzie) — oczywiście można adresy Ipv6 przydzielać także manualnie, nie korzystając z funkcji autokonfiguracji, i oczywiście IPv6 oferuje mechanizm detekcji zduplikowanych adresów,

Załącznik B ♦ Podstawy komunikacji sieciowej

179

 wprowadzenie mechanizmów tunelowania — pełna implementacja IPv6

zawiera również implementację nagłówków AH i ESP znanych z IPSec,  wprowadzenie pojęcia anycastów. W IPv6 występują tzw. anycasty — pakiety,

które mają być przesyłane do jednego urządzenia z grupy. Router, otrzymując taki pakiet i wiedząc, które z urządzeń są w grupie anycastowej, kieruje go do jednego z nich, samemu podejmując decyzję do którego. Może to ułatwić np. balansowanie obciążeń w systemach obliczeń rozproszonych. Pamiętaj, że niektóre systemy operacyjne automatycznie instalują na Twoim komputerze obsługę IPv6 i że w niektórych sieciach, z jakich korzystasz, routery mogą obsługiwać funkcję autokonfiguracji IPv6. Może się więc okazać, że nie wiedząc o tym, otrzymujesz w takiej sieci oprócz adresu IPv4 dodatkowy adres IPv6, z którym mogą być związane jakieś luki bezpieczeństwa.

Model referencyjny ISO/OSI — warstwa transportowa, protokoły TCP i UDP, stos protokołów TCP/IP Protokół IP jest podstawowym protokołem warstwy sieciowej obsługującym adresy logiczne i pozwalającym przesyłać informacje w intersieciach. Obok protokołu IP istnieją inne techniki adresowania logicznego, żadna z nich jednak nie odgrywa tak dużej roli jak Internet Protocol. Protokół IP, wraz ze wspomnianymi protokołami ICMP, RIP, OSPF, ARP, BGB, EGP, jest członkiem grupy protokołów zwanej stosem protokołów TCP/IP. Obejmuje ona współpracujące ze sobą protokoły działające w kolejnych warstwach modelu referencyjnego DoD tworzące razem technologię globalnej sieci Internet oraz tysięcy sieci prywatnych. W warstwie host-to-host są to protokoły TCP (ang. Transmission Control Protocol — Protokół Sterowania Transmisją) oraz UDP (ang. User Datagram Protocol — Protokół Datagramów Użytkownika). Strukturę danych protokołu TCP nazywamy segmentem, a strukturę danych UDP — datagramem. W zestawie protokołów TCP/IP protokół UDP zapewnia podstawowy mechanizm wykorzystywany przez procesy użytkowe przy przesyłaniu informacji do innych procesów na odległych hostach. Oprócz wysyłanych danych każdy datagram UDP zawiera szesnastobitowe liczby całkowite bez znaku zwane numerami portów odbiorcy i nadawcy. Liczby te stanowią swojego rodzaju rozszerzenie adresu logicznego i — tak jak adres IP służył do adresowania komputera (hosta) — tak numery portów służą do zidentyfikowania procesu (programu) uruchomionego na tym hoście. Dzięki numerom portów oprogramowanie UDP odbiorcy może dostarczyć komunikat do właściwego procesu odbiorcy. Komunikacja w protokole UDP nazywana jest zawodną (ang. unreliable) i bezpołączeniową (conectionless) usługą transportową. Pojęcie „bezpołączeniowa” oznacza, że przed rozpoczęciem wysyłania datagramów nie następuje nawiązanie połączenia (nie są wysyłane żadne wstępne datagramy kontrolujące przebieg łączności), a pojęcie „zawodna” — że nie istnieją w protokole UDP żadne mechanizmy pozwalające stwierdzić, czy datagram dotarł do odbiorcy, czy nie został po drodze uszkodzony, ani wymusić jego retransmisję.

180

13 najpopularniejszych sieciowych ataków na Twój komputer

Na rysunku B.32 przedstawiono format datagramu UDP: 1 2 3 4 01234567012345670123456701234567 +----------------+--------+------+ | Source | Destination | | Port | Port | +----------------+---------------+ | Leng | Checksum | +----------------+---------------+ | | data octets ... +------------------------------...

Rysunek B.32. Format datagramu UDP

Datagram można podzielić na dwie części: nagłówek UDP i obszar danych UDP. Nagłówek składa się z czterech 16-bitowych pól, które określają: port, z jakiego wysłano komunikat (ang. source port), port odbiorcy (ang. destination port), długość komunikatu (ang. length) oraz sumę kontrolną (ang. checksum).  Pola port nadawcy i port odbiorcy zawierają 16-bitowe numery portów UDP

używane do odnajdywania procesu oczekującego na dany datagram. Pole port nadawcy jest opcjonalne. Gdy jest używane, zawiera numer portu, do którego należy wysłać odpowiedź, w przeciwnym przypadku powinno mieć wartość 0.  Pole długość zawiera wartość odpowiadającą liczbie oktetów datagramu UDP,

wliczając nagłówek i dane użytkownika. Minimalna wartość tego pola wynosi 8, czyli jest długością samego nagłówka.  Pole suma kontrolna jest opcjonalne i nie musi być używane. Wartość 0 w tym

polu oznacza, że suma kontrolna nie była w ogóle liczona. Jednak liczenie tej sumy kontrolnej daje jedyną gwarancję na to, że dane nie zostały uszkodzone i można je wykorzystać (ponieważ IP, z którego korzysta UDP, nie wylicza takich sum dla danych użytkownika). Suma kontrolna UDP dotyczy większej ilości informacji niż sam datagram UDP. W celu obliczenia sumy UDP dodaje na początku datagramu pseudonagłówek, a na końcu oktet zer, aby dopełnić długość datagramu do wielokrotności 16-bitów, i wylicza sumę z tak uzyskanego obiektu. Pseudonagłówek jest umieszczany po to, aby odbiorca mógł stwierdzić, że datagram UDP jest właśnie do niego adresowany. Nagłówek UDP określa jedynie numer portu protokołu, dlatego też w celu zweryfikowania poprawności odebranego datagramu u odbiorcy UDP wylicza sumę kontrolną na hoście nadającym, obejmującą zarówno adres odbiorcy, jak i datagram UDP. Pseudonagłówek używany przy liczeniu sumy kontrolnej składa się z 12 oktetów ułożonych jak na rysunku B.33. Pola pseudonagłówka oznaczone jako adres źródłowy (ang. source adress) i adres przeznaczenia (ang. destination adress) zawierają adresy IP nadawcy i odbiorcy. Pole protocol zawiera typ kodu protokołu IP (w tym przypadku 17), a pole oznaczone jako długość UDP (ang. UDP length) zawiera długość datagramu UDP, ale bez pseudonagłówka. W celu sprawdzenia poprawności sumy kontrolnej odbiorca musi wyznaczyć te pola na podstawie nagłówka IP, zbudować z nich pseudonagłówek i obliczyć sumę kontrolną.

Załącznik B ♦ Podstawy komunikacji sieciowej

181

1 2 3 4 01234567012345670123456701234567 +--------------------------------+ | source address | +--------------------------------+ | destination address | +--------+--------+--------------+ | zero | prot. | UDP length | +--------+--------+--------------+

Rysunek B.33. Format pseudonagłówka UDP

Protokół TCP zapewnia warstwie procesów/aplikacji zupełnie inne usługi niż UDP: zorientowaną połączeniowo (ang. connection-oriented) i niezawodną (ang. reliable) obsługę przesyłanych danych. Format nagłówka TCP jest przedstawiony na rysunku B.34. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Source Port | Destination Port | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Sequence Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Acknowledgment Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Data | |U|A|P|R|S|F| | | Offset| Reserved |R|C|S|S|Y|I| Window | | | |G|K|H|T|N|N| | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Checksum | Urgent Pointer | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Options | Padding | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | data | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Rysunek B.34. Format nagłówka protokołu TCP

Znaczenie wybranych pól zostało opisane poniżej.  Pola port nadawcy (ang. source port) i port odbiorcy (ang. destination port)

zawierają numery portów TCP identyfikujące procesy nadawcy i odbiorcy. Numery portów TCP mają takie samo znaczenie i zastosowanie jak numery portów UDP. Czasami parę adres-port (zapisywaną zazwyczaj z dwukropkiem w roli separatora) nazywa się gniazdem (ang. socket) np. 10.0.0.1:80.  Pole numer sekwencyjny (ang. sequence number) wyznacza pozycję danych

segmentu TCP w całym strumieniu bajtów przesyłanym od nadawcy.  Pole numer potwierdzenia (ang. acknowledgement number) wyznacza numer

oktetu, który nadawca spodziewa się otrzymać w następnej kolejności. Numer sekwencyjny odnosi się do strumienia bajtów przesyłanego w tę samą stronę, w którą przesyłany jest segment TCP, natomiast numer potwierdzenia odnosi się do strumienia danych przesyłanego w przeciwnym kierunku.

182

13 najpopularniejszych sieciowych ataków na Twój komputer  Pole długość nagłówka (ang. data offset) zawiera liczbę całkowitą, która określa

długość nagłówka segmentu mierzoną w wielokrotnościach 32-bitów. Jest ono konieczne ze względu na różną długość pola opcje (ang. options), która zależy od tego, jakie opcje zostały wybrane. 6-bitowe pole oznaczone jako zarezerwowane (ang. reserved) jest pozostawione do wykorzystania w przyszłości.  Niektóre segmenty przenoszą jedynie potwierdzenia, niektóre także dane,

inne zaś zawierają prośby o ustanowienie lub zamknięcie połączenia. Oprogramowanie TCP używa 6-bitowego pola bitów kodu (zwanych czasem flagami), aby poprawnie zinterpretować zawartość segmentu. Bity te informują, w jaki sposób powinny być traktowane pozostałe pola nagłówka. Ich znaczenie zostało opisane w tabeli poniżej.  Za każdym razem, gdy jest wysyłany segment, oprogramowanie TCP proponuje,

ile danych może przyjąć, umieszczając rozmiar swojego bufora w polu okno (ang. window).  Pole suma kontrolna (ang. checksum) zawiera wartość policzoną dla całego

segmentu TCP (nagłówka i danych). Pole to jest polem obowiązkowym, którego wartość musi być policzona i umieszczona przez wysyłającego, a następnie zweryfikowana przez odbiorcę. Suma ta jest liczona podobnie jak suma kontrolna UDP z użyciem pseudonagłówka.  Pole wskaźnik ważności (ang. urgent pointer) jest brane pod uwagę tylko

wtedy, jeśli ustawiony jest znacznik URG. Wskaźnik ten jest dodatnim przesunięciem, które musi być dodane do pola sekwencyjnego segmentu, aby uzyskać numer sekwencyjny ostatniego bajtu ważnych danych.  Pole opcje (ang. options) zawiera opcję określającą maksymalny rozmiar

segmentu. Każdy koniec połączenia określa tę opcję w pierwszym wymienianym segmencie.  Bity pola kod (ang. flags) z nagłówka TCP i ich znaczenie zostały pokazane

w tabeli A.4. Tabela A.4. Bity pola kod (ang. flags) z nagłówka TCP i ich znaczenie Nazwa bitu

Znaczenie

URG

Wskaźnik pilności jest istotny

ACK

Pole potwierdzenia jest istotne

PSH

Oznacza, że odbiorca powinien przekazać dane do procesu jak najszybciej

RST

Zresetowanie połączenia

SYN

Synchronizacja numerów sekwencyjnych w celu inicjalizacji połączenia

FIN

Nadawca zakończył przesyłanie danych

TCP jest protokołem zorientowanym na połączenie. Oznacza to, że przed rozpoczęciem transmisji danych pomiędzy oboma węzłami końcowymi (procesami nadawcy i odbiorcy) ustanawiane jest połączenie zwane kanałem wirtualnym (ang. virtual circuit) (zobacz rysunek B.35).

Załącznik B ♦ Podstawy komunikacji sieciowej

183

Internet Browser

webserwer

Microsoft Internet Explorer on port 5432

Apache on port 80 Virtual Circuit 10.0.0.1:80-192.168.3.12:5432

10.0.0.1 192.168.3.12 Rysunek B.35. Obwód wirtualny

Aby ustanowić połączenie komunikacyjne, protokół TCP stosuje proces zwany trójstronnym uściskiem ręki (ang. 3-way handshake), w którym przesyłane są trzy segmenty. Segmenty, które służą do tworzenia połączenia, nazywane są segmentami synchronizacyjnymi (segmentami SYN). Trójetapowa wymiana komunikatów gwarantuje, że TCP nie ustanowi połączenia, jeżeli obie strony nie wezmą w tym udziału. Proces ustanawiania połączenia pokazany jest na rysunku B.36.

webserwer

Apache on port 80

(1) TCP SYN

(2) TCP

CK SYN/A

Internet Browser

Microsoft Internet Explorer on port 5432

(3) TCP SYN/ACK

10.0.0.1 192.168.3.12 Rysunek B.36. Proces nawiązywania połączenia TCP (three-way handshake)

Zestawienie połączenia wygląda następująco: 1. Strona, która chce nawiązać połączenie, wysyła segment SYN na określony

numer portu drugiej strony połączenia, a także swój numer sekwencyjny (X). W ten sposób wykonuje tak zwane aktywne otwarcie (ang. active open). 2. Jeżeli port jest otwarty (w systemie operacyjnym odbiorcy pod tym numerem

portu czuwa jakaś usługa), druga strona odpowiada, wysyłając segment SYN/ ACK ze swoim własnym numerem sekwencyjnym (Z), a także numerem potwierdzającym odebranie segmentu SYN (jest to numer sekwencyjny z segmentu SYN powiększony o jeden, czyli X+1). W ten sposób następuje tak zwane pasywne otwarcie (ang. passive open). Natomiast jeżeli port jest zamknięty, wysyłany jest segment RST.

184

13 najpopularniejszych sieciowych ataków na Twój komputer 3. Jeśli port był otwarty, strona nawiązująca połączenie musi potwierdzić nadesłany

segment SYN/ACK, wysyłając potwierdzenie ACK z numerem sekwencyjnym segmentu 2 powiększonym o jeden (Z+1). W przeciwnym razie nie wysyła żadnego segmentu. Zakończenie połączenia TCP w przeciwieństwie do ustanawiania połączenia TCP wymaga wymiany czterech komunikatów. Wynika to z faktu, że połączenie TCP jest połączeniem dwukierunkowym, tak więc każdy z kierunków musi być zamknięty niezależnie. Segmenty służące do zamykania połączenia nazywane są segmentami kończącymi (segmentami FIN). Zakończenie połączenia wygląda następująco: 1. Strona, która chce zakończyć połączenie, wysyła do drugiej strony pakiet FIN. 2. Kiedy druga strona TCP odbierze segment FIN, wysyła potwierdzenie ACK

z otrzymanym numerem sekwencyjnym powiększonym o jeden. Oznacza to, że w tym kierunku połączenia nie będą płynęły już żadne dane, ale TCP może nadal wysyłać dane w drugą stronę po otrzymaniu FIN. Jest to tzw. półzamknięte połączenie. 3. Aby nastąpiło pełne zakończenie, TCP po stronie serwera musi wysłać segment

FIN/ACK do klienta. Odebrany przez klienta segment musi zostać potwierdzony segmentem ACK. Sytuację obrazuje rysunek B.37. webserwer

(1) TCP FIN

(2) TCP Apache on port 80

(3)

Internet Browser

ACK

IN ACK TCP F

Microsoft Internet Explorer on port 5432

(4) TCP ACK

10.0.0.1

192.168.3.12

Rysunek B.37. Zamykanie połączenia TCP

Protokół TCP zapewnia usługę niezawodną, to znaczy otrzymanie każdej porcji danych wysłanej przez nadawcę jest przez odbiorcę potwierdzane za pomocą specjalnego pakietu (zwanego ACK — acknowledgement). W przypadku stwierdzenia (za pomocą weryfikacji sumy kontrolnej) błędu w otrzymanym segmencie odbiorca wysyła do nadawcy pakiet NACK (negative acknowledgement), po otrzymaniu którego odbiorca powtórnie przesyła odpowiedni fragment danych. W ten sposób nadawca dysponuje mechanizmem weryfikacji, dzięki któremu niezawodnie wie, czy odbiorca odebrał

Załącznik B ♦ Podstawy komunikacji sieciowej

185

przesłaną informację. Opisany mechanizm nosi nazwę potwierdzania z retransmisją. W przeciwieństwie do TCP protokół UDP jest protokołem zawodnym, to znaczy o kontrolę poprawności przesyłanych danych musi zatroszczyć się program użytkownika lub protokoły wyższych warstw. Oczywiście sam protokół TCP dotyczy znacznie większej liczby zagadnień i opisuje znacznie więcej mechanizmów niż tutaj wymienione. Osobom zainteresowanym szczegółami komunikacji TCP/IP polecamy wnikliwą lekturę dokumentów RFC 792 – 795.

Model referencyjny ISO/OSI — warstwy: sesji, prezentacji i aplikacji, protokoły warstw wyższych Warstwy sesji, prezentacji i aplikacji modelu ISO/OSI w modelu DoD i w stosie protokołów TCP/IP zebrane są w jednej warstwie zwanej warstwą procesów/aplikacji. Patrząc z praktycznego punktu widzenia, znajdują się tu protokoły odpowiadające za komunikację warstw niższych z programami użytkowymi, co zazwyczaj realizuje się za pomocą odpowiednich poleceń i komunikatów tekstowych. W warstwach tych nie mamy już zazwyczaj do czynienia z bitami, nagłówkami, znacznikami itd., ale właśnie z poleceniami tekstowymi. Z tego też powodu o warstwie transportowej mówi się, że jej zadaniem jest ukrywanie tego, co dzieje się w warstwach niższych (tak nazywa się warstwy I – IV modelu ISO/OSI), przed warstwami wyższymi. Z punktu widzenia warstw wyższych gniazdo TCP wygląda podobnie jak plik tekstowy czy urządzenie wejścia-wyjścia — można z niego odczytać bądź przesłać do niego strumień znaków. Strumień ten zostanie przesłany do odbiorcy poprzez obwód wirtualny TCP. W rzeczywistości więc struktura informacji przesyłanej poprzez sieć komputerową wygląda jak na rysunku B.38. Ramka Ethernet Pakiet IP Segment TCP lub datagram UDP Nagłówek ramki Ethernet

Nagłówek pakietu IP

Nagłówek segmentu TCP lub datagramu UDP

Dane I polecenia protokołów warstw wyższych

Końcówka ramki Ethernet (CRC)

Rysunek B.38. Struktury danych w komunikacji sieciowej

Jak widać z powyższego rysunku, rozmaite informacje kontrolne zajmują całkiem dużą część sieciowych struktur danych. Dużą część pasma zajmują również potwierdzenia (ang. acknowledgements) oraz rozmaite informacje sterujące (związane z protokołami routingu, rozgłaszaniem usług, synchronizacją czasu itd.). Tłumaczy to dlaczego, nawet w stosunkowo mało obciążonej sieci czy przy bezpośrednim połączeniu dwóch komputerów, rzeczywista prędkość transmisji (np. przy przesyłaniu plików pomiędzy dwoma komputerami połączonymi przewodem sieciowym) znacząco odbiega od teoretycznej maksymalnej przepustowości łącza transmisyjnego.

186

13 najpopularniejszych sieciowych ataków na Twój komputer

Zadania warstw wyższych (wg normy PN-EN ISO/IEC 7498-1:1999) określone są następująco: Warstwa sesji dostarcza usług do ustanawiania połączenia sesyjnego między dwoma aplikacjami, utrzymywania uporządkowanej interakcji wymiany danych i zwalniania połączenia w uporządkowany sposób. W celu otwarcia połączenia pomiędzy komputerami warstwa sesji sprawdza, czy warstwy na komputerze nadawcy i odbiorcy mogą otworzyć połączenie. Jeżeli tak, obie komunikujące się strony muszą wybrać opcje obowiązujące w czasie trwania sesji. Dotyczy to np. rodzaju połączenia (tryb simplex — wiadomości mogą być przesyłane tylko w jednym kierunku od nadawcy do odbiorcy, trybu full-duplex — jednym z kanałów wiadomości przesyłane są w jedną stronę, a drugim kanałem jednocześnie w drugą stronę, trybu half-duplex — tylko jedna z dwóch stron może w tym samym czasie wysyłać dane). Ponadto jeżeli w systemie wykonywanych jest wiele aplikacji sieciowych, warstwa sesji jest odpowiedzialna za utrzymywanie komunikacji i kierowanie przychodzących danych do właściwej aplikacji. W skrócie mówimy, że warstwa sesji odpowiada za ustanawianie, sterowanie przebiegiem i zamykanie sesji komunikacyjnej między systemami końcowymi. Warstwa prezentacji określa sposób prezentowania danych przez aplikacje wymieniające dane. Protokoły tej warstwy są potrzebne, ponieważ różne komputery używają różnej reprezentacji liczb i znaków i niezbędna jest ich konwersja po jednej i po drugiej stronie połączenia. Warstwa ta rozwiązuje takie problemy jak niezgodność reprezentacji liczb, znaków końca wiersza, liter narodowych itp. Występują tu funkcje negocjowania i renegocjowania składni transferu. Ponadto w warstwie tej dokonuje się szyfrowanie i kompresja danych. W skrócie mówimy, że warstwa prezentacji odpowiada za kodowanie i szyfrowanie przesyłanych danych. Warstwa aplikacji dostarcza standardowego interfejsu dla programów użytkownika znajdujących się ponad warstwą aplikacji. Należy pamiętać, że same programy znajdują się „nad” modelem referencyjnym, podobnie jak media transmisyjne znajdowały się „pod” modelem. Omówmy dla przykładu funkcjonowanie jednego z protokołów warstw wyższych — protokołu przesyłania plików (File Transfer Protocol, ftp). Protokół FTP (ang. File Transfer Protocol) służy do przesyłania dowolnych plików między dwoma dowolnymi komputerami, niezależnie od systemów operacyjnych zainstalowanych na tych komputerach. Zapewnia określenie właścicieli oraz ograniczenia dostępu. Przesyłanie plików przez FTP odbywa się w środowisku klient-serwer. Użytkownik uruchamia lokalnego klienta, który interpretuje wprowadzane polecenia oraz przesyła odpowiednie polecenia do serwera. Polecenia FTP specyfikują parametry dla przesyłanych danych (np. port danych, tryb transferu), a także typowe dla systemu plików operacje, takie jak: usuwanie, przechowywanie, odzyskiwanie, dodawanie plików. Polecenia te umożliwiają zatem określenie odległego komputera, autoryzację, sprawdzają, jakie pliki są dostępne.

Załącznik B ♦ Podstawy komunikacji sieciowej

187

Serwer FTP wykonuje pasywne otwarcie na porcie 21 i czeka na połączenie klienta. W celu ustanowienia połączenia TCP z serwerem FTP należy wpisać polecenie open i podać adres odległego komputera, co spowoduje aktywne otwarcie na porcie 21. Klient, otwierając połączenie z serwerem, używa dowolnego, określonego lokalnie numeru portu. Ustanowione połączenie nazywa się połączeniem sterującym i służy do wysyłania poleceń. Nie są jednak wysyłane bezpośrednio kody klawiszy naciśniętych przy wprowadzaniu polecenia, lecz po zinterpretowaniu przez klienta danego polecenia tworzone jest zapytanie, które następnie przesyłane jest do serwera. Serwer przesyła odpowiedź i dochodzi do komunikacji. Połączenie sterujące służy tylko do przesyłania i odbierania odpowiedzi i pozostaje aktywne przez cały czas komunikacji klienta z serwerem. Do przesyłania danych (za każdym razem gdy przesyłany jest jakiś plik) ustanawiane jest nowe połączenie, które po każdym przesłanym pliku jest zamykane. W celu uniknięcia konfliktów połączenie dla danych i połączenie sterujące używają innych numerów portów. Tworzenie połączenia jest inicjowane przez klienta, ponieważ to klient wysyła polecenie nawiązania nowego połączenia, jeżeli chce pobrać plik czy też przesłać go na serwer. W tym celu klient wybiera jeden z nieużywanych aktualnie efemerycznych numerów portów i wysyła pasywne otwarcie na tym porcie. Numery efemeryczne są to numery tzw. krótkotrwałe i w większości implementacji TCP/IP zawierają się w przedziale od 1024 do 5000. Ponadto klient wysyła do serwera swój wybrany numer portu, używając do tego celu połączenia sterującego. Serwer odbiera informacje o numerze portu i wysyła aktywne otwarcie do tego portu na komputerze klienta. Po stronie serwera połączenie danych używa zawsze portu o numerze 20. Rysunek B.39 przedstawia zasadę działania protokołu FTP. ------------|/---------\| || User || -------||Interface|| User | |\----^----/| ----------------| | | |/------\| FTP Commands |/----V----\| ||Server|| User || || PI || FTP Replies || PI || |\--^---/| |\----^----/| | | | | | | -------|/--V---\| Data |/----V----\| -------| File ||Server|| User || File | |System| || DTP || Connection || DTP || |System| -------|\------/| |\---------/| ----------------------------Server-FTP

USER-FTP

Rysunek B.39. Połączenie sterujące i połączenie dla danych wykorzystywane przy przesyłaniu plików pomiędzy klientem a serwerem za pomocą protokołu FTP

FTP określa szereg poleceń, za pomocą których odbywa się sterowanie transmisją (np. polecenie get wydane przez klienta powoduje przesyłanie z serwera pliku o nazwie wyspecyfikowanej jako parametr polecenia, polecenie put — przesłanie pliku od klienta

188

13 najpopularniejszych sieciowych ataków na Twój komputer

na serwer), wybór trybu transmisji plików (tekstowy i binarny) i ustalenie wielu innych szczegółów dotyczących realizacji transmisji plików. Cały dokument RFC dotyczący protokołu FTP (RFC 959) liczy aż 68 stron. Szczególnie istotnym rozwiązaniem funkcjonującym w warstwie procesów-aplikacji modelu DoD jest system nazw dziedzinowych (ang. Domain Name System, DNS). Dzięki DNS możliwe jest stosowanie przez użytkowników nazw symbolicznych (np. www.onet.pl) zamiast trudniejszych do zapamiętania numerycznych adresów IP. Odwzorowania adresów symbolicznych na odpowiadające im adresy numeryczne przechowywane są na specjalnych serwerach zwanych serwerami nazw dziedzinowych (ang. Domain Name Servers, DNS). Nazwy dziedzinowe zorganizowane są w hierarchię domen. Domeny znajdujące się najwyżej w hierarchii (takie jak np. .com, .edu, .museum, .net oraz domeny narodowe jak np. .pl, czy .fm) podzielone są na mniejsze poddomeny (jak np. .lodz.pl czy .edu.pl), te z kolei dalej mogą być dzielone na kolejne poddomeny (np. p.lodz.pl czy piotrkow.edu.pl). Dla każdej z domen istnieje DNS (a czasem również kilka DNS-ów zapasowych) przechowujący odwzorowania jej adresów i informacje o adresach DNS-ów stref podrzędnych (zobacz rysunek B.40).

Rysunek B.40. Hierarchia serwerów nazw dziedzinowych

Przy wyszukiwaniu adresu symbolicznego klient odpytuje o niego lokalny serwer DNS (podany w konfiguracji oprogramowania klienckiego). Jeśli serwer ten nie jest serwerem strefy, w której znajduje się poszukiwany adres, ani nie przechowuje akurat szukanego adresu w pamięci podręcznej, to zwraca się do serwera najwyższej strefy, do jakiej należy podany adres (tzw. root server). Oczywiście, aby to uczynić, każdy DNS musi znać adresy (numeryczne czyli IP) wszystkich rootserverów. Te z kolei albo rozwiązują adres, albo przekazują informację o adresie serwera DNS poddomeny. W ten sposób odpowiedni DNS zostanie w końcu znaleziony (zobacz rysunek B.41). Spróbujmy prześledzić na koniec, jak w praktyce wygląda połączenie i przesłanie danych pomiędzy dwoma systemami otwartymi, działającymi w sieci Ethernet w oparciu o protokoły z rodziny TCP/IP i znajdujące się w różnych strefach nazw.

Załącznik B ♦ Podstawy komunikacji sieciowej

189

Rysunek B.41. Komunikacja z rootserverem

Rysunek B.42. Przykład: komunikacja w intersieci Chciałbym obejrzec strony www na serwerze www.serwer.polska.pl

Nazwa symboliczna: klient.polska.pl Adres IP: 10.0.0.2 Adres MAC 22:22:22:22:22:22

Aby połączyć się z serwerem, trzeba oczywiście znać jego adres IP, a o ten adres należy odpytać własny DNS. Adres IP DNS-a jest zapisany w konfiguracji oprogramowania klienta, nie trzeba więc go szukać. Zapytanie do DNS-a przenoszone jest w datagramie protokołu UDP, ten datagram należy umieścić w pakiecie IP zaadresowanym na adres numeryczny DNS-a, ten zaś pakiet w ramce zaadresowanej (adresem MAC) na adres fizyczny odpowiedniego interfejsu maszyny, na której uruchomiono usługi DNS (zobacz rysunek B.43).

190

13 najpopularniejszych sieciowych ataków na Twój komputer

Rysunek B.43. Przykład: komunikacja w intersieci

O poszukiwany adres symboliczny www.polska.pl muszę zapytac mojego DNS-a (on ma adres IP 10.0.0.254), ale jaki ma adres MAC?

Nazwa symboliczna: klient.polska.pl Adres IP: 10.0.0.2 Adres MAC 22:22:22:22:22:22

W celu poznania adresu fizycznego należy oczywiście skorzystać z protokołu ARP (o ile korzystamy ze stosu TCP/IP i IPv4). Klient wysyła zatem zapytanie ARP o adres fizyczny DNS-a (zobacz rysunek.44).

Rysunek B.44. Przykład: komunikacja w intersieci. Krok 1. Zapytanie ARP

Załącznik B ♦ Podstawy komunikacji sieciowej

191

Po otrzymaniu zapytania DNS podaje swój adres fizyczny (zobacz rysunek B.45).

Rysunek B.45. Przykład: komunikacja w intersieci. Krok 2. Odpowiedź ARP

Po poznaniu adresu fizycznego DNS-a klient może skierować doń zapytanie o adres numeryczny serwera, którego adres symboliczny podaje (zobacz rysunek B.46).

Rysunek B.46. Przykład: komunikacja w intersieci. Krok 3. Zapytanie DNS

192

13 najpopularniejszych sieciowych ataków na Twój komputer

Ponieważ szczęśliwie DNS klienta jest DNS-em strefy serwera, może on bezpośrednio udzielić odpowiedzi na pytanie (zobacz rysunek B47).

Rysunek B.47. Przykład: komunikacja w intersieci. Krok 4. Odpowiedź DNS

Adres numeryczny serwera został znaleziony, ale znajduje się on poza siecią lokalną. Aby się z nim skontaktować, należy skorzystać z routera — bramy, za której pośrednictwem łączy się ze światem (zobacz rysunek B.48). Adres logiczny (IP) routera (bramy domyślnej) klient ma oczywiście zapisany w swojej konfiguracji, ale aby wysłać doń wiadomość, musi poznać jego adres fizyczny. Powtarza się zatem proces odpytywania ARP (zobacz rysunek B.49). Po otrzymaniu odpowiedzi klient jest gotów do wysłania informacji (zobacz rysunek B.50). Teraz dopiero klient może przygotować odpowiednią ramkę, zaadresowaną fizycznym adresem bramy, ale zawierającą pakiet zaadresowany logicznym adresem serwera docelowego (zobacz rysunek B.51). Router po otrzymaniu zaadresowanej do siebie ramki wydobędzie z niej pakiet IP, stwierdzi, że nie jest zaadresowany on do niego, ale do komputera z sieci 11.0.0.0, która osiągalna jest przez jego (routera) interfejs 11.0.0.1 (tę wiadomość ma zapisaną we własnej tablicy routingu), zapakuje więc pakiet do nowej ramki (tym razem z własnym adresem fizycznym w polu adres nadawcy), ale przedtem odpyta w protokole ARP komputer 11.0.0.2 o jego adres fizyczny (zobacz rysunek B.52).

Załącznik B ♦ Podstawy komunikacji sieciowej Rysunek B.48. Przykład: komunikacja w intersieci Z tamtym serwerem muszę skontaktowac się za pośrednictwem bramy. Muszę zapytać moją bramę (ona ma adres IP 10.0.0.1) o jej adres MAC

Nazwa symboliczna: klient.polska.pl Adres IP: 10.0.0.2 Adres MAC 22:22:22:22:22:22

Rysunek B.49. Przykład: komunikacja w intersieci. Krok 5. Odpytywanie o adres bramy

193

194

13 najpopularniejszych sieciowych ataków na Twój komputer

Rysunek B.50. Przykład: komunikacja w intersieci. Krok 6. Przesłanie pakietu ARP-reply z adresem bramy

Nagłówek ramki Ethernet

Nagłówek pakietu IP

Nagłówek segmentu TCP lub datagramu UDP

Dane I polecenia protokołów warstw wyższych

Końcówka ramki Ethernet (CRC)

Adres fizyczny odbiorcy 10:10:10:10:10:10 (adres bramy) Adres fizyczny nadawcy: 22:22:22:22:22:22 (adres klienta)

Adres logiczny odbiorcy: 11.0.0.2 (adres serwera)

Segment TCP adresowany na port 80 serwera (odpowiadający usłudze www), zawierający ustawioną flagę synchronizacji (SYN)

Rysunek B.51. Przykład: komunikacja w intersieci. Krok 7. Ramka wychodząca od klienta

Załącznik B ♦ Podstawy komunikacji sieciowej

195

Rysunek B.52. Przykład: komunikacja w intersieci. Krok 8. Zapytanie ARP w sieci 11.0.0.0

Z kolei serwer www.serwer.pl podaje swój adres fizyczny (zobacz rysunek B.53).

Rysunek B.53. Przykład: komunikacja w intersieci. Krok 9. Odpowiedź ARP

Router może teraz przygotować odpowiednią ramkę: jako adres nadawcy umieścić swój MAC-adres, a jako adres odbiorcy — MAC-adres serwera. Założyliśmy, że obie sieci są zbudowane w technologii Ethernet (zobacz rysunek B.54). Oczywiście w pakiecie niesionym w ramce adresy (logiczne) odbiorcy i nadawcy nie ulegają zmianom.

196

13 najpopularniejszych sieciowych ataków na Twój komputer

Nagłówek ramki Ethernet

Nagłówek pakietu IP

Nagłówek segmentu TCP lub datagramu UDP

Dane I polecenia protokołów warstw wyższych

Końcówka ramki Ethernet (CRC)

Adres fizyczny odbiorcy 33:33:33:33:33:33 (adres serwera www) Adres fizyczny nadawcy: 12:12:12: 12:12:12 (adres zewnętrznego interfejsu bramy)

Adres logiczny odbiorcy: 11.0.0.2 (adres serwera)

Segment TCP adresowany na port 80 serwera (odpowiadający usłudze www), zawierający ustawioną flagę synchronizacji (SYN)

Rysunek B.54. Przykład: komunikacja w intersieci. Krok 10. Ramka przygotowana przez router

Po otrzymaniu segmentu TCP SYN serwer przesyła do odbiorcy segment TCP SYN ACK zgodnie z omówionym powyżej mechanizmem trójstronnego uścisku ręki. Oczywiście, aby go przesłać, musi posłużyć się bramą (w naszym przykładzie będzie to ta sama brama, jakkolwiek nie ma powodu, aby pakiet nie został odesłany inną drogą, jeśli tylko taka istnieje). Po raz kolejny rozpocznie się więc wyszukiwanie adresu bramy w protokole ARP (serwer wprawdzie otrzymał już od bramy jedną przesyłkę, ale był w niej pakiet IP z adresem klienta, a nie bramy, serwer nie wie więc, jaki jest adres MAC routera). Po kilku kolejnych krokach segment TCP SYN ACK osiągnie komputer klienta, który z kolei zakończy proces ustanawiania obwodu wirtualnego i prześle do serwera WWW polecenie protokołu HTTP get index.html odpowiadające za żądanie wyświetlenia strony głównej. Serwer potwierdzi (ACK) otrzymanie segmentu zawierającego to polecenie i rozpocznie transmisję strony WWW, która zacznie być wyświetlana w przeglądarce klienta. Cały ten proces znacznie się skomplikuje, jeśli po drodze od serwera do klienta umieszczony jest nie jeden, ale kilka routerów bądź jeśli któryś z komunikatów zostanie uszkodzony lub zagubiony i konieczna będzie jego retransmisja. Zdając sobie — nawet dość pobieżnie — sprawę ze złożoności procesów komunikacyjnych w intersieciach, można dopiero docenić szybkość i niezawodność działania liczącego ponad 200 milionów komputerów Internetu.

Załącznik C

Wykaz oprogramowania, które należy sciągnąć z Internetu Lp.

Nazwa

1.

SystemRescueCD

2.

DriveImageXML

3.

promiscdetect

4.

WinAntiSniffer

5.

ifpromisc

6.

Putty

7.

SiteAdvisor

8.

Tor

9.

NetSetMan

10.

CHX-I

11.

Hitman Pro

12.

Snort

13.

HijackThis

14.

PE Builder

15.

Tripwire

16.

DeepBurner

198

13 najpopularniejszych sieciowych ataków na Twój komputer

Skorowidz 1000baseT, 155 100baseF, 155 100baseT, 155 10baseT, 155 3-way handshake, 183 802.11, 145, 161

A Access Point, 18, 161 ACK, 182 acknowledgements, 185 Active Directory, 148 adres fizyczny, 16 IP, 24, 56, 166 logiczny, 163 MAC, 16, 157 rozgłoszeniowy, 24 adresowanie bezklasowe, 166 grupowe, 165 IP, 145, 164 klasowe, 166 Adware, 80 AES, 52 AH, 176 anonimowość w sieci, 56 routing cebulowy, 58 antysniffery, 22 AP, 161 application rootkit, 79 Archive, 8 archiwizacja, 7 ARP, 18, 172 arp -a, 28

ARP Reply, 18 arp -s, 29 ARP-reply, 172 ARP-request, 172 ARP-spoofing, 16, 17 wykrywanie, 27 ataki ARP-spoofing, 19 DDoS, 96, 114 DNS-spoofing, 68 DoS, 115 fizyczne, 7 malware, 80 Man In The Middle, 69 pharming, 76, 118 phishing, 72 siłowe, 115 Stacheldraht, 116 autoodtwarzanie, 102 autorun.inf, 102

B backdoor, 78 backup, 7 badanie integralności systemu plików, 111 BartPE, 107 baseband, 158 bezpieczeństwo informacji, 126 BGP, 168 BitDefender Pica Removal Tool, 104 blokowanie pingowania, 90 bluetooth, 112 bootsektor, 77 botnet, 114 broadcast, 24, 163 brute force, 115

200

13 najpopularniejszych sieciowych ataków na Twój komputer

C C/N, 147 C/S, 147 CA, 40 Certificate Revocation Lists, 40 Certification Authority, 40 certyfikaty, 40 checksum, 182 chkrootkit, 107 CHX, 83 konfiguracja, 87 konfiguracja firewalla dla sieci domowej, 90 konfiguracja firewalla dla sieci w pracy, 90 reguły filtrujące, 91 ciasteczka, 79 classfull addressing, 166 classless addressing, 166 Client-Network, 147 Client-Server, 147 CLIR, 178 ComboFix, 104 contention, 162 CRL, 40 cross-check, 107 CSMA/CD, 162 czas życia, 171 człowiek w środku, 69

D datagramy IP, 169 UDP, 180 DDoS, 96, 114 demony, 116 komputery zarządzające atakiem, 116 ofiary, 116 sieć botnet, 115 sieć DDoS, 115 topologia sieci, 116 zombie, 117 DeepBurner, 141 demultiplekser, 160 Dialer, 79 differential backup, 8 Disaster Backup, 9 Distributed Denial of Service, 114 DIX, 157 DNS, 67, 68, 188 DNS-spoofing, 68 statyczne odwzorowanie adresów IP na nazwy domenowe, 68 zabezpieczenia, 68

DoD, 150 Domain Name System, 188 DoS, 115 DOS, 78 dostęp do łącza, 161 drive-by pharming, 118 ochrona, 119 DriveImage XML, 10, 11 dynamiczna tablica odwzorowania adresów ARP, 172 dystrybucja live, 10

E EDGE, 146 e-Directory, 148 EGP, 168 emulator terminala, 147 encapsulation, 151 ESP, 176 Ethernet, 146, 152, 155 exploit, 79

F fałszowanie odpowiedź serwera DNS, 68 pakiety ARP, 18 Fastethernet, 155 file backup, 7 filtr pakietów TCP/IP, 80 FIN, 182, 184 firewall, 76, 80 CHX, 83 Flash Disinfector, 104 Fraggle, 115 frame, 16, 154 frequency hooping, 112 FTP, 186 połączenie, 187 full backup, 7 full-duplex, 186 funkcja skrótu, 41, 176

G ghost, 9, 10 gniazda, 185 GPRS, 146 gridy, 147 GSM, 146

Skorowidz

201

H half-duplex, 186 hash, 41 hermetyzacja, 163 hierarchia serwerów nazw dziedzinowych, 188 Hijacker, 79 HijackThis, 103 Hitman Pro, 95 hosts, 76 HSDPA, 146 hub, 16 hyper terminal, 147

I ICF, 81 ICMP, 174 komunikaty, 174, 175 ICMP Echo Reply, 92 ICMP flooding, 116 IDS, 96 IEEE, 154 ifpromisc, 17, 20 IKE, 178 image, 9 IMEI, 113 incremential backup, 8 infekcja w telefonie komórkowym, 112 infekcja z pendrive’a, 102 infekcja z sieci komputerowej, 80 informatyczny nośnik danych, 123 integralność systemu plików, 111 inteligentne przełączniki trzeciej warstwy, 30 Internet Connection Firewall, 81 Internet Security, 94 intersieć, 145, 165 intrusion detecion system, 94 IP, 163, 179 IpnG, 178 IPNG, 163 IPSec, 31, 176 algorytmy szyfrowania, 176 funkcje skrótu, 176 IKE, 178 komunikacja, 178 tryb transportowy, 176 tryb tunelowania, 177 tryby pracy, 176 ustalanie parametrów, 178 IPv6, 163, 178 IRC, 114 ISO, 10, 141, 149 ISO/OSI, 149, 151

K kapsułkowanie, 151, 168 karty sieciowe, 99 kernel-mode rootkit, 79 Keylogger, 79 klastry, 147 klasy adresowe IP, 166 klasyczny sniffing pasywny, 16 klient, 147 klient - serwer, 147 klient - sieć, 147 klucz publiczny, 40 kodowanie informacji na fali nośnej, 153 komunikacja sieciowa, 145, 185 komunikaty ICMP, 174, 175 koncentrator, 16, 156 konfiguracja filtr TCP/IP, 81 serwer proxy, 63 kontrola dostępu do mediów, 154 kontrola połączenia logicznego, 154 koń trojański, 78, 113 kopia bezpieczeństwa, 7 Disaster Backup, 9 ghost, 9, 10 image, 9 nośniki, 9 pełna, 7, 9 plikowa, 7 przyrostowa, 8 różnicowa, 8 zasady tworzenia, 8 kryptografia z kluczem publicznym, 40

L L2TP, 31 LAN, 146 Land, 115 LDAP, 148 listy unieważnionych certyfikatów, 40 live, 10 lmhosts, 76 Local Area Network, 146 Logical Link Control, 154

Ł łowienie haseł, 72

202

13 najpopularniejszych sieciowych ataków na Twój komputer

M MAC, 16, 154, 157, 172 MAC-flooding, 16 magistrala, 156 mainframe, 147 malicious software, 77 malware, 77, 80 drive-by pharming, 118 infekcja w telefonie komórkowym, 112 infekcja z pendrive’a, 102 infekcja z sieci komputerowej, 80 MAN, 146 Man In The Middle, 69 mapowanie dysków, 103 maska podsieci, 166 MBR, 77 MD5, 111 medium transmisyjne, 145 memory-based rootkit, 79 menadżer ustawień sieciowych, 83 Metropolitan Area Network, 146 Microsoft Windows Mobile, 114 MITM, 69 Mobile Net Switch, 83, 85 model DoD, 150, 155 model ISO/OSI, 149, 152 warstwy, 152 model łączenia systemów, 149 Monitor Mode, 18 most, 158 multiplekser, 160 muslticast, 165

N nadsieci, 166 nagłówki ICMP, 174 IP, 170 IPSec, 177 TCP, 181 nagrywanie obrazu ISO, 141 NAT, 178 nawiązywanie połączenia TCP, 183 nazwa domenowa, 68 NetSetMan, 83 numer IMEI, 113

O obraz ISO, 141 obwód wirtualny, 183 ochrona bezpieczeństwa informacji, 126

odzyskiwanie danych, 9 okno, 182 oprogramowanie antywirusowe, 76 OSI, 149 osobisty firewall, 82 OSPF, 168 oszustwa, 67 oszustwa komputerowe, 133 Outlook Express, 43

P P2P, 147 pakiety bezpieczeństwa, 94 pakiety ochronne, 94 password harvesting fishing, 72 peer-to-peer, 140, 147, 148 persistent rootkit, 79 personal firewalls, 82 pharming, 76, 118 phishing, 72 ochrona, 74 Ping of Death, 115 pingowanie, 90 piractwo komputerowe, 136 PKI, 40 CA, 40 certyfikaty, 40 CRL, 40 klucz prywatny, 43 listy unieważnionych certyfikatów, 40 Outlook Express, 43 podpisywanie wiadomości, 41, 43 RA, 40 repozytoria kluczy, 40 skrót wiadomości, 41 szyfrowanie wiadomości, 41, 43 tworzenie podpisu cyfrowego, 42 urzędy certyfikacyjne, 40 urzędy rejestracyjne, 40 weryfikacja podpisu, 42 plik autorun.inf, 102 podpis elektroniczny, 43 podpisywanie wiadomości, 41 podsieci, 166 podsłuch komputerowy, 132 podsłuch sieciowy, 15 inteligentne przełączniki trzeciej warstwy, 30 statyczne odwzorowanie tablicy ARP, 28 szyfrowanie, 31 zabezpieczenia, 28 podszywanie się, 67 polling, 161

Skorowidz połączenia nadmiarowe, 160 sesyjne między aplikacjami, 186 SSL, 49 TCP, 183, 184 pop-ups, 79 porty TCP/UDP, 80 potwierdzenia, 185 PPTP, 31 prawna ochrona bezpieczeństwa informacji, 126 prawo, 121 autorskie, 136 materialne, 121, 122 procesowe, 122 wykonawcze, 122 Pre-Shared Key, 52 Privoxy, 60 profile sieciowe, 83 program anty adware, 94 antywirusowy, 94 promiscdetect, 17 promiscuous, 16, 20 protokoły, 150 ARP, 172 FTP, 186 ICMP, 174 IP, 163, 179 IPSec, 176 IPv6, 178 TCP, 179, 181 UDP, 179 VPN, 31 proxy, 61 przekazywanie żetonu, 162 przełamanie zabezpieczeń, 130 przełącznik, 16, 158 ARP-spoofing, 17 store-and-forward, 158 przepisy prawa karnego, 122 przesyłanie informacji, 149 przetwarzanie rozproszone, 147 scentralizowane, 146, 147 współbieżne, 147 PSH, 182 PSK, 52 Public Key Infrastructure, 40 punkt dostępu, 18 Putty, 51

203

R RA, 40 RADIUS, 52 ramki, 16, 154 DIX, 157 rozgłoszeniowe, 163 ratunkowa wersja systemu, 10 RCP, 117 Redfang, 113 referencyjny model łączenia systemów otwartych, 149 Registration Authority, 40 repeater, 153 repozytoria kluczy, 40 RIP, 168 robaki, 78 root server, 188 rootkit, 79, 107 integralność systemu plików, 111 ochrona, 111 tripwire, 111 wykrywanie w systemie Windows, 107 root-mode rootkit, 79 router, 167 routing, 163, 168 cebulowy, 58 routing switch, 30 rozgłaszanie usług, 164 rozproszona odmowa usług, 114 rozwiązywanie adresu IP na adres MAC, 173 RST, 182 RTS/CTS, 161 ruch broadcastowy, 164

S SA, 178 sabotaż komputerowy, 133 SAD, 178 script kiddies, 130 segmentacja sieci, 158 serwer, 147 DNS, 68, 188 sfc.exe, 111 sieć, 145 botnet, 114, 115 DDoS, 115 Ethernet, 146, 152, 155 GSM, 146 IP, 163 kampusowa, 146

204

13 najpopularniejszych sieciowych ataków na Twój komputer

sieć kapsułkowanie, 151 komputerowa, 145 lokalna, 146 maska podsieci, 166 miejska, 146 model DoD, 150 model ISO/OSI, 149 NAT, 178 peer-to-peer, 140 protokoły, 150 przesyłanie informacji, 149 routing, 168 rozległa, 146 segmentacja, 158 stos protokołów TCP/IP, 179 STP, 160 teleinformatyczna, 123 topologie, 156 sieć bezprzewodowa, 20, 161 mechanizm dostępu do łącza, 161 medium, 161 przekazywanie żetonu, 162 punk dostępowy, 161 punkt dostępu, 18 RTS/CTS, 161 SSID, 54 standardy szyfrowania, 53 szyfrowanie, 52 tryb monitorujący, 18 uzgadnianie, 162 wardriving, 18 WEP, 52 właściwości połączenia, 55 WPA, 52 WPA2, 52, 54 sigverif.exe, 111 simplex, 186 SiteAdvisor, 75 skanery do wykrywania wirusów, trojanów i spyware, 95 skanowanie portów, 100 skrót wiadomości, 41 Smbnuke, 115 SmiShing, 113 SMS, 113 SMS phishing, 113 Smurf, 115, 116 sniffing, 15 ARP-spoofing, 17 fałszowanie pakietów ARP, 18 pasywny, 16 sieć bezprzewodowa, 18 wardriving, 18 wykrywanie podsłuchów, 20

Snort, 96 tryb IDS, 100 tryb sniffer, 99 social engineering, 132 sprawdzenie trybu pracy karty sieciowej, 20 spyware, 79 SSH, 51 połączenie, 51 Putty, 51 SSID, 54 SSL, 48, 70 algorytmy szyfrujące, 48 poczta elektroniczna, 50 połączenie z serwerem, 49 przeglądarki internetowe, 50 składniki bezpiecznej komunikacji, 49 Stacheldraht, 116 stacja robocza, 147 statyczne odwzorowanie adresów IP na nazwy domenowe, 68 statyczne odwzorowanie tablicy ARP, 28 store-and-forward, 158 stos protokołów TCP/IP, 179 STP, 160 subnet, 166 suma kontrolna nagłówka, 172 supernet, 166 switch, 16 switch layer 3, 30 Sygate Personal Firewall, 82 sygnatury MD5, 111 SYN, 182, 183 SYN attack, 115 SYN flooding, 116 SYN/ACK, 184 system detekcji intruzów, 94 System File Checker, 112 system informatyczny, 123 system nazw dziedzinowych, 188 system teleinformatyczny, 123 system wykrywania włamań, 96 SystemRescueCd, 10 szyfrowanie, 31 AES, 52 asymetryczne, 40 PKI, 40 sieć bezprzewodowa, 52 SSH, 51 SSL, 48 symetryczne, 40 WEP, 52 wirtualne sieci prywatne, 31 WPA, 52 WPA2, 52, 54

Skorowidz

205

Ś środowisko rozprzestrzeniania się złośliwego oprogramowania, 114

T tablica ARP, 18, 29 tablica routingu, 168 TCP, 179, 181 nagłówek, 181 nawiązywanie połączenia, 183 segmenty kończące, 184 trójetapowa wymiana komunikatów, 183 zakończenie połączenia, 184 TCP-offloading, 162 Teardrop, 115 telefony komórkowe, 112 zabezpieczenia, 114 terminal, 147 TFN, 116 TFN2K, 116 The Onion Routing, 58 three-way handshake, 183 Tiny Personal Firewall, 82 token passing, 162 topologia sieci DDoS, 116 TOR, 58 instalacja klienta, 59, 66 konfiguracja przekaźnika, 64 Linux, 66 schemat działania, 59 Windows, 59 Torbuttona, 59 TOS, 170 tracing cookie, 79 Tribe Flood Network, 116 Tribe Flood Network 2000, 116 Trinoo, 116 tripwire, 111 trojan, 78 Trojan Horse, 78 trójstronny uścisk ręki, 183 tryb monitorujący, 18 tryb promiscuous, 16, 20 TTL, 171 tunelowanie, 177 tworzenie podpisu cyfrowego, 42 tylne drzwi, 78

U UDP, 179 datagramy, 180 komunikacja, 179 pseudonagłówek, 181 UDP flooding, 116 UMTS, 146 unicast, 172 URG, 182 urządzenia, 162 urzędy certyfikacyjne, 40 urzędy rejestracyjne, 40 user-mode rootkit, 79 usługi katalogowe, 148 usługi sieciowe, 145 usuwanie rootkitów, 79 uzgadnianie, 162

V Vidalia, 59 Virtual Private Network, 31 VPN, 31, 177 protokoły, 31

W WAN, 146 WAR, 19 wardriving, 18 warstwy aplikacji, 185 fizyczna, 154 łącza danych, 154 prezentacji, 185, 186 sesji, 185 sieciowa, 163 transportowa, 179 WEP, 52, 130 Wide Area Network, 146 wielodostęp, 147 WiFi Protected Access, 52 WinAntisniffer, 22 wykrywanie ataku ARP-spoofing, 27 window, 182 Windows Signature Verification, 111 Wired Equivalent Privacy, 52 Wireless Access Revolution, 19 Wireless LAN, 18

206

13 najpopularniejszych sieciowych ataków na Twój komputer

wirtualne sieci prywatne, 31 klient, 36 protokoły, 31 serwer, 31 wirusy, 77 bootsektor dysku twardego, 77 EPO, 78 plikowe, 78 rezydentne, 78 telefony komórkowe, 113 towarzyszące, 78 WLAN, 18 workstation, 147 WPA, 52 WPA2, 52, 54 współbieżność, 147 wstrzykiwanie ramek, 130 wykrywanie podsłuchów, 20 antysniffery, 22 ARP-spoofing, 27 tryb pracy karty sieciowej, 20 wykrywanie rootkita w systemie Windows, 107 wyłączanie autoodtwarzania, 106 wymóg faktycznego zabezpieczenia informacji, 129 wyskakujące okna, 79 wzmacniak, 153

Z zabezpieczenia dane w systemie informatycznym, 123 przed podsłuchem, 28 telefony komórkowe, 114 zagrożenia, 7 zapora sieciowa, 76, 80 zapytania DNS, 191 zarządzanie firewallem, 89 zasady tworzenia kopii bezpieczeństwa, 8 złośliwe oprogramowanie, 77 backdoor, 78 exploit, 79 klasyfikacja, 77 robaki, 78 rootkit, 79 sieć botnet, 114 spyware, 79 trojan, 78 wirus, 77 zombie, 117 Zone Alarm, 82

Spis niezbędnych programów do pobrania z Internetu  SystemRescueCD  DriveImageXML  promiscdetect  WinAntiSniffer  ifpromisc  Putty  SiteAdvisor  Tor  NetSetMan  CHX-I  Hitman Pro  Snort  HijackThis  PE Builder  Tripwire  DeepBurner