
Motor de reglas Sigma dentro del kernel de Linux usando eBPF. Enfocado en capacidades de prevención.
🛡️ owLSM aspira a convertirse en el estándar de oro para la prevención y detección en Linux 🛡️
owLSM es un agente eBPF LSM que implementa un motor de reglas Sigma con estado orientado a la prevención.
¿Qué es el proyecto? owLSM se centra en tres aspectos principales:
1) Capacidades de prevención mediante un Motor de Reglas Sigma implementado a través de eBPF LSM.
2) Correlación de datos entre sondas eBPF para capacidades de prevención con estado.
3) Monitorización del sistema centrada en la seguridad, donde cada evento contiene todo el contexto que un experto en seguridad necesita.
¿Para quién es? Equipos que defienden sistemas Linux, empresas que ofrecen soluciones de seguridad Linux/Cloud, y desarrolladores o agentes que buscan ejemplos de implementación de soluciones eBPF complejas.
¿Dónde ya se está utilizando? Clientes de las empresas de seguridad Cybereason y LevelBlue.
¿Por qué creamos este proyecto? Después de años usando proyectos como Falco, Tetragon y KubeArmor, seguíamos encontrando las mismas carencias. Estas soluciones ofrecen poca o ninguna capacidad de prevención (aplicación de políticas). Las que sí ofrecen políticas de aplicación carecen de características básicas como coincidencia de subcadenas, coincidencia de expresiones regulares, coincidencia completa del cmd del proceso y terminación del proceso padre de procesos maliciosos.
Decidimos adoptar un enfoque completamente diferente:
1) Usar la estructura estándar de reglas Sigma y soportar tantas características de las reglas Sigma como sea posible (añadiendo más constantemente).
2) Resolver la limitación principal de los proyectos actuales de eBPF LSM: son sin estado. Casi todos los datos disponibles en una regla de aplicación provienen únicamente del hook actual.
Creamos programas eBPF con estado que usan múltiples puntos de hook consecutivos y correlacionan datos entre ellos, de modo que en el momento de la decisión de prevención los usuarios tengan todos los datos que necesitan. Llevamos este enfoque con estado tan lejos que, por ejemplo, al monitorizar eventos de escritura, se pueden especificar reglas de prevención basadas en el comando shell que inició la escritura.
Ayúdanos a crecer y proteger el mundo dándonos una ⭐
El soporte para la nube llegará en el futuro
# Pull de la imagen Docker
docker pull ghcr.io/cybereason-public/owlsm-ci:latest
# Iniciar el contenedor de construcción
docker run -it --rm -v "$PWD":/workspace -w /workspace ghcr.io/cybereason-public/owlsm-ci:latest bash
# Construir los binarios owlsm y rules_generator
make -j$(nproc)
# Construir pruebas unitarias
make test -j$(nproc)
# Salir del contenedor, no se puede ejecutar owlsm ni las pruebas dentro del docker
exit
Haz esto fuera del docker
cd build/owlsm/bin
# ejecutar sin configuración
sudo ./owlsm
# "-c" ejecutar con configuración
sudo ./owlsm -c /config/path.json
# "-e" pids excluidos (normalmente queremos excluir procesos padre)
sudo ./owlsm -c /path/to/config.json -e 123 -e 456
# "-p" pids protegidos. Estos pids están protegidos contra manipulaciones
sudo ./owlsm -c /path/to/config.json -e 123 -e 456 -p 123 -p 789
# ejecutar owlsm y pasar configuración por stdin (cuando no se quiere guardar el archivo de configuración en el disco)
# owLSM espera recibir la configuración en menos de 10 segundos.
sudo ./owlsm --stdin
Nota: El inicio de owLSM tarda entre 10 y 50 segundos dependiendo del sistema. Esto se debe al verificador eBPF validando todos los programas antes de cargarlos en el kernel. Una vez completado, owLSM está completamente activo.
Ver Rules/README.md
cd build/unit_tests/bin
# Ejecutar las pruebas unitarias
sudo ./unit_tests
Antes de ejecutar owLSM, verifica que tu sistema cumple con los requisitos:
chmod +x scripts/check_compatibility.sh && ./scripts/check_compatibility.sh
Ver src/Tests/Automation/README.md para ejecutar las pruebas de automatización.
Para involucrarte en el proyecto owLSM visita nuestro discord.
Si tienes alguna pregunta, por favor hazla en el discord o abre un issue relevante.
📖 Visita la documentación para todo lo que necesitas — cómo usar el proyecto, escribir reglas, entender la arquitectura y más.
¡Estamos encantados de que estés interesado en contribuir a owLSM!
Por favor, consulta CONTRIBUTING.md para conocer las reglas, convenciones e incluso herramientas y agentes de IA geniales que te ayudarán mucho.
owLSM está licenciado bajo la GNU General Public License v2.0 (GPL-2.0).
Este proyecto incluye varias bibliotecas de terceros con sus propias licencias (todas compatibles con GPL). Consulta THIRD_PARTY_LICENSES para más detalles.