skanowanie portów
| Po angielsku | port scanning |
|---|---|
| Którą formą pisać | po polsku Polska nazwa przyjęła się w tekstach i w wyszukiwarce — używaj jej samodzielnie. |
| Inne formy | skan portów |
| Kategoria | Sieć i infrastruktura obronna |
Skanowanie portów to systematyczne odpytywanie portów TCP i UDP hosta albo całego zakresu adresów, aby ustalić, które porty są otwarte i jakie usługi za nimi działają [4]. NIST opisuje je jako identyfikację portów i usług sieciowych na aktywnych hostach oraz aplikacji obsługujących każdą z tych usług [4]. Tej samej techniki używa atakujący w rozpoznaniu i administrator przy inwentaryzacji. CERT Polska wymienia aktywne przeszukiwanie przestrzeni adresowej i portów, na przykład narzędziem Nmap, jako jedną z metod inwentaryzacji sieci [6].
Jak działa
Port to numer, pod którym system przyjmuje połączenia danej usługi. IANA dzieli numery na porty systemowe 0–1023, porty użytkownika 1024–49151 oraz porty dynamiczne i prywatne 49152–65535 [7]. W tym samym rejestrze port 21 przypisano do FTP, a port 22 do protokołu SSH [7]. Skaner nie odczytuje przypisań z rejestru, tylko wysyła pakiety i obserwuje odpowiedzi. Samo polecenie nmap z adresem celu skanuje 1000 portów TCP [1].
Najpopularniejszą techniką jest skan SYN. Dokumentacja Nmapa nazywa go domyślną i najpopularniejszą opcją: na szybkiej sieci bez restrykcyjnych zapór sprawdza tysiące portów na sekundę i nigdy nie kończy połączeń TCP [2]. Skaner wysyła pierwszy pakiet uzgodnienia połączenia i ocenia odpowiedź. SYN/ACK oznacza port otwarty, RST port zamknięty, a brak odpowiedzi albo komunikat ICMP o nieosiągalności port filtrowany [3]. Na nieoczekiwane SYN/ACK odpowiada pakietem RST system operacyjny skanera, nie sam Nmap [3]. Przebieg pokazuje schemat poniżej.
Gdy użytkownik nie ma uprawnień do wysyłania surowych pakietów, Nmap używa skanu połączeniowego, który korzysta z wywołania systemowego connect; jest mniej wydajny i częściej zapisywany w logach celu [2]. Skan UDP bywa bardzo powolny, bo wiele systemów ogranicza liczbę komunikatów ICMP o błędach [2].
Stany portów
Nmap rozróżnia sześć stanów portu [1]. Dwa ostatnie, zapisywane z pionową kreską, oznaczają, że narzędzie nie potrafi rozstrzygnąć między dwiema możliwościami.
| Stan | Znaczenie |
|---|---|
| open | aplikacja przyjmuje połączenia TCP, datagramy UDP lub asocjacje SCTP [1] |
| closed | port odpowiada, ale nic na nim nie nasłuchuje [1] |
| filtered | filtrowanie pakietów nie pozwala ustalić, czy port jest otwarty [1] |
| unfiltered | port jest osiągalny, ale nie wiadomo, czy otwarty [1] |
| open lub filtered | nie da się ustalić, czy otwarty, czy filtrowany [1] |
| closed lub filtered | nie da się ustalić, czy zamknięty, czy filtrowany [1] |
Rozpoznanie usług
Otwarty port to dopiero początek. Według NIST skaner może zidentyfikować usługę, nawiązując z nią połączenie i porównując jej zachowanie z opisami znanych implementacji; ten proces pozwala ustalić także wersję oprogramowania [4]. Znaną odmianą jest pobieranie banerów, czyli odczyt informacji, które usługa sama wysyła po połączeniu; mogą zawierać nazwę i wersję aplikacji, a nawet systemu [4]. Metoda nie jest niezawodna, bo administrator może zmienić banery [4]. To jeden z powodów, dla których warto ograniczać ujawnianie wersji.
NIST podkreśla, że skanery portów nie identyfikują podatności. Aby je znaleźć, trzeba porównać wykryte wersje z listą wersji podatnych albo wykonać skanowanie podatności [4].
W WordPressie
Strona na WordPressie potrzebuje z internetu zwykle tylko portów WWW. Na serwerze VPS działa jednak więcej usług: dostęp administracyjny, przesyłanie plików, baza danych. CERT Polska wymienia usługi, które nie powinny być dostępne publicznie: zdalny pulpit i konsolę (RDP, VNC), bazy danych, w tym MySQL i PostgreSQL, serwery plików, w tym FTP, oraz panele administracyjne urządzeń [5]. Baza danych WordPressa powinna więc przyjmować połączenia tylko z serwera aplikacji.
Skan własnego serwera z zewnątrz pokazuje usługi, które zostały otwarte przez pomyłkę albo po migracji. Dostęp do plików lepiej zapewnić przez SFTP niż FTP, a dostęp administracyjny ograniczyć przez białą listę adresów IP lub VPN i chronić logowaniem kluczem SSH. Na hostingu współdzielonym listą otwartych portów zarządza dostawca.
Zagrożenia i znaczenie
Skanowanie portów to typowy krok rozpoznania. NIST wskazuje, że w fazie rozpoznania testu penetracyjnego identyfikacja portów i usług służy do wyznaczenia potencjalnych celów [4]. CERT Polska zauważa, że publiczna przestrzeń adresowa organizacji jest nieustannie skanowana, więc każda nasłuchująca usługa jest potencjalnym wektorem ataku [5]. Liczba otwartych portów to część powierzchni ataku.
Skan ma też koszt operacyjny. Może zużywać przepustowość i spowalniać sieć, dlatego NIST zaleca staranny dobór narzędzia i ewentualnie skanowanie poza godzinami pracy [4]. Artemis CERT Polska celowo ogranicza liczbę skanowanych portów i pakietów wysyłanych na sekundę do jednego serwera [8]. Po drugiej stronie zapora sieciowa sprawia, że porty są widoczne jako filtrowane, a systemy IDS mogą rozpoznać skanowanie.
Dobre praktyki
- Regularnie skanować własną infrastrukturę z zewnątrz i porównywać wynik z udokumentowaną inwentaryzacją [5].
- Przeglądać i aktualizować rejestr zasobów nie rzadziej niż co pół roku, a proces obsługi nieautoryzowanych urządzeń uruchamiać co najmniej raz w tygodniu, jak zaleca CIS Control 1 przywoływany przez CERT Polska [6].
- Jeśli wykonuje się skan zewnętrzny i wewnętrzny, zacząć od zewnętrznego; NIST zaleca taką kolejność, by móc porównać logi [4].
- Każdą otwartą usługę uzasadnić, a zbędne wyłączyć; pomaga w tym segmentacja sieci i zasada najmniejszych uprawnień.
- Korzystać z zewnętrznych usług skanujących, takich jak Artemis, dostępnych dla polskich podmiotów przez moje.cert.pl [8].
Przypisy
8- [1] Port Scanning Basics — Nmap Reference Guide · Nmap Project
- [2] Port Scanning Techniques — Nmap Reference Guide · Nmap Project
- [3] TCP SYN (Stealth) Scan (-sS) · Nmap Project
- [4] NIST SP 800-115: Technical Guide to Information Security Testing and Assessment · NIST
- [5] Usługi dostępne publicznie · CERT Polska
- [6] Inwentaryzacja · CERT Polska
- [7] Service Name and Transport Protocol Port Number Registry · IANA
- [8] Artemis · CERT Polska