🎨 颜色标记说明

  • 粉色:特别重要、主线必掌握、优先复盘的内容。
  • 蓝色:核心概念、术语、分类名。
  • 橙色:需要关注的边界、易错点、注意事项。
  • 绿色:解释类内容、帮助理解知识点。

返回:全书总览 · 上一章:OllyDbg 原理 · 下一章:WannaCry 分析

本章只用于授权环境中的防御研究、取证和检测。不要在宿主机运行未知样本,不连接真实互联网,不复现控制端、传播或持久化功能。

分析目标

面对远程控制类恶意程序,防御分析的目标不是“把每条指令都读完”,而是尽快回答:

  1. 样本如何进入与启动?
  2. 如何保持驻留?
  3. 与哪些进程、文件、注册表、服务交互?
  4. 是否建立外部通信,通信证据是什么?
  5. 能执行哪些能力?
  6. 如何检测、隔离和修复?

安全实验环境

最低要求:

  • 使用专用虚拟机并在分析前创建快照。
  • 与个人文件、密码、浏览器会话和生产网络隔离。
  • 默认断网;需要观察网络时使用可控的模拟服务。
  • 禁用宿主机共享目录、共享剪贴板和自动挂载。
  • 记录样本哈希、来源、时间、分析人员和授权范围。

样本本身永远视为不可信输入,分析工具、脚本和转储文件也要放在受控环境中处理。

静态初筛

先建立不运行样本也能取得的证据:

项目 观察内容
哈希 SHA-256 为主,保留文件大小
PE 头 架构、时间戳可信度、节区与入口点
签名 数字签名是否存在、是否有效
导入 进程、网络、文件、服务、注册表相关 API
字符串 路径、域名、互斥体、命令名称、错误文本
资源 嵌入配置、图标、压缩或附加数据
壳与混淆 只记录证据和置信度,不凭熵值定性

字符串既可能是有效配置,也可能是诱饵,需要交叉引用确认是否被代码使用。

行为观察

动态阶段重点记录“发生了什么”,不急于猜动机:

  • 新建、修改和删除的文件。
  • 进程树、命令行、父子关系与句柄。
  • 注册表启动项、服务和计划任务变化。
  • 互斥体、命名管道、事件和共享内存。
  • DNS、连接目标、端口、证书和流量时序。
  • 内存权限变化、模块加载和线程入口。

每条行为要保留时间、进程、对象、结果和原始证据位置。

能力矩阵

远控类样本可能包含多种能力,分析报告可按“证据强度”记录:

能力类别 可验证证据
系统信息收集 查询系统、用户、网络和进程信息的调用与输出
文件管理 路径枚举、读取、写入与删除行为
进程控制 创建、终止、枚举或注入相关行为
屏幕/输入 图形、剪贴板或输入设备 API 的实际调用
持久化 启动项、服务、计划任务的写入记录
网络通信 连接目标、握手、消息边界和重试策略

“导入了某 API”只能说明可能性;只有数据流或动态行为才能提高置信度。

通信协议分析

以检测为目的,记录:

  • 客户端还是监听端发起连接。
  • 消息是否有固定头、长度、类型与校验字段。
  • 是否压缩或加密,以及发生在通信流程的哪个阶段。
  • 心跳、重连、超时和错误处理特征。
  • 稳定的域名、证书、User-Agent 或字节模式。

不要连接真实控制基础设施。使用离线流量、回放或受控模拟环境验证解析结论。

从分派函数恢复命令语义

样本常把收到的消息类型映射到多个处理函数。逆向时可以:

1
2
3
4
5
定位消息读取点
-> 找到长度和类型字段
-> 跟踪 switch / 函数表
-> 为每个处理函数记录输入、输出和副作用
-> 用动态日志验证

这里只恢复能力分类和证据,不重建可操作的控制端。

IOC 与行为检测

IOC 报告应分层:

  • 强特征:样本 SHA-256、稳定证书指纹、独特互斥体。
  • 中等特征:特定路径组合、服务名称、协议字段。
  • 弱特征:单独域名、常见 API、宽泛字符串。

哈希易变化,长期检测更适合围绕进程链、持久化动作、网络行为和内存特征建立关联规则。

报告模板

1
2
3
4
5
6
7
8
9
10
11
12
样本标识:
授权与环境:
执行摘要:
静态特征:
行为时间线:
能力矩阵:
通信证据:
持久化证据:
IOC:
检测建议:
隔离与恢复建议:
未确认问题:

学习检查清单

检查项 状态
能搭建与宿主和生产网络隔离的分析环境 待复盘
能先做静态初筛再决定动态观察范围 待复盘
能用证据区分“可能能力”和“已观察行为” 待复盘
能整理进程、文件、注册表和网络时间线 待复盘
能输出 IOC、行为检测与恢复建议 待复盘