
Mecanismo de Regras Sigma dentro do Kernel Linux usando eBPF. Com foco em capacidades de prevenção
🛡️ owLSM aspira a se tornar o padrão ouro para prevenção e detecção no Linux 🛡️
owLSM é um agente eBPF LSM que implementa um mecanismo de regras Sigma stateful focado em prevenção.
O que é o projeto: owLSM se concentra em três pontos principais:
1) Capacidades de prevenção usando um mecanismo de regras Sigma implementado via eBPF LSM.
2) Correlação de dados entre sondas eBPF para capacidades de prevenção stateful.
3) Monitoramento do sistema focado em segurança, onde cada evento contém todo o contexto que um especialista em segurança precisa.
Para quem é: Equipes que defendem sistemas Linux, empresas que oferecem soluções de segurança para Linux/Cloud e desenvolvedores ou agentes que procuram exemplos de implementação de soluções eBPF complexas.
Onde já está sendo usado: Clientes das empresas de segurança Cybereason e LevelBlue.
Por que criamos este projeto: Após anos usando projetos como Falco, Tetragon e KubeArmor, continuamos encontrando as mesmas lacunas. Essas soluções oferecem pouca ou nenhuma capacidade de prevenção (aplicação). As que oferecem políticas de aplicação carecem de recursos básicos como correspondência de substrings, correspondência regex, correspondência completa do cmd do processo e encerramento do processo pai de processos maliciosos.
Decidimos adotar uma abordagem completamente diferente:
1) Usar a estrutura padrão de regras Sigma e suportar o maior número possível de recursos das regras Sigma (adicionando constantemente mais).
2) Resolver a limitação central dos projetos atuais de eBPF LSM: eles são stateless. Quase todos os dados disponíveis em uma regra de aplicação vêm apenas do hook atual.
Criamos programas eBPF stateful que usam múltiplos pontos de hook consecutivos e correlacionam dados entre eles, de modo que, no momento da decisão de prevenção, os usuários tenham todos os dados necessários. Levamos essa abordagem stateful tão longe que, por exemplo, ao monitorar eventos de escrita, você pode especificar regras de prevenção com base no comando do shell que iniciou a escrita.
Ajude-nos a crescer e proteger o mundo dando-nos uma ⭐
O suporte para Cloud virá no futuro
# Baixe a imagem Docker
docker pull ghcr.io/cybereason-public/owlsm-ci:latest
# Inicie o container de build
docker run -it --rm -v "$PWD":/workspace -w /workspace ghcr.io/cybereason-public/owlsm-ci:latest bash
# Construa os binários owlsm e rules_generator
make -j$(nproc)
# Construa os testes unitários
make test -j$(nproc)
# Saia do container (não é possível executar owlsm ou os testes dentro do docker)
exit
Faça isso fora do docker
cd build/owlsm/bin
# executar sem configuração
sudo ./owlsm
# "-c" executar com configuração
sudo ./owlsm -c /caminho/para/config.json
# "-e" PIDs excluídos (geralmente queremos excluir processos pai)
sudo ./owlsm -c /caminho/para/config.json -e 123 -e 456
# "-p" PIDs protegidos. Esses PIDs são protegidos contra anti-adulteração
sudo ./owlsm -c /caminho/para/config.json -e 123 -e 456 -p 123 -p 789
# executar owlsm e passar configuração via stdin (quando não se quer salvar o arquivo de configuração no disco)
# owLSM espera receber a configuração em menos de 10 segundos.
sudo ./owlsm --stdin
Nota: A inicialização do owLSM leva 10–50 segundos, dependendo do sistema. Isso é o verificador eBPF validando todos os programas antes de serem carregados no kernel. Uma vez concluído, o owLSM está totalmente ativo.
Veja Rules/README.md
cd build/unit_tests/bin
# Execute os testes unitários
sudo ./unit_tests
Antes de executar o owLSM, verifique se seu sistema atende aos requisitos:
chmod +x scripts/check_compatibility.sh && ./scripts/check_compatibility.sh
Veja src/Tests/Automation/README.md para executar os testes de automação.
Para se envolver com o projeto owLSM, visite nosso discord.
Se você tiver alguma dúvida, pergunte no discord ou abra uma issue relevante.
📖 Visite a documentação para tudo o que você precisa — como usar o projeto, escrever regras, entender a arquitetura e muito mais.
Estamos muito felizes que você tem interesse em contribuir com o owLSM!
Por favor, verifique CONTRIBUTING.md para conhecer as regras, convenções e até mesmo ferramentas e agentes de IA legais que ajudarão você bastante!
owLSM é licenciado sob a GNU General Public License v2.0 (GPL-2.0).
Este projeto inclui várias bibliotecas de terceiros com suas próprias licenças (todas compatíveis com GPL). Veja THIRD_PARTY_LICENSES para detalhes.