SRUM 资源使用记录
SRUM(System Resource Usage Monitor)按小时间窗记录进程的资源消耗与网络用量,数据库是 C:\Windows\System32\sru\SRUDB.dat,采用 ESE 格式。它的价值在于:即使缺少流量日志,也能从主机侧看出某个进程在某个时间窗里发送了多少字节。
基本信息
| 数据库路径 | C:\Windows\System32\sru\SRUDB.dat |
|---|---|
| 存储格式 | ESE 数据库,不能用文本方式直接读取 |
| 记录粒度 | 按小时间窗聚合 |
| 主要字段 | 进程标识、用户 SID、网络收发量、CPU 与磁盘使用 |
| 解析工具 | SrumECmd(Eric Zimmerman 工具集)等 ESE 解析器 |
| 获取方式 | 卷影副本或离线镜像提取,避免直接复制在用文件 |
典型使用场景
- 判断可疑进程的外联时间窗
- 在缺少流量日志时提供主机侧网络用量旁证
- 识别异常时段的高资源占用进程
- 与进程列表、连接日志交叉印证
- 分析长期驻留的定时任务与后台服务行为
最小示例
最小示例
# 先通过卷影副本或离线镜像取得副本
copy C:\Windows\System32\sru\SRUDB.dat C:\evidence\SRUDB.dat
# 解析为 CSV
SrumECmd.exe -f C:\evidence\SRUDB.dat --csv C:\out\srum
# 查看输出并按时间窗排序
Import-Csv C:\out\srum\SRUDB.csv | Select-Object -First 5 TimeStamp, AppId, BytesSent
dir C:\out\srum # 输出文件名与列名以工具版本为准字段与解读
| 字段 | 含义 | 注意 |
|---|---|---|
| TimeStamp | 时间窗起点 | 小时级聚合,不代表精确外联时刻 |
| AppId | 应用标识,含路径或包名 | 用于定位到具体进程 |
| UserSID | 关联用户 | 需换算成账号名再写进报告 |
| BytesSent | 窗口内发送字节数 | 与流量设备口径不一致 |
| BytesRecv | 窗口内接收字节数 | 单向数值异常时留意更新或回传行为 |
SRUM 是窗口聚合数据,不能用来判断秒级时刻;外联时点仍需结合连接日志或流量数据。
不同 Windows 版本的 SRUDB 表结构与记录类型有差异,报告中应写清工具版本与实际解析出的表名。
直接复制正在被系统写入的数据库可能得到不完整副本,应使用卷影副本或离线镜像提取,并记录获取方式与哈希。