
Движок правил Sigma внутри ядра Linux с использованием eBPF. Основное внимание уделяется возможностям предотвращения.
🛡️ owLSM стремится стать золотым стандартом предотвращения и обнаружения для Linux 🛡️
owLSM — это агент eBPF LSM, реализующий механизм состояний правил Sigma, ориентированный на предотвращение.
Что это за проект: owLSM сосредоточен на трёх основных вещах:
1) Возможности предотвращения с помощью механизма правил Sigma, реализованного через eBPF LSM.
2) Корреляция данных между eBPF-зондами для возможностей предотвращения на основе состояния.
3) Мониторинг системы с акцентом на безопасность, где каждое событие содержит весь контекст, необходимый эксперту по безопасности.
Для кого предназначен: Команды, защищающие системы Linux, компании, предлагающие решения для безопасности Linux/облачных сред, а также разработчики или агенты, ищущие примеры реализации сложных eBPF-решений.
Где уже используется: Клиенты компаний по безопасности Cybereason и LevelBlue.
Почему мы создали этот проект: После многолетнего использования таких проектов, как Falco, Tetragon и KubeArmor, мы постоянно сталкивались с одними и теми же пробелами. Эти решения предлагают минимальные или нулевые возможности предотвращения (принудительного применения политик). Те, которые предоставляют политики принудительного применения, не имеют базовых функций, таких как поиск подстрок, сопоставление регулярных выражений, полное совпадение команд процесса и завершение родительского процесса вредоносных процессов.
Мы решили применить совершенно другой подход:
1) Использовать стандартную структуру правил Sigma и поддерживать как можно больше возможностей правил Sigma (постоянно добавляем новые).
2) Решить основное ограничение текущих проектов eBPF LSM: они не имеют состояния. Почти все данные, доступные в правиле принудительного применения, поступают только от текущего хука.
Мы создали программы eBPF с сохранением состояния, которые используют несколько последовательных точек хука и коррелируют данные между ними, чтобы в момент принятия решения о предотвращении у пользователя были все необходимые данные. Мы продвинули этот подход настолько далеко, что, например, при мониторинге событий записи вы можете задать правила предотвращения на основе команды оболочки, инициировавшей запись.
Помогите нам расти и защищать мир, поставив ⭐
Облачная поддержка появится в будущем
# Загрузите Docker-образ
docker pull ghcr.io/cybereason-public/owlsm-ci:latest
# Запустите контейнер для сборки
docker run -it --rm -v "$PWD":/workspace -w /workspace ghcr.io/cybereason-public/owlsm-ci:latest bash
# Сборка бинарных файлов owlsm и rules_generator
make -j$(nproc)
# Сборка модульных тестов
make test -j$(nproc)
# Выйдите из контейнера; запустить owlsm или тесты внутри docker нельзя
exit
Выполняйте вне docker
cd build/owlsm/bin
# запуск без конфигурации
sudo ./owlsm
# "-c" запуск с конфигурацией
sudo ./owlsm -c /config/path.json
# "-e" исключённые PID (обычно мы хотим исключить родительские процессы)
sudo ./owlsm -c /path/to/config.json -e 123 -e 456
# "-p" защищённые PID. Эти PID защищены от взлома
sudo ./owlsm -c /path/to/config.json -e 123 -e 456 -p 123 -p 789
# запуск owlsm и передача конфигурации через stdin (если не хотите сохранять файл конфигурации на диске)
# owLSM ожидает получения конфигурации в течение 10 секунд.
sudo ./owlsm --stdin
Примечание: Запуск owLSM занимает 10–50 секунд в зависимости от системы. Это время проверки eBPF-верификатором всех программ перед их загрузкой в ядро. После завершения owLSM полностью активен.
См. Rules/README.md
cd build/unit_tests/bin
# Запуск модульных тестов
sudo ./unit_tests
Перед запуском owLSM убедитесь, что ваша система соответствует требованиям:
chmod +x scripts/check_compatibility.sh && ./scripts/check_compatibility.sh
См. src/Tests/Automation/README.md для запуска автоматизированных тестов.
Чтобы принять участие в проекте owLSM, посетите наш discord.
Если у вас есть вопросы, задавайте их на Discord или открывайте соответствующий issue.
📖 Посетите документацию, чтобы узнать всё необходимое — как использовать проект, писать правила, понять архитектуру и многое другое.
Мы рады, что вы заинтересовались вкладом в owLSM!
Пожалуйста, ознакомьтесь с CONTRIBUTING.md, чтобы узнать о правилах, соглашениях и крутых AI-инструментах и агентах, которые вам очень помогут!
owLSM распространяется под лицензией GNU General Public License v2.0 (GPL-2.0).
Этот проект включает несколько сторонних библиотек с собственными лицензиями (все совместимы с GPL). Подробнее см. THIRD_PARTY_LICENSES.