linux-sre-handbook

06-入侵检测与响应

入侵检测分类

类型 说明 工具
HIDS (主机) 监控主机文件/进程/网络 Wazuh, Osquery, AIDE
NIDS (网络) 监控网络流量 Suricata, Snort, Zeek
日志分析 从日志发现异常 ELK + 规则引擎

主机入侵检测

可疑进程排查

# 查找监听外网的进程
ss -tlnp | grep -v "127.0.0.1"

# 查找无父进程的进程
ps aux | grep -v grep | awk '{if($2==2||$2==1||$2==0)print}'

# 查找隐藏进程
ps aux | awk '{print $2}' > /tmp/ps_pids
ls /proc | grep -E '^[0-9]+$' > /tmp/proc_pids
diff /tmp/ps_pids /tmp/proc_pids | grep '^>'

# 查找异常 crontab
cat /var/spool/cron/crontabs/*

可疑文件排查

# 最近修改的文件
find / -type f -mtime -1 2>/dev/null

# SUID/SGID 文件
find / -perm -4000 -o -perm -2000 2>/dev/null

# 无主文件
find / -nouser -o -nogroup 2>/dev/null

应急响应流程

1. 确认 → 隔离 → 取证 → 清除 → 恢复 → 复盘
   ↓
2. 隔离手段:
   - iptables 切断外部连接
   - 仅保留 SSH 跳板机通道
   - 如需要,关机保留磁盘镜像
   ↓
3. 取证关键信息:
   - bash history
   - /var/log/ 完整备份
   - 进程列表、网络连接
   - 定时任务、启动服务
   - 最近修改的文件

自动化工具

Osquery — SQL 查询系统状态

SELECT pid, name, cmdline FROM processes WHERE name LIKE '%malware%';
SELECT * FROM listening_ports WHERE port = 4444;
SELECT * FROM crontab;

Wazuh — 开源 HIDS

延伸阅读