
detection-rules dev-v2.2.0
Desenvolva, valide e publique regras de detecção SIEM para o Elastic Security, com ferramentas de CLI em Python, análise de KQL, integração com Kibana e consultas de threat hunting empacotadas.
Detection Rules
Detection Rules é o lar das regras usadas pelo Elastic Security. Este repositório é usado para o desenvolvimento, manutenção, testes, validação e lançamento de regras para o Detection Engine do Elastic Security.
Este repositório foi anunciado pela primeira vez no blog da Elastic, Elastic Security abre repositório público de regras de detecção. Para conteúdo adicional, consulte o webinar complementar, Elastic Security: apresentando o repositório público para regras de detecção.
Índice
Visão geral deste repositório
Detection Rules contém mais do que apenas arquivos de regras estáticos. Este repositório também contém código para construir pipelines de detecções como código, testes unitários em Python e integração com o Detection Engine no Kibana.
| pasta | descrição |
|---|---|
detection_rules/ | Módulo Python para análise, validação e empacotamento de regras |
etc/ | Arquivos diversos, como esquemas e arquivos de configuração do ECS e Beats |
hunting/ | Diretório raiz onde o pacote e as consultas de threat hunting são armazenados |
kibana/ | Biblioteca Python para lidar com chamadas de API para o Kibana e o Detection Engine |
kql/ | Biblioteca Python para analisar e validar a Kibana Query Language |
rules/ | Diretório raiz onde as regras são armazenadas |
rules_building_block/ | Diretório raiz onde as regras de building block são armazenadas |
tests/ | Código Python para testes unitários das regras |
Começando
Embora as regras possam ser adicionadas criando manualmente arquivos .toml, não recomendamos isso. Este repositório também consiste em um módulo Python que auxilia na criação de regras e nos testes unitários. Supondo que você tenha Python 3.12+, execute o comando abaixo para instalar as dependências usando o 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 instale as dependências usando o seguinte 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
...
Observação: os pacotes kibana e kql não estão disponíveis no PyPI e devem ser instalados a partir do diretório lib. O pacote hunting tem dependências opcionais a serem instaladas com pip3 install ".[hunting]".
# Instale a partir do repositório
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
# Ou localmente para desenvolvimento
pip3 install lib/kibana lib/kql
Lembre-se de ativar seu ambiente virtual, se estiver usando um. Se instalado via make, o ambiente virtual associado é criado em env/detection-rules-build/.
Se você estiver tendo problemas com um ambiente Python 3.12, consulte a seção relevante no nosso guia de solução de problemas.
Para confirmar se tudo foi instalado corretamente, execute com a flag --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.