LinkPro:eBPF rootkit 深度技术分析

本文详细分析了一个在AWS基础设施中发现的新型eBPF rootkit——LinkPro。该rootkit利用两个eBPF模块实现隐身和远程激活功能,通过"魔法包"机制触发,并提供了完整的感染链分析、技术架构和检测规则。

LinkPro:eBPF rootkit分析

引言

eBPF(extended Berkeley Packet Filter)是一项被Linux广泛采用的技术,因其在可观测性、安全性和网络等领域的多种用例而备受青睐。威胁行为者越来越多地滥用eBPF来创建复杂的后门程序,并规避传统的系统监控工具。

在最近一次针对AWS托管基础设施的入侵事件调查中,Synacktiv CSIRT发现了一个相对复杂的感染链,导致在GNU/Linux系统上安装了一个隐蔽的后门。该后门依赖于安装两个eBPF模块:一个用于隐藏自身,另一个用于在接收到"魔法包"时远程激活。

感染链

取证分析确定暴露在互联网上的易受攻击的Jenkins服务器(CVE-2024-23897)是入侵的源头。攻击者随后转移到在多个Amazon EKS集群上托管的集成和部署流水线。

从Jenkins服务器,攻击者在多个Kubernetes集群上部署了一个名为kvlnt/vv的恶意docker镜像。该docker镜像基于Kali Linux,并添加了两个额外的层。

这些层添加了/app文件夹作为工作目录,然后向其中添加了三个文件:

  • /app/start.sh:一个bash脚本,作为docker镜像的入口点。其目的是启动ssh服务,执行/app/app后门程序和/app/link程序。
  • /app/link:一个名为vnt的开源程序,充当VPN服务器并提供代理功能。
  • /app/app:一个下载器恶意软件,从S3存储桶检索加密的恶意负载。

关于docker镜像,配置了以下挂载点:

  • 挂载点:/mnt
  • 源(主机):/
  • 目标(容器):/mnt
  • 访问:读写
  • 类型:绑定

这种配置允许攻击者逃离容器的上下文(运行的镜像),以root权限访问根分区的整个文件系统。

LinkPro Rootkit

LinkPro针对GNU/Linux系统,使用Golang开发。它使用eBPF技术仅在接收到"魔法包"时激活,并在受感染系统上隐藏自身。

LinkPro样本

SHA256

  • d5b2202b7308b25bda8e106552dafb8b6e739ca62287ee33ec77abe4016e698b(被动后门)
  • 1368f3a8a8254feea14af7dc928af6847cab8fcceec4f21e0166843a75e81964(主动后门)

文件类型:ELF 64位LSB可执行文件,x86-64

文件大小:8710464字节

威胁类型:Linux Rootkit

LinkPro嵌入了四个ELF模块:一个共享库、一个内核模块和两个eBPF模块。

配置和通信

根据其定义的配置,LinkPro可以以两种方式运行:被动或主动。其配置通过两种不同的方式获取:

  • 要么嵌入在二进制文件中,以JSON结构组织,并以关键字CFG0开头
  • 要么其默认参数直接硬编码到主函数中

LD PRELOAD模块

LinkPro修改/etc/ld.so.preload配置文件,指定其嵌入的libld.so共享库的路径,目的是隐藏可能揭示后门存在的各种工件。

一旦libld.so在程序执行时被加载,它会在glibc之前挂钩几个libc函数,以修改可能揭示LinkPro存在的结果。

“Hide” eBPF模块

“Hide"模块由几个Tracepoint和Kretprobe类型的eBPF程序组成。LinkPro rootkit安装这些eBPF程序,并利用它们的功能来隐藏其进程和网络活动。

“Knock” eBPF模块

“Knock"模块包含两个由LinkPro加载的eBPF程序。第一个称为xdp_ingress,属于XDP类型。第二个称为tc_egress,属于TC类型。

持久化

为了在主机上持久化,LinkPro将自己伪装成systemd-resolved服务(名称解析服务)。

命令

一旦与操作员的通信建立,LinkPro提供以下命令:

  • terminal_createterminal_resizeterminal_inputterminal_close:在伪终端中执行/bin/bash
  • shell:直接执行任意shell命令
  • file_manage:用于列出、读取、写入和删除文件或目录的子命令
  • download_manage:文件下载
  • reverse_connectclose_reverse_connect:设置中继以充当SOCKS5代理隧道
  • reverse_http_listener:设置HTTP服务
  • set_sleep_config:更新sleep_timejitter_time参数

结论

对在受感染的AWS基础设施上发现的LinkPro rootkit的分析证实并深化了利用eBPF技术的威胁趋势。继BPFDoor或Symbiote等恶意软件之后,LinkPro通过在多个级别结合几种隐身技术,代表了这些后门复杂性的新一步。

LinkPro的突出特点在于其操作灵活性,能够以被动监听模式运行,或直接联系命令和控制服务器。在监听模式下,它部署了基于XDP和TC程序的先进网络处理链,其实现显然受到了开源项目eBPFeXPLOIT的启发。

MITRE ATT&CK映射

战术 技术(ID) LinkPro使用描述
执行 命令和脚本解释器:Unix Shell LinkPro通过/bin/sh -c执行命令,并提供完整的交互式shell
持久化 创建或修改系统进程:Systemd服务 创建systemd单元文件以在启动时执行
持久化 劫持执行流:动态链接器劫持 使用/etc/ld.so.preload作为替代/回退隐藏机制
防御规避 伪装:匹配合法名称或位置 恶意软件通过使用文件名伪装成systemd-resolved
防御规避 指示器移除:时间戳修改 LinkPro修改其持久化文件的时间戳以匹配合法系统文件
防御规避 Rootkit 使用eBPF挂钩在内核级别隐藏其工件
命令与控制 应用层协议 使用HTTP和DNS进行C2通信
命令与控制 流量信令:端口敲门 “魔法包"概念是一种流量信令形式,用于激活被动C2

妥协指标(IOCs)

网络IOC

  • /api/client/file/download?path=...
  • /reverse/handshake/reverse/heartbeat/reverse/operation
  • 18.199.101.111

文件IOC

  • /etc/systemd/system/systemd-resolveld.service
  • /root/.tmp~data.ok
  • /usr/lib/.system/.tmp~data.resolveld
  • /etc/libld.so

在此分析期间创建的YARA规则维护在synacktiv-rules Github存储库中。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计