Snor eller Suricata. Del 3: Skydda kontorsnätverket

В tidigare artikel vi har täckt hur man kör den stabila versionen av Suricata på Ubuntu 18.04 LTS. Att ställa in en IDS på en enda nod och aktivera gratis regeluppsättningar är ganska enkelt. Idag kommer vi att ta reda på hur man skyddar ett företagsnätverk med de vanligaste typerna av attacker med Suricata installerat på en virtuell server. För att göra detta behöver vi en VDS på Linux med två datorkärnor. Mängden RAM beror på belastningen: 2 GB räcker för någon, och 4 eller till och med 6 kan behövas för mer seriösa uppgifter. Fördelen med en virtuell maskin är möjligheten att experimentera: du kan börja med en minimal konfiguration och öka resurser efter behov.

Snor eller Suricata. Del 3: Skydda kontorsnätverketfoto: Reuters

Ansluta nätverk

Att ta bort IDS till en virtuell maskin i första hand kan behövas för tester. Om du aldrig har sysslat med sådana lösningar bör du inte skynda dig att beställa fysisk hårdvara och ändra nätverksarkitekturen. Det är bäst att köra systemet säkert och kostnadseffektivt för att fastställa dina datorbehov. Det är viktigt att förstå att all företagstrafik måste passeras genom en enda extern nod: för att ansluta ett lokalt nätverk (eller flera nätverk) till en VDS med IDS Suricata installerat kan du använda SoftEther - En lättkonfigurerad, plattformsoberoende VPN-server som ger stark kryptering. En internetanslutning på kontoret kanske inte har en riktig IP, så det är bättre att ställa in den på en VPS. Det finns inga färdiga paket i Ubuntu-förvaret, du måste ladda ner programvaran antingen från projektplats, eller från ett externt arkiv på tjänsten Launchpad (om du litar på honom):

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

Du kan se listan över tillgängliga paket med följande kommando:

apt-cache search softether

Snor eller Suricata. Del 3: Skydda kontorsnätverket

Vi kommer att behöva softether-vpnserver (servern i testkonfigurationen körs på VDS), såväl som softether-vpncmd - kommandoradsverktyg för att konfigurera den.

sudo apt-get install softether-vpnserver softether-vpncmd

Ett speciellt kommandoradsverktyg används för att konfigurera servern:

sudo vpncmd

Snor eller Suricata. Del 3: Skydda kontorsnätverket

Vi kommer inte att prata i detalj om installationen: proceduren är ganska enkel, den är väl beskriven i många publikationer och relaterar inte direkt till artikelns ämne. Kort sagt, efter att ha startat vpncmd måste du välja objekt 1 för att gå till serverhanteringskonsolen. För att göra detta måste du ange namnet localhost och trycka på enter istället för att ange namnet på hubben. I konsolen, ställ in administratörslösenordet med serverpasswordset-kommandot, ta bort DEFAULT virtuella navet (hubdelete-kommandot) och skapa ett nytt med namnet Suricata_VPN, och ställ även in dess lösenord (hubcreate-kommandot). Därefter måste du gå till hanteringskonsolen för den nya hubben med kommandot hub Suricata_VPN för att skapa en grupp och användare med kommandona groupcreate och usercreate. Användarlösenordet ställs in med userpasswordset.

SoftEther stöder två trafiköverföringslägen: SecureNAT och Local Bridge. Den första är en egenutvecklad teknik för att bygga ett virtuellt privat nätverk med egen NAT och DHCP. SecureNAT kräver inte TUN/TAP eller Netfilter eller andra brandväggsinställningar. Routing påverkar inte kärnan i systemet, och alla processer är virtualiserade och fungerar på vilken VPS/VDS som helst, oavsett vilken hypervisor som används. Detta resulterar i ökad CPU-belastning och lägre hastighet jämfört med Local Bridge-läge, som ansluter SoftEthers virtuella hubb till en fysisk nätverksadapter eller TAP-enhet.

Konfigurationen i detta fall blir mer komplicerad, eftersom routing sker på kärnnivå med Netfilter. Våra VDS är byggda på Hyper-V, så i det sista steget skapar vi en lokal brygga och aktiverar TAP-enheten med kommandot bridgecreate Suricate_VPN -device:suricate_vpn -tap:yes. Efter att ha avslutat navhanteringskonsolen kommer vi att se ett nytt nätverksgränssnitt i systemet som ännu inte har tilldelats en IP:

ifconfig

Snor eller Suricata. Del 3: Skydda kontorsnätverket

Därefter måste du aktivera paketrouting mellan gränssnitt (ip forward), om den är inaktiv:

sudo nano /etc/sysctl.conf

Avkommentera följande rad:

net.ipv4.ip_forward = 1

Spara ändringarna i filen, avsluta redigeraren och tillämpa dem med följande kommando:

sudo sysctl -p

Därefter måste vi definiera ett subnät för det virtuella nätverket med fiktiva IP-adresser (till exempel 10.0.10.0/24) och tilldela en adress till gränssnittet:

sudo ifconfig tap_suricata_vp 10.0.10.1/24

Då måste du skriva Netfilter-regler.

1. Tillåt vid behov inkommande paket på lyssningsportar (SoftEthers proprietära protokoll använder HTTPS och 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. Ställ in NAT från undernätet 10.0.10.0/24 till huvudserverns IP

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

3. Tillåt att paket skickas från undernätet 10.0.10.0/24

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

4. Tillåt överföring av paket för redan etablerade anslutningar

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

Vi lämnar automatiseringen av processen när systemet startas om med initialiseringsskript till läsarna som hemläxa.

Om du vill ge IP till klienter automatiskt måste du också installera någon form av DHCP-tjänst för den lokala bryggan. Detta slutför serverinstallationen och du kan gå till klienterna. SoftEther stöder många protokoll, vars användning beror på LAN-utrustningens kapacitet.

netstat -ap |grep vpnserver

Snor eller Suricata. Del 3: Skydda kontorsnätverket

Eftersom vår testrouter också körs under Ubuntu, låt oss installera paketen softether-vpnclient och softether-vpncmd från ett externt arkiv på den för att använda det proprietära protokollet. Du måste köra klienten:

sudo vpnclient start

För att konfigurera, använd vpncmd-verktyget och välj localhost som den maskin på vilken vpnclienten körs. Alla kommandon görs i konsolen: du måste skapa ett virtuellt gränssnitt (NicCreate) och ett konto (AccountCreate).

I vissa fall måste du ange autentiseringsmetoden med kommandona AccountAnonymousSet, AccountPasswordSet, AccountCertSet och AccountSecureCertSet. Eftersom vi inte använder DHCP ställs adressen för den virtuella adaptern in manuellt.

Dessutom måste vi aktivera ip forward (alternativet net.ipv4.ip_forward=1 i filen /etc/sysctl.conf) och konfigurera statiska rutter. Om det behövs, på VDS med Suricata, kan du konfigurera portvidarebefordran för att använda tjänsterna installerade på det lokala nätverket. På detta kan nätverkssammanslagningen anses vara fullständig.

Vår föreslagna konfiguration kommer att se ut ungefär så här:

Snor eller Suricata. Del 3: Skydda kontorsnätverket

Konfigurera Suricata

В tidigare artikel vi pratade om två driftslägen för IDS: genom NFQUEUE-kön (NFQ-läge) och genom nollkopiering (AF_PACKET-läge). Det andra kräver två gränssnitt, men är snabbare - vi kommer att använda det. Parametern är inställd som standard i /etc/default/suricata. Vi behöver också redigera vars-sektionen i /etc/suricata/suricata.yaml, ställa in det virtuella subnätet där som hem.

Snor eller Suricata. Del 3: Skydda kontorsnätverket

För att starta om IDS, använd kommandot:

systemctl restart suricata

Lösningen är klar, nu kan du behöva testa den för motstånd mot skadliga handlingar.

Simulerar attacker

Det kan finnas flera scenarier för stridsanvändning av en extern IDS-tjänst:

Skydd mot DDoS-attacker (primärt syfte)

Det är svårt att implementera ett sådant alternativ i företagets nätverk, eftersom paketen för analys måste komma till systemgränssnittet som tittar på Internet. Även om IDS blockerar dem, kan falsk trafik få ner datalänken. För att undvika detta behöver du beställa en VPS med en tillräckligt produktiv internetuppkoppling som kan passera all lokal nätverkstrafik och all extern trafik. Det är ofta enklare och billigare att göra detta än att utöka kontorskanalen. Som ett alternativ är det värt att nämna specialiserade tjänster för skydd mot DDoS. Kostnaden för deras tjänster är jämförbar med kostnaden för en virtuell server, och den kräver ingen tidskrävande konfiguration, men det finns också nackdelar - klienten får bara DDoS-skydd för sina pengar, medan hans egen IDS kan konfigureras som du tycka om.

Skydd mot yttre angrepp av andra slag

Suricata kan hantera försök att utnyttja olika sårbarheter i företagsnätverkstjänster tillgängliga från Internet (e-postserver, webbserver och webbapplikationer, etc.). Vanligtvis, för detta, installeras IDS inuti LAN efter gränsenheterna, men att ta den utanför har rätt att existera.

Skydd från insiders

Trots systemadministratörens bästa ansträngningar kan datorer i företagets nätverk infekteras med skadlig programvara. Dessutom dyker det ibland upp huliganer i närområdet, som försöker utföra en del illegala operationer. Suricata kan hjälpa till att blockera sådana försök, även om det för att skydda det interna nätverket är bättre att installera det innanför omkretsen och använda det tillsammans med en hanterad switch som kan spegla trafik till en port. En extern IDS är inte heller värdelös i det här fallet - åtminstone kommer den att kunna fånga försök av skadlig programvara som bor på LAN:et att kontakta en extern server.

Till att börja med kommer vi att skapa ytterligare ett test som attackerar VPS, och på den lokala nätverksroutern kommer vi att höja Apache med standardkonfigurationen, varefter vi vidarebefordrar den 80:e porten till den från IDS-servern. Därefter kommer vi att simulera en DDoS-attack från en attackerande värd. För att göra detta, ladda ner från GitHub, kompilera och kör ett litet xerxes-program på den attackerande noden (du kan behöva installera gcc-paketet):

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

Resultatet av hennes arbete blev följande:

Snor eller Suricata. Del 3: Skydda kontorsnätverket

Suricata skär av skurken, och Apache-sidan öppnas som standard, trots vår improviserade attack och den ganska döda kanalen för "kontorets" (egentligen hemmanätverket). För mer seriösa uppgifter bör du använda Metasploit Framework. Den är designad för penetrationstestning och låter dig simulera en mängd olika attacker. Installations instruktioner tillgänglig på projektets hemsida. Efter installationen krävs en uppdatering:

sudo msfupdate

För att testa, kör msfconsole.

Snor eller Suricata. Del 3: Skydda kontorsnätverket

Tyvärr saknar de senaste versionerna av ramverket förmågan att automatiskt knäcka, så exploateringar måste sorteras manuellt och köras med kommandot use. Till att börja med är det värt att bestämma vilka portar som är öppna på den attackerade maskinen, till exempel med hjälp av nmap (i vårt fall kommer den att helt ersättas av netstat på den attackerade värden), och välj sedan och använd lämplig Metasploit-moduler

Det finns andra sätt att testa motståndskraften hos en IDS mot attacker, inklusive onlinetjänster. För nyfikenhetens skull kan du ordna stresstester med hjälp av testversionen IP-stressare. För att kontrollera reaktionen på interna inkräktares handlingar är det värt att installera specialverktyg på en av maskinerna på det lokala nätverket. Det finns många alternativ och från tid till annan bör de tillämpas inte bara på experimentplatsen utan också på fungerande system, bara det här är en helt annan historia.

Snor eller Suricata. Del 3: Skydda kontorsnätverket

Snor eller Suricata. Del 3: Skydda kontorsnätverket

Källa: will.com

Lägg en kommentar