
Biblioteca Python para analisar e converter regras Sigma em consultas (e tudo o mais que você puder imaginar)
pySigma é uma biblioteca Python que analisa e converte regras Sigma em consultas. É um substituto
para a cadeia de ferramentas Sigma legada (sigmac) com um design muito mais limpo e está quase totalmente testada.
Backends para suporte à conversão em linguagens de consulta e pipelines de processamento para transformar
regras para modelos de dados de log são separados em projetos dedicados para manter o pySigma enxuto e
agnóstico em relação a fornecedores. Consulte a seção Projetos Relacionados abaixo para obter uma visão geral.
Para começar a usar o pySigma, você precisa do Python 3.11 ou superior. Instale-o usando o gerenciador de pacotes Python de sua preferência. Exemplos:
pip install pysigma
pipenv install pysigma
poetry add pysigma
A documentação com alguns exemplos de uso pode ser encontrada aqui.
A criação de um backend tornou-se muito mais fácil com o pySigma. Recomendamos usar o "Cookie Cutter Template" e revisar os backends existentes listados na seção "Projetos Relacionados" deste README.
pySigma Cookie Cutter Template
pySigma traz uma série de recursos adicionais em comparação com o sigmac tudo-em-um, bem como algumas mudanças.
sigma-cli é o equivalente ao sigmac para conversão via linha de comando
use sigma list modifiers
use sigma plugin list --plugin-type backend
Visão Geral da Conversão

Pipelines

Mais detalhes são descritos em the documentation.
pySigma usa pytest como framework de testes. Basta executar pytest para rodar todos os testes. Execute pytest --cov=sigma para obter um relatório de cobertura.
Para compilar seu próprio pacote, execute poetry build.
Para fazer lint do código, execute poetry run black. Para verificar erros de linting, execute poetry run black --check.
Este projeto também usa pre-commit, que é instalado pelo poetry como parte das dependências de desenvolvimento. Para instalar os hooks do git, execute poetry run pre-commit install após clonar o repositório e instalar as dependências.
Pull requests são bem-vindos. Sinta-se à vontade para registrar quaisquer issues/PRs como pontos de discussão.
Este post de blog de Micah Babinski explica o processo do ponto de vista de um desenvolvedor.
O projeto é atualmente mantido por:
pySigma não é uma biblioteca monolítica que tenta suportar tudo, mas sim o núcleo. O suporte para linguagens de consulta de destino e modelos de dados de log é fornecido por pacotes adicionais que estendem o pySigma:
Todos os pacotes também podem ser instalados a partir do PyPI, se não mencionado de outra forma, pelo gerenciador de pacotes Python de sua escolha.
GNU Lesser General Public License v2.1. Para detalhes, consulte o arquivo de licença completo localizado aqui.