我应该为 Kubernetes 禁用 TCP 时间戳吗?

Mau*_*cio 5 security containers tcp kubernetes nginx-ingress

我们聘请了一名安全顾问对我们应用程序的公共 IP (Kubernetes Loadbalancer) 进行渗透测试,并编写一份关于我们的安全漏洞和避免这些漏洞所需的测量的报告。他们的报告警告我们,我们启用了 TCP 时间戳,并且从我读到的有关该问题的信息来看,这将允许攻击者预测机器的启动时间,从而能够对其进行控制。

我还读到 TCP 时间戳对于 TCP 性能很重要,最重要的是,对于防止包装序列的保护。

但是由于我们在 GKE 上使用 Kubernetes,而 Nginx Ingress Controller 在它前面,我想知道这TCP Timestamp件事对于那个上下文是否真的很重要。我们甚至应该关心吗?如果是这样,它是否真的会使我的网络由于缺乏包装序列保护而容易受到攻击?

关于另一个问题的 TCP 时间戳的更多信息:TCP 时间戳 赋予什么好处?

Daw*_*ruk 4

根据 RFC 1323(高性能 TCP 扩展),TCP 时间戳用于两种主要机制:

  • PAWS(防止缠绕序列)
  • RTT(往返时间)

PAWS - 用于识别和拒绝以其他包装顺序到达的数据包的防御机制(数据完整性)。

往返时间- 数据包到达目的地并将确认发送回其发起设备的时间。

禁用 TCP 时间戳时会发生什么:

  • 关闭 TCP 时间戳可能会导致性能问题,因为 RTT 将停止工作。
  • 它将禁用PAWS
  • 正如McAfee网站所说,禁用时间戳可能会允许拒绝攻击。

正如前面提到的 McAfee 网站:

出于这些原因,McAfee 强烈建议保持此功能处于启用状态,并认为该漏洞的级别较低。

——迈克菲

引用自另一个网站:

TCP 时间戳检索中的漏洞是一个低风险漏洞,是全球网络上最常见的漏洞之一。这个问题至少自 1990 年以来就一直存在,但事实证明要么难以发现、难以解决,要么容易被完全忽视。

—— 超越安全

我鼓励您观看此视频:HIP15-TALK:利用 TCP 时间戳

GKE 怎么样?

获取有关启动时间(在本例中为正常运行时间)的信息可以了解哪些安全补丁未应用于集群。它可能会导致那些未修补的漏洞被利用。

解决这个问题的最佳方法是定期更新现有集群。GKE 实现了两种方法:

即使攻击者知道您机器的启动时间,它也是无用的,因为系统是最新的并且所有安全补丁都已应用。有一个专门的 Kubernetes 引擎安全公告网站:安全公告