流量证据的登记要素
pcap 要能在后续环节作为证据使用,靠的不只是文件本身,而是它的来源登记:哈希值、采集点、采集时间窗、采集参数(snaplen 与过滤条件)。没有这份登记,读者无法判断这份抓包覆盖了哪些链路、是否截断了载荷、为什么某些流量看不到。登记与哈希的目的很实在:它让「这段流量出自哪里、有没有被改动」变成可回答的问题。
基本信息
| 文件处理 | sha256sum 计算校验值,stat 记录大小与时间 |
|---|---|
| 信息核对 | capinfos 查看包数、起止时间、链路层类型、快照长度 |
| 采集参数 | snaplen(截断长度)、BPF 过滤表达式、环形缓冲大小与文件数 |
| 采集点位 | 镜像口(SPAN)、分光器(TAP)、主机本机抓包,需写明 |
| 时间基准 | 采集主机时钟是否同步,影响与其他日志的对齐 |
| 归档要求 | pcap、哈希清单、参数记录放在同一目录 |
典型使用场景
- 事件后固定一段流量证据,用于后续离线分析
- 说明「为什么看不到」:因 snaplen 截断或 BPF 过滤导致的内容缺失
- 把抓包时间与主机日志对齐,确认某个会话的起止时刻
- 为报告提供采集过程记录,支撑结论可复核
- 长时间抓包时用环形缓冲,及时导出需要的段落地
- 把 pcap 与 NetFlow/Zeek 输出交叉验证,确认覆盖面
登记与核对
登记与核对
# 计算并保存哈希
sha256sum capture-20261012.pcap > capture-20261012.pcap.sha256
# 记录文件大小与修改时间
stat -c '%n %s %y' capture-20261012.pcap
# 核对抓包信息:包数、起止时间、快照长度、链路类型
capinfos capture-20261012.pcap | head -20
# 快速浏览内容是否覆盖目标五元组(不解析载荷)
tcpdump -nn -r capture-20261012.pcap 'host 10.0.3.17 and port 443' 2>/dev/null | head
# 先封存再拷贝分析,避免分析过程改动原始文件
cp --preserve=all capture-20261012.pcap /evidence/archive/登记要素逐项
| 要素 | 作用 | 缺失后果 |
|---|---|---|
| 哈希值 | 证明文件未被改动 | 无法证明封存后未被替换 |
| 采集点位 | 说明覆盖哪段链路 | 不知道哪些流量本就不在该文件里 |
| 时间窗 | 界定证据的起止范围 | 与其他日志对齐时无从判断先后 |
| snaplen | 说明载荷是否完整 | 误以为抓到完整内容,实际被截断 |
| BPF 过滤条件 | 说明哪些流量被有意排除 | 缺失的流量被误解为「没有发生 |
采集参数要一并记录:snaplen 决定载荷是否完整,BPF 决定哪些流量从一开始就没被抓到。这两项是解释「为什么看不到」的关键依据。
边抓边分析会让文件持续变化,哈希随之失效。正确做法是先停止写入并封存,再对副本做分析;使用环形缓冲时旧段会被覆盖,需要及时导出。