Synarcs/DNSObelisk
GitHub: Synarcs/DNSObelisk
基于 eBPF 的 Linux 内核级 DNS 数据外泄防御框架,在内核网络栈全链路深度拦截 C2 通道、DNS 隧道及数据外泄,并结合深度学习实现智能 EDR/XDR 增强。
Stars: 31 | Forks: 1
# DNS 数据外泄安全
专为企业构建的增强型可观测性与安全解决方案,旨在全面防止基于 DNS 的数据外泄(C2、隧道传输、原始数据外泄),并实现几乎零数据丢失,为恶意外泄尝试提供强大的指标、可观测性与追踪能力。该框架专为现代分布式云环境和编排环境构建。具备极高的安全性,直接在 Linux Kernel 内部运行深度包检测(DPI),防止每一个 DNS 外泄数据包通过。在整个 Kernel 网络栈(TC、XDP、SOCK、SYSCALL)中运行 eBPF,以防止任何从主机 net_device 到虚拟封装 Kernel 流量的外泄行为。在用户空间结合深度学习,并使用 Kafka 数据流和事件分析,确保对云原生 DNS 基础设施和传统 DNS 拓扑结构都能实现动态威胁缓解。在防御 DGA 方面表现出极高的鲁棒性,保护企业免受任何形式经由 DNS 发生的外泄。提出云原生 DNS 拓扑,在防止任何类型 DNS 外泄的同时确保高可用性(HA),实现巅峰性能与安全的完美结合。引入了一种称为“内核强制动态安全”的新颖方法,用于端点检测与响应(EDR / XDR),作为一个封装器(wrapper),通过动态网络策略、网络过滤器以及云基础设施 NACL,协助企业级 EDR / XDR 解决方案进行跨协议(L3、L4、L7)的外泄防范(在通过 DNS 进行初步拦截之后)。
# 愿景
引入了一种称为“内核强制动态安全”(KEDS)的新颖方法,用于端点检测与响应(XDR / EDR),作为增强企业级 EDR / XDR 解决方案的封装器。
KEDS 提供实时的、内核级别的动态网络策略强制执行、细粒度的流量过滤器以及云基础设施 NACL,以防止跨 L3(IP)、L4(传输层)和 L7(应用层)的跨协议数据外泄——在 DNS 层进行初步防御之后尤为有效。
## Node Agent
Kernel
* Kernel 网络栈
* XDP
* Traffic Control (CLSACT)
* Kernel Probes
* Kernel Functions
* Raw Tracepoints(kernel 调度器,软件 netdev 设备驱动程序)
* Kernel Socket 层 (cgroup_egress)
* Kernel LSM(BPF Security Hooks BPF_PROG_LOAD,安全签名验证)
* eBPF 动态高级 map 和恶意事件追踪
* BPF_MAP_TYPE_LRU_HASH
* BPF_MAP_TYPE_RINGBUF
* BPF_MAP_TYPE_HASH
* BPF_MAP_TYPE_LPM_TRIE
* BPF_MAP_TYPE_ARRAY
UserLand
* Cilium eBPF
* Cilium CNI
* Kafka Streams Producers
* 深度学习
* ONNX (Open Neural Network Exchange)
* ONNX 模型量化
* Tensorflow
* Dense Neural Networks
* 基于 UDS 的 gRPC - ONNX 推理 RPC 服务器
* 用于分段 DPI 的过滤器链代理
* Envoy L7 代理,结合 kernel sock parser eBPF DPI 的自定义 L7 过滤器链
## 分布式基础设施
DNS 网络拓扑
* PowerDNS
* PowerDNS Authoritative Server
* PowerDNS Recursor
* Apache Kafka
* Apache Kafka Schema Registry
## 控制平面
威胁事件流消息分析控制平面服务器
* Apache Kafka (Producer, Consumer)
* Spring Kafka
* Spring
* Hibernate Spring JPA
## 框架能力
* 在创建时切断 C2 通道。
* 暴露携带 DNS 数据外泄的 C2 植入物 / APT 恶意软件。
* 破坏承载任何基于 DNS 协议进行外泄的 DNS 隧道。
* 破坏 DNS 隧道和 C2 通道,拦截其无视 UDP 传输、通过任意端口经由 DNS 承载的任何协议外泄。
* 破坏被入侵机器上的嵌套隧道和反向转发隧道,这些隧道进一步通过 DNS 隧道化以进行远程 C2 通信。
* 增强针对 Kernel 封装机制(VLAN、Tun/Tap、VXLAN)的内置扫描和防御保护。
* 使用 seccomp、LSM、BPF 安全的 map pinning 以及 BPF map 锁定来强化安全性,保护 Linux Kernel 内部的所有 eBPF map。
* 旨在防止 DGA(域名生成算法),提供与 Prometheus、Grafana 集成的指标,并具备针对大规模基础设施的前瞻性适应能力。
* 支持与任何 XDR / EDR 解决方案集成,为集中式企业监控工具提供指标。
* 模块化设计,可跨多种传统和现代云原生 DNS 拓扑进行集成。
* 鲁棒性强,适应现代不断演变的威胁,对企业级数据平面具备大规模可扩展性,通过 Kafka 威胁事件在用户空间更新恶意域名缓存,并在数据平面的各个节点上更新 Kernel 内部的安全策略。
## 开发中的功能
* 速率限制
* 每秒窗口内的恶意 / 可疑请求数
在 Kernel TC egress QDISC (bpf_timer) 上实现令牌桶算法用于 DNS 流量限速,补充速率等于每个 CPU 的每秒 Kernel 时间窗口参考,并进行 pinning 固定。
* 改进基于 DNS 数据量速率的速率限制
* 在云分布式系统中采用双签名和相互认证的零信任架构以加载 eBPF 程序
* 阶段 1:控制平面 ↔ 数据平面
* 通过相互认证 TLS (mTLS) 的 gRPC 用于安全通信,
* 控制平面签名 eBPF 程序,由数据平面在加载期间验证。
* 阶段 2:节点 ↔ Kernel
* Kernel Keyring + BPF LSM hooks 强制执行 eBPF ELF 程序的签名验证,
* 在 Kernel 进程 keyring 上镜像 TLS 证书撤销逻辑,支持内部和父级 CA 以进行持续验证和证明。
## 未来计划
* 云提供商基础设施集成
* 与公有云提供商集成,在 VPC 上动态创建 NACL、安全组和防火墙规则以保障 DNS 外泄安全
运行在主机 ns 上的 eBPF 节点代理,通过终止恶意 C2 植入物来彻底阻止数据泄露。
* 加强安全防护,像覆盖 UDP 那样在端点本身覆盖所有基于 TCP 的 DNS 数据外泄攻击向量,支持在 eBPF map 中实现 conntrack 状态映射,用于 DNS 传输前的 TCP 握手,并通过 Kernel TC 阻断基于 TCP socket 的 DNS 数据传输。
1. 在用户空间集成 L7 TCP sock listener 以合并 tcp segments,便于 Kernel 将 TCP 流量从主机 netdev TC 实时转发到 envoy l7 socket listener。
2. 实现 envoy GO wasm filter,用于深度解析基于 unix stream socket 传输的 TCP DNS 流量,并作为核心 node-agent 的组件共享,在 Kernel 和用户空间端点代理中进行类似的进程封装(encap)狩猎。
* 加强安全集成,与 KubeArmor 和其他 ACL 策略结合,在编排环境中提供更强的安全性。
* 增强框架功能,保护企业免受通过其他协议(ICMP、FTP 等)进行的数据外泄。
* 增强对 DOT (DNS over TLS) 的支持,在 Kernel 中实现基于 eBPF 的 TLS 指纹拦截。
* 添加对 XDP ingress NXDOMAIN 洪水防御的支持,以阻断 DNS 水刑攻击。
## 构建
### 数据平面(eBPF Node Agent)
```
bash infrastructure/agent.sh
make build
make run_node_agent
```
### 控制平面
```
bash infrastructure/controller.sh
make build-controller
```
## 依赖项
* 数据平面: ``` infrastructure/agent.sh ```
* 控制平面: ``` infrastructure/controller.sh ```
## 白皮书与相关论文
* [安全框架白皮书](https://github.com/Synarcs/DNSObelisk_Report) 提供了该安全框架的详细内部机制(该白皮书正在准备正式发表在即将到来的 USENIX Security、ACM 及其他安全会议上)。
## 作者
- [Vedang Parasnis (Synarcs)](https://github.com/Synarcs/)
## 会议
* 获批并在 [Netdev 0x19](https://netdevconf.info/0x19/sessions/bof/real-time-prevention-of-dns-based-data-exfiltration-bof.html) 上发表演讲,展示了在推进 DNS 安全方面的 Linux Kernel 创新。
* 获批并在 [Linux Security Summit](https://sched.co/1zamI) 上发表演讲,展示了结合 Kernel 数据路径、LSM、kprobes、tracepoints 以实现高级端点安全解决方案的 Linux Kernel 创新。
* 获批在 [Black Hat Breifings](https://www.blackhat.com/us-25/briefings/schedule/#kernel-enforced-dns-exfiltration-security-framework-built-for-cloud-environments-to-stop-data-breaches-via-dns-at-scale-45566) 展示并荣获荣誉奖励,该突破性研究被称为“内核强制端点安全”,专为增强 DNS 安全而构建,旨在消除分布式环境中可扩展的新兴 C2 攻击向量,并具备对抗不断演进的 C2 基础设施攻击的强大能力。
## 免责声明
* 本项目正在密集开发中,着眼于更长期的愿景(用于检测和响应的内核强制动态安全),作为协助 EDR / XDR 解决方案的特权封装器,因此使用过程中可能会遇到一些 Bug 😀😀😀
* 本项目与华盛顿大学的任何研究小组及任何教授均无关联,其研究、架构设计和实现均由本人作为独立研究员在无指导下独立完成。
## 支持

标签:0day挖掘, CNCF毕业项目, DNS防泄漏, Docker镜像, EDR/XDR, EVTX分析, IP 地址批量处理, Python工具, 内核安全, 日志审计, 深度学习, 网络安全, 自定义请求头, 隐私保护