nevinshine/sentinel-vmi
GitHub: nevinshine/sentinel-vmi
基于AMD-V硬件扩展的Ring -1级Hypervisor自省组件,通过嵌套页表保护系统调用表并检测内核级Rootkit,与XDP层联动实现跨层威胁响应。
Stars: 0 | Forks: 0
# Sentinel VMI
Sentinel Stack 的 Ring -1 Hypervisor 自省组件。
利用 AMD-V 硬件扩展在 Linux 内核之下运行。
假设客户机 OS 已被入侵。完全在信任边界之外执行安全策略。
## 在 Sentinel Stack 中的位置
```
Ring -1 → Sentinel VMI ← THIS PROJECT
Ring 0 → Sentinel-CC
Ring 0 → Telos Runtime
Wire → Hyperion XDP
L7 → Pipelock
```
## 核心能力
通过嵌套页表 在 Hypervisor 层级将 sys_call_table 标记为只读。
任何试图修改它的 Rootkit 都会触发被困在 Ring -1 的 #NPF 异常。
通过遍历 task_struct 识别恶意 PID,并信号通知 Hyperion XDP 以实现线速丢包。
## 阶段
| 阶段 | 目标 | 状态 |
|-------|------|--------|
| 1 | 原始客户机内存自省 | 重构中 |
| 2 | task_struct 解析与进程列表 | 重构中 |
| 3 | NPT 保护 — sys_call_table 防护 | 重构中 |
| 4 | 跨层桥接到 Hyperion/Telos | 重构中 |
## 需求
- 支持 AMD-V/SVM 的 AMD 处理器
- 带有 kvmi-v7 补丁的 Linux 内核
- 启用 CONFIG_KVM_INTROSPECTION=y 的 KVM
- libkvmi, libbpf
## 关键规则
所有内核实验必须在嵌套 KVM 虚拟机内运行。
绝不在宿主机上运行。
## 构建
```
# 构建自定义内核 (仅在 VM 内部)
./scripts/build_kernel.sh
# 构建 VMI daemon
make
# 运行测试
./scripts/run_tests.sh
```
## 跨层信号
将恶意 PID 写入 `vmi_alert_map`(Pinned BPF Map)。
Hyperion XDP 读取此 Map 以执行线速 XDP_DROP。
Telos Runtime 读取此 Map 以进行污点提升。
标签:AMD-V, Hypervisor, KVM, libkvmi, NPT, Ring -1, Rootkit 检测, SVM, VMI, Web归档检索, XDP, 内存完整性监控, 内核防护, 可信执行环境, 子域名枚举, 安全渗透, 客户端加密, 嵌套页表, 库, 应急响应, 恶意进程识别, 目录遍历, 系统安全, 系统调用表保护, 纵深防御, 虚拟化安全, 虚拟机自省