5 分钟后终止会话的优势?

信息安全 网络 SSH
2021-08-26 02:42:42

我正在处理一个不是我要配置的服务器。如果两台机器之间没有流量通过,我和这台服务器之间的某处会在 5 分钟后终止任何连接。这包括在服务器上运行命令的活动连接;具体来说,我已经演示了使用 SSH 连接(运行超过 5 分钟不打印任何输出的 bash 命令)和 SQL 数据库(运行持续超过 5 分钟的 SQL 命令)会发生这种断开连接。当然,如果我去阅读一些东西并且在 5 分钟内不发送任何命令,它也会断开连接。

对于 SSH 设置,负责服务器的小组建议我启用客户端保持活动状态。他们没有为数据库连接提供任何建议。

不过,我完全糊涂了。这里有什么安全优势?对于 SSH,我可以从客户端完全绕过他们的设置,他们甚至建议这样做。(后者意味着甚至不能有“通过默默无闻的安全性”的论点,因为它不会是晦涩难懂的,因为每个用户都需要知道它。并不是说我认为这会阻止攻击,即使它是晦涩难懂的,尤其是因为我什至在他们推荐之前就自己发现了。)对于两者来说,这显然会降低可用性。我可能会看到在几个小时不活动后断开活动会话可能是有益的(尽管我并没有立即清楚长时间打开会话的可能威胁。),但每5 分钟这意味着我什至无法阅读DBA。在我没有断开连接的情况下处理我的 SQL 时发布。这对我来说听起来很荒谬,还是我错过了什么?

澄清

评论中提到了一些观点,所以我想澄清一下。

  • 我能够始终如一地重现 5 分钟的超时。我使用每隔几秒记录一个时间戳服务器端的命令,在断开连接后,记录的最后一个时间戳总是在第一个时间戳之后 5 分钟。因此,断开连接从来都不是零星的。
  • 在我写这篇文章后不久,系统/网络管理员回应说这确实是故意的。我引用,“几周前在 F5 上设置的 5 分钟时间限制会产生更多影响?” 我不确定 F5 是什么。一些谷歌搜索表明这是一个非常昂贵的开关,这对应于试图为我的数据库连接找到解决方法的人,后来提到了开关设置。

(我不相信这些信息会使任何答案无效。)

4个回答

不过,我完全糊涂了。这里有什么安全优势?

没有什么。最可能的情况是介于 5 分钟后连接超时以节省资源。这可能是防火墙、WAN 加速器、SSL 加速器等。或者它可能只是一个糟糕的默认设置。谁知道?

网络管理员通常与其他人有不同的担忧,这往往会与其他人发生冲突。我们在一个孤立的世界中工作,没有考虑整体情况。

不要假设每个设置都有一个特别好的理由,但要留出空间,让 5 分钟超时可以快速解决他们遇到的其他问题,而您的应用程序问题是反冲的。

这听起来像是安全“货物崇拜”的一个很好的例子在不了解所涉及的上下文或确实正确实施的情况下,盲目地实施了安全控制。

一般来说,在安全性方面,空闲超时点是为了降低客户端机器无人看管和恶意用户进入机器并在其上执行未经授权的命令的风险。这些超时的平衡往往是可用性(有利于更长或没有超时)和安全性(有利于更短的超时)之一。

您有时可以准确地发现安全货物崇拜,即系统的操作员实际上正在帮助您绕过名义控制(在您的情况下,建议使用保活)

不过,我完全糊涂了。这里有什么安全优势?

这可能不是安全问题,但有不同的原因。不幸的是,您的问题仅提供您的观点,因此我们只能推测真正的原因可能是什么。

一种解释可能是有一个简单的有状态数据包过滤器,其中状态在 120 秒不活动后超时。这意味着在此不活动之后传输的任何数据都将被阻止,因为不再有打开状态。造成这种情况的原因可能是设备资源非常有限,因此不能同时保持太多状态打开,例如防火墙设计时考虑了 10 个用户,但现在有 100 个用户使用。

当然,也可能是BOFH正在运行该系统,这可能更符合您对这个问题的看法 :) 但如果不深入了解实际系统,这很难说清楚。

您可能已经注意到,这与安全性无关。相反,杀死长期休眠的 TCP 连接的做法与错误有关——这是一种解决错误软件的方法。

使 TCP 会话挂起的软件最著名的例子之一是 Internet Explorer(至少到版本 7)。IE 习惯于不正确结束 TCP 会话,因此在客户端 PC/笔记本电脑/电话上,套接字被认为是关闭的,服务器仍然认为连接是打开的。而 IE 只是比较知名的例子之一。那里有很多错误的软件。

那么服务器为什么要关心呢?因为每个打开的套接字也是一个打开的文件描述符。不处理这种情况会导致服务器用完文件描述符。从理论上讲,服务器也可以用完套接字 ID,但这个数字远远高于操作系统可以处理的打开文件描述符的数量。

正因为如此,TCP 堆栈的各种实现包括死套接字超时。在某些操作系统上,您可以配置此超时。