灯火互联
管理员
管理员
  • 注册日期2011-07-27
  • 发帖数41778
  • QQ
  • 火币41290枚
  • 粉丝1086
  • 关注100
  • 终身成就奖
  • 最爱沙发
  • 忠实会员
  • 灌水天才奖
  • 贴图大师奖
  • 原创先锋奖
  • 特殊贡献奖
  • 宣传大使奖
  • 优秀斑竹奖
  • 社区明星
阅读:2301回复:0

如何避免双协议栈网络VPN流量泄露

楼主#
更多 发布于:2013-03-01 07:13

自由可用的IPv4地址即将“枯竭”,多年以来,这促使大多数通用操作系统开始添加IPv6支持。然而,很多应用(例如VPN客户端和服务器软件)一直都没有准备好迎接IPv6。而这将导致这样的情况:双协议栈主机部署不支持IPv6的VPN软件,从而为安全漏洞广开大门,并导致VPN流量泄露。

  在本文中,我们将讨论这些VPN安全问题是如何出现的,以及如何缓解VPN流量泄露的方法。

  介绍:VPN泄露的风险
  从远程地点工作的员工通常会建立虚拟专用网络(VPN)连接来访问企业网络内部的服务,以及保护必须经过不安全网络的相应的流量。在某些情况下,由于VPN提供安全服务,例如对所有通过VPN的通信进行保密,我们认为使用VPN连接让不安全的协议可以接受(例如以纯文本传输敏感信息)。
  很多VPN连接只支持IPv4协议。然而,部署这些技术的主机通常是双协议栈的,这意味着它们同时支持IPv4和IPv6(默认启用)。目前,很多主机只使用IPv4,因为大多数网络不提供IPv6连接。IPv6支持仍然存在于主机,但需要被启用。当发生这种情况时,主机可能会不知不觉中在双协议栈网络中使用不支持IPv6的VPN。
  IPv4和IPv6协议在双协议栈网络中这种交互和共存的微妙关系可能无意或有意(蓄意攻击)导致VPN泄露安全问题——通过VPN连接传输的流量可能会泄露出VPN连接外,并在本地网络上以纯文本形式发送,而根本不使用VPN服务。
  IPv4和IPv6的相互作用
  IPv4和IPv6协议的共存有一些有趣且微妙的方面可能会导致意想不到的后果。虽然IPv6无法向后兼容IPv4,但这两种协议被域名系统(DNS)“粘”在一起。对于依赖于名称解析服务(例如DNS提供的服务)的双协议栈系统,不保护这两种协议,就不可能保护这两个系统之间的通信。
  很多VPN部署不支持IPv6协议,或者更糟糕的是,它们完全忽略了IPv6。当建立VPN连接时,VPN软件通常插入IPv4默认路由,让所有的IPv4流量通过该VPN连接发送(而不是用本地路由器以纯文本形式发送流量)。然而,如果不支持IPv6,发往IPv6地址的所有数据包都会使用本地IPv6路由器以纯文本形式发送,VPN软件将无法保护IPv6流量安全。
  例如,假设有一个网站同时支持IPv4和IPv6,相应的域名中包含A和AAAADNS资源记录(RR),每个A包含一个IPv4地址,而每个的AAAA包含一个IPv6地址,每个这些记录类型可以有多个实例。当双协议栈客户端应用尝试与服务器通信时,它可以请求A和AAAARR,并使用任何可用的地址。优选的地址族(IPv4或IPv6)和将被使用的具体地址(假设每个族有多个地址可用)部署各有不同,而很多主机部署更喜欢Pv6地址,而不是IPv4地址。
  意外和故意的VPN流量泄漏
  假设有一个双协议栈主机,它采用仅支持IPv4的VPN软件来建立与服务器的VPN连接。如果该主机连接到双协议栈网络会发生什么?如果主机的应用尝试与双协议栈系统通信,这通常要求查询A和AAAADNS资源记录。如果主机同时支持IPv4和IPv6连接,但更青睐于IPv6目的地址,即使另一个系统有A和的AAAADNS资源记录,主机都将使用IPv6来与上述系统进行通信。如果VPN软件不支持IPv6,IPv6流量将不会采用VPN连接,它将会通过本地IPv6路由器以纯文本形式传输。
  这无意中暴露了潜在的敏感流量,这些流量本该受到VPN软件的保护。在这个情况下,VPN泄露是在双协议栈网络中采用不支持IPv6软件(VPN)的消极作用
RFC 6724规定了一种算法来从IPv6和IPv4地址列表中选择目标地址。RFC6555(名为“快乐的眼球:双协议栈主机的成功”)中讨论了选择最合适的目的地址面临的挑战,并推荐了可行的部署方法。
  意外的VPN流量泄露并不是这个问题的唯一关注点。通过假装为本地IPv6路由器,本地攻击者可以发送伪造的ICMPv6路由器通告消息来故意触发受害主机上的IPv6连接。这些数据包可以使用标准软件(例如rtadvd)或者数据包编写工具(例如IPv6工具包)来发送。一旦启用了IPv6连接,与双协议栈系统的通信将可能导致VPN流量泄露,正如前文所说的。
  由于支持IPv6的网站越来越多,这种攻击是可行的,但只有当目标系统是双协议栈,才会导致流量泄露。然而,给任何目标系统带来这样的VPN泄露并不是难事。攻击者可以简单地发送伪造的路由器通告消息(包含相应的RDNSS选项),就可以假装成本地递归DNS服务器,然后执行DNS欺骗攻击变成中间人,并拦截流量。对于无意泄露的情况,数据包编写工具(例如IPv6工具包)可以很容易地执行这种攻击。
  VPN泄漏的缓解措施
  我们可以通过很多缓解措施来避免双协议栈网络中的VPN泄露问题。最简单的方法(虽然不一定是最可取的)是在采用VPN连接时,禁用所有网络接口卡中的IPv6连接。运行VPN客户端软件的主机上的应用将只能够采用IPv4,对此,VPN软件应该做好准备来保护其安全。
  网络可以通过部署第一跳安全模型,例如路由器通告防护(RA-Guard)和DHCPv6-Shield,来防止本地攻击者成功地执行针对其他本地主机的上述攻击。然而很明显,当连接到开放网络时,主机不能依靠这些缓解措施。请记住,即使RA-Guard大量部署,也很容易受到泄露攻击。
  有些人可能认为最全面的缓解措施应该是在VPN软件中加入IPv6支持,并让VPN服务器提供IPv6连接。虽然这种办法在当前很多情况下不可行,但这种办法可能有一定意义,因为IPv6的自动配置为路由器(同时还为攻击者)插入其他路由信息提供了多种方法。例如,攻击者仍然能够通过执行一些“邻居发现”攻击来造成IPv6流量泄露,例如发送伪造ICMPv6重定向消息、伪造有路由信息选项(例如,“更具体的路由”)的路由广播、伪造的宣传“高优先级”路由器的路由广播等。即使VPN软件支持IPv6,一些VPN部署将很有可能在短期内仍然容易受到这种类型的攻击。
  结论
  IPv6和IPv4协议的微妙互动,以及(不幸的)既定的说法:如果有人计划部署IPv6,安全性将是一个问题,可能造成不良后果,例如无意的VPN流量泄露。由于大多数通用操作系统是双协议栈的,大多数网络至少部分是双协议栈的,这意味着IPv6的安全影响不容忽视。互联网对地址空间不断增加的需求必然导致广泛采用和部署IPv6协议。在采用和部署之前,企业应该全面了解相应的安全隐患。

喜欢0 评分0
游客

返回顶部