01a (2)


Rozdział 1.
Zabezpieczanie portów i usług

W pierwszym tomie niniejszej książki, Hack wars. Na tropie hakerów, opisywaliśmy już porty i usługi. Przedstawiliśmy także ich znaczenie dla podatności systemów na ataki z zewnątrz. Warto jednak krótko przypomnieć — porty to swoiste „bramy”, pośredniczące w przesyłaniu informacji do i z komputera. Hakerzy korzystają z narzędzi zwanych „skanerami portów” (również opisanych w pierwszym tomie), umożliwiających ich przeszukanie i wyszukanie tych, które są otwarte (na których prowadzony jest „nasłuch”). Te właśnie mogą zostać wykorzystane w próbach nieuprawnionej penetracji systemu.

Z około 65 tysięcy portów komputera, pierwszych 1024 określa się jako well-known ports, czyli porty zarezerwowane (dosł. porty znane). Pozostałe określić można jako porty ukryte (ang. concealed ports). W rozdziale 1. zajmiemy się technikami pozwalającymi zabezpieczyć porty oraz związane z nimi usługi. Rozpoczniemy od metod zabezpieczenia, zarówno portów zarezerwowanych, jak i pozostałych, które są w systemie wykorzystywane. Następnie przejdziemy do przeciwdziałania wykrywaniu danych o systemie i skanowaniu portów. Wykrywanie danych o systemie docelowym, jak opisujemy to w pierwszym tomie Hack wars, jest początkowym etapem działań hakera, poprzedzającym utworzenie skutecznego planu ataku. Skanowanie portów jest najczęściej drugą fazą gromadzenia potrzebnych informacji.

W niniejszej książce przedstawiać będziemy kolejne etapy prowadzące do spójnego zabezpieczenia systemu. Trzymając się podejścia zespołu Tiger Team, opiszemy kolejne procedury (kroki), prowadzące do skutecznej ochrony przed przełamaniem wprowadzonych barier obronnych. Uporządkowanie treści odpowiadać będzie typowej kolejności ich konfigurowania.

Porty zarezerwowane
(well-known ports)

Celem niniejszego podrozdziału jest wprowadzenie Czytelnika w techniki służące do zabezpieczania najwrażliwszych portów z listy zarezerwowanych (well-known ports). Są one wykorzystywane przez różnorodne usługi korzystające z transportu TCP lub UDP. Gdy dwa systemy nawiązują komunikację, porty te stają się zakończeniami połączeń logicznych, stanowiących podstawę „konwersacji” komputerów. Połączenie TCP inicjowane jest w drodze trójstopniowej wymiany potwierdzeń (ang. three-way handshake), której celem jest zsynchronizowanie numerów sekwencyjnych i potwierdzeń obu stron (komunikację TCP określa się często jako połączeniową lub gwarantowaną). Komunikacja UDP realizowana jest przez bezpołączeniową usługę przesyłania datagramów, gdzie dostarczanie danych nie jest gwarantowane, ale wysoce wydajne.

Skoncentrujemy się w przedstawionym opisie na portach określonych w pierwszym tomie jako najbardziej wrażliwe na ataki. Ich lista wygląda następująco: echo (7), systat (11), netstat (15), chargen (19), FTP (21), telnet (23), SMTP (25), domain (53), bootp (67), TFTP (69), finger (79), http (80), pop2 (109), pop3 (110), portmap (111), loc-serv (135), nbname (137), nbdatagram (138), nbsession (139), SNMP (161), exec (512), login (513), shell (514), syslog (514), talk (517), ntalk (518), route (520) i uucp (540).

Zabezpieczanie portów zarezerwowanych

Pamiętać należy, że porty zarezerwowane to pierwsze 1024 porty, które wykorzystywane są przez usługi systemu. Połączenia wychodzące będą miały zazwyczaj numery wyższe od 1023. Oznacza to, że wszystkie pakiety przychodzące, kierowane do portów wyższych niż 1023, są odpowiedziami na zainicjowane w systemie żądania. Połączenia takie korzystają z portów zarezerwowanych, na których prowadzony jest nasłuch w oczekiwaniu żądań określonych usług. Nasłuchem zarządzają procesy systemowe albo demony usług. Gdy jednak oczekują one na uprawnione żądania połączeń, pozostają jednocześnie otwarte na nadużycia. Pamiętając o tej podstawowej zależności, przyjrzyjmy się teraz metodom „blokowania” portów zarezerwowanych i ochrony związanych z nimi usług.

Zanim jednak przejdziemy do konkretnych portów, czeka nas jeszcze krótki przegląd rejestru systemu Windows i demona Internet Services Database (inetd, baza danych usług internetowych) systemu UNIX. Dokładniej rzecz ujmując, inetd to proces zarządzania demonami, zapewniający obsługę wszystkich usług sieciowych pracujących w systemie UNIX. Opierając się na pliku konfiguracyjnym /etc/inetd.conf, zarządza on aktywacją usług (ftp, telnet, login i innych). W niniejszej książce odwołujemy się do pliku inetd.conf zgodnie z jego implementacją w systemie Linux, gdzie znajduje się w katalogu /etc/. Należy jednak pamiętać, że w wielu odmianach systemu UNIX jego lokalizacja może być inna. Przykładowo: w systemach AIX i Digital znajdziemy plik inetd.conf w katalogu /usr/sbin, w systemach HP-UX 9 i 10 — w katalogach, odpowiednio, /etc i /usr/lbin, w syste­mie IRIX — w /usr/etc, w Solarisie — /usr/sbin, a w systemie SunOS — /usr/etc.

W systemach Windows, do pewnego stopnia przyrównać można do uniksowego demona inetd rejestr systemu stanowiący hierarchiczną bazę danych, w której przechowuje się wszelkie ustawienia konfiguracyjne. Zastąpił on pełniące podobną rolę w Windows 3.x pliki .ini. Wszelkie dane systemowe z plików system.ini, win.ini i control.ini znaleźć można w ujednoliconej bazie rejestru. Umieszczają w nim informacje inicjalizacyjne i konfiguracyjne również wszystkie programy.

0x01 graphic

Przed wprowadzeniem jakichkolwiek modyfikacji w pliku inetd.conf lub rejestrze Windows, zawsze należy pamiętać o utworzeniu ich kopii zapasowych.

Port 7: Echo

Typowe schematy komunikacji nie wymagają aktywności usługi Echo. Jej jedyną rolą jest przesłanie odpowiedzi na komunikat przesłany jako żądanie połączenia TCP lub UDP. W takich wypadkach zaleca się więc całkowite wyłączenie usługi w celu uniknięcia potencjalnych ataków typu Denial of Service (DoS, „uniemożliwienie działania”). Zanim jednak to zrobimy, powinniśmy sprawdzić czy żadne oprogramowanie firmowe — jak monitorujące czy diagnostyczne — nie wymaga jej funkcjonowania.