前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >零信任 UDP敲门SNAT漏洞解决方案

零信任 UDP敲门SNAT漏洞解决方案

原创
作者头像
doudouhe
发布2021-11-30 20:11:23
2.9K0
发布2021-11-30 20:11:23
举报
文章被收录于专栏:SDP零信任SDP零信任

先了解一下SNAT:

SNAT Source Network Address Translation 源网络地址转换,其作用是将ip数据包的源地址转换成另外一个地址,可能有人觉得奇怪,好好的为什么要进行ip地址转换啊,为了弄懂这个问题,我们要看一下局域网用户上公网的原理,假设内网主机A(192.168.2.8)要和外网主机B(61.132.62.131)通信,A向B发出IP数据包,如果没有SNAT对A主机进行源地址转换,A与B主机的通讯会不正常中断,因为当路由器将内网的数据包发到公网IP后,公网IP会给你的私网IP回数据包,这时,公网IP根本就无法知道你的私网IP应该如何走了。所以问它上一级路由器,当然这是肯定的,因为从公网上根本就无法看到私网IP,因此你无法给他通信。为了实现数据包的正确发送及返回,网关必须将A的址转换为一个合法的公网地址,同时为了以后B主机能将数据包发送给A,这个合法的公网地址必须是网关的外网地址,如果是其它公网地址的话,B会把数据包发送到其它网关,而不是A主机所在的网关,A将收不到B发过来的数据包,所以内网主机要上公网就必须要有合法的公网地址,而得到这个地址的方法就是让网关进行SNAT(源地址转换),将内网地址转换成公网址(一般是网关的外部地址),所以大家经常会看到为了让内网用户上公网,我们必须在routeros的firewall中设置snat,俗称IP地址欺骗或伪装(masquerade)。

再了解一下SDP零信任敲门:

零信任SDP服务框架大概分5个模块,其中敲门模块至关重要,是访问SPA隐身网关的最重要一环。

1、用户接入模块

2、控制器模块

3、敲门模块

4、安全隧道模块

5、隐身网关模块(包含连接器)

那么SDP UDP协议敲门的SNAT漏洞是什么?看你下图

UDP敲门
UDP敲门

举个例子:

攻击者和合法用户都在同一栋大楼里上班,在公司同一个网段里,对外访问网络时需要SNAT源地址转换,对外敲门的访问IP在网关和SPA 敲门处理服务看来都是一样的,因此当零信任网关对合法用户放通访问端口的时候,攻击者也可以通过该端口对网关进行访问攻击。

这就是著名的UDP协议敲门的SNAT漏洞。

UDP敲门技术存在三个致命缺陷:

UDP敲门放大漏:同一网络下(出口有SNAT),一个终端敲门成功,通网络下所有终端均无需再次敲门。 UDP丢包:UDP无连接状态,且运营商经常会屏蔽非知名UDP端口的访问,在互联网出现丢包后无反馈信息,可用性差;

性能问题:UDP敲门成功后,需要为对应的终端IP添加iptables规则,放通TCP访问,当用户较多、频繁上线下线时,iptables操作严重损耗性能,影响业务稳定性。

解决方案主要有两种

1、改UDP敲门为TCP敲门,敲开后复用TCP连接进行通信,但会牺牲安全性,需要防范TCP syn ddos攻击。但是TCP的敲门稳定性更为优越,有利有弊吧。

2、敲开门后,访问网关携带身份信息,这是最有效的解决方案。

本人逆向过某SDP零信任客户端产品,当敲开门后,所有的TCP请求包都需要携带身份凭证信息,否则网关会直接拒绝连接。

在TCP包的payload 数据部分会添加身份凭证加密串供网关解析
在TCP包的payload 数据部分会添加身份凭证加密串供网关解析

身份凭证加密串:可以由用户ID、IP、Guid、DeviceId等组成,一般由SDP控制器加密下发给客户端,然后客户端将其携带在TCP数据包里,通过SDP隧道携带给SDP隐身网关,网关进行解析,如果解析身份凭证失败则拒绝连接,或者断开连接。网关解析身份凭证成功后,需要根据控制器,敲门服务等生成的缓存快速验证用户身份,若身份验证成功,则访问成功。

简单点如:JWT Token

业内多数解决方案为:客户端访问隐身网关资源时请求携带身份凭证

SDP是基于身份凭证的VPN
SDP是基于身份凭证的VPN

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
VPN 连接
VPN 连接(VPN Connections)是一种基于网络隧道技术,实现本地数据中心与腾讯云上资源连通的传输服务,它能帮您在 Internet 上快速构建一条安全、可靠的加密通道。VPN 连接具有配置简单,云端配置实时生效、可靠性高等特点,其网关可用性达到 99.95%,保证稳定、持续的业务连接,帮您轻松实现异地容灾、混合云部署等复杂业务场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档