Bezpieczenstwo w Linuksie Podrecznik administratora blinpa

background image

Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63

e-mail: helion@helion.pl

PRZYK£ADOWY ROZDZIA£

PRZYK£ADOWY ROZDZIA£

IDZ DO

IDZ DO

ZAMÓW DRUKOWANY KATALOG

ZAMÓW DRUKOWANY KATALOG

KATALOG KSI¥¯EK

KATALOG KSI¥¯EK

TWÓJ KOSZYK

TWÓJ KOSZYK

CENNIK I INFORMACJE

CENNIK I INFORMACJE

ZAMÓW INFORMACJE

O NOWOCIACH

ZAMÓW INFORMACJE

O NOWOCIACH

ZAMÓW CENNIK

ZAMÓW CENNIK

CZYTELNIA

CZYTELNIA

FRAGMENTY KSI¥¯EK ONLINE

FRAGMENTY KSI¥¯EK ONLINE

SPIS TRECI

SPIS TRECI

DODAJ DO KOSZYKA

DODAJ DO KOSZYKA

KATALOG ONLINE

KATALOG ONLINE

Bezpieczeñstwo w Linuksie.
Podrêcznik administratora

Twój Linux zostanie zaatakowany — mo¿esz byæ tego pewien. Mo¿e to nast¹piæ
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.
Dziêki niej uzyskasz wszystkie informacje potrzebne do skutecznej obrony.

W ksi¹¿ce omówiono:

• Nowe funkcje IP tables
• Nowe techniki oraz oprogramowanie s³u¿¹ce do wykrywania
oraz blokowania ataków ARP oraz ataków na prze³¹czniki
• Usprawnienia zapór sieciowych opartych na systemie Linux
filtruj¹cych zawartoæ pakietów
• Opis bezpieczeñstwa us³ugi Samba dla klientów systemu Windows.
• Bezpieczeñstwo w sieciach bezprzewodowych (standard 802.11b)
• 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.

O autorze:
Bob Toxen ma ponad 28 lat dowiadczenia w zakresie systemów UNIX (Linux).
Jest jednym ze 162 twórców systemu Berkeley UNIX. O zabezpieczeniach dowiedzia³ siê
na uniwersytecie w Berkeley, gdzie z³ama³ kilka oryginalnych systemów UNIX. Obecnie
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.

Autor: Bob Toxen
T³umaczenie: Marcin Jêdrysiak (rozdz. 6-11), Marek Pêtlicki
(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
Tytu³ orygina³u:

Real World Linux Security

Format: B5, stron: 888

background image

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 źle 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

background image

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

background image

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 źró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

background image

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

background image

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ę, weź 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

background image

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

background image

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

background image

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

background image

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

background image

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

background image

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

background image

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

background image

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

background image

298

Część I

♦ 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

background image

Rozdział 5.

♦ 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.

background image

300

Część I

♦ 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 źró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 źró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 źró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 źró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).

background image

Rozdział 5.

♦ 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 źró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 źle 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 źró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

background image

302

Część I

♦ 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 źró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

background image

Rozdział 5.

♦ Ataki powszechnie stosowane przez włamywaczy

303

zamierza używać do komunikacji UDP. Taka sytuacja może wystąpić w przypadku
stosowania NFS

2

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 jedynie

3

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 źró-
dłowego pakietu, a właśnie ono zostało sfałszowane.

Oczywiście serwer (NFS lub inny) odeśle odpowiedź do komputera o adresie źró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

odpowiedź 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 odpowiedź



. 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 źle 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.

background image

304

Część I

♦ 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 źró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.

background image

Rozdział 5.

♦ 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 źró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 źródłowego, odpowiedź

#$%'(

serwera, która będzie zawierać cenny początkowy numer sekwencji, wysyłana jest pod
fałszywy adres źró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
znaleźć 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

background image

306

Część I

♦ 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 źró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.

background image

Rozdział 5.

♦ 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

background image

308

Część I

♦ 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 źró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 źró-
dłowe, co praktycznie uniemożliwi wyśledzenie źró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ę.

background image

Rozdział 5.

♦ 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 źró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/.
Łą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, odpowiedź na polecenie
echo zostałaby wysłana pod adres

&. 0 0 0

.

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óźniej do drugiego itd. Jednak

background image

310

Część I

♦ 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 źró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 odpowiedź 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 50×100, 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 źró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óźniejszej, 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 źró-
dłowy, jaki powinien pochodzić jedynie z systemów twojej firmy i vice versa (jest to

background image

Rozdział 5.

♦ 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 źró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 sprawdź, 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:

 )*+  "    , - )- - 

background image

312

Część I

♦ 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 źró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 źró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 odnaleźć 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 źró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 źró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 źró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ą

background image

Rozdział 5.

♦ 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ą znaleźć wiele przydatnych
informacji na jej stronie internetowej, poświęconej zwiększaniu zabezpieczeń; można
ją znaleźć 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.

background image

314

Część I

♦ 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

background image

Rozdział 5.

♦ 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:

.*//01,*  230*4% ) &  "#56   7/89*379*039,:

.*//01,*  "      )

.*//01,*  230*4!   7/89*379*039,: 

;;;;;;;;;;

[prawie 460 znaków

@2

]

.*//01,* ;<=;>;<=;>;<=;>;<=;>;<=;>;<=;>999

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

12

.

Metody zapobiegania skutkom działania tego typu programów, dokonujących filtrowania
zawartości za pomocą sekwencji

12

, 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.

background image

316

Część I

♦ 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.

  9  9 70

><?@ 9  9

A'?5B$C 9  9 +

(DDB C  9 +

E'D'

5$C 9  9 A@ **73033:7///

(  )$C 9  9

(  =$F" 9  9 =:9:91:9:91F G''*1731H

 C  9 IAJ**@ 7///73,3,KL/0//=>6DF

(  " 9  9 =:9:91:9:91F G''*1731H

  9 IAJ**@ 7///73,30:L/0//=>6DF

5$C 9  9 =. MF

A B7///*/*7/,,39G''*1731C 9  9 +

6  N$ $ $ & N $)$" )

D C  9 

E AJ**@ 7///73,3,KL/0//=>6DF

6&$" (

 " $OJP& $  & $ & &N  N$ 

&&N$ $ P $ & $ Q&Q " )& R$ " &Q " ))

background image

Rozdział 5.

♦ Ataki powszechnie stosowane przez włamywaczy

317

$$N &9

# & $    Q N$R &J $   "&

$ $"S  $Q  $S 9

T$"&  & 

.9M

6  &"  

://6>/33/

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

3 4

. Chociaż osoba fałszująca wiadomość będzie mogła dodać

swoje własne wiersze

3 4

, to kolejne poprawne systemy dodadzą swoje:

(  " 9  9 =:9:91:9:91F G''*1731H

  9 IAJ**@ 7///73,30:L/0//=>6DF

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:

(  =$F" 9  9 =:9:91:9:91F G''*1731H

 C  9 IAJ**@ 7///73,3,KL/0//=>6DF

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

-5)

. 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

-5)

— 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:

06"77"08"9&".":8

. 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

background image

318

Część I

♦ 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

0. &6. 6 09&

, 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

0. &6. 6 09&

?”

System o takim adresie IP powinien odpowiedzieć: „Ja mam podany adres, a mój adres
MAC to

.."6;";0"&9"&:"*;

”. System nadawcy wie w tym momencie, że pakiet danych

powinien zostać wysłany na adres MAC

.."6;";0"&9"&:"*;

.

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

  .

&:; &80 &69 &9

.

Jeśli system, który rzeczywiście ma przydzielony adres IP o numerze

&:; &80 69 &9

,

nie jest włączony, to komputer, który się pod niego podszywa, nabywa wszystkie jego
uprawnienia.

background image

Rozdział 5.

♦ Ataki powszechnie stosowane przez włamywaczy

319

Sprawdź 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ć

background image

320

Część I

♦ 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

background image

Rozdział 5.

♦ 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

background image

322

Część I

♦ 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:
ataki powszechnie stosowane przez włamywaczy bezpieczeństwo w linuksie podręcznik administratora CI
bezpieczenstwo w linuksie podrecznik administratora 3FD5EEDITO6LTOBR2YD6R32TWJTLLEN5G5SQLWA
Oracle8i Podrecznik administratora baz danych or8pab
acad podręcznik administratora
Konstytucyjne organy pa stwa w sprawach bezpiecze stwa, Wydziały, Administracja
BEZPIECZEŃSTWO I PORZĄDEK PUBLICZNY, administracja
Oracle9i Podrecznik administratora baz danych or9pab
4 stawianie zada+ä, 04 - Bezpieczeństwo Narodowe, Podrecznik oficera sztabu
helion oracle9i podrecznik administratora baz danych 2ZJHHUMVL42KKYZORGMULUNWLKLV7KLYG7FVLGI
zagadnienia z k.p.a, Bezpieczeństwo 3, sem I, Postępowanie administracyjne
ZAKO+âCZENIE, 04 - Bezpieczeństwo Narodowe, Podrecznik oficera sztabu
Oracle Database 11g Podręcznik administratora
2004 09 Bezpieczeństwo Linuksa [Bezpieczenstwo]
oracle9i podręcznik administratora baz danych UEHTWT7UH6WK4WAT3ICGZ6IY4JK3KDVMTLUDNPQ
Sylabus Administracja, Bezpieczeństwo Narodowe, Rok I, Administracja
Administracja Publiczna skrypt, Podręczniki, Administracja Publiczna
Za+é¦ůcznik 8, 04 - Bezpieczeństwo Narodowe, Podrecznik oficera sztabu
admin czccionka 8, Bezpieczeństwo 3, sem I, Postępowanie administracyjne

więcej podobnych podstron