从防御者视角拆解Quasar-Rat:手把手教你用EDR规则检测这款常见远控木马
在当今企业安全防护体系中,开源远控工具被恶意利用已成为不容忽视的威胁。作为一款功能全面的远程管理工具,Quasar-Rat因其模块化设计和易用性,频繁出现在攻击链的持久化阶段。本文将聚焦防御视角,通过分析其技术特征,为安全团队提供可落地的检测方案。
1. Quasar-Rat的技术特征解析
1.1 网络通信特征
该工具采用独特的协议栈组合:
- 传输层:基于TCP协议,同时支持IPv4/IPv6双栈
- 序列化方式:Protocol Buffers二进制序列化(特征值为
0A开头的数据帧) - 压缩算法:QuickLZ实现数据压缩(可通过
Qlz魔数识别) - 加密方式:TLS 1.2+加密通信(但早期版本存在弱密码套件问题)
典型流量特征示例:
# Suricata规则片段 alert tcp any any -> any any (msg:"Suspicious Quasar-Rat Protocol Buffer Header"; content:"|0A|"; depth:1; sid:1000001; rev:1;)1.2 主机行为特征
通过动态分析发现其典型行为模式:
| 行为类型 | 具体表现 | 检测关键点 |
|---|---|---|
| 持久化 | 创建Run注册表项 | HKCU\Software\Microsoft\Windows\CurrentVersion\Run |
| 进程注入 | 注入explorer.exe | 非微软签名模块加载 |
| 数据收集 | 访问浏览器密码文件 | %AppData%\..\Local\Google\Chrome\User Data |
注意:实际检测需结合多个低熵指标构建行为链,单一指标易产生误报
2. 基于EDR的检测规则开发
2.1 YARA规则编写
针对客户端程序的特征检测:
rule Quasar_RAT { meta: description = "Detects Quasar RAT client" author = "DFIR Team" strings: $str1 = "Quasar" wide ascii $str2 = "Client-built.exe" $op1 = { 55 8B EC 83 EC 20 53 56 57 8B F9 8B 4D 08 } condition: 2 of ($str*) or $op1 }2.2 Sigma规则示例
适用于SIEM系统的检测逻辑:
title: Quasar RAT Registry Persistence id: a1b2c3d4-5678-90ef-ghij-klmnopqrstuv status: experimental description: Detects Quasar RAT creating Run registry key references: - https://attack.mitre.org/techniques/T1547/001/ author: SOC Analyst logsource: product: windows category: registry_set detection: selection: TargetObject|contains: - '\Software\Microsoft\Windows\CurrentVersion\Run\' - '\Software\Microsoft\Windows\CurrentVersion\RunOnce\' Details|contains: 'Client-built' condition: selection falsepositives: - Legitimate software updates level: high3. 网络流量检测方案
3.1 Suricata规则优化
针对协议特征的深度检测:
alert tcp any any -> any any (msg:"Potential Quasar-RAT QuickLZ Compression"; content:"Qlz"; depth:3; pcre:"/^.{4}\x00.{4}\x00.{4}\x00/s"; flow:established; sid:1000002; rev:2;)3.2 网络行为指标
建议监控以下异常模式:
- 周期性心跳包(默认300秒间隔)
- 非标准端口上的TLS协商
- 高压缩比数据流(QuickLZ压缩率>70%)
4. 防御体系增强建议
4.1 企业防护策略
- 应用控制:阻止未签名的.NET程序执行
- 内存防护:启用AMSI扫描PowerShell和.NET活动
- 网络过滤:拦截与No-IP动态域名的通信
4.2 检测规则调优技巧
- 使用熵值分析识别加密流量中的协议特征
- 组合多个低置信度指标构建高准确率检测:
# 伪代码示例 def is_quasar(process): return (process.has_registry('Run') and process.loads_dll('QuickLZ.dll') and process.connects_to(port=4782))
在实战中,我们发现攻击者常修改默认配置规避检测。某次事件响应中,攻击者将心跳间隔改为随机值(200-400秒),但通过协议特征仍成功识别。建议维护特征库时保留至少三个正交检测维度。