创业耗费百万,为啥DDoS如此要命Part 1
小刀网络 2023-07-27 08:03:33 0

转帖至
https://www.freebuf.com/articles/network/183182.html 侵权立删

0×00 多年运维,不敌攻击

从05年开始做运维到现在也有13年了,干过论坛,电商,游戏,金融,直播这些业务的运维,活很杂,甚么WebServer,Database,Netfilter,Docker,Xen,KVM,OpenVZ,Ceph,iSCSI,DNS, 负载均衡等等。那末多年做运维以来最使人觉得辣手和 失望的便是DDoS攻击了,每天晚上睡觉后都怕接到电话说服务器被DDoS了,至于为何那末恐怖,我想做过运维的人或被攻击过的企业都应当非常明白那是一种怎样样的体验。

0×01 噩梦初醒,惶惶不可整天

第一次和DDoS攻击打交道,那是06年的冬季,第一份工作是为一家网络广告同盟公司做服务器运维。

基本上每天的任务就是看下服务器的硬盘I/O负载,数据库负载,还有会不会有毛病日志,很平常。

直到06年冬季的某天,公司托管在浙江绍兴电信机房的那台Dell PowerEdge 1850服务器突然没法访问,WEB和SSH都没法访问。

老板那个急啊,客服那个急啊,真的是可以说热锅上的蚂蚁,坐立不安,要知道对一个广告同盟来讲,服务器瘫痪了,站长的收入突然没了,广告主的流量突然没了,这意味着站长和广告主会流失。

因而乎,联系了绍兴电信的网维,得知服务器当时遭受了大流量的DDoS攻击,攻击范围在2Gbps左右,电信的网维为了保护机柜内其他客户服务器正常运行,封了我们服务器的外网IP地址。

为了不影响业务,最后找绍兴电信付费做的DDoS防御服务,虽然最后服务恢复了,但是服务器的网络延迟也增加了,由于DDoS 攻击一直在延续。

从那次事件后,公司所有人谈DDoS色变。

0×02 挥金如土,只为续命

15年,视频直播爆发式地发展,全民网红,进入这家公司就职半年后,公司融资2000多万,对视频直播行业可能不多,但是对全部公司来讲已是走向成功的第一步了。

随着公司快速的发展,直播平台的流水和日活每天都在增长,漂亮的小姐姐也愈来愈多。

正当大家士气十足乃至都在空想上市的时候,没过量久,公司就遭到了重挫。

16年9月15号,那天正是中秋节,晚上应当是全家一起吃月饼赏月的时候,可是一起蓄谋已久的DDoS攻击,让大家在 公司里度过了极其煎熬的中秋漫漫永夜。

当晚6点,刚吃完晚餐,准备和家人一起去公园赏月,还没动身,就接到公司电话,要求赶到公司处理突发情况。

赶到公司时,运维同事说平台的登陆系统服务器和主播打赏系统服务器被大范围DDoS攻击,由于攻击范围较大,CDN公司直接将域名做了回源处理,大量的 攻击流量涌入源服务器,IDC机房直接将被攻击的IP地址做了封堵处理。

询问了IDC接入公司本次的DDoS攻击范围,得知入向的DDoS攻击流量高达200Gbps+(IDC接入公司表示机房总接入带宽是200Gbps,这次攻击直接将机房出口打满,为了不影响其他用户,只能将被攻击的IP地址做封堵处理。)

由于本次DDoS攻击范围超过了IDC公司的接入带宽,IDC公司没有能力防御,因而求助于云公司。

最后云公司给出的高防IP报价非常之高,按天计算,300G防御的每天费用为2.5万元,按月费用为 37万元,如果攻击超越300G,费用还需要支付额外防御费用。

但是公司业务处于瘫痪状态,为了尽快恢复业务,公司开通了按天的DDoS防御服务,在预存10万的防御费用后,当晚8点,DDoS防御服务开通。

防御开通后,经过云公司的DDoS清洗服务,攻击流量被拦截,平台暂时恢复了正常,经过一夜的视察和沟通,终究防御了这次DDoS攻击。

尔后我们遭受了更大范围的DDoS攻击,每天黑客都会发起数小时的攻击,这使得我们按天支付DDoS防御费用非常不划算,终究公司租赁了 37万每个月的DDoS保底防御服务。

这次案例告知我们,有钱真的是可以为所欲为。

0×03 这世上有很多悲痛,仅仅是由于没钱

曾在猫眼社区上看到一篇帖子,让我感触很深,那帖子标题叫做《我的老婆没钱治病,死了》

当人处于真实的底层时,连选择继续生存的资历都没有,谈甚么机会去创造奇迹。

创业公司不也是如此吗?大量的创业公司在遭受DDoS攻击的时候犹如生病,来的那末突然,那末措手不及,但有多少创业公司能那末轻松的负担每个月高达数十万的DDoS防御费用呢?

有多少人怀着创业梦想,创造奇迹,想改变行业,但是遇到DDoS攻击,连选择继续生存的资历都没有,这不是很可悲的事情吗?

由于DDoS防御本钱太高,加上对DDoS攻击的不了解,常常会出现病急乱投医。

这是非常可怕的,犹如得了重病,而三甲医院费用极高,而选择那些号称能根治但其实不靠谱的 私人和莆田系医院,最后常常由于毛病的医治和时间上的拖延致使病重,最后人财两空。

0×04 细说DDoS攻击

下面进入正题,说一下我遇到的各种DDoS攻击类型和一些减缓手段,还有避免李鬼,骗子,垃圾高防公司的一些经验,和教大家如何分辨高防服务的 真假和水份。

SYN Flood攻击和防御方式

陈词滥调的一种DDoS攻击类型,从初期的利用TCP三次握手原理,捏造的IP源,以小博大,难以追踪,可谓经典的攻击类型。

大量的捏造源的SYN攻击包进入服务器后,系统会产生大量的SYN_RECV状态,最后 耗尽系统的SYN Backlog,致使服务器没法处理后续的TCP要求,致使服务器瘫痪。


就和上面的图片一样,服务器资源被耗尽,用户没法和服务器建立连接,攻击者目的到达。

那如何防御SYN Flood攻击呢(实际上是减缓,提高一下系统的处理能力,但是只限于小攻击)?

方式1:软件防火墙和系统参数优化 (适用于SYN Flood攻击流量小于服务器接入带宽,并且服务器性能足够)

【Windows系统: 可以修改注册表来提高SYN数据包的处理能力】

进入注册表的[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters]项目

1. 启用syn攻击防护模式 (可以显著提高Windows的SYN处理能力)

SynAttackProtect=2 [dword]

2. 加大TCP半开连接数的队列数量

TcpMaxHalfOpen=10000 [dword]

3. 启用动态Backlog队列长度

EnableDynamicBacklog=1 [dword]

通过修改这三处注册表信息可以避免一些小范围并且较为简单的SYN Flood攻击

【Linux系统: 修改sysctl内核参数提高SYN数据包的处理能力】

1. 开启SYN Cookies,当出现SYN等待队列溢出时,启用cookies来处理

net.ipv4.tcp_syncookies = 1

2. 增加SYN Backlog队列长度

net.ipv4.tcp_max_syn_backlog = 65535

3. iptables限制SYN频率,每秒钟只允许每一个源IP发起2个SYN数据包,超越则抛弃

iptables -N syn-flood

iptables -A INPUT -p tcp –syn -j syn-flood

iptables -A syn-flood -p tcp -m limit –limit 2/s –limit-burst 50 -j RETURN

iptables -A syn-flood -j DROP

方式2: 租赁专业的DDoS云清洗和云防御服务 (适用于SYN Flood攻击流量较大,强度较高的场景)

租赁专业的DDoS云清洗服务之前可以咨询一下公司采取的SYN Flood防御算法和模式,这个非常重要,SYN Flood防御算法和模式对区别业务产生的影响是完全区别的。毛病的SYN Flood防御算法和模式虽然可以防御SYN Flood攻击,但是也会致使业务没法正常访问。

常见的SYN Flood防御算法有:

SYN Cookies

SYN Proxy

SYN Reset

SYN SafeGuard

如果您咨询的高防公司没法回答或不专业的话基本都是代理商和一些骗子。

以上都是我做运维和各种DDoS防护公司接触后总结的关于SYN Flood防御的经验,上述的算法都有缺点,所以需要根据业务选择适合的SYN Flood防御算法。

DDoS防御服务和其他网络安全防御服务不一样,由于DDoS攻击大小一切由公司说了算,用户没法核实DDoS攻击的实际大小,致使了这个行业鱼龙混杂, 以次充好的占据95%以上。后面会重点教会大家如何辨识真假高防!

(ACK RST PSH FIN) Flood攻击和防御方式

ACK Flood / RST Flood / PSH Flood / FIN Flood 这类攻击本质上不如SYN Flood危害那末大, 但是也足够轻松的致使服务器瘫痪。


如上图,这类攻击虽然不会致使服务器系统中出现大量的SYN_RECV,但是会出现服务器向捏造源IP发送大量的RST报文。

举个例子:

如果你的服务器接入带宽有1Gbps,并假定服务器OS的PPS处理能力到达1.4Mpps,并且OS设计非常牛逼,没有致使大量的中断和锁的开消为条件。

那末你遭受500Mbps的ACK Flood攻击时,你的服务器也会出现上行带宽用到500Mbps左右。

这可非常不划算,而且正常情况下,服务器OS根本没办法处理大量的ACK Flood攻击。

所以针对这类攻击,我建议直接上DDoS云清洗和云防御服务,没必要调剂系统,由于没甚么意义。

UDP Flood攻击和防御方式

UDP Flood攻击目前来讲愈来愈普遍,得益于各种软件设计缺点和UDP协议的无连接特性,这让UDP Flood攻击非常容易发起,并且可以得到数十倍数千倍的攻击放大。

我简单做了一张图,大家可以看下UDP放大攻击的原理


对网站业务来讲,是用不到UDP协议的,所以防御这类攻击只需要具有足够大的接入带宽(只要接入带宽比DDoS攻击更大),你只需要一条ACL策略 抛弃UDP协议即可以防御这类攻击。

但是对游戏业务和视频直播业务来讲,那就是噩梦了,由于很大一部份的游戏和视频直播业务都是基于UDP协议开发的,由于UDP协议的传输速度和 效力比TCP协议更高,延迟也更低,这是UDP的优点,但是也是致使UDP攻击极难防御的关键缘由。

恰好我之前在的公司是做视频直播的,在这方面和DDoS防护公司接触的蛮多,我可以非常负责的说,目前国内能给基于UDP协议的业务防御这类UDP攻击的 DDoS防护公司不超过5家。

为何那末难?

由于UDP数据到了防火墙上的时候,防火墙是不知道这个UDP数据包是好的或者坏的,也没办法通过一些类似TCP攻击的防御算法来做源的可信认证。

不过也不是完全没办法解决,之前的视频直播公司是采取了云公司提供的端云联动方式做的UDP Flood攻击防御,效果非常理想。

但是能做这类端云联动的防御算法的公司没几家,由于大部份DDoS云清洗和云防御公司都是买的硬件防火墙,没有实质性的 研发能力和技术实力来驱动这类端云联动的防御算法。而只有真正具有完全自研DDoS防御算法能力的公司才可以做到这点。

所以遇到UDP攻击,恰好你是用UDP协议承载业务的,别想多,准备好钱(每月最少10万起步了),然后 找一家非常专业的DDoS云清洗公司给你做保护吧。

DNS Query攻击和防御方式

DNS Query攻击是我从业10多年来,最具有要挟的攻击方式,普遍存在于棋牌游戏,私服,菠菜,AV等暴利,竞争不是你死就是我活的行业。

虽然我没遇到过,但是没吃过猪肉,也见过猪跑。

攻击的原理示意图以下:


这类攻击最大的要挟便是,通过随机构造并查询被攻击域名的二级域名,绕过递归DNS服务器的解析记录缓存, 各地区地市的递归DNS服务器向权威DNS服务器发起大量的DNS查询要求,如果被攻击域名所在的权威DNS服务器 性能和带宽没法支持查询所需要的带宽,那末就会直接瘫痪,并影响这个权威DNS服务器上的其他域名。

所以防御这类DNS Query攻击,不但难度极大,而且本钱极高,并且还不一定是100%防御。

特别是递归DNS服务器压力过大的时候,运营商可以直接封禁被攻击的域名,就算权威DNS服务器能够支持,此时你的域名或者没法解析,等于说服务瘫痪。

怎样防御?

这类只能找专业的DNS公司和运营商配合来做,否则都是无效的,费用也应当是天价了。

HTTP(s) Flood攻击(CC攻击)和防御方式

HTTP(s) Flood攻击和SYN Flood攻击一样非常辣手,但是也非常经典,攻击效果非常显著,而防御难度却比SYN Flood攻击高出几个数量级!


攻击发起看似非常简单,实则隐藏玄机!

HTTP(s) Flood攻击早在08年的时候,防御或者较为简单的,由于浏览器单一(大部份都是IE浏览器),通常硬件防火墙会采取JS-Redirect算法来做CC防御,效果非常 显著,但是99%的DDoS硬件防火墙是不支持HTTPS场景防御的。

到了12年移动互联网高度发达的时候,传统的硬件防火墙对CC攻击的防御早已力不从心(根本防不住),各种浏览器百花齐放,PC真个360浏览器,Chrome,FireFox,IE,手机真个UC浏览器,QQ浏览器,Chrome,Firefox浏览器等。

同时攻击软件也日新月异,各种攻击模式,很大一部份的攻击软件乃至都可以完全摹拟用户行动,使用headless浏览器攻击网站,真真假假很难分辨。

针对CC攻击的防御,也是分攻击范围的。

如果攻击范围不大的,可以斟酌将被攻击的页面静态化,避开数据库查询,和动态语言。

如果攻击范围巨大,每秒QPS高达数万以上的CC攻击,有两种办法。

方法1: 租赁大量的服务器和带宽,和专业的硬件负载均衡装备做负载均衡,将WEB服务器和数据库服务器做成集群和高可用架构,这样可以极大的提高CC攻击的防御能力。但是这个本钱可能会很高。

方法2: 租赁专业的DDoS云清洗和云防御公司的服务,专业的事情交给专业的人去做。

这里我友谊提示一下,CC攻击防御难度很高,建议让防御公司不要钱提供1⑶天的防御试用,如果三天期间防御效果不满意可以换一家,而不至于被骗。

慢要求攻击和防御方式

慢要求攻击是这几年新兴的攻击方式,通过大量的肉鸡发起大量的要求,每一个肉鸡每秒只要求1次,大量肉鸡会致使服务器遭受大量的攻击要求,但每一个源IP看着却 没有异常行动。

慢要求型的CC攻击危害较大,但是发起的难度和本钱也会高一些,通常攻击者为了利用有限的肉鸡打出较大的攻击,通常会将单个肉鸡的每秒查询速度设定到较大的值,例如每秒5到10次,这类攻击方式常常可以通过源IP频率限制等方式拦截,而慢要求型的CC攻击反其道而行,攻击者常常有足够多的肉鸡资源。

例如攻击者有10万肉鸡在线量,那末每一个肉鸡每秒只发起一次要求,10万个肉鸡也能够发起10万每秒的要求,这对WEB服务器来讲压力是巨大的,特别是中小型企业,没有那末多预算去做Web集群和数据库集群,和动态可伸缩的Web和MySQL,一旦面临这类慢连接和慢要求CC攻击,基本上都会直接出现数据库过载瘫痪,Web服务器瘫痪。

慢要求攻击示意图:


防御方式:

方案1:主要是扩大后端业务服务器范围来死扛这类攻击,本钱极高,但是能解决。

部署数据库集群,支持横向扩大,应对超大的CC攻击带来的数据库查询压力。

部署WEB服务器集群,支持横向扩大,对应超大CC攻击带来的CPU和内存和内核连接数瓶颈压力。

业务熔断机制和算法,需要自行研发业务熔断保护算法,在遭受超大攻击的时候能够对业务进行熔断和降级保护,避免所有业务全线崩溃。

方案2:寻觅专业的云安全服务提供商,解决这类攻击。

脉冲型攻击和防御方式

还有一种攻击我们叫做脉冲型的攻击,啥叫脉冲型,就是攻击流量不延续,每秒发动数次,并且可和时停止,及时发起,这类攻击的危害非常巨大,基本上所有防御公司都不愿意防御这类攻击,缘由我下面会详细讲授。

先放一张之前看到的脉冲型DDoS攻击的PPS图:


这类攻击可以在短时间内发起屡次DDoS攻击,并且快速停止,快速打击,这对很多云安全防御公司来讲就是噩梦。

为啥那末说呢?我们先来梳理一下云安全公司和IDC公司的DDoS硬件防火墙的部署模式。

模式A: 串连模式(In-line)


串连模式部署的DDoS防御系统对攻击流量检测和防御可以非常及时,通常可以在1秒左右检测到DDoS攻击并启用防御,最快的可以做到毫秒级别。

只要带宽足够,对付这类脉冲型DDoS攻击或者比较轻松,但是对黑洞牵引检测来讲是有要挟的,由于脉冲型攻击的快起快落会让采样准确率会降落,非常容易出现不能及时封堵这类DDoS攻击,如果瞬间攻击流量超过IDC出口,但黑洞牵引系统没有如此高效的检测,就会出现 服务断断续续,影响全部IDC出口下的服务。

模式B: 旁路模式(Out-of-path)


旁路部署模式需要由DDoS清洗装备和DDoS检测装备组成,通常90%的云安全公司和IDC机房是采取旁路部署模式,这类部署需要DDoS检测装备检测到DDoS攻击后才可以将被攻击IP地址的路由 牵引到DDoS清洗装备上。

通常DDoS检测装备大都采取采样方式检测,而不是全量检测,采样检测的效力较低,响应时间会比较高,通常需要攻击延续一段时间,而脉冲型DDoS攻击每次延续时间可能就数秒,这类情况下,旁路部署的防御服务基本会失效,需要防御公司手工牵引到DDoS清洗装备上进行流量清洗。

脉冲型攻击还可以实现Bypass Mitigation的攻击方式,充足的肉鸡和足够快的脉冲攻击频率,只需要100G⑵00G的攻击流量便可瘫痪T级别的防御,并且防御难度极高,对DDoS清洗装备的压力和可靠性要求巨大。

防御脉冲型攻击确切没办法自己解决,只能依托专业的云安全公司解决,并且是有足够强大的研发能力和技术支持能力的。

混合矢量(Multi-Vector )攻击方式和防御方式

其实也不用那末高大上的叫混合矢量攻击,接地气的名字叫做混合DDoS攻击,这类DDoS攻击通常只存在于利润巨大,竞争巨大,并且有着深仇大恨对手的攻击。

这类攻击通常会利用所有可利用的攻击方式来攻击目标,早期的目的是让DDoS硬件防火墙处理不过来,但现在的DDoS硬件防火墙根本不在怕的(除非这家ddos防火墙的代码和业务逻辑有问题),唯一要担心的是你防御算法能否精细的过滤掉这些歹意流量,否则多种攻击方式混合,但凡漏了一些攻击流量进入后端服务器,那就是灾害性的。

关于这类攻击的配图,也没甚么好的配图,所以我就随意来一张吧


由于篇幅有限,我就先写到这里,这篇文章我偏重对DDoS攻击方式和危害性的科普,下篇文章来详细说明DDoS防御商的那些小算盘和防御方式,由于笔者今年和运营商打了蛮多交道,也了解了一些DDoS防御商的做法和防御方式,如果需要专业的ddos/CC防御可以联系


<可直接扫码添加咨询>

标签: 服务器公司
相关信息推荐