Drovorub 恶意软件复合体感染 Linux 操作系统

国家安全局和美国联邦调查局 发表报告,据第85主特服中心 俄罗斯武装部队总参谋部 (85 GCSS GRU) 使用了名为“Drovorub”的恶意软件复合体。 Drovorub 包括一个 Linux 内核模块形式的 rootkit、一个用于传输文件和重定向网络端口的工具以及一个控制服务器。 客户端部分可以下载和上传文件,以root用户执行任意命令,并将网络端口重定向到其他网络节点。

Drovorub 控制中心接收 JSON 格式的配置文件路径作为命令行参数:

{
“数据库主机”:“ “,
“数据库端口”:“ “,
“db_db”:“ “,
“数据库用户”:“ “,
“数据库密码”:“ “,

“l端口”:“ “,
“主机”:“ “,
“ping_sec”:“ “,

“隐私密钥文件”:“ “,
“短语” : ” »
}

MySQL DBMS 用作后端。 WebSocket 协议用于连接客户端。

客户端具有内置配置,包括服务器 URL、其 RSA 公钥、用户名和密码。 安装rootkit后,配置将保存为JSON格式的文本文件,该文件通过Drovoruba内核模块对系统隐藏:

{
«id» : «cbcf6abc-466b-11e9-853b-000c29cb9f6f»,
“密钥”:“Y2xpZW50a2V5”
}

这里的“id”是服务器发出的唯一标识符,其中最后48位对应服务器网络接口的MAC地址。 默认的“key”参数是服务器在初始握手期间使用的base64编码字符串“clientkey”。 此外,配置文件可能包含有关隐藏文件、模块和网络端口的信息:

{
«id» : «6fa41616-aff1-11ea-acd5-000c29283bbc»,
“密钥”:“Y2xpZW50a2V5”,
“监视器” : {
“文件” : [
{
“活跃”:“真实”
«id» : «d9dc492b-5a32-8e5f-0724-845aa13fff98»,
“掩码”:“测试文件1”
}
],
“模块” : [
{
“活跃”:“真实”
«id» : «48a5e9d0-74c7-cc17-2966-0ea17a1d997a»,
“掩码”:“测试模块1”
}
],
“网” : [
{
“活跃”:“真实”
«id» : «4f355d5d-9753-76c7-161e-7ef051654a2b»,
“端口”:“12345”,
“协议”:“TCP”
}
] }
}

Drovorub 的另一个组件是代理;它的配置文件包含用于连接到服务器的信息:

{
“client_login”:“用户123”,
“client_pass”:“pass4567”,
“clientid”:“e391847c-bae7-11ea-b4bc-000c29130b71”,
«clientkey_base64» : «Y2xpZW50a2V5»,
"pub_key_file" :"公钥",
“服务器主机”:“192.168.57.100​​XNUMX”,
“服务器端口”:“45122”,
“server_uri”:“/ws”
}

“clientid”和“clientkey_base64”字段最初是缺失的;它们是在服务器上初始注册后添加的。

安装完成后,进行如下操作:

  • 加载内核模块,为系统调用注册钩子;
  • 客户端向内核模块注册;
  • 内核模块隐藏正在运行的客户端进程及其在磁盘上的可执行文件。

伪设备(例如 /dev/zero)用于在客户端和内核模块之间进行通信。 内核模块解析写入设备的所有数据,并且为了以相反方向传输,它向客户端发送 SIGUSR1 信号,然后从同一设备读取数据。

要检测 Lumberjack,您可以使用 NIDS 进行网络流量分析(无法检测受感染系统本身的恶意网络活动,因为内核模块隐藏了它使用的网络套接字、netfilter 规则以及可能被原始套接字拦截的数据包) 。 在安装了 Drovorub 的系统上,您可以通过向内核模块发送隐藏文件的命令来检测内核模块:

触摸测试文件
回声“ASDFZXCV:hf:测试文件”> / dev /零
ls

创建的“testfile”文件变得不可见。

其他检测方法包括内存和磁盘内容分析。 为了防止感染,建议对内核和模块使用强制签名验证,从 Linux 内核版本 3.7 开始可用。

该报告包含用于检测 Drovorub 网络活动的 Snort 规则和用于检测其组件的 Yara 规则。

让我们回想一下,第 85 GTSSS GRU(军事单位 26165)与该组织有关联 APT28(花式熊),对许多网络攻击负有责任。

来源: opennet.ru