Erkennungsregeln sind die Heimat der von Elastic Security verwendeten Regeln. Dieses Repository wird für die Entwicklung, Wartung, Prüfung, Validierung und Veröffentlichung von Regeln für die Detection Engine von Elastic Security verwendet.
Dieses Repository wurde erstmals im Elastic-Blogbeitrag „Elastic Security öffnet öffentliches Erkennungsregel-Repository“ angekündigt. Weitere Inhalte finden Sie im begleitenden Webinar „Elastic Security: Einführung in das öffentliche Repository für Erkennungsregeln“.
Erkennungsregeln
Inhaltsverzeichnis
Übersicht über dieses Repository
Erste Schritte
So können Sie einen Beitrag leisten
Lizenzierung
Fragen? Probleme? Vorschläge?
Erkennungsregeln enthalten mehr als nur statische Regeldateien. Dieses Repository enthält auch Code für Unit-Tests in Python und die Integration mit der Detection Engine in Kibana.
Ordner | Beschreibung |
---|---|
detection_rules/ | Python-Modul zum Analysieren, Validieren und Verpacken von Regeln |
etc/ | Verschiedene Dateien, z. B. ECS- und Beats-Schemata |
hunting/ | Stammverzeichnis, in dem Threat-Hunting-Pakete und -Abfragen gespeichert werden |
kibana/ | Python-Bibliothek zur Verarbeitung der API-Aufrufe an Kibana und die Detection Engine |
kql/ | Python-Bibliothek zum Parsen und Validieren der Kibana Query Language |
rta/ | Red Team Automation-Code zur Emulation von Angreifertechniken, der zum Testen von Regeln verwendet wird |
rules/ | Stammverzeichnis, in dem Regeln gespeichert werden |
rules_building_block/ | Stammverzeichnis, in dem Bausteinregeln gespeichert sind |
tests/ | Python-Code für Unit-Test-Regeln |
Obwohl Regeln durch manuelles Erstellen .toml
Dateien hinzugefügt werden können, empfehlen wir dies nicht. Dieses Repository besteht außerdem aus einem Python-Modul, das die Regelerstellung und Unit-Tests unterstützt. Vorausgesetzt, Sie haben Python 3.12+, führen Sie den folgenden Befehl aus, um die Abhängigkeiten mithilfe des Makefiles zu installieren:
✗ makepython3.12 -m pip install --upgrade pip setuptoolsIn Indizes suchen: https://pypi.org/simpleAnforderung bereits erfüllt: pip in /opt/homebrew/lib/python3.12/site-packages (24.0)Anforderung bereits erfüllt : setuptools in /opt/homebrew/lib/python3.12/site-packages (69.1.1)python3.12 -m venv ./env/detection-rules-build./env/detection-rules-build/bin/pip install --upgrade pip setuptoolsIn Indizes suchen: https://pypi.org/ simpleRequirement bereits erfüllt: pip in ./env/detection-rules-build/lib/python3.12/site-packages (24.0)Sammeln von Setuptools unter Verwendung zwischengespeicherter Setuptools-69.1.1-py3-none-any.whl.metadata (6,2 kB) unter Verwendung zwischengespeicherter Setuptools-69.1.1-py3-none-any.whl (819 kB)Gesammelte Pakete werden installiert: setuptoolsErfolgreich installierte setuptools-69.1.1Installieren von kql- und kibana-Paketen......
Oder installieren Sie die Abhängigkeiten mit dem folgenden Befehl:
$ pip3 install ".[dev]"Sammeln von jsl==0.2.4 Herunterladen von jsl-0.2.4.tar.gz (21 kB)Sammeln von jsonschema==3.2.0 Herunterladen von jsonschema-3.2.0-py2.py3-none- any.whl (56 kB) |████████████████████████████████| 56 kB 318 kB/sAnfragen sammeln==2.22.0 Anfragen herunterladen-2.22.0-py2.py3-none-any.whl (57 kB) |████████████████████████████████| 57 kB 1,2 MB/sCollecting Click==7.0 Download Click-7.0-py2.py3-none-any.whl (81 kB) |████████████████████████████████| 81 kB 2,6 MB/s...
Hinweis: Die Pakete kibana
und kql
sind auf PyPI nicht verfügbar und müssen aus dem lib
-Verzeichnis installiert werden. Das hunting
-Paket verfügt über optionale Abhängigkeiten, die mit pip3 install ".[hunting]
installiert werden müssen.
# Aus dem Repository installierenpip3 install git+https://github.com/elastic/detection-rules.git#subdirectory=kibanapip3 install git+https://github.com/elastic/detection-rules.git#subdirectory=kql# Oder lokal für developmentpip3 installieren Sie lib/kibana lib/kql
Denken Sie daran, Ihre virtuelle Umgebung zu aktivieren, falls Sie eine verwenden. Bei der Installation über make
wird die zugehörige virtuelle Umgebung in env/detection-rules-build/
erstellt. Wenn Sie Probleme bei der Verwendung einer Python 3.12-Umgebung haben, lesen Sie bitte den entsprechenden Abschnitt in unserem Leitfaden zur Fehlerbehebung.
Um zu bestätigen, dass alles ordnungsgemäß installiert wurde, führen Sie es mit dem Flag --help
aus
$ python -m Erkennungsregeln --helpUsage: Erkennungsregeln [OPTIONEN] BEFEHL [ARGS]... Befehle für das Erkennungsregel-Repository. Optionen: -d, --debug / -n, --no-debug Vollständigen Ausnahme-Stacktrace bei Fehlern ausgeben -h, --help Diese Nachricht anzeigen und beenden. Befehle: create-rule Erstellen Sie eine Erkennungsregel. dev Befehle für die Entwicklung und Verwaltung durch interne... es Befehle für die Integration mit Elasticsearch. import-rules Importieren Sie Regeln aus JSON, TOML oder Kibana. Exportierte Regel... kibana-Befehle für die Integration mit Kibana. mass-update Mehrere Regeln basierend auf eql-Ergebnissen aktualisieren. normalize-data Normalisiert die Zeitstempel und Sortierung der Elasticsearch-Daten. Regelsuche Verwenden Sie KQL oder EQL, um passende Regeln zu finden. test Führen Sie Komponententests für alle Regeln durch. toml-lint Bereinigt Dateien mit einfacher Toml-Formatierung. validate-all Prüft, ob alle Regeln anhand eines Schemas validiert werden. validate-rule Prüft, ob eine im Regelverzeichnis bereitgestellte Regel anhand einer... view-rule validiert wird. Zeigt eine interne Regel oder eine angegebene Regeldatei an.
Notiz:
Wenn Sie eine virtuelle Umgebung verwenden, stellen Sie sicher, dass Sie diese aktivieren, bevor Sie den obigen Befehl ausführen.
Wenn Sie Windows verwenden, müssen Sie je nach Python-Version möglicherweise auch <venv_directory>Scriptspywin32_postinstall.py -install
ausführen.
Im Beitragsleitfaden wird beschrieben, wie Sie mit den Befehlen create-rule
und test
eine neue Regel erstellen und testen, wenn Sie zu Erkennungsregeln beitragen.
Informationen zur erweiterten Verwendung der Befehlszeilenschnittstelle (CLI) finden Sie im CLI-Handbuch.
Wir freuen uns über Ihre Beiträge zu Erkennungsregeln! Bevor Sie einen Beitrag leisten, machen Sie sich bitte mit diesem Repository, seiner Verzeichnisstruktur und unserer Philosophie zur Regelerstellung vertraut. Wenn Sie bereit sind, einen Beitrag zu leisten, lesen Sie den Beitragsleitfaden, um zu erfahren, wie wir Erkennungsideen in Produktionsregeln umwandeln und durch Tests validieren.
Alles in diesem Repository – Regeln, Code, RTA usw. – ist unter der Elastic License v2 lizenziert. Diese Regeln sind für die Verwendung im Kontext der Detection Engine innerhalb der Elastic Security-Anwendung konzipiert. Wenn Sie unseren verwalteten Elastic Cloud-Service oder die Standardverteilung der Elastic Stack-Software verwenden, die alle kostenlosen Funktionen umfasst, erhalten Sie die neuesten Regeln, wenn Sie zum ersten Mal zur Erkennungs-Engine navigieren.
Gelegentlich möchten wir möglicherweise Regeln aus einem anderen Repository importieren, für das bereits eine Lizenz vorhanden ist, z. B. MIT oder Apache 2.0. Dies ist willkommen, sofern die Lizenz eine Unterlizenzierung unter der Elastic License v2 zulässt. Wir behalten diese Lizenzhinweise in NOTICE.txt
und unterlizenzieren sie als Elastic License v2 mit allen anderen Regeln. Wir verlangen außerdem von Mitwirkenden, dass sie eine Mitwirkenden-Lizenzvereinbarung unterzeichnen, bevor sie Code zu Elastic-Repositorys beisteuern.
Möchten Sie mehr über die Detection Engine erfahren? Schauen Sie sich die Übersicht in Kibana an.
Dieses Repository enthält neue und aktualisierte Regeln, die noch nicht veröffentlicht wurden. Informationen zum neuesten Regelsatz, der mit dem Stack veröffentlicht wurde, finden Sie in der Referenz zu vorgefertigten Regeln.
Wenn Sie ein falsch positives Ergebnis oder einen anderen Fehlertyp melden möchten, erstellen Sie bitte ein GitHub-Problem und prüfen Sie zunächst, ob ein Problem vorhanden ist.
Benötigen Sie Hilfe bei Erkennungsregeln? Veröffentlichen Sie ein Problem oder stellen Sie eine Frage in unserem Sicherheitsdiskussionsforum oder im Kanal #security-detection-rules im Slack-Workspace.