I Vi har beskrevet, hvordan man lancerer en stabil version af Suricata på Ubuntu 18.04 LTS. At konfigurere IDS på en enkelt node og tilslutte gratis regelsæt er ret enkelt. I dag skal vi se på, hvordan vi kan beskytte virksomhedens netværk mod de mest almindelige angrebstyper ved hjælp af Suricata installeret på en virtuel server. Vi skal bruge en VDS på Linux med to CPU-kerner. Mængden af RAM afhænger af belastningen: nogle vil klare sig med 2 GB, mens mere krævende opgaver kan have brug for 4 eller endda 6. Fordelen ved den virtuelle maskine ligger i muligheden for eksperimenter: man kan starte med en minimal konfiguration og øge ressourcerne efter behov.
foto: Reuters
Sammenkobler netværk
At flytte IDS til en virtuel maskine kan først og fremmest være nødvendigt til tests. Hvis du aldrig har arbejdet med sådanne løsninger, er det ikke hensigtsmæssigt at investere i fysisk hardware og ændre netværksarkitekturen. Det er bedre at afprøve systemet sikkert og uden unødvendige omkostninger for at bestemme behovene for beregningsressourcer. Det er vigtigt at forstå, at al virksomhedstrafik i denne forbindelse vil skulle passere gennem en enkelt ekstern node: tilslutning af det lokale netværk (eller flere netværk) til VDS med den installerede IDS Suricata kan opnås ved hjælp af — en brugervenlig, cross-platform VPN-server, der sikrer pålidelig kryptering. Kontorens internetforbindelse har muligvis ikke en reel IP, så det er bedre at opsætte det på en VPS. I Ubuntu-repositoriet er der ingen færdige pakker, så du bliver nødt til at downloade softwaren enten fra , eller fra et eksternt repository på tjenesten (hvis du stoler på den):
sudo add-apt-repository ppa:paskal-07/softethervpn
sudo apt-get updateDu kan se listen over tilgængelige pakker ved hjælp af følgende kommando:
apt-cache search softether 
Vi har brug for softether-vpnserver (serveren er i testkonfiguration kørende på VDS), samt softether-vpncmd — kommandolinjeværktøjer til dens konfiguration.
sudo apt-get install softether-vpnserver softether-vpncmdTil serverkonfigurationen bruges et specielt kommandolinjeværktøj:
sudo vpncmd 
Vi vil ikke gå i dybden med opsætningen: proceduren er ret enkel, den er godt beskrevet i mange publikationer og er ikke direkte relateret til emnet for artiklen. Kort sagt, efter at have startet vpncmd, skal du vælge punkt 1 for at gå ind i serveradministrationskonsollen. For at gøre dette skal du indtaste navnet localhost og trykke enter i stedet for at indtaste hub-navnet. I konsollen oprettes administratoradgangskoden med kommandoen serverpasswordset, den virtuelle hub DEFAULT slettes (kommando hubdelete), og en ny hub med navnet Suricata_VPN oprettes, samt dens adgangskode (kommando hubcreate). Derefter skal du gå ind i administrationskonsollen for den nye hub ved hjælp af kommandoen hub Suricata_VPN for at oprette en gruppe og en bruger ved hjælp af kommandoerne groupcreate og usercreate. Brugeradgangskoden sættes med userpasswordset.
SoftEther understøtter to trafikhåndteringsmetoder: SecureNAT og Local Bridge. Den første er en unik teknologi til at opbygge et virtuelt privat netværk med sin egen NAT og DHCP. SecureNAT kræver ikke TUN/TAP eller opsætning af Netfilter eller andre firewalls. Ruteringsprocessen påvirker ikke systemets kerne, og alle processer er virtualiserede og fungerer på enhver VPS/VDS uanset den anvendte hypervisor. Dette medfører øget belastning på CPU'en og lavere hastighed sammenlignet med Local Bridge, der forbinder SoftEther's virtuelle hub med en fysisk netværksadapter eller TAP-enhed.
Opsætningen bliver i dette tilfælde mere kompleks, da ruteringsprocessen foregår på kerne-niveau ved hjælp af Netfilter. Vores VDS er baseret på Hyper-V, derfor opretter vi et lokalt bro i det sidste trin og aktiverer TAP-enheden med kommandoen bridgecreate Suricate_VPN -device:suricate_vpn -tap:yes. Efter at have forladt administrationskonsollen for hub'en, vil vi se et nyt netværksinterface i systemet, som endnu ikke har fået tildelt en IP:
ifconfig 
Derefter skal vi aktivere pakke-routing mellem interface (ip forward), hvis det ikke er aktivt:
sudo nano /etc/sysctl.confFjern kommentaren fra følgende linje:
net.ipv4.ip_forward = 1Gem ændringerne i filen, afslut editoren og anvend dem med følgende kommando:
sudo sysctl -pDerefter skal vi definere et subnet for det virtuelle netværk med falske IP'er (for eksempel 10.0.10.0/24) og tildele adressen til interfacet:
sudo ifconfig tap_suricata_vp 10.0.10.1/24Derefter skal Netfilter-reglerne defineres.
1. Giv adgang til indkommende pakker på de lytteporte, der er nødvendige (SoftEther's proprietary protocol bruger 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 ACCEPT2. Konfigurer NAT fra subnettet 10.0.10.0/24 til den primære server-IP
sudo iptables -t nat -A POSTROUTING -s 10.0.10.0/24 -j SNAT --to-source 45.132.17.1403. Giv adgang til gennemgående pakker fra subnettet 10.0.10.0/24
sudo iptables -A FORWARD -s 10.0.10.0/24 -j ACCEPT4. Giv adgang til gennemgående pakker for allerede etablerede forbindelser
sudo iptables -A FORWARD -p all -m state --state ESTABLISHED,RELATED -j ACCEPTAutomatiseringen af processen ved genstart af systemet med initialiserings scripts efterlader vi til læserne som en hjemmearbejde.
Hvis du vil tildele IP'er til klienterne automatisk, skal du også installere en form for DHCP-service til den lokale bro. Nu er serverkonfigurationen færdig, og vi kan gå videre til klienterne. SoftEther understøtter mange protokoller, hvis brug afhænger af netværkets hardwarekapaciteter.
netstat -ap |grep vpnserver 
Da vores test-router også kører på Ubuntu, vil vi installere pakkerne softether-vpnclient og softether-vpncmd fra det eksterne arkiv for at bruge den proprietære protocol. Vi skal starte klienten:
sudo vpnclient startTil konfigurationen bruger vi værktøjet vpncmd, og vælger localhost som den maskine, hvor vpnclient kører. Alle kommandoer udføres i konsollen: det kræver, at vi opretter et virtuelt interface (NicCreate) og en konto (AccountCreate).
I nogle tilfælde skal vi angive godkendelsesmetoden ved hjælp af kommandoerne AccountAnonymousSet, AccountPasswordSet, AccountCertSet og AccountSecureCertSet. Da vi ikke bruger DHCP, indstilles adressen til det virtuelle adapter manuelt.
Derudover skal vi aktivere ip forwarding (parameteren net.ipv4.ip_forward=1 i filen /etc/sysctl.conf) og konfigurere statiske ruter. Hvis nødvendigt kan port forwarding konfigureres på VDS med Suricata for at bruge tjenester installeret i det lokale netværk. Så er netværksfletningen afsluttet.
Den foreslåede konfiguration vil se omtrent sådan ud:

Konfigurerer Suricata
I Vi har talt om to driftsformer for IDS: via NFQUEUE-kø (NFQ-tilstand) og via zero copy (AF_PACKET-tilstand). Den anden kræver to interfaces, men adskiller sig ved højere hastighed - vi vil bruge netop denne. Parametret er angivet som standard i /etc/default/suricata. Vi skal også redigere sektionen vars i /etc/suricata/suricata.yaml og angive den virtuelle subnet som hjemmebase.

For at genstarte IDS bruger vi kommandoen:
systemctl restart suricataLøsningen er klar, nu kan det være nødvendigt at teste den for modstandsdygtighed over for angreb fra angribere.
Simulering af angreb
Der kan være flere scenarier for brug af den eksterne IDS-tjeneste:
Beskyttelse mod DDoS-angreb (hovedformål)
At implementere en sådan mulighed inden for virksomhedens netværk er udfordrende, da pakker til analyse skal nå systemets internet-facing interface. Selvom IDS blokerer dem, kan parasittrafik nedlægge datakanalen. For at undgå dette er det nødvendigt at bestille en VPS med en tilstrækkelig kraftig internetforbindelse, der kan håndtere al lokal netværkstrafik og al ekstern trafik. Ofte er det enklere og billigere end at udvide kontorens forbindelser. Som et alternativ kan man overveje specialiserede tjenester til beskyttelse mod DDoS. Omkostningerne til deres tjenesteydelser er sammenlignelige med omkostningerne til en virtuel server, og der kræves ikke omfattende opsætning, men der er også ulemper - for sine penge får kunden kun DDoS-beskyttelse, mens sin egen IDS kan konfigureres som ønsket.
Beskyttelse mod eksterne angreb af andre typer
Suricata kan håndtere forsøg på udnyttelse af forskellige sårbarheder i internet-tilgængelige tjenester i virksomhedens netværk (mailserver, webserver og webapplikationer osv.). Normalt installeres IDS indeni det lokale netværk efter de grænseoverskridende enheder, men det kan også placeres udenfor.
Beskyttelse mod interne angribere
På trods af alle systemadministratorens bestræbelser kan computerne i det interne netværk blive inficeret med malware. Derudover opstår der nogle gange hærværk i lokalsystemet, hvor nogle forsøger at udføre ulovlige operationer. Suricata kan hjælpe med at blokere sådanne forsøg, men for at beskytte det interne netværk er det bedst at installere det inden for perimeteren og bruge det i kombination med en styret switch, der kan spejle trafikken til én port. En ekstern IDS er heller ikke nytteløs i dette tilfælde – i det mindste kan den opfange forsøg fra malware, der lever i det lokale netværk, på at kontakte en ekstern server.
Lad os først oprette endnu en test-angreb VPS, og på routeren i det lokale netværk opsætte Apache med standardkonfigurationen, hvorefter vi viderebefordrer port 80 fra IDS-serveren til den. Derefter vil vi simulere et DDoS-angreb fra den angrebne node. For dette downloader vi en lille program xerxes fra GitHub, kompilere den og kører den på angrebsmaskinen (det kan være nødvendigt at 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 80Resultatet af dens arbejde var følgende:

Suricata blokerer angriberen, og Apache-siden åbnes som standard, på trods af vores improviserede angreb og den ret svage ‘kontor’ (faktisk hjemme) netværksforbindelse. Til mere alvorlige opgaver bør man anvende . Det er designet til at udføre penetrationstest og tillader simulering af forskellige angreb. Installationsvejledningen kan findes på projektets hjemmeside. Efter installationen er en opdatering nødvendig:
sudo msfupdateTil test starter vi msfconsole.

Desværre har de seneste versioner af rammerne ikke muligheden for automatisk hacking, så exploits skal gennemgås manuelt og køre med kommandoen use. Først er det værd at bestemme, hvilke porte der er åbne på det angrebne system, for eksempel ved hjælp af nmap (i vores tilfælde kan netstat på det angrebne system være tilstrækkelig), og derefter vælge og bruge passende .
Der findes også andre midler til at kontrollere IDS's modstandskraft mod angreb, herunder online-tjenester. Af nysgerrighed kan man udføre stress-testning ved hjælp af den trial-version . For at teste reaktionen på handlinger fra interne trusler, er det en god idé at installere specialværktøjer på en af maskinerne i det lokale netværk. Der er mange muligheder, og det er værd at anvende dem ikke kun på eksperimentelle testmiljøer, men også på produktionssystemer, men det er en helt anden historie.
Kilde: habr.com
