🛡️ owLSM 志在成为 Linux 预防与检测的黄金标准 🛡️
owLSM 是一个基于 eBPF LSM 的代理,实现了有状态的 Sigma 规则引擎,专注于预防。
项目是什么: owLSM 主要关注三件事:
1) 通过 eBPF LSM 实现的 Sigma 规则引擎提供预防能力。
2) eBPF 探针之间的数据关联,以实现有状态的预防能力。
3) 安全导向的系统监控,每个事件都包含安全专家所需的全部上下文。
目标用户: 负责 Linux 系统防御的团队,提供 Linux/云安全解决方案的公司,以及寻找复杂 eBPF 解决方案实现示例的开发者或代理。
使用场景: 已用于 Cybereason 和 LevelBlue 安全公司的客户。
我们为什么创建该项目: 经过多年使用 Falco、Tetragon 和 KubeArmor 等项目,我们不断遇到相同的缺口。这些解决方案几乎不提供预防(强制)能力。那些提供强制策略的,又缺乏子串匹配、正则匹配、完整进程命令匹配以及恶意进程父进程终止等基本功能。
我们决定采用完全不同的方法:
1) 使用标准的 Sigma 规则结构,并尽可能多地支持 Sigma 规则功能(不断添加中)。
2) 解决当前 eBPF LSM 项目的核心限制:它们是无状态的。强制规则中几乎所有数据都仅来自当前钩子。
我们创建了有状态的 eBPF 程序,使用多个连续的钩子点并在它们之间关联数据,这样在做出预防决策时,用户就拥有了所需的所有数据。我们将这种有状态方法推进到极致,例如,在监控写入事件时,您可以基于发起写入的 shell 命令指定预防规则。
通过给我们一个 ⭐ 来帮助我们成长并保护世界
云支持将在未来推出
# 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
在 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
注意: owLSM 启动需要 10–50 秒,具体取决于系统。这是 eBPF 验证器在加载所有程序到内核前进行验证的时间。完成后,owLSM 将完全生效。
cd build/unit_tests/bin
# Run the unit tests
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。