游戏DDoS防护新方案--SDK版

目前游戏行业还是攻击的重灾区,这个产品也应运而生,采用分布式节点部署,攻击流量分散在不同的节点上,可以无上限防御ddos,cc攻击其他协议攻击等。非常全面的防御各种攻击入侵渗透,同时为用户访问加速。

此产品设计之初并没考虑过商用,仅仅是“江湖救急”为了帮助几个朋友的游戏和在线教育平台抵抗大流量攻击,后来朋友介绍朋友,不断有平台接入测试,为不少平台轻松防护了棘手的流量攻击。由于传统高防的不足,针对TCP端口的CC攻击没有太好的过滤策略,外加流量攻击量不断飙高,依靠硬防生抗效果不理想同时防护价格昂贵等,产品经过不断历练进行了三次重构。目前技术实现已经足够稳定。

这个产品是一款专注于C/S架构的安全防护产品,利用分布式云集群拦截针对用户服务器的CC攻击、DDoS攻击,通过在APP客户端集成SDK防御模块,来实现精准快速的切换以及链路加密通讯,由于采用了隧道加密通讯技术,使用动态虚拟IP连接,因此,任何DDoS攻击流量都无法进入隧道,同时还可以隐藏真实服务器IP。

整个防护由三大模块组成,分别是客户端SDK、智能调度和身份验证

简单演示一下大概效果,有感兴趣的朋友可以进行沟通交流。市面上有不少同类商用产品,各有各的优点,这个产品并未考虑商用,有需要的可以免费提供部署和搭建。后续根据实际情况考虑开源。

一、生成SDK文件

通过搭建jenkins在线生成SDK文件

产品支持android\ios\windows三端的源码和无源码集成。

随便从百度找了一款游戏app进行演示,因为直接下载的apk文件并无源码,因此,通过逆向的方式将sdk集成进去。

通过脚本进行集成之后进行测试(三端无源码集成过程后续单独写一个独立的介绍)。

二、抓包分析

先安装原版app进行抓包分析。

通过原版抓包能看到大量dns请求以及http明文请求数据。

再将逆向集成sdk的app进行安装并抓包。

由于sdk跟节点之间是加密传输的,因此抓包也无法获取dns解析记录以及http等明文信息,全部都是私有协议进行了封包。(截图中dns解析记录应该是在app启动sdk之前或者手机其他app解析请求)对比原版app的dns解析记录。

62001端口为sdk跟节点加密通讯端口。所有数据都被加密传输,同期还能起到加速功能。

上图为节点里面进行dns解析服务,所有的客户端dns解析都会在远端节点进行解析(httpdns),从而防范了dns污染和劫持。也可以避免攻击者获取域名信息。

抓包看到sdk跟分配的节点117进行通讯,在IP为117的节点里面将加密隧道程序断开,模拟节点被攻击产生无法访问的情况。抓包看到sdk迅速切换到分配给用户的第二个可用IP154.所有的切换都是无感知进行的。为了避免攻击者重复拉取全部节点池,sdk的验证端做了身份识别,token、deviceid等方式进行验证。每个用户分配的一组3个ip都不会重复,如果攻击者打死分配给他的节点IP,也只会影响到黑客自己。

断线重连,节点异常自动切换。

SDK方案优点主要是不依靠生抗来防护,而是通过大量分布式节点调度防护。

其次能完美防护CC攻击,因为节点对外不提供任何业务端口,只对外开放一个加密传输隧道端口(62001)。

SDK节点切换都是瞬间切换,不依靠域名dns解析方式。cname防护集群切换依靠域名解析同时无法实现无缝切换,并且防CC效果依然不理想。

三、控制台可视化操作

控制台使用Go语言开发,主要是配合SDK进行节点的调度与分配,用户请求的身份验证识别等功能。

节点池分为临时池、可信池、备用池。根据用户权重等方式进行分配到不同节点池。新用户请求会分配临时池,等通过一系列权重评估之后会分配可信池节点。备用池是在极端情况下进行分配的节点。节点同时支持近源分配。 

每个平台会分配唯一的授权码,同时生成SDK的时候也会直接写死的文件里面。 

一些列相关配置参数。 

中转机配置也就是针对用户业务进行端口转发,并生成虚拟IP。类似127.0.0.2. 

debug模式主要是在个别终端出现异常情况下进行远程调试、日志分析等,用来进行排查问题。 

有任何问题和相关技术交流可以加 q 278056823

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值