
Motore di regole Sigma all'interno del kernel Linux utilizzando eBPF. Concentrato sulle capacità di prevenzione
🛡️ owLSM aspira a diventare lo standard di riferimento per la prevenzione e il rilevamento su Linux 🛡️
owLSM è un agente eBPF LSM che implementa un motore di regole Sigma stateful incentrato sulla prevenzione.
Cos'è il progetto: owLSM si concentra su tre aspetti principali:
1) Capacità di prevenzione utilizzando un motore di regole Sigma implementato tramite eBPF LSM.
2) Correlazione dei dati tra i probe eBPF per capacità di prevenzione stateful.
3) Monitoraggio di sistema orientato alla sicurezza in cui ogni evento contiene tutto il contesto necessario a un esperto di sicurezza.
A chi è rivolto: Team che difendono sistemi Linux, aziende che offrono soluzioni di sicurezza Linux/Cloud e sviluppatori o agenti alla ricerca di esempi di implementazione di soluzioni eBPF complesse.
Dove è già in uso: Clienti delle società di sicurezza Cybereason e LevelBlue.
Perché abbiamo creato questo progetto: Dopo anni di utilizzo di progetti come Falco, Tetragon e KubeArmor, ci siamo imbattuti sempre nelle stesse lacune. Queste soluzioni offrono poche o nessuna capacità di prevenzione (enforcement). Quelle che offrono policy di enforcement mancano di funzionalità di base come la corrispondenza di sottostringhe, la corrispondenza regex, la corrispondenza completa del comando del processo e la terminazione del processo padre di processi malevoli.
Abbiamo deciso di adottare un approccio completamente diverso:
1) Utilizzare la struttura standard delle regole Sigma e supportare quante più funzionalità delle regole Sigma possibile (aggiungendone costantemente altre).
2) Risolvere la limitazione principale degli attuali progetti eBPF LSM: sono stateless. Quasi tutti i dati disponibili in una regola di enforcement provengono solo dall'hook corrente.
Abbiamo creato programmi eBPF stateful che utilizzano più punti di hook consecutivi e correlano i dati tra di loro, in modo che al momento della decisione di prevenzione, gli utenti abbiano tutti i dati necessari. Abbiamo portato questo approccio stateful così avanti che, ad esempio, quando si monitorano eventi di scrittura, è possibile specificare regole di prevenzione basate sul comando della shell che ha avviato la scrittura.
Aiutaci a crescere e a proteggere il mondo dandoci una ⭐
Il supporto cloud arriverà in futuro
# Pull the Docker image
docker pull ghcr.io/cybereason-public/owlsm-ci:latest
# Start the build container
docker run -it --rm -v "$PWD":/workspace -w /workspace ghcr.io/cybereason-public/owlsm-ci:latest bash
# Build owlsm and rules_generator binaries
make -j$(nproc)
# Build unit tests
make test -j$(nproc)
# Exit container, can't run owlsm or the tests inside the docker
exit
Esegui questo fuori dal docker
cd build/owlsm/bin
# run without config
sudo ./owlsm
# "-c" run with config
sudo ./owlsm -c /config/path.json
# "-e" excluded pid's (usually we want to exclude parent processes)
sudo ./owlsm -c /path/to/config.json -e 123 -e 456
# "-p" protected pid's. These pid's are protected by the anti-tamepring
sudo ./owlsm -c /path/to/config.json -e 123 -e 456 -p 123 -p 789
# run owlsm and pass config via stdin (when you don't want to save your config file on the disk)
# owLSM expects to recive the config in under 10 seconds.
sudo ./owlsm --stdin
Nota: L'avvio di owLSM richiede 10–50 secondi a seconda del sistema. Questo è il verificatore eBPF che convalida tutti i programmi prima che vengano caricati nel kernel. Una volta completato, owLSM è completamente attivo.
Vedi Rules/README.md
cd build/unit_tests/bin
# Run the unit tests
sudo ./unit_tests
Prima di eseguire owLSM, verifica che il tuo sistema soddisfi i requisiti:
chmod +x scripts/check_compatibility.sh && ./scripts/check_compatibility.sh
Vedi src/Tests/Automation/README.md per eseguire i test di automazione.
Per partecipare al progetto owLSM visita il nostro discord.
Se hai domande, chiedile su discord o apri un issue pertinente.
📖 Visita la documentazione per tutto ciò che ti serve — come usare il progetto, scrivere regole, comprendere l'architettura e altro.
Siamo entusiasti che tu sia interessato a contribuire a owLSM!
Controlla CONTRIBUTING.md per conoscere le regole, le convenzioni e anche strumenti e agenti AI fantastici che ti aiuteranno molto!
owLSM è concesso in licenza secondo i termini della GNU General Public License v2.0 (GPL-2.0).
Questo progetto include diverse librerie di terze parti con le proprie licenze (tutte compatibili con GPL). Vedi THIRD_PARTY_LICENSES per i dettagli.