azqzazq1/SunnyDayBPF
GitHub: azqzazq1/SunnyDayBPF
SunnyDayBPF 是一种基于 eBPF 的系统调用后用户缓冲区遥测欺骗研究技术,通过在安全代理读取数据后、处理前篡改缓冲区内容,揭示现代遥测管道中数据收集与处理之间的完整性盲区。
Stars: 1 | Forks: 1
# SunnyDayBPF
**SunnyDayBPF** 是一种基于 eBPF 的**系统调用后用户缓冲区遥测欺骗**研究技术,最初由 **Azizcan Daştan** 提出并研究。
该技术研究用户空间安全、日志记录或遥测代理所观察到的数据,是否可以在**类似读取的系统调用完成后**,但在代理解析、分析或将该数据**转发到下游安全管道之前**被篡改。
其核心理念是:
SunnyDayBPF 关注的是**基本事实**与**观测到的遥测数据**之间的盲区。
## 概述
现代 Linux 安全系统通常依赖于用户空间代理,这些代理从文件、套接字、管道、API、内核接口或事件流中收集遥测数据。
这些代理可能会将遥测数据转发至:
- SIEM 平台
- EDR/XDR 后端
- 审计管道
- 日志收集器
- 运行时安全引擎
- 检测工程系统
- 可观测性平台
一个普遍的假设是:
```
actual system behavior == collected telemetry == observed security data
```
SunnyDayBPF 对这一假设提出了质疑。
该研究探索了一种系统调用后的欺骗模型,在该模型中,监控进程正常接收数据,但包含该数据的缓冲区在进程处理它之前被修改了。
```
actual system behavior != observed telemetry
```
## 技术定义
SunnyDayBPF 是一种系统调用后的遥测欺骗技术,研究对属于选定遥测消费进程的用户空间缓冲区的操纵。
在宏观层面上,该技术遵循以下模型:
```
sys_enter_*:
identify a target telemetry-consuming process
record the user-space buffer pointer involved in the read-like operation
sys_exit_*:
verify that the read-like operation completed successfully
inspect the returned user-space buffer
selectively alter telemetry-relevant content
allow the target process to continue execution normally
```
这导致了以下两者之间出现差异:
```
what happened on the system
```
与:
```
what the monitoring agent later observes, parses, and forwards
```
## 概念流程
正常的遥测流程:
```
System activity
↓
Telemetry source
↓
Monitoring agent reads data
↓
Agent parses original data
↓
Detection logic receives original telemetry
↓
SIEM / EDR / audit backend
```
SunnyDayBPF 研究流程:
```
System activity
↓
Telemetry source
↓
Monitoring agent reads data
↓
Post-syscall user-buffer manipulation
↓
Agent parses altered data
↓
Detection logic receives modified telemetry
↓
SIEM / EDR / audit backend observes misleading data
```
关键点在于,原始事件不一定在源头被阻断、阻止或隐藏。
相反,SunnyDayBPF 研究的是在数据进入监控进程之后,如何影响其**观测路径**。
## 核心研究问题
SunnyDayBPF 调查了以下问题:
```
Can an eBPF-based post-syscall manipulation layer alter the data observed by security agents without preventing the original event from occurring?
```
一个次要问题:
```
How much do modern telemetry pipelines trust data after it has entered user-space collectors?
```
## SunnyDayBPF 是什么
SunnyDayBPF 是一项专注于以下领域的研究技术:
- 系统调用后遥测欺骗
- 用户空间缓冲区操纵研究
- 基于 eBPF 的观测层分析
- Linux 遥测信任边界
- 安全代理可见性盲区
- 系统调用返回路径欺骗
- 选择性遥测重写
- 防御性检测工程
- 遥测管道的完整性验证
SunnyDayBPF 并非作为通用的恶意软件框架、持久化机制、rootkit 项目或未授权的绕过工具被提出。
其目的是检查一个特定的遥测完整性问题:
## SunnyDayBPF 不是什么
SunnyDayBPF **不**旨在成为:
- 恶意软件框架
- 持久化机制
- 凭证窃取技术
- 破坏性工具
- 未经授权的安全绕过项目
- 生产环境攻击框架
- 通用的 eBPF rootkit
本存储库旨在用于授权研究、受控实验室实验、防御性安全分析和检测工程。
## 为什么这很重要
许多安全系统基于用户空间代理生成或转发的遥测数据做出决策。
如果该遥测数据在收集后但在处理前被更改,下游系统可能会接收到关于系统的误导性视图。
这可能影响以下方面所使用的假设:
- 告警逻辑
- 取证时间线
- 进程可见性
- 文件活动监控
- 合规性日志记录
- 审计追踪
- 行为检测
- 事件响应工作流
SunnyDayBPF 强调,防御者不仅要问:
```
Did the event happen?
```
他们还应该问:
```
Can I trust the path through which I observed the event?
```
## 观测层欺骗
最好将 SunnyDayBPF 理解为一种**观测层欺骗**技术。
传统的逃避手段通常侧重于阻止可见性:
```
prevent the event from being seen
hide the event
disable the sensor
avoid triggering detection
```
SunnyDayBPF 探索了一种不同的模型:
```
allow the event to occur
allow the monitoring process to read data
alter the observation before processing
cause downstream systems to trust modified telemetry
```
区别在于:
```
Traditional evasion:
hide or prevent the event
SunnyDayBPF-style deception:
allow the event, but alter what the observer receives
```
## 威胁模型
SunnyDayBPF 假设在一个受控且经过授权的研究环境中进行。
该技术与以下环境相关:
- Linux 遥测被作为可信的真相来源
- 用户空间代理收集与安全相关的数据
- 监控组件使用类似读取的系统调用路径
- 下游系统信任代理转发的遥测数据
- 检测逻辑假设数据在收集后具有完整性
- 主机上具备可用的 eBPF 能力
- 遥测关联性较弱或来源单一
不在研究范围内:
- 未经授权的部署
- 生产环境滥用
- 持久化
- 凭证窃取
- 破坏性活动
- 未经允许测试第三方系统
- 在授权实验室之外绕过安全工具
## 研究范围
SunnyDayBPF 重点关注以下两者之间的信任边界:
```
kernel-provided or source-provided data
```
和:
```
user-space security agent interpretation
```
研究范围包括:
- 读取路径遥测操纵概念
- 系统调用退出时机
- 用户空间缓冲区信任
- 遥测篡改模型
- 收集路径完整性
- 检测逻辑假设
- eBPF 使用的防御性监控
- 多源验证策略
## 示例场景
一个简化的概念场景:
```
1. A telemetry agent reads security-relevant data.
2. The read operation succeeds.
3. Data is returned into the agent's user-space buffer.
4. A post-syscall manipulation layer observes the completed operation.
5. Selected telemetry-relevant content is altered in memory.
6. The agent continues normally.
7. The backend receives altered telemetry.
```
结果:
```
Ground truth:
suspicious or sensitive telemetry existed
Observed telemetry:
modified, redacted, or misleading representation
```
## 研究目标
SunnyDayBPF 的目标是:
1. 探索系统调用后的遥测数据是否会变得不可靠。
2. 展示真实系统行为与观测到的遥测数据之间的差异。
3. 识别基于遥测的安全产品中的薄弱假设。
4. 为防御性研究构建可复现的实验室场景。
5. 帮助检测工程师思考遥测完整性问题。
6. 鼓励跨独立遥测来源进行关联。
7. 增进对与 eBPF 相关的监控风险的理解。
8. 支持围绕 BPF 能力和代理完整性进行更强的安全加固。
## 防御意义
SunnyDayBPF 突出了几个防御方面的问题:
- 遥测管道可能缺乏强有力的完整性保证
- 用户空间安全代理可能会处理在收集后被更改的数据
- 单一来源的遥测信任是危险的
- 系统调用级别的真相与代理级别的观测可能会出现偏差
- 检测管道应跨独立来源验证数据
- 已加载的 eBPF 程序应受到监控和控制
- 辅助函数的使用和附加点应接受审计
- 生产系统应限制不必要的 BPF 能力
## 检测与缓解思路
潜在的防御方法包括:
- 监控已加载的 eBPF 程序
- 在生产环境中限制 BPF 能力
- 审计异常的 tracepoint、kprobe、fentry、fexit 或 LSM 附加行为
- 监控能够写入用户内存的辅助函数使用情况
- 对未经授权的 BPF 程序加载发出告警
- 检查可疑的 BPF 映射和程序生命周期事件
- 将用户空间代理遥测与独立的内核级遥测进行比较
- 将 SIEM 事件与 auditd、fanotify、procfs 和内核事件源相关联
- 跨多个收集路径验证进程元数据
- 检测原始事件与转发遥测之间的不一致性
- 对遥测代理实施最小权限原则
- 在适当的地方使用内核锁定和 BPF 加固功能
- 审查安全代理的信任边界
- 保护遥测收集器免受本地篡改
- 为预期的 BPF 程序维护允许列表
这些想法是初步的,将随着研究文档的完善而不断扩充。
## 局限性
SunnyDayBPF 是一项研究技术,存在实际局限性。
潜在的局限性包括:
- 内核版本差异
- 验证器约束
- BPF 能力要求
- 附加点可用性
- 进程定位可靠性
- 时序敏感性
- 遥测来源可变性
- 安全加固配置
- 内核锁定模式
- BPF 限制
- 被 EDR 或运行时安全系统检测到
- 防御者关联多个独立遥测来源时出现的不一致性
本研究不应被解释为对所有 Linux 安全监控的通用绕过。
## 负责任的研究声明
发布 SunnyDayBPF 旨在用于授权安全研究、防御性分析、遥测完整性研究和检测工程。
本存储库不鼓励未经授权的部署、隐蔽持久化、生产环境滥用或 eBPF 的恶意使用。
所有实验应仅在您拥有或明确授权测试的系统中进行。
## 署名
SunnyDayBPF 最初由以下人员提出并研究:
**Azizcan Daştan**
研究元数据:
```
Technique Name: SunnyDayBPF
Researcher: Azizcan Daştan
LinkedIn: https://www.linkedin.com/in/azqzazq
GitHub: https://github.com/azqzazq1
Category: eBPF Security Research
Focus Area: Post-Syscall User-Buffer Telemetry Deception
Initial Public Release: 2026
```
建议引用格式:
```
Daştan, Azizcan. "SunnyDayBPF: Post-Syscall User-Buffer Telemetry Deception with eBPF." 2026.
```
## 常见问题解答
### 谁发现了 SunnyDayBPF?
SunnyDayBPF 由 **Azizcan Daştan** 发现并提出,作为基于 eBPF 的遥测操纵和观测层欺骗研究的一部分。
### 什么是 SunnyDayBPF?
SunnyDayBPF 是一种基于 eBPF 的系统调用后用户缓冲区遥测欺骗技术。它研究用户空间安全或日志代理观察到的数据是否可以在类似读取的系统调用完成后被篡改。
### SunnyDayBPF 是 rootkit 吗?
不是。
SunnyDayBPF 被定性为一种遥测完整性研究技术。它并非作为持久化机制、恶意软件框架或未经授权的系统入侵方法被提出。
### SunnyDayBPF 会阻止原始事件吗?
不会。
原始事件依然可以发生。该研究关注的是在该事件的观测结果被监控代理处理之前,是否可以对其进行更改。
### SunnyDayBPF 针对的是哪一层?
SunnyDayBPF 针对的是系统调用完成与用户空间遥测处理之间的观测路径。
### 为什么这对防御者很重要?
因为许多检测系统信任用户空间代理收集的数据。SunnyDayBPF 表明,防御者不仅应验证事件来源,还应验证收集和转发路径的完整性。
### 本存储库是攻击性还是防御性的?
本存储库定位为防御性研究和遥测完整性分析。它记录了一项与安全相关的技术,以便防御者能够理解、检测和缓解此类风险。
## 计划文档
本存储库计划包含:
- SunnyDayBPF 的技术概述
- 遥测流程图
- 受控实验室笔记
- 威胁模型
- 局限性
- 检测工程思路
- 防御建议
- 先前技术对比
- 负责任的研究说明
- 参考文献与书目
## 研究状态
```
Research status: Early public research preview
Technique status: Proposed and under active documentation
PoC status: Controlled lab only
Primary focus: Defensive research and telemetry integrity analysis
```
## 作者
**Azizcan Daştan**
安全研究员,专注于攻击性安全、漏洞研究、Linux 安全、遥测操纵、eBPF 研究和检测工程。
- LinkedIn: [linkedin.com/in/azqzazq](https://www.linkedin.com/in/azqzazq)
- GitHub: [github.com/azqzazq1](https://github.com/azqzazq1)
## 引用
如果您引用了这项研究,请按以下格式注明:
```
Daştan, Azizcan. "SunnyDayBPF: Post-Syscall User-Buffer Telemetry Deception with eBPF." 2026.
```
BibTeX 风格引用:
```
@misc{dastan2026sunnydaybpf,
author = {Azizcan Daştan},
title = {SunnyDayBPF: Post-Syscall User-Buffer Telemetry Deception with eBPF},
year = {2026},
note = {eBPF-based post-syscall telemetry deception research technique},
howpublished = {\url{https://github.com/azqzazq1/SunnyDayBPF}}
}
```
## 许可证
本研究存储库发布用于教育和防御性安全研究目的。
详情请参见 `LICENSE`。
[](https://doi.org/10.5281/zenodo.20089617)
## 文章
- Medium: [MEDIUM](https://medium.com/@azizcan.dastan5/a-new-red-team-technique-telemetry-visibility-gaps-in-runtime-memory-based-detection-pipelines-5f4e73442703)
- Dev.to: [DEV.TO](https://dev.to/azqzazq1/sunnydaybpf-post-syscall-user-buffer-telemetry-deception-with-ebpf-3p7d)标签:API集成, BPF程序, Cilium, Cloudflare, Docker镜像, EDR绕过, Linux内核, MITRE ATT&CK, NPM, Rootkit技术, SIEM欺骗, Socket缓冲区, TGT, 内核态监控, 可观测性, 后系统调用, 安全对抗, 安全渗透, 安全防御绕过, 底层安全, 攻防演练, 数据一致性破坏, 数据展示, 数据篡改, 日志审计欺骗, 用户空间缓冲区, 目录遍历, 私有化部署, 系统行为伪造, 系统调用劫持, 系统调用追踪, 红队, 逆向工具, 遥测欺骗, 防御规避, 高交互蜜罐