
Python-библиотека для парсинга и преобразования правил Sigma в запросы (и всё остальное, что можно вообразить)
pySigma — это библиотека Python, которая разбирает правила Sigma и преобразует их в запросы. Она является заменой
устаревшей цепочки инструментов Sigma (sigmac) с гораздо более чистым дизайном и почти полностью покрыта тестами.
Бэкенды для поддержки преобразования в языки запросов и конвейеры обработки для трансформации
правил под модели данных журналов вынесены в отдельные проекты, чтобы pySigma оставалась компактной и
независимой от вендоров. См. раздел Related Projects ниже для обзора.
Чтобы начать использовать pySigma, вам нужен Python 3.11 или более поздней версии. Установите его с помощью предпочитаемого менеджера пакетов Python. Примеры:
pip install pysigma
pipenv install pysigma
poetry add pysigma
Документацию с некоторыми примерами использования можно найти здесь.
Создание бэкенда стало намного проще с pySigma. Мы рекомендуем использовать «Cookie Cutter Template» и ознакомиться с существующими бэкендами, перечисленными в разделе «Related Projects» этого 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 как часть зависимостей для разработки. Чтобы установить git-хуки, запустите poetry run pre-commit install после клонирования репозитория и установки зависимостей.
Pull requests приветствуются. Пожалуйста, не стесняйтесь создавать issues/PRs в качестве тем для обсуждения.
Этот пост в блоге от Micah Babinski объясняет процесс с точки зрения разработчика.
В настоящее время проект поддерживают:
pySigma — это не монолитная библиотека, пытающаяся поддерживать всё, а только ядро. Поддержка целевых языков запросов и моделей данных журналов обеспечивается дополнительными пакетами, расширяющими pySigma:
Все пакеты также можно установить из PyPI, если не указано иное, с помощью предпочитаемого вами менеджера пакетов Python.
GNU Lesser General Public License v2.1. Подробности см. в полном тексте лицензии здесь.