IDZ DO
IDZ DO
PRZYKŁADOWY ROZDZIAŁ
PRZYKŁADOWY ROZDZIAŁ
Bezpieczeństwo w Linuksie.
SPIS TRE CI
SPIS TRE CI
Podręcznik administratora
KATALOG KSIĄŻEK
KATALOG KSIĄŻEK
Autor: Bob Toxen
Tłumaczenie: Marcin Jędrysiak (rozdz. 6-11), Marek Pętlicki
KATALOG ONLINE
KATALOG ONLINE
(rozdz. 12-14), Piotr Pilch (rozdz. 17-19), Rafał Szpoton (rozdz.
1-5,dod. F), Grzegorz Werner (rozdz. 15-16, 20, dod. A, C-D)
ISBN: 83-7361-333-1
ZAMÓW DRUKOWANY KATALOG
ZAMÓW DRUKOWANY KATALOG
Tytuł oryginału: Real World Linux Security
Format: B5, stron: 888
TWÓJ KOSZYK
TWÓJ KOSZYK
Twój Linux zostanie zaatakowany możesz być tego pewien. Może to nastąpić
DODAJ DO KOSZYKA
DODAJ DO KOSZYKA
za kilka miesięcy, ale może dzieje się to wła nie teraz. Bąd więc przygotowany.
Niniejsza książka omawia zarówno rozwiązania, jak i wyjątkowe oprogramowanie
służące do ochrony systemu Linux lub sieci komputerowej. Autor po więcił wiele
czasu, aby ostateczna wersja książki opisywała najgro niejsze ataki w internecie.
CENNIK I INFORMACJE
CENNIK I INFORMACJE
Dzięki niej uzyskasz wszystkie informacje potrzebne do skutecznej obrony.
ZAMÓW INFORMACJE
ZAMÓW INFORMACJE
W książce omówiono:
O NOWO CIACH
O NOWO CIACH
" Nowe funkcje IP tables
" Nowe techniki oraz oprogramowanie służące do wykrywania
ZAMÓW CENNIK
ZAMÓW CENNIK
oraz blokowania ataków ARP oraz ataków na przełączniki
" Usprawnienia zapór sieciowych opartych na systemie Linux
filtrujących zawarto ć pakietów
CZYTELNIA
CZYTELNIA
" Opis bezpieczeństwa usługi Samba dla klientów systemu Windows.
" Bezpieczeństwo w sieciach bezprzewodowych (standard 802.11b)
FRAGMENTY KSIĄŻEK ONLINE
FRAGMENTY KSIĄŻEK ONLINE
" Sposób wykorzystania programów Logcheck, Portsentry oraz innych,
nowych narzędzi monitorujących sieć komputerową
" Bezpieczeństwo sieci VPN oraz komunikatorów internetowych;
program GPG; funkcje jądra 2.4 i wiele innych zagadnień
" Zabezpieczenia fizyczne
Dołączona do książki płyta CD-ROM zawiera własne oprogramowanie autora, służące
do natychmiastowego zablokowania poczynań hakerów oraz powiadomienia
administratorów systemu. Płyta zawiera również niepublikowane wcze niej skrypty IP
Tables oraz IP Chains oraz nowe narzędzia służące do monitorowania stanu sieci
komputerowej, wykrywania podejrzanych działań oraz raportowania o nich,
zabezpieczania kopii i uproszczenia odtwarzania systemu.
Wydawnictwo Helion
O autorze:
ul. Chopina 6
Bob Toxen ma ponad 28 lat do wiadczenia w zakresie systemów UNIX (Linux).
44-100 Gliwice
Jest jednym ze 162 twórców systemu Berkeley UNIX. O zabezpieczeniach dowiedział się
tel. (32)230-98-63
na uniwersytecie w Berkeley, gdzie złamał kilka oryginalnych systemów UNIX. Obecnie
e-mail: helion@helion.pl
jest prezesem firmy Fly-By-Day Consulting specjalizującej się w zabezpieczeniach
systemu Linux oraz sieci komputerowych, sieci VPN, monitorowaniu w trybie 24/7
oraz wykonywaniu czynno ci administracyjnych dla wielu klientów na całym wiecie.
W roku 2002 jego zalecenia zostały dołączone do raportu na temat udoskonalania
wywiadu Stanów Zjednoczonych przedstawionego prezydentowi Bushowi.
Spis treści
O Autorze ........................................................................................19
Przedmowa......................................................................................21
Rozdział 1. Wprowadzenie .................................................................................23
1.1. Kto powinien przeczytać tą książką?.......................................................................23
1.2. Sposób organizacji książki ......................................................................................24
1.2.1. Konwencje zastosowane w książce ...............................................................27
1.2.2. Podstawy........................................................................................................28
1.3. Przed czym sią bronimy?.........................................................................................30
1.4. Kim są wrogowie? ...................................................................................................31
1.5. Cele działania...........................................................................................................34
1.6. Koszty: Ochrona kontra włamania ..........................................................................35
1.7. Zabezpieczanie sprzątu............................................................................................35
1.8. Zabezpieczanie sieci oraz dostąpu modemowego ...................................................35
1.9. Zabezpieczanie dostąpu do systemu........................................................................36
1.10. Zabezpieczanie plików ............................................................................................37
1.11. Przygotowanie do wykrywania włamania...............................................................37
1.12. Przywracanie działania systemu po włamaniu ........................................................38
Część I Zabezpieczanie systemu.................................................39
Rozdział 2. Szybkie rozwiązania najczęstszych problemów ..................................43
2.1. Podstawy zabezpieczeń systemu Linux...................................................................44
2.1.1. Labirynt krątych korytarzy ............................................................................44
2.1.2 Drogi przeprowadzania ataku .........................................................................49
2.1.3. Pierścienie zabezpieczeń................................................................................52
2.2. Siedem grzechów głównych ....................................................................................54
2.2.1. Słabe oraz domyślne hasła (grzech 1)............................................................54
2.2.2. Otwarte porty sieciowe (grzech 2).................................................................56
2.2.3. Stare wersje oprogramowania (grzech 3) ......................................................59
2.2.4. Niebezpieczne oraz zle skonfigurowane programy (grzech 4)......................60
2.2.5. Niewystarczające zasoby oraz niewłaściwie zdefiniowane
priorytety (grzech 5) ...................................................................................67
2.2.6. Przedawnione oraz niepotrzebne konta (grzech 6) ........................................70
2.2.7. Zwłoka w działaniu (grzech 7) ......................................................................71
2.3. Hasła kluczowa kwestia dobrego zabezpieczenia ..............................................71
2.3.1. Zapobieganie słabym i domyślnym hasłom...................................................72
8 Bezpieczeństwo w Linuksie. Podręcznik administratora
2.4. Zaawansowane techniki dotyczące haseł.................................................................77
2.4.1. Ukrywanie haseł przy użyciu pliku shadow w celu zapewnienia
odpowiednich zabezpieczeń .......................................................................78
2.4.2. Prośba o ponowne wprowadzenie hasła ........................................................79
2.4.3. Czy hasła powinny mieć określony okres ważności?....................................81
2.4.4. Nazwy kont....................................................................................................82
2.5. Zabezpieczanie systemu przed pomyłkami użytkowników ....................................83
2.5.1. Zagrożenia spowodowane przez oprogramowanie importowane..................87
2.5.2. Edukacja użytkowników................................................................................88
2.6. Przebaczenie jest lepsze niż zezwolenie..................................................................89
2.6.1. Katalogi oraz sticky bit..................................................................................91
2.6.2. Wyszukiwanie problemów z prawami dostąpu .............................................92
2.6.3. Wykorzystanie umask w skryptach startowych.............................................97
2.7. Zagrożenia oraz środki zaradcze podczas początkowej konfiguracji systemu........98
2.7.1. Sprawdzanie zabezpieczeń systemu Red Hat 7.3 ........................................100
2.8. Ograniczanie nierozsądnego dostąpu ....................................................................104
2.8.1. Ograniczenie terminali, z których mogą pochodzić
nadchodzące połączenia ...........................................................................104
2.8.2. Dzwonienie z zewnątrz (wardialing) ...........................................................106
2.8.3. Zabezpieczanie niekontrolowanego dostąpu do danych..............................107
2.8.4. Ograniczanie interfejsów serwera................................................................108
2.9. Zapory sieciowe oraz zabezpieczenia korporacyjne..............................................108
2.9.1. Zabezpieczanie obejść zapór sieciowych ....................................................109
2.9.2. Tunelowanie poprzez zapory sieciowe ........................................................113
2.9.3. Opcje jądra dotyczące protokołów ..............................................................116
2.9.4. Filtrowanie pakietów wychodzących...........................................................117
2.9.5. Pułapki w lokalnej sieci komputerowej.......................................................118
2.9.6. Wewnątrzfirmowe zapory sieciowe powstrzymujące atak..........................121
2.10. Wyłączanie niepotrzebnych usług .........................................................................125
2.11. Silne zabezpieczenia wymagają minimalnej ilości usług......................................132
2.12. Zamurowywanie luk w systemie ...........................................................................133
2.12.1. Nie używaj programu finger......................................................................133
2.12.2. Wyłączanie usługi rwhod...........................................................................135
2.12.3. Wyłączanie usługi rwalld...........................................................................136
2.12.4. Wyłączanie usługi SNMP..........................................................................136
2.15.5. Wyłączanie usług NFS, mountd oraz portmap ..........................................138
2.12.6. Przełączanie usługi NFS na używanie protokołu TCP ..............................139
2.12.7. Wyłączanie usług rsh, rcp, rlogin oraz rexec.............................................140
2.12.8. Wyłączanie usług echo oraz chargen.........................................................141
2.12.9. Wyłączanie usług talk oraz ntalk ...............................................................142
2.12.10. Wyłączanie usługi TFTP ...........................................................................142
2.12.11. Wyłączanie usług systat oraz netstat .........................................................142
2.12.12. Wyłączanie wewnątrznych usług xinetd ...................................................143
2.13. Nowe lampy zamiast starych.................................................................................143
2.13.1. Uaktualnianie jądra w wersji 2.4 ...............................................................147
2.13.2. Uaktualnianie jądra w wersji 2.2 ...............................................................148
2.13.3. Uaktualnianie programu sendmail .............................................................148
2.13.4. Wzmacnianie programu sendmail w celu odparcia ataków DoS ..............151
2.13.5. Uaktualnianie programu SSH ....................................................................154
2.13.6. Uaktualnianie usługi WU-FTPD ...............................................................154
2.13.7. Uaktualnianie programu Netscape.............................................................155
2.13.8. Blokowanie reklam internetowych ............................................................156
2.14. Zjednoczeni zginiemy, podzieleni przetrwamy.....................................................157
Spis treści 9
Rozdział 3. Szybkie oraz proste sposoby włamania. Sposoby ich unikania..........159
3.1. X oznacza luką w zabezpieczeniach......................................................................160
3.2. Prawo dżungli zabezpieczenia fizyczne ...........................................................164
3.3. Działania fizyczne .................................................................................................169
3.3.1. Uruchamianie systemu przy użyciu dyskietki lub płyty CD włamywacza... 170
3.3.2. Ponowna konfiguracja pamiąci CMOS .......................................................171
3.3.3. Dodawanie hasła CMOS..............................................................................172
3.3.4. Obrona przed trybem pojedynczego użytkownika ......................................173
3.3.5. Obrona przed kradzieżą przy użyciu dyskietki............................................175
3.3.6. Zapobieganie atakom przy użyciu kombinacji Ctrl-Alt-Del .......................175
3.4. Wybrane krótkie zagadnienia ................................................................................176
3.4.1. Modemy kablowe ........................................................................................176
3.4.2. $PATH: Katalog . grozi nieszcząściem .......................................................177
3.4.3. Blokowanie routingu zródłowego w IP .......................................................178
3.4.4. Blokowanie fałszowania adresów IP ...........................................................180
3.4.5. Automatyczne blokowanie ekranu...............................................................181
3.4.6. /etc/mailcap..................................................................................................182
3.4.7. Program chattr oraz bit niezmienności ........................................................183
3.4.8. Bezpieczne usuwanie danych ......................................................................184
3.4.9. Synchroniczne operacje wejścia-wyjścia.....................................................185
3.4.10. Znaczniki montowania służące do zwiąkszenia zabezpieczeń....................186
3.4.11. Ukrywanie UDP w TCP oraz SSH ..............................................................187
3.4.12. Problem z programem man..........................................................................188
3.4.13. Ustawianie ograniczeń przy użyciu poleceń *limit .....................................190
3.4.14. Dostąpna publicznie historia poleceń powłoki............................................191
3.4.15. Podstawy protokołu rozwiązywania adresów (ARP) ..................................192
3.4.16. Zapobieganie modyfikacjom pamiąci podrącznej ARP ..............................193
3.4.17. Atakowanie przełączników..........................................................................195
3.4.18. Odpieranie ataków ARP na systemy oraz przełączniki...............................198
3.4.19. Technologia WEP........................................................................................200
3.4.20. Przechwytywanie danych z diod LED.........................................................203
3.4.21. Powrót do powłoki.......................................................................................204
3.4.22. Zabezpieczenia dostawcy ISP......................................................................205
3.4.23. Podsłuchiwanie terminali (ttysnoop) ...........................................................208
3.4.24. Program Star Office.....................................................................................208
3.4.25. Programy VMware, Wine, DOSemu oraz podobne ....................................209
3.5. Ataki za pomocą urządzeń terminalowych............................................................209
3.5.1. Przechwytywanie klawisza funkcyjnego .....................................................210
3.5.2. Podatność na przeprogramowanie klawiszy złożonych...............................211
3.5.3. Zmiana pliku z logiem w programie xterm .................................................211
3.6. Podglądanie zawartości dysku...............................................................................212
3.6.1. Prawdziwe usuwanie plików .......................................................................213
3.6.2. Usuwania starych poufnych danych umieszczonych w wolnych blokach ..216
3.6.3. Usuwanie całej zawartości dysku ................................................................219
3.6.4. Zniszczenie twardego dysku........................................................................220
Rozdział 4. Powszechne włamania przy wykorzystaniu podsystemów.................221
4.1. Usługi NFS, mountd oraz portmap........................................................................222
4.2. Program Sendmail .................................................................................................224
4.2.1. Wykorzystywanie oddzielnych lub wielu serwerów pocztowych
w celu dodatkowego zabezpieczenia........................................................226
4.2.2. Podstawowe zabezpieczenia programu Sendmail .......................................227
4.2.3. Opcje bezpieczeństwa programu Sendmail .................................................230
4.2.4. Fałszowanie adresu nadawcy wiadomości pocztowych ..............................234
10 Bezpieczeństwo w Linuksie. Podręcznik administratora
4.2.5. Skąd pochodzą te wszystkie niechciane wiadomości? ................................234
4.2.6. Wyłączanie przesyłania niechcianych wiadomości.....................................237
4.2.7. Blokowanie niechcianych wiadomości........................................................237
4.2.8. Oszukiwanie robotów poszukujących adresów ...........................................238
4.2.9. Umożliwianie ograniczonego zaufania........................................................238
4.2.10. Zezwalanie klientom POP oraz IMAP na wysyłanie poczty.......................240
4.2.11. Uniemożliwianie użycia otwartych list dystrybucyjnych............................241
4.2.12. Atak DoS na program Sendmail, polegający na zapełnieniu dysku............241
4.3. Program Telnet ......................................................................................................242
4.4. Usługa FTP ............................................................................................................243
4.4.1. Konfiguracja anonimowej usługi FTP.........................................................246
4.4.2. Zagrożenia spowodowane przez serwery pośredniczące FTP.....................252
4.5. Usługi rsh, rcp, rexec oraz rlogin...........................................................................253
4.5.1. Bezpieczeństwo programów R* ..................................................................254
4.5.2. Niebezpieczeństwo programów R* .............................................................255
4.6. Usługa DNS (named).............................................................................................256
4.6.1. Ograniczanie konsekwencji nadużycia usługi named .................................257
4.6.2. Służyć człowiekowi .....................................................................................258
4.7. Serwery POP oraz IMAP.......................................................................................260
4.7.1. Hasła w wierszu poleceń..............................................................................262
4.8. Konfiguracja Samby ..............................................................................................264
4.8.1. Czym jest Samba?........................................................................................265
4.8.2. Wersje ..........................................................................................................265
4.8.3. Czy Samba jest zainstalowana? ...................................................................265
4.8.4. Jaką wersją Samby posiadam?.....................................................................266
4.8.5. Plik smb.conf ...............................................................................................266
4.8.6. Plik smbpasswd............................................................................................268
4.8.7. Plik odwzorowań użytkowników.................................................................269
4.8.8. Pliki z logami...............................................................................................270
4.8.9. Dynamiczne pliki danych ............................................................................271
4.8.10. Bezpieczna konfiguracja Samby..................................................................271
4.8.11. Bezpieczeństwo sieciowe usługi Samba......................................................272
4.8.12. Bezpieczeństwo plików Samby ...................................................................275
4.8.13. Bezpieczeństwo użytkownika......................................................................280
4.8.14. Bezpieczeństwo zarządzania Sambą............................................................284
4.8.15. Wykorzystywanie SSL z Sambą..................................................................286
4.9. Blokowanie odwołań do programu Squid .............................................................286
4.10. Usługa syslogd.......................................................................................................290
4.11. Usługa print (lpd)...................................................................................................291
4.12. Usługa ident...........................................................................................................292
4.13. Usługi INND oraz News........................................................................................293
4.14. Bezpieczeństwo twoich danych w firmie rejstrującej domeny .............................294
Rozdział 5. Ataki powszechnie stosowane przez włamywaczy ...........................297
5.1. Ataki przypuszczane przy użyciu predefiniowanych narządzi..............................298
5.2. Fałszowanie pakietów............................................................................................299
5.2.1. Dlaczego udaje sią fałszowanie pakietów UDP ..........................................302
5.2.2. Fałszowanie sekwencji TCP ........................................................................304
5.2.3. Przechwytywanie sesji TCP.........................................................................305
5.3. Ataki typu SYN Flood ...........................................................................................306
5.4. Obrona przed atakami typu SYN Flood ................................................................307
5.5. Zapobieganie fałszowaniu sekwencji TCP............................................................307
5.6. Sztormy pakietów, ataki smurfów oraz fraglesi ....................................................308
5.6.1. Zapobieganie wykorzystaniu systemu w charakterze wzmacniacza ...........310
5.6.2. Obrona przed atakiem używającym sztormu pakietów ...............................312
Spis treści 11
5.6.3. Routery Cisco ..............................................................................................313
5.6.4. Ataki DDoS: zasoby sieciowe z narządziami do przeciwdziałania.............314
5.7. Przepełnianie buforów oraz niszczenie zawartości pamiąci..................................314
5.8. Techniki fałszowania .............................................................................................315
5.8.1. Fałszowanie wiadomości pocztowych.........................................................316
5.8.2. Atak realizowany przy użyciu adresu MAC................................................317
5.8.3. Zmiana pamiąci podrącznej ARP ................................................................318
5.8.4. Zmiana pamiąci podrącznej DNS................................................................319
5.9. Atak typu Man-in-the-Middle................................................................................319
Rozdział 6. Zaawansowane problemy bezpieczeństwa.......................................323
6.1. Konfigurowanie zabezpieczeń w przeglądarce Netscape......................................324
6.1.1. Ważne preferencje przeglądarki Netscape...................................................324
6.1.2. Przeglądanie własnych cookies ...................................................................328
6.1.3. Preferencje użytkowników w przeglądarce Netscape .................................328
6.1.4. Narządzie Netscape Personal Security Manager .........................................329
6.1.5. Bezpieczeństwo skryptów Java w przeglądarce Netscape ..........................329
6.2. Blokowanie dostąpu do urządzeń wejścia-wyjścia................................................331
6.2.1. Dlaczego urządzenie /dev/tty ma tryb 666?.................................................337
6.2.2. Bezpieczeństwo bufora konsoli wirtualnej..................................................337
6.2.3. Szyfrujący sterownik dysku.........................................................................337
6.3. Usuwanie problemów z serwerem Apache (httpd)................................................338
6.3.1. Prawa własności i uprawnienia serwera Apache .........................................339
6.3.2. Server Side Includes (SSI)...........................................................................340
6.3.3. Dyrektywa ScriptAlias.................................................................................341
6.3.4. Zapobieganie zmianom ustawień ogólnosystemowych...............................341
6.3.5. Kontrolowanie katalogów dostąpnych dla Apache .....................................342
6.3.6. Kontrolowanie rozszerzeń plików dostąpnych dla Apache.........................342
6.3.7. Inne ustawienia ............................................................................................343
6.3.8. Opróżnianie bazy danych.............................................................................344
6.3.9. Blokowanie niepożądanych osób.................................................................347
6.3.10. Odsyłacze do witryny ..................................................................................347
6.4. Specjalne techniki dla serwerów WWW ...............................................................348
6.4.1. Zbuduj niezależne twierdze .........................................................................349
6.4.2. Nie ufaj skryptom CGI ................................................................................349
6.4.3. Ukryte zmienne formularzy i zatrute cookies..............................................350
6.4.4. Proszą, wez sobie naszych pracowników ....................................................350
6.4.5. Blokowanie robota przeszukującego strony internetowe ............................351
6.4.6. Niebezpieczne programy CGI .....................................................................352
6.4.7. Dziura w programie CGI query ...................................................................353
6.4.8. Odszyfrowanie zakodowanych adresów URL.............................................354
6.4.9. Dziura w programie CGI counterfiglet........................................................356
6.4.10. Dziura w programie CGI phf.......................................................................356
6.4.11. Skrypty i programy CGI ..............................................................................356
6.4.12. Wymuszenie blokowania adresów URL .....................................................363
6.4.13. Wykrywanie zmodyfikowanych stron internetowych .................................365
6.5. Jednokierunkowa ścieżka danych karty kredytowej..............................................366
6.6. Zapewnianie najwyższego poziomu bezpieczeństwa............................................370
6.7. Ograniczanie miejsca i czasu logowania ...............................................................379
6.8. Nietypowe, ale niebezpieczne problemy ...............................................................381
6.8.1. Zabezpieczanie przed atakami przepełnienia bufora ...................................381
6.8.2. Usuwanie zagrożenia chroot() .....................................................................383
6.8.3. Atak Symlink ...............................................................................................385
6.8.4. Problem z katalogami lost+found................................................................388
6.8.5. Wyścig rm r ...............................................................................................389
12 Bezpieczeństwo w Linuksie. Podręcznik administratora
6.9. Usuwanie symulatorów logowania........................................................................390
6.9.1. Aktualizacja pliku /etc/issue ........................................................................392
6.9.2. Dostosowanie programu /bin/login..............................................................394
6.9.3. Obsługa Secure Attention Key w jądrze......................................................394
6.10. Ochrona przed przepełnieniem bufora za pomocą Libsafe ...................................397
Rozdział 7. Ustanawianie zasad zabezpieczeń...................................................399
7.1. Ogólne zasady........................................................................................................400
7.2. Zasady użytkowania komputerów .........................................................................401
7.3. Zasady dotyczące kont użytkowników..................................................................403
7.4. Zasady dotyczące poczty elektronicznej ...............................................................404
7.5. Zasady dotyczące komunikacji za pomocą wiadomości błyskawicznych
(Instant Messaging) .............................................................................................406
7.6. Zasady dotyczące serwera WWW .........................................................................407
7.7. Zasady dotyczące serwera plików i baz danych ....................................................408
7.8. Zasady dotyczące zapory sieciowej.......................................................................409
7.9. Zasady dotyczące komputerów biurkowych .........................................................409
7.10. Zasady dotyczące komputerów przenośnych ........................................................410
7.11. Zasady usuwania komputerów i nośników............................................................414
7.12. Zasady dotyczące topologii sieci...........................................................................414
7.12.1. Zasady dotyczące topologii sieci wewnątrznej............................................415
7.13. Zasady zgłaszania problemów...............................................................................418
7.14. Zasady własności...................................................................................................418
7.15. Zasady dotyczące zasad.........................................................................................419
Rozdział 8. Zaufanie do innych komputerów..................................................421
8.1. Bezpieczne i niebezpieczne systemy .....................................................................422
8.2. Nie ufaj nikomu najwyższy poziom bezpieczeństwa .......................................423
8.3. Systemy Linux i UNIX pod kontrolą.....................................................................424
8.4. Systemy mainframe pod kontrolą..........................................................................426
8.5. Jedno okno jest warte tysiąca dziur .......................................................................426
8.6. Słabe punkty w zaporze sieciowej.........................................................................428
8.7. Wirtualne sieci prywatne .......................................................................................432
8.8. Linux i wirusy........................................................................................................433
Rozdział 9. Nietypowe metody włamania..........................................................435
9.1. Techniki rodem z filmu Mission Impossible .........................................................435
9.2. Szpiedzy.................................................................................................................438
9.2.1. Szpiegostwo przemysłowe...........................................................................439
9.3. Fanatycy i ataki samobójcze..................................................................................439
Rozdział 10. Analiza przypadków........................................................................441
10.1. Wyznania kreta w systemie Berkeley..................................................................442
10.2. Błądni rycerze......................................................................................................445
10.3. Ken Thompson włamuje sią do marynarki..........................................................447
10.4. Koń trojański w maszynie wirtualnej ..................................................................448
10.5. Wpadka ze zmianą wpisów DNS firmy AOL .....................................................449
10.6. Ja naprawdą jestem niewinny, przysiągam! ........................................................451
10.7. Włamania realizowane z wykorzystaniem laptopa i budki telefonicznej............452
10.8. Kilka centów z każdego dolara............................................................................453
10.9. Organizacja non-profit ma pecha.........................................................................454
10.10. Upór czasami sią opłaca ......................................................................................455
10.11. Pakiet .Net z wirusem Nimda ..............................................................................456
Spis treści 13
Rozdział 11. Ostatnio zaobserwowane metody włamań.......................................459
11.1. Ataki fragmentacji ...............................................................................................460
11.2. Niepowodzenie maskarady IP dla ICMP.............................................................461
11.3. Atak Ping of Death zatapia holenderskiego spedytora ........................................462
11.4. Kapitanie, ktoś nas skanuje! (ukryte skanowanie) ..............................................463
11.5. Modemy kablowe marzenie krakera...............................................................464
11.6. Użycie programu sendmail do blokowania ataków e-mailowych.......................464
11.7. Odgadywanie adresów kont za pomocą programu sendmail ..............................465
11.8. Tajemnicza blokada bazy danych Ingres.............................................................466
11.9. Śledzenie użytkowników .....................................................................................466
11.9.1. Numer seryjny Pentium III ..........................................................................467
11.9.2. Szpiegowanie poprzez identyfikator GUID.................................................467
11.10. Koordynowane ataki DDoS.................................................................................468
11.11. Ukryte konie trojańskie .......................................................................................472
11.11.1. Do czego potrzebne są pakiety zwrotne echa ICMP? .................................473
11.11.2. Przyszłe kierunki rozwoju koni trojańskich ................................................474
11.11.3. Tryb promiscuous w komunikatach jądra ...................................................475
11.12. Narządzie Linuxconf i port TCP 98 ....................................................................476
11.13. Złośliwe znaczniki i skrypty HTML ...................................................................476
11.14. Problemy z formatowaniem i procedura syslog()................................................477
Część II Przygotowanie do ataku ...............................................479
Rozdział 12. Zwiększanie bezpieczeństwa systemu ............................................481
12.1. Zabezpieczanie sesji użytkownika za pomocą SSH ............................................481
12.1.1. Kompilacja SSH2 ......................................................................................484
12.1.2. Konfiguracja SSH......................................................................................486
12.1.3. Wykorzystanie SSH...................................................................................489
12.1.4. Przekazywanie poleceń sesji X za pomocą SSH .......................................491
12.1.5. Wykorzystanie sftp ....................................................................................491
12.1.6. Wykorzystanie scp.....................................................................................492
12.1.7. Obsługa innych serwisów TCP za pomocą SSH .......................................493
12.1.8. Zagrożenia, przed którymi SSH nie uchroni .............................................495
12.2. Virtual Private Networks (VPN) .........................................................................496
12.2.1. Zagrożenia w sieciach VPN.......................................................................496
12.2.2. VPN z użyciem SSH, PPP oraz Perla........................................................500
12.2.3. CIPE (Crypto IP Encapsulation)................................................................502
12.2.4. VPN z wykorzystaniem FreeS/WAN IPSec..............................................502
12.2.5. PPTP (Point-to-Point Tunneling Protocol)................................................503
12.2.6. Zebedee......................................................................................................503
12.2.7. Pomiary wydajności sieci VPN .................................................................503
12.3. Pretty Good Privacy (PGP)..................................................................................504
12.4. Wykorzystanie GPG do łatwego szyfrowania plików.........................................505
12.4.1. Pobieranie GPG .........................................................................................507
12.4.2. Kompilacja.................................................................................................507
12.4.3. Wykorzystanie GPG ..................................................................................508
12.4.4. Generowanie i zarządzanie własnym kluczem ..........................................510
12.4.5. Wymiana kluczy ........................................................................................512
12.4.6. Rozpowszechnianie własnego klucza publicznego ...................................515
12.4.7. Pliki podpisów ...........................................................................................516
12.4.8. Szyfrowanie i podpisywanie listów e-mail................................................518
12.4.9. Szyfrowanie kopii zapasowych oraz inne wykorzystania gpg ..................519
12.4.10. Bezpieczeństwo GPG na bardzo wysokim poziomie ................................520
14Bezpieczeństwo w Linuksie. Podręcznik administratora
12.5. Zapory sieciowe oraz DMZ z wykorzystaniem IP Tables...................................522
12.5.1. Teoria w praktyce: zabezpieczanie niewielkiej sieci.................................522
12.5.2. Zalety IP Tables w stosunku do IP Chains ................................................538
12.5.3. Wady IP Tables w stosunku do IP Chains.................................................539
12.5.4. Śledzenie połączeń w IP Tables fakty i mity........................................543
12.5.5. Zwalczanie przejąć połączeń oraz ataków ICMP ......................................545
12.5.6. Konfiguracja zapory sieciowej w dystrybucji Red Hat .............................547
12.5.7. Konfiguracja zapory sieciowej w dystrybucji SuSE Linux .......................549
12.5.8. Sztuczki i techniki związane z zaporami sieciowymi................................551
12.5.9. Tworzenie zapory sieciowej oraz DMZ za pomocą IP Tables ..................570
12.5.10. Czego nie można zrealizować za pomocą IP Tables .................................571
12.5.11. Maskarada IP (NAT) szczegóły............................................................573
12.5.12. Funkcje IP Tables ......................................................................................578
12.5.13. Uruchamianie skryptu konfigurującego zaporą.........................................580
12.5.14. Budowanie DMZ .......................................................................................583
12.5.15. Sekrety routowania ....................................................................................588
12.5.16. Mniej popularne funkcje IP Tables............................................................590
12.5.17. Zapory sieciowe z kontrolą stanu ..............................................................591
12.5.18. Zagrożenia SSH.........................................................................................592
12.5.19. Dostąp do poczty za pomocą połączeń szyfrowanych ..............................594
12.6. Zapora sieciowa oraz DMZ za pomocą IP Chains ..............................................595
12.6.1. Czego nie można zrealizować za pomocą IP Chains.................................597
12.6.2. Maskarada IP (NAT) w wersji IP Chains ..................................................599
12.6.3. Polecenia IP Chains ...................................................................................604
12.6.4. Uruchamianie skryptu konfigurującego zaporą.........................................606
12.6.5. Podstawowe wykorzystanie zapory sieciowej
zbudowanej za pomocą IP Chains ..........................................................610
12.6.6. Blokowanie zagrożeń z zewnątrz ..............................................................611
12.6.7. Maskarada IP .............................................................................................619
12.6.8. Konfiguracja DMZ ....................................................................................621
12.6.9. Zapory sieciowe z kontrolą stanu ..............................................................623
12.6.10. Zagrożenia SSH.........................................................................................625
12.6.11. Dostąp do poczty za pomocą połączeń szyfrowanych ..............................627
Rozdział 13. Przygotowanie sprzętu ...................................................................629
13.1. Wyczucie czasu ...................................................................................................629
13.2. Zaawansowane przygotowania............................................................................632
13.3. Przełączanie na system zapasowy .......................................................................634
13.3.1. Wybór systemów wymagających przygotowania systemu zapasowego...634
13.3.2. Dwa typy systemów zapasowych ..............................................................635
13.3.3. Projektowanie zapasowego systemu bezpieczeństwa................................635
13.3.4. Utrzymanie systemu zapasowego w pogotowiu........................................637
13.3.5. Sprawdzanie pamiąci podrącznej...............................................................639
13.3.6. Dysk zapasowy ..........................................................................................640
Rozdział 14. Przygotowanie konfiguracji.............................................................641
14.1. TCP Wrappers .....................................................................................................641
14.1.1. Wykorzystanie TCP Wrappers ..................................................................643
14.1.2. Zaawansowane wykorzystanie TCP Wrappers..........................................644
14.2. Adaptacyjne zapory sieciowe: zakładanie pułapek na włamywaczy
za pomocą Cracker Trap ..................................................................................646
14.2.1. Konfiguracja ..............................................................................................654
14.2.2. Plik /etc/services ........................................................................................655
14.2.3. Pliki /etc/xinetd.d/*....................................................................................657
Spis treści 15
14.2.4. Plik /etc/inetd.conf.....................................................................................658
14.2.5. Plik /etc/hosts.allow...................................................................................660
14.2.6. Plik /etc/hosts.deny ....................................................................................661
14.2.7. Przechwytywanie ataków za pomocą przekierowania portów ..................662
14.2.8. Wykorzystanie PortSentry w połączeniu z Cracker Trap..........................666
14.3. Blokowanie serwisów włamywaczy za pomocą modyfikacji jądra Linuksa ......666
14.4. Ćwiczenia pożarowe............................................................................................668
14.4.1. Lądowanie awaryjne..................................................................................669
14.4.2. To tylko test ...............................................................................................670
14.4.3. Zagrożenia i środki ostrożności .................................................................670
14.4.4. Planowanie materii do ćwiczeń .................................................................671
14.4.5. Systemy testowe ........................................................................................671
14.4.6. Bezpieczne konie trojańskie ......................................................................672
14.4.7. Rozmiar ma znaczenie ...............................................................................673
14.4.8. Sprawiamy wiącej kłopotu.........................................................................674
14.5. Włamania do własnego systemu przy pomocy brygad tygrysa...........................675
14.5.1. Testy penetracyjne .....................................................................................677
Rozdział 15. Skanowanie własnego systemu ......................................................679
15.1. Skaner zabezpieczeń Nessus................................................................................680
15.2. Testery zabezpieczeń SARA i SAINT ................................................................680
15.3. Maper sieci nmap.................................................................................................681
15.4. Wykrywacz ataków Snort....................................................................................686
15.5. Skanowanie i analizowanie za pomocą programu SHADOW ............................687
15.6. John the Ripper ....................................................................................................687
15.7. Zapisywanie sum kontrolnych bazy danych RPM ..............................................688
15.7.1. Niestandardowe dyskietki ratunkowe........................................................689
Część III Wykrywanie włamania ..................................................691
Rozdział 16. Monitorowanie aktywności.............................................................693
16.1. Pliki z logami.......................................................................................................694
16.2. Pliki z logami: sposoby i kontrsposoby ...............................................................695
16.3. Używanie programu Logcheck do sprawdzania logów,
których nigdy nie sprawdzasz ..........................................................................696
16.4. Używanie programu PortSentry do blokowania hakerów ...................................702
16.5. HostSentry ...........................................................................................................708
16.6. Przywoływanie administratora systemu: włamanie w toku! ...............................708
16.7. Przykład automatycznego przywoływania ..........................................................709
16.8. Rozbudowywanie przykładu automatycznego przywoływania...........................711
16.9. Informowanie o użyciu poleceń telnet i rsh.........................................................713
16.10. Wykrywanie ataków ARP i MAC za pomocą programu Arpwatch ...................715
16.11. Monitorowanie użycia portów.............................................................................719
16.12. Monitorowanie ataków za pomocą programu Ethereal.......................................720
16.12.1. Budowanie programu Ethereal ..................................................................720
16.12.2. Używanie programu Ethereal ....................................................................721
16.13. Monitorowanie sieci lokalnej za pomocą programu tcpdump.............................722
16.13.1. Budowanie programu tcpdump..................................................................722
16.13.2. Używanie programu tcpdump....................................................................723
16.14. Monitorowanie skanerów za pomocą programu Deception Tool Kit (DTK)......726
16.15. Monitorowanie procesów ....................................................................................729
16.15.1. Monitorowanie obciążenia.........................................................................731
16.16. Cron: śledzenie krakerów ....................................................................................732
16.17. Identyfikacja dzwoniącego ..................................................................................732
16 Bezpieczeństwo w Linuksie. Podręcznik administratora
Rozdział 17. Wyszukiwanie w systemie anomalii ................................................733
17.1. Wyszukiwanie podejrzanych plików...................................................................733
17.1.1. Analiza podejrzanych plików ....................................................................736
17.1.2. Rutynowe porównywanie zawartości plików............................................736
17.2. Narządzie Tripwire ..............................................................................................738
17.2.1. Instalowanie programu Tripwire ...............................................................739
17.2.2. Użycie programu Tripwire.........................................................................740
17.2.3. Przed czym program Tripwire nie chroni? ................................................742
17.2.4. Programy stanowiące alternatywą dla narządzia Tripwire ........................743
17.3. Wykrywanie usuniątych plików wykonywalnych...............................................743
17.4. Wykrywanie kart sieciowych działających w trybie promiscuous......................745
17.4.1. L0pht AntiSniff..........................................................................................748
17.5. Wyszukiwanie procesów działających w trybie promiscuous.............................749
17.6. Automatyczne wykrywanie włamań na strony internetowe................................750
Część IV Przywracanie systemu po włamaniu ..............................755
Rozdział 18. Przywracanie kontroli nad systemem..............................................759
18.1. Wyszukiwanie aktywnych procesów uruchomionych przez włamywacza .........760
18.1.1. Obsługa usuniątych plików wykonywalnych ............................................761
18.2. Obsługa aktywnych procesów uruchomionych przez włamywacza ...................762
18.2.1. Popularne konie trojańskie.........................................................................768
18.3. Odciącie modemów, sieci, drukarek i systemów.................................................770
Rozdział 19. Wykrywanie i usuwanie uszkodzeń .................................................773
19.1. Sprawdzenie logów systemowych znajdujących sią w katalogu /var/log ...........774
19.2. Demony syslogd i klogd ......................................................................................774
19.3. Zdalne logowanie.................................................................................................775
19.4. Interpretowanie wpisów zawartych w logach systemowych...............................775
19.4.1. Program lastlog..........................................................................................776
19.4.2. Plik messages.............................................................................................777
19.4.3. Plik syslog..................................................................................................780
19.4.4. Plik kernlog................................................................................................780
19.4.5. Plik cron.....................................................................................................781
19.4.6. Plik xferlog ................................................................................................781
19.4.7. Plik daemon ...............................................................................................782
19.4.8. Plik mail.....................................................................................................782
19.5. Kontrola innych logów ........................................................................................784
19.6. Sprawdzanie odpowiedzi narządzia TCP Wrappers............................................784
19.7. Sposoby uszkadzania systemu plików.................................................................785
19.8. Umieszczanie sfałszowanych danych..................................................................786
19.9. Modyfikowanie programów monitorujących ......................................................786
19.10. W domu pełnym luster ........................................................................................787
19.11. Przywracanie kontroli..........................................................................................787
19.12. Wyszukiwanie plików zmienionych przez włamywaczy....................................788
19.12.1. Interpretacja wyniku działania polecenia tar -d.........................................791
19.12.2. Przyspieszenie operacji sprawdzania plików przy użyciu programu rpm .. 792
19.12.3. Naprawa pakietów RPM............................................................................793
19.12.4. Przywracanie baz danych ..........................................................................794
19.12.5. Uszkodzenie urządzeń peryferyjnych........................................................795
19.12.6. Kradzież za pośrednictwem diabelskich elektronów .............................795
19.12.7. Metody uszkadzania jądra .........................................................................796
Spis treści 17
19.13. Metody identyfikacji włamywacza......................................................................796
19.13.1. Dowód modyfikacji danych.......................................................................797
19.14. Wyszukiwanie programów z ustawionym bitem set-UID...................................798
19.15. Identyfikacja konia trojańskiego mstream...........................................................799
Rozdział 20. Namierzanie komputera włamywacza..............................................801
20.1. Tłumaczenie liczbowego adresu IP za pomocą programu nslookup...................802
20.2. Tłumaczenie liczbowego adresu IP za pomocą programu dig ............................802
20.3. Wyszukiwanie właścicieli domen .com...............................................................803
20.4. Wyszukiwanie organizacji na podstawie adresu IP.............................................804
20.5. Sprawdzanie systemów .gov................................................................................804
20.6. Korzystanie z programu ping...............................................................................806
20.7. Korzystanie z programu traceroute......................................................................807
20.8. Wyniki z sąsiednich systemów............................................................................808
20.9. Przykład miądzynarodowego tropienia crakera...................................................808
20.10. Czy na pewno znalazłeś napastnika?...................................................................809
20.11. Inni administratorzy: czy im zależy?...................................................................811
20.11.1. Przygotowanie dowodów na użytek administratora systemu....................812
Dodatki .......................................................................................813
Dodatek A Zasoby internetowe związane z najnowszymi sposobami
włamań i ochrony...........................................................................815
A.1. Listy wysyłkowe obowiązkowe......................................................................816
A.1.1. Centrum koordynacyjne CERT rządu Stanów Zjednoczonych .................817
A.1.2. Komitet doradczy CIAC rządu Stanów Zjednoczonych ............................817
A.1.3. Bugtraq.......................................................................................................817
A.1.4. Lista X-Force firmy ISS.............................................................................818
A.1.5. Witryna mail-abuse.org..............................................................................818
A.2. Listy wysyłkowe opcjonalne ..........................................................................819
A.2.1. Lista wysyłkowa SSH ................................................................................819
A.2.2. Lista wysyłkowa Network World Fusion...................................................819
A.3. Grupy dyskusyjne................................................................................................819
A.4. Adresy URL witryn poświąconych bezpieczeństwu...........................................820
A.4.1. Witryna Kurta Seifrieda .............................................................................820
A.4.2. Security Focus............................................................................................820
A.4.3. Analiza sądowa ..........................................................................................820
A.4.4. Witryna Hackerwhacker.............................................................................821
A.4.5. Numery portów używanych przez krakerów .............................................821
A.4.6. Opisy linuksowych wirusów ......................................................................821
A.4.7. Centrum NIPC agencji FBI ........................................................................821
A.4.8. FIRST.........................................................................................................821
A.4.9. Strona Linux Weekly News .......................................................................822
A.4.10. Linux Today ...............................................................................................822
A.4.11. Instytut SANS ............................................................................................822
A.5. Adresy URL witryn z narządziami zabezpieczającymi.......................................822
A.5.1. Witryna autora książki ...............................................................................822
A.5.2. Pobieranie programu Secure SHell (SSH) .................................................824
A.5.3. Pobieranie skryptu Bastille Linux ..............................................................824
A.5.4. Pobieranie skryptu wzmacniającego system SuSE ....................................825
A.5.5. Pobieranie programu Linux Intrusion Detection System...........................825
A.5.6. Pretty Good Privacy (PGP) ........................................................................825
A.5.7. GNU Privacy Guard (GPG) .......................................................................826
A.5.8. Narządzie tcpdump.....................................................................................826
18 Bezpieczeństwo w Linuksie. Podręcznik administratora
A.5.9. Ethereal sniffer z interfejsem graficznym .............................................826
A.5.10. Narządzie sniffit .........................................................................................827
A.5.11. Pobieranie narządzia Tripwire ...................................................................827
A.5.12. Zamienniki programu Tripwire..................................................................827
A.5.13. Pobieranie skanera zabezpieczeń Nessus...................................................828
A.5.14. Pobieranie testera zabezpieczeń SARA .....................................................828
A.5.15. Pobieranie programu nmap ........................................................................828
A.5.16. Pobieranie wykrywacza ataków Snort .......................................................829
A.5.17. Pobieranie programu SHADOW................................................................829
A.5.18. Pobieranie testera zabezpieczeń SAINT ....................................................829
A.5.19. Pobieranie narządzia konfiguracyjnego IP Chains ....................................829
A.5.20. Pobieranie pakietu SSL..............................................................................830
A.5.21. Pobieranie programu sslwrap.....................................................................830
A.5.22. Witryna WWW programu CVS z obsługą SSH ........................................830
A.5.23. Pobieranie szyfrującego sterownika dysku ................................................831
A.5.24. Sendmail bez przywilejów roota................................................................831
A.5.25. Pobieranie programu postfix ......................................................................831
A.5.26. Libsafe........................................................................................................831
A.5.27. Zaobserwowane ataki.................................................................................832
A.5.28. Analizowanie sieci napastnika z witryny Sam Spade ................................832
A.6. Adresy URL dokumentacji..................................................................................832
A.6.1. Dokumentacja Linuksa ...............................................................................832
A.6.2. Pisanie bezpiecznych programów...............................................................833
A.7. Adresy URL narządzi ogólnego zastosowania....................................................833
A.7.1. Debugger ddd..............................................................................................834
A.7.2. Obliczanie czasu w różnych strefach czasowych .......................................834
A.8. Adresy URL specyfikacji i definicji....................................................................834
A.8.1. Pomarańczowa ksiąga.................................................................................834
A.8.2. RFC 1813: NFS Version 3..........................................................................835
A.8.3. Słownik NSA terminów związanych z bezpieczeństwem komputerowym...835
A.9. Aktualizacje dystrybucji Linuksa ........................................................................835
A.9.1. Red Hat .......................................................................................................835
A.9.2. Slackware....................................................................................................836
A.9.3. SuSE............................................................................................................836
A.9.4. Mandrake ....................................................................................................836
A.9.5. Caldera ........................................................................................................836
A.9.6. Debian.........................................................................................................836
A.9.7. Yellow Dog.................................................................................................837
A.10. Inne aktualizacje oprogramowania......................................................................837
A.10.1. Pobieranie programu Sendmail...................................................................837
A.10.2. Baza danych PostgreSQL ...........................................................................837
A.10.3. Repozytoria oprogramowania Open Source...............................................838
Dodatek B Usługi i porty sieciowe...................................................................839
Dodatek C Poziomy zagrożenia........................................................................845
Dodatek D Skróty ...........................................................................................857
Skorowidz......................................................................................863
Rozdział 5.
Ataki powszechnie
stosowane
przez włamywaczy
W niniejszym rozdziale przedstawione zostaną najcząściej wykonywane ataki, których
przypuszczenia na nasz system wrącz należy oczekiwać i być zawsze przygotowanym
na ich odparcie. O wielu z nich mogłeś już słyszeć, lecz być może nie rozumiałeś, na
czym w rzeczywistości polegają. W tym miejscu zostaną one omówione ze wszystki-
mi szczegółami; ponadto zostaną tu przedstawione specjalne techniki służące zabezpie-
czaniu sią przed nimi.
A oto wykaz tematów poruszanych w tym rozdziale:
Ataki przypuszczane przy użyciu predefiniowanych narządzi na stronie 298
Fałszowanie pakietów na stronie 299
Ataki typu SYN Flood na stronie 306
Obrona przed atakami typu SYN Flood na stronie 307
Zapobieganie fałszowaniu sekwencji TCP na stronie 307
Sztormy pakietów, ataki smurfów oraz fraglesi na stronie 308
Przepełnianie buforów oraz niszczenie zawartości pamiąci na stronie 314
Techniki fałszowania na stronie 315
Atak typu Man-in-the-Middle na stronie 319
298 Część I f& Zabezpieczanie systemu
5.1. Ataki przypuszczane przy użyciu
predefiniowanych narzędzi
Poziom zagrożenia:
Opracowany przez NSA słownik terminów związanych z zagadnieniami zabezpieczeń
oraz wykrywania włamań w nastąpujący sposób definiuje pojącie Rootkit:
Rootkit narządzie służące do łamania zabezpieczeń (używane przez krakera), które
przechwytuje hasła oraz dane w sieci komputerowej przekazywane do oraz z kompu-
tera. Zestaw narządzi, umożliwiający krakerowi utworzenie tylnego wejścia do sys-
temu, pobieranie informacji z innych systemów w sieci komputerowej, maskowanie
faktu złamania zabezpieczeń systemu oraz wiele innych czynności. Rootkit jest kla-
sycznym przykładem oprogramowania typu koń trojański.
Najcząściej używana jest druga definicja, określająca Rootkit jako zestaw narządzi słu-
żących do tworzenia tylnych wejść do systemu oraz zmniejszania jego bezpieczeń-
stwa. Inaczej mówiąc, narządzia te pozwalają krakerowi ukryć przed tobą fakt, że cały
czas dysponuje on kontrolą nad systemem. Zainstalowanie zestawu Rootkit jest drugą
fazą włamania. Pierwszą, rzecz jasna, jest samo złamanie zabezpieczeń. Bardzo cząsto
jest to wynik działania script kiddie .
Mianem takim określa sią osobą, która nie jest wystarczająco utalentowana lub zmo-
tywowana, aby utworzyć swój własny program służący do przeprowadzenia ataku,
wykorzystującego na przykład błąd powodujący przepełnienie bufora (lub inny), nie-
poprawne ustawienia programu, łatwe do złamania hasło itp. Script kiddie używa
raczej przygotowanego wcześniej programu, służącego do wykonania ataku; po pro-
stu uruchamia go wielokrotnie, przypuszczając kolejne ataki na rózne systemy, aż do
chwili odnalezienia takiego, który nie bądzie dobrze zabezpieczony i dziąki temu mo-
że zostać złamany. W środowisku krakerów status takich osób jest tylko jeden stopień
powyżej najniższego, jaki posiadają osoby wykonujące najprostsze ataki DoS, pole-
gające na zalaniu sieci fałszywymi pakietami.
Rootkit nie jest, sciśle mówiąc, atakiem, lecz wiąkszość tworzących go procesów to
procesy złożone, które nie mogą być w prosty sposób wykryte, chyba że programy
podmienione na konie trojańskie oraz pliki konfiguracyjne zostaną porównane z ich
poprawnymi wersjami. Porównanie to jest zazwyczaj wykonywane przy użyciu sumy
kontrolnej MD5 (bardziej trafnie nazywanej skrótem), za pomocą programu
lub . Ten ostatni wykonuje porównanie bajt po bajcie, co jest niezwykle czaso-
chłonne. Należy również być przygotowanym na fałszywe alarmy. Sprawdzałem kiedyś
system, który został złamany, w przypadku którego archiwum zawierające programy
przeznaczone do przywrócenia było jedynie przynątą. Prawdziwy koń trojański umiesz-
czony był w prawie każdym programie wykonywalnym, zaś program przesyłał
go do wszystkich plików wykonywalnych kopiowanych do systemu.
Również program Tripwire dysponuje możliwością porównywania sumy MD5, zaś jego
niewątpliwą zaletą jest to, że działa dwa razy szybciej od , ponieważ musi jedynie
Rozdział 5. f& Ataki powszechnie stosowane przez włamywaczy 299
odczytać podejrzany plik i porównać ze znanym wcześniej jego poprawnym skrótem.
Należy jeszcze wspomnieć, że program nie jest godny zaufania, ponieważ niektó-
re konie trojańskie są tak zaprojektowane, aby w rezultacie dawały tą samą wartość
skrótu co właściwe programy. Opis sposobu użycia programu Tripwire znajdziesz
w podrozdziale zatytułowanym Narządzie Tripwire , na stronie 738.
Jest bardzo ważne, by zdać sobie sprawą z tego, że w przypadku podejrzenia włamania
do systemu mamy do czynienia z sytuacją analogiczną do odkrycia szpiegów w firmie.
W gruncie rzeczy w pierwszym przypadku jest jeszcze gorzej nie wiadomo, komu
można ufać. Każdy program mógł zostać zmodyfikowany w taki sposób, że w efekcie
bądzie dawać fałszywe wyniki. Bardzo cząsto w charakterze koni trojańskich wyko-
rzystywane są programy , , oraz . Oczywiście, włamywaczowi mogą
posłużyć także inne aplikacje, jak choćby , lub umieszczona na dysku kopia
Tripwire. Oznacza to, że nawet zamontowanie dyskietki z programem Tripwire w celu
sprawdzenia systemu nie jest całkowicie bezpieczne, ponieważ podmieniony mógł
zostać również program . W gruncie rzeczy przeprowadzana co noc procedura
sprawdzania systemu przy użyciu programu Tripwire powinna umożliwić wykrycie
wszystkich problemów, a jeżeli sam program jest wywoływany z nośnika umożliwiają-
cego jedynie odczyt danych, takiego jak zabezpieczona dyskietka lub płyta CD-R, ryzy-
ko otrzymania w wyniku sprawdzenia systemu niewłaściwych danych jest niewielkie.
Jak cząste są ataki przypuszczane przy użyciu narządzi typu Rootkit? Trzeba powie-
dzieć, że są one przeprowadzane bardzo cząsto, szczególnie w celu umożliwienia kra-
kerom pozostania w systemie, zaś od 20 do 70 procent włamań kończy sią przejąciem
uprawnień administratora. W jaki sposób uzyskać taki program? Krakerzy przeglądają
witryny typu www.rootkit.com/1. Oczywiście istnieje znacznie wiącej witryn tego typu.
Olbrzymia liczba witryn wykorzystywanych przez krakerów oraz potążne możliwości
stosowanych przez nich narządzi są przerażające. Chociaż najcząściej wykorzystywa-
nym sposobem walki z takimi programami jest przeinstalowanie systemu od podstaw,
nie zawsze aż tak radykalne działanie jest rzeczywiście konieczne. W cząści III oraz IV
niniejszej książki zostaną szczegółowo omówione zagadnienia wykrywania włamań
oraz naprawiania systemów, które padły ich ofiarą; trzeba pamiątać, że każde z takich
włamań mogło spowodować spowodować pozostawienie w systemie koni trojańskich.
5.2. Fałszowanie pakietów
Poziom zagrożenia:
Prawie każdy słyszał o fałszowaniu pakietów, lecz niewielu administratorów naprawdą
dobrze rozumie tą techniką. Z fałszowaniem pakietów mamy do czynienia wtedy, gdy
kraker wysyła pakiet danych w sieci komputerowej, na przykład do systemu server.
1
Wydaje sią, że ta witryna nie jest już dostąpna. Co za szkoda! Być może jej sponsorzy pracują teraz
w kamieniołomach. Wciąż jednak istnieje wiele innych witryn tego typu, jak choćby
www.thenewbiesarea.com.
300 Część I f& Zabezpieczanie systemu
pentacorp.com z systemu cracker.com, twierdząc, że pochodzi on z systemu client.
pentacorp.com. Takie działanie ma na celu uzyskanie uprawnień dostąpu do serwera
server.pentacorp.com właściwych dla client.pentacorp.com.
Fałszowanie pakietów jest możliwe dziąki lukom w zabezpieczeniach wywodzących
sią z projektu (słabego) protokołów w rodzaju UDP, TCP, ICMP oraz protokołów i algo-
rytmów routujących. Przyczyną wystąpowania tej luki nie jest używanie jądra syste-
mu Linux lub samego oprogramowania. Należy zrozumieć, że wspomniane protokoły
zostały utworzone ponad 20 lat temu, kiedy sieć internet była mniejsza, bardziej przyja-
zna oraz bezpieczniejsza niż obecnie.
Protokół TCP został zaprojektowany dla potrzeb projektu ARPA, prowadzonego w Mi-
nisterstwie Obrony Stanów Zjednoczonych. Główny nacisk został położony na jego
właściwości umożliwiające przetrwanie ataku nuklearnego i zniszczenia cząści sieci.
Miał on umożliwić szybką i efektywną zmianą routowania pakietów poprzez ominią-
cie zniszczonych miast, bez straty pakietów przesyłanych właśnie przez zaatakowany
obszar. Z drugiej strony, w przeciwieństwie do korzystających obecnie z protokołu
TCP krakerów, przedstawiciele ministerstwa oraz naukowcy byli osobami zaufanymi.
Możliwość zmiany trasy przesyłania pakietów z pominiąciem zniszczonych obszarów
oraz brak wrażliwości na ewentualne przerwy w działaniu sieci w trakcie ataku zo-
stały przetestowane z pozytywnym wynikiem. Podczas wojny w Zatoce Perskiej, po-
mimo masowych bombardowań Iraku, na terenie tego państwa wciąż istniał dostąp do
sieci internet.
Każdy pakiet zawiera adres zródłowy składający sią z adresu IP oraz numeru portu,
z którego wydaje sią pochodzić pakiet, a także adres docelowy, określający miejsce
jego przeznaczenia. Problem stanowi to, że system nadawcy tworzy pakiet i może
sfałszować informacje o swoim adresie zródłowym. Takie oszustwo może być trudne
do wykrycia. W jaki wiąc sposób można sią przed nim ochronić?
Nowoczesne zapory sieciowe (włączając do nich mechanizmy wbudowane w jądro
systemu Linux) oraz niektóre routery mogą zostać skonfigurowane w ten sposób, aby
dysponowały informacją o tym, jaki zakres adresów powinien być traktowany jako
zakres adresów wewnątrznych ; wszystkie inne bądą traktowane jako zewnątrzne .
Kiedy zapora zarejestruje pakiet zawierający adres wewnątrzny przychodzący na in-
terfejs zewnątrzny, rozpozna go jako pakiet sfałszowany i jako taki odrzuci. Właśnie
do takiej konfiguracji służy parametr programu . Umożliwia on
administratorowi określenie interfejsu (na przykład karty Ethernet, ppp lub T1), z któ-
rego pakiety z określonym adresem zródłowym bądą akceptowane.
Przed fałszowaniem pakietów można zabezpieczyć sią w dużym stopniu poprzez uży-
cie dobrego połączenia nastąpujących reguł:
Nie należy ufać adresom zródłowym UDP, z wyjątkiem bardzo bezpiecznych sieci.
Należy upewnić sią, czy wszystkie systemy w sieci używają nowych stosów IP,
które nie wykorzystują możliwych do przewidzenia numerów sekwencji TCP
(system Linux zawiera poprawką tego błądu począwszy od jądra w wersji 2.0.36).
Rozdział 5. f& Ataki powszechnie stosowane przez włamywaczy 301
Należy używać zaszyfrowanego tunelu w sieciach niezaufanych, takich
jak internet. Jest to niezbądne w celu unikniącia podsłuchiwania lub nawet
przechwycenia sesji TCP. Możemy skorzystać np. z SSL oraz różnego rodzaju
produktów tworzących VPN, jak chociażby FreeS/WAN. Zostaną one omówione
w podrozdziałach Zabezpieczanie sesji użytkownika za pomocą SSH na stronie
481 oraz VPN z wykorzystaniem FreeS/WAN IPSec na stronie 502.
Przechwytywanie sesji TCP zostanie omówione w podrozdziale
Przechwytywanie sesji TCP na stronie 305.
Administratorzy systemów powinni również skonfigurować swoje zapory sieciowe
w ten sposób, aby poszukiwały fałszywych pakietów z adresami zródłowymi pocho-
dzącymi spoza sieci komputerowej, przesyłanych na interfejsy wewnątrzne i odrzu-
cały je przy jednoczesnym zapisaniu ich adresów MAC (adresów Ethernet). Pakiety
te są tworzone przez zle skonfigurowany system w sieci lub przez użytkownika z sieci
wewnątrznej, który ma niezbyt dobre zamiary. Włamywacze na zewnątrz firmy usi-
łujący sfałszować pakiety tak, aby wydawały sią pochodzić z adresów IP wewnątrz
firmy mogą zostać zablokowani w prosty sposób przy użyciu tylko jednego polecenia,
co zostało omówione w podrozdziale zatytułowanym Blokowanie fałszowania adre-
sów IP na stronie 180. Powinieneś również zapoznać sią z podrozdziałem Zapora
sieciowa oraz DMZ za pomocą IP Chains , który znajdziesz na stronie 595. Żadna
z omawianych dotychczas technik nie ochroni przed atakiem na sesje, których jeden
uczestnik znajduje sią poza siecią wewnątrzną firmy. Tego rodzaju problem rozwią-
zuje wykorzystanie komunikacji szyfrowanej.
Na szcząście wiąkszość dostawców ISP oraz dużych organizacji dokonuje filtrowania
pakietów pochodzących z sieci wewnątrznych. Taka czynność zmniejsza znacznie ilość
systemów, które mogą zostać wykorzystane przez krakerów chcących fałszować pakiety.
Ochrona własnych systemów przed włamaniem, a tym samym możliwością ich wyko-
rzystania w innych atakach, jest wrącz obowiązkiem każdego użytkownika komputera.
Trzeba pamiątać, że złamanie zabezpieczeń systemowych może wiązać sią z konieczno-
ścią poniesienia konsekwencji natury prawnej. Firmy, które nie są w stanie ochronić
swoich systemów przed ich wykorzystaniem do przeprowadzenia ataków przeciw in-
nym systemom, są cząsto pozywane do sądu. Aby uzupełnić poruszane tutaj zagadnienia,
zapoznaj sią również z podrozdziałami zatytułowanymi Blokowanie routingu zródło-
wego w IP na stronie 178 oraz Blokowanie fałszowania adresów IP na stronie 180.
Dla podsumowania spróbuj naszkicować szkielet sieci komputerowej, zaznaczając połą-
czenia z siecią internet. Narysuj okrąg dookoła każdego jej segmentu, który może być
ochroniony za pomocą zapory sieciowej (włączając w to również wewnątrzfirmowe
firewalle) lub routera, wykonujących filtrowanie pakietów pod kątem ich adresów. Dla
każdej z granic, na przykład dla każdej zapory sieciowej, określ zakresy dopuszczal-
nych adresów pochodzących z obu jej stron. Rozważ również podsieci oraz serwery
pośredniczące. Postaraj sią być tak dokładnym, jak to tylko możliwe.
Czy na wszystkich zaporach sieciowych zostały wymuszone odpowiednie reguły? Zapo-
znaj sią z podrozdziałem zatytułowanym Zasady dotyczące topologii sieci , który znaj-
dziesz na stronie 414. W charakterze zapory sieciowej oraz routera, chroniąc różne działy
firmy przed zagrożeniami z internetu oraz złamaniem zabezpieczeń wewnątrz sieci
302 Część I f& Zabezpieczanie systemu
firmowej, może służyć pojedynczy komputer z systemem Linux, dysponujący wieloma
kartami sieciowymi. Takie właśnie rozwiązanie zostało przedstawione na rysunku 5.1.
Rysunek 5.1.
Zapora sieciowa
(router) z wieloma
podsieciami
Jak widać na rysunku 5.1, jeden serwer działający pod kontrolą systemu Linux, kosztu-
jący około 500 dolarów lub mniej, może wykonać zadania innych, bardziej dedyko-
wanych urządzeń. W przypadku wiąkszych firm może jednak wystąpić konieczność
używania wielu zapór sieciowych lub oddzielnego routera. Taka konfiguracja została
przedstawiona na rysunku 5.2.
Rysunek 5.2.
Wiele zapór
sieciowych
oraz router
Jak widać, zapory sieciowe utworzone na bazie systemu Linux mogą zostać umiesz-
czone wsządzie tam, gdzie istnieje konieczność stosowania tego rodzaju systemów.
5.2.1. Dlaczego udaje się fałszowanie pakietów UDP
Poziom zagrożenia:
Możliwość wykrycia sfałszowanych pakietów UDP jest ograniczona do zapory siecio-
wej sprawdzającej, czy pakiet z określonym adresem zródłowym powinien pochodzić
z systemów wewnątrznych, czy też zewnątrznych, oraz odrzucającej wszystkie pakiety
łamiące określone dla niej reguły.
Zastanów sią przez chwilą nad taką sytuacją: dysponujesz zdalnym serwerem, który
łączy sią głównym serwerem przy użyciu internetu. Załóżmy, że ten zdalny komputer
Rozdział 5. f& Ataki powszechnie stosowane przez włamywaczy 303
zamierza używać do komunikacji UDP. Taka sytuacja może wystąpić w przypadku
stosowania NFS2 lub własnej aplikacji użytkownika.
W jaki sposób zapora sieciowa lub aplikacja mogłaby określić, że pakiet został sfał-
szowany? Otóż nie może tego wykryć, ponieważ wie, że zdalny serwer znajduje sią
na zewnątrz sieci i zaakceptuje pakiet (jeżeli użytkownik pragnie uruchomić aplikacją
wykorzystującą pakiety tego rodzaju), lecz poprawny pakiet nie bądzie sią niczym
różnił od sfałszowanego.
Właśnie z tej przyczyny protokół UDP jest uznawany za niebezpieczny; ponadto
głównie z tego samego powodu za niebezpieczną jest uznawana również usługa NFS,
ponieważ używa jedynie3 UDP. Wszystkie tak starannie skonfigurowane procedury
kontroli dostąpu, na przykład plik /etc/exports pozwalający utworzyć połączenie NFS
jedynie niektórym serwerom (inne aplikacje mogą używać podobnych plików konfi-
guracyjnych), zostaną pokonane, ponieważ wszystkie one bazują na polu adresu zró-
dłowego pakietu, a właśnie ono zostało sfałszowane.
Oczywiście serwer (NFS lub inny) odeśle odpowiedz do komputera o adresie zródło-
wym określonym w fałszywym pakiecie klienta i co także jest oczywiste rze-
czywisty system klienta, którym jest system krakera, nie ujrzy odpowiedzi (chyba że
kraker może podsłuchiwać sieć). Nie stanowi to zazwyczaj problemu, ponieważ wiąk-
szość aplikacji działających na warstwie protokołu UDP implementuje prosty proto-
kół, którego zazwyczaj używa klient do wysłania żądania, zaś serwer odpowiada za
pomocą komunikatu , komunikatu o wystąpieniu błądu lub danych stanowiących
odpowiedz na żądanie. Zazwyczaj kraker może dokonać wielu zniszczeń nawet nie
dysponując odpowiedzią. Jeśli używa NFS, jest w stanie wysłać żądanie ,
które spowoduje, że nastąpnym razem system sią nie uruchomi. Kraker w tym przy-
padku nie martwi sią tym, czy otrzyma odpowiedz . Ponadto mógłby utworzyć nowy
plik /etc/passwd, zawierający wybrane przez siebie hasło administratora, wykorzystać
NFS do umieszczenia go w systemie docelowym i przejąć dziąki temu kontrolą nad
systemem. Wiąkszości poważnych problemów zapobiegnie ustawienie poprawnych
uprawnień (przy użyciu opcji ) w pliku /etc/exports.
Opcja powoduje, że zdalny użytkownik podający sią za użytkownika o UID 0
lub root bądzie traktowany jako użytkownik . Jest to domyślne zachowanie
serwera NFS. Opcja nie zabezpieczy jednak w pełni systemu NFS. Kra-
ker musi jedynie wykorzystać luką w systemie, która nie wymaga uprawnień admini-
stratora. Jedna z takich łatwych zdobyczy , które mogą okazać sią dlań pomocne,
polega na tym, że wielu użytkowników systemu używa zle skonfigurowanej zmiennej
środowiskowej , zawierającej (znak kropki) przed nazwą katalogów systemowych.
2
NFS jest skrótem od Network File System nazwy protokołu utworzonego przez firmą Sun Microsystems
w celu umożliwienia programom działającym w systemach klientów uzyskanie dostąpu do plików serwera,
tak jakby stanowiły one pliki lokalne w systemach klienta. Protokół ten wykorzystuje UDP, ponieważ
ten ma prawie dwukrotnie wiąkszą przepustowość niż TCP przy użyciu tego samego sprzątu dla potrzeb
aplikacji klient-serwer. Protokół ten nie jest również oparty na połączeniu, co sprawia, że serwer nie
natrafi na sytuacją wyczerpania wszystkich gniazd plików, ponieważ potrzebuje tylko jednego dla całej
usługi, a nie osobnego dla każdego systemu klienta.
3
NFS w wersji 3 może używać również TCP przyp. red.
304 Część I f& Zabezpieczanie systemu
Zostało to omówione w podrozdziale zatytułowanym $PATH: Katalog . grozi nie-
szcząściem na stronie 177.
Craker musi jedynie sfałszować adres zródłowy NFS i umieścić fałszywą wersją po-
wszechnie używanego programu narządziowego, takiego jak lub , w katalogu
/tmp i czekać, aby administrator użył jednego z tych zmodyfikowanych poleceń w tym
właśnie katalogu. Wykonanie przedstawionego tu polecenia spowoduje wyświetlenie
wszystkich usług sieciowych wykorzystujących UDP, które mogłyby działać na twoim
komputerze, z wyjątkiem tych, które nie posiadają nazw symbolicznych w pliku /etc/
services:
Bardziej wydajny sposób polega na użyciu programu lub ; oba zostały
omówione w podrozdziale Wyłączanie niepotrzebnych usług na stronie 125. Pro-
gramy te umożliwią określenie portów rzeczywiście używanych w systemie. Wszystkie
osoby, które chciałyby napisać swoje własne programy analizujące otwarte porty, bądą
musiały odczytywać pseudopliki /proc/net/udp oraz /proc/net/tcp. Pola o nazwach
oraz są polami określającymi lokalny oraz zdalny adres kom-
putera. Cząść pola umieszczona przez znakiem określa adres IP, zaś cząść wystąpu-
jąca za nim jest numerem portu. Oba numery są podane w postaci szesnastkowej.
5.2.2. Fałszowanie sekwencji TCP
Poziom zagrożenia:
Jedna z różnic pomiądzy protokołami TCP a UDP polega na tym, że pierwszy z nich
dysponuje algorytmem potwierdzenia (ponowienia) transmisji, dziąki któremu nadawca
dysponuje informacją o tym, czy każdy z pakietów został odebrany, zaś wszystkie
opuszczone pakiety są wykrywane wskutek określenia brakujących pakietów z po-
twierdzeniami. W takim przypadku są one wysyłane ponownie (algorytm powtarzania).
Cząścią tego rodzaju algorytmu są numery sekwencji wbudowane w protokół w celu
upewnienia sią, że pakiet został dostarczony i czy w sekwencji nie ma brakujących
pakietów.
Aby sfałszować pakiety TCP, osoba dokonująca tej operacji musi znać schemat nu-
merowania sekwencji lub po prostu ją odgadnąć. Jeszcze nie tak dawno nikt w rzeczy-
wistości nie przejmował sią kwestią fałszowania i dlatego też numerowanie sekwencji
było przewidywalne, chociaż jego sposób zależał od systemu operacyjnego (dlatego
właśnie niektóre z programów używanych przez krakerów na podstawie charakteru tej
sekwencji potrafiły określić nawet rodzaj używanego systemu).
Sposób nawiązywania połączenia TCP polega na wysłaniu przez klienta komunikatu
TCP postaci ; jest to pakiet TCP z ustawionym bitem w nagłówku (wartość ).
W komunikacie tym klient umieszcza swój numer początkowy sekwencji , używany
do śledzenia sekwencji pakietów.
Rozdział 5. f& Ataki powszechnie stosowane przez włamywaczy 305
Serwer odpowiada za pomocą komunikatu (włączone bity oraz ), za-
wierającego początkowy numer sekwencji serwera. Stare systemy używały począt-
kowego numeru sekwencji X dla N-tego połączenia, X+64000 dla połączenia N+1 itd.
Ostatecznie klient wysyła komunikat . W tym momencie każda ze stron może roz-
począć wysyłanie danych. Gdy każda wyśle Y bajtów swoich danych, musi zwiąkszyć
numer sekwencji o wartość Y. Należy zauważyć, że zostały wysłane trzy pakiety, i dla-
tego to właśnie trójstopniowa wymiana komunikatów inicjuje połączenie.
Jak przypominasz sobie z podrozdziału zatytułowanego Dlaczego udaje sią fałszo-
wanie pakietów UDP , sfałszowanie adresu zródłowego pakietu jest trywialne. Jedy-
nym utrudnieniem podczas przeprowadzania takiej operacji w przypadku połączenia
TCP jest to, że klient musi znać numer początkowy sekwencji serwera lub spróbować
go odgadnąć. Jeżeli klient używa fałszywego adresu zródłowego, odpowiedz
serwera, która bądzie zawierać cenny początkowy numer sekwencji, wysyłana jest pod
fałszywy adres zródłowy i kraker nigdy jej nie zobaczy.
Najnowsze wersje systemu Linux używają trudnego do odgadniącia schematu tworzenia
numerów sekwencji; takie rozwiązanie ma zwiąkszyć ochroną przed fałszowaniem.
Szczegółowe informacje zostaną podane w podrozdziale Zapobieganie fałszowaniu se-
kwencji TCP na stronie 307. Ponieważ numer sekwencji jest liczbą 16-bitową, wła-
mywacz musi odgadnąć 65536 liczb.
Jeśli jednak włamywacz mógł nie został wykryty przez dostatecznie długi okres czasu,
mógł odgadnąć ten numer. Z tego powodu w sytuacji, w której wymagane jest stoso-
wanie mocnych zabezpieczeń, nie polegać jedynie na adresach IP. Powinniśmy wyko-
rzystać zaporą sieciową blokująca pakiety pochodzące z internetu (lub podsieci, do
których mamy niewystarczająco duże zaufanie), które wydają sią pochodzić z syste-
mu umieszczonego w sieci wewnątrznej. Jedynie połączenia pochodzące z sieci
zewnątrznej powinny być przepuszczane do Strefy Zdemilitaryzowanej (DMZ), w której
należy umieścić serwery pocztowe oraz WWW. Wiącej szczegółowych informacji
znalezć można w podrozdziale Zbuduj niezależne twierdze na stronie 349. Wciąż jed-
nak zapora sieciowa lub program TCP Wrappers bądzie filtrować znaczną cząść prób
włamania sią do sieci.
5.2.3. Przechwytywanie sesji TCP
Poziom zagrożenia:
Trzeba w tym miejscu wspomnieć o jednej bardzo istotnej rzeczy: otóż jeżeli kraker
może podsłuchać ruch w sieci komputerowej, może również określić kolejny numer
sekwencji w połączeniu wychodzącym, niezależnie od tego, po której stronie połą-
czenia sią znajdzie. Jeżeli ma dostąp do jednego z serwerów sieci serwera lub klienta,
obserwowanie ruchu w tej sieci nie sprawi mu najmniejszego problemu. Nastąpnie
kraker bądzie w stanie wprowadzić do niej swój własny pakiet. Na przykład jeżeli ist-
nieje otwarta oraz aktywna sesja , zapoczątkowana choćby przez administratora
306 Część I f& Zabezpieczanie systemu
logującego sią ze swojego komputera domowego, kraker mógłby wprowadzić pakiet
używający polecenia powłoki powodującego wprowadzenie do systemu konia trojań-
skiego. Takie przechwycenie sesji nie bądzie trwać długo jedynie do czasu, gdy dwa
uprawnione systemy zostaną zdezorientowane i zamkną sesją. Z tego samego powodu
możliwe jest wykorzystanie tej techniki do przeprowadzenia ataku DoS.
Ponieważ jednak pojedynczy pakiet może wprowadzić konia trojańskiego do sesji
telnet, jest ona bardzo niebezpieczna. W podobny sposób może zostać przechwycona
również sesja WWW, np. podczas wykonywania operacji transakcji płatniczej. W obu
przypadkach powinniśmy zabezpieczyć sią stosując mocne algorytmy szyfrujące, takie
jak SSL, SSH lub sieci VPN w rodzaju FreeS/WAN. Ich użycie zapobiegnie zarówno
podsłuchiwaniu, jak i przejmowaniu sesji. Wspomniane tu rozwiązania zostaną omó-
wione w podrozdziałach zatytułowanych Zabezpieczanie sesji użytkownika za pomocą
SSH na stronie 481, Pobieranie pakietu SSL na stronie 830 oraz VPN z wykorzy-
staniem FreeS/WAN IPSec na stronie 502.
5.3. Ataki typu SYN Flood
Poziom zagrożenia:
Przypomnij sobie dyskusją o trójstopniowej wymianie pakietów , omówionej w pod-
rozdziale Fałszowanie sekwencji TCP na stronie 304. Po wysłaniu przez klienta pa-
kietu do serwera, ten ostatni odnotowuje to w kolejce połączeń oczekujących na
dokończenie, odsyła do klienta pakiet oraz oczekuje na pakiet kończący
nawiązywanie połączenia. Co wiącej, podczas oczekiwania przydziela pewne tymcza-
sowe zasoby, wiedząc , że pakiet zostanie przesłany za sekundą lub dwie.
W przypadku ataku typu Flood, czyli ataku polegającego na użyciu półotwartych
połączeń, klient (kraker) nie wysyła nigdy ostatniego komunikatu . Zamiast tego
wysyła ponownie kolejny pakiet z innym sfałszowanym adresem zródłowym, co
powoduje przydzielenie kolejnych zasobów serwera. Zauważ, że klient nie zarezerwo-
wał żadnych swoich zasobów, ponieważ w celu wysłania dowolnych pakietów uży-
wał surowych gniazd.
Ponieważ aż do ostatnich czasów wiąkszość systemów operacyjnych nie mogła ob-
sługiwać wiącej niż tylko pewnej małej ilości tego rodzaju w połowie otwartych
gniazd zanim zasoby nie zostały wyczerpane całkowicie, z pewnością zaistnienie takiej
sytuacji bardzo szybko spowoduje wyłączenie serwera. Obrona przed atakami tego typu
zostanie omówiona w kolejnym podrozdziale. Atak zrealizowany przy użyciu pakie-
tów został zaobserwowany po raz pierwszy wtedy, gdy podatny na niego serwer
firmy Panix (dostawcy ISP w Nowym Jorku) został przy jego użyciu wyłączony. W fir-
mie tej do dziś nikt nie wie, kto zaatakował ją po raz pierwszy.
Rozdział 5. f& Ataki powszechnie stosowane przez włamywaczy 307
5.4. Obrona przed atakami
typu SYN Flood
Poziom zagrożenia:
W poprzednim podrozdziale omówiłem działanie ataku DoS typu SYN Flood. Aby
sią przed nim uchronić, gdy jeśli używasz wersji jądra starszej niż 2.0.36, powinieneś
po prostu je uaktualnić. Należy podkreślić, że już jądra o wersji wyższej niż 2.0.30
udostąpniają poprawką zabezpieczającą przed tym atakiem, lecz oprócz tego zawie-
rają inny błąd umożliwiający fałszowanie pakietów TCP, dlatego też należy używać
wersji przynajmniej 2.0.36, w której wspomniany błąd nie wystąpuje. Po pobraniu ją-
dra 2.0.36 lub nowszego konieczne jest przekompilowanie go ze zdefiniowaną stałą
. Zazwyczaj uzyskamy to wykonując podczas konfiguracji jądra
nastąpujące polecenia, wywoływane z /usr/src/linux:
w przypadku używania X Windows
menu
stara metoda
Stała powoduje rozpoznanie, że kolejka w połowie otwartych
połączeń, w której zapamiątywane są szczegóły dotyczące nawiązywanego połącze-
nia, przekroczyła odpowiedni rozmiar. Połowa z tej kolejki jest dedykowana do ob-
sługi komunikacji z systemami, z którymi ostatnio pomyślnie nawiązano połączenie,
przy założeniu, że systemy te są prawdopodobnie do tego uprawnione.
Jeżeli serwerowi zaczyna brakować przestrzeni w kolejce, koduje dane przy użyciu
32 bitów i dołącza tą informacją do pakietu jako numer początkowy sekwen-
cji. Jeżeli pakiet ten trafi do właściwego klienta, który nie jest koniem trojańskim, ten
zwiąkszy numer pakietu i umieści go w kolejnym pakiecie . Serwer nastąpnie
odejmuje jeden od numeru pakietu i dysponuje wszystkimi informacjami niezbądnymi
do zakończenia procesu nawiązywania połączenia. Jeżeli pakiet spowodowany był
atakiem typu flood, w przypadku gdy jądro odsyła z powrotem pakiet ,
serwer zapomina o okolicznościach połączenia (zamiast zapisywać do pliku z logiem
komunikatu z ostrzeżeniem Uwaga: możliwy atak typu SYN Flood. ). Wiąkszość
ostatnich wersji jądra ma tą opcją włączoną domyślnie.
5.5. Zapobieganie fałszowaniu
sekwencji TCP
Poziom zagrożenia:
Starsze jądra systemu Linux (i wiele innych systemów operacyjnych) używają prze-
widywalnego schematu tworzenia numerów sekwencji pakietów TCP, co otwiera
308 Część I f& Zabezpieczanie systemu
system na możliwość sfałszowania przez krakera pakietów oraz przejącia połączenia.
Szczegółowe wyjaśnienie tej techniki zostało umieszczone w podrozdziale Fałszo-
wanie sekwencji TCP na stronie 304. Rozwiązanie polega na uaktualnieniu jądra
systemu Linux przynajmniej do wersji 2.0.30.
Trzeba jednak pamiątać, że w stosie protokołu TCP starszych jąder istnieje błąd umożli-
wiający przeprowadzenie fałszowania pakietów TCP przy użyciu innej metody klient
(używający fałszywego adresu zródłowego) mógłby wysłać pakiety, które zostałyby
dostarczone do nasłuchującego serwera przed zakończeniem trójetapowego nawiązy-
wania połączenia TCP. Ponieważ klient, jeśli jest narządziem krakera, nie musi ocze-
kiwać na zakończenie tej procedury, nie musi również oczekiwać na otrzymanie pakietu
i w ten sposób omija zabezpieczenia TCP. Ten ostatni błąd został poprawiony
w wersji 2.0.36 jądra. Dlatego też jeżeli używasz jądra w starszej niż ta wersji, jeśli
chcesz zapewnić sobie ochroną przez fałszowaniem pakietów TCP, powinieneś doko-
nać jak najszybszego uaktualnienia.
5.6. Sztormy pakietów, ataki smurfów
oraz fraglesi
Poziom zagrożenia:
Sztorm pakietów (ang. packet storm) to określenie, którym nazywa sią techniką wyko-
rzystywaną przez włamywacza (lub osobą z nim współpracującą) w celu zalania sys-
temu fałszywymi pakietami i zającia dziąki temu całego dostąpnego pasma łącza sie-
ciowego. Uniemożliwi to obsługą uprawnionych pakietów, ponieważ upłynie czas ich
obsługi. Jest to jeden z rodzajów ataków typu DoS. Jeżeli atak przypuszczony został
z wielu systemów, jest nazywany rozproszonym atakiem DoS (DDoS). Niektóre z bru-
talnych ataków typu DDoS polegają na złamaniu przez krakera wielu systemów, zain-
stalowaniu na nich programów pozostających w utajnieniu, a nastąpnie wykorzystaniu
ich po pewnym okresie czasu (niekiedy po miesiącach) do wykonania jednoczesnego
ataku na system ofiary. Metoda ta została przedstawiona na rysunku 5.3, na którym
każdy z prostokątów reprezentuje inny system. Zauważ, że kraker musi wysłać jedynie
kilka komunikatów w celu spowodowania zalania systemu ofiary milionem pakietów.
Może skorzystać z pakietów ICMP lub UDP zawierających sfałszowane adresy zró-
dłowe, co praktycznie uniemożliwi wyśledzenie zródła ataków. Prostokąty z literą Z
oznaczają zombie systemy ze złamanymi zabezpieczeniami, atakujące ofiarą po
wydaniu stosownego polecenia.
Jak wynika z rysunku 5.3, po skonfigurowaniu komputerów nadzorujących atak oraz
komputerów zombie, wysłanie kilku zaledwie pakietów z systemu krakera może wy-
łączyć nawet najwiąkszy system. Ponieważ możliwe jest wykorzystanie wielu pozio-
mów pośrednich pomiądzy włamywaczem a ofiarą, ten pierwszy prawdopodobnie
nie zostanie schwytany, chyba że zaatakował niewłaściwą osobą.
Rozdział 5. f& Ataki powszechnie stosowane przez włamywaczy 309
Rysunek 5.3.
Atak typu DDoS
Ataki smurfów (ang. smurf attacks) to swoiste ataki typu sztorm pakietów; włamy-
wacz używa w nich fałszywego adresu podczas wysyłania pakietu echo protokołu ICMP
na adres rozgłoszeniowy IP. O ile sieć docelowa nie została zabezpieczona przed takimi
atakami, żądanie to zostanie dostrzeżone przez wszystkie systemy w niej umieszczone
i każdy z nich odpowie przy użyciu fałszywego adresu nadawcy, co spowoduje zala-
nie tego serwera (zamierzonej ofiary) olbrzymią ilością fałszywych pakietów. Atak ten
może być jeszcze zwielokrotniony poprzez wykorzystanie adresu rozgłoszeniowego
w charakterze sfałszowanego adresu zródłowego, co spowoduje zwielokrotnienie liczby
systemów dotkniątych atakiem.
Więcej informacji na temat omawianych tu ataków oraz przeciwdziałania im zawiera witryna
Craiga Huegena, znajdująca się pod adresem http://www.pentics.net/denial-of-service/.
Aącza do niej umieszczane są na wielu innych witrynach, zaś jej autor wspaniałomyślnie
zgodził się na użycie jego materiałów w tej książce.
Wykorzystanie rozgłoszeniowego adresu docelowego w celu spowodowania przez po-
czątkowy pakiet wygenerowania wielu odpowiedzi (w tym przypadku odpowiedzi na
polecenie echo protokołu ICMP) jest nazywane wzmocnieniem (ang. amplification).
Dziąki wykorzystaniu takiej metody osoba dokonująca ataku nie musi wykorzystywać
zbyt wielu zasobów swojego komputera. Jeżeli przy użyciu adresu rozgłoszeniowego
wysłała ona wiadomość rozgłoszeniową do 100 serwerów w sieci, ofiara otrzyma 100
odpowiedzi. Jeżeli w ten sposób zostanie wykorzystana duża sieć komputerowa, na
przykład sieć uniwersytetu lub jednej z firm z listy Fortune 500, uzyskane zwielokrotnie-
nie może wynosić nawet 1000 razy. Dziąki temu atak może zostać zapoczątkowany
przy użyciu połączenia wdzwanianego do sieci T1 i spowodować zatrzymanie działa-
nia olbrzymiej sieci docelowej z łączem T3. Jeżeli sieć komputerowa klasy
A pozwala na użycie rozgłoszeniowych adresów docelowych, odpowiedz na polecenie
echo zostałaby wysłana pod adres .
System, do którego jest wysyłane żądanie echo, jest nazywany wzmacniaczem. W celu
zwiąkszenia efektu osoba atakująca może wykorzystać równolegle wiele wzmacnia-
czy, wysyłając pakiet najpierw do pierwszego systemu, pózniej do drugiego itd. Jednak
310 Część I f& Zabezpieczanie systemu
jest to wciąż zaledwie pierwszy poziom wzmocnienia. Jeżeli natomiast również sieć
zamierzonej ofiary obsługuje docelowe pakiety rozgłoszeniowe, możliwe jest uzyska-
nie wzmocnienia dwupoziomowego.
Mechanizm taki polega na wysłaniu pakietów pod adres rozgłoszeniowy sieci kom-
puterowej ofiary, z wykorzystaniem sfałszowanego adresu zródłowego, którym jest
adres rozgłoszeniowy innej sieci komputerowej. Jeżeli sieć ofiary obejmuje 50 syste-
mów, zaś druga sieć komputerowa 100, każdy z 50 systemów wyśle odpowiedz na
żądanie echo przy użyciu komunikatu skierowanego do drugiej sieci komputerowej,
powodując wysłanie odpowiedzi przez każdy z jej 100 systemów. Daje to w rezultacie
wzmocnienie 50100, czyli 5000 razy. W przypadku, gdyby sieć dysponowała 1000
systemów, uzyskane zostałoby wzmocnienie 1 000 000 razy. Wiąkszość wykorzysty-
wanych obecnie dużych sieci zabezpieczono jednak przed atakami tego typu.
Nazwa omawianego tu typu ataku pochodzi z bajki o Smurfach, w której wiele tych niebie-
skich stworzonek zdawało się wypełniać niemal całą przestrzeń.
Istnieje odmiana ataku smurfów zwana atakiem fraglesów, używająca żądań echo pro-
tokołu UDP w sposób podobny do żądań ICMP wykorzystywanych w przypadku ataku
smurfów.
5.6.1. Zapobieganie wykorzystaniu systemu
w charakterze wzmacniacza
W celu wykluczenia możliwości wykorzystania systemu w charakterze wzmacniacza
należy wykonać wiele czynności. Każda z nich zostanie omówiona w dalszej cząści
tej sekcji.
Na routerze lub zaporze sieciowej należy blokować wszystkie pochodzące z internetu pakiety
z rozgłoszeniowym adresem docelowym lub rozgłoszeniowym adresem zródłowym.
Jeżeli pomiądzy systemami twojej sieci a siecią internet nie jest umieszczony żaden sys-
tem zapory sieciowej lub router (w przypadku dysponowania wiącej niż kilkoma sys-
temami nie zasługuje to na pochwałą), poprzednia rada powinna zostać zastosowana
w odniesieniu do każdego systemu. Na każdej z maszyn bez wątpienia powinien zo-
stać uruchomiony program IP Chains, pozwalający na wykonanie stosownego filtrowa-
nia. (Należy pamiątać, że dowolny komputer z systemem Linux z rozsądnie nowej
dystrybucji, używający jądra w wersji 2.2 lub pózniejszej, może być w prosty sposób
skonfigurowany w charakterze zapory sieciowej pomiądzy siecią wewnątrzną LAN
a oddzielna kartą Ethernet obsługującą połączenie z internetem lub połączeniem PPP,
ISDN, T1 lub T3. Nawet system dysponujący procesorem 386 poradzi sobie w przypad-
ku połączenia ISDN, zaś system Pentium bądzie w stanie obsłużyć połączenie T3.)
Używana przez ciebie zapora sieciowa powinna zostać również skonfigurowana w celu
blokowania pakietów nadchodzących z sieci zewnątrznej , które zawierają adres zró-
dłowy, jaki powinien pochodzić jedynie z systemów twojej firmy i vice versa (jest to
Rozdział 5. f& Ataki powszechnie stosowane przez włamywaczy 311
cząsta technika fałszowania pakietów). Blokowanie pakietów z sieci wewnątrznej z adre-
sami właściwymi sieciom zewnątrznym ma na celu wykluczenie możliwości prze-
prowadzenia ataku przez nieprzyjaznych użytkowników z twojej sieci. Jeżeli obsługu-
jesz system firmy ISP lub uniwersytetu, oczywiście musisz bronić sią przed takimi
użytkownikami. Ta sama reguła dotyczy dużych firm. Należy wyłączyć możliwość
ustalania adresów zródłowych dla wszystkich pakietów przesyłanych do sieci (oraz wy-
chodzących z niej, ponieważ osoby atakujące inne systemy mogą pracować w twojej
sieci wewnątrznej).
Możesz również wyłączyć możliwość używania bezpośrednich adresów rozgłoszenio-
wych wewnątrz obsługiwanych podsieci, dysponujących wiącej niż (na przykład) pią-
cioma systemami (wcześniej sprawdz, czy nie używasz żadnej aplikacji polegającej
na tego rodzaju metodach rozgłoszeniowych, na przykład DHCP). Wiącej informacji
na temat konfiguracji zapór sieciowych, jak również przykłady reguł, zawierać bądzie
podrozdział zatytułowany Zapora sieciowa oraz DMZ za pomocą IP Chains , który
znajdziesz na stronie 595.
W przypadku powszechnie wykorzystywanych routerów odpowiednie polecenia wy-
glądają nastąpująco:
Mógłbyś zapobiec żądaniom echo protokołu ICMP oraz przedostaniu sią do sieci od-
powiedzi na nie po prostu je ignorując, jednak takie podejście nie jest zalecane, o ile
nie stanowi ostatniej deski ratunku spowoduje bowiem utrudnienie rozwiązywania
problemów zarówno przez ciebie, jak i inne osoby, które napotykają na kłopoty z po-
łączeniem sią z twoją siecią. Powodem ignorowania (odrzucania) odpowiedzi jest to,
że bądą one wysyłane przez niektórych krakerów, oczekujących, że twój system odpo-
wie komunikatem informującym, że nie wysyłał żadnego żądania ICMP. Można ze-
zwolić na wykonywanie normalnych poleceń echo i zablokować ataki Smurfów po-
przez zablokowanie odpowiedzi echo ICMP o rozmiarze przekraczającym 100 bajtów,
jako że ataki takie wydają sią używać pakietów o rozmiarze ok. 1000 bajtów.
Należy wyłączyć odpowiedzi na komunikaty echo ICMP wysyłane na adresy rozgło-
szeniowe. Takie działanie zostało zaakceptowane w dokumencie RFC-1122, w którym,
w sekcji 3.2.2.6, użyto terminu multicast zamiast broadcast. Odpowiedzi na wspo-
mniane komunikaty mogą być blokowane począwszy od jądra 2.2. Dla niektórych
starszych jąder dostąpna jest odpowiednia poprawka. Kontrolowanie tej oraz innych
właściwości zostało opisane w podrozdziale Opcje jądra dotyczące protokołów na
stronie 116. W celu powstrzymania tego określonego typu ataku, podczas każdego
uruchamiania systemu powinno być użyte nastąpujące polecenie:
312 Część I f& Zabezpieczanie systemu
Dokument RFC 1122 jest dostąpny po adresem:
www.faqs.org/rfcs/rfc1122.html
5.6.2. Obrona przed atakiem używającym
sztormu pakietów
Jeżeli odkryłeś, że jesteś ofiarą ataku przeprowadzonego przy użyciu sztormu pakie-
tów, powinieneś zdawać sobie sprawą z tego, że znalazłeś sią w trudnej sytuacji. Atak
tego typu spowoduje wykorzystanie całego pasma łącza. Z tego powodu nie istnieje
możliwość uratowania sieci komputerowej. Niektóre firmy usiłują sprzedawać urzą-
dzenia, które ochronią sieć przeciwko rozproszonym atakom DoS przeprowadzanym
przy użyciu sfałszowanych pakietów oraz podobnym atakom . Nie daj sią zwieść takim
reklamom. Chociaż urządzenia te mogą chronić przeciwko atakom Smurfów, atakom
przeprowadzanym za pomocą sfragmentowanych pakietów oraz podobnym, polegającym
na naruszaniu standardów protokołów, to jednak zapora sieciowa oparta na systemie
Linux skonfigurowanym w sposób przedstawiony w tej książce spełni te same zada-
nia za znacznie mniejszą ceną.
W celu przeprowadzenia analizy pakietów możesz użyć programów ,
lub , szczególnie wtedy, gdy adresy zródłowe tych pakietów są podejrzane.
Czy pakiety wydają sią pochodzić z jednego adresu IP, czy z wielu? Jeżeli wydają sią
pochodzić z jednego lub małej liczby adresów, należy ustalić firmą, do której te adre-
sy należą, używając w tym celu technik opisanych w rozdziale Namierzanie kom-
putera włamywacza na stronie 801. Kiedy to zrobisz, skontaktuj sią z jej przedstawi-
cielami i zmuś do powstrzymania ataku. Nalegaj, aby w razie konieczności wyłączyli
swoje komputery.
Trzeba pamiątać, że adres zródłowy może być sfałszowany, dlatego też istnieje moż-
liwość, że atak pochodzi z zupełnie niezwiązanych z nim systemów. Jeżeli organizacja
nie może zostać ustalona lub nie chce współpracować, należy użyć polecenia
z argumentem w postaci podejrzanego adresu IP. Powinniśmy odnalezć systemy
wystąpujące przed podejrzanym. Mogłyby one określać jego dostawcą ISP. W takim
przypadku można ponowić opisane powyżej czynności, próbując nawiązać kontakt
z firmą i poprosić jej przedstawicieli o potwierdzenie oraz powstrzymanie ataku.
Jeżeli adres zródłowy został sfałszowany, skontaktuj sią z własnym dostawcą ISP. Powi-
nien on dysponować planem działania podejmowanego w takiej sytuacji, lecz nie jest
to obligatoryjne. Jeżeli adres zródłowy został sfałszowany, przedstawiciele dostawcy
usług ISP muszą ustalić, jaki system ostatnio używał pakietu, a jaki jeszcze wcześniej
i tak aż do odnalezienia adresu systemu zródłowego. W przypadku, gdy w ataku uczest-
niczy wiele systemów atakujących, technika ta może zostać powtórzona dla każdego
z nich, co jest jednak niezwykle czasochłonne. Chociaż blokowanie ataków przy uży-
ciu określonego rodzaju pakietu jest proste, to kilka z ostatnich programów stosowa-
nych do przeprowadzenia ataku DDoS może używać różnych typów pakietów.
Przyszłe programy umożliwiające ataki typu DDoS prawdopodobnie bądą jeszcze bar-
dziej różnicować pakiety, co jeszcze bardziej utrudni ich blokowanie. Już teraz trwają
Rozdział 5. f& Ataki powszechnie stosowane przez włamywaczy 313
dyskusje pomiądzy niektórymi specjalistami, zmierzające do rozszerzenia protokołów
umożliwiających systemowi docelowemu wysłanie komunikatu z informacją: Prze-
stań przesyłać pakiety o takich parametrach . Taka metoda bądzie mogła zostać wy-
korzystana do zablokowania omawianych tu ataków. Ponieważ wiąkszość systemów
rozszerza używane zapory sieciowe w celu wykonywania filtrowania pakietów oraz
blokowania złych pakietów pochodzących z ich własnych sieci, ataki tego typu bądą
sią coraz trudniej rozprzestrzeniać.
5.6.3. Routery Cisco
Administratorzy wykorzystujący routery firmy Cisco mogą znalezć wiele przydatnych
informacji na jej stronie internetowej, poświąconej zwiąkszaniu zabezpieczeń; można
ją znalezć pod adresem:
www.cisco.com/warp/public/707/3.html
Na stronie tej znajdziemy m.in. omówienie techniki blokowania dostąpu sieciowego,
nazywanej w firmie Cisco portem diagnostycznym UDP routera . Zaprezentowane
w tabeli 5.1 powszechnie obsługiwane usługi systemów Linux (UNIX) są cząsto wy-
korzystywane do przeprowadzania ataków typu DoS.
Tabela 5.1. Usługi diagnostyczne w systemie Linux (UNIX)
Usługa Port TCP UDP Przeznaczenie
Echo 7 T T Router odpowiada przy użyciu otrzymanych danych
Discard 9 T T Router odrzuca otrzymane dane
Daytime 13 T N Router wysyła datą oraz czas systemowy
Chargen 19 T T Router tworzy strumień znaków
W celu wyłączenia tych usług w routerze firmy Cisco, należy użyć nastąpujących glo-
balnych poleceń konfiguracyjnych:
Usługi te możesz również wyłączyć w systemie Linux, obejmując ich wpisy, znajdu-
jące sią w pliku /etc/inetd.conf, znakiem komentarza. Chociaż wspomniane usługi są
przydatne dla administratorów innych systemów, próbujących przeanalizować pro-
blemy z siecią komputerową, to jednak mogą sią one również przydać krakerom oraz
innym osobom dokonującym ataków DoS.
Niestety, chociaż wszystkie są usługami wewnątrznymi , niemożliwe jest wyko-
rzystanie TCP Wrappers w celu zezwolenia na ich wykorzystanie przez określone,
przyjazne serwery oraz domeny. Tym niemniej w celu przyznania praw do ich wyko-
rzystania tylko określonym systemom mógłbyś użyć funkcji zapory sieciowej lub IP
Chains.
314 Część I f& Zabezpieczanie systemu
5.6.4. Ataki DDoS: zasoby sieciowe z narzędziami
do przeciwdziałania
Zapoznaj sią ze wspomnianą już wcześniej, doskonałą stroną Craiga Huegena. Przy-
pomną, że znajdziesz ją pod adresem:
http://www.pentics.net/denial-of-service/
Wartościowe wyjaśnienie poruszanego tu problemu umieszczono także na stronie:
www.cert.org/tech_tips/denial_of_service.html
Sposób obrony opisany został pod adresem:
www.cert.org/reports/dsit_workshop.pdf
Sugestie dotyczące zwiąkszenia zabezpieczenia systemu zamieszczone zostały na stro-
nie o adresie:
www.cert.org/security-improvement
zaś nastąpujące dwie strony zawierają sugestie dotyczące sposobu przywrócenia po-
prawnego działania systemu:
www.cert.org/nav/recovering.html
www.sans.org/
Po wystąpieniu w lutym 2000 roku dobrze opisanych ataków DDoS zauważyłem, że
niektórzy dostawcy zapór sieciowych twierdzili niezgodnie z prawdą, iż tylko ich urzą-
dzenia ochronią sieć przed takimi atakami. Wiąkszość ataków typu DDoS, które wspo-
mniane zapory sieciowe mogą blokować, takich jak chociażby ataki przeprowadzane
za pomocą pakietów oraz sfragmentowanych pakietów, można zablokować również
dziąki poprawnie skonfigurowanemu systemowi Linux. Nie ufaj zatem ślepo przed-
stawicielom takich firm poszukaj niezależnego doradcy.
5.7. Przepełnianie buforów
oraz niszczenie zawartości pamięci
Poziom zagrożenia:
Jeden z najbardziej powszechnie wykorzystywanych sposobów włamania sią do sys-
temu Linux polega na wykorzystaniu tzw. przepełnienia bufora. Niektórzy programiści
popełniają pomyłki i nie są w stanie ograniczyć ilości danych, które ktoś może wczytać
do pamiąci programu zarezerwowanej na bufor danych. Kolejne bajty bądą umieszczane
w kolejnych obszarach pamiąci, niszcząc tym samym ich wcześniejszą zawartość. Kiedy ten
obszar pamiąci zostanie odczytany ponownie, zostaną wykonane instrukcje umieszczone
Rozdział 5. f& Ataki powszechnie stosowane przez włamywaczy 315
w nim przez osobą, która dokonała przepełnienia bufora. Przypomina to wprowadzanie
poprawek do programu w najbardziej złośliwy i skomplikowany sposób.
Jedna ze stosowanych powszechnie (w jązyku C) praktyk programistycznych polega
na przydzieleniu wielu buforów w pamiąci na stosie, jak również wykorzystaniu stosu
do przechowywanie adresów powrotnych z procedury. Umożliwia to sprytnemu kra-
kerowi spowodowanie, że procedura zwróci to wszystko, czego on sobie zażyczy
zazwyczaj adres powrotu do własnego kodu umieszczonego w innym obszarze bufora.
Inaczej mówiąc, w celu dokonania włamania modyfikowane są zmienne na stosie.
Istnieje kilka sprytnych technik służących do odpierania ataków przeprowadzanych za po-
mocą przepełnienia bufora nawet w przypadku wadliwego kodu. Techniki te niektóre
bardzo proste zostaną opisane w podrozdziale zatytułowanym Ochrona przed przepeł-
nieniem bufora za pomocą Libsafe na stronie 397.
Atak przeprowadzany za pomocą przepełnienia bufora może być rozpoznany, jeżeli
system zarejestruje obecność długiego pola wejściowego, zawierającego wiele znaków,
które nie są drukowalne. Oto, co otrzymałem jako prezent noworoczny w roku 1999:
[prawie 460 znaków ]
Atak został zarejestrowany przez magazyn CERT numerze CA-1998-12; znajdziesz go
pod adresem:
http://www.cert.org/advisories/CA-1998-12.html
W przypadku programów CGI na włamanie oraz na próbą obejścia filtrowania zawarto-
ści wskazują długie łańcuchy wejściowe, zawierające dużą liczbą sekwencji typu .
Metody zapobiegania skutkom działania tego typu programów, dokonujących filtrowania
zawartości za pomocą sekwencji , zostały opisane w podrozdziale zatytułowanym
Odszyfrowywanie adresów URL na stronie 354.
5.8. Techniki fałszowania
Fałszowanie ma miejsce wtedy, gdy coś (ktoś) udaje coś innego. W przypadku intere-
sujących nas zagadnień może to dotyczyć osoby, systemu lub pakietu. Przedstawiona
w tym rozdziale dyskusja zostanie ograniczona jedynie do systemu generującego pa-
kiety sieciowe lub komunikaty, które wydają sią pochodzić z zupełnie innego miejsca.
Komunikat taki byłby zestawem pakietów, który składa sią z kompletnej porcji infor-
macji, tak jak wiadomość e-mail może składać sią z długiej sekwencji pakietów TCP.
316 Część I f& Zabezpieczanie systemu
5.8.1. Fałszowanie wiadomości pocztowych
Poziom zagrożenia:
Ze sfałszowaną wiadomością pocztową mamy do czynienia wtedy, gdy wydaje sią ona
pochodzić od zupełnie kogoś innego, od kogo w rzeczywistości pochodzi. Sfałszowanie
wiadomość pocztowej jest trywialne, nawet dla nieuprzywilejowanego użytkownika,
ponieważ to program pocztowy umieszcza w wiadomości nagłówek określający, od
kogo ona pochodzi, kto jest jej adresatem, adres zwrotny oraz datą. W celu dokonania
fałszerstwa należy jedynie połączyć sią z programem bezpośrednio, z pomi-
niąciem programów typu Mail czy Netscape. Po kilku godzinach eksperymentowania
można bądzie zupełnie ominąć program i połączyć sią bezpośrednio z por-
tem 25, przy użyciu protokołu TCP.
Nowsze wersje programu będą przekazywać użytkownikowi komunikat may be
forged , jeżeli różne elementy danych nie zgadzają się ze sobą. Wiele najnowszych konfigu-
racji programu określa rzeczywisty adres nadawcy oraz rzeczywistą nazwę serwera
(za pomocą odwrotnego rozwiązania adresów), tak że będziesz mógł określić, czy dana
wiadomość pocztowa została sfałszowana i umieścić ją na liście Realtime Blackhole List.
Więcej szczegółowych informacji na ten temat zostało przedstawionych w podrozdziale Fał-
szowanie adresu nadawcy wiadomości pocztowych na stronie 234.
W celu nawiązania połączenia z portem 25 oraz wysłania wiadomości może być wy-
korzystany nawet program , co zostało zademonstrowane w zaprezentowanym tu
przykładzie. Dokonano w nim sfałszowania wiadomości pocztowej do prezesa firmy
Pentacorp, udającej wiadomość wysłaną z Komisji Bezpieczeństwa oraz Wymiany,
zawierającą informacją, że przeciw firmie rozpocząte zostało postąpowanie w sprawie
przestąpstw handlowych.
Rozdział 5. f& Ataki powszechnie stosowane przez włamywaczy 317
W pierwszym komunikacie serwer przesyłający wiadomość poda swoją nazwą, lecz
w odróżnieniu od adresu IP bądzie mógł podać dowolną nazwą systemu. Istnieje
jednak pewna przydatna funkcja, pozwalająca świadomemu odbiorcy wyśledzić wia-
domość. Wiąkszość systemów pośredniczących bądzie dodawać do nagłówka wiado-
mości wiersze . Chociaż osoba fałszująca wiadomość bądzie mogła dodać
swoje własne wiersze , to kolejne poprawne systemy dodadzą swoje:
Zauważ że system pocztowy firmy Pentacorp dodał prawdziwy nagłówek, który po-
zwoli wyśledzić, że wiadomość dotarła z serwera rootkit.com, choć fałszerz zadał sobie
trud, aby dodać nagłówek postaci:
Serwery pocztowe przekazujące wiadomość dodadzą poprawną nazwą serwera sys-
temu, z którego ją otrzymały, a niektóre pokażą również adres IP w postaci liczbowej
(a to jest już znacznie trudniejsze do sfałszowania). Niektóre systemy pośredniczące
odmówią zaakceptowania wiadomości pocztowych z systemów, które nie podadzą
poprawnej nazwy w wierszu . Nieliczne dokonają nawet weryfikacji, czy odpo-
wiada ona numerowi IP systemu, z którym zostało nawiązane połączenie. Jedynym
sposobem obrony przed tego rodzaju atakiem oprócz sprawdzania danych poda-
nych w wierszu jest odpowiednia edukacja użytkowników oraz stosowanie
PGP. Należy postarać sią o to, by użytkownicy zrozumieli, że tego rodzaju fałszer-
stwo jest możliwe i nie należy bezgranicznie ufać wiadomościom pocztowym, chyba
że są one wysyłane przy użyciu PGP.
5.8.2. Atak realizowany przy użyciu adresu MAC
Poziom zagrożenia:
Skrót MAC pochodzi od określenia Media Access Control (ang. kontrola dostąpu do
medium) i oznacza rzeczywisty adres karty sieciowej. Czasem nazywa sią go także adre-
sem w sieci Ethernet. Jest on reprezentowany za pomocą 6 liczb w systemie szesnast-
kowym, na przykład: . Jest to rzeczywisty adres karty. Jeżeli nie zo-
stanie zmieniony przez program konfiguracyjny, bądzie to adres zapisany w pamiąci
PROM karty. Karta, a tym samym również komputer, otrzymuje dane przeznaczone
318 Część I f& Zabezpieczanie systemu
dla danego adresu IP komputera jedynie z tej przyczyny, że istnieje protokół pozwa-
lający na skojarzenie adresu IP z adresem MAC. Protokół ten umożliwia systemowi
wysyłającemu dane zadać pytanie: Pod jaki adres MAC powinienem wysłać dane adre-
sowane pod określony adres IP? . Nastąpnie, po uzyskaniu odpowiedzi, system adre-
suje pakiet wykorzystując adres MAC.
Ataku omawianego tu typu ma miejsce w przypadku, gdy kraker dysponuje kontrolą
nad systemem w sieci LAN i zmieni adres MAC (adres Ethernet) udostąpniany przez
kartą sieciową innym systemom. Jeżeli nastąpnie wyśle pakiety, bądą one pojawiać
sią tak, jakby pochodziły z systemu, pod który kraker sią podszywa. W takim przy-
padku pomaga odłączenie zaatakowanego systemu od sieci komputerowej, uzyskiwane
poprzez odłączenie jego karty Ethernet, wyłączenie zasilania lub uszkodzenie systemu.
Pamiątaj, że wiąkszość kart Ethernet umożliwia zmianą ich adresów MAC; aby ją prze-
prowadzić, można wykorzystać na przykład parametr polecenia .
W celu wykrycia ataków tego typu można użyć programu Arpwatch, omówionego w pod-
rozdziale Wykrywanie ataków ARP i MAC za pomocą programu Arpwatch na stro-
nie 715. Spójrz również do indeksu i odszukaj wpis MAC.
5.8.3. Zmiana pamięci podręcznej ARP
Poziom zagrożenia:
Na najniższym poziomie dwa komputery używające sieci Ethernet komunikują sią ze
sobą używając adresów MAC, zwanych niekiedy adresami Ethernet. Adres MAC musi
zostać przetłumaczony na adres IP, przedstawiany w postaci czterech liczb oddzielo-
nych kropkami.
Mechanizm ten polega na tym, że w przypadku gdy system X zamierza wysłać wiado-
mość do systemu o adresie IP , wysyła wiadomość rozgłoszeniową ARP
(ang. address resolution protocol, czyli protokół rozwiązywania adresów), pytając:
Który komputer ma przydzielony adres IP ?
System o takim adresie IP powinien odpowiedzieć: Ja mam podany adres, a mój adres
MAC to . System nadawcy wie w tym momencie, że pakiet danych
powinien zostać wysłany na adres MAC .
Wszystkie komputery umieszczone w sieci komputerowej powinny nasłuchiwać prze-
syłanych danych i umieszczać wszystkie odwzorowania w pamiąci podrącznej, tak
aby nie były zmuszone do wysyłania swoich własnych zapytań. Ominiącie tego za-
bezpieczenia i oszukanie innego systemu polega na użyciu polecenia
.
Jeśli system, który rzeczywiście ma przydzielony adres IP o numerze ,
nie jest włączony, to komputer, który sią pod niego podszywa, nabywa wszystkie jego
uprawnienia.
Rozdział 5. f& Ataki powszechnie stosowane przez włamywaczy 319
Sprawdz również hasło MAC w indeksie.
5.8.4. Zmiana pamięci podręcznej DNS
Poziom zagrożenia:
Istnieje szereg sposobów, przy użyciu których kraker mógłby sfałszować dane prze-
chowywane w pamiąci podrącznej DNS. Jeżeli niektóre z używanych serwerów znaj-
dują sią na zewnątrz domeny, możliwe jest wykorzystanie całkiem prostej techniki
omówionej przez D. J. Bernsteina (djb@cr.yp.to). Jeżeli włamywacz może wpuścić
do sieci komputerowej odpowiedzi systemu DNS, to znaczy, że istnieje również wiele
innych luk w zabezpieczeniach. Oczywiście jedno z rozwiązań tego problemu polega
na wymuszeniu, aby wszystkie serwery w sieci wewnątrznej używały wewnątrznego
serwera DNS, a nastąpnie zablokowaniu na serwerze zapory sieciowej wszystkich
odpowiedzi przekazywanych przy użyciu portów 53 protokołów UDP oraz TCP po-
chodzących spoza sieci przesyłanych do komputerów pracujących w sieci wewnątrz-
nej. Wiąkszość systemów powinna zablokować w systemie zapory sieciowej wszyst-
kie dane przesyłane z i do sieci internet przy użyciu portu TCP o numerze 53.
Zastosowanie tej poprawki nie jest konieczne, lecz zablokowanie wspomnianych żą-
dań zapobiegnie zmianie danych w pamiąci podrącznej DNS przy użyciu fałszywych
żądań transferów strefy. (Jeżeli co najmniej jeden spośród twoich serwerów DNS jest
udostąpniany przez twoją firmą ISP, bądziesz zmuszony współpracować z jej przed-
stawicielami w celu rozwiązania tego problemu.) Bernstain udostąpnia swój własny
program zastąpujący ; nazwał go . Możesz pobrać go z witryny umiesz-
czonej pod adresem:
http://cr.yp.to/dnscache.html
Pewne informacje na temat blokowania niepożądanych transferów stref są umiesz-
czone na stronie:
http://www.faqs.org/rfcs/rfc2065.html
5.9. Atak typu Man-in-the-Middle
Poziom zagrożenia:
Atak typu Man-in-the-Middle ma miejsce w sytuacji, gdy wychodzące z twojej sieci
pakiety nie trafiają do zamierzonego systemu docelowego, lecz raczej do kogoś, kto
funkcjonuje jako pośrednik w komunikacji pomiądzy systemem twoim i odbiorcy,
udając jednocześnie przed tobą system odbiorcy, a przed odbiorcą twój. Ten człowiek
znajdujący sią pośrodku (ang. Man in the Middle) może w takim przypadku kierować
320 Część I f& Zabezpieczanie systemu
do odbiorcy wiadomości inne niż te, które wysłałeś. Również odpowiedzi od odbiorcy
docierają do człowieka znajdującego sią pośrodku, który zmienia komunikat i od-
syła go do ciebie. Na przedstawionym nieco dalej rysunku 5.4 sprzedawca oraz klient
uzgadniają kontrakt biznesowy dotyczący dużej dostawy towarów. Określają adres
dorączenia towaru, warunki płatności oraz konto bankowe sprzedawcy, na które ma
zostać przelana zapłata za towar.
Zarówno dla sprzedawcy, jak i dla klienta wszystko wydaje sią być zwykłą, prostą
procedurą. Przeanalizuj rysunek 5.4 i postaraj sią określić sposób, w jaki zarówno
sprzedawca, jak i klient mógłby odkryć oszustwo.
Rysunek 5.4(a). Atak typu Man-in-the-middle
Rozdział 5. f& Ataki powszechnie stosowane przez włamywaczy 321
Rysunek 5.4(b). Atak typu Man-in-the-middle
Jak widać, ani klient, ani sprzedawca nie ma żadnego pojącia, że rzeczywistym roz-
mówcą była niewłaściwa osoba. Ogólnie mówiąc metody unikniącia takiego proble-
mu wymagają bezpiecznego medium komunikacyjnego (takiego jak poczta polecona
lub SSH) lub pewnej weryfikacji informacji, potwierdzającej, że została ona w sposób
bezpieczny wymieniona pomiądzy dwiema stronami. Taka weryfikacja mogłaby po-
legać na użyciu sekretnego algorytmu tworzenia skrótu wiadomości (zobacz podroz-
dział zatytułowany Wykorzystanie GPG do łatwego szyfrowania plików na stronie
505) lub innej techniki kryptograficznej. Ryzyko przeprowadzenia ataku Man-in-the-
middle jest przyczyną, dla której akcentują w tej książce konieczność zachowania
ograniczonego zaufania do wiadomości pocztowych. Dlatego również mamy akty nota-
rialne oraz kontrakty pomiądzy firmami.
Właśnie z tego powodu wynikało również znaczenie piecząci królewskiej. W rzeczy-
wistości definicja piecząci mówi, że jest nią znak określający autentyczność doku-
mentu. Tego rodzaju atak może być bardzo trudny do unikniącia, ponieważ najpierw,
zanim nawiążesz pewny i bezpieczny kontakt z odbiorcą, musisz wymienić z nim
pewne informacje w sposób mniej godny zaufania. Techniki PGP (GPG), SSH oraz
VPN zapobiegną temu atakowi jedynie wtedy, gdy początkowe klucze zostaną wy-
mienione w sposób bezpieczny. Narządzia tego typu zostaną omówione w podroz-
działach Pretty Good Privacy (PGP) na stronie 504, Wykorzystanie GPG do łatwego
322 Część I f& Zabezpieczanie systemu
szyfrowania plików na stronie 505, Zabezpieczanie sesji użytkownika za pomocą
SSH na stronie 481 oraz VPN z wykorzystaniem FreeS/WAN IPSec na stronie
502. Unikniącie narażenia systemów końcowych oznacza również zabezpieczenie
komunikacji pomiądzy każdym z systemów a klawiaturą użytkownika i ekranem. Za-
zwyczaj oznacza to wiąc bezpieczną konfiguracją systemu X, co zostało omówione
w podrozdziale X oznacza luką w zabezpieczeniach na stronie 160.
Bardzo powszechne jest umieszczanie klucza publicznego PGP na domowej stronie
WWW, a niektóre osoby dołączają go do wiadomości e-mail. Nie są to dobre rozwią-
zania. Potwierdzenie klucza publicznego przy użyciu faksu lub telefonu powinno wy-
starczyć w przypadku średniego stopnia zabezpieczenia aplikacji.
W przypadku aplikacji o wysokich zabezpieczeniach sugerowana jest wymiana kluczy publicz-
nych PGP za pomocą poczty poleconej lub zaufanej firmy kurierskiej. Również rząd Stanów
Zjednoczonych traktuje przesyłki polecone jako wystarczająco pewne medium do wysyłania
tajnych dokumentów lub wiadomości poufnych, lecz muszą one zostać podwójnie opako-
wane. Taki wymóg wprowadzono by uniemożliwić sytuację, gdy ktoś przypadkowo otworzy
zewnętrzną kopertę i zobaczy w niej poufne informacje.
Wyszukiwarka
Podobne podstrony:
2004 09?zpieczeństwo Linuksa [Bezpieczenstwo]Bezpieczenstwo sieci w Linuksie Wykrywanie atakow i obrona przed nimi za pomoca iptables, psad i fwsBezpieceństwo militarne PolskiAdministracja bezpieczenstwa stDobór bezpieczników topikowychpodrecznik 4138 142 linuks dla poczatkujacychZagrożenia bezpieczeństa informacjiwięcej podobnych podstron