
detection-rules dev-v2.2.0
Desarrolla, valida y publica reglas de detección SIEM para Elastic Security, con herramientas CLI de Python, parseo de KQL, integración con Kibana y consultas de threat hunting empaquetadas.
Reglas de detección
Detection Rules es el hogar de las reglas utilizadas por Elastic Security. Este repositorio se utiliza para el desarrollo, mantenimiento, pruebas, validación y publicación de reglas para el Motor de Detección de Elastic Security.
Este repositorio se anunció por primera vez en la publicación del blog de Elastic, Elastic Security abre un repositorio público de reglas de detección. Para contenido adicional, consulte el seminario web que lo acompaña, Elastic Security: Presentación del repositorio público de reglas de detección.
Tabla de contenidos
Resumen de este repositorio
Detection Rules contiene más que simples archivos de reglas estáticas. Este repositorio también contiene código para crear canalizaciones de detección como código, pruebas unitarias en Python e integración con el Motor de Detección en Kibana.
| folder | description |
|---|---|
detection_rules/ | Módulo de Python para el análisis, validación y empaquetado de reglas |
etc/ | Archivos diversos, como esquemas de ECS y Beats, y archivos de configuración |
hunting/ | Directorio raíz donde se almacenan el paquete y las consultas de caza de amenazas |
kibana/ | Biblioteca de Python para manejar las llamadas API a Kibana y al Motor de Detección |
kql/ | Biblioteca de Python para analizar y validar el Lenguaje de Consulta de Kibana |
rules/ | Directorio raíz donde se almacenan las reglas |
rules_building_block/ | Directorio raíz donde se almacenan las reglas de bloques de construcción |
tests/ | Código de Python para pruebas unitarias de reglas |
Primeros pasos
Aunque las reglas se pueden agregar creando manualmente archivos .toml, no lo recomendamos. Este repositorio también consta de un módulo de Python que ayuda en la creación de reglas y las pruebas unitarias. Suponiendo que tenga Python 3.12+, ejecute el siguiente comando para instalar las dependencias usando el 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...
...
O instale las dependencias usando el siguiente comando:
$ 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
...
Nota: Los paquetes kibana y kql no están disponibles en PyPI y deben instalarse desde el directorio lib. El paquete hunting tiene dependencias opcionales que se instalan con 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
Recuerde asegurarse de activar su entorno virtual si está usando uno. Si instaló mediante make, el entorno virtual asociado se crea en env/detection-rules-build/. Si tiene problemas con un entorno Python 3.12, consulte la sección correspondiente en nuestra guía de solución de problemas.
Para confirmar que todo se instaló correctamente, ejecute con la opción --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.