应急响应与溯源
应急响应是安全运维的最后一道防线,当服务器被入侵、数据泄露或服务异常时,需要快速定位问题、止血、溯源和恢复。
1. 应急响应流程
发现异常(告警/用户报告)
│
▼
初步研判(是否真实攻击/影响范围)
│
▼
隔离止损(断网/封IP/下线服务)
│
▼
取证分析(日志/内存/磁盘/网络)
│
▼
溯源定位(攻击路径/入口点)
│
▼
修复加固(打补丁/修复配置/更新规则)
│
▼
恢复上线(验证服务正常/监控是否复发)
│
▼
复盘总结(输出报告/改进防御)
2. Linux 入侵排查
2.1 查看异常登录
# 最近登录记录
last -20
lastlog
# 失败登录记录
lastb -20
# 当前登录用户
who
w
# SSH 密钥登录(非密码)
cat ~/.ssh/authorized_keys
2.2 查看异常进程
# 占用 CPU 最高的进程
top -c
# 所有进程(含隐藏进程)
ps aux --sort=-%cpu | head -20
# 进程树
pstree -ap
# 异常网络连接
netstat -tunlp
ss -tunlp
# 查看进程对应的可执行文件
ls -la /proc/PID/exe
2.3 查看异常文件
# 最近修改的系统文件(30分钟内)
find / -mmin -30 -type f 2>/dev/null | grep -v '/proc\|/sys\|/dev'
# SUID 权限的敏感文件(提权常用)
find / -perm -4000 -type f 2>/dev/null
# 计划任务(后门常见位置)
crontab -l
cat /var/spool/cron/crontabs/root
ls -la /etc/cron.d/
2.4 查看异常用户
# 所有用户(含隐藏)
cat /etc/passwd
# UID=0 的特权用户(正常只有 root)
awk -F: '($3==0){print}' /etc/passwd
# 最近添加的用户
tail -50 /etc/passwd
3. 内存取证
3.1 内存dump
# 安装 LiME(Linux Memory Extractor)
modprobe lime mode=direct path=/tmp/mem.lime format=lime
# 或使用 DD
dd if=/dev/fmem of=/tmp/mem.raw bs=1M count=1024
3.2 内存分析(Volatility)
# 分析系统信息
volatility -f mem.lime --profile=LinuxDebian10_5_0_1_AMD64 linux_pstree
# 查看网络连接
volatility -f mem.lime --profile=LinuxDebian10_5_0_1_AMD64 linux_netstat
# 查看历史命令
volatility -f mem.lime --profile=LinuxDebian10_5_0_1_AMD64 linux_bash
4. 日志分析
4.1 SSH 登录日志
# 登录成功
grep 'Accepted' /var/log/auth.log | tail -20
# 登录失败(暴力破解痕迹)
grep 'Failed' /var/log/auth.log | tail -20
# 统计失败次数TOP来源IP
grep 'Failed' /var/log/auth.log | awk '{print $(NF-3)}' | sort | uniq -c | sort -rn | head -10
4.2 Web 访问日志(Nginx)
# 查看异常大量请求(扫描器特征)
grep -E '(\.php|\.asp|\.jsp|\.env)' /var/log/nginx/access.log | awk '{print $1}' | sort | uniq -c | sort -rn | head -10
# 查找 SQL 注入尝试
grep -E "union.*select|order.*by|' OR '1'='1" /var/log/nginx/access.log
# 查找命令注入尝试
grep -E 'curl|wget|whoami|cat /etc/passwd|ping.*127\.0\.0\.1' /var/log/nginx/access.log
4.3 命令历史
cat ~/.bash_history | tail -100
# 查看被删除的命令(如果有 audit)
ausearch -k bash_history | tail -20
5. 勒索病毒应对
# 查看异常文件(加密后缀)
find / -name '*.encrypted' -o -name '*.locked' -o -name 'README_HOW_TO_DECRYPT*' 2>/dev/null
# 勒索特征(加密后文件头)
xxd /path/to/encrypted.file | head -5
# 立即断网,防止横向扩散
ip link set eth0 down
# 查看异常外联
ss -tunp | grep ESTABLISHED
6. 流量分析(Wireshark)
# 提取 HTTP 请求中的 URL
tshark -r capture.pcap -Y 'http.request' -T fields -e http.request.uri | sort -u
# 提取 DNS 查询(发现 C2 域名)
tshark -r capture.pcap -Y 'dns.qry.name' -T fields -e dns.qry.name | sort -u
# 提取明文密码(HTTP Basic Auth)
tshark -r capture.pcap -Y 'http.authbasic' -T fields -e http.authbasic
7. 下一步
- WAF 与 SOC 建设 — 建设防护体系防止再次入侵
- 等保三级建设 — 合规建设减少安全风险