Snort eller Suricata. Del 3: Beskytte kontornettverket

В forrige artikkel vi har dekket hvordan du kjører den stabile versjonen av Suricata på Ubuntu 18.04 LTS. Å sette opp en IDS på en enkelt node og aktivere gratis regelsett er ganske enkelt. I dag skal vi finne ut hvordan vi beskytter et bedriftsnettverk ved å bruke de vanligste typene angrep ved å bruke Suricata installert på en virtuell server. For å gjøre dette trenger vi en VDS på Linux med to datakjerner. Mengden RAM avhenger av belastningen: 2 GB er nok for noen, og 4 eller til og med 6 kan være nødvendig for mer seriøse oppgaver.Fordelen med en virtuell maskin er muligheten til å eksperimentere: du kan starte med en minimal konfigurasjon og øke ressurser etter behov.

Snort eller Suricata. Del 3: Beskytte kontornettverketfoto: Reuters

Koble til nettverk

Fjerning av IDS til en virtuell maskin i utgangspunktet kan være nødvendig for tester. Hvis du aldri har jobbet med slike løsninger, bør du ikke forhaste deg med å bestille fysisk maskinvare og endre nettverksarkitekturen. Det er best å kjøre systemet sikkert og kostnadseffektivt for å bestemme dine databehov. Det er viktig å forstå at all bedriftstrafikk må sendes gjennom en enkelt ekstern node: for å koble et lokalt nettverk (eller flere nettverk) til en VDS med IDS Suricata installert, kan du bruke SoftEther - En enkel å konfigurere VPN-server på tvers av plattformer som gir sterk kryptering. En internettforbindelse på kontoret har kanskje ikke en ekte IP, så det er bedre å sette den opp på en VPS. Det er ingen ferdige pakker i Ubuntu-depotet, du må laste ned programvaren enten fra prosjektside, eller fra et eksternt arkiv på tjenesten Launchpad (hvis du stoler på ham):

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

Du kan se listen over tilgjengelige pakker med følgende kommando:

apt-cache search softether

Snort eller Suricata. Del 3: Beskytte kontornettverket

Vi trenger softether-vpnserver (serveren i testkonfigurasjonen kjører på VDS), samt softether-vpncmd - kommandolinjeverktøy for å konfigurere den.

sudo apt-get install softether-vpnserver softether-vpncmd

Et spesielt kommandolinjeverktøy brukes til å konfigurere serveren:

sudo vpncmd

Snort eller Suricata. Del 3: Beskytte kontornettverket

Vi vil ikke snakke i detalj om innstillingen: prosedyren er ganske enkel, den er godt beskrevet i en rekke publikasjoner og er ikke direkte relatert til emnet for artikkelen. Kort sagt, etter å ha startet vpncmd, må du velge element 1 for å gå til serveradministrasjonskonsollen. For å gjøre dette må du skrive inn navnet localhost og trykke enter i stedet for å skrive inn navnet på huben. Administratorpassordet settes i konsollen med serverpasswordset-kommandoen, DEFAULT virtuelle hub slettes (hubdelete-kommandoen) og et nytt opprettes med navnet Suricata_VPN, og passordet er også satt (hubcreate-kommando). Deretter må du gå til administrasjonskonsollen til den nye huben ved å bruke kommandoen hub Suricata_VPN for å opprette en gruppe og bruker ved å bruke kommandoene groupcreate og usercreate. Brukerpassordet settes med brukerpassordsett.

SoftEther støtter to trafikkoverføringsmoduser: SecureNAT og Local Bridge. Den første er en proprietær teknologi for å bygge et virtuelt privat nettverk med egen NAT og DHCP. SecureNAT krever ikke TUN/TAP eller Netfilter eller andre brannmurinnstillinger. Ruting påvirker ikke kjernen av systemet, og alle prosesser er virtualiserte og fungerer på alle VPS/VDS, uavhengig av hvilken hypervisor som brukes. Dette resulterer i økt CPU-belastning og lavere hastighet sammenlignet med Local Bridge-modus, som kobler den virtuelle SoftEther-huben til en fysisk nettverksadapter eller TAP-enhet.

Konfigurasjonen i dette tilfellet blir mer komplisert, siden ruting skjer på kjernenivå ved bruk av Netfilter. Våre VDS er bygget på Hyper-V, så i siste trinn lager vi en lokal bro og aktiverer TAP-enheten med kommandoen bridgecreate Suricate_VPN -device:suricate_vpn -tap:yes. Etter å ha avsluttet hub-administrasjonskonsollen, vil vi se et nytt nettverksgrensesnitt i systemet som ennå ikke har blitt tildelt en IP:

ifconfig

Snort eller Suricata. Del 3: Beskytte kontornettverket

Deretter må du aktivere pakkerouting mellom grensesnitt (ip forward), hvis den er inaktiv:

sudo nano /etc/sysctl.conf

Fjern kommentaren til følgende linje:

net.ipv4.ip_forward = 1

Lagre endringene i filen, gå ut av redigeringsprogrammet og bruk dem med følgende kommando:

sudo sysctl -p

Deretter må vi definere et undernett for det virtuelle nettverket med fiktive IP-er (for eksempel 10.0.10.0/24) og tilordne en adresse til grensesnittet:

sudo ifconfig tap_suricata_vp 10.0.10.1/24

Deretter må du skrive Netfilter-regler.

1. Om nødvendig, tillat innkommende pakker på lytteporter (SoftEther proprietær protokoll bruker HTTPS og 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. Sett opp NAT fra 10.0.10.0/24 subnett til hovedserverens IP

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

3. Tillat å sende pakker fra undernettet 10.0.10.0/24

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

4. Tillat å sende pakker for allerede etablerte tilkoblinger

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

Vi vil overlate automatiseringen av prosessen når systemet startes på nytt ved hjelp av initialiseringsskript til leserne som lekser.

Hvis du vil gi IP til klienter automatisk, må du også installere en slags DHCP-tjeneste for den lokale broen. Dette fullfører serveroppsettet og du kan gå til klientene. SoftEther støtter mange protokoller, bruken av disse avhenger av egenskapene til LAN-utstyret.

netstat -ap |grep vpnserver

Snort eller Suricata. Del 3: Beskytte kontornettverket

Siden testruteren vår også kjører under Ubuntu, la oss installere pakkene softether-vpnclient og softether-vpncmd fra et eksternt depot på den for å bruke den proprietære protokollen. Du må kjøre klienten:

sudo vpnclient start

For å konfigurere, bruk vpncmd-verktøyet, velg localhost som maskinen som vpnclienten kjører på. Alle kommandoer lages i konsollen: du må opprette et virtuelt grensesnitt (NicCreate) og en konto (AccountCreate).

I noen tilfeller må du spesifisere autentiseringsmetoden ved å bruke kommandoene AccountAnonymousSet, AccountPasswordSet, AccountCertSet og AccountSecureCertSet. Siden vi ikke bruker DHCP, settes adressen til den virtuelle adapteren manuelt.

I tillegg må vi aktivere ip forward (alternativ net.ipv4.ip_forward=1 i filen /etc/sysctl.conf) og konfigurere statiske ruter. Om nødvendig, på VDS med Suricata, kan du konfigurere portvideresending for å bruke tjenestene som er installert på det lokale nettverket. På denne kan nettverkssammenslåingen anses som fullført.

Vår foreslåtte konfigurasjon vil se omtrent slik ut:

Snort eller Suricata. Del 3: Beskytte kontornettverket

Setter opp Suricata

В forrige artikkel vi snakket om to driftsmoduser for IDS: gjennom NFQUEUE-køen (NFQ-modus) og gjennom nullkopi (AF_PACKET-modus). Det andre krever to grensesnitt, men er raskere - vi skal bruke det. Parameteren er satt som standard i /etc/default/suricata. Vi må også redigere vars-delen i /etc/suricata/suricata.yaml, og sette det virtuelle subnettet der som hjemme.

Snort eller Suricata. Del 3: Beskytte kontornettverket

For å starte IDS på nytt, bruk kommandoen:

systemctl restart suricata

Løsningen er klar, nå må du kanskje teste den for motstand mot ondsinnede handlinger.

Simulerer angrep

Det kan være flere scenarier for kampbruk av en ekstern IDS-tjeneste:

Beskyttelse mot DDoS-angrep (primært formål)

Det er vanskelig å implementere et slikt alternativ i bedriftsnettverket, siden pakkene for analyse må komme til systemgrensesnittet som ser på Internett. Selv om IDS blokkerer dem, kan falsk trafikk få ned datakoblingen. For å unngå dette må du bestille en VPS med en tilstrekkelig produktiv internettforbindelse som kan passere all lokal nettverkstrafikk og all ekstern trafikk. Det er ofte enklere og billigere å gjøre dette enn å utvide kontorkanalen. Som et alternativ er det verdt å nevne spesialiserte tjenester for beskyttelse mot DDoS. Kostnaden for tjenestene deres er sammenlignbare med kostnadene for en virtuell server, og den krever ikke tidkrevende konfigurasjon, men det er også ulemper - klienten får kun DDoS-beskyttelse for pengene sine, mens hans egen IDS kan konfigureres som du som.

Beskyttelse mot eksterne angrep av andre typer

Suricata er i stand til å takle forsøk på å utnytte ulike sårbarheter i bedriftens nettverkstjenester tilgjengelig fra Internett (e-postserver, webserver og webapplikasjoner, etc.). Vanligvis, for dette, er IDS installert inne i LAN etter grenseenhetene, men å ta den utenfor har rett til å eksistere.

Beskyttelse mot innsidere

Til tross for den beste innsatsen fra systemadministratoren, kan datamaskiner på bedriftsnettverket bli infisert med skadelig programvare. I tillegg dukker det noen ganger opp hooligans i lokalområdet, som prøver å utføre noen ulovlige operasjoner. Suricata kan bidra til å blokkere slike forsøk, men for å beskytte det interne nettverket er det bedre å installere det innenfor omkretsen og bruke det sammen med en administrert svitsj som kan speile trafikk til én port. En ekstern IDS er heller ikke ubrukelig i dette tilfellet - i det minste vil den kunne fange opp forsøk fra malware som bor på LAN for å kontakte en ekstern server.

Til å begynne med vil vi lage en annen test som angriper VPS, og på den lokale nettverksruteren vil vi heve Apache med standardkonfigurasjonen, hvoretter vi videresender den 80. porten til den fra IDS-serveren. Deretter vil vi simulere et DDoS-angrep fra en angripende vert. For å gjøre dette, last ned fra GitHub, kompiler og kjør et lite xerxes-program på den angripende noden (det kan hende du må installere gcc-pakken):

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 arbeidet hennes var som følger:

Snort eller Suricata. Del 3: Beskytte kontornettverket

Suricata kutter av skurken, og Apache-siden åpnes som standard, til tross for vårt improviserte angrep og den ganske døde kanalen til "kontoret" (faktisk hjemmenettverket). For mer seriøse oppgaver bør du bruke Metasploit Framework. Den er designet for penetrasjonstesting og lar deg simulere en rekke angrep. Installasjonsveiledning tilgjengelig på prosjektets hjemmeside. Etter installasjonen kreves en oppdatering:

sudo msfupdate

For testing, kjør msfconsole.

Snort eller Suricata. Del 3: Beskytte kontornettverket

Dessverre mangler de nyeste versjonene av rammeverket muligheten til å sprekke automatisk, så utnyttelser må sorteres manuelt og kjøres med brukskommandoen. Til å begynne med er det verdt å bestemme portene som er åpne på den angrepne maskinen, for eksempel ved å bruke nmap (i vårt tilfelle vil den bli fullstendig erstattet av netstat på den angrepne verten), og velg og bruk den riktige Metasploit-moduler

Det finnes andre måter å teste motstandskraften til en IDS mot angrep, inkludert nettjenester. For nysgjerrighetens skyld kan du arrangere stresstesting ved hjelp av prøveversjonen IP stresser. For å sjekke reaksjonen på handlingene til interne inntrengere, er det verdt å installere spesialverktøy på en av maskinene på det lokale nettverket. Det er mange alternativer, og fra tid til annen bør de brukes ikke bare på det eksperimentelle stedet, men også på arbeidssystemer, bare dette er en helt annen historie.

Snort eller Suricata. Del 3: Beskytte kontornettverket

Snort eller Suricata. Del 3: Beskytte kontornettverket

Kilde: www.habr.com

Legg til en kommentar