CodeRoadMap
首页路线题库资源库文章社区
CodeRoadMap

程序员的学习成长路线图。内容免费开放,登录后可同步路线图与课时进度。

由 程序员柏风 独立维护 · 关于作者

学习

  • 路线图
  • 课程
  • 面试题
  • 文章
  • 我

更多

  • 资源
  • 社区
  • 关于作者
  • 内容说明

© 2026 CodeRoadMap

津ICP备2026012044号-1·津公网安备12011002026155号·coderoadmap@126.com
网络安全入门/课时/事件响应与取证
RawBlame
课时目录12 节

网络安全入门

  1. 01安全职业与 IT 基础
  2. 02网络与安全基础
  3. 03操作系统加固
  4. 04密码学与 PKI
  5. 05身份与访问控制
  6. 06威胁与攻击向量
  7. 07防御技术与工具
  8. 08事件响应与取证
  9. 09云与虚拟化安全
  10. 10渗透测试入门
  11. 11合规与认证
  12. 12综合练习

事件响应与取证

准备、遏制、根除、恢复、取证基础。

35 分钟

事件响应:NIST/SANS 流程与实战演练

这一课你将能做到

  1. 按准备、检测分析、遏制根除恢复、事后复盘的完整流程处置一次模拟入侵
  2. 用一组标准 Linux 命令完成证据收集与初步分析
  3. 为本站平台写一份可执行的安全事件响应预案(Runbook)

为什么要学

入侵不是「会不会」而是「何时」的问题。没有预案的团队在事件发生时的典型表现:直接重启服务器(销毁内存证据)、慌乱中删被入侵的账号(销毁日志)、对外乱发公告。事件响应的纪律性决定了损失下限——这也是大厂 SOC 团队的核心工作方法。

人话:应急响应 = 消防演习。火警响起时,专业人员按预案走,没预案的团队互相踩踏。

先建立图像

NIST SP 800-61 的生命周期是循环而非直线:

┌─ ① 准备 Preparation ── 预案、工具、联系人、演练
│        ▼
├─ ② 检测与分析 ──────── 告警分诊、确认范围、定性定级
│        ▼
├─ ③ 遏制/根除/恢复 ──── 隔离止损 → 清除持久化 → 恢复服务
│        ▼
├─ ④ 事后复盘 ────────── 时间线、根因、改进项跟踪
└──────────── 回到 ①(改进项输入下一轮准备)

SANS 六步法(准备、识别、遏制、根除、恢复、总结)是同一思想的更细拆分,面试两者都要能说。

跟着做

步骤 1:准备阶段——建立你的工具箱与预案

# 靶机(Ubuntu)预装应急常用工具
sudo apt install auditd rkhunter lynis
# 明确「证据盘」位置:只读挂载的外部存储
mkdir -p /mnt/evidence && sudo mount -o ro /dev/sdb1 /mnt/evidence

准备一页纸预案:事件分级(P1 数据泄露/P2 服务入侵/P3 异常行为)、各角色联系方式、升级路径、对外口径审批人。

步骤 2:演练设定(打自己的靶机)

# 靶机上模拟弱口令被爆破成功(用错误密码多试几次自己的 SSH)
# 或用 hydra 对自己靶机暴力破解(仅限自建靶机!)
hydra -l your_user -P /usr/share/wordlists/rockyou.txt \
  192.168.56.101 ssh -t 4    # rockyou 字典:kali 自带,Ubuntu 需单独下载

几分钟内你会看到 auth.log 里密密麻麻的 Failed password——这就是真实攻击者每天在做的事。

步骤 3:检测与分析——收集证据

# 登录痕迹:成功登录、失败尝试、当前在线
sudo last -F | head -20
sudo lastb | head -20            # 失败登录(b = bad)
who                              # 当前登录
# 认证日志分析
sudo grep 'Accepted' /var/log/auth.log | awk '{print $9,$11}' | sort | uniq -c
# 可疑进程与外联
ps auxf | less
ss -antup | grep ESTAB           # 谁在对外连接
# 持久化排查:定时任务、systemd、启动项
crontab -l; sudo ls /etc/cron*
systemctl list-unit-files --state=enabled
# 文件完整性:最近 24h 被改过的文件
sudo find / -mtime -1 -type f -not -path '/proc/*' -not -path '/sys/*' 2>/dev/null | head

**关键纪律:先取证再处置。**把 auth.log、ps 输出、网络连接快照拷到证据盘后才动手。

步骤 4:遏制——止血

# 隔离:切断攻击路径但保留取证环境(不要直接关机!)
sudo ufw deny from <attacker_ip>
# 账号层面:禁用被入侵账号、踢会话
sudo usermod -L compromised_user
sudo pkill -KILL -u compromised_user
# 收紧入口:临时关闭 SSH 密码登录(若尚未关闭)

步骤 5:根除与恢复

# 根除:清除持久化(重点查 crontab、systemd、authorized_keys、异常 SUID)
cat ~/.ssh/authorized_keys        # 逐行核对
sudo find / -perm -4000 -newer /var/log/auth.log.1 2>/dev/null
# 恢复:改所有相关凭证 → 从干净备份/镜像重建 → 验证 → 逐步放量
sudo passwd your_user

步骤 6:事后复盘——写报告

报告骨架:时间线(首次入侵→发现→遏制→恢复)、影响面(哪些数据/系统/用户)、根因(为什么爆破成功:弱口令+无 fail2ban)、改进项(责任人+截止时间)。改进项必须闭环跟踪,否则复盘等于零。

讲清楚要点

  1. 遏制优先于取证完备:业务在流血时,先隔离止损(断网、封 IP、禁账号),再补齐证据。关机会销毁内存证据——改用拔网线/防火墙隔离。
  2. 证据要「先备份后处置」:日志、进程快照、网络连接、被改文件的哈希,全部拷贝到只读介质。处置动作本身会改变系统状态,没有快照就无法回溯。
  3. 根除看「持久化五件套」:账户(新增/提权)、定时任务、systemd 服务、SSH authorized_keys、启动脚本。攻击者回归的前提是他留了后门,漏删一个就会二次沦陷。
  4. 恢复不是「重启就好」:改密码(所有被影响凭证)、从干净备份恢复(备份本身要验证未被感染)、打补丁修根因,然后小流量验证放量。
  5. 复盘的核心产出是改进项:每一条带责任人和 deadline,并在下一次演练中验证闭环。NIST 把「事后」画成环回箭头就是这个原因。

你可能会懵的地方

  • 发现被入侵后第一件事是关机吗? 不是。关机销毁内存证据(恶意进程、加密密钥、网络连接)。正确顺序:隔离网络 → 内存/日志取证 → 遏制 → 根除。除非正在发生大规模数据外传,才考虑断电止损。

  • 演练时真用 hydra 会不会有法律问题? 对自己拥有并搭建的靶机没有问题,这也是推荐的练习方式。红线始终是:未经授权不打任何他人的系统。

  • 日志被攻击者删了怎么办? 这就是为什么日志必须外发(远端 syslog/SIEM)且远端只追加。本机日志可被清除,外发日志才是可信证据链。

  • 怎么判断是误报还是真攻击? 按告警上下文三角验证:登录 IP 是否异常地理/时间、目标账号是否有对应业务行为、关联系统是否同时告警。单一信号不下结论,SOC 术语叫「告警分诊」。

  • Java 平台对应的事件响应准备什么? 预案里写清楚:Actuator 与日志位置、网关一键封禁手段、Redis/DB 凭证轮换步骤、备份恢复流程。被刷/越权/RCE 三类事件的 Runbook 分别演练一次。

错法对照

错法问题正解
发现入侵直接重启销毁内存证据先隔离网络,再取证
只删可疑文件不查持久化后门残留二次沦陷系统性清查五件套
恢复后不改密码凭证已被窃取全量轮换相关凭证
复盘会开完没有跟进同类事故重复发生改进项责任人+deadline+验证闭环
日志只存本机攻击者可清痕迹外发独立存储,只追加

卡点急救

  1. lastb/last 显示空:日志被轮转或清空。看 /var/log/wtmp、/var/log/btmp 的修改时间本身也是线索;没有外发日志时,用文件系统时间线(find -mtime)补证据。
  2. 分不清攻击者 IP 和自己运维 IP:对照变更记录与 VPN/办公网段清单,把已知运维 IP 建白名单基线,剩下的才可疑。
  3. 遏制后业务大面积故障:预案缺失的典型症状。平时演练「单 IP 封禁」「单服务隔离」的最小动作,避免紧急时刻只会拔电源。

面试常问

  • 简述 NIST 事件响应生命周期。 四阶段:准备(预案/工具/演练)→ 检测与分析(分诊、定性定级)→ 遏制、根除、恢复(止损→清后门→验证恢复)→ 事后活动(复盘、改进项闭环)。加分点:强调它是循环、遏制优先于取证完备、日志外发是证据链基础。

  • 服务器疑似被入侵,你的操作顺序? 隔离网络(不关机)→ 快照取证(日志/进程/连接/文件哈希到只读介质)→ 影响面分析 → 遏制(封 IP/禁账号/踢会话)→ 根除(持久化五件套)→ 恢复(轮换凭证+干净备份+验证)→ 复盘报告与改进项。

  • 如何设计一个安全事件的分级? 按影响面与敏感度:P1 数据泄露/勒索/大面积不可用(立即升级管理层)、P2 单机入侵/越权可用、P3 扫描探测/弱口令尝试。分级决定响应时限、升级路径与对外口径,预案里必须写死。

自测三问

  1. 为什么发现入侵后不建议直接关机?
  2. Linux 上的「持久化五件套」指哪五类位置?
  3. 你平台的登录接口被撞库,按你现在的能力能写出处置步骤吗?

小结一句话

事件响应拼的是预案与纪律:先隔离再取证、根除查尽持久化、恢复必须轮换凭证、复盘闭环到下一轮准备。

延伸

  • NIST SP 800-61 计算机安全事件处理指南
  • SANS 事件响应手册
  • 下一课:云安全——IAM、安全组与数据保护。
加载本节练习…
← 上一课防御技术与工具下一课 →云与虚拟化安全