中文站

回顾网易2020年DDoS攻击,我们怎么解决的?

作为游戏大厂,常常被问及DDoS情况,年关将至,在这里分享下猪厂DDoS年末总结与科普。

猪厂年度DDoS情况统计

DDoS分为网络层和应用层,俗称四层DDoS和七层DDoS,这是基于OSI七层模型来定义的。我们今天介绍的就是四层DDoS,传输层以下(包括传输层)的DDoS攻击。应用层DDoS又叫CC攻击,针对的是HTTP协议的攻击,我厂基本没有遭受过此类攻击,扫描器请求倒不少,这里略过。

攻击百G峰值占比

攻击流量是年年新高,以前的100G+的攻击是个稀罕物,现在基本月月见。原因就是网络带宽越来越大,肉鸡越来越多了。不仅仅是机房服务器能当肉鸡,现在你身上的手机,家里的摄像头,公司的打印机都可以充当僵尸网络的一员。虽然单台的流量不大,但胜在数量上。


攻击的协议类型统计

统计了下今年DDoS攻击分布,我排除掉小流量的线路抖动,脚本统计了超过10Gbps的大流量攻击,UDP Flood绝对的第一,SYN Flood第二,其他类型的攻击都可以忽略不计。原因很简单,黑产打UDP最简单,成本最低,因为UDP是无连接的,还有反射放大加持。今年除了老牌的DNS,NTP,Memcache,SSDP协议,还出现了新的协议,比如CLDAP,OpenVPN,在shodan上查了下,数量级都不容小觑。


单次攻击的时长

再看下攻击时长的分布也很有特点的,大部分10分钟内就攻击结束,还没等你反应过来,你服务器就挂了。这种快准狠的攻击手法就是DDoS攻击的特点,所以DDoS防护强调事前防护,人工没有那么快的响应速度。


攻击在一天中的时刻分布

还统计了一个有意思的点,一年中大部分攻击集中在晚上。这个跟我厂的业务属性有关,玩游戏的人都在晚上,我DDoS攻击你才会痛,玩家掉线才会反馈,影响面才会大。白天用户都在睡大觉,我把你打趴下,少了很多吃瓜群众,感觉亏了。


DDoS神秘吗

DDoS神秘吗?很多人从新闻和电影里面看过这种攻击,崇拜黑客在黑暗中指挥千军万马,樯橹灰飞烟灭的感觉,梦想自己也能成为这样的人,就像拿着核按钮的最高指挥官,在网络世界里想谁死,谁就得死。其实在现实世界里,发起DDoS攻击很简单,看完我下面这段,你五分钟内就能获得这个“神功”。

我们分三步走:

第一步,去baidu/google上,当然还有神奇的某宝上,搜索“ddos压测平台”或者“IP Stresser”;

第二步,选择自己心仪的DDoS套餐,当然要货比三家才能剁手付钱,国内应该是支持支付宝或者微信的,国外可能稍微有点麻烦,要兑换成比特币;

第三步,获取到攻击平台提供的API接口,输入你要攻击的IP或者域名,一键DDoS,然后去刷新请求对方的服务,看看死没死。

下面截取了一个国内的一个国外的,大家可以感受一下。有钱能使鬼推磨,说的就是现在这个社会,花更多的钱才能享受更好的服务,打的折扣也是更多的。套餐基本的套路还是在攻击峰值,攻击时长和攻击次数上下功夫。



调侃归调侃,DDoS攻击是违法犯罪行为,建议大家不要尝试。

DDoS有哪些类型呢

DDoS如果从攻击协议上分类太多,一般安全这边从影响程度上进行分类。上面说到的UDP和SYN正好对应着两大类型,UDP Flood是冲着你的网络带宽来的,叫做网络带宽阻塞型DDoS,SYN Flood是冲着你的系统资源来的,叫做系统资源耗尽型DDoS。

举个简单的例子:

比如你想去一家很火的店里买东西,路上很多人开车也是往这家店的方向去的,但都不是去这家店的,你被堵在路上去不了,这就是这家店的网络资源被耗尽了,你作为这家店的正常用户无法访问这家店。


再比如你换了一天去这家店买东西,路上一路顺风,进了店里,一堆人都在店里拉着老板和店员问东问西,但没多少真正买东西的。你作为真正想买东西的,没有你容身的地方,也没有人来招待你,这就是这家店的系统资源被耗尽了,你作为这家店的正常用户还是无法买到东西。


DDoS如何防御?

IPv4已经存在近四十年了,相应的协议层的缺陷已经被红蓝双方都摸透了,没有什么隐藏技能可言。DDoS这种“大力出奇迹”的攻击,防御上没有技巧,拼的就是带宽,带宽够了才能谈后面的防御算法。所以从业务层面上很难防御网络层DDoS,应用层DDoS还能在主机层面和代码里面搞一下。

防御策略很多,最终的执行操作都是落在丢包和封IP上。怎么自动化地把攻击报文丢掉,业务报文放过,怎么自动化地把恶意IP封掉,客户IP放过,这都是学问,也是我们安全的同学需要考虑的问题。这种算法差异性导致各家无论是商业的还是自研的抗D系统性能上差别很大。评价DDoS清洗的好坏有两个指标,误杀率和漏杀率,这个跟后端业务的机器性能和容忍度有关系,有的业务需要紧一点的策略,有的业务需要松一点的策略。任何DDoS防御系统都不能保证100%清洗,因为DDoS是保命用的,终极目的是保证业务活下去。就像医院抢救病人,注射大剂量激素,你说对身体影响大不大,命都快没了,你还管这些·····


DDoS怎么追溯?

这个问题,现在很多公司在做,不过很难。很多同事对自己业务被打很生气,要报警,可惜无法知道是谁在打,这就牵扯到溯源问题。溯源难的原因有下面几点:

前面我们说了,你不需要自己动手,可以花钱雇凶杀人,真正要打你的是花钱买DDoS服务的,而打你的只是第三方服务提供商。DDoS黑产在云还没有出来的时候就已经超前提出了“BaaS”的概念,当然不是我们通常理解的那样,全称是Botnet as a Service,僵尸网络即服务。平常肉鸡用来挖矿,接到单子打一波,这样肉鸡资源才能利用最大化。


在文章开头我提到过黑产打UDP性价比最高,因为UDP有反射放大攻击,简称是DRDoS,黑产只要利用100台肉鸡,就能打出1w台肉鸡的效果。我们看到的源IP很多是正常服务器,只不过端口被人利用来当反射源,你很难找到上一层发伪造地址数据包的肉鸡。


但是很难并不代表不可能,看过很多溯源的产品和文章,溯源大致就三个方向:

1. 找运营商合作,他们有流量监控,可以查到攻击流量怎么进来的,怎么出去的。这里要夸运营商的是,现在很多伪造源IP的数据包都被运营商干掉了,所以很多肉鸡发的包都是真实源,最多伪造个C段,能够作为发包机的数量极少。这里要说运营商的是,他们不一定想干这个事,把打攻击的人定位了,他们的抗D服务怎么卖。

2. 很多第三方溯源公司的方法是部署蜜罐,全球各地部署。抱着我不入地狱谁入地狱的心态,上面的系统千疮百孔,伪造了一堆漏洞,目的就是成为肉鸡成员。这样发起DDoS攻击,我就知道是谁下发的指令,打的是谁,还能搞到僵尸网络的bot程序,一顿二进制逆向,说不定有意想不到的0day收获。

3. 最笨的方法,考验技术的时候到了,一层层反入侵上去。先抓包定位源IP,再找漏洞搞到bot,通过bot定位到c2服务器,再在c2服务器上找到服务网站,通过拿下网站后台查到谁下的单,再通过社工的方法定位到金主是谁。难是难了点,但身边确实有这样的案例和这样的牛人。

总结

每年DDoS都能玩出一些新花样出来,防御永远是滞后于攻击的。安全有句老话叫“不知攻,焉知防”。我们要做的就是不断积累知识,活到老,学到老。

文末小福利

网易安全部几位奋战在不同安全领域的资深工程师,花费半年时间打造了《安全工程师》微专业课程,理论+工具+实战项目全面覆盖,欢迎对安全有兴趣的同学来学习。点击了解《安全工程师》微专业课程