
detection-rules dev-v2.2.0
Entwickeln, validieren und veröffentlichen Sie SIEM-Erkennungsregeln für Elastic Security, mit Python-CLI-Tooling, KQL-Parsing, Kibana-Integration und gebündelten Threat-Hunting-Abfragen.
Detection Rules
Detection Rules ist die Heimat der Regeln, die von Elastic Security verwendet werden. Dieses Repository wird für die Entwicklung, Pflege, das Testen, die Validierung und die Veröffentlichung von Regeln für die Detection Engine von Elastic Security genutzt.
Dieses Repository wurde erstmals im Blog-Beitrag von Elastic angekündigt: Elastic Security opens public detection rules repo. Zusätzliche Inhalte finden Sie im begleitenden Webinar Elastic Security: Introducing the public repository for detection rules.
Table of Contents
Overview of this repository
Detection Rules enthält mehr als nur statische Regelsatzdateien. Dieses Repository enthält auch Code für den Aufbau von Detections-as-Code-Pipelines, Unit-Tests in Python und die Integration mit der Detection Engine in Kibana.
| Ordner | Beschreibung |
|---|---|
detection_rules/ | Python-Modul zum Parsen, Validieren und Paketieren von Regeln |
etc/ | Verschiedene Dateien, wie ECS- und Beats-Schemata sowie Konfigurationsdateien |
hunting/ | Root-Verzeichnis, in dem Threat-Hunting-Pakete und Abfragen gespeichert werden |
kibana/ | Python-Bibliothek für die Behandlung von API-Aufrufen an Kibana und die Detection Engine |
kql/ | Python-Bibliothek zum Parsen und Validieren der Kibana Query Language |
rules/ | Root-Verzeichnis, in dem Regeln gespeichert werden |
rules_building_block/ | Root-Verzeichnis, in dem Building-Block-Regeln gespeichert werden |
tests/ | Python-Code für Unit-Tests der Regeln |
Getting started
Auch wenn Regeln durch manuelles Erstellen von .toml-Dateien hinzugefügt werden können, empfehlen wir dies nicht. Dieses Repository enthält außerdem ein Python-Modul, das die Erstellung von Regeln 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:
✗ make
python3.12 -m pip install --upgrade pip setuptools
Looking in indexes: https://pypi.org/simple
Requirement already satisfied: pip in /opt/homebrew/lib/python3.12/site-packages (24.0)
Requirement already satisfied: 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 setuptools
Looking in indexes: https://pypi.org/simple
Requirement already satisfied: pip in ./env/detection-rules-build/lib/python3.12/site-packages (24.0)
Collecting setuptools
Using cached setuptools-69.1.1-py3-none-any.whl.metadata (6.2 kB)
Using cached setuptools-69.1.1-py3-none-any.whl (819 kB)
Installing collected packages: setuptools
Successfully installed setuptools-69.1.1
Installing kql and kibana packages...
...
Oder installieren Sie die Abhängigkeiten mit dem folgenden Befehl:
$ pip3 install ".[dev]"
Collecting jsl==0.2.4
Downloading jsl-0.2.4.tar.gz (21 kB)
Collecting jsonschema==3.2.0
Downloading jsonschema-3.2.0-py2.py3-none-any.whl (56 kB)
|████████████████████████████████| 56 kB 318 kB/s
Collecting requests==2.22.0
Downloading requests-2.22.0-py2.py3-none-any.whl (57 kB)
|████████████████████████████████| 57 kB 1.2 MB/s
Collecting Click==7.0
Downloading Click-7.0-py2.py3-none-any.whl (81 kB)
|████████████████████████████████| 81 kB 2.6 MB/s
...
Hinweis: Die Pakete kibana und kql sind nicht auf PyPI verfügbar und müssen aus dem Verzeichnis lib installiert werden. Das Paket hunting hat optionale Abhängigkeiten, die mit pip3 install ".[hunting]" installiert werden.
# Install from the repository
pip3 install git+https://github.com/elastic/detection-rules.git#subdirectory=lib/kibana
pip3 install git+https://github.com/elastic/detection-rules.git#subdirectory=lib/kql
# Or locally for development
pip3 install lib/kibana lib/kql
Denken Sie daran, Ihre virtuelle Umgebung zu aktivieren, falls Sie eine verwenden. Wenn Sie die Installation über make durchgeführt haben, wird die zugehörige virtuelle Umgebung unter env/detection-rules-build/ erstellt.
Wenn Sie Probleme mit einer Python-3.12-Umgebung haben, lesen Sie bitte den entsprechenden Abschnitt in unserem Troubleshooting-Leitfaden.
Um zu bestätigen, dass alles ordnungsgemäß installiert wurde, führen Sie den Befehl mit dem Flag --help aus:
$ python -m detection_rules --help
Usage: detection_rules [OPTIONS] COMMAND [ARGS]...
Commands for detection-rules repository.
Options:
-D, --debug / -N, --no-debug Print full exception stacktrace on errors
-h, --help Show this message and exit.