informatyka 125 sposobow na bezpieczenstwo sieci wydanie ii andrew lockhart ebook

background image

Wydawnictwo Helion
ul. Koœciuszki 1c
44-100 Gliwice
tel. 032 230 98 63

e-mail: helion@helion.pl

125 sposobów na
bezpieczeñstwo sieci.
Wydanie II

Autor: Andrew Lockhart
T³umaczenie: Leszek Sagalara na podstawie

100 sposobów

na bezpieczeñstwo sieci

w t³umaczeniu Witolda Zio³o

ISBN: 978-83-246-0986-4
Tytu³ orygina³u:

Network Security Hacks: Tips & Tools for

Protecting Your Privacy

Format: B5, stron: 440

Praktyczny przewodnik po technikach zabezpieczania sieci komputerowych

Jak sprawnie zabezpieczyæ system?

Jak zapewniæ sobie prywatnoœæ w internecie?

Jak skutecznie walczyæ z sieciowymi w³amywaczami?

W naszych domach montujemy solidne zamki i drzwi, chronimy samochody
wymyœlnymi alarmami, w firmach zak³adamy systemy monitoringu, jednak nadal wiele
osób nie zwraca wystarczaj¹cej uwagi na bezpieczeñstwo komputerów w sieciach
domowych oraz korporacyjnych. Luki w systemach informatycznych powoduj¹ ka¿dego
roku straty rzêdu miliardów dolarów, a przecie¿ dostêpnych jest wiele narzêdzi
i technik, które pozwalaj¹ skutecznie zabezpieczyæ komputery przed atakami
crackerów.

125 sposobów na bezpieczeñstwo w sieci. Wydanie II

to zaktualizowany

i rozbudowany zbiór praktycznych porad dotycz¹cych zabezpieczania systemów
informatycznych przed atakami. Dziêki wskazówkom przygotowanym przez cenionych
profesjonalistów dowiesz siê, jak stosowaæ najnowsze narzêdzia systemowe
i niezale¿ne programy do zabezpieczania systemów i danych, ochrony w³asnej
prywatnoœci w sieci czy bezpiecznego ³¹czenia zdalnych maszyn. Nauczysz siê tak¿e
zastawiaæ pu³apki na sieciowych napastników, wykrywaæ ich obecnoœæ w sieci i szybko
przywracaæ normalne funkcjonowanie systemu po ewentualnym ataku.

Zabezpieczanie systemów Windows i uniksowych

Zapewnianie prywatnoœci w internecie

Konfigurowanie i testowanie zapór sieciowych

Bezpieczne korzystanie z us³ug

Zabezpieczanie sieci przewodowych i bezprzewodowych

Monitorowanie dzia³ania sieci

Stosowanie silnego szyfrowania i uwierzytelniania

Wykrywanie w³amañ i przywracanie dzia³ania sieci

Stosuj sprawdzone sposoby zapewniania bezpieczeñstwa w sieci

background image

Spis tre

ğci _

3

Spis tre

ğci

Twórcy ksi

Ćīki ................................................................................................................................7

Wst

ċp .............................................................................................................................................11

Rozdzia

â 1. Bezpieczeĕstwo systemu Unix ................................................................................17

1. Zabezpieczenie punktów montowania ........................................................................ 17

2. Wynajdywanie programów z ustawionymi bitami SUID i SGID ........................... 19

3. Wynajdywanie udostöpnionych katalogów ................................................................ 20

4. Tworzenie elastycznych hierarchii uprawnieþ

za pomocñ list ACL standardu POSIX ....................................................................... 21

5. Zabezpieczenie dzienników zdarzeþ przed modyfikacjñ ......................................... 24

6. Podziaä zadaþ administracyjnych ................................................................................. 26

7. Automatyczna kryptograficzna weryfikacja sygnatury ............................................ 28

8. Odnalezienie nasäuchujñcych usäug .............................................................................. 30

9. Zapobieganie wiñzaniu siö usäug z interfejsami ......................................................... 33

10. Ograniczenie usäug do Ĉrodowiska sandbox .............................................................. 34

11. UĔycie serwera proftp z MySQL jako Ēródäem danych uwierzytelniajñcych ....... 38

12. Zabezpieczenie siö przed atakami rozbicia stosu ....................................................... 41

13. grsecurity — zabezpieczenie na poziomie jñdra ........................................................ 43

14. Ograniczanie aplikacji za pomocñ äatki grsecurity ..................................................... 48

15. Ograniczanie wywoäaþ systemowych za pomocñ mechanizmu systrace .............. 50

16. Automatyczne tworzenie zasad mechanizmu systrace ............................................. 54

17. Kontrola logowania za pomocñ moduäów PAM ........................................................ 56

18. Ograniczenie uĔytkownikom usäug przesyäania plików do SCP i SFTP ............... 60

19. Uwierzytelnianie za pomocñ haseä jednorazowych ................................................... 63

20. ćrodowiska ograniczonych powäok .............................................................................. 66

21. Ograniczenie uĔytkownikom i grupom uĔycia zasobów ......................................... 67

22. Automatyczne uaktualnianie systemu ......................................................................... 69

Rozdzia

â 2. Bezpieczeĕstwo systemu Windows ........................................................................71

23. Kontrola zainstalowanych poprawek ........................................................................... 72

24. Konfiguracja aktualizacji automatycznych

za pomocñ przystawki Zasady grupy ........................................................................ 76

background image

4

_ Spis treğci

25. Lista otwartych plików oraz procesów, które ich uĔywajñ ...................................... 79

26. Lista dziaäajñcych usäug i otwartych portów .............................................................. 81

27. Uruchomienie inspekcji .................................................................................................. 82

28. Zdobywanie informacji o programach uruchamianych automatycznie ................ 83

29. Zabezpieczenie dzienników zdarzeþ ........................................................................... 85

30. Zmiana maksymalnej wielkoĈci dzienników zdarzeþ .............................................. 85

31. Archiwizacja i czyszczenie dzienników zdarzeþ ....................................................... 87

32. Wyäñczenie udziaäów domyĈlnych ............................................................................... 89

33. Zaszyfrowanie folderu Temp ........................................................................................ 91

34. Tworzenie kopii zapasowej klucza EFS ....................................................................... 92

35. Czyszczenie pliku stronicowania podcza zamykania systemu ............................... 98

36. Wyszukiwanie haseä, których waĔnoĈè nigdy nie wygasa ..................................... 100

Rozdzia

â 3. Ochrona prywatnoğci i anonimowoğý ..................................................................103

37. Ochrona przed analizñ ruchu ...................................................................................... 103

38. Tunelowanie SSH za pomocñ programu Tor ............................................................ 107

39. Bezproblemowe szyfrowanie plików ......................................................................... 108

40. Ochrona przed wyäudzaniem danych ........................................................................ 112

41. Mniej haseä na stronach WWW ................................................................................... 116

42. Szyfrowanie poczty w programie Thunderbird ....................................................... 118

43. Szyfrowanie poczty w systemie Mac OS X ............................................................... 123

Rozdzia

â 4. Zapory sieciowe ......................................................................................................127

44. Zapora sieciowa Netfilter ............................................................................................. 127

45. Zapora sieciowa PacketFilter systemu OpenBSD .................................................... 131

46. Ochrona komputera za pomocñ Zapory systemu Windows ................................. 138

47. Zamykanie otwartych portów i blokowanie protokoäów ....................................... 146

48. Zastöpujemy Zaporö systemu Windows ................................................................... 148

49. Tworzenie bramy uwierzytelniajñcej ......................................................................... 155

50. Sieè z ograniczeniem na wyjĈciu ................................................................................. 158

51. Testowanie zapory sieciowej ....................................................................................... 159

52. Filtrowanie adresów MAC za pomocñ zapory sieciowej Netfilter ....................... 162

53. Blokowanie Tora ............................................................................................................ 163

Rozdzia

â 5. Szyfrowanie i zabezpieczanie usâug ......................................................................167

54. Szyfrowanie usäug IMAP i POP za pomocñ SSL ...................................................... 167

55. Konfiguracja serwera SMTP Sendmail wykorzystujñcego szyfrowanie TLS ...... 170

56. Konfiguracja serwera SMTP Qmail wykorzystujñcego szyfrowanie TLS ............ 172

57. Instalacja serwera Apache z rozszerzeniem SSL i z trybem suEXEC ................... 173

58. Zabezpieczenie serwera BIND .................................................................................... 178

background image

Spis tre

ğci _

5

59. Konfiguracja prostego i bezpiecznego serwera DNS ............................................... 181

60. Zabezpieczenie bazy danych MySQL ........................................................................ 184

61. Bezpieczne udostöpnianie plików w systemie Unix ................................................ 187

Rozdzia

â 6. Bezpieczeĕstwo sieci ..............................................................................................191

62. Wykrywanie faäszowania odpowiedzi ARP ............................................................. 191

63. Tworzenie statycznych tablic ARP ............................................................................. 194

64. Ochrona SSH przed atakami typu brute-force ......................................................... 196

65. Wprowadzanie w bäñd programów identyfikujñcych systemy operacyjne ......... 198

66. Inwentaryzacja sieci ....................................................................................................... 201

67. Wyszukiwanie säabych punktów sieci ....................................................................... 204

68. Synchronizacja zegarów serwerów ............................................................................. 213

69. Tworzenie wäasnego oĈrodka certyfikacyjnego ........................................................ 215

70. Rozpowszechnienie certyfikatu CA wĈród klientów ............................................... 218

71. Tworzenie i przywracanie kopii zapasowej oĈrodka certyfikacji

za pomocñ Usäug certyfikatów .................................................................................. 219

72. Wykrywanie programów nasäuchujñcych w sieci Ethernet ................................... 226

73. Pomoc w Ĉledzeniu napastników ................................................................................ 232

74. Wykrywanie wirusów w serwerach uniksowych .................................................... 234

75. ćledzenie luk w zabezpieczeniach .............................................................................. 238

Rozdzia

â 7. Bezpieczeĕstwo sieci bezprzewodowych .............................................................241

76. Zmiana routera w zawansowanñ platformö bezpieczeþstwa ................................ 241

77. Szczegóäowe uwierzytelnianie w sieci bezprzewodowej ........................................ 245

78. Portal przechwytujñcy ................................................................................................... 248

Rozdzia

â 8. Rejestracja zdarzeĕ .................................................................................................255

79. Centralny serwer rejestracji zdarzeþ (syslog) ........................................................... 256

80. Konfigurowanie rejestracji zdarzeþ ............................................................................ 257

81. Wäñczenie systemu Windows w infrastrukturö syslog ........................................... 259

82. Automatyczne streszczanie dzienników zdarzeþ .................................................... 266

83. Automatyczne monitorowanie dzienników zdarzeþ .............................................. 268

84. Zbieranie informacji o zdarzeniach ze zdalnych oĈrodków ................................... 271

85. Rejestracja dziaäaþ uĔytkowników za pomocñ systemu rozliczeþ ........................ 276

86. Centralne monitorowanie stanu bezpieczeþstwa serwerów .................................. 278

Rozdzia

â 9. Monitorowanie i wyznaczanie trendów .................................................................287

87. Monitorowanie dostöpnoĈci usäug .............................................................................. 288

88. KreĈlenie trendów .......................................................................................................... 295

89. ntop — statystyki sieci w czasie rzeczywistym ........................................................ 298

90. Gromadzenie statystyk za pomocñ reguä zapory sieciowej .................................... 300

91. Zdalne nasäuchiwanie ruchu sieciowego ................................................................... 301

background image

6

_ Spis treğci

Rozdzia

â 10. Bezpieczne tunele .................................................................................................305

92. Konfiguracja protokoäu IPsec w systemie Linux ...................................................... 305

93. Konfiguracja protokoäu IPsec w systemie FreeBSD ................................................. 309

94. Konfiguracja protokoäu IPsec w systemie OpenBSD ............................................... 313

95. Szyfrowanie oportunistyczne za pomocñ Openswan ............................................. 317

96. Przekazywanie i szyfrowanie ruchu za pomocñ protokoäu SSH .......................... 319

97. Szybkie logowanie za pomocñ kluczy klienta SSH .................................................. 321

98. Proxy Squid w poäñczeniu SSH ................................................................................... 323

99. UĔycie SSH jako proxy SOCKS 4 ................................................................................ 325

100. Szyfrowanie i tunelowanie ruchu za pomocñ SSL ................................................... 328

101. Tunelowanie poäñczeþ wewnñtrz HTTP ................................................................... 330

102. Tworzenie tunelu za pomocñ VTun i SSH ................................................................ 332

103. Generator plików vtund.conf ...................................................................................... 337

104. Tworzenie sieci VPN äñczñcych róĔne platformy systemowe ................................ 341

105. Tunelowanie PPP ........................................................................................................... 347

Rozdzia

â 11. Wykrywanie wâamaĕ do sieci ...............................................................................349

106. Wykrywanie wäamaþ za pomocñ programu Snort .................................................. 350

107. ćledzenie alarmów ........................................................................................................ 354

108. Monitorowanie w czasie rzeczywistym ..................................................................... 357

109. Zarzñdzanie sieciñ sensorów ....................................................................................... 363

110. Pisanie wäasnych reguä programu Snort ................................................................... 370

111. Zapobieganie wäamaniom za pomocñ programu Snort_inline ............................. 376

112. Sterowanie zaporñ sieciowñ za pomocñ programu SnortSam ............................... 379

113. Wykrywanie nietypowego zachowania ..................................................................... 383

114. Automatyczne uaktualnianie reguä programu Snort .............................................. 384

115. Budowa sieci niewidzialnych sensorów .................................................................... 386

116. UĔycie programu Snort w wysoko wydajnych Ĉrodowiskach sieciowych .......... 387

117. Wykrywanie i zapobieganie atakom na aplikacje WWW ...................................... 391

118. Wykrywanie wirusów w ruchu sieciowym .............................................................. 395

119. Symulacja sieci niezabezpieczonych komputerów .................................................. 399

120. Rejestracja aktywnoĈci komputera-puäapki .............................................................. 405

Rozdzia

â 12. Powrót do dziaâania i reakcja ...............................................................................411

121. Tworzenie obrazu systemu plików ............................................................................ 411

122. Weryfikacja integralnoĈci plików ............................................................................... 413

123. Wykrywanie zmodyfikowanych plików za pomocñ pakietów RPM ................... 418

124. Poszukiwanie zainstalowanych zestawów rootkit .................................................. 420

125. Poszukiwanie wäaĈciciela sieci .................................................................................... 422

Skorowidz .................................................................................................................................. 425

background image

Zabezpieczenie punktów montowania

SPOSÓB

1.

Bezpiecze

ĕstwo systemu Unix _

17

R O Z D Z I A

á P I E R W S Z Y

Bezpiecze

ĕstwo

systemu Unix

Sposoby 1. – 22.

Budowa sieci polega na äñczeniu komputerów, co oznacza, Ĕe sieè komputerowa nie jest
bardziej bezpieczna niĔ komputery, z których siö skäada. Jeden niezabezpieczony kom-
puter stanowi zagroĔenie dla caäej sieci, gdyĔ gdy tylko dostanie siö w niepowoäane röce,
moĔe zostaè wykorzystany jako narzödzie rekonesansu lub platforma prowadzenia ata-
ku. Gdy w którymĈ z serwerów dziaäajñ äatwe do zawäadniöcia usäugi, zapory sieciowe
(ang. firewall), systemy wykrywania wäamaþ i inne Ĉrodki bezpieczeþstwa stajñ siö bez-
radne. Przed zabezpieczeniem samej sieci, naleĔy najpierw w dostatecznym stopniu za-
bezpieczyè komputery tej sieci.

W rozdziale przedstawiono wiele sposobów zmniejszenia ryzyka zwiñzanego z dziaäa-
niem usäug systemu uniksowego. Mimo Ĕe kaĔde zaprezentowanie tu rozwiñzanie sta-
nowi zamkniötñ caäoĈè, warto zapoznaè siö z resztñ rozdziaäu. Stosujñc Ĉrodki obronne
tylko jednego rodzaju, ryzykuje siö, Ĕe wszelkie starania pójdñ na marne, gdy tylko wäa-
mywacz odkryje jak je obejĈè. Skarbiec na Wawelu nie jest chroniony jedynie drzwiami
z käódkñ, podobnie Ĕadne pojedyncze rozwiñzanie nie moĔe skutecznie zabezpieczyè Ĕad-
nego serwera, a liczba potrzebnych Ĉrodków bezpieczeþstwa roĈnie wraz z wartoĈciñ chro-
nionych zasobów.

Zapewnienie bezpieczeþstwa jest staäym procesem, który musi trwaè i musi byè doglñdany.
Nie ma, poza odäñczeniem komputera od sieci, Ĕadnego innego pojedynczego sposobu jego
zabezpieczenia. Pamiötajñc o tym, moĔna przystñpiè do budowy bezpiecznego serwera za-
spokajajñcego okreĈlone potrzeby.

S P O S Ó B

1.

Zabezpieczenie punktów montowania

Za pomoc

ą opcji montowania moĪna ograniczyü dziaáania wáamywacza.

Z Uniksa korzysta siö przewaĔnie przez jego system plików. Dlatego warto ograniczyè to,
co z plikami moĔe zrobiè wäamywacz po przedostaniu siö do systemu. Jednym ze sposobów
na to jest uĔycie ograniczajñcych opcji montowania.

background image

SPOSÓB

1.

Zabezpieczenie punktów montowania

18

_ Bezpieczeĕstwo systemu Unix

Opcja montowania decyduje o sposobie dostöpu do systemu plików. Przekazywana jest do
jñdra systemu operacyjnego w czasie uruchamiania systemu plików. Opcje montowania
moĔna wykorzystaè, by uniemoĔliwiè traktowanie plików jako urzñdzeþ, wykonywanie
programów binarnych oraz wykorzystanie bitu SUID. W tym celu uĔywa siö parametrów
odpowiednio nodev, noexec i nosuid. System plików moĔna równieĔ za pomocñ opcji
ro

zamontowaè w trybie „tylko do odczytu”.

Parametry te podaje siö wierszu poleceþ, wydajñc polecenie mount z opcjñ -o. Przezna-
czywszy na przykäad dla katalogu /tmp oddzielnñ partycjö, bödñcñ trzeciñ partycjñ pierw-
szego dysku IDE systemu, moĔna zamontowaè jñ za pomocñ parametrów nodev, noexec
i nosuid za pomocñ poniĔszego polecenia:

#

mount -o nodev,noexec,nosuid /dev/hda3 /tmp

Poleceniu temu odpowiada zapis w pliku /etc/fstab:

/dev/hda3 /tmp ext3 defaults,nodev,noexec,nosuid 1 2

Po starannym przeanalizowaniu swoich potrzeb i podzieleniu dysku na kilka systemów
plików moĔna za pomocñ opcji montowania zwiökszyè trudnoĈci, jakie napotka wäamy-
wacz, próbujñc gäöbiej wniknñè do systemu. Najlepiej to zrobiè, dzielñc drzewo katalogów
na obszary, w których do poprawnego dziaäania systemu musi istnieè moĔliwoĈè zapi-
sywania oraz na takie, w których taka moĔliwoĈè nie jest konieczna. Opcjö „tylko do od-
czytu” moĔna zastosowaè we wszystkich czöĈciach systemu plików, których zawartoĈè nie
zmienia siö czösto. Dobrym kandydatem do uĔycia tej opcji moĔe byè na przykäad katalog
/usr, ale zaleĔy to od czöstotliwoĈci uaktualniania oprogramowania systemowego.

OczywiĈcie wiele katalogów (na przykäad /home) musi byè montowanych w trybie „do
odczytu i do zapisu”. Mimo to jest bardzo maäo prawdopodobne, by uĔytkownicy trady-
cyjnego systemu wielodostöpnego musieli uruchamiaè w swoich katalogach macierzystych
programy binarne z bitem SUID, lub by musieli w nich tworzyè pliki urzñdzeþ. Dlatego
katalogi macierzyste uĔytkowników mo

Ĕna przechowywaè w oddzielnym systemie plików

zamontowanym z opcjami nodev i nosuid. Dodatkowo, jeĔeli dojdzie siö do wniosku, Ĕe
uĔytkownicy nie muszñ uruchamiaè programów przechowywanych w swych katalogach
macierzystych, moĔna teĔ uĔyè opcji montowania noexec. Podobna sytuacja ma miejsce
w przypadku katalogów /tmp i /var, w których prawdopodobieþstwo, by jakiĈ proces miaä
uzasadnione powody wykonywania programów binarnych z bitem SUID, lub bez niego,
albo korzystaä z plików urzñdzeþ jest bardzo maäe. Tego rodzaju zabezpieczenie zapo-
biega pozostawieniu przez wäamywacza trojana na przykäad w katalogu /tmp lub w katalo-
gu któregoĈ uĔytkownika. W takim przypadku wäamywaczowi uda siö zainstalowaè pro-
gram, ale nie bödzie mógä go juĔ uruchomiè, bez wzglödu na bity chmod programu.

NaleĔy zauwaĔyè, Ĕe usäugi dziaäajñce w Ĉrodowisku chroot() [Sposób 10.]
mogñ nie dziaäaè, gdy opcja nodev zostanie uĔyta do systemu plików dziaäajñcym
w tym Ĉrodowisku. Wynika to z tego, Ĕe urzñdzenia takie jak /dev/log czy
/dev/null muszñ byè dostöpne w Ĉrodowisku chroot().

background image

Wynajdywanie programów z ustawionymi bitami SUID i SGID

SPOSÓB

2.

Bezpiecze

ĕstwo systemu Unix _

19

Istnieje kilka sposobów, za pomocñ których wäamywacz moĔe obejĈè ograniczenia punk-
tów montowania. W Linuksie dziaäanie opcji noexec moĔna ominñè, uruchamiajñc pro-
gramy binarne znajdujñce siö w takim systemie plików za pomocñ biblioteki /lib/ld-linux.so.
Na pierwszy rzut oka wydaje siö, Ĕe moĔna temu zaradziè uniemoĔliwiajñc uruchomienie
biblioteki ld-linux.so, ale to uniemoĔliwiäoby równieĔ wykonywanie siö wszystkich pro-
gramów korzystajñcych z bibliotek doäñczanych dynamicznie.

Zatem jeĔeli wszystkie uĔywane programy nie sñ poäñczone z bibliotekami statycznie (a naj-
prawdopodobniej nie sñ), uĔycie opcji noexec w Linuksie ma niewielkie znaczenie. Poza
tym, wäamywacz, który zdobyä uprawnienia uĔytkownika root nie bödzie zbyt dotkliwie
ograniczony zamontowaniem systemu plików ze specjalnymi opcjami, gdyĔ moĔe on
rozmontowaè go i zamontowaè ponownie za pomocñ opcji -o remount. Jednak stosujñc
opcje montowania, mo

Ĕna z äatwoĈciñ ograniczyè moĔliwoĈè dziaäania wäamywacza, zanim

ten posiñdzie uprawnienia uĔytkownika root.

S P O S Ó B

2.

Wynajdywanie programów z ustawionymi bitami SUID i SGID

Szybki sposób wykrycia programów, które mog

ą umoĪliwiü uzyskanie uprawnieĔ uĪytkownika root

oraz programów otwieraj

ących tylne wejĞcia.

Jedna z moĔliwoĈci zwiökszenia przez uĔytkownika swoich uprawnieþ w systemie polega
na wykorzystaniu säaboĈci programu opatrzonego bitem SUID lub SGID. Bity SUID i SGID
säuĔñ do uzyskania przez program specjalnych uprawnieþ, wyĔszych od posiadanych przez
uruchamiajñcego go uĔytkownika. Jednym z takich programów jest passwd. Pozwolenie
uĔytkownikowi na zmianö hasäa, przy jednoczesnym uniemoĔliwieniu mu modyfikowania
systemowego pliku haseä oznacza, Ĕe program passwd musi dziaäaè z uprawnieniami uĔyt-
kownika root. Dlatego program ten ma ustawiony bit SUID, który powoduje, Ĕe program
wykonywany jest z uprawnieniami jego wäaĈciciela. Podobnie, gdy ustawiony jest bit
SGID, program wykonuje siö z uprawnieniami grupy bödñcej wäaĈcicielem pliku.

Wynik dziaäania polecenia ls -l na programie binarnym majñcym ustawiony bit SUID
wyglñda nastöpujñco:

-r-s--x--x 1 root root 16336 Feb 13 2003 /usr/bin/passwd

Zamiast bitu wykonania (x), w grupie bitów wäaĈciciela pliku programu wystöpuje bit s,
który oznacza, Ĕe program posiada ustawiony bit SUID.

Niestety, Ēle napisany program binarny posiadajñcy ustawiony bit SUID lub SGID moĔe
posäuĔyè do szybkiego i stosunkowo äatwego podniesienia uprawnieþ uĔytkownika. Poza
tym wäamywacz, który juĔ zdobyä uprawnienia uĔytkownika root, moĔe ukryè w systemie
programy binarne SUID, by otworzyè sobie tylne wejĈcie do systemu. Z tych powodów
naleĔy odnaleĒè w systemie wszystkie programy binarne SUID i SGID. Jest to prosta czyn-
noĈè, którñ moĔna wykonaè za pomocñ polecenia:

#

find / \( -perm -4000 -o -perm -2000 \) -type f -exec ls -la {} \;

WaĔnñ rzeczñ, którñ naleĔy stwierdziè, jest to czy program SUID jest skryptem powäoki,
czy plikiem binarnym, gdyĔ niezwykle äatwo jest zmieniè potencjalnie nieszkodliwy skrypt
w tylne wejĈcie do systemu. Na szczöĈcie wiökszoĈè systemów operacyjnych ignoruje bity

background image

SPOSÓB

3.

Wynajdywanie udost

Ċpnionych katalogów

20

_ Bezpieczeĕstwo systemu Unix

SUID i SGID skryptów powäoki. Chcñc odnaleĒè wszystkie skrypty z ustawionymi bitami
SUID lub SGID, naleĔy zmieniè argument opcji -exec ostatniego polecenia i dodaè do
niego potok:

#

find / \( -perm -4000 -o -perm -2000 \) \

-type f -exec file {} \; | grep -v ELF

W tym przypadku, po odkryciu pliku z ustawionym bitem SUID lub SGID uruchomiony
zostanie program file, który sprawdzi, jakiego rodzaju jest badany plik. JeĔeli jest to plik
wykonywalny, program grep odfiltruje go. W przeciwnym razie informacje o pliku pojawiñ
siö na ekranie.

W wiökszoĈci systemów operacyjnych pliki wykonywalne zapisane sñ w formacie ELF.
W przypadku systemów operacyjnych nie korzystajñcych z tego formatu (starsze wersje
Linuksa uĔywaäy formatu a.out, a AIX uĔywa XCOFF), naleĔy w poleceniu grep zastñpiè
typ ELF typem formatu binarnego uĔywanego w danym systemie operacyjnym. W przy-
padku wñtpliwoĈci, jaki format jest uĔywany w danym systemie, program file naleĔy wyko-
naè na dowolnym programie binarnym, w wyniku czego na ekranie pojawi siö poszuki-
wany äaþcuch znaków.

Oto przykäad uĔycia programu file na pliku binarnym systemu Mac OS X:

$

file /bin/sh

/bin/sh: Mach-O executable ppc

MoĔna jeszcze pójĈè dalej i za pomocñ programu cron uruchamiaè polecenie wyszukujñ-
ce programy SUID codziennie, a wynik jego dziaäania zapisywaè do pliku. Na przykäad
poniĔszy zapis znajdujñcy siö w pliku crontab säuĔy do wyszukiwania plików z ustawio-
nym bitem SUID lub SGID i do porównania aktualnych wyników poszukiwaþ z wynikami
z dnia poprzedniego, a nastöpnie wysyäania wyników poprzez email (wszystkie polecenia
naleĔy wpisaè w jednym wierszu):

0 4 * * * find / \( -perm -4000 -o -perm -2000 \) -type f \
> /var/log/sidlog.new &&
diff /var/log/sidlog.new /var/log/sidlog &&
mv /var/log/sidlog.new /var/log/sidlog

Aktualna lista plików SUID i SGID zostanie zapisana do pliku /var/log/sidlog.

S P O S Ó B

3.

Wynajdywanie udost

ċpnionych katalogów

Szybki sposób wykrycia niezabezpieczonych katalogów.

Katalogi, w których mogñ zapisywaè wszyscy (ang. world-writable) lub czäonkowie grup,
stanowiñ z punktu widzenia bezpieczeþstwa powaĔny problem. JeĔeli maski umask sñ
niepoprawne, uĔytkownicy mogñ nieĈwiadomie tworzyè niebezpieczne pliki, nie zdajñc
sobie przy tym sprawy z wynikajñcych z tego konsekwencji. Majñc to na uwadze, naleĔy
odszukaè w systemie wszystkie katalogi o rozluĒnionych uprawnieniach. Podobnie jak
w poprzednim przypadku [Sposób 2.], moĔna to zrobiè za pomocñ programu find:

#

find / -type d \( -perm -g+w -o -perm -o+w \) -exec ls -lad {} \;

background image

Tworzenie elastycznych hierarchii uprawnie

Ĕ za pomocą list ACL standardu POSIX

SPOSÓB

4.

Bezpiecze

ĕstwo systemu Unix _

21

Wszystkie katalogi, których nazwy pojawiñ siö w wyniku dziaäania tego polecenia, powinny
mieè ustawiony w uprawnieniach „lepki” bit reprezentowany przez literö t. Ustawienie
„lepkiego” bitu w uprawnieniach do katalogu, w którym zapisywaè mogñ wszyscy po-
woduje, Ĕe mimo Ĕe wszyscy mogñ tworzyè w nim pliki, to jednak nikt nie moĔe usuwaè
ani modyfikowaè plików innych uĔytkowników.

Dostrzegajñc w wyniku dziaäania powyĔszego polecenia katalog nie zawierajñcy „lep-
kiego” bitu naleĔy siö zastanowiè, czy rzeczywiĈcie uprawnienia do zapisu w tym kata-
logu muszñ mieè wszyscy, czy moĔe lepiej jest zastosowaè w nim uprawnienia grupowe
lub listy ACL [Sposób 4.]. JeĔeli uprawnienia do zapisywania w katalogu muszñ mieè
rzeczywiĈcie wszyscy, naleĔy za pomocñ polecenia chmod +t ustawiè w nim „lepki” bit.

Aby uzyskaè listö katalogów, które nie majñ ustawionego „lepkiego” bitu, naleĔy wydaè
polecenie:

#

find / -type d \( -perm -g+w -o -perm -o+w \) \

-not -perm -a+t -exec ls -lad {} \;

W przypadku systemów, które dla kaĔdego uĔytkownika tworzñ oddzielnñ grupö (na
przykäad przy tworzeniu uĔytkownika andrew tworzona jest równoczeĈnie jego podstawo-
wa grupa o tej samej nazwie), naleĔy zmodyfikowaè poprzednie polecenie, by nie poszu-
kiwaäo katalogów zapisywalnych przez grupy. W przeciwnym razie na ekranie pojawi siö
wiele nieistotnych informacji. W tym celu z polecenia naleĔy usunñè czäon -perm -g+w.

S P O S Ó B

4.

Tworzenie elastycznych hierarchii uprawnie

ĕ

za pomoc

Ć list ACL standardu POSIX

Tam, gdzie tradycyjne uniksowe uprawnienia nie wystarcz

ą, naleĪy wykorzystaü listy ACL.

W wiökszoĈci przypadków tradycyjny system uprawnieþ systemu Unix sprawdza siö zna-
komicie. Jednak w Ĉrodowiskach wielu wspóäpracujñcych ze sobñ uĔytkowników wyma-
gajñcych dostöpu do róĔnych plików, system ten staje siö nieporöczny. Listy kontroli dostö-
pu ACL (ang. Access Control List) sñ czymĈ stosunkowo nowym w systemach uniksowych,
ale od jakiegoĈ czasu sñ wykorzystywane w ich komercyjnych odpowiednikach. Listy
ACL co prawda nie zwiökszajñ bezpieczeþstwa systemu, za to zmniejszajñ zäoĔonoĈè
zarzñdzania uprawnieniami. List ACL sñ nowym sposobem nadawania uprawnieþ do
plików i katalogów, nie wymagajñcym tworzenia niepotrzebnych grup.

Listy ACL przechowywane sñ w postaci rozszerzonych atrybutów w metadanych systemu
plików. Jak sama nazwa wskazuje, säuĔñ do przyznawania lub odmawiania dostöpu do
danego pliku na podstawie zdefiniowanych kryteriów. Listy ACL nie polegajñ jednak na
caäkowitej rezygnacji z tradycyjnego systemu uprawnieþ. Listy ACL moĔna definiowaè
zarówno dla uĔytkowników, jak i grup, i wciñĔ zwiñzane sñ z dost

öpem do odczytu, do

zapisu i do wykonania. Dodatkowo listö kontroli dostöpu moĔna zdefiniowaè dla dowol-
nego uĔytkownika lub grupy, którym nie zostaäa przypisana Ĕadna inna lista ACL, co ma
podobne znaczenie jak bity „pozostali” w uprawnieniach do pliku.

background image

SPOSÓB

4.

Tworzenie elastycznych hierarchii uprawnie

Ĕ za pomocą list ACL standardu POSIX

22

_ Bezpieczeĕstwo systemu Unix

System list kontroli dostöpu uĔywa teĔ tak zwanych masek ACL, filtrujñcych uprawnienia
wszystkich list ACL dotyczñcych okreĈlonych uĔytkowników lub grupy. Dziaäanie masek
ACL jest podobne do dziaäania polecenia umask, choè nie do koþca. Gdy na przykäad
maska ACL przyjmuje wartoĈè r--, dowolna lista ACL odnoszñca siö do okreĈlonego uĔyt-
kownika lub grupy, która pozwala na wiöcej (na przykäad rw-), zostaje w rezultacie ograni-
czona do r--. Katalogi mogñ zawieraè domyĈlne listy ACL, które definiujñ poczñtkowe listy
ACL tworzonych w nich plików i podkatalogów.

Aktywacja list kontroli dost

ċpu

WiökszoĈè stosowanych obecnie systemów plików w Linuksie (Ext2/3, ReiserFS, JFS i XFS)
potrafi obsäugiwaè listy ACL. W przypadku korzystania z systemu Linux naleĔy spraw-
dziè, czy ustawiona zostaäa jedna z poniĔszych opcji konfiguracyjnych jñdra, odpowiednio
do uĔywanego systemu plików:

CONFIG_EXT2_FS_POSIX_ACL=y
CONFIG_EXT3_FS_POSIX_ACL=y
CONFIG_REISERFS_FS_POSIX_ACL=y
CONFIG_JFS_POSIX_ACL=y
CONFIG_FS_POSIX_ACL=y
CONFIG_XFS_POSIX_ACL=y

Aby aktywowaè listy ACL w systemie FreeBSD, naleĔy zamontowaè dowolny system
plików z opcjñ montowania acls:

#

mount -o acls -u /usr

#

mount

/dev/ad0s1a on / (ufs, local)
devfs on /dev (devfs, local)
/dev/ad0s1e on /tmp (ufs, local, soft-updates)
/dev/ad0s1f on /usr (ufs, local, soft-updates, acls)
/dev/ad0s1d on /var (ufs, local, soft-updates)

Opcja -u powoduje aktualizacjö montowania, co umoĔliwia zmianö opcji montowania
dla aktualnie zamontowanego systemu plików. W celu cofniöcia operacji moĔna wyäñczyè
listy ACL, uĔywajñc opcji noacls. Aby automatycznie wäñczyè listy ACL wraz ze startem
systemu, naleĔy w nastöpujñcy sposób zmodyfikowaè wpis w pliku /etc/fstab:

/dev/ad0s1f /usr ufs rw,acls 2 2

Zarz

Ćdzanie listami ACL

Listy ACL modyfikuje siö i usuwa za pomocñ programu setfacl. Aby zmodyfikowaè listö
ACL, naleĔy posäuĔyè siö opcjñ -m, po której naleĔy podaè listö ACL oraz nazwö lub nazwy
plików. Aby usunñè listö ACL, naleĔy posäuĔyè siö opcjñ -x, po której naleĔy podaè listö
lub listy ACL.

Istniejñ trzy ogólne postacie list ACL — listy uĔytkownika, grupy i pozostaäych. Przyjrzyjmy
siö im bliĔej:

# Lista ACL uĔytkownika
u:[uĪytkownik]:<tryb_dostĊpu>
# Lista ACL grupy

background image

Tworzenie elastycznych hierarchii uprawnie

Ĕ za pomocą list ACL standardu POSIX

SPOSÓB

4.

Bezpiecze

ĕstwo systemu Unix _

23

g:[grupa]:<tryb_dostĊpu>
# Lista ACL pozostaäych
o:<tryb_dostĊpu>

NaleĔy zauwaĔyè, Ĕe w listach ACL uĔytkownika i grupy nazwy uĔytkowników i grup,
których dotyczñ listy ACL, nie sñ wymagane. JeĔeli nazwy te zostanñ pominiöte, ozna-
cza to, Ĕe lista ACL zostanie zastosowana do bazowej listy ACL uzyskanej z bitów trybu
dostöpu do pliku. Dlatego, jeĔeli zostanie ona zmieniona, zmianie ulegnñ równieĔ bity
trybu dostöpu, i odwrotnie.

Dziaäanie list ACL najlepiej poznaè wäasnoröcznie na przykäadzie, tworzñc plik i mody-
fikujñc jego bazowñ listö ACL:

$

touch mojplik

$

ls -l mojplik

-rw-rw-r-- 1 andrew andrew 0 Oct 13 15:57 mojplik
$

setfacl -m u::---,g::---,o:--- mojplik

$

ls -l mojplik

---------- 1 andrew andrew 0 Oct 13 15:57 mojplik

Z przykäadu wynika równieĔ, Ĕe w jednym poleceniu moĔna podaè naraz kilka list ACL,
oddzielajñc je od siebie przecinkami.

Listy ACL moĔna definiowaè dla dowolnej liczby grup i uĔytkowników:

$

touch costam

$

setfacl -m u:jlope:rwx,g:wine:rwx ,o:--- costam

$

getfacl costam

# file: costam
# owner: andrew
# group: andrew
user::rw-
user:jlope:rwx
group::---
group:wine:rwx
mask::rwx
other::---

JeĔeli zmieni siö maskö ACL na r--, lista ACL uĔytkownika jlope i grupy wine zostanie
w efekcie ograniczona do r--:

$

setfacl -m m:r-- costam

$

getfacl costam

# file: costam
# owner: andrew
# group: andrew
user::rw-
user:jlope:rwx #effective:r--
group::---
group:wine:rwx #effective:r--
mask::r--
other::---

Jak powiedziano wczeĈniej, do plików tworzonych w katalogach stosowane sñ domyĈlne
listy ACL katalogów. DomyĈlne listy ACL tworzy siö, poprzedzajñc listö ACL znakami d::

$

mkdir mojkatalog

$

setfacl -m d:u:jlope:rwx mojkatalog

$

getfacl mojkatalog

# file: mojkatalog

background image

SPOSÓB

5.

Zabezpieczenie dzienników zdarze

Ĕ przed modyfikacją

24

_ Bezpieczeĕstwo systemu Unix

# owner: andrew
# group: andrew
user::rwx
group::---
other::---
default:user::rwx
default:user:jlope:rwx
default:group::---
default:mask::rwx
default:other::---

$

touch mojkatalog/nowyplik

$

getfacl mojkatalog/nowyplik

# file: mojkatalog/nowyplik
# owner: andrew
# group: andrew
user::rw-
user:jlope:rwx #effective:rw-
group::---
mask::rw-
other::---

Jak äatwo zauwaĔyè w powyĔszych przykäadach, zawartoĈè list ACL moĔna uzyskaè za
pomocñ programu getfacl. Jest to prosty program posiadajñcy jedynie kilka opcji, z których
najczöĈciej uĔywanñ jest opcja -R, umoĔliwiajñca rekursywne przeglñdanie list ACL, dzia-
äajñca bardzo podobnie do polecenia ls -R.

S P O S Ó B

5.

Zabezpieczenie dzienników zdarze

ĕ przed modyfikacjĆ

Za pomoc

ą atrybutów plików moĪna uniemoĪliwiü intruzom zatarcie Ğladów wáamania.

Jest praktycznie pewne, Ĕe wäamanie do systemu zostanie odnotowane w wielu róĔnych
systemowych dziennikach zdarzeþ. Jest to bardzo wartoĈciowy Ĉlad, który naleĔy dobrze
chroniè. Bez wiarygodnych dzienników zdarzeþ, odkrycie, w jaki sposób wäamywacz
przedostaä siö do systemu lub skñd zostaä przeprowadzony atak, moĔe byè bardzo trudne.
Tego rodzaju informacje sñ absolutnie niezbödne do przeprowadzenia wäaĈciwej analizy
caäego incydentu, a nastöpnie do podjöcia stosownej reakcji na incydent, na przykäad przez
skontaktowanie siö z zamieszanymi w to stronami [Sposób 125.]. JeĔeli wäamanie powie-
dzie siö i wäamywacz uzyska uprawnienia uĔytkownika root, czy jest coĈ, co moĔe po-
wstrzymaè go przed usuniöciem Ĉladów wäamania?

W takim przypadku z pomocñ przychodzñ atrybuty plików. Zarówno systemy linuksowe,
jak i systemy BSD przydzielajñ plikom i katalogom dodatkowe atrybuty, wykraczajñce
poza standardowy uniksowy system zabezpieczeþ, w którym atrybuty plików dotyczñ
w jednakowym stopniu wszystkich uĔytkowników systemu. Dodatkowe atrybuty decy-
dujñ o dostöpie do plików w znacznie wiökszym stopniu niĔ uprawnienia do plików czy
listy ACL [Sposób 4.]. W Linuksie atrybuty plików moĔna przeglñdaè lub ustawiaè za
pomocñ programów lsattr i chattr. Aby przejrzeè atrybuty w systemach BSD, naleĔy wydaè
polecenie ls -lo, a Ĕeby je ustawiè — polecenie chflags.

Jednym z bardziej przydatnych atrybutów jest atrybut „tylko do dopisywania” (ang.
append-only). Gdy atrybut ten jest ustawiony, pliku nie moĔna usunñè, a zapis do pliku jest
moĔliwy tylko na jego koþcu.

background image

Czytaj dalej...

Zabezpieczenie dzienników zdarze

Ĕ przed modyfikacją

SPOSÓB

5.

Bezpiecze

ĕstwo systemu Unix _

25

Aby w systemie Linux ustawiè atrybut „tylko do dopisywania”, naleĔy wydaè nastöpujñce
polecenie:

#

chattr +a nazwa_pliku

W systemie BSD naleĔy wydaè polecenie:

#

chflags sappnd nazwa_pliku

ēeby przekonaè siö, jak dziaäa atrybut +a, naleĔy utworzyè plik i ustawiè w nim ten atrybut:

#

touch /var/log/logfile

#

echo "atrybut tylko do dopisywania nie jest ustawiony" > /var/log/logfile

#

chattr +a /var/log/logfile

#

echo "atrybut tylko do dopisywania jest ustawiony" > /var/log/logfile

bash: /var/log/logfile: Operation not permitted

Druga próba zapisu zakoþczyäa siö niepowodzeniem, gdyĔ nie moĔna nadpisaè pliku.
Jednak dopisywanie na koþcu pliku jest moĔliwe:

#

echo "dopisywanie do pliku" >> /var/log/logfile

#

cat /var/log/logfile

atrybut tylko do dopisywania nie jest ustawiony
dopisywanie do pliku

OczywiĈcie wäamywacz, który zdobyä uprawnienia uĔytkownika root, moĔe odkryè, Ĕe
w systemie wykorzystywane sñ atrybuty plików i za pomocñ polecenia chattr -a usu-
nñè zastosowany do plików dzienników zdarzeþ atrybut „tylko do dopisywania”. Aby
temu zapobiec, naleĔy wyäñczyè moĔliwoĈè usuwania atrybutu „tylko do dopisywania”.
W tym celu, w Linuksie naleĔy skorzystaè z jego mechanizmu moĔliwoĈci, a w systemach
BSD skorzystaè z funkcji poziomu bezpieczeþstwa (ang. securelevel).

Model moĔliwoĈci systemu Linux dzieli wszystkie przywileje dane uĔytkownikowi root i
umoĔliwia selektywne wyäñczanie niektórych z nich. Aby uniemoĔliwiè uĔytkownikowi
usuniöcie z pliku atrybutu „tylko do dopisywania”, naleĔy pozbyè siö moĔliwoĈci
CAP_LINUX_IMMUTABLE

. Zmian moĔliwoĈci systemu moĔna dokonaè za pomocñ pro-

stego programu lcap (http://snort-wireless.org/other/lcap-0.0.6.tar.bz2).

PoniĔsze polecenie rozpakuje i skompiluje program:

#

tar xvfj lcap-0.0.6.tar.bz2 && cd lcap-0.0.6 && make

Aby uniemoĔliwiè modyfikacjö atrybutu „tylko do dopisywania”, naleĔy wykonaè nastö-
pujñce polecenia:

#

./lcap CAP_LINUX_IMMUTABLE

#

./lcap CAP_SYS_RAWIO

Pierwsze polecenie wyäñcza moĔliwoĈè zmiany atrybutu „tylko do dopisywania”, nato-
miast drugie wyäñcza moĔliwoĈè wykonywania pierwotnych operacji wejĈcia-wyjĈcia. Jest
to konieczne po to, Ĕeby nie byäo moĔliwoĈci zmodyfikowania chronionego pliku poprzez
dostöp do urzñdzenia blokowego, na którym siö on znajduje. Zabezpiecza to równieĔ przed
dostöpem do urzñdzeþ /dev/mem i /dev/kmem, który mógäby stwarzaè wäamywaczowi moĔ-
liwoĈè ponownego wäñczenia moĔliwoĈci CAP_LINUX_IMMUTABLE.


Wyszukiwarka

Podobne podstrony:
100 sposobow na bezpieczenstwo Sieci
100 sposobów na bezpieczeństwo sieci
100 sposobow na bezpieczenstwo Sieci 100bsi
125 sposobow na bezpieczenstwo Nieznany (2)
100 sposobow na bezpieczenstwo Sieci
100 sposobów na bezpieczeństwo sieci

więcej podobnych podstron