服务器被攻击后,第一件事不是重启或修复,而是立即启动取证流程,核心是保存日志和流量包。你需要快速锁定受影响系统,使用dd命令对内存和磁盘做镜像备份,同时用tcpdump抓取实时网络流量。所有操作必须通过离线存储设备或加密通道转移证据,避免覆盖原始数据。下面我会一步步拆解具体操作,从取证准备到日志分析,再到流量包解析,帮你构建完整的应急响应链条。

一、攻击发生后的黄金一小时:取证流程与关键操作

在攻击被发现的首小时内,取证动作必须按顺序执行。首先,立即隔离受影响服务器,但不要断开网络,保持攻击流量可捕获。通过带外管理口或本地控制台登录,避免使用可能被篡改的SSH服务。使用只读介质挂载工具包,例如基于Linux的应急响应镜像,运行以下命令创建内存快照:

dd if=/dev/mem of=/mnt/evidence/mem.dump bs=1M

同时,对系统磁盘进行全盘镜像。若磁盘容量较大,可先使用foremost提取关键文件。所有镜像需计算哈希值(SHA-256)并记录:

sha256sum /mnt/evidence/mem.dump > /mnt/evidence/hash.log

网络方面,在网关或镜像端口启动流量捕获。若攻击持续,优先抓取双向流量:

tcpdump -i eth0 -w /mnt/evidence/attack.pcap -C 1000

此阶段需同步收集系统状态信息,包括进程列表、开放端口、计划任务和用户会话。使用脚本自动化采集,但避免依赖系统自带工具(可能被替换)。

二、日志保存的四个层级:从系统日志到应用轨迹

日志是攻击溯源的骨架,需覆盖操作系统、应用程序、安全设备和网络设备四个层面。首先,保护系统日志的完整性。Linux系统下,立即备份/var/log目录,重点包括auth.logsecuremessagesaudit/audit.log。对于Windows服务器,导出事件查看器中的安全日志、系统日志和应用日志,使用wevtutil命令行工具:

wevtutil epl Security /backup:security.evtx

应用层日志如Web服务器的access.log、数据库的慢查询日志、中间件的错误日志需单独归档。注意检查日志轮转设置,防止关键时段日志被覆盖。安全设备日志(如WAF、IDS)需通过syslog协议转发至独立存储服务器,确保与受攻击系统物理隔离。

日志保存后,使用时间线分析工具(如log2timeline)进行归一化处理,将分散日志合并为统一时间序列。这有助于还原攻击者从入侵到横向移动的完整路径。

三、流量包捕获的实战技巧:从全量抓取到智能过滤

流量包提供了攻击行为的网络视角。在交换机镜像端口或服务器本地,使用tcpdumpWireshark进行捕获。若流量过大,采用过滤策略聚焦关键数据:

tcpdump -i any src 192.168.1.100 and port 443 -w ssl_traffic.pcap

针对加密流量(如HTTPS),需同时保存TLS握手阶段的密钥日志。在Web服务器配置中启用SSLKEYLOGFILE环境变量,配合Wireshark可解密部分通信内容。对于DDoS或暴力破解攻击,捕获SYN Flood或认证失败的数据包,分析源IP分布和载荷特征。

长期监控场景下,部署网络流量分析(NTA)工具,如Zeek(原Bro),它能将原始pcap文件转换为结构化日志:

zeek -r attack.pcap -s local.zeek

输出结果包括HTTP请求、DNS查询、SSL证书等关键信息,大幅降低人工分析成本。

四、证据链构建与法律合规要点

取证结果需满足法律证据要求。从数据收集到出报告,全程保持链式监管。每个证据文件需记录收集人、时间、地点、哈希值和存储位置。使用数字取证工具(如AutopsyFTK Imager)封装证据包,生成不可篡改的案例文件。

合规方面,遵循《网络安全法》和等级保护2.0要求,确保日志留存不少于6个月。涉及数据泄露时,注意用户隐私保护,对证据中的个人信息进行脱敏处理。跨境传输证据需符合数据出境安全评估规定,优先选择本地存储和审计。

五、深度分析案例:从日志和流量包还原攻击路径

假设一台Web服务器被植入后门,通过日志和流量包关联分析可还原攻击全貌。首先,检查Web日志发现异常POST请求:

192.168.5.30 - - [15/Oct/2023:03:22:11] "POST /wp-admin/upload.php HTTP/1.1" 200 312

该IP在短时间内尝试上传shell.php文件。同步分析同一时段的流量包,过滤该IP的HTTP流,发现载荷中包含Base64编码的Webshell代码。进一步追踪攻击者后续连接,在流量包中定位到反向Shell会话:

tcp.stream eq 123 && tcp contains "bash -i"

结合系统日志,发现攻击者通过Webshell创建了新用户,并在/etc/cron.d/添加了持久化任务。通过内存镜像提取出恶意进程的运行时参数,最终确定攻击工具为Metasploit的Meterpreter。

六、预防性加固:基于取证结果的安全优化

取证不仅是事后追溯,更为防御体系提供优化依据。根据日志分析结果,部署集中式日志管理(如ELK Stack),实现实时异常检测。针对流量包中暴露的协议漏洞,更新防火墙规则,限制非常用端口的出站连接。

技术层面,启用系统审计策略(如Linux Auditd、Windows PowerShell日志记录),记录进程创建和文件访问行为。网络层面,通过NetFlow或sFlow监控东西向流量,结合威胁情报过滤恶意IP。定期进行取证演练,确保团队能熟练使用Volatility分析内存镜像,用NetworkMiner重构网络会话。

总结来说,服务器被攻击后的取证是一场与时间赛跑的技术战。保存日志和流量包是基础,更重要的是建立标准化响应流程,将技术动作转化为可诉讼的证据链。只有将每一次攻击都视为学习机会,才能真正从被动防御转向主动免疫。