最近,Unix 虚拟私人网络(VPN)中披露了一个安全漏洞,攻击者可能会劫持 TCP 流,即使该流在 VPN 内部。这一攻击影响了 OpenVPN、Wireguard,甚至 IPSec VPN。究竟是如何发生这种情况的呢?
漏洞解析
Unix 系统支持各种不同的网络场景,往往由于配置错误可能会导致问题。在这种情况下,发往 VPN 的 IP 地址的数据包被处理和响应,即使它们是通过不同接口进入的。
攻击的可行性
乍一看,这种攻击似乎不太可能,因为攻击者必须知道 VPN 客户端的虚拟 IP 地址、活动 TCP 连接的远程 IP 地址,以及该连接的序列号和 ACK 号。这些信息看似繁琐,但攻击者可以逐步推导出,从而使这种攻击成为可能。
攻击场景
在披露的场景中,攻击者利用一个拥有多个客户端的恶意接入点。攻击者可以扫描私有地址空间,例如 10...*,并发现网络上的所有 VPN 客户端。除非客户端的防火墙配置为阻止,否则当正确的 IP 地址被探测时,VPN 接口将乐意响应该扫描。
确定活动 TCP 连接
一旦找到目标,下一步是确定活动的 TCP 连接。攻击者无法看到 VPN 内的数据,但可以观察到数据包的大小和频率。发送一个伪造源地址的 TCP SYN 数据包将基于是否匹配地址和端口而触发不同的响应。
地址和端口的发现
在发现地址和端口后,TCP 序列号和 ACK 号也可以通过 VPN 数据包的大小和时序以类似的方式被发现。一旦攻击者拥有所有这些信息,他便可以向 TCP 流中注入数据,但无法读取 VPN 内的数据。HTTPS 连接仍然可以完全防御这种攻击,因此在现实世界中的价值有限。尽管如此,这仍然是一个巧妙的攻击,随之而来的修复将使整个网络堆栈更加安全。
WireGuard 的应对
当我听说这个攻击时,我联系了 WireGuard 的创始人 [Jason Donefeld],询问了此漏洞的状态。WireGuard 的 wg-quick(8) 自公告发布之前就已经采取了缓解措施。[Jason] 最近几天忙得不可开交,因为 WireGuard 最终已被纳入 Linux net-next 树,这意味着它将在 5.6 版本中发布。我很高兴得知这个问题的修复措施已经到位,并期待 WireGuard 在 Linux 中的正式加入。
Windows Patch Tuesday
Windows 的补丁星期二包含了一系列漏洞,包括正在被恶意利用的特权提升漏洞。这个零日漏洞 CVE-2019-1458 与 Chrome 的零日漏洞一起被利用。Chrome 的漏洞是一个竞态条件,导致使用后释放。这两个漏洞一起被观察到是 WizardOpium 攻击的一部分,主要通过韩国网站传播。
第二个漏洞 CVE-2019-1468 在本周二被修复。虽然没有被积极利用,但在字体处理代码中存在相当严重的漏洞。文档或网站可以嵌入恶意字体,仅通过显示就能执行任意代码。这种漏洞很好地说明了在 2020 年 1 月之后继续使用 Windows 7 是多么危险。
Plundervault 攻击
研究人员发现,通过对某些 Intel 处理器进行降压可以导致安全 CPU 附加区出现错误。被称为 Plundervolt 的攻击,研究人员使用未记录的指令实时更改 CPU 电压并更改受保护的位。英特尔迅速作出回应,发布了微代码更新以修复该问题。这个缺陷影响了到 Intel 第 9 代的处理器。完整论文已发布,欢迎查阅以获取更多信息。
Ring 安全事件
最近,Ring 也成为新闻焦点,特别是关于“网络黑客”通过 Ring 摄像头与孩子交谈的令人毛骨悚然的视频。观看晚间新闻时,听到播报员报道这种近乎神秘的黑客活动令人发笑。让我们来揭开这层神秘的面纱。
密码重用的风险
显而易见的起点是密码重用。我们很可能都有至少一个账户在数据泄露中被曝光。不幸的是,许多泄露事件都包含明文密码。重用在泄露事件中曝光的用户名和密码,是导致账户被攻陷的快速途径。Ring 声称,每个账户泄露都是由于弱密码或密码重用,加上缺乏双因素认证造成的。
总结
通过了解这些安全漏洞及其攻击方式,我们可以采取适当的措施来保护我们的网络和设备。确保使用强密码和双因素认证,定期更新软件,能够有效减少被攻击的风险。