Snort IDS/IPS erklärt: Was - Warum Sie es brauchen - Wie es funktioniert
Cybersicherheit ist ein wichtiges Thema sowohl für Akademiker als auch für Praktiker, da erfolgreiche Cyberangriffe zu astronomischen Ausgaben aufgrund des Verlusts von Vertraulichkeit, Integrität oder Verfügbarkeit führen können. Verschiedene Sicherheitsansätze wurden vorgeschlagen, um Cyberangriffe zu erkennen, wobei Intrusion Detection Systeme (IDS) und netzwerkbasierte Intrusion Detection Systeme (NIDS) zu den häufigsten gehören.
Die Vielzahl der entwickelten NIDS-Erkennungsmethoden und -ansätze wird oft entweder als anomaliemäßig (ANIDS) oder signaturbasiert klassifiziert. (SNIDS). Anomaliebasierte Systeme bewerten das typische Verhalten eines Systems und geben Warnungen aus, wenn die Abweichung vom normalen Verhalten einen bestimmten Schwellenwert erreicht. Signaturbasierte Techniken überprüfen Muster (Signaturen) in den untersuchten Daten und geben Warnungen aus, wenn sie mit bekannten Bedrohungen übereinstimmen.
Signaturbasierte Techniken liefern hervorragende Erkennungsergebnisse für bekannte, vordefinierte Bedrohungen. Sie sind jedoch nicht in der Lage, neue, unbekannte Eindringlinge zu identifizieren, selbst wenn es sich um minimale Versionen zuvor identifizierter Bedrohungen handelt.
Eines der führenden signaturbasierten Intrusion-Detection- und Prevention-Systeme in der Cybersicherheitswelt ist Snort. Snort ist ein Open-Source-Systems zur Eindringungserkennung und -verhinderung, das Pakete in Echtzeit analysieren und protokollieren kann. Snort ist die am weitesten verbreitete IDS/IPS-Lösung der Welt, die die Vorteile von Signatur-, Protokoll- und anomaliemäßiger Inspektion kombiniert. Mit Millionen von Downloads und etwa 400.000 registrierten Benutzern ist Snort zum Branchenstandard für Intrusion Prevention Systeme geworden. (IPS).
In diesem Artikel werden wir behandeln, was Snort ist, wofür Snort verwendet wird, welche Art von Angriffen Snort erkennen kann, wie es Netzwerkangriffe erkennt und verhindert und wie Sie eine Snort-Regel schreiben können. Zuletzt werden wir die Unterschiede zwischen Snort und einem anderen Packet Sniffer, Wireshark, sowie dem IPS-Tool Suricata besprechen.
Was ist Snort?
Snort ist ein leistungsstarkes und leichtgewichtiges Open-Source-Netzwerk-Überwachungs- und -Verhinderungssystem (IDS/IPS), das eine Analyse des Netzwerkverkehrs und die Aufzeichnung von Paketen in Echtzeit bietet. Snort verwendet eine regelbasierte Sprache, die Anomalie-, Protokoll- und Signaturinspektionstechniken integriert, um potenziell bösartiges Verhalten zu identifizieren. Es wurde 1998 von Martin Roesch, dem Gründer und ehemaligen CTO von Sourcefire, entwickelt. Snort wird derzeit von Cisco entwickelt und gewartet, das Sourcefire im Jahr 2013 übernommen hat. Snort ist seit langem ein Pionier in der Software zur Eindämmung und Erkennung von Eindringlingen in Unternehmen.
Netzwerkadministratoren können mit SNORT Denial-of-Service (DoS) und Distributed Denial-of-Service (DDoS) Angriffe, Common Gateway Interface (CGI) Angriffe, Pufferüberläufe und verdeckte Portscans identifizieren. SNORT IPS generiert eine Reihe von Prinzipien, die bösartige Netzwerkaktivitäten definieren, bösartige Pakete identifizieren und Benutzer über potenzielle Bedrohungen informieren.
Snort ist herunterladbar und konfigurierbar für den Einsatz zu Hause und in Unternehmen. Es kann auf den meisten Linux, Unix und den wichtigsten BSD-Betriebssystemen kompiliert werden. Microsoft Windows-Versionen von Snort sind ebenfalls verfügbar.
Snort basiert auf der Bibliothek Packet Capture.(libpcap). Für die Echtzeitanalyse des Datenverkehrs, das Protokollieren von Paketen, das Inhaltsabgleich und die Protokollanalyse ist Libpcap ein nützliches Werkzeug, das weit verbreitet ist bei der Überwachung des Datenverkehrs von Transmission Control Protocol/Internet Protocol (TCP/IP), bei Inhaltsuchern und Analysewerkzeugen.
Ist Snort ein Sniffer?
Ja. Snort ist ein "Netzwerkpaket-Sniffer", der den Netzwerkverkehr überwacht und jedes Paket sorgfältig untersucht, um verdächtige Unregelmäßigkeiten oder potenziell schädliche Payloads zu finden. Darüber hinaus wird Snort nicht nur als Paket-Sniffer ähnlich wie tcpdump
verwendet, sondern auch als Paket-Logger, der nützlich für das Debuggen des Netzwerkverkehrs ist, sowie als Netzwerk-Eindringungserkennungs- und -verhinderungssystem.
Was ist die Snort-Architektur?
Ursprünglich wurde Snort als ein Paket-Sniffer-Algorithmus entwickelt. Ein weiteres verbreitetes Beispiel für einen Packet Sniffer ist tcpdump oder dessen vergleichbares grafisches Pendant, Wireshark. Um seinen aktuellen Zustand als Intrusion Detection System (IDS) Software zu erreichen, hat Snort mehrere Änderungen in sein architektonisches Framework integriert. Das System funktioniert derzeit als Kern mit Plug-in-Architektur, wobei die Hauptkomponente, bekannt als Sniffer, als Kern dient, während die übrigen Teile als Plug-in-Erweiterungen fungieren.
Die verbleibenden Komponenten bestehen aus den Vorverarbeitern, der Erkennungs-Engine und der Ausgabestufe.
-
Sniffer: Das als Sniffer bekannte Gerät ist dafür ausgelegt, Netzwerkdaten zu sammeln und die Paketstruktur zu analysieren, insbesondere die Schichtinformationen, die mit jedem Paket verbunden sind. Nach Abschluss des Datensammelverfahrens werden die Rohdatenpakete anschließend an die Vorverarbeiter übertragen.
-
Präprozessoren: Die Präprozessoren sind dafür verantwortlich, spezifische Operationen durchzuführen, um die Natur der Pakete oder das spezifische Verhalten, das Snort anspricht, festzustellen. Es gibt mehrere Preprocessor-Plugins. Wie im oben genannten Bild dargestellt, ist eine der Komponenten das HTTP-Plugin, das dazu dient, HTTP-Pakete zu erkennen. Der sfPortscan-Präprozessor dient als bemerkenswerte Veranschaulichung von Snorts Entscheidungsprozess bei der Bewertung von Paketverkehrsmustern. Durch die Angabe von Protokollen, Scan-Typen und Empfindlichkeitsstufen ist es möglich, zahlreiche Pakete als Teil eines Port-Scans zu klassifizieren. Nach Abschluss ihrer Aufgaben werden die Prozessoren die angeforderten Informationen an die Erkennungs-Engine übermitteln.
-
Erkennungs-Engine: Die Erkennungs-Engine führt einen binären Vergleich zwischen jedem Paket und jeder Regel in einem vordefinierten Regelset durch. Falls die Pakete mit den Regelinhalten übereinstimmen oder umgekehrt, werden sie an die Ausgabe weitergeleitet.
-
Ausgabe: Die Ausgabe wird die Regelaktion aufzeichnen und/oder Benachrichtigungen initiieren. Protokolle können in vielen Formaten gespeichert werden, wie zum Beispiel im Syslog-Format und Unified2, und können an zahlreiche Ziele geleitet werden, einschließlich der direkten Speicherung in einem Datenbank-Repository. Der aktuelle Zustand von Protokollen und Warnungen stellt Herausforderungen in Bezug auf die Lesbarkeit über die Befehlszeile dar, insbesondere bei Bestellungen im Wert von 10000 oder mehr. Folglich wird die Implementierung von Benutzeroberflächen notwendig. Die Snort-Benutzeroberflächen, nämlich Snorby und ACID, dienen als ergänzende Komponenten zum Ausgabemechanismus von Snort.
Was sind die Vorteile der Verwendung von Snort in Ihrer Umgebung?
Das Snort-Netzwerk-Überwachungs- und Erkennungssystem bietet vielen Organisationen, die es in ihren Netzwerken einsetzen, zahlreiche Vorteile. Die Erkennung und Verhinderung von Netzwerksicherheitsrisiken ist der bedeutendste Vorteil von Snort. Snort bietet ein Frühwarnsystem, das bösartige Angriffe daran hindert, sich im gesamten Netzwerk auszubreiten und weiteren Schaden anzurichten. Es bewertet die Computerressourcen und meldet jegliche Abnormalitäten oder anomalen Tendenzen. Es erkennt bekannte Signaturen oder Angriffssignaturen und benachrichtigt Administratoren über nicht identifizierte Risiken. Wenn Snort dabei hilft, das Problem daran zu hindern, sich auszubreiten, bis die Administratoren es beheben können. Die anderen Hauptvorteile von Snort sind wie folgt:
-
Hohe Genauigkeit: Da Snort ein Open-Source-Projekt ist, gibt es ständige Bemühungen, es zu verbessern und einige seiner Funktionen für eine höhere Genauigkeit zu ändern. Mehrere Sicherheitsteams verbessern die Software über die weltweit verstreute Snort-Community.
-
Hohe Anpassungsfähigkeit: Die Fähigkeit, neue Funktionen zu Snort hinzuzufügen, indem man auf seinen Quellcode zugreift, verschafft Snort einen erheblichen Vorteil gegenüber seinen Wettbewerbern. Diese Methode könnte es Snort ermöglichen, jedes Netzwerksicherheitssystem zu verwalten.
-
Schnelle Reaktion: Mit seinen Echtzeitschutzmechanismen kann Snort das System vor neuen Bedrohungen oder bösartiger Software schützen. Die Cisco Talos Security Intelligence and Research Group (Talos) ist eines der größten Merkmale von Snort; sie können brandneue Angriffe erkennen, indem sie Snort jede Stunde mit neuen Bedrohungen aktualisieren.
Warum ist Snort beliebt?
Snort ist ein weit verbreitetes Netzwerk-Intrusion-Detection-System (IDS), weil es eines der besten Cyber-Threat-Hunting-Werkzeuge in der Cybersicherheits-Welt ist. Ein Snort ist eine effiziente Software zur Echtzeitüberwachung des Netzwerkverkehrs. Es untersucht jedes Paket auf potenziell schädliche Nutzlasten.
Ein weiteres Merkmal, das Snort beliebt macht, ist, dass es für Protokollanalysen, Inhaltsdurchsuchungen und Abgleichungen verwendet wird. Und es kann eine Vielzahl von Bedrohungen identifizieren, wie Port-Scans, Pufferüberläufe usw.
Darüber hinaus bietet Snort eine hohe Portabilität und Kompatibilität. Es ist kompatibel mit Windows, Linux, vielen UNIX- und allen wichtigen BSD-Betriebssystemen. Snort erfordert nicht, dass Sie Ihren Kernel neu kompilieren oder irgendeine Software oder Hardware installieren. Snort verlangt nur, dass Sie über Root-Rechte verfügen, um es zu installieren und auszuführen.
Snort ist für den Einsatz als Netzwerk-IDS im traditionellsten Sinne konzipiert. Es vergleicht einfach den Netzwerkverkehr mit einer Reihe von Kriterien und warnt dann die Systemadministratoren vor verdächtigem Netzwerkverhalten, damit sie die notwendigen Maßnahmen ergreifen können.
Schließlich ist Snort Open-Source- und kostenlose Software. Daher bevorzugt jede Organisation mit einem begrenzten Budget, wie Bildungseinrichtungen, kleine und mittelständische Unternehmen und sogar Privatanwender, Snort als IDPS-Lösung.
Was ist der Zweck von Snort?
Snort ist konfigurierbar, um in drei Modi zu arbeiten:
-
Sniffer-Modus liest nur die Netzwerkpakete und zeigt sie in einem kontinuierlichen Stream auf der Konsole an.
-
Paket-Logger-Modus, in dem Pakete auf der Festplatte protokolliert werden.
-
Netzwerk-Eindringungs-Präventions- und Erkennungssystem (NIPDS) Modus, der die Erkennung und Analyse des Netzwerkverkehrs durchführt.
Snort scannt und erkennt Netzwerkpakete, wenn es so konfiguriert ist, als Sniffer zu fungieren. Diese Pakete können auch von Snort in einer Festplattendatei protokolliert werden. Um Snort als Netzwerk-Paket-Sniffer zu verwenden, müssen Benutzer den Promiscuous-Modus auf der Netzwerk-Schnittstelle des Hosts aktivieren, um den gesamten Netzwerkverkehr auf der lokalen Netzwerk-Schnittstelle zu überwachen. Der überwachte Datenverkehr wird dann auf die Konsole geschrieben.
Snort protokolliert Pakete, indem es den erforderlichen Netzwerkverkehr in einem Datenträgerdateiformat im Paket-Logger-Modus speichert.
Wenn Snort im NIPDS-Modus konfiguriert ist, erkennt und verhindert es verschiedene Arten von Cyberangriffen auf Ihr Netzwerk, wie z.B. Denial-of-Service- oder SQL-Injection-Angriffe. Snort überwacht kontinuierlich den Netzwerkverkehr und vergleicht ihn mit einem vom Benutzer festgelegten Snort-Regelsatz. Die entsprechende Konfigurationsdatei heißt /usr/local/etc/snort/snort.lua
. Wenn Snort verdächtige Aktivitäten erkennt, fungiert es als Firewall und liefert einen Echtzeit-Alarm an Syslog, eine separate Alarmdatei oder ein Popup-Fenster. Die Erkennung und Verhinderung von Eindringlingen ist die wichtigste Funktion von Snort.
Was sind die Snort-Funktionen?
Mehrere Merkmale machen Snort für Sicherheitsteams wertvoll, um ihre Systeme zu überwachen und bösartige Aktivitäten zu identifizieren. Snort besteht aus den folgenden Funktionen:
-
Paketaufzeichnung: Der Paket-Logger-Modus von Snort zeichnet Pakete auf der Festplatte auf, wodurch die Paketprotokollierung ermöglicht wird. In diesem Modus zeichnet Snort jedes Paket in einem hierarchischen Verzeichnis auf, das von der IP-Adresse des Hostnetzwerks abhängt.
-
Echtzeit-Verkehrsmonitor: Snort wird verwendet, um den ein- und ausgehenden Netzwerkverkehr zu überwachen. Wenn es potenziell schädliche Pakete oder Bedrohungen in Internet Protocol (IP)-Netzwerken erkennt, informiert es die Benutzer in Echtzeit.
-
Regeln sind einfach anzuwenden: Snort-Regeln sind einfach zu erstellen und erleichtern die Netzwerküberwachung und -schutz. Seine Regel-Sprache ist ebenfalls sehr anpassungsfähig, und das Erstellen neuer Regeln ist ziemlich einfach, was es Netzwerkadministratoren ermöglicht, zwischen normalem und schädlichem Internetverkehr zu unterscheiden.
-
Inhaltsabgleich: Snort kategorisiert Regeln nach Protokoll, wie IP und TCP, dann nach Port und schließlich nach denen mit und ohne Inhalt. Inhaltsbasierte Regeln verwenden einen Mehrfach-Muster-Abgleich, der die Effizienz verbessert, insbesondere für Protokolle wie das Hypertext-Transfer-Protokoll. (HTTP). Regeln ohne Substanz werden ständig überprüft, was sich nachteilig auf die Leistung auswirkt.
-
OS-Fingerprinting: Die Annahme, dass alle Systeme einen einzigartigen TCP/IP-Stack haben, wird im OS-Fingerprinting verwendet. Mit dieser Methode wird Snort verwendet, um die vom Netzwerk zugreifende Maschine verwendete OS-Plattform zu identifizieren.
-
Protokollanalyse: Snort ist in der Lage, Protokollanalysen durchzuführen, eine Netzwerkanalysetechnik, die Daten in Protokollebene für eine weitere Analyse sammelt. Dies ermöglicht es dem Netzwerkadministrator, möglicherweise schädliche Datenpakete genauer zu untersuchen, was für Protokolle wie die Definition des Transmission Control Protocol/Internet Protocol (TCP/IP) Stapelprotokolls von entscheidender Bedeutung ist.
-
Kompatibilität: Snort ist auf allen Netzwerkeinstellungen und Betriebssystemen installiert, einschließlich Linux und Windows.
-
Kostenlos: Als Open-Source-Software ist Snort für jeden kostenlos zugänglich, der ein IDS oder IPS verwenden möchte, um sein Netzwerk zu überwachen und zu sichern.
Snort fungiert als Schutzbarriere für Netzwerksysteme und Daten, indem es Informationen über ein Netzwerk sowie System- und Benutzerverhalten sammelt und analysiert, um mögliche Angriffe und Sicherheitsverletzungen sowohl von innen als auch von außen zu identifizieren. Ohne ein zuverlässiges IDS-System haben Unternehmen eine größere Chance, Ziel von Cybercrime-Angriffen und erniedrigenden, oft kostspieligen Datenverletzungen zu werden.
Welche Angriffe kann Snort erkennen?
Snort wird verwendet, um die folgenden Scans und Cyberangriffe zu identifizieren, ist jedoch nicht darauf beschränkt:
-
Pufferüberlaufangriffe
-
Semantische URL-Angriffe
-
Angriffe auf die Common Gateway Interface (CGI)
-
Unsichtbare Port-Scans
-
Routing-Angriffe
-
Spoofing-Angriffe
-
Server Message Block-Abfragen
-
Versuche, den Fingerabdruck eines Betriebssystems zu erhalten
Kann Snort Zero-Day-Angriffe erkennen?
Ja. Eine Forschungsarbeit mit dem Titel "Signature Based Intrusion Detection for Zero-Day Attacks: (Not) A Closed Chapter?" von Hannes Holm vom Royal Institute of Technology (KTH), Schweden, zeigt, dass Snort in der Lage ist, Zero-Day-Angriffe zu erkennen. Die weit verbreitete Behauptung, dass signaturbasierte Netzwerk-Intrusionserkennungssysteme (SNIDS) Zero-Day-Angriffe nicht erkennen können, wurde nicht bestätigt. Diese Studie untersucht dieses Attribut, indem sie 356 schwere Angriffe gegen Snort bewertet, die mit veralteten offiziellen Regeln eingerichtet wurden. 183 dieser Angriffe sind Zero-Day-Exploits, während 173 theoretisch dem Regelwerk bekannt sind. Die Ergebnisse der Untersuchung zeigen, dass Snort Zero-Day-Exploits mit einer durchschnittlichen Erkennungsrate von 17% identifizieren kann. Der Gesamterkennungsprozentsatz für theoretisch bekannte Angriffe ist dennoch höher (durchschnittliche Erkennungsrate von 54%). Die Studie untersucht dann, wie Zero-Day-Schwachstellen gefunden werden, wie anfällig ihre Signaturen für Fehlalarme sind und wie leicht sie umgangen werden können. Diese Analysen implizieren, dass eine vernünftige Schätzung der Zero-Day-Erkennungsrate von Snort bei 8,2 % liegt.
Wie erkennt Snort Eindringlinge?
Snort überwacht den Netzwerkverkehr in Echtzeit und analysiert ihn mit der Misuse Detection Engine BASE. Snort analysiert die eingehenden und ausgehenden Daten des Pakets mit den Signaturen der in den Regeln angegebenen Eingaben.
Snort-Regeln ermöglichen es der Anwendung, eine Vielzahl von Operationen zur Eindringungserkennung auszuführen, einschließlich:
-
Überwachen des Netzwerkverkehrs: Nachdem der Datenverkehr aufgezeichnet wurde, wird Snort verwendet, um bösartige Pakete und Konfigurationsprobleme zu diagnostizieren.
-
Netzwerkanomalien erkennen: Mit Snort-Regeln können Netzwerkadministratoren ganz einfach zwischen normalem, erwarteten Internetverkehr und allem Ungewöhnlichen unterscheiden. Snort untersucht den Netzwerkverkehr in Echtzeit, um schädliche Aktivitäten zu erkennen, und informiert anschließend die Benutzer.
-
Durchführen von Packet Sniffing: Snort wird für das Packet Sniffing verwendet, das die Sammlung aller Daten ist, die innerhalb und außerhalb eines Netzwerks gesendet werden. Das Sammeln der einzelnen Pakete, die zwischen Netzwerkgeräten übertragen werden, bietet eine gründliche Untersuchung, wie der Datenverkehr übertragen wird.
-
Alarme generieren: Snort benachrichtigt Benutzer gemäß den in seiner Konfigurationsdatei festgelegten Regelaktionen. Um Warnungen zu erhalten, müssen Snort-Regeln Kriterien enthalten, die beschreiben, wann ein Paket als verdächtig oder bösartig angesehen werden sollte, die Risiken von ausgenutzten Schwachstellen und ob das Paket gegen die Sicherheitsrichtlinien der Organisation verstößt oder eine Gefahr für das Netzwerk darstellt.
-
Neue Standards erstellen: Snort erleichtert die Erstellung neuer Regeln innerhalb des Programms. Dies ermöglicht Netzwerkadministratoren, die Funktionsweise der Snort-Konvertierung und die auszuführenden Verfahren zu ändern. Zum Beispiel erstellen Benutzer neue Regeln, die Snort anweisen, Hintertürangriffe zu vermeiden, nach bestimmten Inhalten in Paketen zu suchen, Netzwerkstatistiken anzuzeigen, auszuwählen, welches Netzwerk überwacht werden soll, und Alarme an die Konsole zu veröffentlichen.
Ist Snort ein anomaliemusterbasiertes oder signaturbasiertes IDPS?
Snort verwendet sowohl anomali-basierte als auch signatur-basierte Inspektionsmethoden. SNORT verwendet eine regelbasierte Sprache, die Signatur-, Anomalie- und Protokollinspektionstechniken integriert, um potenziell schädliche Netzwerkaktivitäten zu identifizieren.
Nachdem sie heruntergeladen und konfiguriert wurden, werden die Snort-Regeln in zwei verschiedenen Sätzen bereitgestellt:
-
Snort Subscriber-Regelsatz: Cisco Talos ist verantwortlich für die Entwicklung, das Testen und die Genehmigung des Snort Subscriber Ruleset. Benutzer haben auf folgende Weise Zugang zum "Snort Subscriber Rule Set":
- Abonnenten: Abonnenten des Snort Subscriber Ruleset erhalten das Regelset, sobald es in Echtzeit für Cisco-Kunden verfügbar gemacht wird. Dieses Regelset ist unter den Namen "VRT-Regelset" und "Talos-Regelset" bekannt. Typischerweise wird dieses Regelwerk dienstags und donnerstags aktualisiert, obwohl es jederzeit geändert werden kann, um auf sich entwickelnde Risiken zu reagieren. Zum Zeitpunkt der Veröffentlichung beginnen 12-Monats-Mitgliedschaften bei 29 $ für die private Nutzung und 399 $ pro Sensor für die kommerzielle Nutzung. Persönliche Abonnements sind auf Studenten und Heimnetzwerk-Nutzer beschränkt. Geschäftsabonnements sind ideal für Unternehmen, Regierungsorganisationen, gemeinnützige Organisationen, Hochschulen usw., die Snort auf vielen Geräten installieren und ein großes Netzwerk sichern müssen.
- Registrierte Benutzer: Dieses Regelset steht auch Einzelpersonen und Organisationen kostenlos zur Verfügung. (however, Integrators may not use this ruleset). Unter der "eingeschränkten" Klausel der Snort Subscriber Rule License ist dieses Regelset 30 Tage hinter dem Snort Subscriber Rule Set und enthält keine Zero-Day-Bedrohungen. Das Community-Regelset ist in diesem Regelbuch enthalten. Wenn Sie kein Abonnent sind, wird empfohlen, sowohl das registrierte Regelset als auch das Community-Regelset zu verwenden. Typischerweise wird dieses Regelset dienstags und donnerstags geändert.
-
Gemeinschaftsregelsatz: Das Community-Regelsatz wird von der Snort-Community erstellt und seine Qualität wird von Cisco Talos sichergestellt. Es wird allen Benutzern kostenlos angeboten und ist unter der GPLv2 lizenziert. Die Autoren des Community-Regelsatzes sind in der AUTHORS-Datei aufgeführt, die im Tarball enthalten ist. Dieses Regelbuch ist ein Teil des Abonnementsregelwerks und wird täglich aktualisiert.
Cisco Systems aktualisiert regelmäßig neu gefundene Angriffsmuster in diesen Regelsets. Über die Website snort.org können Sie Regeln erhalten und diese in Ihrem Netzwerk implementieren. Kunden mit kostenpflichtigen Abonnements erhalten schneller Updates. Zusätzlich können Sie Ihre Kriterien festlegen, um die Erkennungsfähigkeiten des Systems zu verbessern.
Was sind Snort-Signaturen?
Eine Snort-Signatur ist jeder Erkennungsmechanismus, der von der Anwesenheit identifizierbarer Markierungen oder Merkmale in Exploits abhängt. Snort-Signaturen sollen bekannte Exploits identifizieren, da sie unverwechselbare Kennungen wie feste Offsets, Ego-Strings, Debugging-Informationen oder andere unterscheidende Kennungen enthalten, die mit der Ausnutzung einer Schwachstelle verbunden sind oder nicht.
Diese Art der Erkennung wird oft als "Tag-nach-Erkennung" kategorisiert, da echte öffentliche Exploits erforderlich sind, damit sie funktioniert. Diese Technik wird von Antivirenunternehmen verwendet, um ihre Kunden vor Virusausbrüchen zu schützen. Diese Art der Sicherheit ist ineffektiv, da der Virus bereits einen Benutzer infiziert hat, bevor Signaturen erstellt werden können.
Wie schreibt man Snort-Regeln?
Snort hat eine separate Menge von Regeln für jede Gruppe definierter Signaturen, die auf bestimmten Arten von Angriffen basieren. Snort-Regeln müssen in einer einzigen Zeile stehen. Es sei denn, das Mehrzeilenzeichen \
wird verwendet, werden Mehrzeilenregeln vom Snort-Parser nicht erkannt. Snort-Regeln sind in der Konfigurationsdatei snort.conf enthalten. Snort-Regeln haben die folgende Struktur:
-
Kopfzeile: Der Header enthält die Aktion der Regel, das Protokoll, die Quell- und Ziel-IP-Adressen sowie den Port. Es gibt an, "wer, wo und was zu tun ist" für die Pakete an.
-
Optionen: Dieser Abschnitt umfasst Warnungen und Informationen darüber, welche Teile der Pakete bewertet werden sollten, um festzustellen, ob die Aktionsregeln umgesetzt werden sollten. Dieser Teil wird nicht ausdrücklich von jeder Vorschrift benötigt.
Was sind die Snort-Regeltypen?
Es gibt fünf grundlegende Regeltypen in Snort:
- Alarmregeln: Snort erzeugt einen Alarm, wann immer es ein verdächtiges Paket erkennt.
- Blockregeln: Snort blockiert das fragwürdige Paket und alle Pakete, die im Netzwerkfluss folgen.
- Drop-Regeln: Snort verwirft das Paket, sobald der Alarm ausgelöst wird, gemäß den Ausschlusskriterien.
- Protokollierungsregeln: Snort protokolliert das Paket sofort, nachdem ein Alarm ausgelöst wurde.
- Pass-Regeln: Snort ignoriert das zweifelhafte Paket und markiert es als übergangen.
Was sind die Teile des Snort-Regel-Headers?
Ein Snort-Regel Header besteht aus den folgenden Teilen:
-
Aktionen: Sie repräsentiert die Aktion der Regel und kann die folgenden Werte annehmen:
- Alarm: erzeugt einen Alarm mit der gewählten Alarmtechnik und protokolliert dann das Paket.
- Protokoll: protokolliere das Paket
- Durchlassen: ignoriert das Paket
- Aktivieren: erstellt eine Warnung, wenn die Aktion ausgelöst wird
- Dynamisch: bleibt inaktiv, bis eine Aktion es aktiviert; dann funktioniert es als Protokoll
-
Protokoll: Es spezifiziert die folgenden Elemente, wenn das Paket TCP, UDP oder ICMP verwendet:
-
IP-Adressen: Snort fehlt eine Methode zur Bereitstellung der Hostnamen-Suche für IP-Adressfelder in der Regeldatei. Dieses Feld gibt die Quell- und Ziel-IP-Adressen des Pakets sowie den CIDR-Block an, der die verwendete Netzmaske angibt. Jede Adresse kann mit dem Schlüsselwort "any" angegeben werden. Insbesondere repräsentiert CIDR/24 ein Class-C-Netzwerk, /16 ein Class-B-Netzwerk und /32 eine spezifische Maschinenadresse. Zum Beispiel bezeichnet die src_ip/Maske-Kombination 192.168.1.0/24 den Bereich der IP-Adressen, der bei 192.168.1.1 beginnt und bei 192.168.1.255 endet.
-
Portnummer: Geben Sie die Quell- und Zielports jeweils im Dezimalformat an. Der ":"-Operator kann auch verwendet werden, um ein Intervall anzugeben. Bezüglich IP-Adressen und Ports bedeutet der Ausdruck "any", dass jeder Wert akzeptabel ist.
-
Richtungsoperator: Es zeigt die Reisrichtung (von Quelle zu Ziel), die entweder bidirektional (
<>
) oder in eine Richtung (->
) sein kann.
Die allgemeine Snort-Regel hat folgende Form:
aktion Protokoll Quellport -> Zielport (Optionen)
Abbildung 1. Grundstruktur einer Snort-Regel
Regeloptionen sind das Herzstück der Intrusion-Detection-Engine von Snort und vereinen Vielseitigkeit und Benutzerfreundlichkeit.
Alle Snort-Regeloptionen werden durch ein Semikolon voneinander getrennt. (;).
Regel-Options-Schlüsselwörter und ihre Argumente werden durch einen Doppelpunkt von ihren Argumenten getrennt. (:).
Was sind die allgemeinen Optionen in einer Snort-Regel?
Snort-Regel allgemeine Optionen sind unten aufgeführt:
-
Nachricht: Typischerweise liefert eine relevante Nachricht die Erkennungskriterien der Regel. Die Nachrichtenregel-Option weist Snort an, was gedruckt werden soll, wenn die Regel ausgelöst wird. Es ist eine grundlegende Wortgruppe.
-
Flow: Gibt die Richtung des Netzwerkverkehrs an, damit die Regel ausgeführt werden kann. Flow wird in Kombination mit der TCP-Stream-Zusammenführung verwendet. Es erlaubt, dass Einschränkungen nur auf bestimmte Verkehrsflussrichtungen angewendet werden.
-
Referenz: Der Referenzbegriff ermöglicht es Regeln, Verweise auf externe Informationsquellen einzuschließen.
-
Classtype: Das
classtype
-Schlüsselwort ist, wie Snort die Konsequenz einer Handlung im Falle eines erfolgreichen Angriffs kommuniziert. -
sid/rev: Jede Regel hat eine eindeutige Snort-ID. Diese Daten beziehen sich auf die Erleichterung der Identifizierung von Regeln durch Ausgabe-Plugins und sollten mit dem Schlüsselwort rev (Revision) verwendet werden.
Bemerkenswerterweise sind die meisten Optionen zwar optional, aber die SID (Snort ID) ist wesentlich und sollte nicht mit der SID einer anderen Regel kollidieren. Es ist die eindeutige Identität, die jeder Regel zugewiesen wird. Snort reserviert SIDs von 0 bis 1.000.000.
Was sind die Erkennungsoptionen in einer Snort-Regel?
Snort-Regel Erkennungsoptionen sind unten aufgeführt:
-
Inhalt: Diese Schlüssel-Funktion ermöglicht es dem Benutzer, Regeln zu definieren, die nach bestimmten Inhalten im Paket-Payload suchen und basierend auf diesen Daten eine Reaktion auslösen. Diese Optionsdaten können sowohl Text- als auch Binärinformationen enthalten.
-
distance/offset: Diese Schlüsselwörter geben dem Regelautor an, wo er relativ zum Beginn der Nutzlast oder dem Beginn eines Inhaltsübereinstimmungsbereichs mit der Suche beginnen soll.
-
within/tiefe: Diese Schlüsselwörter geben dem Regelautor an, wie weit im Voraus im Verhältnis zum Ende eines vorherigen Inhaltsübereinstimmung gesucht werden soll und wie weit zurück gesucht werden soll, nachdem diese Inhaltsübereinstimmung entdeckt wurde.
-
PCRE: Das PCRE-Schlüsselwort ermöglicht es, Regeln unter Verwendung von Perl-kompatiblen regulären Ausdrücken zu erstellen, wodurch komplizierte Übereinstimmungen im Gegensatz zu einfachen Inhaltsübereinstimmungen ermöglicht werden.
-
Byte-Test: Die Byte-Test-Option ermöglicht es einer Regel, mehrere Bytes mit einem gegebenen binären Wert zu vergleichen.
Abbildung 2. Snort-Regelstruktur
Was ist die Reihenfolge in einer Snort-Regel?
Snort-Regeln werden nicht in der Reihenfolge ausgewertet, in der sie in der Snort-Konfigurationsdatei auftreten. Die Standardreihenfolge ist:
-
Alarmregeln: Es erstellt eine Benachrichtigung mit der Alert-Methode.
-
Protokollregeln: Nachdem eine Warnung erstellt wurde, wird das Paket protokolliert.
-
Pass-Regeln: Das Paket wird ignoriert und verworfen.
Was sind Snort-Regelbeispiele?
Einige Snort-Regelbeispiele sind unten aufgeführt:
-
Snort warnt, wenn das Paket das Wort "Malware" enthält.
alert ip any any -> any any (sid:1000001;msg:"Word Malware found";content:"Malware";)
- alert: dies ermöglicht es uns, eine Warnung auszulösen, wenn eine Regel übereinstimmt.
- ip: dies ermöglicht es, Regeln gegen jedes Protokoll (TCP, UDP oder ICMP) zu überprüfen.
any any -> any any
: dies ermöglicht es, Regeln gegen jedes Protokoll zuzuordnen. beliebiger Quell-Host und -Port zu beliebigem Ziel-Host und -Port.- Sid:1000001;msg: "Word Malware gefunden": die Regel-ID und die Alarmnachricht.
Das einzigartige Merkmal dieser Regel ist die Optionsinhalts. Wie in der Snort-Dokumentation beschrieben, wird bei jeder Durchführung eines Inhaltsoption-Musterabgleichs die Boyer-Moore-Musterabgleichsfunktion aufgerufen und der (recht rechenintensive) Test gegen den Inhalt des Pakets durchgeführt. Wir suchen nur nach Malware mit einer Groß- und Kleinschreibung beachtenden Suche.
-
Snort benachrichtigt, wenn ein Paket von einer beliebigen Maschine, das eine britische Sozialversicherungsnummer enthält, an einen Webserver übertragen wird.
alert ip any any -> any http (sid:1000003;msg:"UK-Nationalversicherungsnummer gefunden";pcre:"/
Dieses Snort-Regelbeispiel veranschaulicht die Verwendung von Mengen in PCRE. Es basiert auf den Spezifikationen von NIM391110.
- ([A-CEGHJ-PR-TW-Z][A-CEGHJ-NPR-TW-Z]): Diese erste Erfassungsgruppe sucht nach ein paar Zeichen. Die ersten beiden Zeichen dürfen nicht aus den Buchstaben D, F, I, Q, U oder V bestehen. Das zweite Zeichen darf auch kein O sein.
- (\s[0-9])6:* Sucht nach einer Zahl zwischen 0 und 9 sechsmal und erlaubt null oder mehrere Leerzeichen (s*). Aufgrund der folgenden Gruppenbeschränkung, die entweder ein Leerzeichen oder ein Buchstabe ist, ist es wichtig, am Ende dieser Regel kein s* hinzuzufügen. Andernfalls könnten zusätzliche Leerzeichen nach der Regel zu einer fehlerhaften Übereinstimmung führen.
- ([A-D]|\s) : Ein Zeichen oder ein Leerzeichen zwischen A und D.
- i: Flag-Insensitive, Groß-/Kleinschreibung wird berücksichtigt (thus capital or lowercase characters for matching)
-
Snort protokolliert jedes UDP-Paket, das von überall zum 10.10.10.0/24-Netzwerk mit Zielportbereich 1-1024 kommt.
log udp any any -> 10.10.10.0/24 1:1024
Was sind die Schritte zur Installation und Konfiguration von Snort auf FreeBSD?
Sie können Snort 3 IDPS ganz einfach auf Ihrem FreeBSD 13-System installieren und konfigurieren, indem Sie die folgenden Schritte befolgen:
- Vorbereitung des FreeBSD 13 Systems
- Installation der erforderlichen Abhängigkeiten für Snort 3
- Installation der optionalen Abhängigkeiten von Snort 3
- Installation von Snort 3 aus dem Quellcode
- Installation von Snort 3 Extra-Plugins für zusätzliche Funktionen
Was sind die Schritte zur Installation und Konfiguration von Snort auf Linux?
Um Snort IDPS auf Ihrem Ubuntu Linux-Server zu installieren und zu konfigurieren, können Sie die folgenden Hauptschritte befolgen:
- Konfiguration der Netzwerkschnittstellen
- Konfiguration der Snort-Community- und lokalen Regelsets
- Installation von Snort OpenAppID
- Konfigurieren der Snort-Protokollierung
- Snort als Dienst ausführen
Was sind die Unterschiede zwischen Snort und Suricata?
Suricata hat eine bemerkenswerte Geschichte als Alternative zu Snort, da es 2009 in Beta-Form debütierte.
Suricata wurde von der Open Information Security Foundation ins Leben gerufen, um den Anforderungen moderner Infrastrukturen gerecht zu werden. (OISF). Suricata, ähnlich wie Snort, verfügt über IDS- und IPS-Funktionen sowie die Fähigkeit, große Mengen an Netzwerkverkehr zu überwachen, automatisierte Protokollerkennung, eine Skriptsprache und Unterstützung für branchenübliche Ausgabeformate.
Zusätzlich unterstützt Suricata Multithreading, was theoretisch die Verarbeitung von mehr Regeln über schnellere Netzwerke mit größeren Verkehrsvolumina auf derselben Hardware ermöglicht. Eine Instanz verteilt die Verarbeitungslast auf jeden Prozessor eines mit Suricata ausgestatteten Sensors, wodurch handelsübliche Hardware 10-Gigabit-Raten erreichen kann, ohne die Regelabdeckung zu verringern, da Suricata mehrkernfähig ist. Seit Snort 3, das im Januar 2021 veröffentlicht wurde, bietet Snort ebenfalls Multithreading-Fähigkeiten.
Suricata integriert sich mit der Skriptsprache Lua, die mehr Flexibilität beim Erstellen von Regeln ermöglicht. Damit Suricata Umstände erkennt, die mit einer herkömmlichen Snort-Regel schwer oder unmöglich zu erkennen wären. Dies ermöglicht es den Benutzern, Suricata an die komplexen Bedrohungen anzupassen, mit denen Unternehmen häufig konfrontiert sind.
Die Nachteile von Suricata umfassen, dass es schwieriger zu implementieren ist und die Community kleiner ist als die von Snort. Dies ändert sich jedoch.
Snort macht es äußerst einfach, Snort-Regeln zu entwickeln, die aufkommende Bedrohungen mithilfe frischer Bedrohungsintelligenz identifizieren.
Laut der Snort-Website basieren Regeln im Gegensatz zu Signaturen darauf, die tatsächliche Schwachstelle zu identifizieren, nicht einen Exploit oder ein einzigartiges Datenelement. Die Entwicklung einer Regel erfordert ein tiefes Verständnis dafür, wie die Schwachstelle tatsächlich funktioniert.
Snort hatte immer eine starke Beteiligung der Community, was zu einem robusten Regelwerk geführt hat, das oft aktualisiert wird. Die Syntax der Regeln ist relativ einfach, und die Struktur der Software ermöglicht es jedem, benutzerdefinierte Regeln in ihr IDS einzufügen oder sie mit der Community zu teilen.
Einige kommerzielle Unternehmen erstellen ebenfalls SNORT-Regeln, die gegen eine monatliche oder jährliche Gebühr erhältlich sind. Die SO/VRT-Regeln von Talos (nach einem Monat kostenlos verfügbar) und die Bedrohungsintelligenz-Dienste von CrowdStrike sind zwei Beispiele.
Suricata kann dieselben Regeln wie SNORT verwenden. Viele, aber nicht alle, VRT-Regeln bleiben in Kraft. Emerging Threats ist Suricatas eigenes Regelwerk, das zuvor nur zahlenden Mitgliedern zur Verfügung stand, jetzt aber nach 30 bis 60 Tagen öffentlich zugänglich ist. Diese Suricata-Regeln nutzen verstärkt die zusätzlichen Fähigkeiten von Suricata, wie die portunabhängige Protokollerkennung und die automatisierte Dateientdeckung und -extraktion.
Der weit verbreitete Einsatz von Snorts Technologie erleichtert die Entwicklung schneller Gegenmaßnahmen gegen neue Bedrohungen. Einen Tag nach der Ankündigung des Equifax-Hacks war beispielsweise eine Snort-Regel bereit, um die Schwachstelle im Kern zu überwachen.
Snort führte OpenAppID mit Version 2.9.7 im Jahr 2014 ein. OpenAppID ermöglicht es Layer 7 Detektoren, Apps zu identifizieren. Trotz der Tatsache, dass die Anwesenheit eines anerkannten Programms nicht unbedingt ein direktes Sicherheitsproblem darstellt (wie die Nutzung von Dropbox), ermöglicht es ein besseres Verständnis dessen, was im Netzwerk vorhanden ist. Durch die Zuordnung einer AppID zu einer konventionellen SNORT IDS/IPS-Regel können nicht nur zuvor unbekannte Apps entdeckt, sondern deren Datenverkehr auch abgelehnt oder markiert werden.
Suricata funktioniert in dieser Umgebung etwas anders. Es bietet Anwendungsprotokoll-Erkennungsregeln und kann beispielsweise HTTP- oder SSH-Verkehr auf nicht standardmäßigen Ports je nach Protokoll erkennen. Zusätzlich werden protokollspezifische Protokolleinstellungen auf diese Erkennungen angewendet.
Das Alter ist die Quelle von Snorts Nachteil. Snort ist zwanzig Jahre alt und wurde entwickelt, um auf alternder Infrastruktur zu arbeiten. Obwohl das Schreiben von Regeln relativ einfach ist, ist es schwierig geworden, sie an anspruchsvollere Bedrohungen und die Bedürfnisse von Hochgeschwindigkeitsnetzwerken anzupassen. Insbesondere hat IPv6 Probleme verursacht. Dank Snort 3, das im Januar 2021 veröffentlicht wurde, unterstützt es mehrere Threads für die Paketverarbeitung, was mehr RAM für die Paketverarbeitung freigibt.
Zuletzt hat Suricata eine Datei-Extraktionsfunktion, die es bei Snort nicht gibt. Suricata ermöglicht die Extraktion von Dateien. Diese sehr praktische Funktion ermöglicht die automatisierte Extraktion ausgewählter Dateien, wenn eine Regel mit der Option "filestore" aktiviert ist. Es ist möglich, zum Beispiel alle .pdf- und .png-Dateien mit einem einzigen Pixel zu extrahieren und in einem vordefinierten Ordner für zusätzliche manuelle Inspektion, VirusTotal-Abfragen oder sogar automatisches Sandboxing zu speichern.
Was ist der Unterschied zwischen Snort und Wireshark?
Wireshark, früher als Ethereal bekannt, ist der beliebteste Netzwerkprotokoll-Analyzer. Es läuft auf allen Plattformen, einschließlich UNIX, Linux, OS X und Windows, und hat eine effiziente Funktion. Regelmäßige Wireshark-Nutzer sind Sicherheitsspezialisten, Netzwerkprofis, Entwickler und Pädagogen. Es ist ein Open-Source-Packet-Sniffer-Tool, ähnlich wie Snort. Ein globales Team von Protokollspezialisten hat diese Anwendung entworfen und pflegt sie.
Wireshark ist ein kostenloser Packet Sniffer, der Funktionen wie Analyse, Netzwerkfehlerbehebung usw. bietet. Es wird verwendet, um Datenpakete anzuzeigen, zu erfassen und zu analysieren. WireShark ist ein sehr nützliches Werkzeug für Netzwerkmanager bei der Fehlersuche in Computernetzwerken. Es kann Daten vom LAN/WLAN sammeln und in dieses Format entschlüsseln, wodurch Administratoren die Gründe für schlechte Leistung und sporadische Konnektivität aufspüren können. Andererseits wird Snort zur Erkennung und Verhinderung von Netzwerkangriffen verwendet, indem es festgelegte Regeln anwendet und das Netzwerk-Sicherheitsteam durch Alarmmeldungen informiert. Wireshark hat keinen Mechanismus, um Anomalien im Netzwerk automatisch zu erkennen und die Administratoren zu benachrichtigen.
Was ist die Geschichte von Snort?
Martin Roesch erstellte die erste Version von Snort im Jahr 1998. Im Jahr 2001 gründete er ein technisches Startup namens Sourcefire. Er übernahm die Rolle des Chief Technology Officer bei dem von ihm gegründeten Unternehmen.
Es wurde als leichtgewichtiges Intrusion-Detection-System vermarktet, das hauptsächlich auf Unix- und Unix-ähnlichen Betriebssystemen lief. Jetzt umfasst es mehr Funktionen und kann kaum noch als leichtgewichtig bezeichnet werden. In der Programmiersprache C geschrieben, gewann Snort schnell an Popularität, da Sicherheitsexperten von seiner Konfigurationsgranularität angezogen wurden. Die Einführung von Snort wurde als bahnbrechend angesehen. Es wurde bald zum De-facto-Standard für Netzwerkeindringungserkennungssysteme.
Check Point Software beabsichtigte, Sourcefire im Jahr 2005 für 225 Millionen Dollar zu kaufen, zog jedoch sein Angebot zurück, als deutlich wurde, dass die US-Behörden den Deal verbieten würden.
Das Unternehmen führte im März 2007 sein erstes öffentliches Angebot durch und erzielte dabei 86,3 Millionen Dollar. Der Erwerb von Clam Antivirus durch Sourcefire fand im August desselben Jahres statt. Im Mai 2008 lehnte Sourcefire ein Angebot über 187 Millionen US-Dollar von dem Sicherheitsgeräteanbieter Barracuda Networks ab, der vorgeschlagen hatte, 7,50 US-Dollar pro Aktie zu zahlen, was einem Aufschlag von 13 % auf den damaligen Aktienkurs entsprach.
Sourcefire erhielt 2009 den "Reader Trust"-Preis von SC Magazine für das beste Intrusion Detection and Prevention System (IDS/IPS) für Snort. Im Gartner Magic Quadrant Wettbewerb 2012 für Intrusion Detection und Prevention System Appliances wurde das Unternehmen im "Leaders"-Quadranten eingestuft. NSS Labs empfahl Sourcefire im Jahr 2012 für die schnellste und genaueste IPS-Erkennung.
2013 markierte den Beginn einer neuen Ära für Snort und Sourcefire im Allgemeinen, da sie nun für 2,7 Milliarden von Cisco Systems übernommen wurden. Mehrere Versionen von Snort wurden veröffentlicht, und ab 2005 beinhalteten die Versionen einen selbstoptimierenden Motor. Dieser selbstoptimierende Motor wurde entwickelt, um die Effizienz zu maximieren und gleichzeitig Ungenauigkeiten zu minimieren.