日志被删除如何排查

1. 内存取证 (Memory Forensics)

这是最重要的一个步骤,也是最可能找到线索的地方

措施:

  • 日志进程的内存: 即使日志文件被删除,日志服务(如 rsyslogdjournald 等)在运行时,其内存中可能仍然保留着最近的日志记录
  • 文件系统缓存: 操作系统内核在删除文件后,可能不会立即清除其在内存中的缓存
  • 进程活动: 攻击者执行删除命令(例如 rm -rf /var/log/*)的进程信息,以及该进程的父进程、子进程,都可能存在于内存中

操作方法:

  1. 紧急制作内存镜像: 在不重启系统的情况下,使用工具(如 LiMEFTK ImagerMagnet RAM Capture)立即抓取系统内存镜像
  2. 分析内存镜像: 将抓取的内存镜像导入专业的取证工具(如 VolatilityRekall
  3. 查找关键信息:
    • pstreepslist 查看当前和已终止的进程列表,寻找可疑的进程
    • cmdline 查看进程的命令行参数,看看是否有 rm 或其他可疑的删除命令
    • filescansockets 检查打开的文件句柄和网络连接,寻找与攻击者相关的线索
    • dumpfiles 尝试从内存中恢复已删除的文件数据

2. 磁盘取证 (Disk Forensics)

即使文件被删除,数据通常不会立即被擦除,只是其在文件系统中的索引(inode)被标记为可用

措施:

  • 数据残留: 只要数据块没有被新数据覆盖,就有恢复的可能性
  • 文件系统元数据: 文件系统的元数据(如日志删除的时间戳、执行删除的用户等)可能仍然存在

操作方法:

  1. 创建磁盘镜像: 使用 dd 或其他取证工具(如 EnCaseFTK)对受影响的磁盘进行物理或逻辑镜像,确保不对原始数据进行任何修改
  2. 使用文件恢复工具:
    • foremostscalpel 这类工具基于文件头和文件尾的特征来搜索和恢复数据,可以尝试恢复 .log.gz 或其他可能被删除的文件
    • extundeletetestdisk 这类工具专门针对文件系统的特性,可以恢复被删除的文件
  3. 分析文件系统日志(如果可用):
    • 某些文件系统(如 ext4)有自己的日志,可能会记录文件的创建、删除等操作。

3. 统和服务日志检查

虽然主日志被删了,但还有一些其他地方可以寻找线索

措施:

  • 独立日志: 某些应用程序或服务有独立的日志目录,可能不在 /var/log
  • 审计日志: 如果系统开启了审计功能(如 auditd),它会独立记录系统调用,包括文件的删除操作。这通常是排查此类问题的“黄金”线索

操作方法:

  • 检查独立应用日志: 查看 web 服务(如 NginxApacheaccess.log)、数据库、容器服务(如 Docker)的日志目录。这些日志可能记录了攻击者入侵的原始入口
  • 检查 auditd 日志: 检查 /var/log/audit/audit.log 或其指定位置。搜索关键词如 deleteunlinkrm,或者可疑的用户 ID
  • bash 历史记录: 检查 /root/.bash_history 或其他用户的 ~/.bash_history。攻击者如果未清除此文件,可能会留下痕迹。不过,有经验的攻击者通常会清除或禁用此功能

4. 网络流量分析

攻击者在入侵和删除日志后,可能还会进行数据回传或保持远程连接

措施:

  • 攻击者通信: 可能会有与外部 C&C(命令与控制)服务器的通信
  • 数据外泄: 攻击者可能在删除日志前已经窃取了数据

操作方法:

  • 分析网络设备日志: 检查防火墙、路由器或入侵检测系统(IDS/IPS)的日志
  • 分析网络流量捕获文件: 如果在事发时有网络流量捕获(如 pcap 文件),可以使用 WiresharkZeek 等工具进行深度分析
Copyright © 版权信息 all right reserved,powered by Gitbook该文件修订时间: 2025-09-25 03:13:23

results matching ""

    No results matching ""