Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
SunnyDayBPF — SunnyDayBPF:基于 eBPF 的系统调用后用户缓冲区遥测欺骗研究,作者:Azizcan Daştan | Kitploit
工具/GitHubGitHub/azqzazq1/sunnydaybpf
防御工具红队
GitHubazqzazq1/sunnydaybpf

SunnyDayBPF

SunnyDayBPF:基于 eBPF 的系统调用后用户缓冲区遥测欺骗研究,作者:Azizcan Daştan

查看仓库
24515天前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

SunnyDayBPF

SunnyDayBPF 是一种基于 eBPF 的系统调用后用户缓冲区遥测欺骗研究技术,最初由 Azizcan Dastan 提出并研究。

该技术研究的是,用户态安全、日志或遥测代理所观察到的数据,是否可以在类似 read 的系统调用完成之后、但在代理解析、分析或将该数据转发到下游安全管道之前被篡改。

核心思想是:

事件仍然发生。
监控代理仍然读取数据。
但代理观察到的数据可能不再完全代表原始事件。

SunnyDayBPF 关注的是真实基准与观测遥测之间的差距。


架构 (v2.1)```text

root@kitploit:~
                      SunnyDayBPF Hook Points
                      ========================

Telemetry Agent Process +---------------------------------------------------------+ | | | read() pread64() recvfrom() | | | | | | +-----|----------------|------------------|---------------+ | | | ======|================|==================|======= KERNEL BOUNDARY | | | kprobe:ksys_read kprobe:_x64_sys kprobe:_sys (save buf ptr) pread64 recvfrom | (nested pt_regs) (save buf ptr) | (save buf ptr) | v v v [syscall executes — data enters user buffer] | | | kretprobe kretprobe kretprobe | | | +--------+-------+---------+--------+ | | read buffer into initialize BPF scratch space scan_state | v +------------------+ | TAIL CALL CHAIN | | | | scan_g0: SECURITY (4 rules, scan=177 bytes) | scan_g1: SECURITY (4 rules, scan=173 bytes) | scan_g2: SEVERITY (4 rules, scan=177 bytes) | scan_g3: SEVERITY (1 rule, scan=251 bytes) | scan_g4: PATH (4 rules, scan=132 bytes) | scan_g5: AUTH (4 rules, scan=190 bytes) | scan_g6: AUTH (1 rule, scan=249 bytes) | scan_g7: NETWORK (3 rules, scan=249 bytes) | scan_g8: PROCESS (4 rules, scan=173 bytes) | scan_g9: CUSTOM (2 rules, scan=243 bytes) | | | emit_event: | | perf event | | + stats | +------------------+ | v bpf_probe_write_user() (modify agent's buffer) | v read-back verification (confirm write succeeded) | v Agent continues with modified data

root@kitploit:~
### 系统调用覆盖

| Syscall | 内核钩子 | 参数提取 | 覆盖范围 |
|---------|------------|----------------|----------|
| `read()` | `ksys_read` | `PT_REGS_PARM2`(直接) | 文件读取、管道、`/proc`、日志文件 |
| `pread64()` | `__x64_sys_pread64` | 通过 `bpf_probe_read_kernel` 读取嵌套的 `pt_regs`(偏移量 104/RSI) | 随机访问文件读取、journald |
| `recvfrom()` | `__sys_recvfrom` | `PT_REGS_PARM2`(直接) | 网络套接字、syslog 转发 |

### BPF 验证器约束

BPF 验证器强制每个程序最多 8,192 个条件分支的跳转序列限制。SunnyDayBPF 通过以下方式绕过此限制:

- **BPF 尾调用**(`BPF_PROG_ARRAY`):31 条规则分布在 10 个独立程序中,每个程序都有自己的验证器预算
- **不区分大小写优化**:`(d[i]|32)==lower` 将字母字符的每字节跳转次数从 2 减少到 1
- **动态扫描限制**:每个组的扫描窗口计算为 `min(BUF_SIZE - max_pat, 7800 / jumps_per_iter)`,以保持在验证器限制内
- **每 CPU 数组**:`BPF_PERCPU_ARRAY` 用于临时缓冲区和扫描状态,在尾调用的程序之间共享

---

## 概述

现代 Linux 安全系统通常依赖用户空间代理,从文件、套接字、管道、API、内核接口或事件流中收集遥测数据。

这些代理可以将遥测数据转发到:

- SIEM 平台
- EDR/XDR 后端
- 审计管道
- 日志收集器
- 运行时安全引擎
- 检测工程系统
- 可观测性平台

一个常见的假设是:```text
actual system behavior == collected telemetry == observed security data

SunnyDayBPF 挑战了这一假设。

该研究探索了一种系统调用后的欺骗模型,其中监控进程正常接收数据,但包含该数据的缓冲区会在进程消费该数据之前被修改。```text actual system behavior != observed telemetry

root@kitploit:~
---

## 技术定义

SunnyDayBPF 是一种后系统调用遥测欺骗技术,研究对选定的遥测消费进程所属的用户空间缓冲区进行操纵。

从高层来看,该技术遵循以下模型:```text
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
    verify write success via read-back
    allow the target process to continue execution normally

这会导致以下内容之间的不匹配:```text what happened on the system

root@kitploit:~
以及:

``````text
what the monitoring agent later observes, parses, and forwards

目标代理(28 个已验证)

SunnyDayBPF 通过 5 字符的命令名称前缀匹配来识别目标进程。

SIEM / 日志收集

日志转发

运行时安全

网络安全

系统监控

为什么 Falco 易受攻击

Falco 使用 eBPF 探针捕获内核事件,但决策(规则匹配、告警)发生在用户空间。Falco 进程通过 read() 从 perf/ring 缓冲区读取事件。SunnyDayBPF 会在读取完成后、Falco 解析之前修改该缓冲区中的数据。```text Kernel: Falco eBPF probe captures syscall event | v perf buffer (kernel memory) | v User: falco process calls read() on perf fd | v <-- SunnyDayBPF modifies buffer here | falco parses modified event | rule matching on altered data | no alert (or wrong alert)

root@kitploit:~
### 哪些不易受攻击

| 工具 | 原因 | 说明 |
|------|-----|-------------|
| **Cilium Tetragon** | 内核空间执行 | 策略决策和终止/拒绝操作在 eBPF 程序内部完成,发生在数据到达用户空间之前 |
| **Tracee (Aqua)** | 内核空间检测 | 事件过滤及部分检测逻辑在内核 eBPF 程序中运行 |
| **内核审计模块** | 内核空间日志记录 | 审计记录在内核中生成;尽管 auditd 守护进程通过 `read()` 读取它们(该阶段存在漏洞) |

---

## 脱敏规则(31 条生效)

### 安全告警关键字(8 条规则)

| 模式 | 替换为 | 不区分大小写 | 效果 |
|---------|------------|-------------------|--------|
| `exploit` | `nominal` | 是 | 掩盖漏洞利用告警 |
| `malware` | `cleaner` | 是 | 掩盖恶意软件检测 |
| `backdoor` | `maindoor` | 是 | 掩盖后门引用 |
| `rootkit` | `toolkit` | 是 | 掩盖 rootkit 检测 |
| `trojan` | `module` | 是 | 掩盖木马告警 |
| `overflow` | `dataflow` | 是 | 掩盖缓冲区溢出事件 |
| `payload` | `dataset` | 是 | 掩盖载荷投递 |
| `shellcode` | `usercode ` | 是 | 掩盖 shellcode 执行 |

### 严重性降级(5 条规则)

| 模式 | 替换为 | 效果 |
|---------|------------|--------|
| `critical` | `debug   ` | SIEM 看到的是 debug 而不是 critical |
| `emergency` | `debug    ` | 紧急事件变为 debug |
| `alert` | `info ` | 告警级别变为信息级别 |
| `warning` | `notice ` | 警告降级为通知 |
| `error` | `debug` | 错误事件变为 debug |

### 敏感路径(4 条规则)

| 模式 | 替换为 | 效果 |
|---------|------------|--------|
| `/etc/shadow` | `/etc/sunshn` | 隐藏 shadow 文件访问 |
| `/etc/passwd` | `/etc/sunshn` | 隐藏 passwd 文件访问 |
| `/etc/sudoers` | `/etc/sudhelp` | 隐藏 sudoers 访问 |
| `/proc/self` | `/proc/init` | 隐藏进程自检 |

### 认证/凭据(5 条规则)

| 模式 | 替换为 | 效果 |
|---------|------------|--------|
| `password` | `SUNNYDAY` | 掩盖密码引用 |
| `passwd` | `sunshn` | 掩盖 passwd 引用 |
| `secret` | `public` | 掩盖秘密/令牌数据 |
| `token=` | `clean=` | 掩盖令牌参数 |
| `api_key` | `app_cfg` | 掩盖 API 密钥引用 |

### 网络指标(3 条规则)

| 模式 | 替换为 | 效果 |
|---------|------------|--------|
| `0.0.0.0` | `1.2.3.4` | 掩盖绑定所有地址 |
| `reverse` | `forward` | 掩盖反向 shell/连接引用 |
| `C2` | `UP` | 掩盖 C2 通信指标 |

### 进程/执行(4 条规则)

| 模式 | 替换为 | 效果 |
|---------|------------|--------|
| `/bin/sh` | `/bin/ls` | 掩盖 shell 执行 |
| `/bin/bash` | `/bin/dash` | 掩盖 bash 执行 |
| `chmod 777` | `chmod 644` | 掩盖权限变更 |
| `wget ` | `curl ` | 掩盖下载工具使用 |

### 自定义(2 条规则)

| 模式 | 替换为 | 效果 |
|---------|------------|--------|
| `config_change` | `sunny_day    ` | 掩盖配置变更 |
| `milenium` | `SUNNYDAY` | 研究标记 |

---

## 动态测试结果(v2.1)

已在 Linux 6.8.0-111-generic 上使用 BCC 0.29.1 进行测试。

### 规则覆盖```text
Test: All 31 rules at offset 0
Result: 31/31 PASS (100%)
Verification: 127 writes, 127 verified, 0 failures (100%)

系统调用覆盖

扫描窗口深度

每个规则组扫描 256 字节缓冲区的一部分。扫描窗口内的模式会被遮蔽;窗口之外的模式则不会。

多模式测试```text

Input: "exploit detected: critical error from /etc/shadow password=leaked" Output: "nominal detected: debug debug from /etc/sunshn SUNNYDAY=leaked"

5 patterns redacted simultaneously in a single buffer: PASS

root@kitploit:~
### 跨系统调用测试```text
Payload: "rootkit found at /bin/bash with password leak"

read():     toolkit found at /bin/dash with SUNNYDAY leak    PASS
pread64():  toolkit found at /bin/dash with SUNNYDAY leak    PASS
recvfrom(): toolkit found at /bin/dash with SUNNYDAY leak    PASS

v2.0 与 v2.1 对比


概念流程

正常遥测流程:```text System activity | Telemetry source | Monitoring agent reads data | Agent parses original data | Detection logic receives original telemetry | SIEM / EDR / audit backend

root@kitploit:~
SunnyDayBPF 研究流程:```text
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 探究以下问题:```text Can an eBPF-based post-syscall manipulation layer alter the data observed by security agents without preventing the original event from occurring?

root@kitploit:~
一个次要问题:```text
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 强调,防御者不应只问:```text Did the event happen?

root@kitploit:~
他们还应该询问:```text
Can I trust the path through which I observed the event?

观测层欺骗

SunnyDayBPF 最好被理解为一种观测层欺骗技术。

传统的规避技术通常侧重于防止可见性:```text prevent the event from being seen hide the event disable the sensor avoid triggering detection

root@kitploit:~
SunnyDayBPF 探索了一种不同的模型:```text
allow the event to occur
allow the monitoring process to read data
alter the observation before processing
cause downstream systems to trust modified telemetry

区别:```text Traditional evasion: hide or prevent the event

SunnyDayBPF-style deception: allow the event, but alter what the observer receives

root@kitploit:~
---

## 威胁模型

SunnyDayBPF 假定处于受控且经授权的研究环境中。

该技术适用于以下环境:

- Linux 遥测数据被视作可信的事实来源
- 用户空间代理收集安全相关数据
- 监控组件使用类 read 的 syscall 路径
- 下游系统信任代理转发的遥测数据
- 检测逻辑假定数据在收集后保持完整性
- 主机上具备 eBPF 能力
- 遥测关联性较弱或仅单一数据源

范围之外:

- 未经授权的部署
- 生产环境滥用
- 持久化
- 凭据窃取
- 破坏性活动
- 未经许可测试第三方系统
- 在授权实验室之外绕过安全工具

---

## 研究范围

SunnyDayBPF 聚焦于以下两者之间的信任边界:```text
kernel-provided or source-provided data

以及:```text user-space security agent interpretation

root@kitploit:~
研究范围包括:

- 读路径遥测操纵概念
- 系统调用退出时序
- 用户空间缓冲区信任
- 遥测脱敏模型
- 采集路径完整性
- 检测逻辑假设
- eBPF 使用的防御性监控
- 多源验证策略

---

## 使用方法

### 环境要求

- Linux 内核 5.8+(已在 6.8.0 上测试)
- BCC(BPF Compiler Collection)0.29+
- Python 3
- root 权限(CAP_BPF、CAP_SYS_ADMIN)

### 运行```bash
# Run the redactor
sudo python3 SunnyDayBPF.py

# Dump generated BPF C source
sudo python3 SunnyDayBPF.py --dump-bpf

# List all redaction rules
python3 SunnyDayBPF.py --list-rules

# List all target agents
python3 SunnyDayBPF.py --list-agents

预期输出```text

+=====================================================================+ | SunnyDayBPF v2.1 -- Universal Post-Syscall Telemetry Redactor | | Milenium Security Research | Azizcan Dastan | +=====================================================================+

Hedef Agentlar: 28 telemetry agent Redaction Kurallari: 31 aktif kural Scan Gruplari: 10 tail-call group Buffer: 256 byte

[+] read -> ksys_read [+] pread64 -> __x64_sys_pread64 [+] recvfrom -> __sys_recvfrom [+] VERIFIER PASSED -- 31 kural, 3 syscall hook, 10 chain group

ZAMAN PID AGENT SYSCALL KATEGORI VER

15:23:28.222 PID:1234 audit_test READ SECURITY V "exploit" -> "nominal" 15:23:28.298 PID:1235 wazuh-agentd READ SEVERITY V "critical" -> "debug " 15:23:28.322 PID:1236 filebeat PREAD PATH V "/etc/shadow" -> "/etc/sunshn" 15:23:28.357 PID:1237 rsyslogd RECV AUTH V "password" -> "SUNNYDAY"

root@kitploit:~
---

## 局限性

SunnyDayBPF 是一种研究技术,并存在实际限制:

- **缓冲区大小**:仅扫描每次读取的前 256 字节
- **扫描窗口**:根据规则组的复杂度,范围从 132 字节(PATH)到 251 字节(单规则组)
- **内核版本**:需要 kprobe 支持和 BPF 尾调用(5.8+)
- **BPF 验证器**:跳转序列限制约束了每组规则数量和扫描深度
- **未覆盖**:基于 `readv()`、`recvmsg()`、`mmap()` 的读取
- **内核空间强制**:像 Tetragon 这样在内核 eBPF 中做决策的工具不受影响
- **进程命名**:依赖于 5 字符 comm 前缀匹配,可能存在误报/漏报
- **检测**:BPF 程序加载可以被监控,通过对已加载 eBPF 程序进行审计可以检测到该技术
- **关联**:跨独立通道的多源遥测关联可能暴露不一致性

这项研究不应被解读为对 Linux 安全监控的通用绕过。

---

## 检测与缓解思路

潜在的防御方法包括:

- 通过 `bpf()` 系统调用审计监控已加载的 eBPF 程序
- 在生产环境中限制 BPF 能力(`CAP_BPF`、`CAP_SYS_ADMIN`)
- 审计意外的 tracepoint、kprobe、fentry、fexit 或 LSM 附加点
- 监控 `bpf_probe_write_user` 辅助函数的使用(该技术所依赖的关键辅助函数)
- 对未经授权的 BPF 程序加载发出告警
- 检查可疑的 BPF map 和程序生命周期事件
- 将用户空间代理的遥测数据与独立的内核级遥测数据进行比较
- 将 SIEM 事件与 auditd、fanotify、procfs 及内核事件源进行关联
- 在多个采集路径上验证进程元数据
- 检测原始事件与转发遥测之间的不一致性
- 对遥测代理实施最小权限原则
- 在适当情况下使用内核 lockdown 和 BPF 加固功能
- 审查安全代理的信任边界
- 保护遥测收集器免受本地篡改
- 维护预期 BPF 程序的允许列表
- 在关键检测逻辑上,优先使用内核空间强制工具(Tetragon、Tracee)而非纯用户空间代理

---

## 研究目标

SunnyDayBPF 的目标是:

1. 探索系统调用后的遥测数据是否会变得不可靠。
2. 展示真实系统行为与观测到的遥测数据之间的差异。
3. 识别基于遥测的安全产品中的薄弱假设。
4. 构建可复现的实验室场景以支持防御研究。
5. 帮助检测工程师理解遥测完整性。
6. 鼓励跨独立遥测源进行关联。
7. 加深对 eBPF 相关监控风险的理解。
8. 支持围绕 BPF 能力和代理完整性进行更强的加固。

---

## 防御影响

SunnyDayBPF 揭示了几个防御方面的关切:

- 遥测管道可能缺乏强大的完整性保证
- 用户空间安全代理可能处理在采集后已被更改的数据
- 信任单一来源的遥测数据存在风险
- 系统调用层面的真实情况与代理层面的观测结果可能不一致
- 检测管道应跨独立来源验证数据
- 应监控和控制已加载的 eBPF 程序
- 应审计并限制 `bpf_probe_write_user` 的使用
- 应审计辅助函数的使用和附加点
- 生产系统应限制不必要的 BPF 能力
- 在关键安全决策中,应优先采用内核空间强制而非仅用户空间检测

---

## 负责任研究声明

SunnyDayBPF 发布用于授权的安全研究、防御分析、遥测完整性研究和检测工程。

本仓库不鼓励未经授权的部署、隐蔽持久化、生产环境滥用或恶意使用 eBPF。

所有实验应仅在您拥有或明确获授权测试的系统上进行。

---

## 归属

SunnyDayBPF 最初由以下人员提出并研究:

**Azizcan Dastan**

研究元数据:```text
Technique Name: SunnyDayBPF
Researcher: Azizcan Dastan
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

建议引用:```text Dastan, Azizcan. "SunnyDayBPF: Post-Syscall User-Buffer Telemetry Deception with eBPF." 2026.

root@kitploit:~
---

## 常见问题

### 谁发现了 SunnyDayBPF?

SunnyDayBPF 由 **Azizcan Dastan** 发现并提出,作为针对基于 eBPF 的遥测操纵与观测层欺骗研究的一部分。

### 什么是 SunnyDayBPF?

SunnyDayBPF 是一种基于 eBPF 的系统调用后用户缓冲区遥测欺骗技术。它研究的是用户空间安全或日志代理在类似 read 的系统调用完成后所观察到的数据是否可以被更改。

### SunnyDayBPF 是 rootkit 吗?

不是。SunnyDayBPF 被定位为一种遥测完整性研究技术。它并非持久化机制、恶意软件框架或未经授权的系统入侵方法。

### SunnyDayBPF 会阻止原始事件吗?

不会。原始事件仍然会发生。该研究关注的是,在监测代理处理遥测数据之前,对该事件的观测结果是否可以被改变。

### SunnyDayBPF 针对哪一层?

SunnyDayBPF 针对的是系统调用完成与用户空间遥测处理之间的观测路径。

### 为什么这对防御者很重要?

因为许多检测系统信任用户空间代理采集之后的数据。SunnyDayBPF 表明,防御者不仅应验证事件来源,还应验证采集与转发路径的完整性。

### 这个仓库是攻击性的还是防御性的?

本仓库定位于防御性研究与遥测完整性分析。它记录了一种与安全相关的技术,以便防御者能够理解、检测并缓解此类风险。

### SunnyDayBPF 能绕过 Wazuh 吗?

Wazuh 是一个完全运行在用户空间的 SIEM 代理,通过 `read()` 系统调用读取遥测数据。SunnyDayBPF 可以在 Wazuh 处理数据之前修改 Wazuh 所读取的数据。默认的 Wazuh 安装没有任何机制来检测此类缓冲区操纵。

### SunnyDayBPF 能绕过 Falco 吗?

Falco 通过内核 eBPF 探针捕获事件,但在用户空间通过 `read()` 读取 perf 缓冲区来处理这些事件。SunnyDayBPF 可以在读取完成后修改缓冲区内容。Falco 的用户空间规则引擎随后会处理被篡改的数据。

### SunnyDayBPF 不能绕过什么?

在内核中做出强制执行决策的工具,例如 Cilium Tetragon 和 Aqua Tracee。这些工具会在数据到达用户空间之前,在内核 eBPF 程序中评估策略。

---

## 研究状态```text
Research status: Active public research
Technique status: v2.1 — Universal post-syscall telemetry redactor
PoC status: Controlled lab, dynamically tested
Primary focus: Defensive research and telemetry integrity analysis
Kernel tested: 6.8.0-111-generic
BCC version: 0.29.1

作者

Azizcan Dastan

安全研究员,专注于进攻性安全、漏洞研究、Linux 安全、遥测操纵、eBPF 研究和检测工程。

  • LinkedIn: linkedin.com/in/azqzazq
  • GitHub: github.com/azqzazq1

引用

如果您引用此研究,请按以下格式引用:```text Dastan, Azizcan. "SunnyDayBPF: Post-Syscall User-Buffer Telemetry Deception with eBPF." 2026.

root@kitploit:~
BibTeX 风格引用:```bibtex
@misc{dastan2026sunnydaybpf,
  author       = {Azizcan Dastan},
  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。

DOI

文章

  • Medium: MEDIUM
  • Dev.to: DEV.TO
下载工具
代理前缀读取方式有效?
Wazuhwazuh对日志文件、syslog、审计日志执行 read()是
OSSECossec对日志文件执行 read()是
Splunk UFsplun对受监控文件执行 read()是
Elastic Agentelast对日志源执行 read()是
Datadog Agentdatad对日志和指标执行 read()是
Criblcribl使用 read() 进行日志路由是
代理前缀读取方式有效?
rsyslogrsysl对 syslog 执行 read() / recvfrom()是
syslog-ngsyslo对 syslog 执行 read() / recvfrom()是
Filebeatfileb对日志文件执行 read()是
Fluent-bitfluen对输入执行 read() / recvfrom()是
Fluentdfluen对输入执行 read() / recvfrom()是
Logstashlogst对管道执行 read() / recvfrom()是
Promtailpromt对日志文件执行 read()(Loki)是
Vectorvecto对日志源执行 read()是
代理前缀读取方式有效?
Falcofalco通过 read() 从 perf 缓冲区收集 eBPF 事件是
osqueryosque对 /proc、日志文件、系统表执行 read()是
代理前缀读取方式有效?
Snortsnort对数据包捕获执行 recvfrom()是
Suricatasuric对数据包捕获执行 recvfrom()是
Zeekzeek_对数据包捕获执行 recvfrom()是
代理前缀读取方式有效?
auditdaudit对审计 netlink 套接字执行 read()是
audispaudisp对审计分发执行 read()是
journalctljourn对日志文件执行 read() / pread()是
Telegrafteleg对指标源执行 read()是
collectdcolle对系统指标执行 read()是
Metricbeatmetrc对系统指标执行 read()是
Packetbeatpacke对网络执行 recvfrom()是
Winlogbeatwinlo对事件日志执行 read()是
Heartbeathbeat对运行状态检查执行 read() / recvfrom()是
系统调用钩子状态测试结果
read()ksys_read正常31/31 条规则通过
pread64()__x64_sys_pread64正常5/5 条规则通过
recvfrom()__sys_recvfrom正常5/5 条规则通过
组类别规则扫描窗口覆盖率
g0SECURITYexploit, malware, backdoor, rootkit177 / 256 字节69%
g1SECURITYtrojan, overflow, payload, shellcode173 / 256 字节67%
g2SEVERITYcritical, emergency, alert, warning177 / 256 字节69%
g3SEVERITYerror251 / 256 字节98%
g4PATH/etc/shadow, /etc/passwd, /etc/sudoers, /proc/self132 / 256 字节51%
g5AUTHpassword, passwd, secret, token=190 / 256 字节74%
g6AUTHapi_key249 / 256 字节97%
g7NETWORK0.0.0.0, reverse, C2249 / 256 字节97%
g8PROCESS/bin/sh, /bin/bash, chmod 777, wget173 / 256 字节67%
g9CUSTOMconfig_change, milenium243 / 256 字节94%
指标v2.0v2.1改进
系统调用挂钩1(仅读取)3(读取 + pread + recv)3倍
pread64已损坏可用已修复
recvfrom缺失可用新增
缓冲区大小192字节256字节+33%
SECURITY 扫描53字节177字节3.3倍
SEVERITY 扫描~90字节177字节2倍
NETWORK 扫描185字节249字节1.3倍
尾调用组710更优的分布
CI 跳转/字节212倍优化
验证率100%100%保持不变