Linux 应急响应实操 Checklist
本清单按 “信息收集→判断类型→深入分析→清理处置→报告产出” 五大环节拆解,每个步骤标注 “核心目标”“操作项”“验证标准”,可直接用于应急场景勾选,确保无关键步骤遗漏。
一、信息收集阶段(目标:全面获取基础数据,明确应急范围)
序号 | 操作项 | 具体执行 | 验证标准 | 完成情况(√/×) |
---|---|---|---|---|
1 | 基础环境信息收集 | 1. 记录受害机器 IP、操作系统版本(cat /etc/os-release )2. 确认业务场景(如 Web 服务、数据库服务) 3. 收集网络拓扑(是否在 DMZ 区、防火墙规则) | 1. 明确 OS 版本(如 CentOS 7.9、Ubuntu 20.04) 2. 掌握核心服务端口(如 Web 用 80/443、MySQL 用 3306) | |
2 | 日志文件收集 | 1. 系统日志:打包 /var/log 目录(重点 secure、messages、cron) 2. Web 日志:收集 Web 服务日志(如 Nginx 的 /var/log/nginx/、Apache 的 /var/log/apache2/) 3. 应用日志:收集中间件日志(如 Tomcat 的 logs/、JBoss 的 standalone/log/) | 1. 日志时间覆盖事件发生时段 2. 无日志缺失(如因磁盘满导致日志中断) | |
3 | 告警与流量数据收集 | 1. 导出 IDS/IPS 告警记录(含攻击 IP、攻击类型) 2. 收集防火墙拦截日志(如 iptables、云防火墙) 3. 若有条件,获取流量抓包文件(.pcap 格式) | 1. 告警数据关联受害机器 IP 2. 抓包文件包含异常通信时段数据 |
二、判断类型阶段(目标:明确事件性质,锁定应急方向)
序号 | 操作项 | 具体执行 | 验证标准 | 完成情况(√/×) |
---|---|---|---|---|
1 | 初步事件识别 | 1. 结合告警判断:如 “SSH 暴力破解” 告警→服务器入侵 2. 结合业务现象判断: - 文件后缀异常(.locked)→勒索病毒 - Web 页面篡改→网页篡改攻击 - 数据库连接异常→数据泄露风险 | 1. 事件类型与现象、告警完全匹配 2. 排除误判(如误报的 IDS 告警) | |
2 | 确认影响范围 | 1. 检查同网段其他机器是否有相同告警 2. 确认受害机器核心业务是否中断(如 Web 服务是否不可访问) 3. 排查是否有数据丢失 / 篡改(如数据库表缺失、配置文件被改) | 1. 明确受影响机器数量、业务模块 2. 量化数据影响(如丢失数据量、篡改文件数) |
三、深入分析阶段(目标:挖掘攻击痕迹,定位攻击源与恶意文件)
3.1 日志分析(核心:追踪登录与系统操作痕迹)
序号 | 操作项 | 具体执行 | 验证标准 | 完成情况(√/×) |
---|---|---|---|---|
1 | 登录日志分析(/var/log/secure) | 1. 查找成功登录记录:grep "Accepted" /var/log/secure (记录登录 IP、用户名、时间)2. 查找失败登录记录: grep "Failed password" /var/log/secure (判断是否有爆破)3. 排查异常登录:陌生 IP、非工作时段登录、root 以外账号登录 | 1. 定位可疑登录 IP(如境外 IP、无业务关联 IP) 2. 确认登录账号是否为授权账号 | |
2 | 系统错误日志分析(/var/log/messages) | 1. 查找异常进程日志:grep -i "error|warning" /var/log/messages (如进程崩溃、异常启动)2. 查找文件操作日志: grep -i "delete|modify" /var/log/messages (如关键文件被篡改) | 1. 关联异常进程与事件时间 2. 找到关键文件篡改记录(如 /etc/passwd 被修改) | |
3 | 定时任务日志分析(/var/log/cron) | 1. 查看定时任务执行记录:grep -i "CRON" /var/log/cron (记录执行用户、脚本路径)2. 排查异常任务:非授权用户的定时任务、高频执行任务(如 */1 * * * *) | 1. 定位恶意定时任务(如执行 /tmp 下脚本) 2. 确认任务创建时间与攻击时间匹配 |
3.2 进程与资源分析(核心:识别恶意进程)
序号 | 操作项 | 具体执行 | 验证标准 | 完成情况(√/×) | |
---|---|---|---|---|---|
1 | 进程排查 | 1. 查看进程树:ps auxf (重点关注无合理名称、CPU / 内存 > 50% 的进程)2. 定位进程可执行文件: ls -alh /proc/[PID]/exe (如 PID=1234,查看对应文件路径)3. 排查异常用户进程:`ps aux | grep -v root`(非 root 用户的高权限进程) | 1. 找到恶意进程(如 minerd、webshell 关联进程) 2. 明确恶意进程的可执行文件路径(如 /tmp/mal.sh) | |
2 | 资源占用排查 | 1. 实时查看 CPU / 内存:top (按 P 排序 CPU、M 排序内存)2. 查看内存使用: free -h (判断是否有内存溢出)3. 查看磁盘占用: df -h (避免因磁盘满导致日志丢失) | 1. 确认高资源占用进程是否为恶意进程 2. 磁盘空间充足(至少保留 10% 空闲空间) |
3.3 启动项与定时任务分析(核心:阻断自启动恶意程序)
序号 | 操作项 | 具体执行 | 验证标准 | 完成情况(√/×) | ||
---|---|---|---|---|---|---|
1 | 启动项排查 | 1. 查看 rc.local:cat /etc/rc.d/rc.local (排查末尾是否有恶意命令)2. 查看 init.d 服务: ls -al /etc/init.d/ (排查陌生服务,如 hack.service)3. 查看 profile.d 脚本: ls -alt /etc/profile.d/*.sh (排查新增.sh 文件) | 1. 无未经授权的启动命令 / 服务 2. 所有启动项均可追溯来源(如系统默认、业务部署) | |||
2 | 定时任务排查 | 1. 系统级任务:cat /etc/crontab 、more /etc/cron.d/* 2. 用户级任务: ls -al /var/spool/cron/* 、`cat /etc/passwd | cut -f1 -d: | xargs -I {} crontab -l -u {} <br>3. 补充任务: cat /etc/anacrontab、 ls -al /var/spool/anacron/` | 1. 无异常定时任务(如高频执行、指向恶意路径) 2. 所有任务均为授权业务任务(如备份脚本) |
3.4 文件与权限分析(核心:定位恶意文件与账号)
序号 | 操作项 | 具体执行 | 验证标准 | 完成情况(√/×) |
---|---|---|---|---|
1 | 恶意文件排查 | 1. 按时间筛选:find /var/www -mtime 1 -name "*.php" (Web 目录 1 天内修改的.php 文件)、find /tmp -ctime 0 -name "*.sh" (/tmp 目录 24 小时内新增的.sh 脚本)2. 按属性筛选: lsattr /etc/passwd /etc/shadow (查看是否被加锁)3. 按内容筛选: grep -r "eval|base64_decode" /var/www (Web 目录排查 webshell 特征) | 1. 找到 webshell、恶意脚本(如菜刀、冰蝎后门) 2. 确认恶意文件的创建 / 修改时间与攻击时间匹配 | |
2 | 用户与权限排查 | 1. 查看用户列表:cat /etc/passwd (排查 UID=0 的隐藏 root 账号、陌生用户名)2. 查看用户密码状态: cat /etc/shadow (排查异常用户的密码更新时间)3. 查看 SSH 密钥: ls -al /root/.ssh/ 、cat /root/.ssh/authorized_keys (排查陌生公钥) | 1. 无新增恶意用户(如 hack、test123) 2. SSH 密钥均为授权密钥(无陌生公钥) |
3.5 网络连接分析(核心:定位异常通信)
序号 | 操作项 | 具体执行 | 验证标准 | 完成情况(√/×) |
---|---|---|---|---|
1 | 端口与连接排查 | 1. 查看 TCP 连接:netstat -antpl (记录 ESTABLISHED 状态的异常连接,如境外 IP、非业务端口)2. 查看端口占用: lsof -i :8080 (排查非授权进程占用业务端口)3. 查看进程网络连接: lsof -p [PID] (如恶意进程对外发起的连接) | 1. 定位异常连接 IP(如 C2 服务器 IP) 2. 明确异常端口对应的进程(如恶意进程占用 8081 端口) |
四、清理处置阶段(目标:阻断攻击、清理恶意内容、恢复业务)
序号 | 操作项 | 具体执行 | 验证标准 | 完成情况(√/×) | |
---|---|---|---|---|---|
1 | 攻击阻断 | 1. 封禁攻击 IP:iptables -A INPUT -s 1.2.3.4 -j DROP (替换为实际攻击 IP)、在防火墙添加黑名单2. 关闭异常端口: iptables -A INPUT -p tcp --dport 8888 -j DROP (替换为异常端口)3. 终止恶意进程: kill -9 [PID] (先确认进程为恶意,避免误杀业务进程) | 1. 攻击 IP 无法访问受害机器 2. 异常端口无新连接建立 3. 恶意进程已终止(`ps aux | grep [PID]` 无结果) | |
2 | 恶意内容清理 | 1. 删除恶意文件:rm -f /tmp/mal.sh (恶意脚本)、rm -f /var/www/webshell.php (webshell)2. 删除恶意用户: userdel -r hack (删除用户及家目录)3. 清理恶意定时任务: crontab -r -u hack (删除用户定时任务)、删除 /etc/cron.d 下的恶意文件 | 1. 恶意文件、用户、定时任务均已删除 2. 无残留恶意内容(如回收站、隐藏文件) | ||
3 | 系统与权限修复 | 1. 重置关键账号密码:passwd root (重置 root 密码)、passwd www (重置业务账号密码)2. 修复文件属性: chattr -i /etc/passwd (解锁被加锁文件)、chmod 644 /etc/passwd (恢复默认权限)3. 修补系统漏洞: yum update (CentOS)、apt upgrade (Ubuntu)(仅修复高危漏洞,避免影响业务) | 1. 关键账号密码已重置(新密码复杂度符合要求) 2. 文件权限恢复为默认值 3. 高危漏洞已修补(可通过漏洞扫描工具验证) | ||
4 | 业务恢复 | 1. 恢复 Web 文件:从干净备份覆盖被篡改的 Web 文件(如cp /backup/index.html /var/www/html/ )2. 恢复数据库:从备份恢复被篡改 / 删除的数据(如 mysql -u root -p < backup.sql )3. 重启业务服务: systemctl restart nginx 、systemctl restart mysql | 1. Web 服务正常访问(页面无篡改) 2. 数据库数据完整(关键表无缺失) 3. 所有业务服务正常运行( systemctl status 服务名 显示 active) |
五、报告产出阶段(目标:整理应急过程,提供安全建议)
序号 | 操作项 | 具体执行 | 验证标准 | 完成情况(√/×) |
---|---|---|---|---|
1 | 报告内容整理 | 1. 事件概述:时间、地点(受害机器 IP)、影响范围(业务、数据) 2. 攻击路径分析:如 “SSH 爆破→登录系统→植入 webshell→创建定时任务” 3. 处置过程:按时间线记录关键操作(如 “14:00 封禁 IP 1.2.3.4”) 4. 安全建议:如 “开启 SSH 多因素认证”“部署 EDR 终端防护”“定期备份数据” | 1. 报告逻辑清晰,时间线完整 2. 攻击路径可追溯(有日志 / 命令输出支撑) 3. 安全建议具体可落地(非泛泛而谈) | |
2 | 报告交付 | 1. 导出报告为 PDF 格式(含截图证据,如日志片段、进程截图) 2. 同步报告给客户 / 业务负责人,说明遗留风险(如 “未修补中危漏洞,需后续安排”) | 1. 报告已交付相关人员 2. 遗留风险已明确告知,无信息遗漏 |