eCapture⼀个神奇的开源⼯具
⼀ 前⾔
前段时间,⼀直对eBPF感兴趣,也写了⼀些eBPF的⼊门介绍⽂章,朋友就发来个连接说这是⼀个好东西,我看,是利⽤eBPF来实现的,刚好最近在研究,所以就有了这篇的介绍⽂章。
⼆ eCapture 是什么
官⽅介绍如下:
eBPF HOOK uprobe实现的各种⽤户态进程的数据捕获,⽆需改动原程序。
SSL/HTTPS数据导出功能,针对HTTPS的数据包抓取,不需要导⼊CA证书。
bash的命令捕获,HIDS的bash命令监控解决⽅案。
mysql query等数据库的数据库审计解决⽅案。
mysql下载哪个版本好2022地址:ecapture/README_CN.md at master · ehids/ecapture (github)
eBPF程序可以对内核的静态跟踪点,动态跟踪点,设置钩⼦,然后当内核执⾏到这些点的时候,会⾃动调⽤我们设置好的钩⼦,这样我们就可以对⼀些数据进⾏监控,⽹络流量也可以进⾏转发,甚⾄对数据包进⾏修改,简直是⿊魔法;不光可以对内核的进⾏动态追踪,对⽤户态进程也可以,我记得我上篇⽂章就介绍对简单的c程序的代码的hook。
eCapture就是这个原理,对⽤户态程序的具体追踪,具体原理如下:
eCapture系统⽤户态程序使⽤Golang语⾔开发,具有良好的系统兼容性,⽆依赖快速部署,更适合云原⽣场景。 内核态代码使⽤C编写,使⽤clang/llvm编译,⽣产bpf字节码后,采⽤go-bindata转化为golang语法⽂件,之后采⽤ehids/ebpfmanager类库,调⽤bpf syscall进⾏加载、HOOK、map读取。 golang编译后,⽆其他任何依赖即可运⾏,兼容linux kernel 4.18以上所有版本。
架构图如下:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论