Cisco CyberOps Associate - Usługi sieciowe

1. Usługa Dynamic Host Configuration Protocol (DHCP) dla IPv4 automatyzuje przypisywanie adresów IPv4, masek podsieci, bram i innych parametrów sieciowych IPv4. Nazywa się to adresowaniem dynamicznym. Alternatywą dla adresowania dynamicznego jest adresowanie statyczne. Korzystając z adresowania statycznego, administrator sieci ręcznie wprowadza informacje o adresie IP na hostach.

Gdy host łączy się z siecią, kontaktowany jest serwer DHCP, a następnie żądany jest adres. Serwer DHCP wybiera adres z skonfigurowanego zakresu adresów zwanych pulą i przypisuje (wynajmuje) go hostowi.

W większych sieciach lub tam, gdzie populacja użytkowników często się zmienia, preferowane jest przypisywanie adresów przez DHCP. Mogą przybywać nowi użytkownicy, którzy potrzebują połączeń; inni mogą mieć nowe komputery, które muszą być podłączone. Zamiast używać adresowania statycznego dla każdego połączenia, efektywniej jest mieć adresy IPv4 przypisywane automatycznie za pomocą DHCP.

DHCP może przydzielać adresy IP na konfigurowalny okres czasu, zwany okresem dzierżawy. Okres dzierżawy jest ważnym ustawieniem DHCP. Gdy okres dzierżawy wygasa lub serwer DHCP otrzymuje wiadomość DHCPRELEASE, adres jest zwracany do puli DHCP do ponownego użycia. Użytkownicy mogą swobodnie przemieszczać się z miejsca na miejsce i łatwo nawiązywać połączenia sieciowe za pomocą DHCP.

Serwerem DHCP w większości sieci średniej i dużej wielkości jest zazwyczaj lokalny, dedykowany serwer oparty na komputerze PC. W sieciach domowych serwer DHCP zwykle znajduje się na lokalnym routerze, który łączy sieć domową z dostawcą usług internetowych (ISP).

Wiele sieci korzysta zarówno z DHCP, jak i adresowania statycznego. DHCP jest używane dla hostów o ogólnym przeznaczeniu, takich jak urządzenia końcowe użytkowników. Adresowanie statyczne jest używane dla urządzeń sieciowych, takich jak routery bramy, przełączniki, serwery i drukarki.

DHCP dla IPv6 (DHCPv6) zapewnia podobne usługi dla klientów IPv6. Jedną ważną różnicą jest to, że DHCPv6 nie dostarcza adresu bramy domyślnej. Można go uzyskać tylko dynamicznie z wiadomości Router Advertisement routera.

2. Gdy urządzenie z konfiguracją IPv4 DHCP uruchamia się lub łączy z siecią, klient wysyła wiadomość odkrycia DHCP (DHCPDISCOVER), aby zidentyfikować dostępne serwery DHCP w sieci. Serwer DHCP odpowiada wiadomością oferty DHCP (DHCPOFFER), która oferuje dzierżawę klientowi. Wiadomość oferty zawiera przypisywany adres IPv4 i maskę podsieci, adres IPv4 serwera DNS oraz adres IPv4 domyślnej bramy. Oferta dzierżawy obejmuje również czas trwania dzierżawy.

Klient może otrzymać wiele wiadomości DHCPOFFER, jeśli w lokalnej sieci jest więcej niż jeden serwer DHCP. Dlatego musi wybrać między nimi i wysyła wiadomość żądania DHCP (DHCPREQUEST), która identyfikuje konkretny serwer i ofertę dzierżawy, które klient akceptuje. Klient może również wybrać żądanie adresu, który wcześniej został mu przydzielony przez serwer.

Zakładając, że adres IPv4 żądany przez klienta lub oferowany przez serwer, jest nadal dostępny, serwer zwraca wiadomość potwierdzenia DHCP (DHCPACK), która potwierdza klientowi, że dzierżawa została sfinalizowana. Jeśli oferta nie jest już ważna, wybrany serwer odpowiada wiadomością negatywnego potwierdzenia DHCP (DHCPNAK). Jeśli zwrócona zostanie wiadomość DHCPNAK, proces wyboru musi zacząć się od nowa z transmisją nowej wiadomości DHCPDISCOVER. Po uzyskaniu dzierżawy klient musi ją odnowić przed upływem okresu dzierżawy za pomocą kolejnej wiadomości DHCPREQUEST.

Serwer DHCP zapewnia, że wszystkie adresy IP są unikalne (ten sam adres IP nie może być przypisany do dwóch różnych urządzeń sieciowych jednocześnie). Większość dostawców usług internetowych (ISP) używa DHCP do przydzielania adresów swoim klientom.


DHCPv6 ma zestaw wiadomości podobnych do tych dla DHCPv4. Wiadomości DHCPv6 to SOLICIT, ADVERTISE, INFORMATION REQUEST i REPLY.

3. Format wiadomości (komunikatu) DHCPv4 jest używany do wszystkich transakcji DHCPv4. Wiadomości DHCPv4 są kapsułkowane w protokole transportowym UDP. Wiadomości DHCPv4, które są wysyłane od klienta, używają portu źródłowego UDP 68 i portu docelowego 67. Wiadomości DHCPv4 wysyłane od serwera do klienta używają portu źródłowego UDP 67 i portu docelowego 68.

Format komunikatu DHCP:

  1. Kod operacji (OP) - Określa ogólny typ wiadomości. Wartość 1 wskazuje wiadomość żądania; wartość 2 to wiadomość odpowiedzi.
  2. Typ sprzętu - Identyfikuje typ sprzętu używanego w sieci. Na przykład, 1 to Ethernet, 15 to Frame Relay, a 20 to linia szeregowa. Są to te same kody, które są używane w wiadomościach ARP.
  3. Długość adresu sprzętowego - Określa długość adresu.
  4. Skoki - Kontroluje przekazywanie wiadomości. Ustawione na 0 przez klienta przed przesłaniem żądania.
  5. Identyfikator transakcji - Używany przez klienta do dopasowania żądania z otrzymanymi odpowiedziami od serwerów DHCPv4.
  6. Sekundy - Identyfikuje liczbę sekund, które upłynęły od momentu, gdy klient zaczął próbować nabyć lub odnowić dzierżawę. Używane przez serwery DHCPv4 do priorytetowego przetwarzania odpowiedzi, gdy wiele żądań klientów jest niewykonanych.
  7. Flagi - Używane przez klienta, który nie zna swojego adresu IPv4, gdy wysyła żądanie. Używany jest tylko jeden z 16 bitów, który jest flagą rozgłoszeniową. Wartość 1 w tym polu mówi serwerowi DHCPv4 lub agentowi przekazującemu żądanie, że odpowiedź powinna być wysłana jako rozgłoszenie.
  8. Adres IP klienta - Używany przez klienta podczas odnawiania dzierżawy, gdy adres klienta jest ważny i użyteczny, nie podczas procesu pozyskiwania adresu. Klient wprowadza swój własny adres IPv4 do tego pola tylko i wyłącznie, jeśli ma ważny adres IPv4 podczas bycia w stanie związanym; w przeciwnym razie ustawia pole na 0.
  9. Twój adres IP - Używany przez serwer do przypisania adresu IPv4 klientowi.
  10. Adres IP serwera - Używany przez serwer do identyfikacji adresu serwera, którego klient powinien użyć do następnego kroku w procesie rozruchu, który może, ale nie musi być serwerem wysyłającym tę odpowiedź. Wysyłający serwer zawsze zawiera swój własny adres IPv4 w specjalnym polu o nazwie Opcja identyfikatora serwera DHCPv4.
  11. Adres IP bramy - Trasy wiadomości DHCPv4, gdy są zaangażowane agenty przekazujące DHCPv4. Adres bramy ułatwia komunikację żądań i odpowiedzi DHCPv4 między klientem a serwerem, które są na różnych podsieciach lub sieciach.
  12. Adres sprzętowy klienta - Określa warstwę fizyczną klienta.
  13. Nazwa serwera - Używana przez serwer wysyłający wiadomość DHCPOFFER lub DHCPACK. Serwer może opcjonalnie umieścić swoją nazwę w tym polu. Może to być prosta nazwa tekstowa lub nazwa domeny DNS, taka jak dhcpserver.netacad.net.
  14. Nazwa pliku rozruchowego - Opcjonalnie używana przez klienta do żądania określonego typu pliku rozruchowego w wiadomości DHCPDISCOVER. Używany przez serwer w DHCPOFFER do pełnego określenia katalogu i nazwy pliku rozruchowego.
  15. Opcje DHCP - Przechowuje opcje DHCP, w tym kilka parametrów wymaganych do podstawowej operacji DHCP. To pole ma zmienną długość. Zarówno klient, jak i serwer mogą używać tego pola.
4. System Domain Name System (DNS) umożliwia zarządzanie i dostarczanie nazw domen i powiązanych z nimi adresów IP. DNS składa się z globalnej hierarchii rozproszonych serwerów, które zawierają bazy danych mapowań nazw na adresy IP. Większość zagrożeń dla bezpieczeństwa sieci wykorzystuje DNS do przeprowadzania ataków sieciowych. DNS składa się z hierarchii domen najwyższego poziomu (gTLD), które obejmują .com, .net, .org, .gov, .edu i liczne domeny krajowe. Na następnych poziomach hierarchii DNS znajdują się domeny drugiego poziomu i subdomeny. Różne domeny najwyższego poziomu reprezentują albo typ organizacji, albo kraj pochodzenia.


5. Istotne pojęcia:

  • Resolver - Klient DNS, który wysyła wiadomości DNS, aby uzyskać informacje o żądanej przestrzeni nazw domen. Rekursja - Działanie podjęte, gdy serwer DNS jest poproszony o zapytanie w imieniu resolvera DNS. 
  • Serwer autorytatywny - Serwer DNS, który odpowiada na wiadomości zapytań informacjami przechowywanymi w rekordach zasobów (RR) dla przestrzeni nazw domen przechowywanej na serwerze. 
  • Rekursywny Resolver - Serwer DNS, który rekursywnie wysyłuje zapytania o informacje, o które pytano w zapytaniu DNS. 
  • FQDN - Pełna nazwa domeny (Fully Qualified Domain Name) to absolutna nazwa urządzenia w rozproszonej bazie danych DNS. 
  • RR - Rekord zasobu to format używany w wiadomościach DNS, który składa się z następujących pól: NAME, TYPE, CLASS, TTL, RDLENGTH i RDATA. 
  • Strefa - Baza danych zawierająca informacje o przestrzeni nazw domen przechowywanej na serwerze autorytatywnym. 

Podczas próby rozwiązania nazwy na adres IP, host użytkownika, znany w systemie jako resolver, najpierw sprawdzi swoją lokalną pamięć podręczną DNS. Jeśli mapowanie nie zostanie tam znalezione, zostanie wysłane zapytanie do serwera DNS lub serwerów, które są skonfigurowane w właściwościach adresowania sieci dla resolvera. Te serwery mogą być obecne w przedsiębiorstwie lub ISP. Jeśli mapowanie nie zostanie tam znalezione, serwer DNS zapyta inne serwery DNS wyższego poziomu, które są autorytatywne dla domeny najwyższego poziomu, aby znaleźć mapowanie. Są to tzw. zapytania rekursywne.

6. Ze względu na potencjalne obciążenie serwerów domen najwyższego poziomu, niektóre serwery DNS w hierarchii utrzymują pamięć podręczną wszystkich rekordów DNS, które rozwiązano przez pewien okres czasu. Te serwery DNS z pamięcią podręczną mogą rozwiązywać zapytania rekursywne bez przekazywania zapytań do serwerów wyższego poziomu. Jeśli serwer wymaga danych dla strefy, poprosi o przekazanie tych danych z autorytatywnego serwera dla tej strefy. Proces przenoszenia bloków danych DNS między serwerami nazywa się transferem strefy.



Krok 1: Użytkownik wpisuje pełną nazwę domeny (FQDN) do pola adresu aplikacji przeglądarki.
Krok 2: Zapytanie DNS jest wysyłane do wyznaczonego serwera DNS dla komputera klienta.
Krok 3: Serwer DNS dopasowuje FQDN do jego adresu IP.
Krok 4: Odpowiedź na zapytanie DNS jest wysyłana z powrotem do klienta z adresem IP dla FQDN.
Krok 5: Komputer klienta używa adresu IP do wysyłania żądań do serwera.

7. System Domain Name System (DNS) używa portu UDP 53 do przesyłania zapytań i odpowiedzi DNS. Zapytania DNS są inicjowane przez klienta, a odpowiedzi są generowane przez serwery DNS. Jeśli odpowiedź DNS przekracza 512 bajtów, na przykład podczas korzystania z Dynamicznego DNS (DDNS), do obsługi wiadomości używany jest port TCP 53. Komunikacja protokołu DNS korzysta z jednolitego formatu nazywanego “wiadomością”. Ten format wiadomości jest używany do wszystkich typów zapytań klienta i odpowiedzi serwera, komunikatów o błędach oraz transferu informacji o rekordach zasobów między serwerami.

Serwer DNS przechowuje różne typy rekordów zasobów (RR), które są używane do rozwiązywania nazw. Te rekordy zawierają nazwę, adres i typ rekordu. Niektóre typy rekordów:

  • A - Adres IPv4 urządzenia końcowego
  • NS - Autorytatywny serwer nazw
  • AAAA - Adres IPv6 urządzenia końcowego (wymawiane jako quad-A)
  • MX - Rekord wymiany poczty

Gdy klient wysyła zapytanie, proces DNS na serwerze najpierw sprawdza swoje własne rekordy, aby rozwiązać nazwę. Jeśli nie jest w stanie rozwiązać nazwy za pomocą swoich przechowywanych rekordów, kontaktuje się z innymi serwerami, aby rozwiązać nazwę. Po znalezieniu i zwróceniu dopasowania do oryginalnego żądającego serwera, serwer tymczasowo przechowuje adres numeryczny na wypadek, gdyby ta sama nazwa była ponownie żądana.

Usługa klienta DNS na komputerach z systemem Windows również przechowuje wcześniej rozwiązane nazwy w pamięci. Polecenie ipconfig /displaydns wyświetla wszystkie buforowane wpisy DNS.

DNS używa tego samego formatu wiadomości między serwerami, składającego się z pytania, odpowiedzi, autorytetu i dodatkowych informacji dla wszystkich typów zapytań klienta i odpowiedzi serwera, komunikatów o błędach i transferu informacji o rekordach zasobów. Poniżej opisano każdą sekcję wiadomości DNS:

  • Pytanie - Pytanie do serwera. Zawiera nazwę domeny do rozwiązania, klasę domeny i typ zapytania.
  • Odpowiedź - Rekord zasobu DNS, lub RR, dla zapytania, w tym rozwiązany adres IP w zależności od typu RR.
  • Autorytet - Zawiera RR dla autorytetu domeny.
  • Dodatkowe - Dotyczy tylko odpowiedzi na zapytania. Składa się z RR, które zawierają dodatkowe informacje, które uczynią rozwiązanie zapytania bardziej efektywnym.
8. DNS wymaga od rejestratorów akceptacji i dystrybucji mapowań DNS od organizacji, które chcą zarejestrować mapowania nazw domen i adresów IP. Po utworzeniu początkowego mapowania, proces, który może trwać 24 godziny lub dłużej, zmiany w adresie IP, który jest mapowany na nazwę domeny, mogą być dokonane poprzez skontaktowanie się z rejestratorem lub użycie formularza online do dokonania zmiany. Jednak ze względu na czas, jaki upływa na przeprowadzenie tego procesu i dystrybucję nowego mapowania w systemie nazw domen, zmiana może zająć kilka godzin, zanim nowe mapowanie będzie dostępne dla resolverów. W sytuacjach, w których ISP używa DHCP do dostarczania adresów do domeny, możliwe jest, że adres, który jest mapowany na domenę, może wygasnąć, a nowy adres może być przyznany przez ISP. Spowodowałoby to przerwę w łączności z domeną poprzez DNS. Potrzebne było nowe podejście, aby organizacje mogły szybko dokonywać zmian w adresie IP, który jest mapowany na domenę.

Dynamiczny DNS (DDNS) pozwala użytkownikowi lub organizacji zarejestrować adres IP z nazwą domeny, jak w DNS. Jednak gdy adres IP mapowania ulega zmianie, nowe mapowanie może być propagowane przez DNS prawie natychmiast. Aby to miało miejsce, użytkownik uzyskuje subdomenę od dostawcy DDNS. Ta subdomena jest mapowana na adres IP serwera użytkownika lub domowego połączenia routera z internetem. Oprogramowanie klienta działa na routerze lub komputerze hosta, który wykrywa zmianę adresu IP internetu użytkownika. Gdy wykryta zostanie zmiana, dostawca DDNS jest natychmiast informowany o zmianie, a mapowanie między subdomeną użytkownika a adresem IP internetu jest natychmiast aktualizowane, jak pokazano na rysunku. DDNS nie używa prawdziwego wpisu DNS dla adresu IP użytkownika. Zamiast tego działa jako pośrednik. Domena dostawcy DDNS jest zarejestrowana w DNS, ale subdomena jest mapowana na zupełnie inny adres IP. Usługa dostawcy DDNS dostarcza ten adres IP do serwera DNS drugiego poziomu resolvera. Ten serwer DNS, zarówno w organizacji, jak i ISP, dostarcza adres IP DDNS do resolvera.

Dynamiczny DNS może być nadużywany przez aktorów zagrożeń na różne sposoby. Darmowe usługi DDNS są szczególnie przydatne dla aktorów zagrożeń. DDNS może być używany do ułatwienia szybkiej zmiany adresu IP dla serwerów poleceń i kontroli malware po tym, jak obecny adres IP został szeroko zablokowany. W ten sposób malware może być kodowane z URL zamiast statycznego adresu IP. DDNS może być również używany jako sposób na wydobycie danych z wnętrza sieci, ponieważ ruch DNS jest bardzo powszechny i często uważany za nieszkodliwy. Sam DDNS nie jest złośliwy, jednak monitorowanie ruchu DNS, który jest kierowany do znanych usług DDNS, zwłaszcza darmowych, jest bardzo przydatne do wykrywania exploitów.

9. WHOIS to protokół oparty na TCP, który jest używany do identyfikacji właścicieli domen internetowych za pośrednictwem systemu DNS. Gdy domena internetowa jest rejestrowana i mapowana na adres IP dla systemu DNS, rejestrant musi dostarczyć informacje dotyczące tego, kto rejestruje domenę. Aplikacja WHOIS używa zapytania, w formie FQDN. Zapytanie jest wysyłane za pośrednictwem usługi lub aplikacji WHOIS. Oficjalny rekord rejestracji własności jest zwracany do użytkownika przez usługę WHOIS. Może to być przydatne do identyfikacji miejsc docelowych, które zostały dostępne przez hosty w sieci. WHOIS ma ograniczenia, a hakerzy mają sposoby na ukrywanie swojej tożsamości. Jednak WHOIS jest punktem wyjścia do identyfikacji potencjalnie niebezpiecznych lokalizacji internetowych, które mogły zostać osiągnięte przez sieć. Internetowa usługa WHOIS nazywana ICANN Lookup może być używana do uzyskania rekordu rejestracji URL. Inne usługi WHOIS są utrzymywane przez regionalne rejestry internetowe, takie jak RIPE i APNIC.

10. Nie ma wystarczającej liczby publicznych adresów IPv4, aby przypisać unikalny adres do każdego urządzenia podłączonego do Internetu. Prywatne adresy są używane wewnątrz organizacji lub na stronie, aby umożliwić urządzeniom komunikację na poziomie lokalnym. Jednak ponieważ te adresy nie identyfikują żadnej konkretnej firmy ani organizacji, prywatne adresy IPv4 nie mogą być przekazywane przez internet. Aby umożliwić urządzeniu z prywatnym adresem IPv4 dostęp do zasobów poza lokalną siecią, adres prywatny musi być przetłumaczony na adres publiczny.

11. NAT (Network Address Translation) zapewnia tłumaczenie adresów prywatnych na adresy publiczne, jak pokazano na rysunku. Pozwala to urządzeniu z prywatnym adresem IPv4 uzyskać dostęp do zasobów poza jego prywatną siecią, takich jak te dostępne w Internecie. NAT, w połączeniu z prywatnymi adresami IPv4, stanowił główną metodę zachowania publicznych adresów IPv4. Jeden publiczny adres IPv4 może być współdzielony przez setki, a nawet tysiące urządzeń, z każdym skonfigurowanym z unikalnym adresem prywatnym IPv4.


12. NAT ma wiele zastosowań, ale jego głównym celem jest oszczędzanie publicznych adresów IPv4. Działa to poprzez umożliwienie sieciom korzystania z prywatnych adresów IPv4 wewnętrznie i tłumaczenie na adres publiczny tylko wtedy, gdy jest to potrzebne. NAT ma postrzegany korzyść dodania stopnia prywatności i bezpieczeństwa do sieci, ponieważ ukrywa wewnętrzne adresy IPv4 przed zewnętrznymi sieciami.

Routery obsługujące NAT mogą być skonfigurowane z jednym lub kilkoma ważnymi publicznymi adresami IPv4. Te publiczne adresy są znane jako pul NAT. Gdy urządzenie wewnętrzne wysyła ruch poza sieć, router z obsługą NAT przekształca wewnętrzny adres IPv4 urządzenia na adres publiczny z puli NAT. Dla urządzeń zewnętrznych cały ruch wchodzący i wychodzący z sieci wydaje się mieć publiczny adres IPv4 z dostarczonej puli adresów.

Router NAT zwykle działa na granicy sieci typu “stub”. Sieć typu “stub” to jedna lub więcej sieci z jednym połączeniem do sąsiedniej sieci, jednym wejściem i jednym wyjściem z sieci. Na przykład na rysunku R2 jest routerem granicznym. Z perspektywy dostawcy usług internetowych (ISP), R2 tworzy sieć typu “stub”.


13. Port Address Translation (PAT), znane również jako NAT overload, przypisuje wiele prywatnych adresów IPv4 do jednego publicznego adresu IPv4 lub kilku adresów. To jest to, co robią większość domowych routerów. Dostawca usług internetowych (ISP) przypisuje jeden adres do routera, ale kilku członków gospodarstwa domowego może jednocześnie korzystać z internetu. Jest to najczęstsza forma NAT zarówno w domu, jak i w przedsiębiorstwie.

W przypadku PAT wiele adresów może być przypisanych do jednego lub kilku adresów, ponieważ każdy prywatny adres jest śledzony również za pomocą numeru portu. Gdy urządzenie inicjuje sesję TCP/IP, generuje wartość źródłowego portu TCP lub UDP lub specjalnie przypisanego identyfikatora zapytania ICMP, aby jednoznacznie zidentyfikować sesję. Gdy router NAT odbiera pakiet od klienta, używa numeru portu źródłowego, aby jednoznacznie zidentyfikować konkretną translację NAT.

PAT zapewnia, że urządzenia używają różnych numerów portów TCP dla każdej sesji z serwerem w internecie. Gdy odpowiedź wraca od serwera, numer portu źródłowego, który staje się numerem portu docelowego w podróży powrotnej, określa, do którego urządzenia router przekierowuje pakiety. Proces PAT również sprawdza, czy przychodzące pakiety były żądane, dodając tym samym stopień bezpieczeństwa do sesji.

14. FTP (File Transfer Protocol) to standardowy protokół komunikacyjny używany do przesyłania plików komputerowych z serwera do klienta w sieci komputerowej. FTP opiera się na architekturze modelu klient-serwer, wykorzystując oddzielne połączenia sterujące i danych między klientem a serwerem.

FTP wymaga dwóch połączeń między klientem a serwerem:
  • Pierwsze połączenie to połączenie sterujące, które klient nawiązuje z serwerem przy użyciu portu TCP 21. W ramach tego połączenia przesyłane są polecenia klienta i odpowiedzi serwera.
  • Drugie połączenie służy do faktycznego transferu danych i jest zestawiane przez klienta za każdym razem, gdy występują dane do przesłania. Wykorzystuje ono port TCP 20.

Transfer danych może odbywać się w obie strony. Klient może pobierać dane z serwera (pull) lub przesyłać dane na serwer (push).

Warto zauważyć, że FTP nie został zaprojektowany jako bezpieczny protokół warstwy aplikacji. Dlatego preferowaną implementacją transferu plików jest protokół SSH File Transfer Protocol (SFTP), który zapewnia bezpieczny kanał przy użyciu protokołu Secure Shell.

15. Trivial File Transfer Protocol (TFTP) to uproszczony protokół transferu plików, który używa dobrze znanych numerów portów UDP, takich jak port 69. TFTP nie posiada wielu funkcji dostępnych w FTP, takich jak operacje zarządzania plikami (np. listowanie, usuwanie, zmiana nazwy). Ze względu na swoją prostotę TFTP ma bardzo niskie obciążenie sieci i jest popularny w aplikacjach transferu plików o niskim priorytecie. Należy jednak pamiętać, że TFTP jest fundamentalnie nieszyfrowany i nie posiada funkcji logowania ani kontroli dostępu. Dlatego jego implementacja powinna być dokładnie przemyślana i stosowana tylko wtedy, gdy jest to absolutnie konieczne.

16. Protokół Server Message Block (SMB) to protokół służący udostępnianiu zasobów komputerowych, takich jak katalogi, pliki, drukarki i porty szeregowe, w sieci klient-serwer. Jest to protokół typu żądanie-odpowiedź. Wszystkie wiadomości SMB mają wspólny format, który składa się z nagłówka o stałym rozmiarze, a następnie z komponentu parametrów i danych o zmiennym rozmiarze.

Wiadomości SMB mogą rozpoczynać, uwierzytelniać i zamykać sesje, kontrolować dostęp do plików i drukarek oraz umożliwiać aplikacji wysyłanie lub odbieranie wiadomości między urządzeniami.

17. Jedną z głównych usług oferowanych przez dostawcę usług internetowych (ISP) jest hosting poczty elektronicznej. Aby działać na komputerze lub innym urządzeniu końcowym, poczta elektroniczna wymaga kilku aplikacji i usług, jak pokazano na schemacie. Poczta elektroniczna to metoda przesyłania, przechowywania i pobierania wiadomości elektronicznych w sieci. Wiadomości e-mail są przechowywane w bazach danych na serwerach poczty.

Klienci poczty e-mail komunikują się z serwerami poczty w celu wysyłania i odbierania wiadomości e-mail. Serwery poczty komunikują się z innymi serwerami poczty, aby przesyłać wiadomości z jednej domeny do drugiej. Klient poczty e-mail nie komunikuje się bezpośrednio z innym klientem poczty e-mail podczas wysyłania wiadomości. Obaj klienci polegają na serwerze poczty do przesyłania wiadomości.

Poczta e-mail obsługuje trzy oddzielne protokoły: Simple Mail Transfer Protocol (SMTP), Post Office Protocol (POP) i Internet Message Access Protocol (IMAP). Proces warstwy aplikacji, który wysyła pocztę, korzysta z protokołu SMTP. Klient pobiera e-maile za pomocą jednego z dwóch protokołów warstwy aplikacji: POP lub IMAP. 

18. Protokoły SMTP wymagają nagłówka wiadomości i treści wiadomości. Podczas gdy treść wiadomości może zawierać dowolną ilość tekstu, nagłówek wiadomości musi zawierać poprawnie sformatowany adres e-mail odbiorcy i adres nadawcy.

Kiedy klient wysyła e-mail, proces SMTP klienta łączy się z procesem SMTP serwera na dobrze znany port 25. Po nawiązaniu połączenia klient próbuje przesłać e-mail do serwera przez to połączenie. Gdy serwer odbierze wiadomość, umieszcza ją w lokalnym koncie, jeśli odbiorca jest lokalny, lub przekazuje wiadomość do innego serwera poczty w celu dostarczenia, jak pokazano na schemacie.

Docelowy serwer poczty e-mailowej może nie być dostępny online lub może być zajęty w momencie wysyłania wiadomości e-mail. Dlatego protokół SMTP buforuje wiadomości, aby wysłać je w późniejszym czasie. Okresowo serwer sprawdza kolejkę wiadomości i próbuje wysłać je ponownie. Jeśli wiadomość nadal nie zostanie dostarczona po określonym czasie wygaśnięcia, jest zwracana do nadawcy jako niemożliwa do dostarczenia.

19. POP3 jest używane przez aplikację do pobierania poczty z serwera poczty. W przypadku POP3 poczta jest pobierana z serwera na klienta, a następnie usuwana na serwerze, jak pokazano na schemacie.

Serwer uruchamia usługę POP3, pasywnie nasłuchując na porcie TCP 110 w oczekiwaniu na żądania połączenia klienta. Kiedy klient chce skorzystać z usługi, wysyła żądanie nawiązania połączenia TCP z serwerem. Po nawiązaniu połączenia serwer POP3 wysyła powitanie. Klient i serwer POP3 wymieniają się komendami i odpowiedziami, aż połączenie zostanie zamknięte lub przerwane.

W przypadku POP3 wiadomości e-mail są pobierane na klienta i usuwane z serwera, dlatego nie ma centralnego miejsca, gdzie przechowywane są wiadomości e-mail. Ponieważ POP3 nie przechowuje wiadomości, nie jest to korzystne dla małych firm potrzebujących scentralizowanego rozwiązania kopii zapasowych.

20. IMAP to inny protokół opisujący sposób pobierania wiadomości e-mail, jak pokazano na schemacie. W przeciwieństwie do POP3, gdy użytkownik łączy się z serwerem obsługującym IMAP, kopie wiadomości są pobierane do aplikacji klienta. Oryginalne wiadomości pozostają na serwerze do ręcznego usunięcia. Użytkownicy przeglądają kopie wiadomości w swoim oprogramowaniu klienta poczty.

Użytkownicy mogą tworzyć hierarchię plików na serwerze w celu organizacji i przechowywania poczty. Ta struktura plików jest duplikowana również na kliencie poczty e-mail. Kiedy użytkownik zdecyduje się usunąć wiadomość, serwer synchronizuje tę akcję i usuwa wiadomość z serwera. 📧

21. Protokół HTTP jest używany do przesyłania stron internetowych i innych zasobów przez sieć. Oto bardziej szczegółowe wyjaśnienie, jak działa protokół HTTP w kontekście otwierania strony internetowej w przeglądarce:
  1. Interpretacja URL:

    • Kiedy wpisujesz adres URL (Uniform Resource Locator) w przeglądarkę internetową, przeglądarka nawiązuje połączenie z serwerem, na którym działa usługa internetowa.
    • Adres URL składa się z trzech części: protokołu (np. “http”), nazwy serwera (np. “www.cisco.com”) i określonego pliku (np. “index.html”).
  2. Konwersja na adres IP:

    • Przeglądarka sprawdza u serwera nazw (tzw. serwerów DNS), aby przekształcić nazwę serwera (np. “www.cisco.com”) na adres IP.
    • Następnie przeglądarka łączy się z serwerem za pomocą tego adresu IP.
  3. Wysłanie żądania HTTP:

    • Klient (przeglądarka) inicjuje żądanie HTTP do serwera, wysyłając zapytanie GET o plik “index.html”.
  4. Odpowiedź serwera:

    • Serwer przesyła kod HTML strony internetowej w odpowiedzi na żądanie klienta.
  5. Wyświetlenie strony:

    • Przeglądarka odczytuje kod HTML i formatuje stronę do wyświetlenia w oknie przeglądarki.
  6. Dodatkowe elementy URL:

    • Adresy URL mogą zawierać dodatkowe informacje, takie jak port, ciąg zapytań (query string) i fragment.
    • Ciąg zapytań zawiera dodatkowe parametry, np. dane przekazywane do innych procesów na serwerze.
    • Fragment wskazuje na konkretną część zasobu, np. kotwicę w dokumencie HTML.

Dzięki protokołowi HTTP możemy przeglądać strony internetowe i pobierać zasoby z serwerów.

22. Protokół HTTP to protokół żądania/odpowiedzi, który używa portu TCP 80, choć można używać innych portów. Kiedy klient, zwykle przeglądarka internetowa, wysyła żądanie do serwera WWW, używa jednej z sześciu metod określonych przez protokół HTTP:

  1. GET - Klient prosi o dane. Przeglądarka wysyła żądanie GET do serwera, aby pobrać strony HTML.
  2. POST - Wysyła dane do serwera w celu utworzenia lub zaktualizowania zasobu.
  3. PUT - Przesyła zasoby lub treść na serwer, np. obraz.
  4. DELETE - Usuwa określony zasób.
  5. OPTIONS - Zwraca metody HTTP obsługiwane przez serwer.
  6. CONNECT - Prosi serwer proxy HTTP o przekierowanie sesji TCP HTTP do docelowego miejsca.

Mimo że HTTP jest niezwykle elastyczny, nie jest bezpiecznym protokołem. Wiadomości żądania przesyłane są do serwera w postaci tekstu, który może być przechwycony i odczytany. Odpowiedzi serwera, zwykle strony HTML, również nie są zaszyfrowane. 

23. Kody odpowiedzi serwera HTTP informują aplikację kliencką o wynikach żądań klienta do serwera. Kody są podzielone na pięć grup. Są to liczby, a pierwsza cyfra w kodzie wskazuje rodzaj wiadomości. Pięć grup kodów odpowiedzi to:

1xx - Informacyjne 2xx - Sukces 3xx - Przekierowanie 4xx - Błąd klienta 5xx - Błąd serwera Poniżej przedstawiam wyjaśnienie niektórych powszechnych kodów statusu. Doskonałym źródłem informacji na temat konkretnych kodów jest wyszukiwanie fraz „rest api tutorial” i „HTTP status codes”. Kody statusu HTTP są widoczne w ruchu klient-serwer HTTP i są przydatne w badaniach z zakresu cyberbezpieczeństwa.

HTTP/2 to znacząca rewizja specyfikacji protokołu HTTP. Celem HTTP/2 jest poprawa wydajności HTTP poprzez rozwiązanie problemów z opóźnieniami, które występowały w wersji HTTP 1.1. HTTP/2 używa tego samego formatu nagłówka co HTTP 1.1 i korzysta z tych samych kodów statusu. Istnieje jednak wiele ważnych funkcji, o których powinien wiedzieć analityk ds. cyberbezpieczeństwa.

  • Multiplexing – Serwery i klienci HTTP prowadzą rozmowy zwane strumieniami dla każdej transakcji. Na przykład klient łączy się z serwerem HTTP, żąda zasobów i otrzymuje te zasoby. W przypadku HTTP 1.1 obsługiwany był tylko jeden strumień na raz. W przypadku HTTP/2 klient i serwer mogą mieć wiele strumieni działających między nimi jednocześnie w ramach tego samego połączenia TCP, jak pokazano na schemacie. To znacznie zwiększa wydajność protokołu. 
  • Server PUSH - Serwery HTTP mogą przesyłać treści, które jeszcze nie zostały żądane przez klienta. Serwer przewiduje treści, które klient prawdopodobnie będzie chciał pobrać. Klient buforuje te treści na przyszłość. 
  • Protokół binarny – W HTTP 1.1 komendy, takie jak żądania klienta do serwera, były formułowane w formacie tekstowym. W HTTP/2 używane są komendy binarne. Rozwiązuje to pewne kłopotliwe problemy z poprzednią wersją, zmniejsza nadmiar żądań i odpowiedzi oraz redukuje opóźnienia, poprawiając przepustowość. 
  • Kompresja nagłówków – Nagłówki żądań i odpowiedzi HTTP są kompresowane, aby zmniejszyć ilość przepustowości wymaganej przez strumienie HTTP/2.

W celu bezpiecznej komunikacji w internecie stosowany jest protokół HTTP Secure (HTTPS). HTTPS używa portu TCP 443. Wykorzystuje uwierzytelnianie i szyfrowanie do zabezpieczenia danych w trakcie przesyłania między klientem a serwerem. Proces żądania klienta i odpowiedzi serwera w HTTPS jest taki sam jak w przypadku HTTP, ale strumień danych jest zaszyfrowany za pomocą protokołu Secure Socket Layer (SSL) lub Transport Layer Security (TLS) przed przesłaniem przez sieć. Mimo że SSL jest poprzednikiem TLS, oba protokoły często są określane jako SSL.

HTTPS/2 jest określone jako HTTPS z TLS z rozszerzeniem Application-Layer Protocol Negotiation (ALPN) dla TLS 1.2 lub nowszego. Standard HTTP/2 nie określa szyfrowania, ale wszystkie główne aplikacje klienta wymagają go. Można więc założyć, że HTTP/2 jest faktycznie zaszyfrowane.