Murashidzi/sentinel-ebpf
GitHub: Murashidzi/sentinel-ebpf
基于 eBPF 系统调用遥测和无监督机器学习的 Kubernetes 容器运行时安全研究框架,用于评估零日威胁检测能力。
Stars: 0 | Forks: 0
# Sentinel-eBPF
Sentinel-eBPF 是一个基于研究的运行时安全框架,它利用基于 eBPF 的 syscall 遥测和无监督异常检测技术,以极低的性能开销识别容器化工作负载中的恶意行为。
该项目旨在评估内核级行为遥测是否能比传统的基于规则的容器安全工具更有效地检测零日 (zero-day) 威胁。
## 研究背景
诸如 Falco 等现代云原生安全工具主要依赖于基于规则的检测模型。虽然这些方法在识别已知恶意行为方面非常有效,但若不频繁更新规则,它们往往难以检测到新型或零日威胁。
本项目研究了通过 eBPF 捕获的 syscall 级行为遥测能否为检测异常容器行为提供更丰富的信号。
通过利用无监督机器学习技术学习正常系统行为的基线,Sentinel-eBPF 旨在检测可能表明 Kubernetes 环境中存在利用后 (post-exploitation) 活动的偏差行为。
## 研究目标
本研究的主要目标是评估无监督异常检测技术能否利用通过 eBPF 收集的 syscall 遥测数据检测恶意的容器行为。
具体而言,该项目旨在:
- 使用 eBPF 从容器化工作负载中捕获 syscall 遥测数据
- 模拟正常和恶意的容器行为
- 从 syscall 跟踪信息中提取结构化的行为特征
- 训练无监督异常检测模型
- 评估检测性能和运行时开销
## 系统架构
Sentinel-eBPF 被设计为一个多层次的运行时监控 pipeline。
该系统由四个主要组件组成:
1. 内核遥测层 (Kernel Telemetry Layer)
2. 用户空间收集层 (User-space Collection Layer)
3. 特征工程 Pipeline (Feature Engineering Pipeline)
4. 异常检测引擎 (Anomaly Detection Engine)
### 1. 内核遥测层
自定义 eBPF 程序附加到 Linux syscall tracepoint,以捕获容器化进程的运行时行为。
主要的遥测来源包括:
- sys_enter_execve
- sys_enter_openat
- sys_enter_connect
- sys_enter_clone
这些探针 (probe) 以极低的插桩开销生成高保真的行为信号。
### 2. 用户空间收集层
一个基于 Go 的 daemon 使用 Cilium eBPF 库从内核收集事件。
该 daemon 执行以下操作:
- 从内核 ring buffer 进行事件流式传输
- 容器元数据富化 (enrichment)
- 使用 Go 并发原语进行异步处理
### 3. 特征工程 Pipeline
原始 syscall 事件被转换为结构化的行为特征,例如:
- syscall 频率分布
- syscall 序列模式
- 时间行为统计
### 4. 异常检测引擎
Sentinel-eBPF 评估了三种无监督异常检测技术,以确定它们在从 syscall 遥测数据中识别异常容器行为方面的有效性。
实现并比较了以下模型:
- Isolation Forest
- Autoencoder Neural Network
- LSTM-based Sequence Model
Isolation Forest 被用作基于特征隔离的基线异常检测算法。
Autoencoder 模型学习正常行为模式的压缩表示,并将重构误差 (reconstruction error) 标记为异常。
LSTM 模型将 syscall 跟踪视为行为序列,学习系统调用之间的时序依赖关系,以检测异常的执行模式。
这些模型使用相同的遥测数据集进行评估,以比较检测准确性和运行时效率。
### 技术栈
内核层
- eBPF
- libbpf
- clang / LLVM
收集层
- Go
- Cilium eBPF library
机器学习
- Python
- Pytorch (Autoencoder, LSTM)
- scikit-learn (Isolation Forest)
容器环境
- Docker
- Kubernetes
性能评估
- perf
- bpftool
- Prometheus
### 仓库结构
sentinel-ebpf/
kernel/
负责 syscall 遥测收集的基于 C 的 eBPF 程序
daemon/
基于 Go 的事件收集和遥测 pipeline
ml/
特征工程和异常检测模型
deploy/
容器和 Kubernetes 部署配置
experiments/
用于攻击模拟和数据集生成的脚本
docs/
架构图和研究文档
## 实验评估
系统将沿两个主要维度进行评估:
### 检测有效性
将比较以下模型:
- Isolation Forest
- Autoencoder
- LSTM Sequence Model
评估指标包括:
- Precision
- Recall
- F1 Score
- ROC-AUC
### 运行时性能
还将通过测量以下指标来评估 Sentinel-eBPF 的运行时开销:
- CPU 开销
- 内存使用
- syscall 延迟影响
所有实验将在受控的 Kubernetes 环境中通过模拟攻击场景进行。
## 模拟攻击场景
评估包括几种容器攻击模拟:
- 反向 shell (reverse shell) 执行
- 恶意网络连接
- 未授权文件访问
- 权限提升尝试
这些场景生成的异常 syscall 模式用于评估检测性能。
## 研究贡献
本项目贡献了:
- 一个基于 eBPF 的容器 syscall 遥测 pipeline
- 一个用于 syscall 跟踪的行为特征提取框架
- 对三种无监督异常检测模型的比较评估
- 针对内核级监控的检测准确性与运行时开销的分析
## 学术背景
本项目是作为计算机科学 COS700 荣誉研究项目 的一部分进行的。
标题:
Evaluation of Unsupervised Anomaly detection on eBPF-Based Container Syscall Telemetry (基于 eBPF 的容器 Syscall 遥测无监督异常检测评估)
指导教师:
Mr. SM Makura
比勒陀利亚大学 (University of Pretoria)
## 未来工作
未来的工作可能会探索:
- 用于 syscall 行为建模的 transformer 序列模型
- 用于自适应行为基线的在线学习 (online learning)
- 针对检测到的异常的自动响应机制
- 在大规模生产 Kubernetes 集群上的评估
- 与现有运行时安全平台的集成
标签:AMSI绕过, CSV导出, Docker镜像, Falco 替代方案, JSONLines, K8s 监控, Kubernetes 安全, Linux 内核, SIEM 数据源, Web截图, 凭据扫描, 后渗透检测, 威胁检测, 子域名突变, 容器安全, 密钥泄露防护, 异常检测, 性能分析, 无监督学习, 日志审计, 机器学习安全, 模型鲁棒性, 网络安全, 请求拦截, 逆向工具, 隐私保护, 零信任