NAT穿越引入的一个漏洞

UE和ePDG通过Notify(NAT_DETECTION_SOURCE_IP)和Notify(NAT_DETECTION_DESTINATION_IP)判断两端是否处于NAT后面。如果任何一端探测探测到自己在NAT后面,本端会把自己的通信端口改为4500。如图1所示,UE 位于NAT后面,所以UE将自己通信端口由500变为了4500,由于NAT设备做了地址映射,所以ePDG看到UE的地址是114.80.10.10/64500。

NAT设备中的地址映射表有可能变化(比如NAT设备重启或NAT keep alive时间过长),如图2所示,ePDG收到的请求消息中的源ip地址和源端口发生了变化。在这种场景下,ePDG现在的处理方式是立即进行源地址更新,即向新地址114.80.20.20/64500发送响应消息。

问题

ePDG这种立即更新地址的行为可能会导致DOS攻击。如图3所示,攻击者在NAT与ePDG之间的网络上截获了一个UE发送给ePDG的数据包,篡改源地址后继续发往ePDG。由于完整性校验不包括源地址, ePDG对这个数据包进行完整性校验不会有任何问题。ePDG发现其源地址发生了变化,会误以为NAT设备的映射发生了变化造成的,于是ePDG向新地址114.80.8.8发送IKE信令和ESP数据包。

解决方案

攻击者的一个数据包就可以导致ePDG拒绝为某个UE提供服务,即所谓的DOS攻击。我们可以通过MOBIKE协议来解决这个漏洞。MOBIKE的核心思想是:UE通过某种手段探测到NAT映射发生变化后,然后把这个变化通知给ePDG。ePDG发现源地址发生变化后,只有收到UE通知后,才会更新源地址。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值