
Sigma-Regel-Engine im Linux-Kernel unter Verwendung von eBPF. Schwerpunkt auf Präventionsfähigkeiten.
🛡️ owLSM strebt an, der Goldstandard für Prävention und Erkennung unter Linux zu werden 🛡️
owLSM ist ein eBPF-LSM-Agent, der eine zustandsbehaftete Sigma-Regel-Engine mit Schwerpunkt auf Prävention implementiert.
Was ist das Projekt: owLSM konzentriert sich auf drei Hauptaspekte:
1) Präventionsfähigkeiten unter Verwendung einer Sigma-Regel-Engine, die mittels eBPF LSM implementiert wird.
2) Datenkorrelation zwischen eBPF-Proben für zustandsbehaftete Präventionsfähigkeiten.
3) Sicherheitsfokussierte Systemüberwachung, bei der jedes Ereignis den gesamten Kontext enthält, den ein Sicherheitsexperte benötigt.
Für wen ist es gedacht: Teams, die Linux-Systeme verteidigen, Unternehmen, die Linux-/Cloud-Sicherheitslösungen anbieten, und Entwickler oder Agenten, die nach Implementierungsbeispielen für komplexe eBPF-Lösungen suchen.
Wo wird es bereits eingesetzt: Kunden der Sicherheitsfirmen Cybereason und LevelBlue.
Warum wir dieses Projekt erstellt haben: Nach Jahren der Nutzung von Projekten wie Falco, Tetragon und KubeArmor sind wir immer wieder auf dieselben Lücken gestoßen. Diese Lösungen bieten kaum oder gar keine Präventions- (Durchsetzungs-) Fähigkeiten. Diejenigen, die Durchsetzungsrichtlinien bieten, entbehren grundlegender Funktionen wie Teilzeichenfolgenabgleich, Regex-Abgleich, vollständige Prozess-CMD-Übereinstimmung und Beendigung von übergeordneten Prozessen bei bösartigen Prozessen.
Wir haben uns für einen völlig anderen Ansatz entschieden:
1) Verwenden Sie die Standard-Sigma-Regelstruktur und unterstützen Sie so viele Sigma-Regelfunktionen wie möglich (wir fügen ständig weitere hinzu).
2) Lösen Sie die grundlegende Einschränkung aktueller eBPF-LSM-Projekte: Sie sind zustandslos. Fast alle Daten, die in einer Durchsetzungsregel verfügbar sind, stammen nur vom aktuellen Hook.
Wir haben zustandsbehaftete eBPF-Programme erstellt, die mehrere aufeinanderfolgende Hook-Punkte verwenden und Daten zwischen ihnen korrelieren, sodass Benutzer zum Zeitpunkt der Präventionsentscheidung alle benötigten Daten haben. Wir haben diesen zustandsbehafteten Ansatz so weit getrieben, dass Sie beispielsweise bei der Überwachung von Schreibereignissen Präventionsregeln basierend auf dem Shell-Befehl festlegen können, der das Schreiben initiiert hat.
Helfen Sie uns zu wachsen und die Welt zu schützen, indem Sie uns einen ⭐ geben
Cloud-Unterstützung wird in Zukunft kommen
# 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
Führen Sie dies außerhalb des Docker aus
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-tamepering
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
Hinweis: Der Start von owLSM dauert 10–50 Sekunden, abhängig vom System. Dies ist der eBPF-Verifizierer, der alle Programme validiert, bevor sie in den Kernel geladen werden. Sobald dies abgeschlossen ist, ist owLSM vollständig aktiv.
Siehe Rules/README.md
cd build/unit_tests/bin
# Run the unit tests
sudo ./unit_tests
Überprüfen Sie vor dem Ausführen von owLSM, ob Ihr System die Anforderungen erfüllt:
chmod +x scripts/check_compatibility.sh && ./scripts/check_compatibility.sh
Siehe src/Tests/Automation/README.md zum Ausführen der Automatisierungstests.
Um am owLSM-Projekt mitzuwirken, besuchen Sie unseren Discord.
Wenn Sie Fragen haben, stellen Sie diese bitte auf dem Discord oder öffnen Sie ein entsprechendes Issue.
📖 Besuchen Sie die Dokumentation für alles, was Sie benötigen – wie Sie das Projekt nutzen, Regeln schreiben, die Architektur verstehen und mehr.
Wir freuen uns sehr, dass Sie daran interessiert sind, zu owLSM beizutragen!
Bitte lesen Sie CONTRIBUTING.md, um mehr über die Regeln, Konventionen und sogar coole KI-Tools und Agents zu erfahren, die Ihnen sehr helfen werden!
owLSM ist unter der GNU General Public License v2.0 (GPL-2.0) lizenziert.
Dieses Projekt enthält mehrere Bibliotheken von Drittanbietern mit eigenen Lizenzen (alle GPL-kompatibel). Einzelheiten finden Sie unter THIRD_PARTY_LICENSES.