今天是否遇到过有 FIN 但没有 ACK 的 TCP 段?

网络工程 通讯协议 防火墙 入侵预防
2021-08-01 23:15:22

fin 扫描涉及发送带有 FIN 且除(可能)PSH 和/或 URG 之外没有其他标志的 TCP 段。2019 年是否曾合法遇到过此类数据包?

请注意,仅 FIN 段是否合法?已经确定,虽然具有 FIN 但没有 ACK 的 TCP 段在规范内是合法的,但公认的做法是永远不要这样做。如此之多,以至于这些细分市场可能被认为是非法的。

因此,我们知道 Berkeley 套接字和 Windows 堆栈永远不会发出这样的段。


  • 2019 年是否遇到过有 FIN 但没有 ACK 的 TCP 段如果是,在什么情况下。

  • 正如@Ron Maupin 所指出的,使用事务性 TCP,“您可以发送带有 SYN、数据和 FIN 的单个段,但没有 ACK,因为没有什么可确认的”。对我来说,这个例子符合提出的问题,尽管目前还不清楚它是否在今天遇到。@Ron Maupin 选择不将其作为正式答案呈现“因为它从未被广泛实施,所以它现在已经过时了。它在RFC 1379, Extending TCP for Transactions 中定义,但该 RFC 被移至历史状态,由RFC 6247 ”。


  • 2019 年是否遇到过带有 FIN 且除可能的 PSH 和/或 URG 之外没有设置其他 TCP 标志的 TCP 段如果是,在什么情况下?

我不是在寻找假设。


我被要求进一步激发这个问题。

这个问题背后的原因是FIN扫描检测。

  • 如果不再出现无 ACK 的 FIN,则很容易检测到 FIN 扫描:任何没有 ACK 的 FIN 都是扫描 - 报警。大多数交换机都有检测和/或丢弃此类数据包的选项。

  • 然而,如果这样的段今天仍然发生,那么这样的方法将产生误报(并且IDS将被关闭)

  • 如果 ACKless FIN 仍然发生,则必须跟踪 FIN 段,回复确定段的合法性。

我即将在异构网络中在全国范围内推出入侵检测,并且担心在 2019 年今天合法地遇到此类数据包。

我在这个网站上问是因为只有coalface的网络工程师才能回答。


历史笔记

100 点赏金无法挖掘出这样的细分市场。

2个回答

这本身不是答案,但可能会有所帮助。

许多年前,我的团队有一个关于在野外遇到的类似问题(我相信实际问题是关于 ICMP 变体)。于是我们设计了一个实验:

  • 澄清了我们的确切问题
  • 设计完成调查所需的确切 Cisco ACL 和命令
  • 编写测试制度(X 等接口、一天中的时间、时间长度)

然后请我们在不同组织和 ISP 中认识的每个合适的人为我们运行测试。我们很高兴我们做到了:我们得到了一些真正的惊喜。我们与所有帮助过我们的人分享了数据。

你能进行这样的测试调查吗?

现在 TCP 流量通常是全状态的(由 TCP 状态控制)。此状态在 RFC 上定义,并取决于操作系统(Cisco、FreeBSD、Linux 等)以某种方式或其他方式响应 TCP 标志的组合。这就是为什么某些工具可以仅根据 TCP 标志和其他选项来检测操作系统,并且可以将某些 TCP 堆栈配置为根据配置对特定数据包做出不同响应的原因(例如在 Linux 中通过 /proc)。TCP 标志错误组合的响应的实现取决于操作系统,其中一些以非常严格的方式遵循 RFC,而另一些则更宽松,请记住,互联网上有很多 TCP 堆栈,并且很多怪胎发送奇怪的 TCP 段(例如 hping3)以查找 TCP 堆栈上的问题,因此问题是否可以在网络上找到 FIN 段互联网我的回答是肯定的,基本上你可以在防火墙上的入站设备上pcap一些流量,并且根据流量的不同,一般情况下的垃圾量很高。希望它有助于澄清这个问题。