服务端工具 一种炸服手段及其应对措施

鱼鱼

Lv3
创意家
LV
0
 
IP属地
未知
2019/07/05
23
61
  • · 发布于未知
因为实在找不到合适的版块所以我就只能发这了,毕竟我也确实发了资源。


天启

大概两年前,一种炸服器开始在网上进行传播,当时国内的所有服务器全部遭其毒手,陷入瘫痪。
受到攻击比较多的服务器甚至因为它选择了弃坑。

受到攻击的症状为在显示一片同一ip正在连接的信息之后抛出许多tcp连接断开的异常之后,服务器陷入死循环状态。
CPU占用达到最高,玩家无法进入服务器,服务器内的玩家无法正常跟服务器交互。

而攻击奏效只需要极其短的时间微乎其微的流量

所谓的ddos炸服器
图1:所谓的ddos炸服器

遭受攻击的症状
图2:遭受攻击的症状


抵抗

一两天后,Boss服第一个采取了防御措施。
方式为检测同一IP的连接频率,如果过于频繁则加入黑名单,在黑名单内的IP会在连接时被拒绝。
这个方法确实有用,所以在当时的环境里,Boss服几乎是唯一一个活着的服务器。

之后由于许多人也相继研究出了应对措施,炸服变得不再火热,但是仍有小部分人偶尔进行攻击。
因为没有详细了解过所以没法写,但是大抵上和上面的方法是一样的。


发源

炸服器的产生其实有我的一部分责任,这一点我感到十分后悔与愧疚。
当初是我泄露了这个漏洞,以致于后来被滥用,造成灾难性的后果,给圈内生态带来了恶劣的影响。
当时的我没有足够的能力去关上打开的潘多拉之盒。在mw制作出防御插件之后,他当时在我心中的背影显得高大无比。


原因

两年以后,我在群里聊天时被人提醒,回想起了这件事情,于是尝试了当年没有能力做的事情。
如今我终于能够彻底解决这个问题,
炸服器能起效的根本原因在于Tr写的辣鸡代码。

529
图3:造成漏洞的代码

当长度为0的时候,服务器就会进入死循环状态。


终章

在几天之前我已经发了这个issue跟ts开发组的其他成员讨论并给出了解决方式,由Ivan发这个pr修复了这个漏洞。

之后ts的更新会附带这个漏洞的修复,但是什么时候更新还是个未知数(以及pr到现在都没人review和merge啥的)

如果急需应对这个攻击,可以下载附件,替换ts文件夹里的OTAPI.dll即可。

修复之后实测攻击不会对服务器造成除了控制台刷屏外的其他影响,玩家可以正常进出服,流畅度基本没有影响。





题外


刚刚在群里聊天的时候发现dxt大仙以前就修过这个漏洞,所以他才是第一人

以及为什么这个东西要叫DDoS啊啊啊,DDoS是分布式拒绝服务,也就是需要好多台电脑同时攻击才能叫DDoS,
这种一台电脑一点点流量就能攻击的最多也就叫DoS。

论坛的加标签好难用,逗号隔开之后就不知道怎么继续加了




实例

想着发这个的原因就是今天早上遭到了一个人的攻击,这次实战证明了修复是完全OK的。

531
图4:试图搞事的一条咸鱼

看起来很猛烈,但是未击穿我方装甲,服务器该怎么样还是怎么样。(鲤鱼王使用了水溅跃)

据说这人之前在花音服务器开挂被Ban了,所以感到不爽就打服务器出气,此人游戏内id是星尘碎片([i:3459]),大家可以注意下。


 

附件

  • OTAPI.dll
    10 MB · 查看: 165
最后编辑:

nnt

Lv4
创意家
LV
0
 
IP属地
未知
2019/07/04
113
123
勋章
2
  • · 发布于未知

鱼鱼

Lv3
创意家
LV
0
 
IP属地
未知
2019/07/05
23
61
  • · 发布于未知
防dos插件只能防类似这个炸服器的攻击,而现在漏洞的原理已经判明,即使不通过反复连接断开的操作也能起到同样的效果。
也就是只需要发一个包就能让服务器死循环。
想要根治只能通过在checkbytes前或者内检测包合法性。
 

lab

Lv1
LV
0
 
IP属地
未知
2021/08/28
12
0
  • · 发布于未知
防dos插件只能防类似这个炸服器的攻击,而现在漏洞的原理已经判明,即使不通过反复连接断开的操作也能起到同样的效果。
也就是只需要发一个包就能让服务器死循环。
想要根治只能通过在checkbytes前或者内检测包合法性。
怎么通过在checkbytes前或者内检测包合法性。
 

Pyycz

Lv1
LV
0
 
IP属地
未知
2021/09/07
1
0
  • · 发布于未知
666666
 
  • 标签
    服务器
  • * 这是一则由 Google AdSense 自动推荐的广告,与本站无关,不对其真实性与可靠性负责

    顶部