Red Menshen(又称DecisiveArchitect或Red Dev 18)是一个针对中东和亚洲国家利益的APT组织,一直在不断改进其BPFDoor。BPFDoor最有趣的功能是它能够在操作系统内核中加载数据包过滤器。
解读BPF
Linux中大量使用BPF的库是libpcap库,它由tcpdump等程序使用。事实上,你可以使用tcpdump中的-d选项生成BPF过滤器指令。
内核实现了一个虚拟机来理解这段代码。这些指令代表的BPF过滤器字节码也可以通过-dd选项查看。每个经典BPF指令都是8字节长。其中0x28代表load加载。0x15代表jmp跳转。BPF指令的逻辑就是通过判断逻辑过滤数据包字段、分支跳转实现对流量的过滤功能。
bpf_asm 翻译为“操作码”的程序是一个由以下元素组成的数组(如前所述):
op:16, jt:8, jf:8, k:32
元素op是一个16位宽的操作码,编码了特定的指令。jt和jf是两个8位宽的跳转