Author Archives: Artur

Ochrona haseł i kont

Wiele skutecznych ataków sieci było spowodowane brakiem odpowiedniego przeszkolenia użytkowników, na temat zasad bezpiecznego posługiwania się hasłem. Osoby nieświadome zagrożeń najchętniej posługują się hasłem dwuznakowym, lub co gorsza, wcale go nie używają. Poniższa lista zawiera najważniejsze reguły skutecznej ochrony haseł [1]:

  1. Nie używać hasła krótszego niż sześć znaków. Krótkie hasła są łatwe do złamania.
  2. Nie wykorzystywać w haśle żadnej części swojego nazwiska; łatwo je znaleźć w Internecie.
  3. Nie wykorzystywać w haśle imion swojego małżonka, dzieci, przyjaciół, zwierząt.
  4. Nie stosować jako hasła żadnych rzeczywistych imion lub ich fragmentów; są łatwe do zapamiętania, ale wiedzą o tym hakerzy.
  5. Nie używać w haśle żadnych informacji o sobie: na przykład numeru dowodu osobistego, daty urodzenia, numeru NIP, numeru rejestracyjnego samochodu itp.
  6. Nie używać żadnych słów dostępnych w słownikach lub leksykonach; hakerzy posługują się programami próbującymi wygenerować hasło, podstawiając kolejne pozycje słownika.
  7. Nie zapisywać hasła i nie przekazywać go nikomu bez względu na to kto to jest! Zdarzały się przypadki, że hakerzy zdobywali potrzebne im dane, wysyłając pocztą elektroniczną wezwanie do podania hasła, podszywając się pod administratora.
  8. Hasło powinno się składać z losowych kombinacji małych i wielkich liter.
  9. Hasło powinno zawierać litery, cyfry i znaki symboliczne.
  10. Używać haseł rodzaju: X$2sC.8Zd(, których nie można wygenerować ze słownika. Nawet odgadnięcie hasła wymaga jeszcze znajomości jego pisowni.
  11. Hasło należy zmieniać co najmniej raz na 90 dni i nigdy nie używać go ponownie.

System zarządzania regułami stosowania haseł, który udostępnia Windows NT, pomaga je chronić, ale nie zastąpi współpracy użytkowników. Możemy, co prawda, określić minimalną długość hasła lub częstotliwość zmian, ale nie jesteśmy w stanie skontrolować wykorzystania swoich imion, nazw psów czy daty urodzenia. Pewność bezpieczeństwa haseł jest bardzo ważna. Ewentualny atak z Internetu skierowany będzie prawdopodobnie właśnie na nie. Haker, który zdobędzie identyfikator i hasło użytkownika może korzystać z jego przywilejów. Na dodatek działalność intruza, posługującego się cudzymi danymi, jest trudna do wykrycia.

Program Windows NT Account Policies służący do ustalania strategii wobec kont użytkownika pozwala mieć pewność, że tak wrażliwe na atak fragmenty systemu są odpowiednio zabezpieczone, możemy skonfigurować: parametry haseł, czas dostępu do systemu, profile użytkownika oraz procedury blokowania konta. Wszystkie opcje okna dialogowego umożliwiają wprowadzenie ustaleń, które doprowadzą do frustracji większość hakerów, ale najważniejszą pozycją jest zdolność określenia minimalnej długości hasła. Określenie tej wielkości uniemożliwia posługiwanie się przez użytkowników pustym hasłem. Rozszyfrowanie zasady tworzenia nazw użytkowników nie jest zazwyczaj trudne, wiec brak hasła jest furtką zapraszającą intruzów.

Eksperci od ochrony systemów komputerowych zalecają stosowania haseł zawierających co najmniej sześć znaków. Opcja, określająca maksymalny czas posługiwania się hasłem, pozwala zagwarantować, ze hasła są zmieniane systematycznie; właściwym ustawieniem jest liczba dni między 90, a 120. Nawet jeśli intruz zdobędzie dane jakiegoś użytkownika, to po pewnym czasie utraci dostęp uzyskany dzięki kradzieży. Opcja Password Uniqueness (unikalność hasła) jest ściśle związana z poprzednią. Jeśli ją uaktywnimy, to system pamięta określoną liczbę haseł stosowanych przez użytkownika. Po zmianie, nie można powrócić do jednego z wcześniej stosowanych haseł, znanego być może osobie postronnej.

Należy również rozważyć implementację opcji blokowania konta. Siła tego ustawienia wynika ze skutecznego ograniczenia liczby nieudanych prób dostępu do systemu. Rozwiązanie bardzo frustruje hakerów, uniemożliwiając stosowanie programów generujących hasła, ale równie skutecznie doprowadza do pasji roztargnionych użytkowników. Można skonfigurować liczbę dozwolonych błędów podczas rejestracji w określonym przedziale czasu. Przekroczenie tej wielkości spowoduje zablokowanie konta. Mając zablokowane konto, użytkownik nie może zarejestrować się w systemie, nawet podając prawidłowe dane identyfikacyjne. Czas blokady konta można określić opcją Lockout Duration. Konto może być również blokowane bezterminowo, co oznacza, że uaktywnienie go wymaga interwencji administratora systemu. Typowe ustawienia opcji, to dopuszczenie do pięciu błędów w ciągu pół godziny i zablokowanie konta na 10-20 minut. W systemach wymagających skrajnej ochrony można ograniczyć liczbę nieudanych prób do trzech a konto blokować bezterminowo.

Zobaczmy, jak to działa: System został skonfigurowany w sposób dopuszczający trzy nieudane próby rejestracji w ciągu piętnastu minut oraz na bezterminową blokadę konta. Sprytny haker zdobył nazwę konta użytkownika oraz nazwę hosta, wykorzystując program podsłuchowy (sniffer) do przechwycenia komunikatu poczty elektronicznej. Kolejnym etapem ataku jest uruchomienie programu do generowania haseł na podstawie słownika. Już po trzech próbach konto zostaje zablokowane. Użytkownik, który nie może korzystać z systemu, sygnalizuje problem administratorowi, a ten podejmie decyzję o dalszym postępowaniu. Inną popularną furtkę, umożliwiającą skuteczny atak hakerom, tworzą predefiniowane konta Windows NT. Konto gościa, należy po prostu wyłączyć. Mimo ograniczonych przywilejów, można je wykorzystać do przejęcia ważnych, dla bezpieczeństwa serwera, plików, dotyczących  jakiejś maszyny, a następnie wykorzystać zdobyte informacje do skutecznej infiltracji systemu. Jeśli, z ważnych powodów, konto gościa jest niezbędne, to należy się upewnić, że hasło jest trudne do złamania, ograniczyć czas korzystania konta do standardowych godzin pracy przedsiębiorstwa oraz monitorować procesy rejestracji.

Ze względu na znaczenie konta administratora, trzeba mu poświęcić szczególną uwagę. Oto kilka zasad dotyczących tego konta [2]:

  1. Zmienić nazwę konta administratora –  ukrycie tego najważniejszego w systemie ochrony elementu utrudni nieco pracę hakerom.
  2. Zgodnie z wcześniejszymi wytycznymi, zapewnić, aby hasło było ekstremalnie trudne do złamania. Powinno się składać z czternastu znaków i wyglądać na przykład tak: n*D65.Vm&z8Ps%. Hasło należy zapamiętać.
  3. Ograniczyć liczbę administratorów. Im więcej osób zna hasło, tym większe prawdopodobieństwo jego ujawnienia. Stosować przekazywanie uprawnień administracyjnych za pomocą odpowiedniej konfiguracji grup.
  4. Stosować zasadę „jak najmniej uprawnień”; konta administratora należy używać tylko w wyjątkowych sytuacjach. Pamiętajmy, że połączenia realizowane z odległych stacji mogą być podsłuchane i przechwycone.
  5. Rozważyć wyłączenie możliwości zdalnego korzystania z serwera poprzez konto administratora. Mimo uciążliwości, rozwiązanie znacznie poprawia ochronę.

Nie wolno zapomnieć o pozostałych grupach predefiniowanych, takich jak Account Operators (operatorzy kont), Server Operators (operatorzy serwerów) oraz przede wszystkim o grupie Backup Operators (operatorów archiwizacji). Pamiętajmy, że grupa użytkowników uprawnionych do archiwizacji, może czytać (prawo restore) wszystkie pliki i katalogi. Jeśli haker zdobędzie dane użytkownika mającego pozwolenie backup & restore, lub osoby należącej do grupy operatorów archiwizacji, to mamy poważny problem. Należy wykorzystać menedżer użytkowników do zapewnienia wspomnianym grupom dokładnie takiego poziomu uprawnień, jaki jest niezbędny do pracy (zasada „jak najmniej uprawnień.


[1] D. Chapman, E. Zwicky „Building Internet Firewalls“,

[2] D. Chapman, E. Zwicky „Building Internet Firewalls“,

Wymagania dużych sieci / nacisk na bezpieczeństwo

Przykład: Mamy pięćdziesiąt komputerów i 32 nr IP (5 bitów). Potrzebujemy możliwości rozdania różnych poziomów dostępu do sieci ponieważ powierzamy swoim współpracownikom różne zadania. Poza tym będziemy potrzebować izolacji określonych miejsc w sieci od reszty.

Poziomy dostępu:

  1. Poziom zewnętrzny – ukazywany wszystkim,
  2. Troop poziom ten przeznaczony jest dla ludzi którzy otrzymali dostęp z poziomu zewnętrznego.
  3. Mercenary Tutaj jest miejsce, które naprawdę planujemy chronić. Tutaj składujemy wszelkie ważne informacje. Serwer plików nosi numery 192.168.2.17 dla sieci Troop i 192.168.2.23 dla sieci Mercenary. Mają różne adresy ponieważ mają dwie różne karty sieciowe. network. IP Forwarding jest wyłączony.

IP Forwarding na obu stacjach linuxowych także jest wyłączony. Router nie powinien przesyłać pakietów przeznaczonych dla sieci 192.168.2.xxx dopóki  tego nie zażądamy, tak więc dostęp do internetu pozostaje wyłączony. Wyłączenie przesyłania IP ma na celu zablokowanie połączeń z sieci Troop do sieci Mercenary na odwrót. Serwer NFS może ponadto oferować różne pliki dla różnych sieci. Jest to łatwe przy drobnych operacjach z symbolicznymi odniesieniami, ponieważ można w ten sposób stworzyć współdzielenie wspólnych plików. Użycie tego typu ustawień i różnych kart sieciowych umożliwia nam zastosowanie jednego serwera plików dla trzech sieci.

Ustawienie adresów sieciowych

Dopóki nie chcemy zezwolić komputerom z Internetu na dostęp do żadnej z części naszej sieci lokalnej nie musimy używać prawdziwych adresów. Istnieją numery wydzielone z internetowych do ustawienia odrębnych sieci prywatnych (klasa A 10.0.0.0-10.255.255.255, klasy B, i klasy C: 192.168.0.0.0-192.166.255.255) Ponieważ każdy potrzebuje więcej adresów i ponieważ adres nie mogą się powtarzać w Internecie jest to dobry wybór.

Wybraliśmy jedną z tych klas: 192.168.2.xxx, i użyjemy jej w naszym przykładzie.

Serwer proxy będzie członkiem obu sieci i będzie przekazywał dane do i z sieci prywatnej.

Jeśli używamy filtrującego firewalla możemy używać tych numerów stosując IP masquearading. Firewall będzie przesyłał pakiety i tłumaczył numery IP na ,,PRAWDZIWE” adresy w Internecie.

Musimy przydzielić prawdziwy adres IP karcie sieciowej widocznej z Internetu (na zewnątrz). I przydzielić adres 192.168.2.1 karcie Ethernetowej wewnątrz.

To będzie adres IP naszego gatewaya/proxy. Możemy przydzielić pozostałym komputerom z naszej własnej sieci numery z zakresu 192.168.2.2-192.168.2.254.

Przykładowa zawartość ifcfg-eth1wygląda następująco:

#!/bin/sh
#>>>Device type: ethernet
#>>>Variable declarations:
DEVICE=eth1
IPADDR=192.168.2.1
NETMASK=255.255.255.0
NETWORK=192.168.2.0
BROADCAST=192.168.2.255
GATEWAY=199.1.2.10
ONBOOT=yes
#>>>End variable declarations

Można także zastosować taki skrypt do automatycznego połączenia modemowego do naszego ISP. Jeśli używamy modemu do łączenia się z siecią nasz zewnętrzny adres będzie nam przydzielony w trakcie połączenia.

Testy  sieci

Testy można zacząć od sprawdzenia ifconfig i trasowania (routingu), jeśli mamy dwie karty wynik polecenia ifconfigpowinien wyglądać podobnie do skryptu zamieszczonego poniżej:

#ifconfig
lo    Link encap:Local Loopback
inet addr:127.0.0.0 Bcast:127.255.255.255 Mask:255.0.0.0
UP BROADCAST LOOPBACK RUNNING MTU:3584 Metric:1
RX packets:1620 errors:0 dropped:0 overruns:0
TX packets:1620 errors:0 dropped:0 overruns:0

eth0   Link encap:10Mbps Ethernet HWaddr 00:00:09:85:AC:55
inet addr:199.1.2.10 Bcast:199.1.2.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0
TX packets:0 errors:0 dropped:0 overruns:0
Interrupt:12 Base address:0x310

eth1   Link encap:10Mbps Ethernet HWaddr 00:00:09:80:1E:D7
inet addr:192.168.2.1 Bcast:192.168.2.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0
TX packets:0 errors:0 dropped:0 overruns:0
Interrupt:15 Base address:0x350

tablica trasowania powinna być zbliżona do zamieszczonej;

#route -n
Kernel routing table
Destination   Gateway     Genmask     Flags MSS  Window Use Iface
199.1.2.0    *        255.255.255.0  U   1500  0    15 eth0
192.168.2.0   *        255.255.255.0  U   1500  0    0 eth1
127.0.0.0    *        255.0.0.0    U   3584  0    2 lo
default     199.1.2.10   *        UG  1500  0    72 eth0

Trzeba pamiętać, że 199.1.2.0 jest numerem interface po internetowej stronie firewalla zaś 192.168.2.0 jest wewnątrz.

Po wykonaniu powyższych operacji mamy teraz podstawową konfigurację systemu.

Pseudozapory sieciowe

Jeśli chcemy podnieść bezpieczeństwo sieci podłączonej do Internetu, a nie mamy pieniędzy na wyrafinowane rozwiązania, możemy rozważyć zastosowanie pseudozapór. Pseudozapora to rozwiązanie zapobiegające dostępowi użytkowników Internetu do chronionej sieci wewnętrznej, polegające na zablokowaniu nieuprawnionego dostępu do usług systemowego protokołu SMB/NetBios, w stosunku do plików i współdzielonych drukarek. Głównym założeniem technik pseudozapór jest uruchomienie NetBEUI dla całej komunikacji wewnętrznej, natomiast TCP/IP dla zewnętrznej komunikacji z Internetem.

Takie rozwiązanie jest relatywnie tanie, ale możliwe do wykorzystania jedynie w małych sieciach. Ograniczenie wynika z własności NetBEUI, który został zaprojektowany jako protokół nie podlegający technice routingu przeznaczony dla małych grup roboczych, liczących nie więcej niż 200 użytkowników. Tworzenie pseudozapory jest łatwe, wystarczy po prostu zainstalować protokoły NetBEUI oraz TCP/IP na wszystkich stacjach roboczych chronionej części sieci. Następnie należy się upewnić, że na komputerze pełniącym rolę bramy do Internetu (gateway machine) działają usługi TCP/IP. Na stacjach klientów powinno być zainstalowane jedynie oprogramowanie klienta TCP/IP, co pozwala użytkownikom korzystać z usług Internetu (FTP, Telnet, HTTP) za pośrednictwem komputera – bramy.

Powyższe czynności realizujemy, tworząc lub likwidując odpowiednie powiązania warstw komunikacyjnych między protokołami NetBEUIa TCP/IP. Do przeglądania i konfiguracji powiązań służy Network Applet, który uruchamia się z Panelu sterowania.

Należy wyłączyć powiązania następujących sesji:

NetBIOS-TCP/IP

Workstation-TCP/IP

Server-TCP/IP

i uaktywnić powiązania sesji dla:

NetBIOS-NetBEUI

Workstation-NetBEUI

Server-NetBEUI

oraz uaktywniać powiązania transportowe dla:

NetBEUI-adapter_sieciowy

TCP/IP-Połączenie RAS modemu

Wykonanie opisanych zmian wymaga zrestartowania komputera. Od tej chwili stacja jest zabezpieczona przed nieupoważnionym dostępem zewnętrznych użytkowników IP.

Szyfrowane uwierzytelnianie

W dalszym ciągu prezentujemy wyśmienitą pracę magisterską o zaporach ogniowych. Miłego czytania!

Ta metoda pozwala użytkownikom Internetu udowodnić ścianie ogniowej, że mają autoryzację, a zatem zezwala się im na odtworzenie połączenia poprzez ścianę z siecią wewnętrzną. Może ona korzystać z wielu protokołów bezpiecznego uwierzytelniania. Raz ustanowione połączenie może być szyfrowane lub nie w zależności od używanej ściany ogniowej i od tego czy dodatkowe oprogramowanie zapewniające tunelowanie zostało zainstalowane u klienta.

Korzystanie z szyfrowanego uwierzytelniania jest wygodne, ponieważ realizowane jest ono w warstwie transportowej pakietu oprogramowania klienta i ściany ogniowej. Po nawiązaniu połączenia oprogramowanie aplikacyjne i oprogramowanie systemu operacyjnego związane z logowaniem będzie działało bez przeszkód – dlatego użytkownik nie musi stosować specjalnych pakietów oprogramowania obsługujących konkretną ścianę ogniową. Szyfrowane uwierzytelnianie zmniejsza bezpieczeństwo ściany ogniowej. Mogą wystąpić następujące problemy:

  • ściana ogniowa odpowiada na pewnym porcie, ponieważ nasłuchuje połączeń. W ten sposób haker może dowiedzieć się o jej istnieniu.
  • ustanowione połączenie może być przekierowane za pomocą komunikatu ICMP, zwłaszcza wtedy gdy nie jest szyfrowane
  • haker, który monitoruje połączenie w celu uzyskania dostępu do wnętrza sieci może podszyć się pod adres autoryzowanego klienta, bez potrzeby przekierowania istniejących połączeń
  • do uzyskania dostępu do sieci można użyć skradzionego komputera przenośnego z odpowiednimi kluczami
  • pracownicy pracujący w domu mogą stać się celem włamania, ponieważ ich komputery mają dostęp do prywatnej sieci.

Procedura uwierzytelniająca może zawierać błędy lub może nie być w pełni bezpieczna pozwalając w ten sposób każdemu w Internecie otworzyć luki w firewallu

Jednak prawdopodobieństwo wystąpienia tych problemów nie jest zbyt duże. Tutaj trzeba zaznaczyć że w dostępnych na rynku systemach operacyjnych jedynie Linux posiada moduł szyfrowanego uwierzytelniania o nazwie IP Chains. Windows NT używają domyślnie szyfrowanego uwierzytelniania, jest jednak ono słabe i nie nadaje się do stosowania w Internecie.

Filtrowanie w systemie operacyjnym

Dzisiaj jeszcze trochę pracy magisterskiej o zaporach ogniowych. Miłego czytania!

Użytkownik może nie zdawać sobie sprawy, że większość wersji UNIX i serwerów Windows NT zawiera moduł filtrowania pakietów w interfejsie protokołu TCP/IP. Można korzystać z tego jako dodatku do silnej ściany ogniowej i za jego pomocą nadzorować dostęp do poszczególnych serwerów. Można także wykorzystywać ten moduł do zapewnienia dodatkowego zabezpieczenia wewnątrz sieci, bez ponoszenia kosztów dodatkowych ścian ogniowych wewnątrz firmy.

Samo filtrowanie nie wystarcza do pełnej ochrony sieci, wewnętrzne filtrowanie zapewniane przez system operacyjny nie pozawala na utworzenie całkowicie bezpiecznego środowiska. Nie można polegać tylko na filtrowaniu wbudowanym do systemu operacyjnego. Funkcje filtrujące systemu operacyjnego można użyć tylko wewnątrz sieci do zbudowania filtrów, które przepuszczają dokładnie tylko te protokoły, które zamierza się obsługiwać. Zapobiega się w ten sposób niezamierzonemu działaniu oprogramowania oraz funkcjonowaniu koni trojańskich nawet wtedy, gdy udało się komuś je zainstalować.

Podstawowe filtrowanie zapewniane w systemie operacyjnym pozwala zdefiniować kryteria, na podstawie których karty sieciowe mogą akceptować przychodzące połączenia w  oparciu o:

  • numer protokołu IP
  • numer portu TCP
  • numer portu UDP

Filtrowanie to nie dotyczy zazwyczaj połączeń wychodzących (tych, które inicjowane są na serwerze użytkownika) i jest odrębne definiowane dla każdej karty w systemie. Dla systemu Windows trzeba pamiętać o tym, że Windows NT 4 w odróżnieniu od systemu Windows 2000 nie obsługuje filtrowania ruchu wychodzącego. Typowy serwer ustawia usługi tak, aby nasłuchiwały wymienionych poniżej portów. Aby usługi te mogły pracować prawidłowo, porty te muszą być otwarte w filtrze.

Podstawowe usługi TCP.IP zazwyczaj nasłuchują na następujących portach:

Tabela 1

Port Usługa TCP/IP
7 Echo
9 Discard (porzuć)
13 Time (czas)
17 Quote of Day (Cytat dnia)
19 Character Generator (Generator znaków)

Źródło własne

Serwery internetowe najczęściej nasłuchują portów:

Tabela 2

Port Serwer
21 FTP
23 Telnet
70 Gopher
80 WWW (HTTP)
119 Net News (NNTP)

Źródło własne

Serwery plików najczęściej nasłuchują portów:

Tabela 3

Port Usługa
53 DNS
135 RPC Locator Service [1]
137 NetBios Name Service [2]
139 NetBios Session Service [3]
515 LPR [4]
530 RPC [5]

Źródło własne

Serwery pocztowe najczęściej są konfigurowane tak, aby nasłuchiwać następujących portów:

Tabela 4

Port Serwer pocztowy
25 SMTP
110 POP wersja 3
143 IMAP

Źródło własne

Przy instalowaniu innej usługi trzeba upewnić się, że ustawienia filtru serwera pozwalają nasłuchiwać portów wymaganych przez usługi – w przeciwnym wypadku usługi te nie będą działać. producent oprogramowania powinien określić, które porty są wymagane dla danej usługi. nie dotyczy to granicznych ścian ogniowych, które powinny być tak skonfigurowane, aby przepuszczać tylko wtedy usługę, jeżeli zamierza się ją świadczyć publicznie.

Konfigurację filtrowania w systemie operacyjnym należy zacząć od zablokowania wszystkich protokołów i adresów. Następnie można precyzyjnie zezwalać na usługi i dostęp do hostów, które będą je świadczyły w sieci. Należy  zabronić wszystkich prób połączeń do hostów wewnątrz sieci. Zezwalając na połączenia do wewnątrz pozwala się hakerom na uzyskanie połączenia z koniami trojańskimi lub na wykorzystywanie błędów w oprogramowaniu usług.

Zaleca się odfiltrowywanie i nie odpowiadanie na komunikaty zmiany trasy ICMP oraz echo (ping). Należy odrzucać wszystkie pakiety IP z ustawionym wyborem trasy przez nadawcę. Mechanizm ten rzadko jest używany w legalnym celu. Należy także odrzucać wszystkie zmiany pochodzące z protokołów zewnętrznego routingu (RIP, OSPF) przeznaczone dla routerów wewnętrznych. Nikt z zewnątrz sieci nie powinien przesyłać zmian RIP. Trzeba umieścić hosty z usługami publicznymi (WWW i SMTP) na zewnątrz filtrów pakietów, żeby nie pozwolić na powstawanie luk w filtrze pakietów.


[1] tylko Windows NT

[2] tylko serwery WINS

[3] tylko sieć Windows i serwery SMB/CIFS

[4] usługa drukowania TCP/IP korzysta z LPR jeżeli została zainstalowana

[5] połączenie RPC jest wykorzystywane przez usługę WinLogon w Windows NT, jak również przez wiele innych sieciowych aplikacji wyższych warstw

Budowa i składowe ściany ogniowej

Dzisiaj wracamy do pracy magisterskiej o zaporach ogniowych. Miłego czytania!

Zapora sieciowa w swej istocie jest raczej koncepcją, a nie produktem. Celem istnienia zapór jest przyznanie, bądź odmowa przyznania połączenia danemu użytkownikowi do danej usługi sieciowej. W bardziej ogólnym sensie zapora sieciowa składa się z odpowiedniego oprogramowania i sprzętu. Oprogramowanie może być typu freeware, shareware lub komercyjne. Sprzęt może być jakimkolwiek urządzeniem, na którym pracuje dany program.

Firewall zabezpiecza połączenie z Internetem w takim stopniu w jakim jest to możliwe za pomocą sprawdzania i zatwierdzania lub odrzucania prób połączenia między siecią wewnętrzną użytkownika a sieciami zewnętrznymi. Silne ściany ogniowe chronią sieć na poziomie wszystkich warstw – od warstwy łącza danych w górę do warstwy aplikacji.

Ściana ogniowa jest umieszczana na granicach sieci – w punktach, które zapewniają dostęp do innych sieci. Z tego powodu ściana uważana jest za gwaranta bezpiecznej granicy. Pojęcie gwaranta bezpiecznej granicy jest ważne, ponieważ bez niego każda stacja w sieci musiałaby samodzielnie wykonywać funkcje ściany, niepotrzebnie zużywać swoje zasoby obliczeniowe i zwiększać ilość czasu potrzebnego do połączenia, uwierzytelniania i szyfrowania danych. Ściany ogniowe pozwalają scentralizować wszystkie zewnętrzne usługi sieciowe na komputerach, które są dedykowane i zoptymalizowane pod kątem tej pracy.

Z natury rzeczy ściany ogniowe tworzą wąskie gardło między sieciami wewnętrznymi a zewnętrznymi, ponieważ cały ruch przechodzący między sieciami musi przechodzić przez pojedynczy punkt kontroli. Jest to niewielka cena, która płaci się za bezpieczeństwo. Ponieważ zewnętrzne połączenia wykorzystujące linie dzierżawione są względnie wolne w porównaniu do szybkości współczesnych komputerów, zwłoka spowodowana przez ścianę ogniową może być całkowicie pominięta.

Firewall działa w oparciu o trzy podstawowe mechanizmy:

  • filtrowanie pakietów (ang. packet filtering) polega na tym, że odrzucane są pakiety TCP/IP z nieautoryzowanych hostów i próby połączenia z nieautoryzowanymi usługami.

Translacja adresów sieciowych NAT (ang. Network address translation) polega na dokonywaniu zmiany adresu IP hosta wewnętrznego w celu ukrycia go przed zewnętrznym monitorowaniem. Mechanizm ten jest również nazywany maskowaniem adresu IP (ang. IP masquerading).

Usługi proxy – ściana ogniowa może dokonywać połączenia na poziomie aplikacji w imieniu wewnętrznego hosta, przerywane jest wtedy połączenie na poziomie warstwy sieciowej pomiędzy hostami wewnętrznymi i zewnętrznymi.

Duża część ścian ogniowych wykonuje jeszcze dwie inne usługi bezpieczeństwa.

  • szyfrowane uwierzytelnianie – użytkownicy sieci publicznej muszą udowodnić swoją tożsamość wobec ściany ogniowej zanim uzyskają dostęp do sieci wewnętrznej.

Szyfrowane tunelowanie – pozwala na ustanowienie bezpiecznego połączenia między dwoma prywatnymi sieciami za pośrednictwem publicznego medium typu Internet. Dzięki temu dwie fizycznie rozdzielone sieci mogą użyć do komunikowania się Internetu zamiast linii dzierżawionej. Tunelowanie jest także nazywane wirtualnymi sieciami prywatnymi.

Przedstawione mechanizmy wykorzystywane są do zapewnienia bezpieczeństwa we wszystkich prawie ścianach ogniowych. Aktualnie na rynku istnieją setki tego typu produktów wzajemnie rywalizujących ze sobą. Oczywiście użytkownicy mogą korzystać tylko z niektórych wymienionych wyżej funkcji za pomocą odpowiednich urządzeń lub serwerów na przykład użytkownik może mieć router filtrujący pakiety i na odrębnym komputerze serwer proxy. Wtedy albo filtr pakietów musi przepuszczać ruch do serwera proxy, albo serwer proxy musi znajdować się na zewnątrz sieci użytkownika i nie mieć ochrony zapewnianej przez filtr pakietów. Obydwa rozwiązania są bardziej niebezpieczne niż używanie pojedynczej ściany ogniowej, która wszystkie funkcje ma zgrupowane w jednym miejscu.

Format komórki ATM

GFC (Generic Flow Control) – cztery bity kontroli przepływu stosowane w przypadku interfejsu UNI kiedy z jednego interfejs korzysta kilka przyłączonych stacji. W przypadku nie wykorzystywania funkcji kontroli przepływu pole to zawiera same zera. Pole GFC może być wykorzystane przez użytkownika w celu wydzielenia w ramach jego prywatnej sieci wielu klas usług z realizacją różnych wartości QOS.

VPI/VCI (Virtual Path Identifier / Virtual Channel Identifier) – bity identyfikacji wirtualnej ścieżki (VPI) i kanału (VCI) tworzące tzw. routing field – pole decydujące o routingu-transmisji komórki w sieci, miedzy węzłami ATM. Jak wcześniej pokazałem., sieć ATM jest protokółem wymagającym fazy nawiązania połączenia dla ustanowienia wirtualnego połączenia na fizycznych łączach ( uaktualnienia tablic w punktach komutacyjnych). VPI/VCI służą do identyfikacji danej komórki z konkretnym połączeniem i są wykorzystywane do multipleksowania, demultipleksowania i komutacji komórek w węzłach sieci ATM, przyporządkowuje się je danemu połączeniu na czas transmisji i obowiązują na odcinku miedzy węzłami sieci. Ze względu na małe rozmiary komórek stosowanie pełnych adresów byłoby bardzo nieekonomiczne, dlatego stosuje się właśnie takie etykiety unikalne tylko w obrębie interfejsu. Ogólnie rzecz biorąc w węzłach sieci odbywa się wymiana wartości VPI/VCI na inne – ważne na odcinku do następnego węzła. Używając takiego mechanizmu warstwa ATM może asynchronicznie przeplatać w jednym fizycznym medium komórki z wielu połączeń.

PT (Payload Type) – 3-bitowe pole służące do identyfikacji typu informacji jaka niesie komórka. Pozwala ono na odróżnienie danych użytkownika od informacji kontrolnych – związanych z serwisem i zarządzaniem zasobami sieci.

CLP (Cell Loss Priority) – bit określający porządek, w jakim sieć będzie odrzucała komórki w przypadku jej zatłoczenia – kiedy istnieje niebezpieczeństwo przepełnienia bufora w węźle. Komórki z ustawionym bitem CLP (CLP=1) w pierwszej kolejności zostaną odrzucone, dając możliwość obsłużenia komórek o wyższym priorytecie (w sytuacji awaryjnej).

HEC (Header Error Control) – pole kontrolne informacji przenoszonej przez nagłówek. Pojedyncze błędy mogą być korygowane a większa liczba błędów tylko wykrywana.

Pole informacyjne –pole przeznaczone na dane użytkownika.

Rysunek 1. Format komórki ATM

Architektura TCP/IP

Klejem, który trzyma w całości Internet, jest protokół TCP/IP. TCP/IP jest w zasadzie zestawem protokołów. Czterowarstwowy model protokołu TCP/IP został opracowany długo wcześniej niż siedmiowarstwowy model OSI, ale wykazują one pewne podobieństwa.  Jeśli nawiązane jest połączenie w sieci TCP/IP, to każdy protokół „rozmawia ze swoim partnerem” na odległym hoscie za pośrednictwem gniazd (sockets).

Gniazdo jest procedurą, która tworzy wirtualne połączenie między hostami. Każde gniazdo ma swój adres (socket address), który składa się z numeru portu i adresu IP lokalnego hosta. Rozróżnia się trzy typy gniazd: IP, TCP i UDP. Jeśli hosty nawiążą połączenie poprzez IP, to otwiera się między nimi gniazdo i wysłane zostaje wywołanie, zawierające unikatowy adres IP odległego hosta oraz numer portu żądanej usługi.

Port jest po prostu kanałem wykorzystywanym przez protokoły do komunikacji ze specyficzną usługą. Kiedy podejmujemy próbę połączenia z odległym hostem, nasze wywołanie będzie zawierało unikatowy adres IP, wykorzystywany typ protokołu (IP, TCP lub UDP) oraz port, którego chcemy użyć.

Na przykład:

jeśli próbujemy wywołać Telnet na odległej stacji, nasze wezwanie będzie się składać z adresu IP odległego komputera, typ wykorzystywanego protokołu (tutaj: TCP) oraz portu odległej stacji, na którym spodziewany jest Telnet. Jeśli chociaż jeden z tych parametrów jest błędny, połączenie nie zostanie zrealizowane.

We wczesnym okresie TCP/IP, ze względu na wygodę i standaryzację, wiele usług było skojarzone ze specyficznymi portami.

Na przykład:

usługi SMTP oczekiwały wezwania portu 25, a HTTP wezwania portu 80. W systemach UNIX porty są definiowane w pliku /etc/services lub w bazie danych Network Information Service. W systemach Windows NT, porty są określone w <winroot>system32driversetcservices (<winroot> oznacza macierzysty katalog Windows NT np.: winnt40).

Windows NT jest wyposażony w doskonały wewnętrzny układ ochrony, który zawiera weryfikację rejestracji, ochronę obiektów, prawa użytkownika i możliwość rozległego monitoringu. Zestaw tych elementów daje gwarancję wysokiego poziomu bezpieczeństwa systemu. Z chwilą podłączenia sieci do Internetu dokładamy jednak do systemu wszystkie wewnętrzne słabości protokołu TCP/IP.

Na szczęście „wyjęty prosto z pudełka” Windows NT jest bardziej bezpieczną platformą internetową od większości propozycji opartych na systemie UNIX. Przewaga Windows NT wynika z braku systemowego wsparcia dla najbardziej niebezpiecznych usług internetowych, takich jak Finger i Telnet. Ważnym czynnikiem jest architektura systemu, której twórcy traktowali bezpieczeństwo jako najważniejsze założenie projektu.

Dobrym przykładem różnic, jest przechowywanie informacji o użytkownikach w silnie zabezpieczonej bazie danych Windows NT (SAM), podczas gdy w systemie UNIX są to nieskomplikowane pliki z tekstami haseł. Jak nietrudno się domyślić, warunkiem wstępnym konfiguracji bezpiecznej współpracy Windows NT z TCP/IP jest zainstalowanie i ustawienie samego protokołu. Jeśli TCP/IP już działa na komputerze, to następnym krokiem jest zapewnienie bezpieczeństwa implementacji. Nie można optymalnie skonfigurować ochrony systemu bez znajomości narzędzi i rozwiązań wbudowanych w Windows NT, jak również, dostarczanych razem z nim, dodatkowych programów narzędziowych TCP/IP. Usługi typu Telnet mogą służyć jako doskonałe sprawdziany do wykrywania luk w układzie zabezpieczeń.

Windows NT dostarcza prawie wszystkich najbardziej popularnych narzędzi. Tym niemniej, zgodnie ze wcześniejszymi uwagami, nie świadczy najbardziej niebezpiecznych usług, będących powodem wielu włamań do systemów obronnych. Wszystkie dostarczane z Windows NT usługi internetowe są wspólnie nazywane serwerem informacyjnym Internetu – Internet Information Server, który zawiera między innymi serwery FTP, Gopher i HTTP (Web).

Typy zapór sieciowych

Wyróżniamy dwa podstawowe typy zapór sieciowych:

  1. Zapory sieciowe na poziomie sieci/pakietu (filtry pakietów)
  2. Zapory sieciowe na poziomie aplikacji/usługi (bramy pośredniczące, proxy)

Zapory pracujące na poziomie sieci są zazwyczaj routerami z zaawansowanymi możliwościami filtrowania pakietów. Administrator korzystający z takiej zapory ma możliwość przyznania, bądź odmowy dostępu do swego serwerem w oparciu o kilka zmiennych. Są to między innymi:

  1. Adres źródłowy
  2. Protokół
  3. Numer portu
  4. Zawartość

Zapory sieciowe w postaci routerów są popularne ze względu na łatwość ich zastosowania (po prostu podłącza się firewall do sieci i zaopatruje w odpowiednie reguły). Co więcej większość współczesnych routerów ma możliwość translacji/konwersji protokołów (gdzie protokół IP z zewnątrz jest tłumaczony na inne protokoły stosowane w sieci lokalnej). Dodatkową zaletą zastosowania firewalla zbudowanego w oparciu o router, jest fakt, że z racji swej specyfiki urządzenie takie jest elementem zewnętrznym z punktu widzenia naszej sieci lokalnej.

Tak więc jego podłączenie do sieci nie wymaga konieczności konfiguracji dziesiątek maszyn czy usług. I wreszcie, jeśli nasza sieć jest połączona z Internetem łączem stałym, to router i tak jest jej niezbędnym elementem. Zatem stosując firewall w oparciu o router możemy upiec dwie pieczenie na jednym ogniu. Z drugiej strony zapory sieciowe oparte na routerach maja kilka wad. Jedną z nich jest fakt, że wiele routerów jest podatnych na ataki, polegające na fałszowaniu adresu nadawcy pakietu – spoofing (aczkolwiek producenci pracują nad rozwiązaniem tego problemu).

Z praktycznego punktu widzenia, istotna jest również efektywność (moc obliczeniowa) routera – jeśli zadamy bardzo szczegółowe kryteria filtrowania, to w przypadku dużego natężenia ruchu przychodzącego możemy się spodziewać spadku jego wydajności. Niektóre routery nie posiadają wystarczająco szczegółowych możliwości zapisu stanu pracy. Oznacza to, że możemy potrzebować zewnętrznego oprogramowania i sprzętu do celów monitorowania pracy routera.

Zapory sieciowe realizowane w oparciu o aplikacje bramy Innym rodzajem zapory sieciowej jest firewall wykorzystujący aplikacje pośredniczące w standardowej komunikacji typu klient-serwer. Zapora taka zwana jest również bramą proxy, bądź bramą programową (application gateway). Żądanie połączenia z daną usługą sieciową wysłane przez zdalnego użytkownika jest obsługiwane nie bezpośrednio przez odpowiedni serwer usług, lecz podawane do niego poprzez bramę proxy. Zatem, w odróżnieniu od firewalla – filtra pakietów, nadchodzące pakiety IP nie są po przetworzeniu przesyłane do sieci lokalnej, zamiast tego brama przeprowadza swego rodzaju translację pośrednicząc pomiędzy klientem a serwerem.

Zaletą stosowania bramkowania usług jest fakt zapobiegania dostaniu się pakietów IP do naszej sieci (tunelowania pakietów). Wadą jest konieczność konfiguracji odpowiedniej bramy dla każdej usługi sieciowej, w tym FTP, Telnet, HTTP, e-mail itd. Dodatkowo użytkownicy muszą wykorzystywać programy klienckie pozwalające na stosowanie bramkowania usług (w przeciwnym wypadku, użytkownicy będą musieli nauczyć się „ręcznie” obsługiwać bramę (co może być czasochłonne, uciążliwe, bądź w ogóle niemożliwe, zależnie od stopnia skomplikowania procedur).

Przykładowo – w przypadku bramkowania popularnej usługi Telnet nie jest wymagana obecność po stronie użytkownika klienta świadomego istnienia bramy proxy; w takiej sytuacji jednak wymusi to na użytkowniku konieczność połączenia się (lecz nie zalogowania) z bramą – firewallem dla danej usługi – a nie bezpośrednio z serwerem Telneta. Zastosowanie klienta wspierającego procedury bramkowania uczyni bramę transparentną z punktu widzenia użytkownika. Zapora sieciowa służy jako wejście do systemu docelowego – przechwytuje żądania połączenia i podejmuje dalsze, uprzednio zdefiniowane, kroki, np. zapytanie o jednorazowe hasło. Zachowanie użytkownika pozostaje takie samo, pod warunkiem stosowania odpowiednio zmodyfikowanych/skonfigurowanych klientów usług.