Snort czy Suricata. Część 3: Ochrona sieci biurowej

В Poprzedni artykuł omówiliśmy, jak uruchomić stabilną wersję Suricata na Ubuntu 18.04 LTS. Konfigurowanie IDS na pojedynczym węźle i włączanie bezpłatnych zestawów reguł jest dość proste. Dzisiaj dowiemy się, jak chronić sieć korporacyjną za pomocą najczęstszych rodzajów ataków za pomocą Suricaty zainstalowanej na serwerze wirtualnym. Aby to zrobić, potrzebujemy VDS w systemie Linux z dwoma rdzeniami obliczeniowymi. Ilość pamięci RAM zależy od obciążenia: komuś wystarczy 2 GB, a do poważniejszych zadań mogą być potrzebne 4, a nawet 6. Zaletą maszyny wirtualnej jest możliwość eksperymentowania: można zacząć od minimalnej konfiguracji i zwiększać zasoby w miarę potrzeb.

Snort czy Suricata. Część 3: Ochrona sieci biurowejfot. Reuters

Łączenie sieci

Usunięcie IDS na maszynę wirtualną w pierwszej kolejności może być potrzebne do testów. Jeśli nigdy nie miałeś do czynienia z takimi rozwiązaniami, nie powinieneś spieszyć się z zamawianiem fizycznego sprzętu i zmianą architektury sieci. Najlepiej jest uruchomić system bezpiecznie i oszczędnie, aby określić swoje potrzeby obliczeniowe. Ważne jest, aby zrozumieć, że cały ruch korporacyjny będzie musiał przechodzić przez jeden zewnętrzny węzeł: aby połączyć sieć lokalną (lub kilka sieci) z VDS z zainstalowanym IDS Suricata, możesz użyć Miękki eter - Łatwy w konfiguracji, wieloplatformowy serwer VPN, który zapewnia silne szyfrowanie. Połączenie internetowe w biurze może nie mieć prawdziwego adresu IP, dlatego lepiej jest skonfigurować je na serwerze VPS. W repozytorium Ubuntu nie ma gotowych pakietów, będziesz musiał pobrać oprogramowanie albo z Strona projektulub z zewnętrznego repozytorium w usłudze Launchpad (jeśli mu ufasz):

sudo add-apt-repository ppa:paskal-07/softethervpn
sudo apt-get update

Możesz wyświetlić listę dostępnych pakietów za pomocą następującego polecenia:

apt-cache search softether

Snort czy Suricata. Część 3: Ochrona sieci biurowej

Będziemy potrzebować softether-vpnserver (serwer w konfiguracji testowej działa na VDS), a także softether-vpncmd - narzędzia wiersza poleceń do jego konfiguracji.

sudo apt-get install softether-vpnserver softether-vpncmd

Do konfiguracji serwera używane jest specjalne narzędzie wiersza poleceń:

sudo vpncmd

Snort czy Suricata. Część 3: Ochrona sieci biurowej

Nie będziemy szczegółowo omawiać ustawienia: procedura jest dość prosta, jest dobrze opisana w wielu publikacjach i nie odnosi się bezpośrednio do tematu artykułu. Krótko mówiąc, po uruchomieniu vpncmd należy wybrać pozycję 1, aby przejść do konsoli zarządzania serwerem. W tym celu należy wpisać nazwę localhost i nacisnąć enter zamiast wpisywać nazwę huba. Hasło administratora ustawia się w konsoli komendą serverpasswordset, usuwany jest DEFAULT wirtualny hub (komenda hubdelete) i tworzony jest nowy o nazwie Suricata_VPN, a także ustawiane jest jego hasło (komenda hubcreate). Następnie musisz przejść do konsoli zarządzania nowego koncentratora za pomocą polecenia hub Suricata_VPN, aby utworzyć grupę i użytkownika za pomocą poleceń groupcreate i usercreate. Hasło użytkownika jest ustawiane za pomocą userpasswordset.

SoftEther obsługuje dwa tryby przesyłania ruchu: SecureNAT i Local Bridge. Pierwsza to autorska technologia budowy wirtualnej sieci prywatnej z własnym NAT i DHCP. SecureNAT nie wymaga TUN/TAP, Netfilter ani innych ustawień firewalla. Routing nie wpływa na rdzeń systemu, a wszystkie procesy są zwirtualizowane i działają na dowolnym VPS/VDS, niezależnie od zastosowanego hypervisora. Powoduje to zwiększone obciążenie procesora i niższą prędkość w porównaniu z trybem Local Bridge, który łączy wirtualny koncentrator SoftEther z fizyczną kartą sieciową lub urządzeniem TAP.

Konfiguracja w tym przypadku staje się bardziej skomplikowana, ponieważ routing odbywa się na poziomie jądra za pomocą Netfilter. Nasze VDS są zbudowane na Hyper-V, więc w ostatnim kroku tworzymy lokalny most i aktywujemy urządzenie TAP za pomocą polecenia bridgecreate Suricate_VPN -device:suricate_vpn -tap:yes. Po wyjściu z konsoli zarządzania koncentratorem zobaczymy w systemie nowy interfejs sieciowy, któremu nie zostało jeszcze przypisane IP:

ifconfig

Snort czy Suricata. Część 3: Ochrona sieci biurowej

Następnie musisz włączyć routing pakietów między interfejsami (ip forward), jeśli jest nieaktywny:

sudo nano /etc/sysctl.conf

Odkomentuj następujący wiersz:

net.ipv4.ip_forward = 1

Zapisz zmiany w pliku, wyjdź z edytora i zastosuj je za pomocą następującego polecenia:

sudo sysctl -p

Następnie musimy zdefiniować podsieć dla sieci wirtualnej z fikcyjnymi adresami IP (na przykład 10.0.10.0/24) oraz przypisać adres do interfejsu:

sudo ifconfig tap_suricata_vp 10.0.10.1/24

Następnie musisz napisać reguły Netfilter.

1. W razie potrzeby zezwól na przychodzące pakiety na portach nasłuchujących (zastrzeżony protokół SoftEther wykorzystuje HTTPS i port 443)

sudo iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
sudo iptables -A INPUT -p tcp -m tcp --dport 992 -j ACCEPT
sudo iptables -A INPUT -p tcp -m tcp --dport 1194 -j ACCEPT
sudo iptables -A INPUT -p udp -m udp --dport 1194 -j ACCEPT
sudo iptables -A INPUT -p tcp -m tcp --dport 5555 -j ACCEPT

2. Skonfiguruj NAT z podsieci 10.0.10.0/24 na adres IP głównego serwera

sudo iptables -t nat -A POSTROUTING -s 10.0.10.0/24 -j SNAT --to-source 45.132.17.140

3. Zezwalaj na przekazywanie pakietów z podsieci 10.0.10.0/24

sudo iptables -A FORWARD -s 10.0.10.0/24 -j ACCEPT

4. Zezwól na przekazywanie pakietów dla już nawiązanych połączeń

sudo iptables -A FORWARD -p all -m state --state ESTABLISHED,RELATED -j ACCEPT

Automatyzację procesu po restarcie systemu za pomocą skryptów inicjalizacyjnych pozostawimy czytelnikom jako pracę domową.

Jeśli chcesz automatycznie przydzielać adresy IP klientom, musisz także zainstalować jakąś usługę DHCP dla lokalnego mostu. To kończy konfigurację serwera i możesz przejść do klientów. SoftEther obsługuje wiele protokołów, których użycie zależy od możliwości sprzętu LAN.

netstat -ap |grep vpnserver

Snort czy Suricata. Część 3: Ochrona sieci biurowej

Ponieważ nasz router testowy działa również pod Ubuntu, zainstalujmy na nim pakiety softether-vpnclient i softether-vpncmd z zewnętrznego repozytorium, aby używać zastrzeżonego protokołu. Będziesz musiał uruchomić klienta:

sudo vpnclient start

Aby skonfigurować, użyj narzędzia vpncmd, wybierając localhost jako maszynę, na której działa vpnclient. Wszystkie polecenia są wykonywane w konsoli: będziesz musiał utworzyć wirtualny interfejs (NicCreate) i konto (AccountCreate).

W niektórych przypadkach należy określić metodę uwierzytelniania za pomocą poleceń AccountAnonymousSet, AccountPasswordSet, AccountCertSet i AccountSecureCertSet. Ponieważ nie używamy DHCP, adres dla adaptera wirtualnego jest ustawiany ręcznie.

Dodatkowo musimy włączyć ip forward (opcja net.ipv4.ip_forward=1 w pliku /etc/sysctl.conf) oraz skonfigurować trasy statyczne. W razie potrzeby na VDS z Suricata możesz skonfigurować przekierowanie portów, aby korzystać z usług zainstalowanych w sieci lokalnej. W tym przypadku połączenie sieci można uznać za zakończone.

Nasza proponowana konfiguracja będzie wyglądać mniej więcej tak:

Snort czy Suricata. Część 3: Ochrona sieci biurowej

Konfigurowanie Suricaty

В Poprzedni artykuł mówiliśmy o dwóch trybach działania IDS: przez kolejkę NFQUEUE (tryb NFQ) oraz przez kopię zerową (tryb AF_PACKET). Drugi wymaga dwóch interfejsów, ale jest szybszy - wykorzystamy go. Parametr jest domyślnie ustawiony w /etc/default/suricata. Musimy również edytować sekcję vars w /etc/suricata/suricata.yaml, ustawiając tam wirtualną podsieć jako domową.

Snort czy Suricata. Część 3: Ochrona sieci biurowej

Aby ponownie uruchomić IDS, użyj polecenia:

systemctl restart suricata

Rozwiązanie jest gotowe, teraz może być konieczne przetestowanie go pod kątem odporności na złośliwe działania.

Symulowanie ataków

Scenariuszy bojowego użycia zewnętrznej służby IDS może być kilka:

Ochrona przed atakami DDoS (główny cel)

Trudno jest zaimplementować taką opcję wewnątrz sieci korporacyjnej, ponieważ pakiety do analizy muszą trafić do interfejsu systemu, który przegląda Internet. Nawet jeśli system IDS je zablokuje, fałszywy ruch może spowodować przerwanie łącza danych. Aby tego uniknąć, musisz zamówić VPS z wystarczająco wydajnym połączeniem internetowym, które może przepuszczać cały ruch w sieci lokalnej i cały ruch zewnętrzny. Często jest to łatwiejsze i tańsze niż rozbudowanie kanału biurowego. Jako alternatywę warto wspomnieć o wyspecjalizowanych usługach ochrony przed DDoS. Koszt ich usług jest porównywalny z kosztem serwera wirtualnego i nie wymaga czasochłonnej konfiguracji, ale są też wady - klient za swoje pieniądze otrzymuje tylko ochronę DDoS, podczas gdy jego własny IDS można skonfigurować tak, jak ty tak jak.

Ochrona przed zewnętrznymi atakami innego typu

Suricata jest w stanie poradzić sobie z próbami wykorzystania różnych luk w korporacyjnych usługach sieciowych dostępnych z Internetu (serwer pocztowy, serwer WWW, aplikacje webowe itp.). Zwykle w tym celu IDS jest instalowany w sieci LAN za urządzeniami granicznymi, ale wyniesienie go na zewnątrz ma prawo istnieć.

Ochrona przed wtajemniczonymi

Pomimo dołożenia wszelkich starań przez administratora systemu, komputery w sieci firmowej mogą zostać zainfekowane złośliwym oprogramowaniem. Ponadto w okolicy czasami pojawiają się chuligani, którzy próbują przeprowadzić nielegalne operacje. Suricata może pomóc blokować takie próby, chociaż w celu ochrony sieci wewnętrznej lepiej zainstalować ją na obwodzie i używać w połączeniu z zarządzanym przełącznikiem, który może odzwierciedlać ruch na jednym porcie. Zewnętrzny IDS również nie jest bezużyteczny w tym przypadku - przynajmniej będzie w stanie wychwycić próby nawiązania kontaktu z zewnętrznym serwerem przez złośliwe oprogramowanie żyjące w sieci LAN.

Na początek stworzymy kolejny test atakujący VPS, a na routerze sieci lokalnej podniesiemy Apache z domyślną konfiguracją, po czym przekierujemy na niego 80. port z serwera IDS. Następnie przeprowadzimy symulację ataku DDoS z atakującego hosta. Aby to zrobić, pobierz z GitHub, skompiluj i uruchom mały program xerxes na atakującym węźle (może być konieczne zainstalowanie pakietu gcc):

git clone https://github.com/Soldie/xerxes-DDos-zanyarjamal-C.git
cd xerxes-DDos-zanyarjamal-C/
gcc xerxes.c -o xerxes 
./xerxes 45.132.17.140 80

Efekt jej pracy był następujący:

Snort czy Suricata. Część 3: Ochrona sieci biurowej

Suricata odcina złoczyńcę, a strona Apache otwiera się domyślnie, pomimo naszego zaimprowizowanego ataku i raczej martwego kanału sieci „biurowej” (właściwie domowej). Do poważniejszych zadań powinieneś użyć Framework Metasploit. Jest przeznaczony do testów penetracyjnych i pozwala symulować różnorodne ataki. Instrukcje Instalacji dostępne na stronie internetowej projektu. Po instalacji wymagana jest aktualizacja:

sudo msfupdate

W celu przetestowania uruchom msfconsole.

Snort czy Suricata. Część 3: Ochrona sieci biurowej

Niestety, najnowsze wersje frameworka nie mają możliwości automatycznego łamania zabezpieczeń, więc exploity będą musiały być sortowane ręcznie i uruchamiane za pomocą komendy use. Na początek warto określić porty otwarte na atakowanej maszynie, np. za pomocą nmap (w naszym przypadku zostanie on całkowicie zastąpiony przez netstat na atakowanym hoście), a następnie wybrać i użyć odpowiedniego Moduły Metasploita

Istnieją inne sposoby testowania odporności systemu IDS na ataki, w tym usługi online. Ze względu na ciekawość, możesz umówić się na testy warunków skrajnych, korzystając z wersji próbnej stresor IP. Aby sprawdzić reakcję na działania intruzów wewnętrznych, warto zainstalować specjalne narzędzia na jednej z maszyn w sieci lokalnej. Opcji jest bardzo dużo i od czasu do czasu należy je zastosować nie tylko na stanowisku eksperymentalnym, ale także na działających systemach, tylko to już zupełnie inna historia.

Snort czy Suricata. Część 3: Ochrona sieci biurowej

Snort czy Suricata. Część 3: Ochrona sieci biurowej

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

Dodaj komentarz