Schnauben oder Suricata. Teil 2: Installation und Ersteinrichtung von Suricata

Laut Statistik steigt das Volumen des Netzwerkverkehrs jedes Jahr um etwa 50 %. Dies führt zu einer erhöhten Belastung der Geräte und erhöht insbesondere die Leistungsanforderungen von IDS / IPS. Sie können teure Spezialhardware kaufen, aber es gibt eine günstigere Option – die Einführung eines der Open-Source-Systeme. Vielen unerfahrenen Administratoren fällt es schwer, kostenloses IPS zu installieren und zu konfigurieren. Im Fall von Suricata stimmt das nicht ganz – Sie können es installieren und in wenigen Minuten mit einer Reihe kostenloser Regeln beginnen, typische Angriffe abzuwehren.

Schnauben oder Suricata. Teil 2: Installation und Ersteinrichtung von Suricata
Schnauben oder Suricata. Teil 1: Auswahl eines kostenlosen IDS/IPS zum Schutz Ihres Unternehmensnetzwerks

Warum brauchen wir ein weiteres offenes IPS?

Snort galt lange Zeit als Standard und befindet sich seit Ende der Neunzigerjahre in der Entwicklung, daher war es ursprünglich Single-Threaded. Im Laufe der Jahre sind darin alle modernen Funktionen aufgetaucht, wie zum Beispiel IPv6-Unterstützung, die Möglichkeit, Protokolle auf Anwendungsebene zu analysieren oder ein universelles Datenzugriffsmodul.

Die Kern-Snort-2.X-Engine hat gelernt, mit mehreren Kernen zu arbeiten, ist jedoch Single-Threaded geblieben und kann daher die Vorteile moderner Hardwareplattformen nicht optimal nutzen.

Das Problem wurde in der dritten Version des Systems gelöst, aber die Vorbereitung dauerte so lange, dass Suricata, von Grund auf neu geschrieben, auf den Markt kam. Im Jahr 2009 wurde damit begonnen, es genau als Multithread-Alternative zu Snort zu entwickeln, das über sofort einsatzbereite IPS-Funktionen verfügt. Der Code wird unter der GPLv2-Lizenz vertrieben, die Finanzpartner des Projekts haben jedoch Zugriff auf eine geschlossene Version der Engine. In den ersten Versionen des Systems traten einige Skalierbarkeitsprobleme auf, die jedoch schnell behoben wurden.

Warum Surica?

Suricata verfügt über mehrere Module (ähnlich wie Snort): Erfassung, Erfassung, Dekodierung, Erkennung und Ausgabe. Standardmäßig wird der erfasste Datenverkehr vor der Dekodierung in einem Stream zusammengefasst, obwohl dies das System stärker belastet. Bei Bedarf können Threads in den Einstellungen aufgeteilt und auf Prozessoren verteilt werden – Suricata ist sehr gut für bestimmte Hardware optimiert, obwohl dies kein HOWTO-Level mehr für Einsteiger ist. Erwähnenswert ist auch, dass Suricata über fortschrittliche HTTP-Inspektionstools verfügt, die auf der HTP-Bibliothek basieren. Sie können auch dazu verwendet werden, den Datenverkehr unbemerkt zu protokollieren. Das System unterstützt auch IPv6-Dekodierung, einschließlich IPv4-in-IPv6-Tunnel, IPv6-in-IPv6-Tunnel und mehr.

Zum Abfangen des Datenverkehrs können verschiedene Schnittstellen verwendet werden (NFQueue, IPFRing, LibPcap, IPFW, AF_PACKET, PF_RING), und im Unix-Socket-Modus können Sie von einem anderen Sniffer erfasste PCAP-Dateien automatisch analysieren. Darüber hinaus erleichtert die modulare Architektur von Suricata das Einbinden neuer Elemente zum Erfassen, Dekodieren, Analysieren und Verarbeiten von Netzwerkpaketen. Es ist auch wichtig zu beachten, dass in Suricata der Datenverkehr durch einen regulären Filter des Betriebssystems blockiert wird. GNU/Linux bietet zwei Optionen für die Funktionsweise von IPS: über die NFQUEUE-Warteschlange (NFQ-Modus) und über Zero Copy (AF_PACKET-Modus). Im ersten Fall wird das Paket, das in iptables eingeht, an die NFQUEUE-Warteschlange gesendet, wo es auf Benutzerebene verarbeitet werden kann. Suricata führt es nach seinen eigenen Regeln aus und fällt eines von drei Urteilen: NF_ACCEPT, NF_DROP und NF_REPEAT. Die ersten beiden sind selbsterklärend, während der letzte das Markieren und Senden von Paketen an die Spitze der aktuellen iptables-Tabelle ermöglicht. Der AF_PACKET-Modus ist schneller, erlegt dem System jedoch eine Reihe von Einschränkungen auf: Es muss über zwei Netzwerkschnittstellen verfügen und als Gateway fungieren. Das blockierte Paket wird einfach nicht an die zweite Schnittstelle weitergeleitet.

Ein wichtiges Merkmal von Suricata ist die Möglichkeit, Entwicklungen für Snort zu nutzen. Der Administrator hat insbesondere Zugriff auf die Regelsätze Sourcefire VRT und OpenSource Emerging Threats sowie auf das kommerzielle Emerging Threats Pro. Die einheitliche Ausgabe kann mit gängigen Backends geparst werden, PCAP- und Syslog-Ausgabe werden ebenfalls unterstützt. Systemeinstellungen und Regeln werden in YAML-Dateien gespeichert, die leicht lesbar sind und automatisch verarbeitet werden können. Die Suricata-Engine erkennt viele Protokolle, sodass die Regeln nicht an eine Portnummer gebunden sein müssen. Darüber hinaus wird das Konzept der Flowbits in den Regeln von Suricata aktiv praktiziert. Um den Auslöser zu verfolgen, werden Sitzungsvariablen verwendet, um verschiedene Zähler und Flags zu erstellen und anzuwenden. Viele IDS behandeln verschiedene TCP-Verbindungen als separate Einheiten und erkennen möglicherweise keine Verbindung zwischen ihnen, die auf den Beginn eines Angriffs hinweist. Suricata versucht, das Gesamtbild zu sehen und erkennt in vielen Fällen bösartigen Datenverkehr, der über verschiedene Verbindungen verteilt ist. Über die Vorteile kann man noch lange reden, wir gehen lieber zur Installation und Konfiguration über.

Wie installiere ich?

Wir werden Suricata auf einem virtuellen Server mit Ubuntu 18.04 LTS installieren. Alle Befehle müssen im Namen des Superusers (root) ausgeführt werden. Die sicherste Option besteht darin, als normaler Benutzer eine SSH-Verbindung zum Server herzustellen und dann das Dienstprogramm sudo zu verwenden, um die Berechtigungen zu erhöhen. Zuerst müssen Sie die Pakete installieren, die wir benötigen:

sudo apt -y install libpcre3 libpcre3-dev build-essential autoconf automake libtool libpcap-dev libnet1-dev libyaml-0-2 libyaml-dev zlib1g zlib1g-dev libmagic-dev libcap-ng-dev libjansson-dev pkg-config libnetfilter-queue-dev geoip-bin geoip-database geoipupdate apt-transport-https

Anbindung eines externen Repositorys:

sudo add-apt-repository ppa:oisf/suricata-stable
sudo apt-get update

Installieren Sie die neueste stabile Version von Suricata:

sudo apt-get install suricata

Bearbeiten Sie bei Bedarf den Namen der Konfigurationsdatei und ersetzen Sie den Standardwert eth0 durch den tatsächlichen Namen der externen Schnittstelle des Servers. Standardeinstellungen werden in der Datei /etc/default/suricata gespeichert und benutzerdefinierte Einstellungen werden in /etc/suricata/suricata.yaml gespeichert. Die Konfiguration von IDS beschränkt sich größtenteils auf die Bearbeitung dieser Konfigurationsdatei. Es verfügt über viele Parameter, die vom Namen und Zweck her mit den Analoga von Snort übereinstimmen. Die Syntax ist allerdings ganz anders, aber die Datei ist viel einfacher zu lesen als Snort-Konfigurationen und gut kommentiert.

sudo nano /etc/default/suricata

Schnauben oder Suricata. Teil 2: Installation und Ersteinrichtung von Suricata

и

sudo nano /etc/suricata/suricata.yaml

Schnauben oder Suricata. Teil 2: Installation und Ersteinrichtung von Suricata

Aufmerksamkeit! Bevor Sie beginnen, lohnt es sich, die Werte der Variablen aus dem Abschnitt vars zu überprüfen.

Um die Einrichtung abzuschließen, müssen Sie suricata-update installieren, um die Regeln zu aktualisieren und zu laden. Das geht ganz einfach:

sudo apt install python-pip
sudo pip install pyyaml
sudo pip install <a href="https://github.com/OISF/suricata-update/archive/master.zip">https://github.com/OISF/suricata-update/archive/master.zip</a>
sudo pip install --pre --upgrade suricata-update

Als nächstes müssen wir den Befehl suricata-update ausführen, um den Regelsatz „Emerging Threats Open“ zu installieren:

sudo suricata-update

Schnauben oder Suricata. Teil 2: Installation und Ersteinrichtung von Suricata

Um die Liste der Regelquellen anzuzeigen, führen Sie den folgenden Befehl aus:

sudo suricata-update list-sources

Schnauben oder Suricata. Teil 2: Installation und Ersteinrichtung von Suricata

Regelquellen aktualisieren:

sudo suricata-update update-sources

Schnauben oder Suricata. Teil 2: Installation und Ersteinrichtung von Suricata

Überarbeitung der aktualisierten Quellen:

sudo suricata-update list-sources

Bei Bedarf können Sie verfügbare kostenlose Quellen einbinden:

sudo suricata-update enable-source ptresearch/attackdetection
sudo suricata-update enable-source oisf/trafficid
sudo suricata-update enable-source sslbl/ssl-fp-blacklist

Danach müssen Sie die Regeln erneut aktualisieren:

sudo suricata-update

Damit ist die Installation und Erstkonfiguration von Suricata in Ubuntu 18.04 LTS abgeschlossen. Dann beginnt der Spaß: Im nächsten Artikel verbinden wir einen virtuellen Server per VPN mit dem Büronetzwerk und beginnen mit der Analyse des gesamten ein- und ausgehenden Datenverkehrs. Besonderes Augenmerk legen wir auf die Blockierung von DDoS-Angriffen, Malware-Aktivitäten und Versuchen, Schwachstellen in Diensten auszunutzen, auf die über öffentliche Netzwerke zugegriffen werden kann. Der Übersichtlichkeit halber werden Angriffe der häufigsten Arten simuliert.

Schnauben oder Suricata. Teil 2: Installation und Ersteinrichtung von Suricata

Schnauben oder Suricata. Teil 2: Installation und Ersteinrichtung von Suricata

Source: habr.com

Kommentar hinzufügen