
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 ferramenta Sigma legada (sigmac) com um design muito mais limpo e é quase totalmente testada.
Os backends para suporte de 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 independente de fornecedores. Veja a seção Related Projects abaixo para uma visão geral.
Para começar a usar pySigma, você precisa de Python 3.10 ou posterior. 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 "Related Projects" deste README.
pySigma Cookie Cutter Template
O pySigma traz uma série de recursos adicionais em comparação ao 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 estão descritos na documentação.
O 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 aplicar lint ao 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 artigo de blog de Micah Babinski explica o processo a partir da perspectiva de um desenvolvedor.
O projeto é atualmente mantido por:
O 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, salvo indicação em contrário 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.