确定恶意代码异常的“开始时间”,核心方法是找出最早一条能够独立佐证异常行为的证据,并把它与正常基线对比,而不是采用发现时间、报警时间或清理时间。发现时间往往比真实开始时间晚很多,只有最早可信证据才接近真实起点。
同一事件通常存在四个时间点:植入时间(文件或代码被写入的时刻)、首次执行时间(恶意逻辑第一次运行)、首次可观测时间(日志、流量、告警第一次留下痕迹)、发现时间(人注意到并开始处理)。恶意代码检测要的“异常开始时间”,一般指首次执行时间;当无法直接取到时,用首次可观测时间作为下界,并注明这是推断值。
适用前提:系统时钟基本可信、日志未被大面积删除或覆盖、至少保留一类带时间戳的记录。若时钟本身被篡改或日志缺失,只能给出时间区间,不能给出精确时刻。
把手上所有带时间戳的材料按下面顺序排列,取其中最早且能指向同一异常的一条:
判断规则:如果两条证据时间接近且指向同一行为,取更早的一条;如果只有低可信度证据(如被刷新过的修改时间),把它当作“不晚于”的上界,而不是起点。
假设某台服务器出现异常外连,需要确定最早开始时间,可以按以下步骤操作(示例为假设场景,用于说明方法):
验收信号:你能给出一个时间点或时间区间,并说明它由哪条证据支撑、为什么比发现时间更早、有哪些不确定因素。
人手不足时不必全量翻日志,优先检查:计划任务与服务安装记录(恶意代码常靠持久化机制反复启动)、账号登录与提权记录(入侵往往先于植入)、最早一条异常外连(网络证据通常最难被本地篡改)。这三处能覆盖多数场景的起点判断,其余日志作为补充验证。
下一步:把确定出的开始时间与前后各 24 小时的正常基线做一次对比,确认该时间点之前是否存在同类但被忽略的痕迹,再据此划定需要清理和复查的范围。