### 日志被删除如何排查

1. 内存取证 (Memory Forensics)

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

措施：

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

操作方法：

1. 紧急制作内存镜像： 在不重启系统的情况下，使用工具（如 `LiME`、`FTK Imager`、`Magnet RAM Capture`）立即抓取系统内存镜像
2. 分析内存镜像： 将抓取的内存镜像导入专业的取证工具（如 `Volatility`、`Rekall`）
3. 查找关键信息：
   - `pstree` 或 `pslist`： 查看当前和已终止的进程列表，寻找可疑的进程
   - `cmdline`： 查看进程的命令行参数，看看是否有 `rm` 或其他可疑的删除命令
   - `filescan` 或 `sockets`： 检查打开的文件句柄和网络连接，寻找与攻击者相关的线索
   - `dumpfiles`： 尝试从内存中恢复已删除的文件数据

2. 磁盘取证 (Disk Forensics)

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

措施：

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

操作方法：

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

3. 统和服务日志检查

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

措施：

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

操作方法：

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

4. 网络流量分析

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

措施：

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

操作方法：

- 分析网络设备日志： 检查防火墙、路由器或入侵检测系统（IDS/IPS）的日志
- 分析网络流量捕获文件： 如果在事发时有网络流量捕获（如 `pcap` 文件），可以使用 `Wireshark` 或 `Zeek` 等工具进行深度分析