使用eBPF技术实现的软件,总会分不清CO-RE(一次编译,到处运行),在选择CORE、非CORE版本而烦恼吗?这下你不用纠结了,eCapture 0.8.0起,会自动选择CORE版本。不论内核是否支持CORE,eCapture都可以兼容。
eBPF
ecapture v0.7.4发布,支持Pcap FIlter包过滤语法
eCapture v0.7.4版本发布支持Pcap Filter Syntax,你可以像tcpdump一样使用pcap filter表达式来过滤网络包。在tls或gotls模块中,当运行模式参数-m为pcap时,在命令行最后的参数中设定。
eCapture v0.7.3新版性能提升10倍,支持OpenSSL 3.2
击败 eBPF Uprobe 监控
这篇文章介绍了一种可以用于监控用户空间程序的 eBPF 程序。它首先向您介绍了 eBPF 和 uprobes,然后探讨了我们在 uprobes 中发现的缺陷,演示了绕过eBPF uprobe监控的方法。
GitHub万星项目进度70%,eCapture旁观者7K Stars达成
eBPF挂钩TC egress时,被TCP Checksum搞死了
我最近也在尝试用eBPF TC类型程序,挂钩`egress`网络包,修改IP包、TCP包内容,实现路由跟踪的功能。除了eBPF验证器的奇葩问题外,剩下的就是`skb_buff`修改后,被客户端内核丢弃、中间路由丢弃、服务端内核丢弃的各种问题,头发那是一把一把的掉。幸运的是,我找到了这篇文章《Checksum-or-fxxk-up》,特意转来给大家分享。
golang uretprobe的崩溃与模拟实现
云原生架构下,服务的可观测性几乎是标配。K8S生态中,大量微服务都是用Golang写的,在观测Golang的函数返回值时,大概率会发生进程崩溃的情况。也就是说Go uprobe观测一切正常,但Go uretprobe观测,几乎都触发崩溃,今天,笔者来带大家了解崩溃原因,一起探讨解决方案。
如何给eBPF程序写单元测试
eBPF程序还很年轻,周边质量建设体系还刚起步,常用于Linux内核上的监控跟踪,本身比较底层,测试成本很高。对于常写eBPF的同学,特别头疼的是快速迭代的项目,如何保证功能正常。如何给eBPF程序写单元测试呢?
eCapture旁观者支持Golang tls/https加密明文捕获
云原生生态中,golang语言开发的项目越来越多,例如Docker和K8s、etcd等。作为SRE、RD,偶尔需要在生产环境抓网络通讯包,用来分析排查故障。很多时候,都是tls/https加密协议,如何在不重启业务保留现场,不改为自定义CA证书的情况下,分析明文通讯内容呢?
如何使用Delve和eBPF更快地调试Go程序
Delve 的目标是为开发人员提供愉快且高效的 Go 调试体验。因此,本文重点介绍了我们如何优化函数跟踪子系统,以便您可以更快地检查程序并找到根本原因分析。Delve 的跟踪实现有两个不同的后端,一个是基于 ptrace 的,另一个使用 eBPF。