Autor: Ryan C. Barnett
ISBN: 978-83-246-0505-7
Ilość stron: 544
Data wydania: 02/2007
Internet to nie tylko niezmierzone źródło informacji. To także zagrożenie dla serwerów WWW, aplikacji internetowych i baz danych, które codziennie są atakowane przez komputerowych przestępców, korzystających z dziesiątek technik. Publikowane regularnie raporty o cyberprzestępczości są zatrważające.
Liczba ataków na serwery internetowe wzrasta corocznie średnio o 30%. Wśród atakowanych serwerów przeważają te, na których utrzymywane są witryny WWW i aplikacje. Według raportu firmy Symantec, "aplikacje WWW są popularnymi celami ataków z uwagi na ich rozpowszechnienie i fakt, że pozwalają włamywaczom na pominięcie tradycyjnych mechanizmów zabezpieczających, takich jak firewalle". W tym samym raporcie można również przeczytać, że prawie 50% luk w zabezpieczeniach serwerów wiąże się właśnie z aplikacjami WWW.
W książce "Apache. Zabezpieczenia aplikacji i serwerów WWW" znajdziesz informacje o tym, w jaki sposób uchronić przed atakami hakerów aplikacje i witryny WWW kontrolowane przez najpopularniejszy obecnie serwer WWW - Apache. Przeczytasz o tym, jak poprawnie zainstalować i skonfigurować Apache´a i w jaki sposób uruchomić w nim moduły zabezpieczeń. Poznasz techniki ataków hakerskich i dowiesz się, jak im zapobiegać. Znajdziesz sposoby testowania zabezpieczeń swojego serwera za pomocą odpowiednich narzędzi. Nauczysz się także wykrywać próby ataków i reagować na nie odpowiednio wcześnie.
- Czynniki wpływające na bezpieczeństwo sieci
- Instalacja serwera Apache
- Plik httpd.conf - konfiguracja Apache´a
- Instalowanie i konfigurowanie modułów zabezpieczeń
- Klasyfikacja zagrożeń sieciowych WASC
- Metody zabezpieczania aplikacji sieciowych
- Ochrona przed atakami
- Tworzenie serwerów-pułapek
Rozdziały:
Rozdział 1. Czynniki wpływające na obniżenie bezpieczeństwa sieci (29)
- Typowy poranek (29)
- Dlaczego bezpieczeństwo sieciowe jest istotne? (31)
- Czynniki wpływające na obniżenie bezpieczeństwa sieci (32)
- Zarządzanie i procedury (32)
- Zarządzanie i nieprzekraczalne terminy (32)
- Sprzedaż załadowanego pistoletu (33)
- Dwuminutowa zmiana (34)
- Środowisko projektowe a środowisko pracy (34)
- Zdarzeniowa koncepcja utrzymania bezpieczeństwa sieci (35)
- Błędy techniczne w zabezpieczeniach sieciowych (36)
- Mamy serwer w strefie zdemilitaryzowanej (36)
- Mamy firewalla (37)
- Mamy sieciowy system wykrywania włamań (38)
- Mamy jednostkowy system wykrywania włamań (39)
- Wykorzystujemy protokół SSL (39)
- Podsumowanie (40)
Rozdział 2. Raporty CIS dotyczące serwera Apache (41)
- Raporty CIS dotyczące serwera Apache dla systemu Unix - zagadnienia związane z systemem operacyjnym (41)
- Zabezpieczenie usług innych niż HTTP (41)
- Przykład ataku na usługę - wykorzystanie serwera FTP (7350wu) (46)
- Wpływ błędów w usługach na bezpieczeństwo serwera Apache (49)
- Uaktualnienia dostawców systemów operacyjnych (49)
- Dostosowanie stosu IP (50)
- Odmowa obsługi (51)
- Grupy i konta użytkowników sieciowych (53)
- Zablokowanie konta serwera WWW (56)
- Wprowadzenie limitów dyskowych (57)
- Dostęp do poleceń systemowych (59)
- Zmiana właściciela i praw dostępu do poleceń systemu (64)
- Tradycyjny mechanizm chroot (65)
- Wady mechanizmu chroot (65)
- Moduł chroot mod_security (66)
- Konfiguracja mechanizmu chroot (66)
- Podsumowanie (73)
Rozdział 3. Instalacja serwera Apache (75)
- Wybór wersji (75)
- Pakiety binarne czy kod źródłowy? (76)
- Pobranie kodu źródłowego (78)
- Czy potrzebna jest weryfikacja MD5 i PGP? (78)
- Rozpakowanie archiwum (84)
- Nakładki (85)
- Śledzenie komunikatów o błędach i nakładkach (86)
- Które moduły uwzględnić? (89)
- Podsumowanie (98)
Rozdział 4. Konfiguracja - plik httpd.conf (99)
- Ustawienia uwzględnione w raporcie CIS (102)
- Plik httpd.conf (102)
- Wyłączenie niepotrzebnych modułów (103)
- Dyrektywy (104)
- Dyrektywy związane z serwerem (105)
- Moduły pracy wieloprocesorowej (MPM) (105)
- Dyrektywa Listen (105)
- Dyrektywa ServerName (106)
- Dyrektywa ServerRoot (106)
- Dyrektywa DocumentRoot (106)
- Dyrektywa HostnameLookups (106)
- Dyrektywy związane z kontami użytkowników (108)
- Dyrektywa User (108)
- Dyrektywa Group (109)
- Dyrektywa ServerAdmin (109)
- Dyrektywy związane z ochroną przed atakami DoS (109)
- Test domyślnej konfiguracji (110)
- Dyrektywa Timeout (111)
- Dyrektywa KeepAlive (112)
- Dyrektywa KeepAliveTimeout (112)
- Dyrektywa MaxKeepAliveRequests (112)
- Dyrektywa StartServers (113)
- Dyrektywy MinSpareServers i MaxSpareServers (113)
- Dyrektywa ListenBacklog (113)
- Dyrektywy MaxClients i ServerLimit (114)
- Test serwera po zamianie konfiguracji (114)
- Zapowiedź (115)
- Dyrektywy utajniające oprogramowanie (116)
- Dyrektywa ServerTokens (116)
- Dyrektywa ServerSignature (117)
- Dyrektywa ErrorDocument (117)
- Dyrektywy katalogów (121)
- Parametr All (121)
- Parametr ExecCGI (121)
- Parametry FollowSymLinks i SymLinksIfOwnerMatch (121)
- Parametry Includes i IncludesNoExec (122)
- Parametr Indexes (122)
- Dyrektywa AllowOverride (123)
- Parametr Multiviews (123)
- Dyrektywy kontroli dostępu (123)
- Uwierzytelnianie (124)
- Autoryzacja (125)
- Kontrola dostępu - informacje o kliencie (127)
- Nazwa komputera lub domeny (127)
- Adres IP lub zakres adresów IP (128)
- Zmienne środowiskowe żądania (128)
- Ochrona katalogu głównego (128)
- Zmniejszenie liczby metod HTTP (129)
- Ogólne dyrektywy rejestracji zdarzeń (130)
- Dyrektywa LogLevel (130)
- Dyrektywa ErrorLog (130)
- Dyrektywa LogFormat (131)
- Dyrektywa CustomLog (131)
- Usunięcie domyślnych i przykładowych plików (132)
- Pliki kodu źródłowego Apache (132)
- Domyślne pliki HTML (132)
- Przykładowe skrypty CGI (133)
- Pliki użytkownika webserv (134)
- Zmiana praw dostępu (134)
- Pliki konfiguracyjne serwera (134)
- Pliki katalogu dokumentów (134)
- Katalog cgi-bin (135)
- Katalog logs (135)
- Katalog bin (135)
- Modyfikacja skryptu apachectl (136)
- Test Nikto po zmianach konfiguracji (137)
- Podsumowanie (137)
Rozdział 5. Najważniejsze moduły zabezpieczeń (139)
- Protokół SSL (139)
- Dlaczego należy korzystać z protokołu SSL? (140)
- Jak działa mechanizm SSL? (142)
- Wymagane oprogramowanie (144)
- Instalacja oprogramowania SSL (145)
- Tworzenie certyfikatów SSL (146)
- Sprawdzenie wstępnej konfiguracji (147)
- Konfiguracja modułu mod_ssl (149)
- Podsumowanie mechanizmu SSL (155)
- Moduł mod_rewrite (155)
- Włączenie modułu mod_rewrite (156)
- Podsumowanie modułu mod_rewrite (158)
- Moduł mod_log_forensic (158)
- Moduł mod_evasive (159)
- Do czego służy moduł mod_evasive? (159)
- Instalacja modułu mod_evasive (160)
- Jak działa moduł mod_evasive? (160)
- Konfiguracja (161)
- Podsumowanie modułu mod_evasive (165)
- Moduł mod_security (165)
- Instalacja modułu mod_security (166)
- Ogólne informacje na temat modułu (166)
- Opcje i możliwości modułu mod_security (167)
- Techniki przeciwdziałania maskowaniu ataków (168)
- Specjalne wbudowane procedury sprawdzające (169)
- Reguły filtrowania (172)
- Akcje (173)
- Pozostałe funkcje (176)
- Podsumowanie (177)
Rozdział 6. Test konfiguracji - narzędzie CIS Apache Benchmark Scoring Tool (179)
- Pobranie, rozpakowanie i uruchomienie aplikacji (180)
- Rozpakowanie archiwum (181)
- Uruchomienie programu (182)
- Podsumowanie (186)
Rozdział 7. Klasyfikacja zagrożeń sieciowych WASC (187)
- Współautorzy dokumentu (188)
- Charakterystyka dokumentu WASC (188)
- Cele (189)
- Wykorzystanie dokumentacji (189)
- Przegląd (189)
- Tło (190)
- Klasy ataków (190)
- Format podrozdziałów (191)
- Uwierzytelnianie (192)
- Metoda siłowa (192)
- Niedostateczne uwierzytelnienie (196)
- Niedoskonały mechanizm odzyskiwania haseł (198)
- Autoryzacja (200)
- Predykcja danych uwierzytelniających (danych sesji) (200)
- Niedostateczna autoryzacja (202)
- Niewłaściwe wygasanie sesji (204)
- Ustawienie sesji (205)
- Ataki na jednostki klienckie (209)
- Podmiana treści (209)
- Wykonywanie kodu w ramach witryny (211)
- Wykonywanie poleceń (213)
- Przepełnienie bufora (213)
- Atak z wykorzystaniem ciągu formatującego (218)
- Wstrzyknięcie danych LDAP (220)
- Wykonanie poleceń systemu operacyjnego (222)
- Wstrzyknięcie instrukcji SQL (224)
- Wstrzyknięcie instrukcji SSI (229)
- Wstrzyknięcie instrukcji XPath (230)
- Ujawnienie informacji (231)
- Indeksowanie katalogu (232)
- Wyciek informacji (235)
- Manipulacja ścieżkami (237)
- Przewidywanie położenia zasobów (240)
- Ataki logiczne (241)
- Zakłócenie funkcjonowania (241)
- Odmowa obsługi (244)
- Niedostateczne zabezpieczenie przed automatyzacją (247)
- Niedostateczna walidacja procesu (248)
- Podsumowanie (250)
Rozdział 8. Zabezpieczenie aplikacji sieciowej Buggy Bank (251)
- Instalacja serwisu Buggy Bank (252)
- Pliki witryny Buggy Bank (253)
- Wyłączenie zabezpieczeń (253)
- Testowanie instalacji (254)
- Funkcje (255)
- Metodologia działań (257)
- Ogólne zagadnienia (257)
- Wykorzystane narzędzia (257)
- Konfiguracja programu Burp Proxy (258)
- Luki w zabezpieczeniach serwisu Buggy Bank (260)
- Komentarze w kodzie HTML (260)
- Ustalenie numerów kont (261)
- Jaka jest wartość entropii? (262)
- Ustalenie numerów kont metodą siłową (263)
- Wyznaczenie identyfikatorów PIN (266)
- Odblokowane konto (266)
- Zablokowane konto (266)
- Ustalenie identyfikatorów PIN metodą siłową (267)
- Wstrzykiwanie poleceń (269)
- Wykonanie polecenia netstat (269)
- Wstrzyknięcie instrukcji SQL (273)
- Zapobieganie wstrzykiwaniu instrukcji SQL (275)
- Wykonywanie skryptów w ramach witryny (XSS) (277)
- Zakłócenie działania funkcji przelewu (280)
- Podsumowanie (283)
Rozdział 9. Ochrona i przeciwdziałanie (285)
- Dlaczego firewalle nie chronią w dostateczny sposób serwerów i aplikacji? (286)
- Dlaczego systemy wykrywania włamań są również nieskuteczne (288)
- Szczegółowa analiza pakietów, wtrącone systemy IDS i firewalle aplikacji WWW (292)
- Firewalle z funkcją szczegółowej analizy pakietów (293)
- Wtrącone systemy IDS (294)
- Firewalle aplikacji WWW (295)
- Rozwiązania systemów wykrywania włamań (297)
- Metoda sygnaturowa (298)
- Polityka zdarzeń pozytywnych (białe listy) (301)
- Analiza nagłówków (311)
- Analiza protokołów (314)
- Analiza identyfikatora zasobu URI (320)
- Analiza heurystyczna (322)
- Wykrywanie anomalii (323)
- Techniki oszukiwania systemów IDS i ochrona przed maskowaniem ataków (325)
- Możliwości oszukania systemu IDS (325)
- Mechanizmy zapobiegania maskowaniu żądań (328)
- Oszukiwanie przez zakłócenie działania serwera Apache (330)
- Wykrywanie sondowania i blokowanie niebezpiecznych stacji (333)
- Sondowanie za pomocą programów robaków (333)
- Blokowanie znanych niebezpiecznych stacji (334)
- Aplikacja nmap - identyfikacja właściciela procesu (337)
- Aplikacja nmap - sprawdzenie wersji oprogramowania (338)
- W jakim celu zmienia się baner informacyjny serwera? (340)
- Ukrywanie baneru informacyjnego serwera (341)
- Rozpoznanie serwera WWW (343)
- Różnice w implementacji protokołu HTTP (344)
- Zbieranie informacji z banerów (348)
- Zaawansowane procedury rozpoznawania serwerów WWW (348)
- Aplikacja HTTPrint (349)
- Obrona przed procedurą rozpoznawania serwerów WWW (351)
- Niebezpieczne roboty, ciekawscy klienci i superskanery (356)
- Niebezpieczne roboty i ciekawscy klienci (357)
- Superskanery (359)
- Reagowanie na ataki DoS, wykorzystanie metod siłowych i modyfikacja stron (365)
- Ataki DoS (365)
- Wykorzystanie metod siłowych (366)
- Modyfikacja stron (368)
- Zapobieganie modyfikowaniu stron (373)
- Alarmy i śledzenie działań włamywaczy (374)
- Powołanie zmiennych (377)
- Rejestrowanie danych do późniejszej analizy (377)
- Filtracja nieistotnych żądań i sprawdzenie liczby wysłanych powiadomień (378)
- Rejestracja żądania i odsyłacze do aplikacji śledzenia włamywacza (378)
- Wysłanie powiadomienia na pager (379)
- Wstrzymanie działania skryptu (379)
- Przesłanie dokumentu HTML (379)
- Przykładowe powiadomienia e-mail (379)
- Monitorowanie dzienników pracy serwera i analiza ich zawartości (386)
- Ciągły monitoring za pomocą programu SWATCH (387)
- Sgrep - analiza dziennika modułu mod_security (391)
- Systemy-pułapki (394)
- Wabiące systemy-pułapki (395)
- Fałszywy skrypt PHF (396)
- Identyfikacja i śledzenie przypadków wykonywania poleceń systemowych (397)
- Moduł mod_rewrite 2.1 - ostatnia deska ratunku (398)
- Podsumowanie (399)
Rozdział 10. Otwarty serwer proxy jako system-pułapka (401)
- Po co instalować otwarty serwer proxy w roli systemu-pułapki? (401)
- Brak informacji o wystąpieniu ataku (402)
- Brak szczegółowych (dostatecznych) informacji o transakcjach HTTP (402)
- Brak zainteresowania ujawnieniem informacji o ataku (402)
- Czym są serwery proxy? (403)
- Podstawowe informacje na temat otwartych serwerów proxy (404)
- Otwarty serwer proxy jako system-pułapka (405)
- Router-firewall firmy Linksys (405)
- Wyłączenie niepotrzebnych usług sieciowych (406)
- Konfiguracja serwera Apache jako jednostki proxy (406)
- Sterowanie danymi (408)
- Moduł mod_evasive (409)
- Moduł mod_security (409)
- Wykorzystanie sygnatur systemu Snort (410)
- Ataki z wykorzystaniem metod siłowych (411)
- Przechwytywanie danych (412)
- Ciągłe monitorowanie za pomocą programu Web spy (413)
- Skan miesiąca - wyzwanie nr 31 w projekcie Honeynet (414)
- Wyzwanie (414)
- Czynności przygotowawcze (415)
- Pytanie: W jaki sposób włamywacze odnaleźli proxy-pułapkę? (416)
- Pytanie: Jakiego rodzaju ataki można zidentyfikować? Dla każdej kategorii ataku podaj przynajmniej jeden przykład wpisu i dołącz jak najwięcej informacji na temat samego ataku (np. identyfikatory CERT, CVE i sygnatur wirusów). Ile kategorii ataków można wyróżnić? (417)
- Wyszukiwanie ciągu mod_security-message (418)
- Wykorzystanie funkcji przekazywania AllowCONNECT (419)
- Wyszukiwanie niestandardowych kodów statusowych HTTP (420)
- Niestandardowe metody żądań HTTP (422)
- Żądania niezgodne z protokołem HTTP (423)
- Kategoria ataku - spam (425)
- Kategoria ataku - uwierzytelnianie metodą siłową (426)
- Kategoria ataku - skanowanie luk w zabezpieczeniach (427)
- Kategoria ataku - robaki internetowe (432)
- Kategoria ataku - pozorne kliknięcie baneru reklamowego (435)
- Kategoria ataku - połączenia IRC (436)
- Pytanie: Czy włamywacze wybierali jako cele ataków serwery WWW obsługujące protokół SSL? (437)
- Czy celem była również usługa SSL proxy-pułapki? (438)
- Dlaczego chcieli korzystać z protokołu SSL? (439)
- Dlaczego nie korzystali wyłącznie z usług SSL? (439)
- Pytanie: Czy są jakiekolwiek oznaki, że w ataku pośredniczyły inne serwery proxy? Opisz, w jaki sposób można wykryć takie działanie. Wymień inne zidentyfikowane serwery proxy. Czy można potwierdzić, że dane jednostki są rzeczywiście serwerami proxy? (439)
- Identyfikacja aktywności (440)
- Potwierdzenie informacji o serwerach proxy (442)
- Wykorzystanie określonych otwartych serwerów proxy (445)
- Wykorzystanie określonych serwerów docelowych (445)
- Pytanie: Wyodrębnij przypadki zastosowania metod siłowych do uwierzytelnienia. Czy można pozyskać dane uwierzytelniające (nazwę użytkownika i hasło) w formie otwartego tekstu? Opisz metody analizy (447)
- Żądania HTTP GET (447)
- Żądania HTTP POST (447)
- Uwierzytelnienie HTTP typu Basic (448)
- Uzyskanie danych uwierzytelniających w formie otwartego tekstu (450)
- Rozproszone skanowanie metodą siłową kont serwisu Yahoo! (451)
- Skanowanie w przód i odwrotne (452)
- Pytanie: Co oznacza komunikat modułu mod_security o treści Invalid Character Detected? Jaki był cel działania włamywacza? (457)
- Dyrektywa SecFilterCheckURLEncoding - sprawdzenie kodowania URL (457)
- Dyrektywa SecFilterCheckUnicodeEncoding - sprawdzenie kodowania Unicode (457)
- Dyrektywa SecFilterForceByteRange - sprawdzenie zakresu wartości bajtowych (458)
- Sprawdzenie dostępności usługi SOCKS (458)
- Ataki robaków internetowych Code Red i NIMDA (459)
- Pytanie: Zarejestrowano kilka prób przesłania spamu, o czym świadczą próby wykorzystania adresu URL: http://mail.sina.com.cn/cgi-bin/sendmsg.cgi. List zawierał załącznik HTML (pliki wymienione w katalogu /upload). Jaka była treść strony WWW spamu? Kim byli odbiorcy spamu? (460)
- Pytanie: Opracuj kilka statystyk (461)
- Dziesięciu najaktywniejszych włamywaczy (461)
- Dziesięć najczęściej atakowanych jednostek (462)
- Dziesięć najczęściej wykorzystywanych przeglądarek (wraz z fałszowanymi nazwami) (462)
- Powiązanie włamywaczy z danymi serwisu DShield i innymi źródłami informacji (464)
- Pytanie dodatkowe: Dlaczego włamywacze wybierali witryny pornograficzne jako cel ataków z wykorzystaniem metod siłowych (poza oczywistą fizyczną gratyfikacją)? (464)
- Czy mimo że adres IP i nazwa proxy-pułapki zostały zamaskowane we wpisach dziennika, można wskazać prawdopodobnego właściciela segmentu sieci? (466)
- Podsumowanie (468)
Rozdział 11. Podsumowanie prezentowanych rozwiązań (471)
- Przykładowe ostrzeżenie o błędzie systemu zabezpieczeń (471)
- Sprawdzenie wersji oprogramowania (472)
- Sprawdzenie dostępności nakładki (472)
- Szczegółowe informacje o błędzie w zabezpieczeniach (473)
- Utworzenie filtru mod_security (476)
- Test filtru (476)
- Pierwsza pomoc czy szpital (477)
- Bezpieczeństwo sieci - zagadnienia niezwiązane z serwerem WWW (478)
- Przejęcie domeny (478)
- Zatrucie pamięci podręcznej DNS (478)
- Zakłócenie pracy buforującego serwera proxy (479)
- Podmiana baneru reklamowego (481)
- Zakłócenie działania serwisu informacyjnego (481)
- Podmiana czy nie? (482)
- Podsumowanie (482)
Dodatek A. Słownik WASC (485)
Dodatek B. Wykaz modułów Apache (495)
Dodatek C. Przykładowy plik httpd.conf (511)
Apache zabezpieczenia aplikacji i serwerów WWW --- Pozycja niedostępna.---
|