
detection-rules dev-v2.2.0
Développez, validez et publiez des règles de détection SIEM pour Elastic Security, avec un outillage CLI Python, l'analyse KQL, l'intégration Kibana et des requêtes packagées de chasse aux menaces.
Detection Rules
Detection Rules est le référentiel des règles utilisées par Elastic Security. Ce dépôt est utilisé pour le développement, la maintenance, les tests, la validation et la publication des règles du moteur de détection d'Elastic Security.
Ce dépôt a été annoncé pour la première fois dans l'article de blog d'Elastic, Elastic Security ouvre un dépôt public de règles de détection. Pour plus de contenu, voir le webinaire qui l'accompagne, Elastic Security : présentation du dépôt public des règles de détection.
Table des matières
Vue d'ensemble de ce dépôt
Detection Rules ne contient pas uniquement des fichiers de règles statiques. Ce dépôt contient également du code pour construire des pipelines Detections-as-code, pour les tests unitaires en Python et pour l'intégration avec le moteur de détection dans Kibana.
| folder | description |
|---|---|
detection_rules/ | Module Python pour l'analyse, la validation et l'empaquetage des règles |
etc/ | Fichiers divers, tels que les schémas ECS et Beats et les fichiers de configuration |
hunting/ | Répertoire racine où sont stockés le package et les requêtes de threat hunting |
kibana/ | Bibliothèque Python pour gérer les appels API vers Kibana et le moteur de détection |
kql/ | Bibliothèque Python pour analyser et valider le Kibana Query Language |
rules/ | Répertoire racine où sont stockées les règles |
rules_building_block/ | Répertoire racine où sont stockées les règles de type building block |
tests/ | Code Python pour les tests unitaires des règles |
Pour commencer
Bien que des règles puissent être ajoutées en créant manuellement des fichiers .toml, nous ne le recommandons pas. Ce dépôt contient également un module Python qui facilite la création de règles et les tests unitaires. Si vous disposez de Python 3.12+, exécutez la commande ci-dessous pour installer les dépendances à l'aide du makefile :
✗ 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...
...
Ou installez les dépendances à l'aide de la commande suivante :
$ 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
...
Remarque : les packages kibana et kql ne sont pas disponibles sur PyPI et doivent être installés depuis le répertoire lib. Le package hunting possède des dépendances optionnelles à installer avec pip3 install ".[hunting].
# 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
N'oubliez pas d'activer votre environnement virtuel si vous en utilisez un. Si vous avez installé via make, l'environnement virtuel associé est créé dans env/detection-rules-build/. Si vous rencontrez des difficultés avec un environnement Python 3.12, consultez la section correspondante de notre guide de dépannage.
Pour confirmer que tout a été correctement installé, exécutez la commande avec l'option --help
$ 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.