
Libreria Python per analizzare e convertire le regole Sigma in query (e qualsiasi altra cosa tu possa immaginare)
pySigma è una libreria Python che analizza e converte le regole Sigma in query. È un sostituto
della vecchia toolchain Sigma (sigmac) con un design molto più pulito ed è quasi interamente testata.
I backend per il supporto della conversione in linguaggi di query e le pipeline di elaborazione per trasformare
le regole per i modelli di dati dei log sono separati in progetti dedicati per mantenere pySigma stesso snello e
indipendente dal fornitore. Vedi la sezione Related Projects qui sotto per una panoramica.
Per iniziare a usare pySigma, hai bisogno di Python 3.10 o successivo. Installalo usando il gestore di pacchetti Python che preferisci. Esempi:
pip install pysigma
pipenv install pysigma
poetry add pysigma
La documentazione con alcuni esempi di utilizzo si trova qui.
La creazione di un backend è diventata molto più semplice con pySigma. Raccomandiamo di usare il "Cookie Cutter Template" e di esaminare i backend esistenti elencati nella sezione "Related Projects" di questo README.
pySigma Cookie Cutter Template
pySigma introduce una serie di funzionalità aggiuntive rispetto al tutto-in-uno sigmac, oltre ad alcune modifiche.
sigma-cli è l'equivalente di sigmac per la conversione da riga di comando
usa sigma list modifiers
usa sigma plugin list --plugin-type backend
Panoramica sulla conversione

Pipeline

Maggiori dettagli sono descritti nella documentazione.
pySigma usa pytest come framework di test. Basta eseguire pytest per lanciare tutti i test. Esegui pytest --cov=sigma per ottenere un report di copertura.
Per creare il tuo pacchetto esegui poetry build.
Per fare il lint del codice esegui poetry run black. Per verificare la presenza di errori di linting esegui poetry run black --check.
Questo progetto usa anche pre-commit, che viene installato da poetry come parte delle dipendenze di sviluppo. Per installare i git hooks esegui poetry run pre-commit install dopo aver clonato il repository e installato le dipendenze.
Le pull request sono benvenute. Sentiti libero di aprire eventuali issue/PR come punti di discussione.
Questo post sul blog di Micah Babinski spiega il processo dal punto di vista di uno sviluppatore.
Il progetto è attualmente mantenuto da:
pySigma non è una libreria monolitica che tenta di supportare tutto, ma solo il nucleo. Il supporto per i linguaggi di query di destinazione e i modelli di dati dei log è fornito da pacchetti aggiuntivi che estendono pySigma:
Tutti i pacchetti possono anche essere installati da PyPI, salvo diversa indicazione, tramite il gestore di pacchetti Python che preferisci.
GNU Lesser General Public License v2.1. Per i dettagli, consulta il file di licenza completo disponibile qui.