Open Source im professionellen Einsatz
Linux-Magazin 02/2012
© Iryna Dobrovyns'ka, 123RF.com

© Iryna Dobrovyns'ka, 123RF.com

Das IDS Suricata nutzt auch die GPU für die High-Speed-Überwachung

Aufgepasst!

Suricata, das wachsame Erdmännchen, heißt eine freie Software für die Intrusion Detection, die unter anderem von einer Stiftung des Homeland Security Department getragen wird. Die Snort-Alternative nutzt die GPU via Cuda, um auch in schnellen Netzen der herannahenden Daten Herr zu werden.

907

Administratoren, die eine Open-Source-IDS-Lösung suchen, landen meist bei Snort ([1], [2]), dem von Marty Roesch 1998 als Multiplatform Network Sniffer entworfenen Schnüffelschwein. In seiner langen Lebenzeit entwickelte sich Snort zu einer der führenden IDS-Lösungen. Die Weiterentwicklung bringt aber auch Nachteile: Konzeptionelle Änderungen lassen sich beispielsweise nur mehr schwer umsetzen.

Als Befreiungsschlag brachten die Entwickler 2009 mit Snort 3.0 [3] eine komplette Neuimplementierung, die aber immer noch nur als Beta unter dem Namen Snort Security Platform (Snort SP) auf der Snort-Homepage verfügbar ist.

Doch parallel dazu entstand im Zeichen des wachsamen Erdmännchens (Suricata suricatta) das Suricata-Projekt, dessen Entwickler sich zur Open Information Security Foundation zusammenschlossen (OISF, [4]) Die amerikanische Heimatschutzbehörde (Department of Homeland Security) finanziert die Stiftung, deren einziges Ziel die Entwicklung von Suricata ist und die am 31. Dezember 2009 erstmals eine Betaversion vorstellte. Seit wenigen Wochen steht bei der OISF die Version 1.1.1 zum Download bereit.

Eine neue IDS-Generation: Suricata

Die Entwickler bezeichnen Suricata als Next Generation IDS. Wesentliche neue Funktionen, die Suricata von Snort unterscheiden, sind das Multithreading, das Snort gar nicht bietet, und die automatische Protokollerkennung. Wer mit Snort Mehrkernprozessoren auslasten will, muss derzeit selbst dafür sorgen und mehrere Snort-Prozesse starten. Künftige Suricata-Versionen sollen für die Analyse der Pakete auch dedizierte Beschleuniger-Hardware nutzen, aktuell bindet Suricata bereits Nvidia-Grafikkarten über die Cuda-Bibliothek ein.

Grundsätzlich haben die Entwickler von Suricata allerorts versucht Snort-Kompatibilität herzustellen. Die Regelsyntax, die Protokollierung mit dem Unified2-Format und die Konfiguration der Variablen ist entweder direkt kompatibel oder zumindest sehr ähnlich und leicht konvertierbar. Jedoch weist die Hauptkonfigurationsdatei von Suricata eine andere Syntax auf, was es dem Administrator erschwert, seine vorhandene Snort-Konfiguration zu übernehmen.

Suricata ist für verschiedenste Plattformen verfügbar. Fedora bringt Suricata 1.1.1, Debian Squeeze die Version 1.0.1 und Ubuntu 11.10 die Suricata-Ausgabe 1.04 als Pakete im Repository mit. Das IDS läuft darüber hinaus auch auf Free BSD, Mac OS X und Windows.

Installation

Detaillierte Installationsanleitungen gibt es unter [5], die Kästen "Cuda" und "PF_Ring" zeigen, wie der Administrator die Grafikbibliothek und die modifizierte Libpcap-Ergänzung »pf_ring« einrichtet. Neben Cuda und PF_Ring erweist sich auch die Libcap-ng als sinnvoll. Sie ermöglicht es, Suricata als unprivilegierter Benutzer zu betreiben, was die Sicherheit des Systems deutlich erhöht. Anschließend lädt und installiert die Befehlssequenz aus Listing 1 Suricata.

Cuda

Nvidia stellt mit dem Cuda-Toolkit [6] eine Bibliothek zur Verfügung, die es Programmierern erlaubt, die Graphical Processing Unit (GPU) der Nvidia-Grafikkarten zu nutzen [7] und einen hohen Grad an Parallelisierung durch das hoch skalierbare Multithreading zu erreichen.

Möchte der Administrator diese Funktionalität mit Suricata nutzen, so benötigt er eine Nvidia-Grafikkarte mit den entsprechenden binären Treibern und das Cuda-Toolkit. Beide Softwarepakete gibt es direkt auf Nvidias Homepage, nach dem Download macht er die Dateien ausführbar und ruft sie auf:

chmod 755 cudatoolkit_4.0.17_linux_64_ubuntu10.10.run NVIDIA-Linux-x86_64-280.13.run
./cudatoolkit_4.0.17_linux_64_ubuntu10.10.run
./NVIDIA-Linux-x86_64-280.13.run

Die Installation der Nvidia-Treiber muss dabei als »root« erfolgen, wobei grafische Oberflächen wie X11 anzuhalten sind, da sie ja auch auf den Grafiktreiber zugreifen. Ist das Cuda-Toolkit einmal installiert, kann der Admin es bei der Übersetzung von Suricata einbinden (Listing 1).

Listing 1

Suricata kompilieren

01 ./configure --enable-gccprotect --enable-profiling --enable-cuda --with-cuda-includes=/usr/local/cuda/include --with-cuda-libraries=/usr/local/cuda/lib64 --enable-pfring --with-libcap_ng-libraries=/usr/local/lib --with-libcap_ng-includes=/usr/local/includea
02 make
03 make install

PF_Ring

Netzwerksniffer, speziell komplexe Sniffer wie Snort und Suricata, haben häufig Probleme damit, in Hochgeschwindigkeitsnetzen die Pakete mit der Geschwindigkeit zu verarbeiten, mit der sie etwa 10-GBit-Netzwerkkarten bereitstellen. Tricks wie die MMAP-Pcap-Bibliothek oder PF_Ring [8] helfen dem Admin. Dabei macht er sich die Tatsache zu Nutze, dass Netze, die mit 1 GBit/s oder sogar 10 GBit/s angebunden sind, diese Datenrate meist nicht dauerhaft erreichen, so hohe Leistungen treten nur als Peaks auf.

Wenn Suricata diese Datenrate nicht permanent verarbeiten kann, puffert es die Pakete und verarbeitet sie verzögert. Damit das klappt, muss der Admin jedoch einen entsprechenden Puffer anlegen. Während Snort hierzu per Default die Libpcap oder AF_Packet nutzt, bedient sich Suricata bei dem vom Ntop-Entwickler erfundenen PF_Ring. Es puffert die eingehenden Pakete in einem Ring-Puffer (Packet Filter Ring) und unterstützt dann auf handelsüblichen Karten Datenraten bis zu 10 GBit/s.

Wer PF_Ring verwenden will, muss die entsprechende Bibliothek installieren (Listing 2). Dabei bezieht er die aktuelle Version von PF_Ring aus dem Subversion-Repository und installiert die einzelnen Bestandteile.

Listing 2

PF_Ring-Installation

01 svn --force export https://svn.ntop.org/svn/ntop/trunk/PF_RING/ PF_RING
02 cd /kernel
03 make && make install
04 sudo insmod ./pf_ring.ko
05 cd ../userland
06 make && make install
07 cd /lib
08 ./configure && make && make install
09 cd ../libpcap
10 ./configure && make && make install
11 echo "options pf_ring transparent_mode=0 min_num_slots=32768 enable_tx_capture=0" > /etc/modprobe.d/pf_ring.conf

Wer Cuda und PF_Ring nicht benötigt, lässt einfach die entsprechenden Optionen in der »configure« -Zeile 1 weg. Jetzt gilt es noch, die Verzeichnisse »/etc/suricata« und »/var/log/suricata« zu erzeugen und zu füllen. »/var/log/suricata« weist der Administrator die Rechte »775« und den Besitzer »root« sowie die Gruppe »suricata« zu. Anschließend kopiert er die Dateien »suricata.yaml« , »classification.config« und »reference.config« aus dem Quelltextverzeichnis in das Verzeichnis »/etc/suricata« .

Linux-Magazin kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Suricata 1.3 mit SSL-Check und MD5

    Das Intrusion Detection System Suricata bringt in Version 1.3 einige Verbesserungen mit. Unter anderem prüft es SSL-Verbindungen auf Anomalien.

  • IDS Suricata 2.0 liefert Json-Daten

    Das freie Intrusion Detection System (IDS) Suricata ist in Version 2.0 mit einigen Neuerungen und Verbesserungen erhältlich.

  • Suricata + Wireshark = Suriwire

    Suriwire, ein Wireshark-Plugin, das Suricata-Informationen anzeigt, ist in Version 0.2 erschienen.

  • Snort 2.9

    Snort ist der Open-Source-Standard für Netzwerk-Intrusion-Detection-Systeme. Nachdem es um die Entwicklergemeinde in letzter Zeit recht ruhig war, zeigen jüngere Erweiterungen wie Snorby, Open FPC und Pulled Pork, wie Admins mit dem IT-Schnüffelschwein ihr Netzwerk komfortabel und sicher überwachen.

  • Suricata 3.0 – Major Release des Intrusion Detection Systems

    Mit Suricata 3.0 haben die Entwickler eine neue Hauptversion des Intrusion Detection Systems (IDS) veröffentlicht und versprechen jede menge Verbesserungen.

comments powered by Disqus

Stellenmarkt

Artikelserien und interessante Workshops aus dem Magazin können Sie hier als Bundle erwerben.