Snuiven of Suricata. Deel 3: Het kantoornetwerk beschermen

В vorige artikel we hebben besproken hoe de stabiele versie van Suricata op Ubuntu 18.04 LTS moet worden uitgevoerd. Het opzetten van een IDS op een enkel knooppunt en het inschakelen van gratis regelsets is vrij eenvoudig. Vandaag zullen we uitzoeken hoe we een bedrijfsnetwerk kunnen beschermen met behulp van de meest voorkomende soorten aanvallen met behulp van Suricata die op een virtuele server is geïnstalleerd. Hiervoor hebben we een VDS op Linux nodig met twee rekenkernen. De hoeveelheid RAM is afhankelijk van de belasting: 2 GB is genoeg voor iemand, en voor serieuzere taken kan 4 of zelfs 6 nodig zijn.Het voordeel van een virtuele machine is de mogelijkheid om te experimenteren: u kunt beginnen met een minimale configuratie en deze uitbreiden middelen naar behoefte.

Snuiven of Suricata. Deel 3: Het kantoornetwerk beschermenfoto: Reuters

Netwerken verbinden

Het verwijderen van IDS naar een virtuele machine kan in de eerste plaats nodig zijn voor tests. Als u nog nooit met dergelijke oplossingen te maken hebt gehad, moet u zich niet haasten om fysieke hardware te bestellen en de netwerkarchitectuur te wijzigen. Het is het beste om het systeem veilig en kosteneffectief uit te voeren om uw rekenbehoeften te bepalen. Het is belangrijk om te begrijpen dat al het bedrijfsverkeer via één enkel extern knooppunt moet worden geleid: om een ​​lokaal netwerk (of meerdere netwerken) aan te sluiten op een VDS waarop IDS Suricata is geïnstalleerd, kunt u ZachtEther - Een eenvoudig te configureren, platformonafhankelijke VPN-server die sterke codering biedt. Een internetverbinding op kantoor heeft mogelijk geen echt IP-adres, dus het is beter om deze op een VPS in te stellen. Er zijn geen kant-en-klare pakketten in de Ubuntu-repository, u zult de software ook moeten downloaden van project site, of vanuit een externe repository op de service Launchpad (als je hem vertrouwt):

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

U kunt de lijst met beschikbare pakketten bekijken met de volgende opdracht:

apt-cache search softether

Snuiven of Suricata. Deel 3: Het kantoornetwerk beschermen

We hebben softether-vpnserver nodig (de server in de testconfiguratie draait op VDS), evenals softether-vpncmd - opdrachtregelhulpprogramma's om het te configureren.

sudo apt-get install softether-vpnserver softether-vpncmd

Er wordt een speciaal opdrachtregelhulpprogramma gebruikt om de server te configureren:

sudo vpncmd

Snuiven of Suricata. Deel 3: Het kantoornetwerk beschermen

We zullen niet in detail ingaan op de setting: de procedure is vrij eenvoudig, ze is goed beschreven in tal van publicaties en heeft niet direct betrekking op het onderwerp van het artikel. Kortom, na het starten van vpncmd moet u item 1 selecteren om naar de serverbeheerconsole te gaan. Om dit te doen, moet u de naam localhost invoeren en op enter drukken in plaats van de naam van de hub in te voeren. Het beheerderswachtwoord wordt ingesteld in de console met de serverpasswordset-opdracht, de DEFAULT virtuele hub wordt verwijderd (hubdelete-opdracht) en een nieuwe wordt gemaakt met de naam Suricata_VPN, en het wachtwoord wordt ook ingesteld (hubcreate-opdracht). Vervolgens moet u naar de beheerconsole van de nieuwe hub gaan met behulp van de opdracht hub Suricata_VPN om een ​​groep en gebruiker te maken met behulp van de opdrachten groupcreate en usercreate. Het gebruikerswachtwoord wordt ingesteld met userpasswordset.

SoftEther ondersteunt twee verkeersoverdrachtsmodi: SecureNAT en Local Bridge. De eerste is een gepatenteerde technologie voor het bouwen van een virtueel particulier netwerk met zijn eigen NAT en DHCP. SecureNAT vereist geen TUN/TAP of Netfilter of andere firewall-instellingen. Routing heeft geen invloed op de kern van het systeem en alle processen zijn gevirtualiseerd en werken op elke VPS / VDS, ongeacht de gebruikte hypervisor. Dit resulteert in een hogere CPU-belasting en lagere snelheid in vergelijking met de Local Bridge-modus, die de virtuele SoftEther-hub verbindt met een fysieke netwerkadapter of TAP-apparaat.

Configuratie wordt in dit geval ingewikkelder, omdat routering plaatsvindt op kernelniveau met behulp van Netfilter. Onze VDS zijn gebouwd op Hyper-V, dus in de laatste stap maken we een lokale brug en activeren we het TAP-apparaat met de opdracht bridgecreate Suricate_VPN -device:suricate_vpn -tap:yes. Na het verlaten van de hubbeheerconsole zien we een nieuwe netwerkinterface in het systeem waaraan nog geen IP is toegewezen:

ifconfig

Snuiven of Suricata. Deel 3: Het kantoornetwerk beschermen

Vervolgens moet u pakketroutering tussen interfaces inschakelen (ip forward), als deze inactief is:

sudo nano /etc/sysctl.conf

Verwijder het commentaar van de volgende regel:

net.ipv4.ip_forward = 1

Sla de wijzigingen in het bestand op, sluit de editor af en pas ze toe met de volgende opdracht:

sudo sysctl -p

Vervolgens moeten we een subnet definiëren voor het virtuele netwerk met fictieve IP's (bijvoorbeeld 10.0.10.0/24) en een adres toewijzen aan de interface:

sudo ifconfig tap_suricata_vp 10.0.10.1/24

Vervolgens moet u Netfilter-regels schrijven.

1. Sta indien nodig binnenkomende pakketten op luisterpoorten toe (eigen protocol van SoftEther gebruikt HTTPS en poort 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. Stel NAT in vanaf het 10.0.10.0/24 subnet naar het IP-adres van de hoofdserver

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

3. Sta het doorgeven van pakketten van het subnet 10.0.10.0/24 toe

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

4. Sta het doorgeven van pakketten toe voor reeds tot stand gebrachte verbindingen

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

De automatisering van het proces bij het herstarten van het systeem met behulp van initialisatiescripts laten we als huiswerk aan de lezers over.

Als u IP automatisch aan clients wilt geven, moet u ook een soort DHCP-service voor de lokale brug installeren. Hiermee is de serverconfiguratie voltooid en kunt u naar de clients gaan. SoftEther ondersteunt veel protocollen, waarvan het gebruik afhangt van de mogelijkheden van de LAN-apparatuur.

netstat -ap |grep vpnserver

Snuiven of Suricata. Deel 3: Het kantoornetwerk beschermen

Aangezien onze testrouter ook onder Ubuntu draait, kunnen we de softether-vpnclient- en softether-vpncmd-pakketten van een externe repository erop installeren om het propriëtaire protocol te gebruiken. U moet de client uitvoeren:

sudo vpnclient start

Gebruik voor het configureren het hulpprogramma vpncmd en selecteer localhost als de machine waarop de vpnclient draait. Alle commando's worden gemaakt in de console: u moet een virtuele interface (NicCreate) en een account (AccountCreate) maken.

In sommige gevallen moet u de verificatiemethode opgeven met de opdrachten AccountAnonymousSet, AccountPasswordSet, AccountCertSet en AccountSecureCertSet. Omdat we geen DHCP gebruiken, wordt het adres voor de virtuele adapter handmatig ingesteld.

Daarnaast moeten we ip forward inschakelen (optie net.ipv4.ip_forward=1 in het bestand /etc/sysctl.conf) en statische routes configureren. Indien nodig kunt u op VDS met Suricata port forwarding configureren om de services te gebruiken die op het lokale netwerk zijn geïnstalleerd. Hierop kan de samenvoeging van het netwerk als voltooid worden beschouwd.

Onze voorgestelde configuratie ziet er ongeveer zo uit:

Snuiven of Suricata. Deel 3: Het kantoornetwerk beschermen

Suricata opzetten

В vorige artikel we hadden het over twee werkingsmodi van IDS: via de NFQUEUE-wachtrij (NFQ-modus) en via zero copy (AF_PACKET-modus). De tweede vereist twee interfaces, maar is sneller - we zullen het gebruiken. De parameter wordt standaard ingesteld in /etc/default/suricata. We moeten ook de sectie vars in /etc/suricata/suricata.yaml bewerken en het virtuele subnet daar instellen als thuis.

Snuiven of Suricata. Deel 3: Het kantoornetwerk beschermen

Gebruik de opdracht om IDS opnieuw te starten:

systemctl restart suricata

De oplossing is klaar, nu moet u deze mogelijk testen op weerstand tegen kwaadwillende acties.

Aanvallen simuleren

Er kunnen verschillende scenario's zijn voor het gevechtsgebruik van een externe IDS-dienst:

Bescherming tegen DDoS-aanvallen (primair doel)

Het is moeilijk om een ​​dergelijke optie binnen het bedrijfsnetwerk te implementeren, aangezien de pakketten voor analyse de systeeminterface moeten bereiken die naar het internet kijkt. Zelfs als de IDS ze blokkeert, kan vals verkeer de dataverbinding onderbreken. Om dit te voorkomen, moet u een VPS bestellen met een voldoende productieve internetverbinding die al het lokale netwerkverkeer en al het externe verkeer kan passeren. Dit is vaak makkelijker en goedkoper dan het kantorenkanaal uit te breiden. Als alternatief zijn gespecialiseerde diensten voor bescherming tegen DDoS de moeite waard. De kosten van hun diensten zijn vergelijkbaar met de kosten van een virtuele server, en het vereist geen tijdrovende configuratie, maar er zijn ook nadelen: de klant krijgt alleen DDoS-bescherming voor zijn geld, terwijl zijn eigen IDS kan worden geconfigureerd zoals jij leuk vinden.

Bescherming tegen externe aanvallen van andere typen

Suricata is bestand tegen pogingen om misbruik te maken van verschillende kwetsbaarheden in bedrijfsnetwerkdiensten die toegankelijk zijn via internet (mailserver, webserver en webapplicaties, enz.). Meestal wordt hiervoor IDS binnen het LAN geïnstalleerd na de grensapparaten, maar het naar buiten brengen heeft bestaansrecht.

Bescherming tegen insiders

Ondanks de inspanningen van de systeembeheerder kunnen computers op het bedrijfsnetwerk geïnfecteerd raken met malware. Bovendien verschijnen er soms hooligans in de omgeving die illegale operaties proberen uit te voeren. Suricata kan dergelijke pogingen helpen blokkeren, maar om het interne netwerk te beschermen is het beter om het binnen de perimeter te installeren en te gebruiken in combinatie met een beheerde switch die verkeer naar één poort kan spiegelen. Een externe IDS is in dit geval ook niet nutteloos - het zal in ieder geval pogingen van op het LAN levende malware kunnen onderscheppen om contact op te nemen met een externe server.

Om te beginnen zullen we nog een test maken die VPS aanvalt, en op de lokale netwerkrouter zullen we Apache verhogen met de standaardconfiguratie, waarna we de 80e poort ernaar doorsturen vanaf de IDS-server. Vervolgens simuleren we een DDoS-aanval van een aanvallende host. Om dit te doen, downloadt u van GitHub, compileert en voert u een klein xerxes-programma uit op het aanvallende knooppunt (mogelijk moet u het gcc-pakket installeren):

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

Het resultaat van haar werk was als volgt:

Snuiven of Suricata. Deel 3: Het kantoornetwerk beschermen

Suricata snijdt de slechterik af en de Apache-pagina wordt standaard geopend, ondanks onze geïmproviseerde aanval en het nogal dode kanaal van het "kantoor" (eigenlijk thuis) netwerk. Voor serieuzere taken moet u gebruiken Metasploit Framework. Het is ontworpen voor penetratietesten en stelt u in staat om verschillende aanvallen te simuleren. Installatie instructies beschikbaar op de projectwebsite. Na installatie is een update vereist:

sudo msfupdate

Voer msfconsole uit om te testen.

Snuiven of Suricata. Deel 3: Het kantoornetwerk beschermen

Helaas missen de nieuwste versies van het framework de mogelijkheid om automatisch te kraken, dus exploits zullen handmatig moeten worden gesorteerd en uitgevoerd met behulp van de opdracht use. Om te beginnen is het de moeite waard om de open poorten op de aangevallen machine te bepalen, bijvoorbeeld met behulp van nmap (in ons geval zal het volledig worden vervangen door netstat op de aangevallen host), en vervolgens de juiste selecteren en gebruiken Metasploit-modules

Er zijn andere manieren om de weerbaarheid van een IDS tegen aanvallen te testen, waaronder online diensten. Uit nieuwsgierigheid kunt u stresstesten regelen met behulp van de proefversie IP-stresser. Om de reactie op de acties van interne indringers te controleren, is het de moeite waard om speciaal gereedschap op een van de machines op het lokale netwerk te installeren. Er zijn veel opties en van tijd tot tijd moeten ze niet alleen op de experimentele site worden toegepast, maar ook op werkende systemen, alleen dit is een heel ander verhaal.

Snuiven of Suricata. Deel 3: Het kantoornetwerk beschermen

Snuiven of Suricata. Deel 3: Het kantoornetwerk beschermen

Bron: www.habr.com

Voeg een reactie