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, 上游代理, 下一代杀毒, 主机入侵防御, 内存安全, 内核安全, 反恶意软件, 可视化界面, 终端检测与响应, 网络安全, 网络流量审计, 脆弱性评估, 访问控制, 通知系统, 防勒索软件, 隐私保护