WiZSZ - Prezentacja do wykladu cz.1 (w formacie prezentacji

Download Report

Transcript WiZSZ - Prezentacja do wykladu cz.1 (w formacie prezentacji

Wdrażanie i zarządzanie serwerami zabezpieczającymi
Prezentacja do wykładu część 1
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Organizacja zajęć (studia dzienne) :
Wykład : 15 godzin,
Piątek, godz. 10:15 – 11:00, sala 105E.
Prowadzący : mgr inż. Łukasz Jopek
http://ljopek.kis.p.lodz.pl
Email: [email protected]
Godziny przyjęć: środy, w godzinach 10-11, sala 323.
Laboratorium :
Piątek, godz. 11:15 –13:00, sala 311.
Prowadzący: mgr inż. Robert Nowotniak
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Organizacja zajęć (studia zaoczne) :
Wykład : 10 godzin,
Piątek, godz. 8:15 – 10:00, sala 320.
Prowadzący : mgr inż. Łukasz Jopek
http://ljopek.kis.p.lodz.pl
Email: [email protected]
Godziny przyjęć: do uzgodnienia.
Laboratorium :
Niedziela, godz. 9:15 –11:00, sala 307.
Prowadzący: mgr inż. Robert Nowotniak
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Organizacja zajęć (studia dzienne i zaoczne) :
Zaliczenie : egzamin, być może test ;)
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Zawartość wykładu (studnia dzienne):
•Przedstawienie funkcjonalności iptables.
•Instalacja oraz zarządzanie iptables.
•Konfiguracja bezpiecznego dostępu do sieci dla wewnętrznych
klientów przy użyciu iptables.
•Konfiguracja iptables jako zapory ogniowej pomiędzy siecią
wewnętrzną a Internetem.
•Filtrowanie przepływu danych przy użyciu iptables.
•Wprowadzanie polityki bezpieczeństwa z użyciem snort'a.
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Zawartość wykładu (studnia zaoczne):
•Przedstawienie funkcjonalności iptables.
•Instalacja oraz zarządzanie iptables.
•Konfiguracja bezpiecznego dostępu do sieci dla wewnętrznych
klientów przy użyciu iptables.
•Konfiguracja iptables jako zapory ogniowej pomiędzy siecią
wewnętrzną a Internetem.
•Filtrowanie przepływu danych przy użyciu iptables.
•Wprowadzanie polityki bezpieczeństwa z użyciem snort'a.
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Przypomnienie najważniejszych informacji na temat
Sieci komputerowych.
•Co oznaczają skróty : LAN i WAN ?
•Co to jest Adres IP ? Co to jest maska podsieci ? Jak wyznaczyć adres
sieci i hosta z adresu IP?
•Co to jest adres sprzętowy (MAC) ?
•Co to jest TCP? UDP ? IMCP ?
•Jak działa switch ethernetowy ?
•Co to jest routing ? A na czym polega mechanizm NAT ?
•Co to jest pakiet ? Jakie informacje niesie ze sobą ?
•Co to jest Model ISO/OSI ?
•Co to są porty niskie i wysokie ?
•…
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Wykład 1. Iptables.
Przedstawienie funkcjonalności i sposobu działa
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Czy jest Iptables ?
•iptables to program sterujący filtrem pakietów opracowany dla
systemu operacyjnego Linux. Pierwsze wersje powstały dla jądra w
wersji 1.1
•Autor Rusty Russell napisał pierwszą wersję w 1998 roku.
Oprogramowanie napisane zostało w języku C.
•Iptables może być używany w niemal każdym systemie z rodziny
Linux, wymaga jednakże jądra skompilowanego z modułem
ip_tables.
•Często się zdarza, że oprogramowanie iptables jest już
zaimplementowany w systemie (jądra 2.4.x i 2.6.x)
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Czy jest Iptables ? / główne zastosowania.
•Program może być używany jako filtr pakietów
•Program może być używany także jako stanowa zapora (ang.
firewall)
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Oprogramowanie Iptables
•Iptables może być używane w postaci łancuchów, tzn reguł
•Iptables może być używane w postaci skryptów zawierających reguły
iptables
•Istnieją także alternatywne wersje oprogramowania iptables :
•Ebtables ( wersja iptables dla mostów sieciowych). Służy do
konfiguracji Netfilter dla mostów sieciowych. Ebtables wchodzi w
skład pakietu narzędzi Netfilter.
•Firestarter – jest to nakładka graficzna dla iptables. Jej głównie
zadanie to ułatwienie konfiguracji i zarządzania oprogramowaniem
iptables, szczególnie dla początkujących użytkowników.
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Firestarter – nakładka graficzna dla iptables
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Czym jest i jak działa filtrowanie pakietów ?
Filtrowanie adresów IP opiera się na sprawdzaniu adresu źródłowego i
docelowego w nagłówku pakietu IP i podejmowaniu odpowiednich
działań w wypadku odnalezienia pakietu
spełniającego pewne zdefiniowane reguły firewalla. Filtrować można
również w oparciu o protokoły, można np. blokować pakiety protokółu
ICMP odpowiadające za działanie popularnego polecenia ping. Choć
przydatne w przypadku testowania sieci intruzowi pozwolić może na
sprawdzenie, jakie adresy wykorzystywane są w danej sieci. W
przypadku protokołów TCP i UDP można blokować odpowiednie
porty. Pozwala to np. zablokować użytkownikom sieci na korzystanie
z pewnych usług (np. WWW, ftp czy innej aplikacji).
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Czym jest i jak działa filtrowanie stanów ?
Filtrowanie stanowe jest podobnie do filtrowania pakietów, ale
dodatkowo śledzi i analizuje kontekst komunikacji. Firewalle tego
typu utrzymują tablice z informacjami na temat aktualnych połączeń.
Filtrowanie pakietów odbywa się w warstwie sieci, a filtrowanie
stanowe następuje w warstwie wyższej. Dlatego też jest w stanie
wykryć i powstrzymać bardziej formy wyszukane ataków za pomocą
protokołów wyższego poziomu, np. TCP czy UDP.
Filtrowanie pakietów nie jest jednak tylko funkcjonalnością firewalli,
pełni także ważną rolę w sterowaniu ruchem w sieci ,
przekazywaniem pakietów itp.
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Instalacja oprogramowania Iptables
• W wielu dystrybucjach systemów Linux oprogramowanie jest
Zainstalowanie domyślnie.
Instalacja jest bardzo prosta :
1. Należy ściągnąć oprogramowanie :
• http://netfilter.filewatcher.org/
• http://netfilter.samba.org/
• http://netfilter.gnumonks.org/
2. Instalacja polega na dodaniu do jądra systemu modułu iptables
( ip_tables)
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Organizacja działania iptables
Reguła, łańcuch, tabela . . .
Iptables w celu zbadania danego pakietu wykorzystuje
tzw. reguły. Jest to najmniejsza jednostka filtra netfilter.
Pojedyncza reguła zawiera informację warunkach, jakie
musi spełniać pakiet, oraz o akcji, jaka będzie
wykonana, gdy pakiet spełni wskazane warunki
Chcemy np. blokować wszystkie pakiety TCP
Część czerwona to akcja
Część niebieska to warunki
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Pojedyncze reguły grupowane są w łańcuchy. Zbiór łańcuchów natomiast
tworzy tabelę.
Istnieją trzy tabele:
1. filter jest to domyślna tabela; filtrowanie pakietów
2. nat to tabela używana przez pakiety nawiązujące połączenie;
translacja adresów
3. mangle to tabela służąca do modyfikacji przepływających pakietów
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Tabela mangle używana jest do zmiany nagłówków pakietów, tzn. takich
pól, jak TOS (Type Of Service), TTL (Time To Live), jak i do filtrowania
stanowego.
Tabela nat służy do translacji adresów sieciowych, gdy sieć używa NAT.
W niej ustalamy maskaradę adresów sieciowych i przekierowujemy
pakiety.
Tabela filter służy do właściwego filtrowania pakietów. Tutaj
definiowane są podstawowe reguły firewalla, ustalane są reguły, Dzięki
za wszystko którym firewall decyduje, czy dany pakiet zaakceptować
czy odrzucić.
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Różne tabele iptables dysponują różnymi wbudowanymi łańcuchami.
Np. tabela filter zawiera łańcuchy INPUT, FORWARD i OUTPUT.
Tabela nat zawiera łańcuchy PREROUTING, OUTPUT i
POSTROUTING, ale już tabela mangle zawiera wszystkie rodzaje
łańcuchów.
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Każda z tabel zawiera kilka predefiniowanych łańcuchów oraz łańcuchy
zdefiniowane przez administratora. Istnieją następujące predefiniowane
łańcuchy:
✗ INPUT - wywoływany dla pakietów przybywających z sieci
przeznaczonych dla lokalnej maszyny.
✗ FORWARD - wywoływany dla pakietów routowanych przez lokalną
maszynę, lecz pochodzących spoza niej i nie przeznaczonych
dla niej.
✗ OUTPUT - wywoływany dla pakietów tworzonych lokalnie i
wychodzących poza maszynę.
✗ PREROUTING - wywoływany dla pakietów z zewnątrz jeszcze
przed ich routowaniem.
✗ POSTROUTING - wywoływany dla pakietów, które właśnie
opuszczają maszynę
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Tabela
Łańcuch
reguła
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Łańcuchy iptables.
Schemat budowy reguły iptables wygląda następująco:
iptables [-t table] command [match] [-j jump/target]
gdzie:
Table – umożliwia wybór tablicy, dla której obowiązywać będzie dana
reguła, brak tej informacji w regule powoduje zapisane jej do tabeli filter.
Command - (wybieramy jedną)
[match] – warunki dopasowania pakietu
[- jump / target] - akcja
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Łańcuchy iptables.
• iptables -A łańcuch opis_reguły
Dodaje regułę na koniec wskazanego łańcucha we wskazanej tabeli. •
• iptables -D łańcuch opis_reguły
Usuwa zadaną regułę z łańcucha.
• iptables -I łańcuch numer_reguły opis_reguły
Dodaje regułę we wskazanym miejscu łańcucha. Jeśli pominie się
numer_reguły, reguła zostanie wstawiona na początku łańcucha.
• iptables -R łańcuch numer_reguły opis_reguły
Zamienia regułę wskazaną numerem na opisaną w poleceniu.
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
iptables -D łańcuch numer_reguły
Usuwa regułę o podanym numerze.
• iptables -L łańcuch
Listuje reguły we wskazanym łańcuchu. Pominięcie nazwy łańcucha
spowoduje wylistowanie całej zawartości tabeli.
• iptables -N łańcuch
Tworzy łańcuch użytkownika o zadanej nazwie.
• iptables -X łańcuch
Usuwa łańcuch użytkownika. Warunkiem jest brak odwołań do
wskazanego łańcucha w innych łańcuchach.
• iptables -P łańcuch domyślny_cel
Ustawia policy (domyślną akcję) zadanego łańcucha
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Na definicję reguły składa się dowolna ilość warunków oraz
dokładnie jedna akcja.
•W przypadku braku warunków akcja wykonywana jest zawsze.
• Reguła posiadająca tylko warunki, a nie posiadająca akcji, będzie
używana wyłącznie do liczenia pakietów pasujących do warunków.
Każdy pakiet rozpoczyna swoją podróż przez filtr pakietowy w jednym
z predefiniowanych łańcuchów. Łańcuch skanowany jest od góry do
dołu w poszukiwaniu reguł, które będą odpowiadać sprawdzanemu
pakietowi. Po napotkaniu takiej reguły, wykonywana jest jej akcja.
Pozostała część łańcucha nie jest już skanowana.
Dlatego ważna jest kolejność dodawania reguł!
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Przykład 1:
Reguła 1: Wszystkie przychodzące pakiety TCP, na porcie 80 : Akceptuj
Reguła 2: Wszystkie przychodzące pakiety TCP, na porcie 80 : Odrzuć
Przykład 2:
Reguła 1: Wszystkie przychodzące pakiety TCP, na porcie 80 : Odrzuć
Reguła 2: Wszystkie przychodzące pakiety TCP, na porcie 80 : Akceptuj
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Definiowanie warunków dla reguł :
Mogą one obejmować :
•Adres IP (docelowy i źródłowy)
•Adres MAC (docelowy i źródłowy)
•Port (docelowy i źródłowy)
•Intefejs (docelowy i źródłowy)
•Istnieje również zestaw warunków opcjonalnych, ładowanych przez
opcję -m. Pozwalają one na uzyskiwanie różnych efektów.
•Pakiet może spełniać jeden lub warunków, np. Adres IP docelowy i port
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Akcje:
Akcję definiuje się, używając parametru -j. Najczęściej używane akcje
to:
• ACCEPT - przyjmij pakiet.
• DROP - wyrzuć pakiet bez żadnego komunikatu.
• RETURN - powoduje powrót z łańcucha zdefiniowanego przez
administratora do łańcucha, z którego został on wykonany.
• REJECT - odrzuca pakiet z odesłaniem komunikatu o błędzie,
domyślnie ICMP port unreachable.
• MARK - oznaczenie pakietu za pomocą wartości numerycznej podanej
w parametrze --set-mark. Użyteczne w tabeli mangle.
Używane zwykle dla przekazywania informacji do iproute2.
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
• SNAT - zmienia adres źródłowy pakietów i zapamiętuje tą zmianę dla
danego połączenia. Używane głównie do podłączania sieci
LAN do Internetu przez łącze ze stałym adresem IP. Użyteczne
wyłącznie w łańcuchu POSTROUTING tabeli nat. Akceptuje
parametr --to-source, wskazujący adres IP do wstawienia jako adres
źródłowy - zazwyczaj IP interfejsu internetowego.
• DNAT - zmienia adres docelowy pakietów i zapamiętuje zmianę dla
danego połączenia. Używane głównie do przekazywania
połączeń z interfejsu internetowego do maszyn w sieci lokalnej.
Użyteczne w łańcuchach PREROUTING i OUTPUT tabeli NAT.
Akceptuje parametr --to-destination, określający adres z opcjonalnym
portem docelowym (wg formatu adres:port).
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
• MASQUERADE - maskuje adres nadawcy pakietu, użyteczne
wyłącznie w łańcuchu POSTROUTING tabeli nat. Powinno się
używać jedynie przy dynamicznie przydzielanym adresie IP.
• REDIRECT - przekierowuje pakiet do lokalnej maszyny, użyteczne
w łańcuchach PREROUTING i OUTPUT tabeli nat. Opcjonalny
argument --to-ports pozwala na przekierowanie połączenia na dowolnie
wybrany port lokalnej maszyny.
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Istnieją też CELE rozszerzone, które dostarczane są jako moduły.
Moduły te niekoniecznie muszą być dostępne podczas standardowej
instalacji. Mogą zatem wymagać dodatkowej instalacji. I są to:
* BALANCE - rozdzielenie połączeń zgodnych z daną regułą na kilka
hostów.
* CLUSTERIP - umożliwia stworzenie klastra hostów o takim samym
adresie IP i adresie MAC karty sieciowej.
* DNAT - przekierowywanie połączenia na inny adres
* SNAT - umożliwia zmianę adresu IP źródła pakietu.
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
* LOG - logowanie informacji o pakietach - dmesg - (ang. display
message) .
* ULOG - umożliwia logowanie pakietów za pomocą programów
przestrzeni użytkownika.
* MASQUERADE - używana przy standardowym routingu.
* REDIRECT - przy routingu - zamiast do przeznaczenia pakiet trafia
na lokalny komputer.
* REJECT - Przy pakietach icmp odpowiada wybranym typem
odpowiedzi, przy innych protokołach działa jak DROP
* ROUTE - podstawowe założenia Routingu (przez którą bramę
sieciową / przez które urządzenie sieciowe wysłać pakiet).
* TTL - umożliwia zmianę wartości TTL w pakiecie.
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
iptables -P INPUT DROP
blokujemy wszystko, co
przychodzi do naszej maszyny.
Najlepszy Firewall ?
Rozbudowujemy nasz firewall.
iptables -P INPUT DROP
iptables -A INPUT –p tcp --sport 80 -j ACCEPT
iptables -A OUTPUT –p tcp --dport 80 -j ACCEPT
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Drogi pakietów w iptables
•Pakiet stworzony na lokalnym komputerze przez jeden z procesów
odbędzie swoją drogę kolejno przez:
•łańcuch OUTPUT tablicy mangle
•łańcuch OUTPUT tablicy nat (tylko jeśli jest pakietem
nawiązującym nowe połączenie)
•łańcuch OUTPUT tablicy filter
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Drogi pakietów w iptables
Pakiet, którego celem jest nasza lokalna maszyna, otrzymany z interfejsu
sieciowego odbędzie swoją drogę przez:
•łańcuch INPUT tablicy mangle
•łańcuch INPUT tablicy filter
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Drogi pakietów w iptables
Pakiet, którego celem nie jest nasza lokalna maszyna, a otrzymany został
z jednego z interfejsów sieciowych odbędzie swoją drogę przez:
•łańcuch PREROUTING tablicy mangle
•łańcuch PREROUTING tablicy nat (tylko pakiet tworzący nowe
połączenie)
•łańcuch FORWARD tablicy mangle
•łańcuch FORWARD tablicy filter
•łańcuch POSTROUTING tablicy mangle
•łańcuch POSTROUTING tablicy nat (tylko pakiet tworzący nowe
połączenie)
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Testowanie wprowadzonych reguł. Wyświetlanie na konsoli podczas
wywołania iptables. Najczęściej używane to:
•-n - wyświetla (przy listowaniu przez -L adresy IP hostów zamiast ich
nazw (domyślnie iptables próbuje rozwiązać nazwy i wyświetlić nazwy
hostów).
•-v - przy listowaniu pokazuje ilość wysłanych/odebranych przez dany
łańcuch pakietów i bajtów oraz domyślną politykę łańcucha.
•--line-numbers - wyświetla (przy listowaniu przez -L) numery linii dla
poszczególnych reguł.
•-x podaje dokładne dane przy listowaniu liczby wysłanych/odebranych
pakietów (domyślnie występiją zaokrąglenia).
Przykład: iptables -L -v -x
•-j CEL - bardzo przydatna opcja kierująca pakiety spełniające podaną
regułę od od razu do CELU.
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Polityki
Chain INPUT (policy ACCEPT /DROP)
Chain FORWARD (policy ACCEPT /DROP)
Chain OUTPUT (policy ACCEPT /DROP)
Polityka to inaczej domyslny sposób postępowania z pakietem w
danym łańcuchu. Jeśli żadna reguła nie określa zachowania danego
Pakietu, bądź w łańcuchu nie ma reguł, to polityka łańcucha
Definiuje sposób postępowania z pakietem.
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Tworzenie reguł. Przykłady reguł.
iptables -A INPUT -p tcp -s 0/0 --sport 80 -j ACCEPT
iptables -A OUTPUT -p tcp -d 0/0 --dport 80 -j ACCEPT
Zezwalamy na pakiety www
iptables -A INPUT -s 192.168.0.15 --sport 22 -j ACCEPT
iptables -A OUTPUT -s 192.168.0.15 --dport 22 -j ACCEPT
zezwalamy na połączenia przychodzące ssh z maszyny o podanym
adresie
iptables -I INPUT 1 - p icmp d 127.0.0.1 -j DROP
Zablokowanie pakietów ICMP dla adresu 127.0.0.1
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Tworzenie reguł. Przykłady reguł.
Iptables –A INPUT –p tcp --sport 25 –j ACCEPT
Iptables –A OUTPUT –p tcp --dport 25 –j ACCEPT
Dopuszczenie ruchu na porcie 25 (smtp) dla maszyny lokalnej
Iptables –A Prerouting –t nat –p tcp –dport 433 –j DNAT to 192.168.0.1:433
Reguła pozwalająca na dostęp do sieci zewnętrznej komputera z sieci wewnętrznej
(podłączonego do interfejsu 192.168.0.1) na porcie 433 (używanego przez program
skype).
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Tworzenie reguł. Przykłady reguł.
Iptables –A INPUT –p tcp --sport 6667:6669 –j ACCEPT
Iptables –A OUTPUT –p tcp --dport 6667:6669 –j ACCEPT
Dopuszczenie ruchu na portach od 6667 do 6669 (program IRC)
dla maszyny lokalnej
Iptables –A INPUT –p tcp --sport 21
Iptables –A OUTPUT –p udp --udp 53
Zliczanie pakietów :
1. TCP przychodzących , na porcie 21 (FTP).
2. UDP przychodzących, na porcie 53 (DNS).
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Zaproponuj reguły, które :
1. Dopuszczają ruch na porcie 8080, dla maszyny lokalnej, w
obie strony, tylko dla protokołu tcp.
2. Blokują ruch na portach od 50 do 70, dla maszyny lokalnej,
w obie strony.
3. Blokują ruch przychodzący na porcie 22, protokół tcp,
z adresu 192.168.1.15.
4. Dopuszczają ruch wychodzący tylko dla protokołu tcp.
5. Dopuszczają ruch przychodzący i wychodzący tylko do
Protokołu udp.
6. Pozwalające na komunikację z serwerami DNS (port 53 UDP)
7. Pozwalające na komunikację na portach od 1550 do 1585, dla
Protokołu tcp.
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Dalsze sposoby określania warunków, jakie musi spełniać pakiet, aby
Aktywować łańcuch.
·
-p[!] protokół lub -- protocol [!] protokół
Ustala regułę dla danego protokołu: TCP (możemy wpisać 6 w miejsce
protokołu), UDP (17), ICMP (1) lub dla wszystkich protokołów: all (0).
Jeśli użyjemy znak wykrzyknika ! to spowoduje to inwersje znaczenia,
zatem p ! tcp będzie oznaczać regułę dla protokołów różnych od TCP.
Przykład :
-p tcp
--[!] udp
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
·
-S [!] adresIP , src [!] adresIP , source [!] adresIP
Ustala regułę dla pakietów o adresie źródłowym adres IP, w który
możemy wpisać pojedynczy adres (np. 192.168.0.1) lub zakres adresów
(np. 192.168.0.0/24 lub 192.168.0.0/255.255.255.0). Podobnie jak
wcześniej, znak ! dokonuje inwersji znaczenia.
Przykład :
-S 192.168.65.1
-S ! 192.168.4.4
-src 192.168.64.4
-source ! 192.168.55.5
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
·
-d [!] adresIP , dst [!] adresIP , destination [!]adresIP
Ustala regułę dla pakietów o adresie docelowym adresIP, zasady
podobne jak wyżej
Przykład :
-d 212.77.100.101
-d ! 100.100.66.1
-dst 212.88.10.9
-dst ! 80.75.1.15
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
iptables -t mangle -A OUTPUT -j TTL --ttl-set 126
Przykład urzycia tzn. celu – tutaj zniama wartości pola TTL w
Pakiecie.
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
·
-i [!] interfejs , ininterface [!] interfejs
ustala regułę dla danego interfejsu (np. eth0,eth1,ppp0) do którego pakiet
przychodzi, znak ! oznacza inwersję znaczenia, stosowane wyłącznie dla
łańcuchów INPUT, FORWARD i PREROUTING. Znak + oznacza
wszystkie interfejsy podobne do danego, np. eth+ będzie oznaczać
interfejs eth0, eth1, eth2, itp.
·
-o[!] interfejs , outinterface [!] interfejs
ustala regułę dla interfejsu z którego pakiet wychodzi, stosowane
wyłącznie dla łańcuchów OUTPUT, FORWARD, POSTROUTING.
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
· -Sport [!] nr , sourceport [!] nr (tylko dla protokołów
TCP, UDP)
ustala regułę dla pakietów o numerze źródłowym portu nr. Możemy
zamiast nr wpisać nazwę usługi (zostanie przeszukany plik /etc/services)
jak i zakres portów oddzielany dwukropkiem, np sport 22:80 (dla portów
22, 23, ..., 80), sport ! :80 (dla portów 81, 82, ..., 65535)
-dport [!] nr , destinationport [!] nr (dla protokołów
TCP, UDP)
ustala regułę dla pakietów o numerze docelowym portu nr. Zasady jak
wyżej.
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
-tcp-flags []
Pozwala na dodawanie warunków w postaci ustawionych
flag.
-tcp-flags FIN,ACK FIN,ACK
--tcp-flags RST RST
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Zaproponuj reguły, które :
1. Dopuszczają ruch na porcie 8080, dla maszyny lokalnej, w
obie strony, dla wszystkich protokołów prócz tcp.
2. Blokują ruch na portach od 50 do 70, dla maszyny lokalnej,
w obie strony, przy ustawionych flagach : ACK i FIN
3. Blokują ruch przychodzący na porcie 22, protokół tcp, tylko
interfejsu eth1.
4. Dopuszczają ruch wychodzący tylko dla protokołu tcp i imcp.
5. Dopuszczają ruch przychodzący i wychodzący tylko do
Protokołu udp i dla każdego interfejsu z wyjątkiem ppp0
6. Pozwalające na komunikację z usługą pracująca na portach
8000:9000, na hoście o adresie 192.168.55.55
7. Pozwalające na komunikację tylko z hostem 212.100.185.1
8. Blokującą komunikację z hostem 80.85.67.1
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Reguły zagnieżdżone :
Iptables – A FORWARD [warunki] –j łańcuch_A
Iptables –A łańcuch_A [warunki] –j łańcuch_B
Iptables –A łańcuch_B [warunki] –j łańcuch_C
Iptables –A łańcuch_C [warunki] –j ACCEPT
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Filtrowanie stanowe
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Każde połączenie rejestrowane jest także w maszynie stanów iptables
(filtrowanie stanów).
Wyróżnić można następujące stany: NEW, ESTABLISHED, RELATED,
INVALID.
Aktualna tablice stanów połączeń znaleźć mona w pliku:
/proc/net/ip_conntrack
Można także użyć poniższego polecenia, aby wyświetlić aktualna tablice
stanów połączen:
cat /proc/net/ip_conntrack
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Moduł 'state {!} [jaki]'
-dostępne po załadowaniu modułu można opierać się na stanie
połączeń dostępne to:
NEW (nowy) – Jeśli pakiet przychodzi ze zdalnej maszyny lub te
zostanie do niej wysłany z naszej maszyny w celu nawiązania nowego
połączenia to zostanie on potraktowany jako NEW, czyli nowy.
Jednak każdy następny pakiet już tak potraktowany nie zostanie.
ESTABLISHED (połączony) – Pakiety zostaną potraktowane jako
ESTABLISHED jeśli nawiązane zostanie już połączenie w dwie
strony ze zdalna maszyna.
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
RELATED (powiązany) - Służy do obsługi innego obecnie istniejącego
połączenia, np. takiego, które są częścią multipołączenia w protokołach
typu FTP, albo jako błędne pakiety związane z istniejącymi połączeniami
(np. pakiet błędu ICMP związany z obecnie występującymi
połączeniami).
INVALID (niepoprawny) – Pakiety, które nie mogą być
zaklasyfikowane jako jedna z powyższych trzech kategorii (nie można
ich rozpoznać) traktowane są jako INVALID, nie jest jednak
automatycznie odrzucany, ale jest ciągle aktywny. Można go
wykorzystać używając innych zasad, np. dynamicznie ustawić taktykę
łańcuchową.
UNTRACKED (nieśledzony) - pakiet nie należący do śledzonego
połączenia.
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Celem jest wpuszczenie wszystkich połączeń które już wcześniej zostały zaakceptowane:
iptables -A INPUT -p tcp -m state --state NEW -d 192.168.0.1 --dport 21 -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Wykrzyknik powoduje zaprzeczenie np.
'--state ! INVALID'
wpuści wszystkie stany poza INVALID.
Np.
iptables -A INPUT -m state -'--state ! INVALID, ESTABLISHED' -j ACCEPT
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Przykład – fragment firewalla (bezpieczna konfiguracja dla serwera
DNS)
iptables -P INPUT DROP
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -s 192.169.65.5 -p udp --dport 53 -m state --state NEW -j ACCEPT
iptables -A INPUT -m state --state INVALID -j DROP
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
iptables -P INPUT DROP
Pierwsza reguła definiuje domyślną politykę .
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -s 192.169.65.5 -p udp --dport 53 -m state --state NEW -j ACCEPT
Trzecia reguła sprawdza pakiety próbujące utworzyć nowe połączenie. Reguła
przepuszcza pakiety przychodzące z serwera DNS o adresie 192.169.65.5 na nasz port
53/udp, którym został przypisany stan NEW.
Odpowiedzi z serwera DNS są zwykle traktowane jako pakiety tworzące nowe
połączenie, a więc odpowiadają stanowi NEW.
Jeśli serwer wyższego poziomu odpowiada na zapytanie naszego serwera to jest to
odpowiedź na nasze zapytanie więc jądro takiemu pakietowi przypisze stan
ESTABLISHED. Reguła nr 2 zezwoli na przepuszczenie takiego pakietu do naszej
maszyny.
Gdyby nie reguła nr 3 – firewall posiadał by lukę (akceptowane byłby również pakiety
na porcie 53/UDP ze stananami inni niż NEW, jednak takie pakiety nie są zwykle
odpowiedziami serwera DNS.)
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Przykład reguł firewalla dla usługi DNS :
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -d [IP_SERWER_DNS_1] -p udp --dport 53 -m state --state NEW
-j ACCEPT
iptables -A OUTPUT -d [IP_SERWER_DNS_2] -p udp --dport 53 -m state --state NEW
-j ACCEPT
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Konfiguracja bezpiecznego dostępu do sieci
dla wewnętrznych klientów przy użyciu
iptables.
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Ogólny schemat firewalla:
• Czyszczenie ewentualnych reguł.
• Ustawienie domyślnych polityk.
• Włączenie przekazywania pakietów (dla routera).
• Ustalenie, które usługi moją być dostępne na maszynie lokalnej i w
jaki sposób.
• Ustalenie, jakie usługi mają być dostępne w sieci wewnętrznej
1. Z sieci wewnętrznej do sieci zewnętrznej
2. Z sieci zewnętrznej do sieci wewnętrznej
3. Z sieci wewnętrznej do komputera – routera
4. Z Komputera – routera do sieci wewnętrznej.
• Ustalenie zasad NAT / Maskarady (co jest powiązane z poprzednim
punktem).
• Problem logowania (i ewentualnej detekcji zagrożeń)
• Ochrona przed najpopularniejszymi metodami ataków sieciowych.
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Tworzymy firewall’a …
#firewall jest na moim routerze :)
echo "1" > /proc/sys/net/ipv4/ip_forward
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all #(ochorna przed SmurfAttack)
#Skaner tive
#iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j
ACCEPT
#Ochrona przed ping of death
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
#Ochrona przed syn-flood
#iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT
iptables -X -t nat
iptables -X -t filter
iptables -X -t mangle
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Sytuacja normalna
Atak typu syn-flood
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
#Akceptujemy ping
iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type echo-request -j ACCEPT
Lub…
iptables -A INPUT -p icmp -m icmp --icmp-type any -j ACCEPT
iptables -A OUTPUT -p icmp -m icmp --icmp-type any -j ACCEPT
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
#Akceptujemy pakiety ssh
iptables -A INPUT -p tcp --sport 80 --dport 80 -m state !--state INVALID
-j ACCEPT
#Akceptujemy pakiety www
iptables -A INPUT -p tcp --sport 80 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT
#Akceptujemy pakiety ssh
iptables -A INPUT -p tcp --sport 22 --dport 22 -m state --state NEW -j
ACCEPT
iptables -A INPUT -s192.168.65.5 -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -s 192.168.65.8 -p tcp --sport 22 -j ACCEPT
iptables -A OUTPUT -d 192.168.65.5 -p tcp --sport 22 -j ACCEPT
iptables -A OUTPUT -d 192.168.65.8 -p tcp --dport 22 -j ACCEPT
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
DNS…
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -d $DNS1 -p udp --dport 53 -m state --state NEW -j ACCEPT
iptables -A OUTPUT -d $DNS2 -p udp --dport 53 -m state --state NEW -j ACCEPT
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
FTP (maszyna lokalna)
-A INPUT -p tcp -s 0/0 -d 0/0 --destination-port 20 -j ACCEPT
-A INPUT -p tcp -s 0/0 -d 0/0 --destination-port 21 -j ACCEPT
-A OUTPUT -p tcp -s 0/0 -d 0/0 --destination-port 20 -j ACCEPT
-A OUTPUT -p tcp -s 0/0 -d 0/0 --destination-port 21 -j ACCEPT
-A INPUT -s 0.0.0.0/0 -p tcp -m state --state NEW -m tcp --dport 20:21 -j ACCEPT
-A OUTPUT -s 0.0.0.0/0 -p tcp -m state --state NEW -m tcp --dport 20 :21-j ACCEPT
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Poczta
#Akceptujemy pakiety poczty (smtp)
iptables -A INPUT -p tcp --sport 25 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 25 -j ACCEPT
#Akceptujemy pakiety poczty (pop3)
iptables -A INPUT -p tcp --sport 110 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 110 -j ACCEPT
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Firewall dla routera.
• Założenie : komputer pełni rolę routera pomiędzy siecią zewnętrzną
tzn. WAN lub Internet, oraz siecią wewnętrzną tzn. LAN.
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
IPTABLES=/sbin/iptables #ścieżka do iptables
#czyszczenie starych wpisow
IPTABLES -F -t nat
IPTABLES -F -t mangle
IPTABLES -F -t filter
#deklaracja domyslnej polityki na DROP dla ruchu przychodzacego, wychodzącego i
forwardowanego.
IPTABLES -P FORWARD DROP
IPTABLES -P INPUT DROP
IPTABLES -P IOUTPUT DROP
## ustawienie przekazywania pakietow
echo 1 > /proc/sys/net/ipv4/ip_forward
$IPTABLES -A POSTROUTING -t nat –o ppp0 -j MASQUERADE
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
#przepuść ftp
IPTABLES -A FORWARD -p tcp --dport 20:21 -j LOG
IPTABLES -A FORWARD -p tcp --dport 20:21 -j ACCEPT
IPTABLES -A FORWARD -p tcp --sport 20:21 -j LOG
IPTABLES -A FORWARD -p tcp --sport 20:21 -j ACCEPT
ftp niezbedne do trybu pasywnego
IPTABLES -A FORWARD -p tcp --dport 47000:54000 -j LOG
IPTABLES -A FORWARD -p tcp --dport 47000:54000 -j ACCEPT
#WWW
IPTABLES -A FORWARD -p tcp --dport 80 -j ACCEPT
#DNS
IPTABLES -A FORWARD -p udp --dport 53 -j ACCEPT
IPTABLES -A FORWARD -p udp --sport 53 -j ACCEPT
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
1) Router pełni także funkcję firewalla.
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
2) Sieć posiadająca strefę DMZ (strefa zdemilitaryzowana)
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Strategie zabezpieczeń
• przydział minimalnych wystarczających przywilejów,
• wykorzystanie dogłębnej obrony,
• zapewnienie wąskiego przejścia,
• zasada najsłabszego ogniwa,
• bezpieczna reakcja w przypadku uszkodzenia,
• wykorzystanie zróżnicowanych środków obrony,
• maksymalna prostota wystarczająco bezpiecznego rozwiązania,
• wykorzystanie w pewnym zakresie zabezpieczania poprzez utajnianie.
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Przydział minimalnych wystarczających przywilejów
(ang. least privilege).
• Jedna z podstawowych zasad zabezpieczania sieci komputerowej
•Polega na przyznawaniu użytkownikom minimalnych,
wystarczających uprawnień. Dotyczy to tak zwykłych użytkowników
jak i np. administratorów.
•Dotyczy to możliwości czytania plików w systemie lokalnych lub
zdalnym, oraz np. dostępu do usług.
Przestrzeganie tej zasady minimalizuje ryzyko zniszczeń (tak z winy
Użytkowników jak i atakujących)
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Metoda dogłębnej obrony (ang. defence in depth).
•Polega na stosowaniu zabezpieczeń na wielu poziomach
•Założenie jest takie, że nie można polegać tylko na jednym systemie
Zabezpieczającym (jakkolwiek wydawałby się skuteczny)
•Celem stosowania nadmiarowych zabezpieczeń nie jest głównie
obrona przed atakami, lecz ochrona przed awariami innych poziomów
zabezpieczeń.
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Metoda wąskiego przejścia (ang. choke point).
• Polega na takiej konstrukcji sieci, aby ruch pomiędzy siecią wewnętrzną
A siecią zewnętrzną (np. Internetem) przechodził przed tylko jeden kanał,
Który można kontrolować.
• Metoda jest skuteczna, o ile w sieci nie ma innych punktów połączeń
z siecią zewnętrzną (np. poprzez modem).
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Zasada najsłabszego ogniwa
• Opiera się na spostrzeżeniu, że łańcuch obronny jest tak silny, jak jego
najsłabsze ogniwo. Najsłabsze ogniwo istnieje zawsze.
• Należy dążyć do eliminacji tego ogniwa, lub, jeśli to niemożliwe, to
skupić się należy na szczególnej kontroli nad tym elementem.
• Atakujący będą chcieli znaleźć ten punkt i wykorzystać go do ataku.
• Przykładem takiego najsłabszego łańcucha może być np. zabezpieczenie
fizycznego dostępu do urządzeń sieciowych. Można dopuścić do
słabszego nadzoru nad dostępem do urządzeń sieciowych, gdyż zreguły
atak następuje poprzez sieć.
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Bezpieczna reakcja w przypadku uszkodzenia
• W momencie awarii urządzenia zabezpieczającego, powinno ono
zablokować dostęp do sieci, zamiast całkiem go otworzyć. Przykład:
Jeśli router filtrujący pakiety ulegnie uszkodzeniu – przestanie przekazywać pakiety do innych sieci. Tym samym odetnie dostęp do sieci użytktkowinkom, ale zapobiegnie atakom.
• Wymagana jest także współpraca z użytkownikami sieci :
Można to osiągnąć metodami edukacyjnymi i restrykcyjnymi.
Często obie metody się uzupełniają.
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Metoda zróżnicowanych środków obrony
• Idea tej metody opiera się na spostrzeżeniu, że systemy zabezpieczające
posiadają różne luki. Systemy zabezpieczeń tego samego rodzaju (np.
filtry pakietów) mają te same słabości. Również systemy konfigurowane
przez tą samą osobę mogą zawierać ten sam błąd merytoryczny. Podobna
sytuacja może wystąpić w przypadku systemów operacyjnych.
• Dlatego środki bezpieczeństwa powinny być zróżnicowane. Pamiętać
należy jednak, że nadmierne zróżnicowanie może utrudnić zarządzanie
system i tym samym może doprowadzić do zmniejszenia poziomu
bezpieczeństwa.
• Metoda to jest dość mocno powiązana z metodą dogłębnej obrony.
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Strategia zabezpieczania przez utajnianie (ang. security
through obscurity).
• Polega na utajeniu informacji o zabezpieczanym systemie. Owo
utajenie może dotyczyć np. topologii fizycznej lub logicznej sieci,
adresów hostów czy serwerów. Utajnić można także zastosowane
algorytmy szyfrowania (o ile występują), czy sposoby
uwierzytelniania, zastosowanych firewalli, czy sposób filtrowania
pakietów, w końcu utajnić można ogólnie pojętą
politykeębezpieczeństwa.
•Nie wszystkie informacje można utajnić.
• Metoda nie jest zalecana jako pojedyncza metoda zabezpieczająca,
ale warto ją stosować jak dodatek do innych.
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Prostota a złożoność zastosowanego rozwiązania.
• Im system, polityka zabezpieczeń jest bardziej złożona tym trudniej jest
nią zarządzać, istnieje więcej źródeł potencjalnych problemów.
• Z drugiej strony, zbyt proste systemy mogą nie zapewnić po
zabezpieczania przez utajnianie (ang. security through obscurity).
rządanego poziomu bezpieczeństwa
Zabezpieczenia powinno się konstruować tak prosto jak to jest
możliwe - ale nie prościej.
• W praktyce często dobre zabezpieczenia sieci są też dosyć
skomplikowane.
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Host dwusieciowy (ang. Dualhomed host).
• Host dwusieciowy to komputer posiadający przynajmniej dwa
interfejsy sieciowe, oraz połączony zarówno z siecią zewnętrzną jak i
siecią wewnętrzną. Host dwusieciowy nie ma jednak aktywnego
routringu, zatem pakiety nie są przesyłane pomiędzy sieciami. Sieć
wewnętrzna jest zatem odizolowana od sieci Zewnętrznej.
• Host dwusieciowy
bezpieczeństwa
może
zapewnić
bardzo
wysoki
•Z drugiej strony może być mało komfortowy w użyciu.
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
poziom
Architektura pojedynczego obiektu
•Najprostsza i często
najekonomiczniejsza
•Zabezpieczenia sieci spadają na
tylko jedną maszynę
• Nie zapewnia należytego poziomu bezpieczeństwa
• Problem wydajności pojedynczej maszyny
• Seryjne rozwiązania
• Dedykowane do firm o niezbyt rozbudowanej sieci oraz o
ograniczonym wykorzystaniu tejże sieci.
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
• Najprostszym typem pojedynczego zabezpieczenia jest zastosowanie
routera osłaniającego określanego również mianem routera
ekranującego. Może być wtedy użyty w charakterze ściany ogniowej.
• Do tego celu wystarczy skonfigurować router ekranujący, tak aby
dodatkowo filtrował pakiety.
• Wymagane jest dobrze zabezpieczenie hostów
• Sugerowane jest wykorzystywanie niewielkiej ilości protokołów /
usług.
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Host ekranujący (ang. screened host)
• W sieci umieszczana jest maszyna pełniąca rolę obronną, jest to tzn
bastion. Pierwszym elementem w sieci, będącym na styku sieci
zewnętrznej jest router. Jest on tak skonfigurowany, żeby wszystkie
pakiety z sieci zewnętrznej przechodziły przez komputer
zabezpieczający.
• Klienci z sieci wewnętrznej także nie łączą się bezpośrednio z siecią
zewnętrzną, ale poprzez bastion.
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Bastion
Bastiony mogą, oprócz standardowych funkcji zabezpieczających,
pełnić następujące role:
• Serwera proxy dla usług
• Serwera DNS
• Serwera DHCP
• Serwera innych usług sieciowych
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
• Zależnie od potrzeb mogą istnieć pewne odstępstwa od tej reguły i
pewne usługi mogą być dostępne bezpośrednio przez filtr pakietów.
Jest to zależne od przyjętej polityki bezpieczeństwa.
•Zasadniczo jednak cały ruch powinien przechodzić przez bastion.
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Sieci ekranowane (ang. screened subnet)
•Architektura ekranowanej podsieci (ang. screened subnet
architecture) dodaje warstwę zabezpieczeń do architektury z
ekranowanym hostem poprzez dodanie sieci peryferyjnej (ang.
perimeter network), która dodatkowo izoluje sieć wewnętrzną od sieci
zewnętrznej.
•Host bastionowy jest najbardziej narażony na ataki – i jeśli zostanie
skutecznie zaatakowany to sieć wewnętrzna nie będzie w żaden sposób
broniona.
• Izolując host bastionowy od sieci wewnętrznej poprzez
wprowadzenie sieci peryferyjnej można zmniejszyć skutki
ewentualnego włamania do hosta bastionowego.
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
• W najprostszym przypadku architektura z ekranowaną podsiecią
tworzona jest poprzez wykorzystanie dwóch routerów, z których każdy
podłączony jest do tej podsieci.
• Jeden jest umiejscowiony między siecią zewnętrzna a siecią
ekranowaną, drugi między siecią wewnętrzną a siecią ekranowaną.
•Sieć peryferyjna pełni rolę dodatkowej zapory. Jeśli uda się pokonać
bastion to i tak podejrzeć można jedynie ruch w sieci peryferyjnej.
Oczywiście ruch z sieci wewnętrznej do zewnętrznej będzie nadal
widoczny. Podczas projektowania sieci warto zwrócić na to uwagę.
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Bastion(y) stanowi główne miejsce, gdzie obsługiwane są pakiety
przychodzące z zewnętrz. Trochę inaczej sprawa może wyglądać w
przypadku połączeń wychodzących.
• Mogą być obsługiwane przez bastiony
• Pakiety mogą być przekazywane bezpośrednio na zewnętrz, w tym celu
trzeba odpowiednio skonfigurować oba routery.
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Router wewnętrzny – czasem nazywany jest także routerem dławiącym
(ang. choke router), ma za zadanie zabezpieczać sieć wewnętrzną przed
atakami z sieci zewnętrznej i peryferyjnej.
• Należy ustalić zasady ruchu pomiędzy siecią wewnętrzną a bastionem
• Należy ustalić zasady ruchu pomiędzy siecią wewnętrzną a siecią
zewnętrzną
• Należy ustalić zasady ruchu wychodzącego (do sieci zewnętrznej).
Router zewnętrzny – router dostępowy (ang. access router), jest
odpowiedzialny za ochronę sieci peryferyjnej i wewnętrznej. W praktyce
jednak często rolę obronną przejmuje host bastionowy. Można jednak
ustalić mu pewne zadania pomimo tego :
• Przepuszczanie pakietów tylko jeśli pochodzą z bastionu
Blokowanie fałszywych pakietów, np. przychodzących pakietów z
adresem źródłowym sieci wewnętrznej.
• Router zewnętrzny może również zabraniać wyjścia z sieci pakietom z
nieprawidłowym adresem źródłowym.
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Wieloczęściowa sieć ekranowana (ang. split-screened subnet)
Architektura tego typu sieci jest podobna do sieci zwykłej sieci
ekranowanej. Posiada również router zewnętrzne i wewnętrzne, ale
pomiędzy nimi może wystąpić więcej niż jedna sieć peryferyjna.
Połączenia mogą odbywać się za pomocą hostów dwusieciowych lub za
pomocą routerów.
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
W pewnych przypadkach zasadnym jest zastosowanie niezależnych
podsieci ekranowanych( ang. independent screened subnet)
z oddzielnymi parami routerów zewnętrznych i wewnętrznych. Jednym z
powodów może być konieczność zapewnienia nadmiarowości. Awaria
czy skuteczny atak na jedną z sieci peryferyjnych nie powoduje
całkowitego braku łączności z siecią Internet.
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Przykład architektury wieloczęściowej sieci ekranowanej
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Każdy ruch, który nie jest niezbędnie konieczny powinien być
zablokowany juz na pierwszym zabezpieczeniu, czyli na routerze
dostępowym. Redukuje to możliwość ataków i zmniejszy nasilenie ruchu
w sieciach peryferyjnych, przez co zwiększy możliwość kontroli ruchu.
Dla usług takich jak HTTP, poczta (SMTP), tudzież innych powinno
wykorzystywać się mechanizm proxy – czyli systemy pośredniczące.
Sieci powinny być także, w miarę możliwości, chronione przez
oprogramowanie antywirusowe.
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Następujęące typy ruchu sieciowego powinny być zawsze zablokowane:
• Ruch wejściowy z nieautoryzowanych źródeł (zwłaszcza, gdy adres
źródłowy jest adresem interfejsu pierwszej ściany ogniowej)
• Ruch wejściowy, gdy adres źródłowy jest pochodzącym z sieci
wewnętrznej
• Ruch wejściowy ze źródła z zakresu zdefiniowanego w RFC 1918 jako
zarezerwowanego dla sieci prywatnej
• Ruch wejściowy z nieautoryzowanego źródła zawierający protokół
SNMP (Simple Network Management Protocol), - porty 161 i 162 TCP i
UDP
• Ruch wejściowy zawierający informacje o routingu żródłowym IP,
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Sieci typu Darknet – „Ciemne sieci”
Sieci typu Darknet służą do wykrywania potencjalnych
niebezpieczeństw, jakie mogą pojawić się w sieci. Ogólna idea polega na
wydzieleniu z puli adresów (głównie dostępnych z zewnętrz, ale także z
sieci wewnętrznych czy peryferyjnych) , na które przekierowywany
będzie ruch niebezpieczny i nieprzewidywalny.
Wewnątrz takiej sieci znajdować powinien się serwer, które będzie
analizował oraz gromadził ruch przychodzący. W tym celu można
skorzystać z oprogramowania typu IDS, posiadającego oprogramowanie
służące do logowania lub bazę danych.
Ponieważ każdy pojawiający się w tej sieci pakiet jest nieoczekiwany –
w tym sensie, że nie powinno go tam w ogolę być to można założyć, że
to wynik ataku (atak internetowy / skanowanie)
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Schemat ogólny sieci typu Darknet umieszczonej w bronionej sieci
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Etapy tworzenia sieci Darknet
1. Wydziel pulę adresów IP na potrzebny sieci Darknet.
Im większy jest zakres używanych adresów, tym dokładniejsze (w
sensie statystycznym) są uzyskane informacje na temat niepożądanej
aktywności w docelowej sieci. Inną drogą jest ustalenie kilku
specyficznych ścieżek przepływu w ramach danego zakresu – będzie
to ruch normalny, natomiast cała reszta będzie przydzielona do
Darknetu.
2. Na routerze dostępowym ustal przekierowania odpowiednich
adresów do sieci normalnych i sieci ciemnej.
3. W pewnych przypadkach można do sieci ciemnej włączyć także
adresy z sieci peryferyjnych i wewnętrznych – pozwala to na
wykrycie skanowania i ataków z sieci peryferyjnych i wewnętrznych.
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
4. Na routerze sieci ciemnej ustal przekierowanie całego ruchu
przychodzącego na interfejs komputera z zainstalowanym
oprogramowaniem IDS. Router i maszyny w sieci ciemnej nie powinny
korzystać z protokołu arp – należy ustawić statyczne wpisy arp.
5. W przypadku sieci VLAN fakt ten należy uwzględnić – tak aby ruch
właściwy nie trafiał do Darknetu.
6. Darknet nie powinien wysyłać żadnych pakietów „na zewnętrz” oraz
nie powinna odpowiadać na żadne usługi / zapytania. Darknet
powinien więc mieć własną zaporę.
7. Dobierz odpowiednie oprogramowanie – do filtrowania pakietów,
analizy pakietów, czy do składowania informacji o ruchu sieciowym
w Darknecie.
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Konfiguracja bezpiecznego dostępu do sieci dla wewnętrznych
klientów przy użyciu iptables
wraz z
konfiguracją iptables jako zapory ogniowej pomiędzy siecią
wewnętrzną a Internetem.
Przykład dla wybranych modeli sieci.
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Wymagania :
1. Serwer WWW w DMZ dostępny tylko dla klientów zewnętrznych
2. Ruch powinien być w miarę możliwości filtrowany przez bastion
3. Serwery DHCP i DNS powinny obsługiwać tylko klientów sieci wewnętrznych
4. Usługi dostępne wewnątrz : WWW, FTP (aktywny plus pasywny), usługi na portach :
a. TCP : 1550, 2600, 8600, 8800 do 9000, 12000:12800
b. UDP : 6000, 6800:6888, 12500
5. Adresacja sieci :
a. Sieć wewnętrzna : 192.168.1.0
b. Sieć peryferyjna : 10.10.1.0
c. Interfejs sieci zewnętrznej : 172.200.56.88
6. Zapewniona obrona przed popularnymi atakami : Smurf, LAND i podobne.
7. Założenie : wszystkie maszyny posiadają systemy operacyjny rodziny linux z obsługą iptables.
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Systemy IDS / IPS
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
IDS (ang. Intrusion Detection System) – system wykrywania /
identyfikacji zagrożeń.
IPS (ang. Intrusion Prevention System – system wykrywania i
blokowania zagrożeń.
Oprogramowanie IDS/IPS działa w czasie rzeczywistym, ze względu na miejsce
instalacji oraz wykonywane funkcje może być podzielone na dwie kategorie :
• instalowane na urządzeniach sieciowych (network-based), czyli NIDS
• instalowane w pamięciach poszczególnych hostów (host-based), czyli HIDS
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
System IDS typu host-based to ostatnia linia obrony. Jeśli w sieci
funkcjonuje system IDS typu network-based, to jest to pierwsza linia
obrony przed włamaniami.
Systemy NIDS monitorują przepływ danych w sieci i w razie
wykrycia anormalnego ruchu w sieci lub ataku – informuje o tym
użytkownika.
Systemy IPS spełniają te same kryteria co systemy IDS, jednak
dodatkowo jest potrafią przeciwdziałać zagrożeniom, np. poprzez
blokowanie podejrzanego ruchu.
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Serwer lub router, na którym chcemy zainstalować
oprogramowanie IDS musi być na tyle wydajny, aby nie odbyło
się to kosztem spowolnienia pracy sieci, szczególnie dla
użytkowników sieci wewnętrznej.
Systemy IDS / IPS można instalować w różnych punktach sieci,
zgodnie z założeniami koncepcji „dogłębnej obrony”.
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Budowa typowego systemu IDS.
• sonda (ang. sensor) – element analizujący ruch sieciowy i
wykrywający ataki. W przypadku oprogramowania instalowanego na
komputerze sondą może być po prostu wybrany interfejs sieciowy,
pracujący w trybie nasłuchu (snifingu).
• baza danych – zbierająca informacje o atakach z grupy sensorów –
zależnie od rodzaju oprogramowanie może to być zewnętrzna baza
danych (np. mssql,mysql etc.) lub wbudowany system logowania OS.
• analizator logów – umożliwiający wizualizację i analizę logów z
grupy sensorów – niektóre programy typu IDS posiadają dodatkowy
moduł ułatwiający analizę logów.
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Sieciowe systemy IDS / IPS mogą działać w następujących
konfiguracjach :
• pasywna sonda – sonda podłączona do portu monitorującego
przełącznika analizuje kopie wszystkich pakietów w danym segmencie
sieci. Interfejs maszyny z system IDS może być podłączony w
dowolnym miejscu sieci. Sonda w tej topologii ma ograniczone
możliwości reagowania na ataki. Ograniczenia są związane z :
• Stosowanie przełączników sieciowych (segmentacja sieci)
• Umiejscowieniem IDS w takich miejscach sieci, gdzie odbywa się
tylko część ruchu.
• Ograniczenia związane z regulacją ruchu przez system IPS.
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Inline – sonda umieszczona pomiędzy dwoma segmentami sieci,
pozbawiona adresów IP i działająca w trybie przezroczystego mostu
analizuje i bezpośrednio uczestniczy w przekazywaniu wszystkich
pakietów w sieci. W tym trybie sonda ma możliwość blokowania
100% pakietów rozpoznanych jako niebezpieczne (fałszywe pakiety
TCP RST nadal są wysyłane dla uniknięcia retransmisji). Działanie
w tym trybie nakłada na oprogramowanie sondy znacznie wyższe
wymagania co do wydajności i stabilności.
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Systemy wykrywania włamań działają przez analizę ruchu sieciowego za pomocą
dwóch metod:
Analiza heurystyczna – polegająca na defragmentacji, łączeniu pakietów w
strumienie danych, analizie nagłówków pakietów oraz analizie protokołów
aplikacyjnych. Pozwala wytypować pakiety mogące doprowadzić do
zdestabilizowania docelowej aplikacji w razie obecności w niej błędów
implementacyjnych. Stosowane są różne nazwy handlowe – np. protocol analysis
(np. IBM ISS) czy preprocessing (Snort). W większości systemów IDS analiza
heurystyczna odbywa się równocześnie z normalizacją danych przed poddaniem
ich analizie sygnaturowej.
Analiza sygnaturowa – polegająca na wyszukiwaniu w pakietach ciągów danych
charakterystycznych dla znanych ataków sieciowych. Kluczowym elementem jest
baza sygnatur, budowana wraz z pojawianiem się nowych ataków i odpowiednio
często aktualizowana.
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Przykłady systemów IDS / IPS
Darmowe:
•Snort (NIDS), ACID (analiza), Snortalog (analiza)
•Bro IDS (NIDS)
Snort-Prelude (NIDS), Prelude-lml (HIDS), Prewikka (analiza)
•OSSEC (HIDS)
•GesWall
Komercyjne:
•IBM ISS Proventia (NIDS), Proventia Server (HIDS), Site Protector
(zbieranie i analiza zdarzeń)
•3COM Tipping Point
•Juniper IDP
•DefenseWall HIPS (dostępny także w polskiej wersji)
•Safe'n'Sec Pro (+Rootkit Detector)
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
„Wykrywanie intruzów”
• „Wykrywanie intruzów” jest zdefiniowane
jako: “problem identyfikacji osobników,
którzy wykorzystują system komputerowy
bez autoryzacji”
– Próby włamań również muszą zostać wykryte
• „Wykrywanie intruzów” nie jest
zapobieganiem włamaniom!
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Snort jako przykład systemu IDS
Snort to bardzo silny sieciowy system wykrywania ataków (ang. Network
Intrusion Detection System, NIDS), który daje szeroki zakres mechanizmów
detekcji, mogących w czasie rzeczywistym dokonywać analizy ruchu i
rejestrowania pakietów w sieciach opartych na protokołach IP/TCP/UDP/ICMP.
Potrafi przeprowadzać analizę strumieni pakietów, wyszukiwać i dopasowywać
podejrzane treści, a także wykrywać wiele ataków i anomalii, takich jak
przepełnienia bufora, skanowanie portów typu stealth, ataki na usługi WWW,
SMB, próby wykrywania systemu operacyjnego i wiele innych.
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Silnik detekcji
• Reguły oparte o “sygnatury”
• Szeroki zakres wykrywania ataków
– Skany „stealth”, OS fingerprinting,
przepakowania buforów, back doors, exploity
CGI, etc.
• System reguł jest bardzo elastyczny.
Dodawanie nowych reguł jest relatywnie
proste.
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Pluginy
• Preprocessor
– Pakiety są badane i „modyfikowane” przez
przekazaniem do „silnika wykrywania”
• Wykrywanie
– Przeprowadzana jest seria prostych
niezależnych testów na różnych polach pakietu
• Wyjście
– „Raportuje” wyniki skanów w wybranym
formacie
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Snort może działać w trzech trybach :
Sniffer – przechwytuje wszystkie pakiety i wyświetla je na ekranie
-v informacje o nagłówkach pakietów TCP/UDP/ICMP
-d informacje warstwy aplikacji pakietu
-e dodatkowe nagłówki warstwy danych
-w informacje o interfejsach i ich numeracji w systemie
Windows
-i <numer_interfejsu> nasłuchiwanie na konkretnym interfejsie
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Packet Logger – zapisuje wszystkie przechwycone pakiety do pliku
-l <katalog> zapisuje do podanego katalogu tworząc hierarchię katalogów
wykorzystując min adresy IP
-b zapisuje w postaci binarnej w formacie sniffera tcpdump, użyteczne w
przypadku sporej ilości pakietów, możliwy późniejszy odczyt np.
WireShark'iem, zapisywany jest cały pakiet, niewymagana opcja -e)
-r wyświetla na ekranie pakiety zapisane binarnie
Zarówno w trybie sniffer i packet logger, do filtrowania danych stosuje się BPF
(Berkeley Packet Filter
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Network Intrusion Detection Mode –sieciowy system
wykrywania włamań
-c <sciezka_do_pliku> podawana jest ścieżka do pliku
konfiguracyjnego
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Architektura Snorta
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
„Przepływ” danych w Snort 1.x
„Snifowanie”
Dekoder pakiet.
Preprocessor
(Pluginy)
Silnik Detekcji
(Pluginy)
„Wyjście”
(Pluginy)
„Przepływ” danych
„Strumień” pakietów
Snort
Alarmy/Logi
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Architektura Snorta 1.x
• Prędkość poszczególnych warstw
– “Dekodowanie” = bardzo szybkie
– “Silinik detekcji” = szybki
– “Wyjście” = zależne od implementacji
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Silnik detekcji w Snort 1.x
– Bardzo szybki!!!!
– Zasada “pierwszego wyjścia”
• Pierwsza wykryta anomalia powoduje, że silnik wykonuje
odpowiednią reakcję i przechodzi do następnego pakietu
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Snort 1.x - Ograniczenia
• „Wyjście”
– Ludzie mają tendencję do pisania wolnych pluginów
„wyjściowych”
– Zmienny sposób „zapisu” danych „wyjściowych”
powoduje, iż ciężko jest uzyskać odpowiednią
wydajność
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
„Ulepszenia” w Snort 2.0
• Buforowanie
– Dane „wyjściowe” ze snorta są zapisywanie w
plikach-buforach, a drugi proces („barnyard”)
odczytuje te pliki i „przetwarza” je
odpowiednio do formatu danych wyjściowych.
– Pluginy „wyjściowe” są wykorzystywane przez
proces barnyard zamiast obciązać samego
Snorta.
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Silnik detekcji w Snort 2.0
• Zastosowanie ulepszenia (wprowadzenie
struktury drzewa w silniku) i przyśpieszenia
pozwoliły na wykorzystanie strategii
„ostatniego wyjścia”
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Umieszczanie systemów NIDS w sieci :
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Problem umiejscowienia IDSa w sieci.
• Miejsce (co chcemy tak naprawdę monitorować)
• Sposób podłączenia (problem segmentacji sieci)
• Problem wydajności
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Reguły Snorta
To, co stanowi o sile systemu Snort to tryb wykrywania włamań i
systemem tworzenia reguł, dzięki którym Snort potrafi wykrywać
różnego rodzaju ataki. Język tworzenia reguł Snorta jest dość
skomplikowany. Przykład kompletnej reguły:
alert tcp any any -> 192.168.1.0/24 111 (content: 00 01 86 a5 ; msg: mount access ;)
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
[Działanie] [port] [adres źródłowy] -> [adres docelowy] [port docelowy] [opcje]
Schemat budowy reguły Snort’a.
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Reguła Snorta jest podzielona na dwie logiczne części: część nagłówka i cześć z
opcjami.
Część nagłówkowa zawiera akcję jaką należy wykonać, rodzaj protokołu, adres ip
źródła , port źródłowy oraz adres ip docelowy oraz numer docelowego portu. Możliwe
jest równie użycie wieloznacznego słowa any, które symbolizuje dowolny adres ip,
dowolny port. Część w nawiasach okrągłych zawiera zestaw opcji użytych dla tej
reguły, Każda opcja zakończona jest średnikiem. Po odebraniu pakietu porównuje
nagłówki reguł oraz opcje zawarte w regułach z pakietem. Jeśli są zgodne to
wykonywana jest zapisana w regule akcja. Możliwe do wykonania akcje to:
• alert, generuje alarm i loguje pakiet
• log, tylko loguje pasujący pakiet
• pass, przepuszcza pakiet
• activate, wywołuje alarm i uruchamia dynamiczną regułę
• dynamic, reguła pozostająca w bezczynności aż do momentu aktywacji przez regułę
typu activate
alert tcp any any -> 192.168.1.0/24 111 (content: 00 01 86 a5 ; msg: mount access ;)
nagłówek
Opcje do wykonania
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Opcje w regułach programu Snort
Dzięki rozbudowanym i licznym opcjom jest możliwe wykonywanie
wielu testów na pakietach. Każda opcja składa się z słowa
kluczowego, po nim dwukropka i argumentu dla danej opcji.
Przykładowe opcje:
Opcja: msg: <tekst>;
Opcja pozwala dodawać tekst do reguł, dzięki temu informacje
zapisane w plikach logu są bardziej czytelne.
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Opcja flag:[!|*|+]<FSRPAU0>[,<FSRPAU0>];
Opcja pozwala analizować nagłówek pakietu pod kątem
ustawionych w nim flag:
F – FIN S - SYN R – RST P – PSH A – ACK U – URG
0 – brak ustawionych flag
+ - dopasuj do danej flagi i opcjonalnie do reszty
- - dopasuj do którejkolwiek z podanych flag
! - dopasuj jeśli podanej flagi nie są ustawione w pakiecie
Np.
alert tcp any any -> any any (flags:SF;)
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Operator kierunku -> wskazuje kierunek przepływu pakietów
Przykłady.
log udp any any -> 192.168.1.0/24 1:1024
Reguła powoduje, że każdy ruch na protokole udp, który kierowany jest
do 192.168.1.0/24 i na porty od 1 do 1024 jest logowany
log tcp any any -> 192.168.1.0/24 :6000
Reguła powoduje, że każdy ruch na protokole tcp, który kierowany jest
do 192.168.1.0/24 i na port 6000 lub niższy jest logowany
log tcp any :1024 -> 192.168.1.0/24 500:
Reguła powoduje, że każdy ruch na protokole tcp, który kierowany jest
do 192.168.1.0/24 i na port 500 lub wyższy jest logowany
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
log tcp any any -> 192.168.1.0/24 !6000:6010
Reguła powoduje, że każdy ruch na protokole tcp, który kierowany jest
do 192.168.1.0/24 i na porty inne niż zakres od 6000 do 6010 jest
logowany.
log tcp !192.168.1.0/24 any <> 192.168.1.0/24 23
Operator <> pozwala na analizę ruchu w dwóch kierunkach, dla
połączeń realizowanych w ramach parametrów opisanych obok.
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Parametr „content” pozwala badać pakiety pod kątem ich zawartości.
alert tcp any any -> 192.168.1.0/24 111 (content: 00 01 86 a5 ; msg: mount access ;)
alert tcp any any -> any 139 (content:"|5c 00|P|00|I|00|P|00|E|00 5c|";)
alert tcp any any -> any 80 (content:!"GET";)
Classtype – zbiór predefiniowanych klas zawierających wzorce
różnych ataków.
format:
classtype:<class name>;
alert tcp any any -> any 25 (msg:"SMTP expn root"; flags:A+; \
content:"expn root"; nocase; classtype:attempted-recon;)
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Wbudowane w Snort’a wzorce ataków
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Wbudowane w Snort’a wzorce ataków c.d.
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
EasyIDS – przykład „przyjaznego” oprogramowania IDS
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Okno logowania do systemu z poziomu konsoli
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Okno z podsumowaniem ruchu sieciowego
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ
Okno z podsumowaniem ruchu sieciowego – tutaj dla
wybranego interfejsu sieciowego.
Wdrażanie i zarządzanie serwerami zabezpieczającymi
mgr inż. Łukasz Jopek, Katedra Informatyki Stosowanej PŁ