alexandreboutrik/bouclier-bleu
GitHub: alexandreboutrik/bouclier-bleu
Bouclier Bleu 是一款基于 eBPF 和 Rust 构建的模块化 Linux 端点防护系统,专注于检测勒索软件及防止内存破坏漏洞利用。
Stars: 0 | Forks: 0
Bouclier Bleu
架构概述 •
编译与使用 •
配置 •
测试流程 •
安全
`Bouclier Bleu` 是作为一个为 Linux 设计的模块化下一代防病毒 (NGAV) 和端点检测与响应 (EDR) 系统而创建的,它在内核空间利用 eBPF (BPF LSM),并通过 Rust 在用户空间利用内存安全性。
其主要目标是:1.) 防止勒索软件 和 2.) 在内存破坏(溢出)危及系统之前将其阻止。
## 架构概述
`Bouclier Bleu` 被设计为模块化结构,主要分为四个目录:
- **`core/`**:Rust 用户态守护进程。它将 eBPF 程序加载到内核中,并将异步事件路由到解耦的防御机制。
- **`bpf/`**:内核空间 eBPF 代码。它挂钩到 Linux 安全模块 (LSM) 以监控和/或暂停执行。
- **`modules/`**:用户态模块。防御机制(例如金丝雀文件)。
- **`cli/`**:控制平面。允许用户动态切换特定的保护措施并与核心守护进程交互。
### 模块化
每个“防御能力”都作为一个独立模块实现。一个完整的模块由一个内核空间 eBPF 程序(`bpf/
.bpf.c`)和一个用户空间 Rust 组件(`modules/src/.rs`)组成。
### 当前模块(功能)
该 EDR 目前具有以下防御启发式规则:
* **勒索软件熵监控器 (`rename_entropy`)**:实时检测并中和勒索软件加密阶段。它拦截 `rename` 操作(例如追加 `.locked_xyz123`),并使用自定义的、预先计算的对数查找表计算 Shannon 熵,以便在 eBPF 虚拟机内实现 O(1) 整数运算执行。
* **全局可写执行拦截 (`exec_block`)**:缓解内存破坏利用和 Web shell 下载器以此暂存二级载荷。它挂钩到 `bprm_check_security` 以拦截进程执行,阻止源自历史上不安全的全局可写目录(例如 `/tmp`、`/dev/shm`、`/var/crash`、`/run/user`)的执行。
`Bouclier Bleu` 正在积极开发中。即将推出的模块(TODO SOON)包括:
* **强 W^X (`file_mprotect`)**:强制执行严格的 Write XOR Execute 内存策略,以缓解 shellcode 注入和 ROP(面向返回编程)链暂存。
* **进程注入防护 (`ptrace_access_check` / `ptrace_traceme`)**:监控和限制 `ptrace` 功能,以阻止跨进程内存篡改、空心进程注入和凭证转储。
## 编译与使用
```
# 如果使用 NixOS,首先加载声明式开发环境
nix-shell
# 编译 eBPF C 代码和 Rust 用户态二进制文件
cargo build --release
# 核心守护进程需要 root 权限来加载 BPF 程序
sudo ./target/release/core
```
我们还包含一个自动化发布流水线 (`scripts/release.sh`),用于跨发行版打包 (`via fpm`)、GitHub Releases 以及包管理器仓库更新。
```
./scripts/release.sh -h
```
## 配置
`Bouclier Bleu` 可以通过位于 `/etc/bouclier-bleu/config.toml` 的 TOML 文件进行配置:
```
[modules]
# 启用全局可写执行阻断
exec_block = true
# 启用勒索软件熵启发式检测
rename_entropy = true
# 未来模块可以在此处切换
# file_mprotect = false
```
## 测试流程
`Bouclier Bleu` 使用由 `incus` 驱动的隔离测试基础设施来虚拟化 Ubuntu 24.04 环境。这确保了具有潜在破坏性的测试(如恶意软件执行)不会危害宿主系统。
我们使用自定义的 `xtask` 运行器管理测试生命周期。完成后,它会自动在 `tests/Results.md` 生成一份 markdown 报告,映射出测试状态、持续时间和环境指标。
### 运行测试
我们使用自定义的 `xtask` 运行器管理测试生命周期:
```
# 运行所有测试套件
cargo xtask test
# 运行特定套件
cargo xtask test component
cargo xtask test integration
```
## 安全
如果您发现安全漏洞,请查看我们的 [安全策略](SECURITY.md) 了解更多详情。所有安全漏洞都将得到及时处理。
## 许可证
本项目采用双重许可。用户态引擎(`core`、`cli`、`modules`)根据 [Apache](LICENSE) 许可证获得许可。由于 Linux 内核 API 的要求,内核空间 eBPF 代码(`bpf/`)严格符合 [GPL-2.0](bpf/LICENSE)。您可以自由使用、修改和分发代码。有关更多信息,请参阅 [LICENSE](LICENSE) 文件。 标签:0day挖掘, BPF LSM, DevSecOps, Docker镜像, EDR, HIPS, NGAV, Python安全, Rust, Streamlit, 上游代理, 下一代杀毒, 主机入侵防御, 内存安全, 内核安全, 反恶意软件, 可视化界面, 终端检测与响应, 网络安全, 网络流量审计, 脆弱性评估, 访问控制, 通知系统, 防勒索软件, 隐私保护