Правила обнаружения — это дом для правил, используемых Elastic Security. Этот репозиторий используется для разработки, обслуживания, тестирования, проверки и выпуска правил для механизма обнаружения Elastic Security.
Об этом репозитории впервые было объявлено в блоге Elastic: Elastic Security открывает репозиторий общедоступных правил обнаружения. Дополнительную информацию см. в соответствующем вебинаре «Эластичная безопасность: введение в общедоступный репозиторий для правил обнаружения».
Правила обнаружения
Оглавление
Обзор этого репозитория
Начиная
Как внести свой вклад
Лицензирование
Вопросы? Проблемы? Предложения?
Правила обнаружения содержат больше, чем просто файлы статических правил. Этот репозиторий также содержит код для модульного тестирования на Python и интеграции с механизмом обнаружения в Kibana.
папка | описание |
---|---|
detection_rules/ | Модуль Python для анализа, проверки и упаковки правил. |
etc/ | Разные файлы, такие как схемы ECS и Beats. |
hunting/ | Корневой каталог, в котором хранятся пакеты поиска угроз и запросы. |
kibana/ | Библиотека Python для обработки вызовов API к Kibana и механизму обнаружения. |
kql/ | Библиотека Python для анализа и проверки языка запросов Kibana. |
rta/ | Код Red Team Automation, используемый для эмуляции методов злоумышленника и используемый для тестирования правил. |
rules/ | Корневой каталог, в котором хранятся правила |
rules_building_block/ | Корневой каталог, в котором хранятся правила стандартных блоков. |
tests/ | Код Python для правил модульного тестирования |
Хотя правила можно добавлять, создавая файлы .toml
вручную, мы не рекомендуем это делать. Этот репозиторий также состоит из модуля Python, который помогает создавать правила и модульное тестирование. Предполагая, что у вас Python 3.12+, выполните приведенную ниже команду, чтобы установить зависимости с помощью make-файла:
✗ makepython3.12 -m pip install --upgrade pip setuptools Поиск в индексах: https://pypi.org/simpleТребование уже выполнено: pip в /opt/homebrew/lib/python3.12/site-packages (24.0) Требование уже выполнено : инструменты настройки в /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Поиск в индексах: https://pypi.org/ simpleRequirement уже выполнен: pip в ./env/detection-rules-build/lib/python3.12/site-packages (24.0)Сбор инструментов настройки с использованием кэшированных setuptools-69.1.1-py3-none-any.whl.metadata (6,2 КБ)Использование кэшированных инструментов настройки-69.1.1-py3-none-any.whl (819 КБ)Установка собранных пакетов: setuptools Успешно установлен setuptools-69.1.1 Установка kql и kibana пакеты......
Или установите зависимости, используя следующую команду:
$ pip3 install ".[dev]" Сбор jsl==0.2.4 Загрузка jsl-0.2.4.tar.gz (21 КБ) Сбор jsonschema==3.2.0 Загрузка jsonschema-3.2.0-py2.py3-none- Any.whl (56 КБ) |██████████████████████████████████| 56 КБ 318 КБ/с Сбор запросов==2.22.0 Запросы на скачивание-2.22.0-py2.py3-none-any.whl (57 КБ) |█████████████████ ████████████████| 57 КБ 1,2 МБ/с Сбор Click==7.0 Загрузка Click-7.0-py2.py3-none-any.whl (81 КБ) |█████████████████████ ████████████| 81 КБ 2,6 МБ/с...
Примечание. Пакеты kibana
и kql
недоступны в PyPI и должны быть установлены из каталога lib
. Пакет hunting
имеет дополнительные зависимости, которые можно установить с помощью pip3 install ".[hunting]
.
# Установить из репозитория pip3 install git+https://github.com/elastic/detection-rules.git#subdirectory=kibanapip3 install git+https://github.com/elastic/detection-rules.git#subdirectory=kql# Или локально для разработки pip3 установите lib/kibana lib/kql.
Помните, обязательно активируйте свою виртуальную среду, если вы ее используете. При установке с помощью make
соответствующая виртуальная среда создается в env/detection-rules-build/
. Если у вас возникли проблемы с использованием среды Python 3.12, обратитесь к соответствующему разделу нашего руководства по устранению неполадок.
Чтобы убедиться, что все установлено правильно, запустите с флагом --help
$ python -m обнаружение_правил --helpUsage: обнаружение_правил [ОПЦИИ] КОМАНДА [ARGS]... Команды для хранилища правил обнаружения. Параметры: -d, --debug / -n, --no-debug Распечатать полную трассировку стека исключений при ошибках -h, --help Показать это сообщение и выйти. Команды: create-rule Создать правило обнаружения. dev Команды для разработки и управления внутренними... es Команды для интеграции с Elasticsearch. import-rules Импортировать правила из json, toml или Kibana, экспортировать правило... kibana Команды для интеграции с Kibana. массовое обновление Обновление нескольких правил на основе результатов eql. нормализовать-данные Нормализовать временные метки и сортировку данных Elasticsearch. поиск правил Используйте KQL или EQL для поиска соответствующих правил. test Запустите модульные тесты для всех правил. toml-lint Файлы очистки с простым форматированием toml. validate-all Проверяет, все ли правила проверяются на соответствие схеме. validate-rule Проверяет, проверяется ли правило, размещенное в каталоге правил, на соответствие... view-rule Просмотреть внутреннее правило или указанный файл правил.
Примечание:
Если вы используете виртуальную среду, обязательно активируйте ее перед выполнением указанной выше команды.
Если вы используете Windows, вам также может потребоваться запустить <venv_directory>Scriptspywin32_postinstall.py -install
в зависимости от вашей версии Python.
В руководстве по участию описывается, как использовать команды create-rule
и test
для создания и тестирования нового правила при внесении вклада в правила обнаружения.
Более подробную информацию об использовании интерфейса командной строки (CLI) см. в руководстве по CLI.
Мы приветствуем ваш вклад в Правила обнаружения! Прежде чем внести свой вклад, ознакомьтесь с этим репозиторием, его структурой каталогов и нашей философией создания правил. Когда вы будете готовы внести свой вклад, прочтите руководство, чтобы узнать, как мы превращаем идеи обнаружения в производственные правила и проверяем их с помощью тестирования.
Все в этом репозитории — правила, код, RTA и т. д. — лицензируется по Elastic License v2. Эти правила предназначены для использования в контексте модуля обнаружения в приложении Elastic Security. Если вы используете нашу управляемую службу Elastic Cloud или дистрибутив программного обеспечения Elastic Stack по умолчанию, который включает в себя полный набор бесплатных функций, вы получите последние правила при первом переходе к механизму обнаружения.
Иногда нам может потребоваться импортировать правила из другого репозитория, у которого уже есть лицензия, например MIT или Apache 2.0. Это приветствуется, если лицензия допускает сублицензирование по Elastic License v2. Мы храним эти уведомления о лицензии в NOTICE.txt
и сублицензируем их как Elastic License v2 со всеми остальными правилами. Мы также требуем, чтобы участники подписали Лицензионное соглашение участника, прежде чем добавлять код в любые репозитории Elastic.
Хотите узнать больше о механизме обнаружения? Посмотрите обзор в Кибане.
Этот репозиторий содержит новые и обновленные правила, которые еще не были выпущены. Чтобы просмотреть последний набор правил, выпущенный вместе со стеком, см. справочник готовых правил.
Если вы хотите сообщить о ложном срабатывании или ошибке другого типа, создайте проблему на GitHub и сначала проверьте, существует ли такая проблема.
Нужна помощь с правилами обнаружения? Опубликуйте проблему или задайте ее на нашем форуме по обсуждению безопасности или на канале #security-detection-rules в рабочей области Slack.