Jean-Regis-M/SentinelML

GitHub: Jean-Regis-M/SentinelML

一款基于 eBPF 和 Rust 的 AI 工作负载运行时安全防护工具,通过内核级遥测实现低延迟异常检测,解决传统安全代理在高强度 ML 基础设施中造成的性能瓶颈问题。

Stars: 1 | Forks: 0

# 🛡️ SentinelML:内核原生 AI 工作负载防护 [![GitHub 仓库](https://img.shields.io/badge/GitHub-Jean--Regis--M%2FSentinelML-brightgreen?style=flat-square&logo=github)](https://github.com/Jean-Regis-M/SentinelML) [![许可证](https://img.shields.io/badge/License-Apache_2.0_/_GPL_2.0-blue.svg?style=flat-square)](LICENSE) [![eBPF](https://img.shields.io/badge/eBPF-Enabled-green.svg?style=flat-square)](https://ebpf.io/) [![Rust](https://img.shields.io/badge/Rust-1.76+-orange.svg?style=flat-square)](https://www.rust-lang.org/) [![Kubernetes](https://img.shields.io/badge/Kubernetes-DaemonSet-blue.svg?style=flat-square)](https://kubernetes.io/) [![Express 后端](https://img.shields.io/badge/Backend-Express_Fullstack-lightgrey?style=flat-square)](https://expressjs.com/) ## 📖 目录 1. [概述与核心任务](#1-executive-summary--core-mission) 2. [统一架构与拓扑图](#2-unified-architecture--topology-map) 3. [深度 eBPF 探针规格说明](#3-deep-ebpf-probe-specifications) 4. [用户空间遥测 Daemon (Rust) 架构](#4-userspace-telemetry-daemon-rust-architecture) 5. [企业级 Operator 仪表盘 (React + TypeScript)](#5-enterprise-operator-dashboard-react--typescript) 6. [高价值异常检测矩阵](#6-high-value-anomaly-detection-matrix) 7. [完整 REST API 架构文档](#7-full-rest-api-schema-documentation) 8. [设置与安装说明](#8-setup--installation-instructions) 9. [性能延迟概况与研究](#9-performance-latency-profiles--studies) 10. [路线图与愿景目标](#10-roadmap--vision-targets) 11. [贡献与开发工作流](#11-contribution--development-workflows) 12. [协同漏洞披露与许可协议](#12-coordinated-vulnerability-disclosure--licensing) ## 1. 概述与核心任务 在高强度的机器学习基础设施(PyTorch 训练节点、Ray 处理 runtime、密集型 Triton 推理主机)中部署传统的端点检测与响应 (EDR) 代理或基于审计的系统跟踪配置会带来三个致命问题: * **不可接受的训练延迟**:用户空间审计 hook 会降低 CPU 缓存利用率并阻塞多线程 I/O 操作,导致繁重的神经网络循环无法进行优化。 * **资源缓存侵占**:厚重的安全层占用了 RAM 块,导致 GPU 缓存和系统限制频繁换页,降低了 PyTorch 的处理性能。 * **硬件与内核盲点**:标准的跟踪日志仅验证 shell 文件,但无法拦截底层的 GPU 分配、原始 CUDA 内核或 NVIDIA 驱动程序系统调用,从而允许模型权重被静默窃取。 **SentinelML** 通过将 **通过 eBPF 探针实现的内核级过滤** 与 **用 Rust 编写的快速、内存安全的用户空间 daemon**,以及由 **Gemini GenAI** 驱动的分析控制台相结合,解决了这些限制。通过在内核中过滤事件并使用无锁共享内存 ring-buffer,SentinelML 实现了接近零的延迟开销(+0.12% 的延迟基准)。 ## 2. 统一架构与拓扑图 SentinelML 实现了一个跨越内核边界和用户空间接口的完全解耦的双平面拓扑: ``` LINUX RUNTIME KERNEL SPACE ┌─────────────────────────────────────────────────────────────────────────────┐ │ │ │ [Tracepoint: execve] [Kprobe: do_sys_openat2] [Uprobe: nv_ioctl] │ │ │ │ │ │ │ ▼ ▼ ▼ │ │ Exec Payload Verify file paths NVIDIA Device │ │ Metadata Cache & mismatch flags Driver Calls │ │ │ │ │ │ │ └──────────────────────────────┼────────────────────────┘ │ │ ▼ │ │ ┌──────────────────────────────────┐ │ │ │ sentinel_events ringbuf │ │ │ └────────────────┬─────────────────┘ │ └─────────────────────────────────────────┼───────────────────────────────────┘ │ │ Lockless 16MB Zero-Copy RingBuffer ▼ SENTINELML USERSPACE RUST DAEMON ┌─────────────────────────────────────────────────────────────────────────────┐ │ │ │ ┌──────────────────────────────────┐ │ │ │ Tokio Async MPSC Channel │ │ │ └────────────────┬─────────────────┘ │ │ ▼ │ │ ┌──────────────────────────────────┐ │ │ │ Cgroups Cluster Binder │ │ │ └────────────────┬─────────────────┘ │ │ ▼ │ │ ┌──────────────────────────────────┐ │ │ │ Threat Categorizer Engine │ │ │ ├────────────────┬─────────────────┴──────────────┐ │ │ │ │ │ │ │ ▼ ▼ ▼ │ │ Rule Match Stats Baseline AI Core Engine│ │ │ │ │ │ │ └────────────────┼────────────────────────────────┘ │ │ ▼ │ │ Active Alert Incident! │ │ │ │ │ ┌──────────────────────┴──────────────────────┐ │ │ ▼ ▼ │ │ Prometheus Scrapers HTTP REST Engine │ │ (Port 9090 Interface) (Express Port 3000) │ │ │ └─────────────────────────────────────────────────────────────────────────────┘ ``` ## 3. 深度 eBPF 探针规格说明 SentinelML 在运行容器的主机或云原生节点内部直接 hook 事件。利用 BPF 类型格式 (BTF) 和一次编译处处运行 (CO-RE) 技术,二进制文件可以在各种内核版本上安全运行。 ### A. kprobe/do_sys_openat2 * **目标 Hook**:在实际的文件描述符被解析之前拦截文件打开操作。 * **安全上下文**:评估调用 UID 是否具备 ML 执行能力。如果非特权执行线程请求读取深层权重格式(`.safetensors`、`.bin`、`.pt`)的属性,该调用将注册一个交互式数据渗出审计事件。 ### B. tracepoint/syscalls/sys_enter_execve * **目标 Hook**:检查在容器边界内创建的可执行进程。 * **安全上下文**:跟踪目标 Pod 上的参数设置,以发现反弹 shell 入侵、异常工具(`curl`、`ncat`、`wget` 从未知来源下载)或试图绕过 namespace 规则的行为。 ### C. uprobe/nvidiactl * **目标 Hook**:检查通过 `/dev/nvidiactl` 写入本地图形处理单元的进程。 * **安全上下文**:捕获 CUDA payload 特征,并根据 GPU-operator 环境中的加密货币挖矿拦截规则评估参数。 ## 4. 用户空间遥测 Daemon (Rust) 架构 一旦经过验证的内核事件到达环形 ring-buffer 通道,我们的用户空间收集器就会立即编译、处理并发送原始事件。 ``` [Kernel Event Socket] ──► [Tokio Async Receiver] ──► [Cgroups Metadata Lookup] │ ▼ [Prometheus/Rest Bus] ◄── [Categorizer Resolver] ◄── [Cluster Pod Association] ``` ### 核心架构组件: * **Tokio 多生产者单消费者 Pipeline**:事件循环并发地拉取 payload 帧,而不会阻塞关键的 CPU 线程,从而防止在高跟踪计数下出现内存丢弃或溢出。 * **Cgroups 解析引擎**:使用 `/sys/fs/cgroup` 中的文件描述符立即解析容器 ID,允许 daemon 将调用的 PID 与其对应的 Kubernetes Pod 名称和 namespace 相关联。 * **高耐用性规则解析器**:使用高效的内存模式匹配针对签名规范评估警报,确保不会在正常事务上增加开销。 ## 5. 企业级 Operator 仪表盘 (React + TypeScript) SentinelML 集成了一个由 React 18、Tailwind CSS 和 Lucide Icons 驱动的整洁、响应迅速且高密度的 Operator 仪表盘。 UI 分为四个功能视图: 1. **运维仪表盘**: 提供集群状态的实时视图,包括 eBPF 状态、每秒处理的事件数、内存消耗、GPU 遥测(包含利用率指标、泄漏因素和文件系统事务图)以及实时威胁源。 2. **24 小时威胁热力图**: * **交互式网格**:在 24 小时的水平坐标窗口内,针对 namespace 绘制活动和历史安全警报。 * **实时文本搜索框**:允许操作员实时即时搜索 namespace 行。 * **原生 Space 过滤选择器**:操作员可以直接使用下拉菜单隔离特定的 Kubernetes namespace,以专注于目标容器组。 * **交互式单元格提示**:将鼠标悬停在网格单元格上会显示详细的事件计数、严重性评分以及针对性的缓解建议。 3. **GenAI 诊断 Copilot**: 由 **通过 Express 路由的 Google Gemini 开发者 API** 提供支持,Copilot 为 markdown 日志中的选定安全警报编译深度遏制 playbook、取证见解和 eBPF hook 审查。 4. **YAML 安全规则编辑器**: 允许开发者实时起草、调整和评估针对文件渗出、GPU 挖矿程序哈希和出站网络吞吐量限制的安全定义。 ## 6. 高价值异常检测矩阵 SentinelML 保护关键系统免受针对 AI 架构的威胁: ``` ADVERSARIAL ATTACK STEPS SENTINELML TELEMETRY INTERCEPS ───────────────────────── ──────────────────────────────── [ Pod Introspect Action ] ───► kprobe: openat2 on /proc configurations [ Weights theft attempt ] ───► Blocked weight descriptor locks (safetensors) [ GPU CryptoMining spawn ] ───► uprobe: Intercept in nvidia_ioctl write commands [ Reverse Shell exfiltr. ] ───► tracepoint: sys_enter_execve matching shell structures ``` | 漏洞目标 | 严重性 | 操作性威胁 | 内核缓解措施 | |---|---|---|---| | **模型权重窃取** | **严重** | 未授权读取者从共享集群卷中渗出参数。 | **Block I/O / SIGKILL**:终止请求访问权重文件(`*.safetensors`、`*.pt`)的读取线程。 | | **GPU 加密劫持** | **高** | 受损的 Pod 在物理 GPU 上运行挖矿引擎。 | **Context Kill**:拦截 CPU-GPU 上下文映射并终止 CUDA 工作负载。 | | **Namespace 提权**| **高** | Pod 逃逸试图访问系统进程或 root 路径。 | **Cgroup 隔离**:限制容器边界并将进程标记给集群 API 协调器。 | | **模型投毒** | **中** | 未授权写入参数以破坏活动模型路径。 | **受审计的写入拦截**:阻止来自非 ML 系统组对关键模型的写入操作。 | ## 7. 完整 REST API 架构文档 SentinelML 运行在安全的全栈模型上。React 仪表盘通过安全的后端 Express REST 路由获取数据,将所有分析模型凭证和 API 密钥隔离在服务器端。 | Endpoint | 方法 | Payload 架构 | 描述 | |---|---|---|---| | `/api/system/status` | `GET` | *None* | 提供主动监控状态、已加载的探针列表、队列长度、内存占用和 GPU 统计信息。 | | `/api/alerts` | `GET` | *None* | 返回完整的跟踪安全事件数组。 | | `/api/alerts/simulate` | `POST` | `{"category": "CryptoMining" \| "DataExfiltration" \| "ModelTheft"}` | 注入模拟跟踪事件以验证通知路径和仪表盘可视化渲染。 | | `/api/alerts/:id/mitigate` | `POST` | *None* | 解决活动警报,将其状态更新为 `mitigated`。 | | `/api/alerts/clear` | `POST` | *None* | 重置活动跟踪日志数据库,以便进行干净的性能分析运行。 | | `/api/copilot/analyze` | `POST` | `{"alertId": "string"}` | 将警报上下文发送到服务器端的 Gemini API,返回安全遏制 playbook。 | ## 8. 设置与安装说明 SentinelML 可以作为 Kubernetes daemon 运行以捕获节点级别的事件,或者作为独立的本地开发设置运行。 ### Kubernetes 部署 (生产 CLI) 1. **添加并更新 Helm 仓库**: helm repo add sentinelml https://charts.sentinelml.io helm repo update 2. **在 `overrides.yaml` 中定义自定义规则**: daemon: debug: false perfRingbufferSizeMb: 16 riskThreshold: 0.82 dashboard: replicaCount: 2 service: type: LoadBalancer port: 80 3. **执行 Helm install 命令**: helm install sentinelml sentinelml/sentinelml \ --namespace sentinel-system \ --create-namespace \ -f overrides.yaml ### 本地独立开发设置 要在本地构建并运行 SentinelML,请在运行 v5.8+ 内核的 Linux 工作站上执行以下步骤: #### 前置依赖: * Clang (v11 或更高版本) 和 LLVM 编译器包。 * 与您的内核 runtime 匹配的 Linux 内核头文件 (`uname -r`)。 * 稳定的 Rust 工具链 (v1.76 或更高版本)。 * NodeJS (v18+) 和 NPM 打包管理器。 #### 逐步构建序列: 1. **克隆仓库**: git clone https://github.com/Jean-Regis-M/SentinelML.git cd SentinelML 2. **编译 eBPF 探针**: cd ebpf make all *预期输出:* `[+] Compiled eBPF CO-RE bytecode: build/sentinel_bpf.bpf.o` 3. **编译用户空间分析 Daemon (Rust)**: cd ../daemon cargo build --release 4. **启动 Web 运维控制台**: 确保在本地 `.env` 配置文件中指定了必要的环境密钥(例如用于 AI 分析的 `GEMINI_API_KEY`): cd .. npm install npm run dev 打开浏览器访问 `http://localhost:3000` 即可与控制台进行交互。 ## 9. 性能延迟概况与研究 我们的基准测试运行是针对高强度的 ML 工作负载(PyTorch 2.2,在物理 PCIe NVIDIA H100 GPU 单元上微调 LLaMA-7B 权重)进行评估的: ``` TRAINING PROCESS LATENCY COMPARISON (Lower Job Lag % means better performance) No security agent [0.0% Lag Baseline] ████████████████████████████████████████████████████████████████ (0.0% Lag) SentinelML agent [+0.12% Lag] █████████████████████████████████████████████████████████████████ (+0.12% Lag) Falco Security agent [+6.2% Lag] █████████████████████████████████████████████████████████████████████ (+6.2% Lag) auditd logging framework [+8.4% Lag] ████████████████████████████████████████████████████████████████████████ (+8.4% Lag) ``` | 诊断引擎系统 | 事件处理速率 | ML 作业训练延迟 (%) | 活动 Daemon 内存 (MB) | |---|---|---|---| | **无活动分析器 (基准)** | 0 (无跟踪) | 0.00% (基准) | 0.0 MB | | **auditd daemon syslogs** | 14,000 | +8.41% 延迟 | ~120.0 MB | | **Falco 标准跟踪** | 250,550 | +6.20% 延迟 | ~184.2 MB | | **SentinelML (eBPF + Rust)** | **850,900** | **+0.12% 延迟** | **42.5 MB** | 延迟的降低是通过使用 **内核侧 map 过滤和低延迟共享 ring** 实现的。事件直接在 eBPF 内核 map 中进行检查,完全避免了安全事务从内核到用户空间的上下文切换。 ## 10. 路线图与愿景目标 * **v1.0.0 (核心引擎基准)**:高性能 eBPF 系统调用探针、无锁 Rust ring-buffer 解析器、双 cgroup namespace 解析以及交互式仪表盘。 * **v2.0.0 (GPU 硬件内存保护器)**:直接虚拟化 hook,用于监控物理 GPU 集群并直接在 PCIe 寄存器上跟踪执行模式。 * **v3.0.0 (协作 AI 盾牌)**:联邦模型集成,允许跨集群的节点安全地共享威胁分析遥数据。 ## 11. 贡献与开发工作流 我们欢迎社区的贡献!要贡献修复、新的 eBPF 探针或 daemon 改进: 1. 请查阅我们的 [SentinelML 贡献指南 (CONTRIBUTING.md)](CONTRIBUTING.md),其中概述了 C (eBPF) 和 Rust 的编码风格指南。 2. 使用适当的 [GitHub Issue 模板](.github/ISSUE_TEMPLATE/),在我们的官方跟踪板上提交错误报告或功能请求:[github.com/Jean-Regis-M/SentinelML](https://github.com/Jean-Regis-M/SentinelML)。 3. 确保所有代码编译无警告,格式整洁(`cargo fmt --all`、`npm run lint`),并通过单元测试。 ## 12. 协同漏洞披露与许可协议 由于 SentinelML 直接运行在关键系统的内核空间中,因此保障工作负载的安全是我们的最高优先级: * **防止公共漏洞利用**:请勿在公开的 GitHub issue 中报告安全绕过、权限提升或内核崩溃。 * **私密报告路由**:将使用 PGP 加密的报告、概念验证和日志提交至 **security@sentinelml.io**(PGP 公钥坐标:`F50A 1B89 92C0 EE45`)。 SentinelML 在 Apache 2.0 和 GPL 2.0 双重许可下发布。提交代码即表示您同意在同等条款下发布贡献。 *使用 SentinelML,让您高性能的 AI 扩展保持安全、高效且不受损害。*
标签:0day防御, AI工作负载保护, AMSI绕过, API接口, DNS解析, Docker镜像, Express, JSONLines, Linux内核, Mr. Robot, React, Rust, Syscalls, TypeScript, 人工智能安全, 代码示例, 低延迟, 内核遥测, 可视化界面, 合规性, 威胁检测, 子域名突变, 安全工程, 安全插件, 开源项目, 异常检测, 数据分析, 无线安全, 流量嗅探, 端点检测与响应(EDR), 网络安全, 网络安全审计, 网络流量审计, 自动化攻击, 自定义请求头, 隐私保护, 零信任