Schnauben oder Suricata. Teil 3: Schutz des Büronetzwerks

В vorheriger Artikel Wir haben erläutert, wie Sie die stabile Version von Suricata unter Ubuntu 18.04 LTS ausführen. Das Einrichten eines IDS auf einem einzelnen Knoten und das Aktivieren kostenloser Regelsätze ist ziemlich einfach. Heute werden wir herausfinden, wie wir ein Unternehmensnetzwerk vor den häufigsten Angriffsarten schützen können, indem wir Suricata auf einem virtuellen Server installieren. Dazu benötigen wir einen VDS unter Linux mit zwei Rechenkernen. Die Größe des Arbeitsspeichers hängt von der Auslastung ab: 2 GB reichen für jemanden, für ernsthaftere Aufgaben können 4 oder sogar 6 erforderlich sein. Der Vorteil einer virtuellen Maschine ist die Experimentierbarkeit: Sie können mit einer minimalen Konfiguration beginnen und diese steigern Ressourcen nach Bedarf.

Schnauben oder Suricata. Teil 3: Schutz des BüronetzwerksFoto: Reuters

Netzwerke verbinden

Für Tests kann es erforderlich sein, IDS zunächst in eine virtuelle Maschine zu entfernen. Wenn Sie sich noch nie mit solchen Lösungen beschäftigt haben, sollten Sie nicht überstürzt physische Hardware bestellen und die Netzwerkarchitektur ändern. Um Ihren Rechenbedarf zu ermitteln, ist es am besten, das System sicher und kosteneffizient zu betreiben. Es ist wichtig zu verstehen, dass der gesamte Unternehmensverkehr über einen einzigen externen Knoten geleitet werden muss: Um ein lokales Netzwerk (oder mehrere Netzwerke) mit einem VDS zu verbinden, auf dem IDS Suricata installiert ist, können Sie verwenden SoftEther - Ein einfach zu konfigurierender, plattformübergreifender VPN-Server, der eine starke Verschlüsselung bietet. Eine Büro-Internetverbindung verfügt möglicherweise nicht über eine echte IP, daher ist es besser, sie auf einem VPS einzurichten. Es gibt keine vorgefertigten Pakete im Ubuntu-Repository, Sie müssen die Software von einem der beiden Orte herunterladen Projektwebsiteoder aus einem externen Repository im Dienst Launchpad (wenn du ihm vertraust):

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

Sie können die Liste der verfügbaren Pakete mit dem folgenden Befehl anzeigen:

apt-cache search softether

Schnauben oder Suricata. Teil 3: Schutz des Büronetzwerks

Wir benötigen softether-vpnserver (der Server in der Testkonfiguration läuft auf VDS) sowie softether-vpncmd – Befehlszeilen-Dienstprogramme für die Konfiguration.

sudo apt-get install softether-vpnserver softether-vpncmd

Zur Konfiguration des Servers wird ein spezielles Befehlszeilenprogramm verwendet:

sudo vpncmd

Schnauben oder Suricata. Teil 3: Schutz des Büronetzwerks

Auf die Einstellung gehen wir nicht näher ein: Das Verfahren ist recht einfach, in zahlreichen Veröffentlichungen gut beschrieben und hat keinen direkten Bezug zum Thema des Artikels. Kurz gesagt, nachdem Sie vpncmd gestartet haben, müssen Sie Element 1 auswählen, um zur Serververwaltungskonsole zu gelangen. Dazu müssen Sie den Namen localhost eingeben und die Eingabetaste drücken, anstatt den Namen des Hubs einzugeben. Das Administratorkennwort wird in der Konsole mit dem Befehl serverpasswordset festgelegt, der virtuelle DEFAULT-Hub wird gelöscht (Befehl hubdelete) und ein neuer mit dem Namen Suricata_VPN erstellt, und sein Kennwort wird ebenfalls festgelegt (Befehl hubcreate). Als Nächstes müssen Sie mit dem Hub-Befehl Suricata_VPN zur Verwaltungskonsole des neuen Hubs gehen, um mit den Befehlen groupcreate und usercreate eine Gruppe und einen Benutzer zu erstellen. Das Benutzerpasswort wird mit userpasswordset festgelegt.

SoftEther unterstützt zwei Verkehrsübertragungsmodi: SecureNAT und Local Bridge. Bei der ersten handelt es sich um eine proprietäre Technologie zum Aufbau eines virtuellen privaten Netzwerks mit eigenem NAT und DHCP. SecureNAT erfordert weder TUN/TAP noch Netfilter noch andere Firewall-Einstellungen. Das Routing wirkt sich nicht auf den Kern des Systems aus und alle Prozesse werden virtualisiert und funktionieren auf jedem VPS/VDS, unabhängig vom verwendeten Hypervisor. Dies führt zu einer höheren CPU-Auslastung und einer langsameren Geschwindigkeit im Vergleich zum lokalen Bridge-Modus, der den virtuellen SoftEther-Hub mit einem physischen Netzwerkadapter oder TAP-Gerät verbindet.

Die Konfiguration wird in diesem Fall komplizierter, da das Routing auf Kernel-Ebene mithilfe von Netfilter erfolgt. Unsere VDS basieren auf Hyper-V, daher erstellen wir im letzten Schritt eine lokale Bridge und aktivieren das TAP-Gerät mit dem Befehl „bridgecreate Suricate_VPN -device:suricate_vpn -tap:yes“. Nach dem Verlassen der Hub-Verwaltungskonsole sehen wir eine neue Netzwerkschnittstelle im System, der noch keine IP zugewiesen wurde:

ifconfig

Schnauben oder Suricata. Teil 3: Schutz des Büronetzwerks

Als nächstes müssen Sie das Paketrouting zwischen Schnittstellen (IP-Weiterleitung) aktivieren, wenn es inaktiv ist:

sudo nano /etc/sysctl.conf

Kommentieren Sie die folgende Zeile aus:

net.ipv4.ip_forward = 1

Speichern Sie die Änderungen an der Datei, verlassen Sie den Editor und übernehmen Sie sie mit dem folgenden Befehl:

sudo sysctl -p

Als nächstes müssen wir ein Subnetz für das virtuelle Netzwerk mit fiktiven IPs definieren (z. B. 10.0.10.0/24) und der Schnittstelle eine Adresse zuweisen:

sudo ifconfig tap_suricata_vp 10.0.10.1/24

Dann müssen Sie Netfilter-Regeln schreiben.

1. Lassen Sie bei Bedarf eingehende Pakete auf Überwachungsports zu (das proprietäre SoftEther-Protokoll verwendet HTTPS und 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. Richten Sie NAT vom Subnetz 10.0.10.0/24 zur Hauptserver-IP ein

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

3. Erlauben Sie die Weiterleitung von Paketen aus dem Subnetz 10.0.10.0/24

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

4. Erlauben Sie die Weiterleitung von Paketen für bereits bestehende Verbindungen

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

Die Automatisierung des Prozesses beim Neustart des Systems mittels Initialisierungsskripten überlassen wir den Lesern als Hausaufgabe.

Wenn Sie Clients automatisch IP-Adressen zuweisen möchten, müssen Sie auch eine Art DHCP-Dienst für die lokale Bridge installieren. Damit ist die Servereinrichtung abgeschlossen und Sie können zu den Clients gehen. SoftEther unterstützt viele Protokolle, deren Verwendung von den Fähigkeiten der LAN-Geräte abhängt.

netstat -ap |grep vpnserver

Schnauben oder Suricata. Teil 3: Schutz des Büronetzwerks

Da unser Testrouter auch unter Ubuntu läuft, installieren wir auf ihm die Pakete softether-vpnclient und softether-vpncmd aus einem externen Repository, um das proprietäre Protokoll zu nutzen. Sie müssen den Client ausführen:

sudo vpnclient start

Verwenden Sie zum Konfigurieren das Dienstprogramm vpncmd und wählen Sie localhost als Maschine aus, auf der der vpnclient ausgeführt wird. Alle Befehle werden in der Konsole ausgeführt: Sie müssen eine virtuelle Schnittstelle (NicCreate) und ein Konto (AccountCreate) erstellen.

In einigen Fällen müssen Sie die Authentifizierungsmethode mit den Befehlen AccountAnonymousSet, AccountPasswordSet, AccountCertSet und AccountSecureCertSet angeben. Da wir kein DHCP verwenden, wird die Adresse für den virtuellen Adapter manuell festgelegt.

Darüber hinaus müssen wir die IP-Weiterleitung aktivieren (den Parameter net.ipv4.ip_forward=1 in der Datei /etc/sysctl.conf) und statische Routen konfigurieren. Bei Bedarf können Sie auf VDS mit Suricata die Portweiterleitung konfigurieren, um die im lokalen Netzwerk installierten Dienste zu nutzen. Damit kann die Netzwerkzusammenführung als abgeschlossen betrachtet werden.

Unsere vorgeschlagene Konfiguration wird in etwa so aussehen:

Schnauben oder Suricata. Teil 3: Schutz des Büronetzwerks

Suricata einrichten

В vorheriger Artikel Wir haben über zwei Betriebsmodi von IDS gesprochen: über die NFQUEUE-Warteschlange (NFQ-Modus) und über Nullkopie (AF_PACKET-Modus). Die zweite erfordert zwei Schnittstellen, ist aber schneller – wir werden sie verwenden. Der Parameter ist standardmäßig in /etc/default/suricata festgelegt. Wir müssen auch den Abschnitt „vars“ in /etc/suricata/suricata.yaml bearbeiten und das virtuelle Subnetz dort als Heimat festlegen.

Schnauben oder Suricata. Teil 3: Schutz des Büronetzwerks

Um IDS neu zu starten, verwenden Sie den folgenden Befehl:

systemctl restart suricata

Die Lösung ist fertig. Jetzt müssen Sie sie möglicherweise auf Widerstandsfähigkeit gegen böswillige Aktionen testen.

Angriffe simulieren

Für den Kampfeinsatz eines externen IDS-Dienstes kann es mehrere Szenarien geben:

Schutz vor DDoS-Angriffen (Hauptzweck)

Es ist schwierig, eine solche Option innerhalb des Unternehmensnetzwerks zu implementieren, da die Pakete zur Analyse an die Systemschnittstelle gelangen müssen, die das Internet betrachtet. Selbst wenn das IDS sie blockiert, kann unerwünschter Datenverkehr die Datenverbindung zum Erliegen bringen. Um dies zu vermeiden, müssen Sie einen VPS mit einer ausreichend produktiven Internetverbindung bestellen, die den gesamten lokalen Netzwerkverkehr und den gesamten externen Datenverkehr weiterleiten kann. Dies ist oft einfacher und kostengünstiger als der Ausbau des Bürokanals. Als Alternative sind spezialisierte Dienste zum Schutz vor DDoS zu erwähnen. Die Kosten ihrer Dienste sind vergleichbar mit den Kosten eines virtuellen Servers und erfordern keine zeitaufwändige Konfiguration, es gibt aber auch Nachteile – der Kunde erhält für sein Geld nur DDoS-Schutz, während sein eigenes IDS wie Sie konfiguriert werden kann wie.

Schutz vor externen Angriffen anderer Art

Suricata ist in der Lage, Versuche abzuwehren, verschiedene Schwachstellen in über das Internet zugänglichen Unternehmensnetzwerkdiensten (Mailserver, Webserver und Webanwendungen usw.) auszunutzen. Normalerweise wird IDS zu diesem Zweck innerhalb des LAN nach den Grenzgeräten installiert, aber wenn man es nach draußen bringt, hat es seine Daseinsberechtigung.

Schutz vor Insidern

Trotz aller Bemühungen des Systemadministrators können Computer im Unternehmensnetzwerk mit Malware infiziert werden. Darüber hinaus tauchen in der Umgebung manchmal Hooligans auf, die versuchen, illegale Operationen durchzuführen. Suricata kann helfen, solche Versuche zu blockieren. Um das interne Netzwerk zu schützen, ist es jedoch besser, es innerhalb des Perimeters zu installieren und zusammen mit einem verwalteten Switch zu verwenden, der den Datenverkehr auf einen Port spiegeln kann. Auch ein externer IDS ist in diesem Fall nicht nutzlos – er kann zumindest Versuche von im LAN lebender Schadsoftware abfangen, einen externen Server zu kontaktieren.

Zunächst erstellen wir einen weiteren Testangriff auf VPS und heben Apache mit der Standardkonfiguration auf dem lokalen Netzwerkrouter auf. Anschließend leiten wir den 80. Port vom IDS-Server dorthin weiter. Als nächstes simulieren wir einen DDoS-Angriff von einem angreifenden Host. Laden Sie dazu von GitHub herunter, kompilieren Sie ein kleines xerxes-Programm und führen Sie es auf dem angreifenden Knoten aus (möglicherweise müssen Sie das gcc-Paket installieren):

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

Das Ergebnis ihrer Arbeit war wie folgt:

Schnauben oder Suricata. Teil 3: Schutz des Büronetzwerks

Suricata unterbricht den Bösewicht und die Apache-Seite wird standardmäßig geöffnet, trotz unseres spontanen Angriffs und des ziemlich toten Kanals des „Büro“-Netzwerks (eigentlich Heimnetzwerks). Für ernstere Aufgaben sollten Sie verwenden Metasploit-Framework. Es ist für Penetrationstests konzipiert und ermöglicht die Simulation verschiedener Angriffe. Installationsanleitung verfügbar auf der Projektwebsite. Nach der Installation ist ein Update erforderlich:

sudo msfupdate

Führen Sie zum Testen msfconsole aus.

Schnauben oder Suricata. Teil 3: Schutz des Büronetzwerks

Leider fehlt den neuesten Versionen des Frameworks die Fähigkeit zum automatischen Knacken, sodass Exploits manuell sortiert und mit dem Befehl „use“ ausgeführt werden müssen. Zunächst lohnt es sich, die offenen Ports auf dem angegriffenen Rechner zu ermitteln, beispielsweise mit nmap (in unserem Fall wird es auf dem angegriffenen Host komplett durch netstat ersetzt) ​​und dann den entsprechenden auszuwählen und zu verwenden Metasploit-Module

Es gibt andere Möglichkeiten, die Widerstandsfähigkeit eines IDS gegen Angriffe zu testen, einschließlich Online-Diensten. Aus Neugier können Sie einen Stresstest mit der Testversion durchführen IP-Stress. Um die Reaktion auf die Aktionen interner Eindringlinge zu überprüfen, lohnt es sich, spezielle Tools auf einem der Computer im lokalen Netzwerk zu installieren. Es gibt viele Möglichkeiten und von Zeit zu Zeit sollten sie nicht nur auf den Versuchsstandort, sondern auch auf funktionierende Systeme angewendet werden, nur ist das eine ganz andere Geschichte.

Schnauben oder Suricata. Teil 3: Schutz des Büronetzwerks

Schnauben oder Suricata. Teil 3: Schutz des Büronetzwerks

Source: habr.com

Kommentar hinzufügen