【问题标题】:Should I Disable TCP Timestamp for Kubernetes?我应该为 Kubernetes 禁用 TCP 时间戳吗?
【发布时间】:2019-11-22 14:47:39
【问题描述】:

我们聘请了一位安全顾问对我们的应用程序的公共 IP(Kubernetes 负载均衡器)进行了渗透测试,并就我们的安全漏洞以及避免这些漏洞所需的措施编写了一份报告。他们的报告警告我们,我们启用了 TCP 时间戳,根据我所读到的有关该问题的信息,攻击者可以预测机器的启动时间,从而能够对其进行控制。

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

但是由于我们在 GKE 上使用 Kubernetes,并且在其前面有 Nginx Ingress Controller,我想知道 TCP Timestamp 的事情对于这种情况是否真的很重要。我们甚至应该关心吗?如果是这样,它是否真的让我的网络因缺乏对包装序列的保护而易受攻击?

有关此其他问题的 TCP 时间戳的更多信息: What benefit is conferred by TCP timestamp?

【问题讨论】:

  • 您能否提供链接或详细说明:“这将允许攻击者预测机器的启动时间,从而能够对其进行控制。”?

标签: security kubernetes tcp containers nginx-ingress


【解决方案1】:

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

  • PAWS(防止包装序列)
  • RTT(往返时间)

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

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

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

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

如前所述,迈克菲的网站:

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

-- McAfee

来自其他网站的引用:

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

-- Beyond Security

我建议您观看此视频:HIP15-TALK:Exploiting TCP Timestamps

GKE 呢

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

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

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

【讨论】:

    猜你喜欢
    • 2014-03-15
    • 1970-01-01
    • 2018-07-05
    • 2021-10-27
    • 1970-01-01
    • 2018-07-02
    • 2020-10-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多