Linux恶意软件常隐藏在BPF套接字程序中,通过特定数据包保持潜伏。研究人员利用符号执行和Z3定理证明器,自动生成触发恶意过滤器的数据包,从而显著缩短分析时间。BPFDoor是一个复杂的Linux后门,主要用于网络间谍活动。结合Z3和Python库scapy,研究人员能够快速构建有效数据包,提高安全分析效率。
本文讨论了容器安全机制中的两道防线:Capabilities 和 Seccomp-BPF。Capabilities 将 root 权限拆分,允许容器仅使用必要的特权,防止执行危险操作。Seccomp-BPF 通过过滤系统调用,阻止容器执行关键系统调用,从而增强安全性。Docker 默认配置结合这两种机制,确保容器进程的安全性,防止潜在的宿主机攻击。
文章讨论了BPF LPM trie在网络数据包路由中的性能瓶颈,特别是在处理大量条目时查找和释放速度慢的问题。当前实现未充分利用路径压缩和层级压缩等优化,导致CPU锁定和数据丢失。未来计划改进查找功能,以提升性能。
Abyss是一个无需ROOT的Android应用拦截框架,利用Seccomp和BPF技术配置过滤规则,提升拦截效率。通过解析进程库地址,避免死循环,并实现系统调用日志打印和回调注册,增强系统安全性。
Seccomp BPF是Linux内核的功能,用于过滤进程的系统调用。通过BPF编程,可以记录或阻止特定系统调用,从而增强进程安全性。文章介绍了Seccomp BPF的使用方法及相关代码示例。
本文讨论了Linux内核和BPF网络中的一个问题,用户在新K8s集群中报告Pod健康检查间歇性失败。调查发现问题与sockops BPF和内核有关,可能是由于AliOS cloud-kernel 5.10.134引入的不兼容更改或错误。最终确认问题源于BPF sockmap处理不当,导致请求处理失败。建议通过重启内核或手动清理来恢复正常。
本文介绍了流量拦截技术在微服务架构中的应用。通过使用Pipy代理作为控制面,加载BPF程序实现动态拦截和转发流量。同时,代理服务对流量进行解码和结构化处理,并将解析后的请求内容发送到存储进行存储和分析。文章还演示了如何使用Pipy进行HTTP和Dubbo的流量拦截和分析。Pipy 1.0版本的发布标志着其从一个单纯处理数据流的代理转变为一个全面的可编程应用引擎,提供了强大的流量管理和网络分析工具。
本文探讨了在ARM64架构上使用ftrace的BPF LSM的差异,并介绍了作者在MacBook M2上开发eBPF程序时遇到的问题。作者通过使用bpftrace和trace-cmd工具来调查问题,并发现在Linux 5.15和6.1内核上加载BPF LSM程序时出现了错误。经过分析,作者发现这是因为缺少对aarch64架构的支持。然而,作者指出这个问题将在下一个6.4版本的Linux内核中得到修复。
Classical BPF是一种高效、安全、灵活的网络数据包过滤技术,常用于网络监控、防火墙、流量控制等场景。阡陌是一个能够根据tcpdump的过滤表达式生成编译好的bpf代码或Go语言代码片段的库。
本文介绍了在Go语言中收发IP packet的方法,包括使用ipv4.RawConn和syscall.Socket发送IPv4 header的数据,以及手动设置IPv4 header并使用bpf做filter筛选来提高性能。作者建议优先使用标准库提供的功能,其次考虑官方扩展库和第三方库。
Wasm-bpf 项目定义了一套 eBPF 相关系统接口的抽象,让 Wasm 应用有能力访问内核态和用户态的数据,拓展 Wasm 生态在非浏览器端的应用场景,同时也能在用户态增强 eBPF 程序的能力。eBPF 提供了一套类似于系统调用的机制,Wasm 虚拟机可以获得这套“系统调用”的完整使用权,实现从用户态扩展到内核态的可编程性。组件模型描述了 Wasm 二进制文件之间如何交互的方式,开发人员可以声明应用程序所需的组件,Wasm 运行时可以代表用户组装正确的组件集合,2023 年将是组件模型开始重新定义我们如何编写软件的一年。
最近在学习 BPF,这是一种目前比较流行的动态追踪技术,简单来说,它允许我们在不中断目前正在运行的程序的情况下 […]Continue reading... The post 用 BPF 动态追踪 Python 程序 first appeared on 卡瓦邦噶!.相关文章:认识Python的MetaClassPython装饰器兼容加括号与不加括号的写法Python...
eunomia-bpf 项目作为一个为了简化 eBPF 程序的开发、分发、运行而设计的轻量级 eBPF 开发框架的背景和目标;再通过一些简单的实例,展示一下 eunomia-bpf 是如何从云端一行命令下载运行 eBPF 程序、只编写内核态代码。
If you enjoy performance engineering and peeling back abstraction layers to ask underlying subsystems to explain themselves, this article’s for you. The context is a chronic Redis latency problem,...
We have first adopted the BPF tail calls when building our XDP-based packet processing pipeline. BPF tail calls have served us well since then. But they do have their caveats
经典的bpf(classical Berkeley Packet Filter) 是非常好用的一个技术,在一些特殊的Go底层网络编程的场合,可以很好的提高性能。
文章介绍了Rust编译器对BPF目标的支持,包括对不同字节序BPF格式的编译。同时讨论了Go 1.16的新特性,以及现代科研和微处理器架构等主题,最后提到了一些新兴的开发工具和服务。
完成下面两步后,将自动完成登录并继续当前操作。