5.2 断案常用过滤套路:按案情组织的清单


5.2 断案常用过滤套路:按案情组织的清单

上一节是文法,本节是案例集。这里的过滤器按四类案情组织——连接类、性能类、安全类、协议类——每条都附判定解读,说明它筛出什么、怎么读结果。清单不求全,求的是每条都经过实战检验;配合 8.3 节的故障模式库使用,这两份材料合起来就是断案的随身手册。

连接类:为什么连不上

# 套路一:握手发起后无应答(半开连接) tcp.flags.syn==1 && tcp.flags.ack==0 && !tcp.analysis.retransmission_seen 解读:只筛"没重传过的 SYN",命中说明 SYN 出去了但从未重传——多半是 过滤器或防火墙静默丢弃,配合时间轴确认后面没有 SYN 重传即可断定。 # 套路二:SYN 得到 RST 应答(端口未开或被拒) tcp.flags.syn==1 && tcp.flags.ack==0 && tcp.analysis.flags && tcp.flags.reset 解读:4.2 节的判定在过滤器层的直接应用——服务未启动、监听地址错、 或中间设备代答拒绝。看 RST 的返回延迟可区分(即时拒绝多为本地栈)。 # 套路三:握手完成但立即被拆(短命连接) tcp.flags.reset==1 && tcp.analysis.bytes_sent < 1000 解读:连接建立后没传多少数据就被 RST。批量命中时看发起方分布, 若集中在单一源对大量端口,是扫描特征而非业务问题。 # 套路四:SYN 洪水视角(未完成握手的 SYN) tcp.flags.syn==1 && !(tcp.flags.ack==1) && !(tcp.stream in {0}) 解读:更实用的做法是开 Conversations 统计看 SYN 与 SYN+ACK 的数量差, 差值大即大量半开连接——后文 8.1 节的统计工具是这类案子的主场。

性能类:慢在哪里

# 套路五:所有 TCP 异常账本(一键分诊) tcp.analysis.flags 解读:重传、乱序、零窗口、重复确认全部高亮。这是性能案的第一条 过滤器,命中量本身就是网络健康度的粗指标。 # 套路六:重传按方向归类 tcp.analysis.retransmission && ip.src == 10.0.0.5 解读:只看某方向的重传。方向比总量更有信息:客户端方向重传多, 问题在下行或客户端上行链路;服务端方向多,查服务侧出口。 # 套路七:慢确认(接收方拖累发送方) tcp.analysis.ack_rtt > 0.5 && tcp.len == 0 解读:确认往返超过半秒。注意这是分析器给的参考值,命中率高的 连接要结合应用行为判断——有些协议就是间歇性轮询。 # 套路八:零窗口与窗口探测 tcp.window_size == 0 || tcp.analysis.zero_window 解读:对端收不动了。第 4 章讲过这不是网络丢包,是接收应用太慢, 方向要往服务端处理能力或客户端读缓冲上查。 # 套路九:大帧异常(MTU 问题的一票) frame.len > 1514 解读:超过常见以太网 MTU 还整帧出现的,要么开启了巨帧要么有 分片重组,配合 4.1 节的分片判定一起看。

安全类:谁在搞事

# 套路十:内网扫描横截面 (ip.src == 192.168.31.0/24) && (tcp.flags.syn==1) && !(tcp.flags.ack==1) && (tcp.dstport < 1024) 解读:单源对大量低端口的 SYN。真正的判定看"目标端口离散度"—— Conversations 面板按端口聚合后一眼即知(8.1 节)。 # 套路十一:DNS 隧道与渗出特征 (dns.qry.type == 16) && (len(dns.qry.name) > 50) 解读:TXT 记录且查询名超长——正常业务很少这样用域名。命中后 人工读查询名内容,Base64 特征字符串即可定性。 # 套路十二:可疑信标节奏(外部周期访问) (ip.dst != 192.168.0.0/16) && (tls.handshake.type == 1) && (ip.dst_host exists == false) 解读:外联握手的起点清单。周期的判定靠时间分布而非单帧,导出 时间戳后看间隔方差——方差异常小的就是信标候选。 # 套路十三:明文密码暴露清点 (http.request.method == "POST") && (http.content_type contains "form") && !(tls) 解读:安全案与合规案的交叉点——清点仍在走明文的表单提交, 第 6 章红线清单的第一项证据。

协议类:协商到哪一步

# 套路十四:TLS 握手全链路(含警报) tls.handshake.type || tls.record.content_type == 21 解读:ClientHello 到 Finished 的完整链路,外加警报。断链案先跑这条, 再看最末一个握手指到哪一型(4.3 节的类型语义)。 # 套路十五:老版本 TLS 清点 tls.handshake.version == 0x0303 || tls.handshake.ciphersuite in {0x002f 0x0035} 解读:版本治理案的基本盘——哪些客户端还在 1.2 以下、用了弱套件, 导出后按客户端聚类即可出整改清单。 # 套路十六:HTTP 重定向链 http.response.code in {301 302 307 308} 解读:性能案的隐藏项——每次重定向都是一次完整 DNS 与握手。 页面上"只是打开就慢"的案子,重定向链经常贡献大半延迟。 # 套路十七:ICMP 差错与原委 icmp.type == 3 解读:网络不可达类差错。结合 ICMP 内嵌的原始 IP 头看是哪个 目的触发了差错——解析器会自动展开内层报文供过滤。

套路十七:ICMP 差错与原委

套路之外的三个心法

**第一,从一帧出发长出过滤器。**先在列表里找到一枚"典型嫌疑帧",详情树里右键字段"作为过滤器引用",再逐步加条件。从零默写长表达式的错误率远高于增量构造。

**第二,命中数也是信息。**过滤器跑完先看命中量:预期几十帧却命中几万帧,条件太宽(常见于复合字段陷阱);预期几千帧却零命中,多半是字段对不上协议(在 UDP 流量上筛 TCP 字段)。把"预期命中量"当成过滤器的一部分来设计,能少走弯路。

**第三,过滤器要与判定配套。**套路十一筛出超长 TXT 查询后,下一步不是下结论而是"读内容";套路十二筛出外联握手,下一步是"看间隔分布"。每个套路后面都有一句"解读",那才是断案的部分——筛子只负责把证据端上来。

⚠️ 这份清单不要背。理解每条背后的判定逻辑,用时按案情类目翻找、按现场改写。机械照搬过滤器的勘验和机械开检查单的医生一样,遇到变异案情就会失手。

速记卡

  • 四类案情第一刀:连接看 SYN 与 RST、性能看账本标记、安全看横截面与节奏、协议看握手链与警报。
  • 方向归类优于总量统计:重传按 ip.src 分向,结论立刻具体一半。
  • DNS TXT 超长与外联节奏是安全案两大高价值筛法。
  • 命中量本身是反馈:太宽太窄都指向条件设计问题。
  • 筛子端证据,解读定结论:两步不要并成一步。

结案要点

  • 十七个套路是一册地图,不是答案库:每条都要按现场改写,改写的前提是读懂"解读"栏的判定逻辑。
  • 套路之外的第五个心法:从一帧典型嫌疑帧出发,用详情树右键长出过滤器,比默写可靠。
  • 清单按案型翻找:连接、性能、安全、协议四类各记第一刀,其余用到再查。
  • 每条套路配一步人工动作:读内容、看分布、查证书——筛完的"解读"才是断案。套路是给人用的,下一节把同一套筛法交给命令行——让 tshark 在无人值守的时候替你筛。

作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U