前段时间的Bvp47木马利用BPF技术敲门,想必你已经精通了吧?笔者曾担忧在eBPF加持下,用在后门场景会更加恐怖。这不GitHub上开源了一个Boopkit,今天笔者跟大家一起来了解一下它的技术原理,使用了哪些eBPF程序功能。它是如何实现任意开启的TCP端口服务,远程唤醒后门,并生成反弹shell的。
所谓技术
eCapture:无需CA证书抓https网络明文通讯
eCapture是一款基于eBPF技术实现的用户态数据捕获工具。不需要CA证书,即可捕获https/tls的通讯明文。eCapture系统用户态程序使用Golang语言开发,具有良好的系统兼容性,无依赖快速部署,更适合云原生场景。内核态代码使用C编写,使用clang/llvm编译,生产bpf字节码后,采用go-bindata转化为golang语法文件,之后采用ehids/ebpfmanager类库,调用bpf syscall进行加载、HOOK、map读取。
Linux中基于eBPF的恶意利用与检测机制
聊一聊《Bvp47 美国NSA方程式的顶级后门》中的BPF隐藏信道
在《Bvp47 美国NSA方程式的顶级后门》的文章,里面提到后门使用BPF技术做通信信道的隐藏,本身不监听端口,通过特定SYN包唤醒后门。而且隐藏近二十年之久。恰巧笔者近期在学习eBPF,且在春节前用eBPF技术实现了类似功能的后门DEMO,对这块特别感兴趣。 好奇它的兼容性是如何做的,HOOK点是如何选择的?用的BPF/eBPF哪个内核版本的类库?
分享一些eBPF技术相关的PDF
内核态eBPF程序实现容器逃逸与隐藏账号rootkit
本文是在kernel space内核态,hook内核态函数,更改内核态返回用户态缓冲区数据,欺骗用户态进程,实现容器逃逸与rootkit。用户态进程拿到被篡改的数据,从而被骗通过认证。在此过程,不改变任何文件、进程、网络行为,不产生日志。 常规HIDS、HIPS产品无法感知。
datadog的eBPF安全检测机制分析
datadog的system-probe模块使用了eBPF技术研发,实现了网络管理、运行时安全、系统状态感知等几个功能,支持运维管理、安全检测两个场景。其中核心模块在网络与运行时安全两个场景。故本文重点分析了这两个场景的技术实现与业务特性。
Cilium eBPF实现机制源码分析
通过笔者的分析学习,可以宏观的了解到Cilium在eBPF内核技术使用时,场景覆盖网络处理的XDP、TC、SOCKET等L3、L4、L7层,业务覆盖防火墙、网络路由、网络隔离、负载均衡等。通过集中式管理eBPF文件源码,下发到各endpoint分发式编译挂载。调试日志作为eBPF map事件统一收集处理。 支持用户态、内核态相互之间用eBPF map做双向通讯,实现策略下发与数据收集。具备数据对账、监控告警能力。
[译]使用eBPF per-CPU Cgroup本地存储进行低功耗统计
本文使用eBPF per-cpu的map类型,以及cilium的golang eBPF类库实现了对ingress以及egress网络流量的大小统计,以一个最简单demo,实现更精细、高效的监控统计。在容器化下场景下,用更少的资源损耗,完成精准、实时的统计,更能符合场景需求。
[译]使用eBPF(绕过 TCP/IP)加速云原生应用程序的经验教训
本文对比了eBPF绕过TCP/IP栈与普通TCP协议两种模式下,网络通讯的吞吐量、延迟、事务量等指标。译者以边学边练的方式来学习额BPF新内核知识,并以网络安全产品研发的视角,结合容器化编排领域发展趋势,谈主机安全产品HIDS的演进方向。