用途与实际影响
这项功能怎样使用
为什么需要它
同名进程可来自不同路径,PID 会复用,退出后信息消失;单凭无签名或端口定罪又会误报。
举个实际例子
我问“刚才到底哪个程序在反复闪退?”摘要先确认那段记录没有断、确实值得深挖;我再打开同一时段的本机明细,把某个程序每隔几秒启动、退出和内存猛涨的变化排在一起。最后看到的是一条可复查的崩溃链,不是系统擅自删文件或给程序扣上“恶意”的帽子。
最后我会得到什么
先告诉我故障时段有没有足够记录、是否值得继续查;在本机详细图里再看具体程序的启动、退出、内存和磁盘变化。程序名缺失时不猜,也不把无签名直接判恶意。
正常时
当时程序的启动、资源和退出能对应起来时,给出可核查的故障线索。
发现问题时
程序路径或签名读不到时保留未知,结合其他变化继续分析。
入口不可用或证据不足时
那时没有交互桌面或记录缺口太大时,不把空白写成程序正常。
从哪里开始
在已接入 timeaudit-diagnostics 的 AI 对话中先给故障时间做有界摘要;需要点名程序时打开同一时段本机 Grafana 取证盘。
需要准备什么
- 故障时间与现象
- 需要关注的程序或资源
从开始到拿到结果
- 1
先看是否有记录
摘要说明那段覆盖是否完整、是否值得继续追查。
- 2
在本机核对具体程序
把进程启停、资源变化、前台和硬件时间线对齐;PID 和名字都不单独当身份。
- 3
交回线索
列出可复查的候选原因与缺失证据;它不替你杀进程,也不把无签名或端口当恶意证明。
技术实现与依据
这里保留实现、关键条件、精确入口、历史记录和验证结果。
进程采集和未知路径有历史源码回归;本批仅核对采集器身份,未读取用户进程、标题或连接明细关键规则与设计选择
高占用与恶意分开判断。
timeaudit-diagnostics 只给有界聚合和方向,不从省略字段猜进程名。
要回答谁闪退、写盘或联网,必须把同一时间范围带进 Grafana 资源盘 / 取证盘查看具体进程。
未知路径不伪造为系统目录。
PID 与时间/身份一起使用。
公开页可在活动事实有决策价值时直接展示;只对实际包含个人敏感正文或凭据的具体值做隐藏。
本模块用到的名词
- process key(进程档案键)
- 稳定关联身份,不能只用会复用的 PID。
- signature(数字签名)
- 发布者完整性线索;无签名不等于恶意。
- LOLBins(系统工具滥用线索)
- 系统工具与可疑参数组合,需要上下文。
专业定义
保存进程资源、签名、提权、父进程、START / EXIT、退出码和卡死状态,回答谁占资源、谁闪退、哪些信号需人工核查。
解决什么
解决证据消失、PID 复用、Windows 卡死误判、未知路径伪装和单一安全信号过度解释。
当前怎样实现
- activity_worker 用同一系统快照采资源并解析父进程。
- IsHungAppWindow 标记用户会话窗口假死。
- lifecycle_worker 在出生时抓句柄,退出时读退出码。
- process_key 连接身份与事实表。
执行流程
- 1
先用有界摘要核对目标时间窗覆盖、磁盘/网络/资源方向;摘要不包含进程名。
- 2
需要点名时,把同一窗口带入 Grafana 资源盘或取证盘。
- 3
取得进程快照与稳定身份,计算资源速率并标记卡死。
- 4
比较基线生成 START / EXIT,并保留退出码、父子关系、路径、签名和提权线索。
- 5
把具体进程与硬件、前台和生命周期时间线对齐,再输出候选解释与未知。
边界
- 提供取证线索,不是杀毒或阻断系统。
- timeaudit-diagnostics 的 aggregate-only(仅聚合)合同不返回进程名;字段省略不能被模型补猜。
- 网络速率近似分摊,远端信息可能不完整。
- 字段类型不构成 blanket ban(整类禁令);实际进程、路径、命令行、IP 和标题可在有用且具体值不含个人敏感正文或凭据时公开。
失败与恢复
- 用户只给自然问题但需要具体进程名
- 先用摘要确认覆盖和方向,再引导到同一时间窗的本机 Grafana;当前 Skill 不从聚合输出猜名字。
- 进程已退出或受保护
- 保留 unknown(未验证) 与可得生命周期,不猜路径。
- 单进程处理抛错
- 在 finally 推进基线,避免事件重复。
- 安全规则命中
- 进入待核查表,不自动修改机器。
真实入口
E:\Projects\Tools\TimeAudit\activity_worker.py进程资源与卡死
E:\Projects\Tools\TimeAudit\lifecycle_worker.py生灭、退出码、签名与提权
E:\Projects\Tools\TimeAudit\context_worker.py前台关联
E:\Projects\Tools\TimeAudit\test_lifecycle_unknown_path.py未知路径回归
E:\Projects\Tools\TimeAudit\test_activity_collection_state_lock.py采集状态并发回归
E:\Projects\Tools\TimeAudit\使用手册.md资源/取证大盘说明
如何验证
- unknown(未验证) path回归属于8月31日001cee0已通过的基线,本批39项并未重新覆盖该模块。
- 未读取用户活动进程、路径、标题或连接明细;本批源修复仅核对受管采集器自身身份。
- 进程采集、生命周期和未知路径逻辑属于8月31日完整回归;本批只核对采集器自身身份,未读用户进程明细,该产品现场仍保持mixed。
与其他模块的关系
把进程事实转成资源与取证视角,并与硬件卡顿时间对齐。
