Zabezpieczenia portów i protokołów

Transkrypt

Zabezpieczenia portów i protokołów
Zabezpieczenia portów i protokołów
Na początek poznamy rolę portów i protokołów, pokażemy jak ustalać które porty są otwarte i jakie aplikacje z nich korzystają.
Potem opowiemy sobie o usługach, czyli wyspecjalizowanych programach wspomagających inne aplik acje lub inne usługi.
Powody, dla których warto poznać usługi i sposoby zarządzania nimi, są dwa: Po pierwsze - usługi mniej lub bardziej kontrolują
dostęp do swoich portów. Po drugie - najczęściej pracują jako uprzywilejowany użytkownik - System lub Usługa Lokalna.
Porty i protokoły a dostęp do komputera.
Zanim dwa komputery połączą się ze sobą przez sieć opartą na protokole TCP/IP muszą uzgodnić między sobą numer portu, na
którym odbywać się będzie transmisja danych. W sieciach port nie jest fizycznym gni azdem, jak złącze USB, lecz odgórnie
ustalonym numerem używanym przez oba komputery służącym do zdefiniowania "kanału", na którym odbywa się wymiana
danych. Nawiązanie połączenia odbywa się następująco: Komputer inicjujący wysyła żądanie na określony numer IP i port.
Jednostka docelowa natomiast nasłuchuje na tym porcie i na podstawie numeru IP komputera źródłowego oraz informacji
zawartych w wiadomości inicjującej decyduje czy odrzucić, czy zaakceptować połączenie. W globalnej pajęczynie używa się
głównie dwóch protokołów (należących do TCP/IP) do komunikacji między komputerami. Są to TCP (Transmission Control
Protocol) i UDP (User Datagram Protocol). W przypadku korzystania z TCP komputery nawiązują stałe połączenie między sobą i
komputer odbierający potwi erdza przybycie każdego pakietu. Jeżeli jednostka nadająca nie otrzyma potwierdzenia odebrania
pakietu, wysyła go ponownie. Zapewnia to niezawodną transmisję danych od źródła do celu, ale generuje spore obciążenie
sieci, gdyż poza właściwym strumieniem dan ych przesyłane są jeszcze pakiety kontrolne. W protokole UDP sprawa ma się
inaczej. Komputer źródłowy wysyła do sieci całą informację w postaci pakietów UDP i nie sprawdza, czy dotarła ona w całości
do celu. Może się to wydawać beznadziejnym rozwiązaniem, ale jest tak tylko na pozór. Protokół UDP doskonale sprawdza się
przy przesyłaniu strumieni audio lub wideo, gdzie utrata paru bajtów czy nawet jednego pakietu jest dla użytkownika
praktycznie niezauważalna, a sieć jest mniej obciążana ze względu na brak p akietów kontrolnych.
Przypisanie portów do protokołów
W większości rozwiązań sieciowych panuje zasada: jedna aplikacja - jeden port (lub zakres portów). Dlatego port jest ściśle
związany z protokołem, którego używa nasłuchujący na nim program. TCP i UDP są tzw. protokołami warstwy transportowej,
czyli są odpowiedzialne za fizyczne przesyłanie danych w formie pakietów. Zadaniem protokołów warstwy aplikacji jest
interpretacja pakietów na użytek danego narzędzia. Aby połączyć się z programem trzeba wiedzieć na którym porcie nasłuchuje
i jakiego protokołu używa. Przedstawmy prosty przykład: gdy łączymy się z serwerem WWW, nasza przeglądarka łączy się z
serwerem na porcie osiemdziesiątym i używa protokołu HTTP. Prawie każdy widział źródłowy kod HTML. To właśnie o n jest
przesyłany przez TCP, a protokół HTML na podstawie źródła buduje stronę WWW, a przeglądarka wyświetla ją na monitorze.
Port
21
22
Protokół
FTP
SSH
23
25
80
110
137139
443
Telnet
SMTP
HTTP
POP3
NETBIOS
Uwagi
Protokół transmisji plików.
Bezpieczne logowanie do powłoki systemów
Unix/Linux
Protokół prosty terminal znakowego.
Protokół pocztowy (wysyłający)
Protokół przesyłania dokumentów WWW.
Protokół pocztowy (odbierający)
Network Basic Input/Output System
HTTPS
Bezpieczna sesja HTTP
Numery portów i odpowiadających im protokołów są ujednolicone (patrz tabela). To znaczy, że serwer WWW prawie zawsze
odpowie na żądanie na porcie 80 lub 443, Serwer pocztowy zawsze będzie się komunikował z programem pocztowym na
portach 25 i 110. Bardzo ułatwia to r uch w sieci, bo nie musimy za każdym razem dowiadywać się o konfigurację portów
serwera, z usług którego zamierzamy skorzystać. Oczywiście można skonfigurować serwer WWW (czy jakikolwiek inny), aby
jego zawartość była dostępna na innym porcie. Czasami znaj duje to zastosowanie. Wtedy adres w przeglądarce napiszemy tak:
http://www.jakisserwer.pl:1234 /.
Zestawianie połączenia z portem
Aplikacja w komputerze-kliencie chcąc podłączyć się do jakiejś usługi lub innej aplikacji na komputerze-serwerze tworzy
połączenie sieciowe i wysyła pakiet zawierający swój IP i numer portu, z którym chce się połączyć, np. 80 dla protokołu HTTP.
Załóżmy, że używamy TCP. W tym wypadku połączenie istnieje między portem 80 serwera a dyn amicznym portem (czyli
losowym wolnym portem z zakresu 1024 -16383) klienta. Teraz możemy wymieniać z serwerem wiele pakietów, przesyłać i
…………………………………………………………………………………………………………………………… …………………………………
SO Zabezpieczenia portów i protokołów
ZSM Świdnica Źródło: Internet
1/4
odbierać kilobajty różnych informacji, sprawdzając przy okazji poprawność transmisji, aż zakończymy połączenie (lub zr obi to
serwer).
Przy użyciu UDP cały proces jest prostszy: Wysyłamy do serwera (a właściwie tylko "w kierunku" serwera - adresujemy i
puszczamy w świat) pakiet UDP z jakąś informacją. Tu nie mamy pewności czy serwer otrzyma pakiet, ze względu na brak
mechanizmów kontroli transmisji w tym protokole.
Jeżeli serwer, do którego wysyłamy dane nie nasłuchuje na porcie, z którym próbujemy się połączyć - nasze pakiety są
odrzucane. Jest tak zarówno dla TCP jak i UDP. Łatwo stąd wysnuć wniosek - im mniej otwartych portów, na których nasłuchuje
nasz komputer - tym trudniej o włamanie.
Ustalamy aktywne porty
Nie można ograniczyć ilości otwartych portów bez wiedzy, które porty są aktywne i jakie programy z nich korzystają - możemy
tylko całkowicie wyłączyć dostęp z zewn ątrz i przez to uniemożliwić sobie komunikację z zasobami Internetu czy sieci lokalnej.
Chociaż nie ma jednego narzędzia podającego wszystkie potrzebne informacje - posłużymy się kilkoma programami
pomocniczymi. Po pierwsze - Menedżer zadań. Ukazuje on wszystkie uruchomione procesy, wyświetla ich PID (identyfikator) i
właściciela procesu. Aby uruchomić Menedżera zadań wciśnij [Shift+Ctrl+Esc].
Standardowo Menedżer nie wyświetla PIDów. Aby to zmienić przejdź do zakładki Procesy, kliknij menu Widok i Wybierz
kolumny..., zaznacz pole PID i kliknij OK. Drugim narzędziem, którym będziemy się posługiwać jest tasklist, uruchamiany z
wiersza poleceń, szczególnie z przełącznikiem /SVC, ukazującym uruchomione usługi dla każdego z procesów. Dodatkowo
posłużymy się programem netstat, również uruchamianym z wiersza polecenia. dodając przełącznik /O, dzięki któremu dowiesz
się, jaki jest PID programu, który otworzył każde z aktywnych połączeń:
Teraz już łatwo się domyślić, że wystarczy sprawdzić PID w Menedżerze zadań i od razu wiemy, który program używa dan ego
portu oraz z jakim adresem się łączy. Porównajmy PID 332 z okna netstat i Menedżera zadań. Już wiesz jaką stronę
oglądamy i w jakiej przeglądarce? Proste.
Jeżeli w systemie nie ma żadnych aktywnych połączeń, nie zobaczymy żadnych rezultatów po wykonaniu netstat /O. Aby
wyświetlić wszystkie porty, nawet nieaktywne, ale nasłuchujące wywołaj z wiersza polecenia netstat /A. Aby dodatkowo
…………………………………………………………………………………………………………………………… …………………………………
SO Zabezpieczenia portów i protokołów
ZSM Świdnica Źródło: Internet
2/4
wyświetlić PIDy właścicieli portów i numery portów zamiast ich nazw - uruchomimy netstat /ANO. Przykładowe wywołanie
poniżej.
Widzimy wiele portów nasłuchujących zarówno TCP i UDP i dwa aktywne TCP. Teraz ł atwo ustalić, które programy prowadzą
nasłuch na tych portach. Na stronie organizacji IANA, zajmującej się rejestracją portów i powiązanych z nimi usług
(http://www.iana.org/assignments/port -numbers) sprawdźmy usługę na porcie 139 uruchomiony na naszym kom puterze przez
proces o identyfikatorze 4. Jest to NetBIOS session service . Według Menedżera zadań usługę tę uruchomiono jako
użytkownik System. Port 1465 został przypisany dynamicznie dla przeglądarki internetowej. Port 1900 na protokole UDP jest
używany przez svchost.exe. Tasklist /SVC pokazuje, że proces ten uruchamia ponad 20 usług i nie da się przy użyciu tych
narzędzi stwierdzić, która usługa go używa. W tym wypadku znowu zaglądamy na listę IANA i widzimy, że ten port
odpowiedzialny jest za obsługę uPn P.
W ten sposób możesz uzyskać informacje o każdym aktywnym lub nasłuchującym porcie w twoim komputerze.
Ograniczanie dostępu do portów
Podstawowym celem naszego działania będzie ograniczenie ilości portów dostępnych z zewnątrz. Możemy zrealizować to na t rzy sposoby:



Zapora połączenia internetowego . To łatwe w konfiguracji narzędzie pozwala zablokować cały ruch przychodzący z wyjątkiem
odpowiedzi na połączenia inicjowane z naszego komputera. Blokuje dostęp z zewnątrz do nasłuchujących portów.
Filtrowanie TCP/IP. Pozwalają odrzucić lub zaakceptować przychodzące połączenie na podstawie adresu źródłowego, numeru
portu lub protokołu komputera wywołującego.
Filtrowanie IPSec. Mechanizm przypomina filtry TCP/IP, ale pozwalają na dodatkową ochronę przez szyfrowani e lub
uwierzytelnianie przychodzącego połączenia.
Szczegółowe informacje na temat konfiguracji i używania Zapory Windows znajdziesz w innym artykule, dlatego nie będziemy poruszali tego
zagadnienia.
Filtrowanie TCP/IP
W Windows XP opcja ta jest bardzo ogra niczona, ponieważ filtrować można tylko pakiety przychodzące i tylko na podstawie
numeru portu i nazwy protokołu. Aby włączyć filtr TCP/IP wykonajmy poniższe kroki: Otwórz Panel sterowania, a w nim
Połączenia sieciowe, prawym przyciskiem myszy kliknij połą czenie z Internetem i wybierz Właściwości. W zakładce Ogólne
zaznacz Protokół internetowy (TCP/IP) i kliknij przycisk Właściwości. W kolejnym kroku w zakładce Ogólne okna
Właściwości kliknij przycisk Zaawansowane i wybierz zakładkę Opcje. Następnie w polu Ustawienia opcjonalne zaznacz
Filtrowanie TCP/IP i kliknij przycisk Właściwości. W ostatnim kroku zaznacz pole wyboru Włącz filtrowanie i wprowadź
kryteria filtrowania.
Nasuwa się tylko jeden logiczny powód, dla którego opcje filtrowania TCP/IP są tak ukry te w systemie. W gruncie rzeczy ta
usługa jest bezużyteczna. Bez możliwości filtrowania adresów IP jej przydatność jest znikoma i ogranicza się w praktyce do
zablokowania wszystkich portów z podanymi wyjątkami. Filtr protokołów również jest nic nie warty, ponieważ praktycznie cały
ruch sieciowy odbywa się po protokołach TCP, UDP i ICMP. Jeśli je zablokujesz - sam nie będziesz mógł korzystać z Internetu.
Zamiast filtrowania TCP/IP bezpieczniej jest użyć wbudowanej Zapory połączenia internetowego.
IP Security (IPSec)
IPSec stanowi dobry mechanizm bezpieczeństwa. Potrafi kontrolować ruch przychodzący i wychodzący, a na podstawie modelu
filtrowania konkretne połączenie może zostać zablokowane, przepuszczone, uwierzytelnione, zaszyfrowane lub uwierzytelnione i
zaszyfrowane jednocześnie. W odróżnieniu od kontroli TCP/IP, w której podaje się tylko dozwolone lub blokowane adresy IP,
IPSec negocjuje bezpieczne połączenie między komputerami. Konsola zabezpieczeń lokalnych, w której można zainstalować
przystawkę IPSec jest dostępna wyłącznie w systemie Windows XP Professional i uruchamia się ją z wiersza polecenia ( mmc).
…………………………………………………………………………………………………………………………… …………………………………
SO Zabezpieczenia portów i protokołów
ZSM Świdnica Źródło: Internet
3/4
IPSec najlepiej sprawdza się w dużych sieciach o wielkiej ilości ważnych danych, np. w systemach korporacyjnych i bankowych,
dlatego nie skupimy się na instalacji i konfiguracji tego narzędzia.
Wyłączanie zbędnych usług
W Windows XP domyślnie uruchomionych jest mnóstwo usług. Większość uruchamia się automatycznie wraz z
systemem. Zamykając niepotrzebne usługi możemy zwiększyć nie tylko bezpieczeństwo, al e także wydajność
komputera. Konsola zarządzania usługami dostępna jest z Panelu sterowania. Wybierz Narzędzia
administracyjne (kategoria Wydajność i konserwacja ) i kliknij ikonę Usługi.
Uruchomione usługi poznamy po kolumnie Stan. Kolumna Typ uruchomienia określa sposób, w jaki włączane będą usługi.
Automatyczny - wraz z systemem, Ręczny - tylko wtedy gdy wymagać jej będzie jakiś program, Wyłączony - usługa nie
zostanie uruchomiona nawet, gdy będzie wymagana przez program. Większość usług można dowolnie włączać i wyłączać.
Ale! Zanim w dzikim szale rzucisz się do wyłączania każdej usługi po kolei pamiętaj - wyłączenie usługi niezbędnej dla systemu
spowoduje niemożność jego uruchomienia.
Usługi, które bezpiecznie możesz wyłączyć, to:












ClipBook - jeżeli nie posiadasz aplikacji ClipBook Viewer
Usługa raportowania błędów - jeżeli nie chcesz, by Windows wysyłał do Microsoftu informacji i awariach systemu i
aplikacji, wyłącz ją następująco: wejdź w Panel Sterowania, System, Zaawansowane, Raportowanie błędów i
przełącz opcję na Wyłącz raportowanie błędów .
Publikowanie za pomocą usługi FTP - dla bezpieczeństwa wyłącz tę usługę, chyba, że naprawdę jej potrzebujesz.
NetMeeting Remote Desktop Sharing - Udostępnia pulpit w programie NetMeeting. Jeżeli go nie używasz lub nie
chcesz udostępniać w nim pulpitu - wyłącz.
DSDM DDE sieci
Menedżer autopołączenia zdalnego dostępu - wyłącz, jeżeli nie używasz modemu.
Menedżer sesji pomocy pulpitu zdalnego - wyłącz, jeżeli nie korzystasz z pomocy zdalnej.
Rejestr Zdalny - dla większego bezpieczeństwa wyłącz tę usługę.
Magazyn wymienny - praktycznie nieużywana usługa.
Routing i dostęp zdalny
Simple Mail Transfer Protocol - wyłącz, jeżeli nie posiadasz na komputerze serwera pocztowego
Telnet
Inne usługi warto pozostawić w ich domyślnym ustawie niu. Dobrym zwyczajem jest uprzednie przełączenie usługi na tryb
ręczny, popracowanie na komputerze parę dni i wyłączenie usługi dopiero, gdy nie stwierdziło się nienormalnego zachowania
systemu.
…………………………………………………………………………………………………………………………… …………………………………
SO Zabezpieczenia portów i protokołów
ZSM Świdnica Źródło: Internet
4/4