Snort czy Suricata. Część 2: Instalacja i wstępna konfiguracja Suricata

Według statystyk wielkość ruchu w sieci wzrasta o około 50% każdego roku. Prowadzi to do wzrostu obciążenia sprzętu, aw szczególności zwiększa wymagania wydajnościowe IDS/IPS. Można kupić drogi specjalistyczny sprzęt, ale jest tańsza opcja – wprowadzenie jednego z systemów open source. Wielu początkującym administratorom trudno jest zainstalować i skonfigurować bezpłatny IPS. W przypadku Suricaty nie jest to do końca prawdą - możesz ją zainstalować i w kilka minut zacząć odpierać typowe ataki z zestawem darmowych zasad.

Snort czy Suricata. Część 2: Instalacja i wstępna konfiguracja Suricata
Snort czy Suricata. Część 1: Wybór bezpłatnego IDS/IPS do ochrony sieci korporacyjnej

Po co nam kolejny otwarty IPS?

Od dawna uważany za standard, Snort był rozwijany od późnych lat dziewięćdziesiątych, więc pierwotnie był jednowątkowy. Na przestrzeni lat pojawiły się w nim wszystkie nowoczesne funkcjonalności, takie jak obsługa IPv6, możliwość analizy protokołów na poziomie aplikacji, czy uniwersalny moduł dostępu do danych.

Podstawowy silnik Snort 2.X nauczył się pracować z wieloma rdzeniami, ale pozostał jednowątkowy i dlatego nie może optymalnie wykorzystywać nowoczesnych platform sprzętowych.

Problem został rozwiązany w trzeciej wersji systemu, ale przygotowania trwały tak długo, że napisana od podstaw Suricata zdążyła zaistnieć na rynku. W 2009 roku zaczęto go rozwijać właśnie jako wielowątkową alternatywę dla Snorta, który ma wbudowane funkcje IPS. Kod dystrybuowany jest na licencji GPLv2, ale partnerzy finansowi projektu mają dostęp do zamkniętej wersji silnika. W pierwszych wersjach systemu pojawiły się pewne problemy ze skalowalnością, które jednak szybko zostały rozwiązane.

Dlaczego Surika?

Suricata ma kilka modułów (podobnie jak Snort): przechwytywanie, przechwytywanie, dekodowanie, wykrywanie i wyjście. Domyślnie przechwycony ruch przechodzi przed dekodowaniem w jednym strumieniu, chociaż powoduje to większe obciążenie systemu. W razie potrzeby wątki można podzielić w ustawieniach i rozłożyć między procesory - Suricata jest bardzo dobrze zoptymalizowana pod konkretny sprzęt, chociaż nie jest to już poziom HOWTO dla początkujących. Warto również zaznaczyć, że Suricata posiada zaawansowane narzędzia do inspekcji HTTP oparte o bibliotekę HTP. Mogą być również używane do rejestrowania ruchu bez wykrycia. System obsługuje również dekodowanie IPv6, w tym tunele IPv4-in-IPv6, tunele IPv6-in-IPv6 i inne.

Do przechwytywania ruchu można używać różnych interfejsów (NFQueue, IPFRing, LibPcap, IPFW, AF_PACKET, PF_RING), aw trybie Unix Socket można automatycznie analizować pliki PCAP przechwycone przez inny sniffer. Ponadto modułowa architektura Suricata ułatwia podłączanie nowych elementów w celu przechwytywania, dekodowania, analizowania i przetwarzania pakietów sieciowych. Należy również zauważyć, że w Suricata ruch jest blokowany za pomocą zwykłego filtra systemu operacyjnego. GNU/Linux ma dwie opcje działania IPS: przez kolejkę NFQUEUE (tryb NFQ) i przez kopię zerową (tryb AF_PACKET). W pierwszym przypadku pakiet, który trafia do iptables trafia do kolejki NFQUEUE, gdzie może zostać przetworzony na poziomie użytkownika. Suricata prowadzi ją według własnych zasad i wydaje jeden z trzech werdyktów: NF_ACCEPT, NF_DROP i NF_REPEAT. Pierwsze dwa są oczywiste, podczas gdy ostatni pozwala na oznaczanie pakietów i wysyłanie ich na górę bieżącej tabeli iptables. Tryb AF_PACKET jest szybszy, ale nakłada na system szereg ograniczeń: musi mieć dwa interfejsy sieciowe i działać jako brama. Zablokowany pakiet po prostu nie jest przekazywany do drugiego interfejsu.

Ważną cechą Suricaty jest możliwość korzystania z rozwinięć dla Snorta. Administrator ma dostęp w szczególności do zestawów reguł Sourcefire VRT i OpenSource Emerging Threats, a także komercyjnego Emerging Threats Pro. Ujednolicone dane wyjściowe można analizować za pomocą popularnych backendów, obsługiwane są również wyjścia PCAP i Syslog. Ustawienia systemowe i reguły są przechowywane w plikach YAML, które są łatwe do odczytania i mogą być przetwarzane automatycznie. Silnik Suricata rozpoznaje wiele protokołów, więc reguły nie muszą być powiązane z numerem portu. Ponadto koncepcja flowbits jest aktywnie praktykowana w zasadach Suricata. Aby śledzić wyzwalacz, zmienne sesyjne służą do tworzenia i stosowania różnych liczników i flag. Wiele systemów IDS traktuje różne połączenia TCP jako oddzielne jednostki i może nie widzieć między nimi połączenia, które wskazuje na początek ataku. Suricata próbuje zobaczyć cały obraz iw wielu przypadkach rozpoznaje szkodliwy ruch dystrybuowany przez różne połączenia. O jego zaletach można mówić długo, lepiej przejdźmy do instalacji i konfiguracji.

Jak zainstalować?

Będziemy instalować Suricatę na serwerze wirtualnym z systemem Ubuntu 18.04 LTS. Wszystkie polecenia muszą być wykonywane w imieniu superużytkownika (root). Najbezpieczniejszą opcją jest połączenie SSH z serwerem jako zwykły użytkownik, a następnie użycie narzędzia sudo do podniesienia uprawnień. Najpierw musisz zainstalować potrzebne nam pakiety:

sudo apt -y install libpcre3 libpcre3-dev build-essential autoconf automake libtool libpcap-dev libnet1-dev libyaml-0-2 libyaml-dev zlib1g zlib1g-dev libmagic-dev libcap-ng-dev libjansson-dev pkg-config libnetfilter-queue-dev geoip-bin geoip-database geoipupdate apt-transport-https

Podłączanie zewnętrznego repozytorium:

sudo add-apt-repository ppa:oisf/suricata-stable
sudo apt-get update

Zainstaluj najnowszą stabilną wersję Suricaty:

sudo apt-get install suricata

W razie potrzeby edytuj nazwy plików konfiguracyjnych, zastępując domyślne eth0 rzeczywistą nazwą zewnętrznego interfejsu serwera. Ustawienia domyślne są przechowywane w pliku /etc/default/suricata, a ustawienia niestandardowe są przechowywane w pliku /etc/suricata/suricata.yaml. Konfigurowanie IDS ogranicza się głównie do edycji tego pliku konfiguracyjnego. Ma wiele parametrów, które z nazwy i przeznaczenia pokrywają się z analogami Snorta. Składnia jest jednak zupełnie inna, ale plik jest znacznie łatwiejszy do odczytania niż konfiguracje Snorta i jest dobrze skomentowany.

sudo nano /etc/default/suricata

Snort czy Suricata. Część 2: Instalacja i wstępna konfiguracja Suricata

и

sudo nano /etc/suricata/suricata.yaml

Snort czy Suricata. Część 2: Instalacja i wstępna konfiguracja Suricata

Uwaga! Przed rozpoczęciem warto sprawdzić wartości zmiennych z sekcji vars.

Aby zakończyć konfigurację, musisz zainstalować suricata-update, aby zaktualizować i załadować reguły. Jest to dość łatwe:

sudo apt install python-pip
sudo pip install pyyaml
sudo pip install <a href="https://github.com/OISF/suricata-update/archive/master.zip">https://github.com/OISF/suricata-update/archive/master.zip</a>
sudo pip install --pre --upgrade suricata-update

Następnie musimy uruchomić polecenie suricata-update, aby zainstalować zestaw reguł Emerging Threats Open:

sudo suricata-update

Snort czy Suricata. Część 2: Instalacja i wstępna konfiguracja Suricata

Aby wyświetlić listę źródeł reguł, uruchom następujące polecenie:

sudo suricata-update list-sources

Snort czy Suricata. Część 2: Instalacja i wstępna konfiguracja Suricata

Zaktualizuj źródła reguł:

sudo suricata-update update-sources

Snort czy Suricata. Część 2: Instalacja i wstępna konfiguracja Suricata

Ponowne odwiedzanie zaktualizowanych źródeł:

sudo suricata-update list-sources

W razie potrzeby możesz dołączyć dostępne bezpłatne źródła:

sudo suricata-update enable-source ptresearch/attackdetection
sudo suricata-update enable-source oisf/trafficid
sudo suricata-update enable-source sslbl/ssl-fp-blacklist

Następnie musisz ponownie zaktualizować reguły:

sudo suricata-update

To kończy instalację i wstępną konfigurację Suricaty w Ubuntu 18.04 LTS. Potem zaczyna się zabawa: w następnym artykule połączymy wirtualny serwer z siecią biurową przez VPN i zaczniemy analizować cały ruch przychodzący i wychodzący. Szczególną uwagę poświęcimy blokowaniu ataków DDoS, aktywności złośliwego oprogramowania oraz próbom wykorzystania luk w usługach dostępnych z sieci publicznych. Dla jasności zostaną zasymulowane ataki najpowszechniejszych typów.

Snort czy Suricata. Część 2: Instalacja i wstępna konfiguracja Suricata

Snort czy Suricata. Część 2: Instalacja i wstępna konfiguracja Suricata

Źródło: www.habr.com

Dodaj komentarz