DDoS攻击取证之所以棘手,根源在于攻击流量与正常业务流量的边界模糊,且攻击源极度分散。要完成一次具有法律效力或能用于技术回溯的取证,你不能只盯着流量峰值,必须从网络层、传输层到应用层,按时间轴把多维度的数据固定下来。取证的核心不是抓包那么简单,而是构建一条完整的证据链,证明攻击行为的存在、攻击方式的特征以及攻击造成的影响。
全量网络流量原始数据包这是最基础也最占存储的证据。取证时,你需要完整捕获攻击期间链路上的原始PCAP文件。不要只抓包头,必须抓全包,因为应用层攻击的载荷里藏着攻击特征。捕获点要尽可能靠近攻击目标服务器,同时也要在上游网络边界的镜像端口同时抓取,这样能对比出哪些流量被上游清洗设备过滤了,哪些最终打到了服务器。存储PCAP时,务必使用时间戳精确到微秒的文件命名,并按固定大小切片,防止单个文件过大损坏。保留原始MAC地址信息也很关键,如果攻击流量经过了二层设备转发,MAC地址能帮你追溯到前一个网络节点。
NetFlow与IPFIX流记录数据全量抓包不可能长期开启,流记录才是长期监控和回溯的骨架。你需要从网络设备上导出攻击前后的NetFlow v9或IPFIX流记录,至少包含源IP、目的IP、源端口、目的端口、协议号、包数和字节数、流的起始和结束时间。这些数据能快速回答几个关键问题:攻击流量是从哪些AS域涌入的,是否利用了反射放大器,通信协议分布如何。导出间隔要缩短到1分钟甚至30秒,5分钟以上的粒度会抹平瞬间的脉冲攻击特征。取证时,把流记录导入分析工具,按目的IP聚合后绘制时间序列图,攻击的起始、峰值和结束时间点一目了然,这比任何文字描述都直观。
服务器与边界设备的系统日志网络数据只能反映链路上的情况,服务器自身的状态数据是形成证据闭环的另一半。你需要收集被攻击服务器的内核日志、Web服务器访问日志和错误日志、数据库慢查询日志。内核日志里的“possible SYN flooding”或“nf_conntrack: table full”记录,是证明资源耗尽型攻击的直接证据。Web服务器日志不要只看正常请求,要完整保留包括返回状态码为4xx和5xx的所有记录,这些失败请求里往往藏着攻击工具的特征User-Agent和请求路径。边界防火墙和负载均衡器的系统日志同样重要,它们记录的会话表项数量突增、CPU利用率飙升到100%的时间点,能精确对应攻击阶段。
深度包检测的元数据与统计信息如果你部署了深度包检测设备或入侵检测系统,取证时要导出其产生的告警日志和会话元数据。重点关注针对HTTPS流量的解密后的请求头信息,很多应用层DDoS攻击会构造异常的HTTP方法、超长的Cookie或者畸形的JSON结构。元数据里提取出的TLS指纹信息价值极高,不同攻击工具使用的TLS握手参数有固定模式,这些指纹能帮你区分攻击流量来自真实的浏览器还是脚本工具。同时,提取TCP会话的握手完成率、重传率和RST包比例,SYN Flood攻击的握手完成率会急剧下降,而HTTP慢速攻击的重传率会异常升高。
BGP路由与网络拓扑变更记录大规模DDoS攻击往往伴随着路由层面的异常。取证时,你要从边界路由器上拉取攻击期间的BGP更新报文日志和路由表快照。攻击者可能通过劫持前缀来发起攻击,或者你的流量清洗策略触发了BGP社区属性变更将流量牵引至清洗中心。这些路由变更记录要精确到秒,并与流量峰值时间线对齐。同时,收集上游运营商发送的FlowSpec规则注入记录,这些记录能证明运营商侧采取了哪些具体的流量过滤措施。如果你使用了任播技术分散攻击流量,各个任播节点的流入流量比例变化数据也要保留,它能展示攻击流量在全球不同接入点的分布情况。
DNS查询与响应日志DNS系统既是攻击目标也是攻击放大器。取证时,你需要收集权威DNS服务器和递归DNS服务器的查询日志,重点关注查询类型为ANY、TXT等大响应包的请求,以及针对随机子域名的水刑攻击查询。日志里要包含客户端源IP、查询域名、查询类型、响应包大小和返回码。如果攻击导致了DNS解析服务中断,你还需要导出当时DNS服务器上的连接跟踪表状态,证明大量源IP处于SYN_RECV状态。对于利用了DNS反射的攻击,你的服务器日志里会留下大量未请求的DNS响应包记录,这些响应包的源IP指向被伪造的受害者地址,而你的服务器则成了反射器。
云平台与CDN的遥测数据如果你的业务部署在云上或接入了CDN服务,取证时务必从云控制台导出攻击期间的各项监控指标。这些数据包括但不限于:实例级别的网络PPS和BPS曲线、负载均衡器的新建连接数和并发连接数、弹性伸缩事件的触发记录。CDN层面要拿到边缘节点的状态码分布和回源请求量突增记录。云平台提供的DDoS防护服务会产生详细的攻击事件报告,里面通常包含攻击类型分类、各攻击类型的流量峰值、清洗掉的流量总量等数据。这些由第三方平台产生的时间戳明确的数据,在司法取证中具有较高的证明力。
威胁情报与外部探测数据取证不能只看内部数据,外部视角的佐证同样关键。你需要记录攻击期间从外部网络对目标服务进行探测的结果,包括TCP端口连通性、HTTP响应时间和SSL证书状态。同时,查询公开的威胁情报平台,获取攻击源IP的历史恶意行为记录、关联的僵尸网络家族信息。如果你的业务IP在攻击期间被路由黑洞,你还需要保留上游运营商发送的RTBH触发通知。这些外部数据与内部流量数据交叉验证,能排除自身网络故障导致的中断可能性,把事件性质牢牢锁定在恶意攻击上。
时间同步与证据固化所有上述数据的价值,都建立在严格的时间同步基础上。取证前,你必须确认所有网络设备、服务器、安全设备都通过NTP协议同步到同一个权威时间源,时间偏差要控制在毫秒级。取证时,不要直接操作原始数据文件,而是通过只读方式制作磁盘镜像或文件副本,并对副本计算SHA-256哈希值。将哈希值、文件列表、采集时间点记录在案,形成保管链文档。如果条件允许,使用专门的取证工具对PCAP文件进行索引和签名,防止后续被质疑数据完整性。整个取证过程的操作日志本身也要作为证据的一部分保留。
真正完整的DDoS取证,是让网络数据开口说话。从原始数据包到流记录,从服务器日志到路由变更,每一层的数据都在讲述攻击故事的不同侧面。当你把这些数据按时间线拼接在一起时,攻击者的手法、攻击资源的规模、攻击造成的影响就不再是模糊的猜测,而是有数据支撑的客观事实。
