Suricata: Unterschied zwischen den Versionen

Aus Foxwiki
 
(52 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 2: Zeile 2:


== Beschreibung ==
== Beschreibung ==
[[Datei:Suricata IDS.png|mini|400px]]
; Hochleistungsfähiges Netzwerk-IDS, IPS und Network Security Monitoring engine
; ''Suricata'' ist ein [[Intrusion Detection System#Netzwerk-basierte IDS|Network Intrusion Detection System]] (NIDS)
[[Datei:Suricata IDS.png|mini|400px | Suricata mit Echtzeit-Analyse und grafischer Oberfläche]]
* Durch die [[Open Information Security Foundation]] (OISF) entwickelt und betreut
; [[Intrusion Detection System#Netzwerk-basierte IDS|Network Intrusion Detection System]] (NIDS)
* Freie Software (GPLv2)
* Auch als [[Intrusion Prevention System|Network Intrusion Prevention System]] (NIPS) einsetzbar
* Auch als [[Intrusion Prevention System|Network Intrusion Prevention System]] (NIPS) einsetzbar
: (in Datenverkehr eingreift und Pakete blockieren)
: in Datenverkehr eingreift und Pakete blockieren
 
; Suricata ist ein Intrusion Detection und Intrusion Prevention System
* Kann auf vielfältige Weise an verschiedene Einsatzzwecke angepasst werden
* Über den NFQUEUE-Mechanismus gibt es eine leistungsfähige und flexible Anbindung an die Linux-Firewall [[Netfilter]]
 
; Lizenz
* [[GNU General Public License|GPL]]
* Suricata wird von der OISF und den sie unterstützenden Anbietern entwickelt
* [[Open Source]]
* Im Besitz einer gemeinschaftlich geführten gemeinnützigen Stiftung
* [[Open Information Security Foundation]] (OISF)
 


; Anwendung
; Anwendung
Zeile 21: Zeile 32:
{| class="wikitable sortable options"
{| class="wikitable sortable options"
|-
|-
|Hersteller || [https://oisf.net/ Open Information Security Foundation]
 
|-
|-
|Betriebssystem || [[FreeBSD]], [[Linux]], [[Unix]], [[macOS]], [[Microsoft Windows|Windows]]
|Betriebssystem || [[FreeBSD]], [[Linux]], [[Unix]], [[macOS]], [[Microsoft Windows|Windows]]
Zeile 37: Zeile 48:
* seit 2008 durch Matt Jonkman, Will Metcalf und Victor Julien
* seit 2008 durch Matt Jonkman, Will Metcalf und Victor Julien


; Funktionen
; Sicherheit
; Ein IDS/IPS kann nur vor bekannten Angriffen und Sicherheitslücken schützen!
* nicht vor unbekannten
 
; Daher kann ein IDS/IPS nur ''ein'' Baustein in einem Sicherheitskonzept sein
 
== Funktionen ==
; System zur Erkennung und Abwehr von Angriffen auf IT-Infrastrukturen
 
; Auf Netzwerkebene
* Ein- und ausgehenden Datenverkehr auf verdächtige Muster überprüfen
 
; Aktionen
* Information über  Unregelmäßigkeiten
* Unerwünschte Kommunikation unterbinden
** über eine Rückschaltung zur Firewall
 
; Suricata beschreibt sich selbst als Next-Generation IDS
* da es neben der Erkennung und Abwehr von netzwerkbasierten Angriffsmustern zusätzlich über Möglichkeiten verfügt, Protokolle wie HTTP oder DNS auf Anwendungsebene zu überwachen und zu protokollieren.
* Durch Funktionen wie Multithreading, Scripting und High Performance Detection hat sich Suricata mittlerweile fest als Alternative zu snort, dem bisherigen IDS-Platzhirsch, etabliert.
 
{| class="wikitable sortable options"
{| class="wikitable sortable options"
|-
|-
Zeile 55: Zeile 86:
| [[HTTP]]-Engine (libhtp) ||  
| [[HTTP]]-Engine (libhtp) ||  
|-
|-
| PCRE-Support ||  
| [[PCRE]]-Support ||  
|-
|-
| [[Lua]]-Skripte ||  
| [[Lua]]-Skripte ||  
Zeile 78: Zeile 109:
|}
|}


=== Multithreading ===
* Ein wesentliches Merkmal, das Suricata auszeichnet und von anderen bekannten IDS/IPS unterscheidet, ist die Möglichkeit des Multithreadings und der dadurch gewonnene Performancegewinn.
* So können bei einer aktuellen Multicore-CPU die Analyseaufgaben auf mehrere gleichzeitig laufende Prozesse aufgeteilt werden, was eine parallele Paketverarbeitung ermöglicht.


; Systeme zur Erkennung und Abwehr von Angriffen auf eine IT-Infrastruktur können auf Netzwerkebene den ein- und ausgehenden Datenverkehr auf verdächtige Muster überprüfen.
; Multithread-fähige Vorgänge
* So kann der Systemadministrator bei Unregelmäßigkeiten informiert werden oder über eine Rückschaltung zur Firewall die unerwünschte Kommunikation gänzlich unterbunden werden.
* Paketempfang
* Im Folgenden soll die grundlegende Funktionalität von Suricata, einem signaturbasierten Intrusion Detection System (IDS) beschrieben werden.
* Paketdekodierung
* Paketanalyse
* Paketverarbeitung


; Suricata beschreibt sich selbst als Next-Generation IDS, da es neben der Erkennung und Abwehr von netzwerkbasierten Angriffsmustern zusätzlich über Möglichkeiten verfügt, Protokolle wie HTTP oder DNS auf Anwendungsebene zu überwachen und zu protokollieren.  
Jeder dieser Vorgänge kann nicht nur individuell auf eine oder mehrere CPUs aufgeteilt, sondern auch zusätzlich noch priorisiert werden.  
* Durch Funktionen wie Multithreading, Scripting und High Performance Detection hat sich Suricata mittlerweile fest als Alternative zu snort, dem bisherigen IDS-Platzhirsch, etabliert.
* In den Standardeinstellungen nutzt Suricata für den rechenintensivsten Prozess, die Paketanalyse, einen Thread pro CPU.


[[Image:Bild3.png|top|alt="Multithreading-Standardeinstellungen bei 4 CPUs"]]


Suricata is a high performance Network IDS, IPS and Network Security Monitoring engine. Open Source and owned by a community run non-profit foundation, the Open Information Security Foundation (OISF). Suricata is developed by the OISF and its supporting vendors.
; Multithreading-Standardeinstellungen bei 4 CPUs


=== Fazit ===
; Begriffe
; Suricata ist ein leistungsfähiges Intrusion Detection und Intrusion Prevention System, das sich auf vielfältige Weise an den jeweiligen Einsatzzweck anpassen lässt.
{| class="wikitable options"
* Über den NFQUEUE-Mechanismus gibt es eine sehr leistungsfähige und flexible Anbindung an die Linux-Firewall »Netfilter«.
|-
! Begriff !! Beschreibung
|-
| Empfang || Pakete vom Netzwerk lesen
|-
| Decodierung || Pakete auf TCP-Ebene decodieren und Original-Datenstrom restaurieren
|-
| Analyse || Datenstrom mit aktivierten Signaturen vergleichen
|-
| Output || Alarmierungen und Ereignisse verarbeiten
|}


; Bei allen Möglichkeiten, die Suricata bietet, darf man aber nicht vergessen, dass ein IDS/IPS nicht vor (unbekannten) Sicherheitslücken schützen kann.
<noinclude>
* Suricata kann und muss nur ein Baustein in einem globaleren Sicherheitskonzept sein.


== Installation ==
== Anhang ==
# '''apt install suricata'''
=== Siehe auch ===
 
{{Special:PrefixIndex/Suricata}}
== Konfiguration ==
----
; Die Konfiguration von Suricata erfolgt im Verzeichnis ''/etc/suricata/''
* Dort sollte mindestens die Datei ''suricata.yaml'' zu finden sein, die die Hauptkonfiguration beinhaltet
* Je nach eingesetzter Distribution kann der Dateiname auch anders lauten
* Bei Debian und Ubuntu etwa findet man die Konfiguration in ''/etc/suricata/suricata-debian.yaml''
* Hier lässt sich nicht nur das Regelwerk und die Einbindung von Netzwerkschnittstellen konfigurieren, sondern auch die Paketanalyse steuern
 
; Suricata zieht zur Paketanalyse verschiedene Variablen heran und nutzt diese Informationen bei der Frage, welche Regeln für das aktuelle Paket überhaupt in Betracht kommen
* Wozu sollte man auch ein Paket auf eine Vielzahl von Angriffsmustern für Webserver analysieren, wenn auf der IP-Adresse gar kein Webserver horcht?
* Es geht also darum, Suricata das zu schützende Netz möglichst genau zu beschreiben.
 
; Allen voran ist hier die wichtigste Variable <tt>HOME_NET</tt> zu nennen.
* Diese Variable gibt den Adressbereich an, der durch das IDS geschützt werden soll, und kann eine einzelne IP-Adresse oder ein Netzwerkbereich sein.
* In einer üblichen kleineren Netzwerktopologie wird man hier in der Praxis das LAN und vielleicht eine externe IP-Adresse finden.
* Also z.B. <tt>HOME_NET: "[192.168.0.0/16,1.2.3.4]"</tt>.
* Das Hinzufügen der externen IP-Adresse hat den Vorteil, dass potentielle Angriffe auf das Suricata-System selbst ebenfalls erkannt werden.
* Ist das Suricata-System auch das Gateway für das interne Netz, sollte die externe IP-Adresse auf jeden Fall in das <tt>HOME_NET</tt> aufgenommen werden, da aufgrund von SNAT-Techniken (IP-Maskierung) sonst einige Angriffsmuster nicht als solche erkannt werden.
 
; Die Variable <tt>EXTERNAL_NET</tt> gibt an, welche IP-Adressen nicht zum lokalen Netzwerk gehören.
* Die Standardeinstellung ist auf <tt>EXTERNAL_NET: "!$HOME_NET"</tt> vorgegeben.
* Demnach wird alles als extern und potentiell böswillig angesehen, was nicht zum internen Netz gehört.
 
; Neben <tt>HOME_NET</tt> und <tt>EXTERNAL_NET</tt> können eine Reihe weiterer Angaben gemacht werden, die eine noch gezieltere Auswertung möglich machen und z.B.
* die Erkennung von protokollspezifischen Mustern auf einzelne IP-Adressen beschränkt.
* Wenn z.B. bekannt ist, dass der einzige zu überwachende Webserver die IP-Adresse 192.168.1.100 hat, dann kann auch die Detektion von webbasierten Angriffen auf diese IP-Adresse beschränkt werden.
* Selbiges gilt entsprechend für DNS-, SQL-, Telnet-Server und analog für <tt>*_CLIENT</nowiki></tt>- und <tt><nowiki>*_PORTS</tt>-Variablen.
* Selbst der vom Betriebssystem abhängige Umgang mit fragmentierten Paketen lässt sich Suricata mitteilen – vorausgesetzt, der Adressbereich für verschiedene Betriebssysteme im lokalen Netz ist hinreichend stark fragmentiert:
host-os-policy:
  windows: [0.0.0.0/0]        # Default
  bsd: [192.168.1.1]          # Gateway
  linux: [192.168.1.128/25, 192.168.1.100]    # Linux Webservers
 
; Bei allen von Suricata genutzten Variablen gilt
Je genauer diese sind, desto performanter ist der Analyse-Prozess und desto weniger falsch-positive Meldungen treten auf.
 
=== Dateien ===
; The main configuration file is /etc/suricata/suricata.yaml
 
; You should change the following parts of the configuration in order to make it run:
  default-log-dir: /var/log/suricata/    # where you want to store log files
  classification-file: /etc/suricata/classification.config
  reference-config-file: /etc/suricata/reference.config
  HOME_NET: "[10.0.0.0/8]"                # your local network
  host-os-policy:  ..                    # according to the OS running the ips
  magic-file: /usr/share/file/misc/magic.mgc
 
== Starting Suricata ==
; Manual startup
You may start the suricata service manually with:
# /usr/bin/suricata -c /etc/suricata/suricata.yaml -i eth0
 
; systemd service configuration
To start Suricata automatically at system boot, enable suricata.service
 
== Siehe auch ==
# [[Stateful Packet Inspection]]
# [[Stateful Packet Inspection]]
# [[Snort]]
# [[Snort]]


=== Dokumentation ===
==== Sicherheit ====
==== Dokumentation ====
# https://redmine.openinfosecfoundation.org/projects/suricata/wiki/Suricata_Installation
# https://redmine.openinfosecfoundation.org/projects/suricata/wiki/Suricata_Installation
# https://suricata.readthedocs.io/en/latest/index.html
# https://suricata.readthedocs.io/en/latest/index.html


==== RFC ====
==== Links ====
==== Man-Pages ====
===== Projekt =====
==== Info-Pages ====
=== Links ===
 
==== Projekt ====
# [https://suricata.io/ Offizielle Website]
# [https://suricata.io/ Offizielle Website]
# [https://oisf.net/ Open Information Security Foundation]


==== Weblinks ====
===== Weblinks =====
# [http://oisf.net/ OISF] – Foundation hinter Suricata
# [http://oisf.net/ OISF] – Foundation hinter Suricata
# [http://www.emergingthreats.net/ emergingthreats.net] – Community für Suricata Signaturen
# [http://www.emergingthreats.net/ emergingthreats.net] – Community für Suricata Signaturen
Zeile 180: Zeile 170:
# https://www.pro-linux.de/artikel/2/1751/6,ausgabe-und-alarmierung.html
# https://www.pro-linux.de/artikel/2/1751/6,ausgabe-und-alarmierung.html


==== Einzelnachweise ====
[[Kategorie:OPNsense/IDS]]
<references />
[[Kategorie:Suricata]]
 
== Testfragen ==
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 1''
<div class="mw-collapsible-content">'''Antwort1'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 2''
<div class="mw-collapsible-content">'''Antwort2'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 3''
<div class="mw-collapsible-content">'''Antwort3'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 4''
<div class="mw-collapsible-content">'''Antwort4'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 5''
<div class="mw-collapsible-content">'''Antwort5'''</div>
</div>
 


[[Kategorie:Unix-Software]]
</noinclude>
[[Kategorie:OPNsense/IDS]]
[[Kategorie:Intrusion Detection]]

Aktuelle Version vom 30. Mai 2023, 22:49 Uhr

Suricata ist ein Network Intrusion Detection System (NIDS)

Beschreibung

Hochleistungsfähiges Netzwerk-IDS, IPS und Network Security Monitoring engine
Suricata mit Echtzeit-Analyse und grafischer Oberfläche
Network Intrusion Detection System (NIDS)
in Datenverkehr eingreift und Pakete blockieren
Suricata ist ein Intrusion Detection und Intrusion Prevention System
  • Kann auf vielfältige Weise an verschiedene Einsatzzwecke angepasst werden
  • Über den NFQUEUE-Mechanismus gibt es eine leistungsfähige und flexible Anbindung an die Linux-Firewall Netfilter
Lizenz


Anwendung

Freie Firewall-Distributionen

Kommerzielle Anbieter

Übersicht
Betriebssystem FreeBSD, Linux, Unix, macOS, Windows
Kategorie Intrusion Detection System
Programmiersprache C, Rust
Lizenz GPL
Website suricata.io
Entwicklung
  • seit 2008 durch Matt Jonkman, Will Metcalf und Victor Julien
Sicherheit
Ein IDS/IPS kann nur vor bekannten Angriffen und Sicherheitslücken schützen!
  • nicht vor unbekannten
Daher kann ein IDS/IPS nur ein Baustein in einem Sicherheitskonzept sein

Funktionen

System zur Erkennung und Abwehr von Angriffen auf IT-Infrastrukturen
Auf Netzwerkebene
  • Ein- und ausgehenden Datenverkehr auf verdächtige Muster überprüfen
Aktionen
  • Information über Unregelmäßigkeiten
  • Unerwünschte Kommunikation unterbinden
    • über eine Rückschaltung zur Firewall
Suricata beschreibt sich selbst als Next-Generation IDS
  • da es neben der Erkennung und Abwehr von netzwerkbasierten Angriffsmustern zusätzlich über Möglichkeiten verfügt, Protokolle wie HTTP oder DNS auf Anwendungsebene zu überwachen und zu protokollieren.
  • Durch Funktionen wie Multithreading, Scripting und High Performance Detection hat sich Suricata mittlerweile fest als Alternative zu snort, dem bisherigen IDS-Platzhirsch, etabliert.
Funktion Beschreibung
Multithreading
PCAP-Analyse
IPv6-Support
Automatische Protokollerkennung
Protokoll-Parser
HTTP-Engine (libhtp)
PCRE-Support
Lua-Skripte
Intel-Hyperscan
Eve JSON-Log-Ausgabe
Redis
Datei-Extrahierung
High-Performance-Packetaufzeichnung
AF_PACKET
PF_RING
NETMAP
IP-Reputation

Multithreading

  • Ein wesentliches Merkmal, das Suricata auszeichnet und von anderen bekannten IDS/IPS unterscheidet, ist die Möglichkeit des Multithreadings und der dadurch gewonnene Performancegewinn.
  • So können bei einer aktuellen Multicore-CPU die Analyseaufgaben auf mehrere gleichzeitig laufende Prozesse aufgeteilt werden, was eine parallele Paketverarbeitung ermöglicht.
Multithread-fähige Vorgänge
  • Paketempfang
  • Paketdekodierung
  • Paketanalyse
  • Paketverarbeitung

Jeder dieser Vorgänge kann nicht nur individuell auf eine oder mehrere CPUs aufgeteilt, sondern auch zusätzlich noch priorisiert werden.

  • In den Standardeinstellungen nutzt Suricata für den rechenintensivsten Prozess, die Paketanalyse, einen Thread pro CPU.

"Multithreading-Standardeinstellungen bei 4 CPUs"

Multithreading-Standardeinstellungen bei 4 CPUs
Begriffe
Begriff Beschreibung
Empfang Pakete vom Netzwerk lesen
Decodierung Pakete auf TCP-Ebene decodieren und Original-Datenstrom restaurieren
Analyse Datenstrom mit aktivierten Signaturen vergleichen
Output Alarmierungen und Ereignisse verarbeiten


Anhang

Siehe auch


  1. Stateful Packet Inspection
  2. Snort

Sicherheit

Dokumentation

  1. https://redmine.openinfosecfoundation.org/projects/suricata/wiki/Suricata_Installation
  2. https://suricata.readthedocs.io/en/latest/index.html

Links

Projekt
  1. Offizielle Website
  2. Open Information Security Foundation
Weblinks
  1. OISF – Foundation hinter Suricata
  2. emergingthreats.net – Community für Suricata Signaturen
  3. http://suricata-ids.org/
  4. https://redmine.openinfosecfoundation.org/projects/suricata/wiki/Ubuntu_Installation_from_GIT
  5. http://www.emergingthreats.net/
  6. http://oinkmaster.sourceforge.net/
  7. http://www.hosfeld.de/
  8. http://www.freiesmagazin.de/20150201-februarausgabe-erschienen
  9. https://www.pro-linux.de/artikel/2/1751/6,ausgabe-und-alarmierung.html