
Python-библиотека для парсинга и преобразования правил Sigma в запросы (и всё остальное, что можно вообразить)
pySigma — это библиотека Python, которая разбирает правила Sigma и преобразует их в запросы. Она заменяет
унаследованный инструментарий Sigma (sigmac), имеет гораздо более чистую архитектуру и почти полностью покрыта тестами.
Бэкенды для поддержки преобразования в языки запросов и конвейеры обработки для трансформации
правил под модели данных журналов вынесены в отдельные проекты, чтобы сам pySigma оставался лёгким и
независимым от вендоров. Обзор см. в разделе Связанные проекты ниже.
Чтобы начать использовать pySigma, вам понадобится Python 3.10 или новее. Установите его с помощью вашего любимого менеджера пакетов Python. Примеры:
pip install pysigma
pipenv install pysigma
poetry add pysigma
Документацию с примерами использования можно найти здесь.
Создание бэкенда с pySigma стало гораздо проще. Мы рекомендуем использовать «Cookie Cutter Template» и изучить существующие бэкенды, перечисленные в разделе «Связанные проекты» этого README.
pySigma Cookie Cutter Template
pySigma предоставляет ряд дополнительных возможностей по сравнению с монолитным sigmac, а также некоторые изменения.
sigma-cli является аналогом sigmac для преобразования из командной строки
используйте sigma list modifiers
используйте sigma plugin list --plugin-type backend
Обзор преобразования

Конвейеры

Более подробно описано в документации.
pySigma использует pytest в качестве фреймворка для тестирования. Просто запустите pytest, чтобы выполнить все тесты. Запустите pytest --cov=sigma, чтобы получить отчёт о покрытии.
Чтобы собрать собственный пакет, выполните poetry build.
Чтобы прогнать линтер по коду, выполните poetry run black. Чтобы проверить наличие ошибок линтинга, выполните poetry run black --check.
Этот проект также использует pre-commit, который устанавливается poetry в составе dev-зависимостей. Чтобы установить git-хуки, после клонирования репозитория и установки зависимостей выполните poetry run pre-commit install.
Пул-реквесты приветствуются. Пожалуйста, не стесняйтесь открывать любые issues/PR в качестве тем для обсуждения.
В этом блог-посте Мика Бабински объясняет этот процесс с точки зрения разработчика.
В настоящее время проект сопровождают:
pySigma — не монолитная библиотека, пытающаяся поддерживать всё подряд, а ядро. Поддержка целевых языков запросов и моделей данных журналов обеспечивается дополнительными пакетами, расширяющими pySigma:
Все пакеты также можно установить из PyPI, если иное не указано выбранным вами менеджером пакетов Python.
GNU Lesser General Public License v2.1. Подробности см. в полном тексте лицензии здесь.