/ 信息收集策划

信息收集策划

NIST标准 61项采集清单 + 五维联动分析

# 僵尸网络自检 - 信息收集与分析策划方案 > 基于 NIST SP 800-86 取证标准、MITRE ATT&CK 框架、2026 学术研究及行业实战经验 > 编制日期:2026-07-14 --- ## 一、专家咨询综述 本方案综合了以下专家视角与标准框架: | 来源 | 视角 | 核心贡献 | |------|------|----------| | NIST SP 800-86 | 数字取证标准 | 数据采集顺序(易失性优先)、证据链保全 | | MITRE ATT&CK | 攻击行为框架 | 20+ 技术映射、攻击链重建方法论 | | 绿盟伏影实验室 2026 报告 | 威胁情报 | 最新僵尸网络趋势、反检测技术、活跃家族 | | CyberDefenders | 安全教育 | Beaconing 检测、DGA 检测、NetFlow 分析 | | Microsoft Defender 调查包 | 端点取证 | 标准化数据采集包结构(自启/连接/进程/日志) | | 学术研究(Nature/IEEE 2026) | 前沿检测 | Hilbert+CNN、GNN、EROIKA 多阶段框架 | | Botnet Studies Skill | 知识体系 | C2 拓扑分类、DGA 逆向、Fast-Flux 检测、博弈论 | | NIST SP 800-61 r3 | 事件响应 | 应急响应流程、后改进建议 | **核心共识:** 僵尸网络检测不能靠单一维度,必须"网络+主机+内存+情报+行为"五维联动,遵循 NIST 易失性优先原则采集数据,用 ATT&CK 框架重建攻击链。 --- ## 二、信息收集框架(NIST 易失性优先原则) 按 NIST SP 800-86 的 Order of Volatility(OoV),从最易失到最持久依次采集: ``` 采集顺序(先采易失的,再采持久的): ① CPU 寄存器/缓存 ← 微秒级消失(本研究跳过,需专业硬件) ② 内存(RAM) ← 秒级消失 ★ 重点采集 ③ 网络状态 ← 分钟级消失 ★ 重点采集 ④ 运行进程 ← 分钟级消失 ★ 重点采集 ⑤ 磁盘数据 ← 持久化 ★ 全面采集 ⑥ 日志/备份 ← 长期保存 ★ 补充采集 ``` --- ## 三、详细数据采集清单(6 层 45 项) ### 第 1 层:内存取证(易失性最高,必须优先) | # | 采集项 | 采集方法 | 检测目标 | |---|--------|----------|----------| | 1 | 完整内存镜像 | `winpmem` / `DumpIt` / `Magnet RAM Capture` | 后续离线分析 | | 2 | 运行进程列表+完整路径 | Volatility `pslist` / `psscan` | 隐藏进程、已终止但内存残留的进程 | | 3 | 进程注入检测 | Volatility `malfind`(RWX 内存区域) | 进程注入(T1055) | | 4 | 进程网络连接 | Volatility `netscan` | 内存中的活跃 C2 连接 | | 5 | 加载的 DLL 模块 | Volatility `dlllist` + `ldrmodules` | 恶意 DLL、未备份模块 | | 6 | 内核驱动/Rootkit | Volatility `modscan` / `modules` | 内核态 Rootkit | | 7 | 凭据/密钥 | Volatility `hashdump` / `lsadump` | 被窃取的凭据 | | 8 | 进程环境变量+命令行 | Volatility `cmdline` / `environ` | 恶意启动参数(如 RCtea 的 `telnet.curl`) | | 9 | 注册表内存映像 | Volatility `printkey` / `hivelist` | 运行时被修改的注册表 | | 10 | 网络套接字/连接表 | Volatility `sockscan` / `connections` | 隐藏的网络连接 | **工具:** Volatility 3 / Rekall / winpmem **输出:** 内存取证报告(进程树+注入标记+网络连接+恶意模块) --- ### 第 2 层:网络状态采集(易失性高) | # | 采集项 | 采集方法 | 检测目标 | |---|--------|----------|----------| | 11 | 活跃网络连接 | `netstat -ano` / `psutil.net_connections()` | C2 连接、异常外连 | | 12 | TCP/UDP 监听端口 | `netstat -an` / `psutil` | 后门监听端口 | | 13 | ARP 缓存表 | `arp -a` | 内网被入侵的其他主机 | | 14 | DNS 解析缓存 | `ipconfig /displaydns` | DGA 域名、恶意域名解析记录 | | 15 | 路由表 | `route print` | 流量劫持、VPN 隧道 | | 16 | 防火墙规则 | `netsh advfirewall show` | 被篡改的防火墙规则 | | 17 | Wi-Fi 历史/配置 | `netsh wlan show profiles` | 非法 Wi-Fi 连接 | | 18 | 网络适配器配置 | `ipconfig /all` | 异常网卡、VPN 配置 | | 19 | TLS 连接指纹 | 抓包分析 JA3/JA4/JARM | C2 服务器 TLS 指纹匹配 | | 20 | 流量采样(5分钟) | Wireshark / `pyshark` 抓包 | Beaconing 模式、流量异常 | **工具:** netstat / Wireshark / pyshark / sslyze **输出:** 网络连接审计报告(外连IP+端口+进程+Beaconing分析+TLS指纹) --- ### 第 3 层:运行进程采集 | # | 采集项 | 采集方法 | 检测目标 | |---|--------|----------|----------| | 21 | 全部进程列表 | `tasklist /v` / `wmic process get` / `psutil` | 来源不明进程 | | 22 | 进程树(父子关系) | `psutil` 或 Process Explorer 导出 | 异常父子链(Office→PowerShell) | | 23 | 进程可执行文件路径 | `wmic process get executablepath` | 临时目录进程、伪装进程 | | 24 | 进程数字签名 | `Get-AuthenticodeSignature` / `sigcheck` | 无签名/签名异常 | | 25 | 进程命令行参数 | `wmic process get commandline` | 反沙箱参数、编码命令 | | 26 | 进程-网络关联 | 交叉 #11 和 #21 | 哪些进程在对外通信 | | 27 | 进程 OOM 设置 | 读取进程优先级/内存保护 | 反杀机制(RCtea 特征) | | 28 | 已加载 DLL 全表 | `tasklist /m` / Process Explorer | DLL 劫持、注入模块 | **工具:** psutil / Sysinternals Process Explorer / sigcheck **输出:** 进程审计报告(进程树+路径+签名+命令行+网络关联+注入标记) --- ### 第 4 层:持久化机制采集(14 项全覆盖) | # | 采集项 | 采集方法 | ATT&CK ID | |---|--------|----------|-----------| | 29 | 注册表 Run/RunOnce | `winreg` 读 HKLM+HKCU(含 WOW6432Node) | T1547.001 | | 30 | Winlogon 键 | `winreg` 读 Shell/Userinit | T1547.002 | | 31 | AppInit_DLLs | `winreg` 读 AppInit_DLLs + LoadAppInit_DLLs | T1546.010 | | 32 | IFEO 调试器劫持 | `winreg` 读 Image File Execution Options | T1546.012 | | 33 | COM 劫持 | `winreg` 读 InprocServer32 | T1546.015 | | 34 | 计划任务 | `schtasks /query /fo CSV /v` | T1053 | | 35 | 系统服务 | `sc query` + `psutil.win_service_iter()` | T1543.003 | | 36 | svchost ServiceDll | `winreg` 读 Svchost 键 | T1543.003 | | 37 | 启动文件夹 | 检查 ProgramData + APPDATA Startup | T1547.001 | | 38 | WMI 事件订阅 | PowerShell `Get-WMIObject __EventConsumer` | T1546.003 | | 39 | 屏幕保护程序 | `winreg` 读 SCRNSAVE.EXE | T1546.002 | | 40 | AppCertDLLs | `winreg` 读 AppCertDlls | T1546.009 | | 41 | BootExecute | `winreg` 读 Session Manager | T1547.003 | | 42 | 组策略脚本 | `gpresult /r` + 检查 GPO 脚本路径 | T1547.004 | **基线对比:** 与干净同版本 Windows 的 Autoruns 导出比对 **交叉验证:** 同一文件出现在多个持久化位置 = 高危 **输出:** 持久化审计报告(14项逐条+基线差异+ATT&CK映射+风险评估) --- ### 第 5 层:文件系统采集 | # | 采集项 | 采集方法 | 检测目标 | |---|--------|----------|----------| | 43 | 系统目录未知可执行文件 | 遍历 System32/SysWOW64,对比白名单 | 植入的恶意文件 | | 44 | 临时目录可执行文件 | 遍历 Temp/AppData/Downloads | 残留恶意样本 | | 45 | 近期创建文件(7天) | `os.path.getmtime()` 筛选 | 新植入文件 | | 46 | 高熵文件 | Shannon 熵计算(> 7.0 标记) | 加壳/加密文件 | | 47 | 隐藏属性文件 | 检查 FILE_ATTRIBUTE_HIDDEN | 隐藏的恶意文件 | | 48 | 文件哈希 | SHA256 计算 + VirusTotal 比对 | 已知恶意文件 | | 49 | Hosts 文件 | 读取 `drivers\etc\hosts` | DNS 劫持 | | 50 | YARA 规则扫描 | `yara-python` 加载社区规则 | 已知恶意特征匹配 | | 51 | 交替数据流(ADS) | `dir /R` 检查 NTFS ADS | 隐藏在 ADS 中的恶意数据 | **工具:** hashlib / yara-python / VirusTotal API **输出:** 文件审计报告(路径+哈希+熵值+隐藏属性+情报标记+YARA匹配) --- ### 第 6 层:日志与事件采集 | # | 采集项 | 采集方法 | 检测目标 | |---|--------|----------|----------| | 52 | 安全日志 4624/4625 | `wevtutil` 或 `pywin32` | 异常登录/暴破 | | 53 | 安全日志 4688 | 进程创建审计 | 恶意进程创建链 | | 54 | 系统 7045 | `wevtutil` | 新服务创建 | | 55 | PowerShell 4104 | 脚本块日志 | 编码命令、下载执行 | | 56 | Task Scheduler 日志 | 事件日志 Microsoft-Windows-TaskScheduler | 恶意计划任务创建 | | 57 | Sysmon 日志(如已装) | 事件 ID 1/3/7/8/10/11/13 | 进程/网络/镜像加载/文件创建 | | 58 | 浏览器历史 | 解析 Chrome/Firefox/Edge 历史库 | 钓鱼网站访问记录 | | 59 | 最近文档记录 | `winreg` 读 RecentDocs | 最近打开的恶意文件 | | 60 | Prefetch 预读 | 解析 `C:\Windows\Prefetch\*.pf` | 程序执行历史 | | 61 | 事件日志时间线 | `log2timeline` 或手动整合 | 超级时间线分析 | **工具:** wevtutil / pywin32 / EvtxECmd / log2timeline / Timeline Explorer **输出:** 事件日志审计报告(异常登录+进程链+服务创建+PowerShell+时间线) --- ## 四、威胁情报采集清单 ### 在线情报源(API 对接) | # | 情报源 | 查询内容 | 用途 | |---|--------|----------|------| | 62 | VirusTotal API v3 | 文件哈希 / IP / 域名 / URL | 多引擎检测+信誉 | | 63 | AbuseIPDB API | IP 信誉 | 恶意 IP 识别 | | 64 | AlienVault OTX | IoC 订阅 | 社区共享威胁情报 | | 65 | Abuse.ch ThreatFox | C2 IoC | 最新 C2 IP/域名/哈希 | | 66 | Abuse.ch URLhaus | 恶意 URL | 恶意分发 URL | | 67 | PhishTank | 钓鱼 URL | 钓鱼网站比对 | | 68 | Spamhaus DROP/EDROP | 恶意 IP 段 | 已知恶意网段 | ### 本地情报库(定期更新) | # | 数据源 | 内容 | 更新频率 | |---|--------|------|----------| | 69 | 绿盟伏影通报 | 国内僵尸网络 IoC | 不定期 | | 70 | CNCERT 预警 | 国家级安全通报 | 不定期 | | 71 | MISP(自建) | 综合威胁情报 | 社区驱动 | | 72 | 本地 JARM 指纹库 | 已知 C2 TLS 指纹 | 每周 | | 73 | 本地 C2 IP/域名库 | 已知 C2 基础设施 | 每日 | ### 情报增强处理 对所有检测到的 IP/域名/哈希/证书执行: 1. 批量查询上述情报源 2. 标注:恶意/可疑/未知/清洁 3. 记录:首次发现时间、关联家族、关联 ATT&CK 技术 4. 输出 STIX 2.1 格式 IoC 包(供 SIEM 导入) --- ## 五、分析方法论(五维联动) ### 5.1 关联分析矩阵 ``` 网络 进程 持久化 文件 日志 网络 ─── Beaconing 进程↔连接 C2持久化 C2文件 登录+连接 进程 进程↔连接 ─── 父子链 持久化↔进程 进程↔文件 进程创建 持久化 C2持久化 持久化↔进程 ─── 交叉验证 持久化↔文件 任务创建 文件 C2文件 进程↔文件 持久化↔文件 ─── 哈希+熵 文件创建 日志 登录+连接 进程创建 任务创建 文件创建 ─── 时间线 ``` **关联规则示例:** - 规则1:进程A(临时目录) + 网络连接B(非常规端口) + 持久化项C(指向A) = 高危僵尸节点 - 规则2:计划任务(每5分钟执行) + 执行文件(高熵) + 外连IP(情报标记恶意) = 确认感染 - 规则3:进程A(伪装系统进程名) + 路径不在System32 + 无数字签名 = 伪装检测 - 规则4:TLS连接 JARM指纹匹配已知C2 + 证书自签名 + 连接间隔低抖动 = C2 通信确认 ### 5.2 ATT&CK 攻击链重建 将所有检测到的异常按 ATT&CK 战术阶段排列,重建攻击链: ``` Initial Access → Execution → Persistence → C2 → Action (钓鱼?) (PowerShell) (计划任务) (HTTP) (DDoS?) ↓ ↓ ↓ [模块6日志] [模块3] [模块1] ``` 如果链路覆盖 3+ 个战术阶段 → 高置信度感染判定 ### 5.3 行为基线建模 1. **首次运行**:采集系统快照作为"干净基线" 2. **后续扫描**:与基线比对,标记所有新增项 3. **网络基线**:统计正常时段的连接模式(目标IP/端口/频率分布) 4. **异常评分**:偏离基线的程度 → 异常分数 ### 5.4 前沿检测算法(可选,第四期) | 算法 | 数据输入 | 论文准确率 | 适用场景 | |------|----------|-----------|----------| | Hilbert曲线+CNN | 网络流特征→2D图像 | 98.34% | 未知家族泛化检测 | | CNN-LSTM-GRU | IoT 网络流量时序 | 99.99% | IoT 设备检测 | | GNN异构图 | DNS查询关系图 | 95% | DNS层僵尸节点检测 | | EROIKA条件自编码器 | 网络流量模式 | 99.61% | 多阶段检测+关键行为者识别 | | Fast-Flux检测 | DNS TTL+A记录数+ASN多样性 | - | Fast-Flux C2 识别 | --- ## 六、采集工具清单 ### 取证采集工具 | 工具 | 用途 | 来源 | |------|------|------| | Volatility 3 | 内存取证分析 | 开源 | | winpmem / DumpIt | 内存镜像采集 | 开源 | | Sysinternals Autoruns | 持久化项全面扫描 | 微软官方 | | Sysinternals Process Explorer | 进程树+DLL+句柄 | 微软官方 | | Sysinternals TCPView | 实时网络连接 | 微软官方 | | Sysinternals sigcheck | 数字签名验证 | 微软官方 | | EvtxECmd | Windows事件日志解析 | Eric Zimmerman | | log2timeline | 超级时间线生成 | 开源 | | YARA | 恶意文件规则匹配 | 开源 | | FTK Imager | 磁盘镜像(可选) | 商业免费 | ### 开发依赖(Python) | 库 | 用途 | |----|------| | psutil | 进程/网络/系统信息 | | winreg | 注册表读取 | | hashlib | 文件哈希 | | scipy | 熵值计算 | | requests | 情报 API 调用 | | pyOpenSSL / ssl | TLS 证书分析 | | yara-python | YARA 规则扫描 | | pywin32 | Windows API/事件日志 | | jinja2 | HTML 报告生成 | | scapy | 网络包构造/分析 | | pyshark | 流量抓包分析 | | stix2 | IoC 标准化输出 | --- ## 七、采集执行流程(标准操作程序 SOP) ``` 步骤 1: 准备阶段 ├── 确认管理员权限 ├── 准备采集工具(USB 或本地) ├── 记录系统时间、主机名、IP(时间线基准) └── 启动审计日志(如未开启) 步骤 2: 内存采集(最高优先级) ├── winpmem 采集完整内存镜像 └── 保存到外部存储,计算 SHA256 步骤 3: 网络状态采集 ├── netstat -ano(活跃连接+PID) ├── netstat -an(监听端口) ├── arp -a(ARP 缓存) ├── ipconfig /displaydns(DNS 缓存) ├── route print(路由表) ├── netsh advfirewall show(防火墙规则) └── 抓包 5 分钟(流量基线采样) 步骤 4: 进程采集 ├── tasklist /v(全部进程) ├── wmic process get name,executablepath,pid,commandline ├── tasklist /m(已加载模块) └── Get-AuthenticodeSignature(签名验证) 步骤 5: 持久化采集(14 项) ├── 注册表 12 项逐条导出 ├── schtasks /query /fo CSV /v ├── sc query(全部服务) ├── 启动文件夹文件列表 └── WMI 事件订阅查询 步骤 6: 文件系统采集 ├── 系统目录可执行文件清单 ├── 临时目录可执行文件清单 ├── 近7天新文件清单 ├── 文件哈希批量计算 ├── 熵值检测 ├── 隐藏文件检测 ├── Hosts 文件读取 └── YARA 扫描(可选) 步骤 7: 日志采集 ├── 安全日志导出(4624/4625/4688) ├── 系统日志导出(7045) ├── PowerShell 日志(4104) ├── Task Scheduler 日志 ├── Prefetch 文件列表 └── 浏览器历史导出 步骤 8: 情报比对 ├── 批量查询 IP/域名/哈希 ├── JARM 指纹比对 ├── 证书指纹比对 └── 输出情报增强标注 步骤 9: 关联分析 ├── 五维关联矩阵计算 ├── ATT&CK 攻击链重建 ├── 基线差异对比 └── 风险评分计算 步骤 10: 报告生成 ├── HTML 综合报告 ├── ATT&CK 热力图 ├── 控制台摘要 └── STIX JSON(供 SIEM 导入) ``` --- ## 八、综合分析报告结构 ### 报告目录 ``` 1. 执行摘要 1.1 检测时间与范围 1.2 风险评级(🔴🟠🟡🟢)+ 总分 1.3 关键发现摘要(3-5 条) 1.4 建议措施(按紧急程度排序) 2. 系统概况 2.1 主机信息(名称/IP/OS版本/补丁状态) 2.2 系统时间与时区 2.3 已安装安全软件 2.4 网络配置概览 3. 网络连接审计 3.1 活跃连接全表(进程/IP/端口/状态) 3.2 可疑外连详情(含情报标注) 3.3 Beaconing 分析(间隔分布图+变异系数) 3.4 非常规端口检测 3.5 DoT/DoH 通信检测 3.6 TLS 指纹分析(JARM+证书) 4. 进程审计 4.1 进程树可视化 4.2 可疑进程详情(路径/签名/命令行/父子链) 4.3 进程注入检测结果 4.4 伪装进程检测 4.5 进程-网络关联表 5. 持久化审计 5.1 14 项检查结果逐条 5.2 基线差异对比 5.3 交叉验证发现 5.4 注册表时间窗口分析 6. 文件系统审计 6.1 可疑文件列表(路径/哈希/熵值/隐藏属性) 6.2 威胁情报匹配结果 6.3 YARA 规则命中 6.4 Hosts 文件检查 7. DNS 与域名审计 7.1 DNS 缓存可疑条目 7.2 DGA 域名检测结果 7.3 DNS 隧道特征 7.4 Hosts 篡改检测 8. 行为审计 8.1 网络流量基线分析 8.2 CPU/内存异常检测 8.3 事件日志告警(登录/进程/服务/PowerShell) 8.4 横向扫描检测 8.5 时间线分析 9. MITRE ATT&CK 映射 9.1 命中技术热力图 9.2 攻击链重建图 9.3 僵尸网络家族匹配概率 10. 威胁情报综合 10.1 IoC 命中汇总 10.2 关联家族分析 10.3 情报来源与置信度 11. 基线对比 11.1 新增进程/连接/文件/持久化项 11.2 基线漂移评分 12. 建议与后续行动 12.1 紧急措施(如确认感染) 12.2 深入排查建议 12.3 加固建议 12.4 定期复检计划 附录 A: 原始数据(JSON) 附录 B: IoC 清单(STIX 2.1 格式) 附录 C: 工具版本与签名 附录 D: 采集时间线日志 ``` --- ## 九、误报控制策略 | 策略 | 说明 | |------|------| | 基线对比 | 首次运行建立干净基线,后续只报差异 | | 白名单机制 | 合法进程/连接/服务白名单,自动过滤 | | 时间窗口 | 注册表项 LastWriteTime 与可疑事件时间比对 | | 交叉验证 | 同一 IoC 在多维度出现才标记高危 | | 签名验证 | 有微软签名 ≠ 安全,但无签名 + 异常路径 = 高危 | | 路径规则 | System32 下基本安全,AppData 下重点关注 | | 情报置信度 | 多源情报命中 > 单源命中 > 仅行为异常 | --- ## 十、采集性能预估 | 模块 | 预计耗时 | 数据量 | |------|----------|--------| | 内存镜像 | 30-60 秒 | 2-16 GB | | 网络状态 | 5 秒 | < 1 MB | | 流量采样 5 分钟 | 5 分钟 | 10-100 MB | | 进程采集 | 10 秒 | < 5 MB | | 持久化 14 项 | 15 秒 | < 2 MB | | 文件系统扫描 | 1-3 分钟 | < 50 MB | | 日志采集 | 30 秒 | 10-500 MB | | 情报比对(在线) | 1-2 分钟 | 取决于 API 限速 | | 关联分析 | 10 秒 | - | | 报告生成 | 5 秒 | < 10 MB | | **总计** | **约 8-12 分钟** | **不含内存镜像** | --- ## 十一、参考标准与文献 | # | 来源 | 标题/内容 | |---|------|-----------| | 1 | NIST SP 800-86 | Guide to Integrating Forensic Techniques into Incident Response | | 2 | NIST SP 800-61 r3 | Incident Response Recommendations | | 3 | MITRE ATT&CK | Botnet TTP Mapping (TA0011/T1547/T1053 等) | | 4 | 绿盟伏影实验室 | 2026 Botnet 趋势报告 | | 5 | CNCERT | RCtea 僵尸网络风险提示 | | 6 | Nature Sci Rep 2026 | Representation Learning for Botnet Detection (98.34%) | | 7 | IEEE TON 2026 | TNT: P2P Botnet Detection Framework | | 8 | IEEE OJCOMS 2026 | EROIKA: Multi-Stage Botnet Detection (99.61%) | | 9 | Applied Sciences 2026 | GNN for Botnet Node Detection (95%) | | 10 | ICCCN 2025 | CNN-LSTM-GRU for IoT Botnet (99.99%) | | 11 | Microsoft Learn | Defender Investigation Package 结构 | | 12 | CyberDefenders | Botnet Architecture, Lifecycle, Detection | | 13 | Botnet Studies Skill | C2 Topology, DGA, Fast-Flux, Game Theory | | 14 | Law et al. (2009) | Host-Based Botnet Investigation Methodology | | 15 | Zhang et al. (2020) | Mirai Botnet Forensic Case Study |