Regras de detecção é o lar das regras usadas pelo Elastic Security. Este repositório é usado para desenvolvimento, manutenção, teste, validação e liberação de regras para o Detection Engine do Elastic Security.
Este repositório foi anunciado pela primeira vez na postagem do blog da Elastic, Elastic Security abre repositório público de regras de detecção. Para obter conteúdo adicional, consulte o webinar que acompanha, Elastic Security: Apresentando o repositório público para regras de detecção.
Regras de detecção
Índice
Visão geral deste repositório
Começando
Como contribuir
Licenciamento
Questões? Problemas? Sugestões?
As regras de detecção contêm mais do que apenas arquivos de regras estáticas. Este repositório também contém código para teste de unidade em Python e integração com o Detection Engine em Kibana.
pasta | descrição |
---|---|
detection_rules/ | Módulo Python para análise, validação e empacotamento de regras |
etc/ | Arquivos diversos, como esquemas ECS e Beats |
hunting/ | Diretório raiz onde o pacote de caça a ameaças e as consultas são armazenados |
kibana/ | Biblioteca Python para lidar com chamadas de API para Kibana e o mecanismo de detecção |
kql/ | Biblioteca Python para analisar e validar Kibana Query Language |
rta/ | Código Red Team Automation usado para emular técnicas de invasores, usado para teste de regras |
rules/ | Diretório raiz onde as regras são armazenadas |
rules_building_block/ | Diretório raiz onde as regras de blocos de construção são armazenadas |
tests/ | Código Python para regras de teste de unidade |
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 testes unitários. Supondo que você tenha Python 3.12+, execute o comando abaixo para instalar as dependências usando o makefile:
✗ makepython3.12 -m pip install --upgrade pip setuptoolsOlhando nos índices: https://pypi.org/simpleRequisito já satisfeito: pip in /opt/homebrew/lib/python3.12/site-packages (24.0)Requisito já satisfeito : ferramentas de configuração em /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 setuptoolsOlhando nos índices: https://pypi.org/ simpleRequirement já satisfeito: pip in ./env/detection-rules-build/lib/python3.12/site-packages (24.0) Coletando setuptools Usando setuptools em cache-69.1.1-py3-none-any.whl.metadata (6,2 kB)Usando setuptools em cache-69.1.1-py3-none-any.whl (819 kB)Instalando pacotes coletados: setuptools Setuptools-69.1 instalado com sucesso .1Instalando pacotes kql e kibana......
Ou instale as dependências usando o seguinte comando:
$ pip3 install ".[dev]"Coletando jsl==0.2.4 Baixando jsl-0.2.4.tar.gz (21 kB)Coletando jsonschema==3.2.0 Baixando jsonschema-3.2.0-py2.py3-none- qualquer.whl (56 kB) |████████████████████████████████| 56 kB 318 kB/sColetando solicitações==2.22.0 Fazendo download de solicitações-2.22.0-py2.py3-none-any.whl (57 kB) |████████████████████████████████| 57 kB 1,2 MB/s Coletando Click==7,0 Baixando Click-7.0-py2.py3-none-any.whl (81 kB) |████████████████████████████████| 81 kB 2,6 MB/s...
Nota: Os pacotes kibana
e kql
não estão disponíveis no PyPI e devem ser instalados no diretório lib
. O pacote hunting
possui dependências opcionais para serem instaladas com pip3 install ".[hunting]
.
# Instale a partir do repositóriopip3 instale git+https://github.com/elastic/detection-rules.git#subdirectory=kibanapip3 instale git+https://github.com/elastic/detection-rules.git#subdirectory=kql# Ou localmente para desenvolvimentopip3 instale lib/kibana lib/kql
Lembre-se, certifique-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 ao usar um ambiente Python 3.12, consulte a seção relevante em nosso guia de solução de problemas.
Para confirmar se tudo foi instalado corretamente, execute o sinalizador --help
$ python -m detecção_rules --helpUsage: detecção_rules [OPÇÕES] COMANDO [ARGS]... Comandos para repositório de regras de detecção. Opções: -d, --debug / -n, --no-debug Imprimir rastreamento de pilha de exceção completo em erros -h, --help Mostre esta mensagem e saia.Comandos: create-rule Crie uma regra de detecção. dev Comandos para desenvolvimento e gerenciamento interno... es Comandos para integração com Elasticsearch. import-rules Importa regras de json, toml ou Kibana regra exportada... kibana Comandos para integração com Kibana. atualização em massa Atualize várias regras com base nos resultados eql. normalize-data Normalize os registros de data e hora dos dados do Elasticsearch e classifique. pesquisa de regras Use KQL ou EQL para encontrar regras correspondentes. test Execute testes de unidade em todas as regras. toml-lint Arquivos de limpeza com alguma formatação toml simples. validar-tudo Verifique se todas as regras são validadas em um esquema. Validate-rule Verifica se uma regra preparada no diretório de regras é validada em relação a... view-rule Visualiza uma regra interna ou um arquivo de regra especificado.
Observação:
Se você estiver usando um ambiente virtual, certifique-se de ativá-lo antes de executar o comando acima.
Se estiver usando o Windows, talvez seja necessário executar também
dependendo da sua versão do python.
O guia de contribuição descreve como usar os comandos create-rule
e test
para criar e testar uma nova regra ao contribuir para Regras de Detecção.
Para um uso mais avançado da interface de linha de comando (CLI), consulte o guia CLI.
Agradecemos suas contribuições para as Regras de Detecção! Antes de contribuir, familiarize-se com este repositório, sua estrutura de diretórios e nossa filosofia sobre criação de regras. Quando estiver pronto para contribuir, leia o guia de contribuição para saber como transformamos ideias de detecção em regras de produção e validamos com testes.
Tudo neste repositório — regras, código, RTA, etc. — é licenciado sob a Elastic License v2. Essas regras foram projetadas para serem usadas no contexto do Detection Engine na aplicação Elastic Security. Se estiver usando nosso serviço gerenciado Elastic Cloud ou a distribuição padrão do software Elastic Stack que inclui o conjunto completo de recursos gratuitos, você receberá as regras mais recentes na primeira vez que navegar até o mecanismo de detecção.
Ocasionalmente, podemos querer importar regras de outro repositório que já possui uma licença, como MIT ou Apache 2.0. Isso é bem-vindo, desde que a licença permita o sublicenciamento sob a Elastic License v2. Mantemos esses avisos de licença em NOTICE.txt
e sublicenciamos como Elastic License v2 com todas as outras regras. Também exigimos que os contribuidores assinem um Contrato de Licença de Colaborador antes de contribuir com código para qualquer repositório Elastic.
Quer saber mais sobre o Mecanismo de Detecção? Confira a visão geral em Kibana.
Este repositório inclui regras novas e atualizadas que ainda não foram lançadas. Para ver o conjunto de regras mais recente lançado com a pilha, consulte a referência de regras pré-construídas.
Se você quiser relatar um falso positivo ou outro tipo de bug, crie um problema no GitHub e verifique primeiro se existe um.
Precisa de ajuda com Regras de detecção? Publique um problema ou pergunte em nosso Fórum de discussão sobre segurança ou no canal #security-detection-rules no espaço de trabalho do Slack.