[Forward Content] 网站刚上线,就被 DDoS 攻击炸了!
Tofloor
poster avatar
流浪的加菲
deepin
2024-12-04 19:23
Author

今天想转点不一样的东西给大家看,不是行业新闻,也不是技术分享,就是一段心酸的往事,相信社区老用户们今年都经历过了,哈哈

网站刚上线,就被 DDoS 攻击炸了!

今天是一个值得纪念的日子,你打开一罐可乐,看着自己刚刚上线的小网站,洋洋得意。

这是你第一次做的网站,上线之后,网站访问量突飞猛进;没过多久,你就拿到了千万的风投,迎娶了女神,走上了人生巅峰。。。

害,原来是喝醉了啊。。。你发现刚才那一切竟然都是你的幻想!

这时你突然收到了一封邮件:

aa0ed1d6-11be-4f9c-a90e-6de18dfd73ec.png

虽然你之前就听说过 DDoS 攻击,但没想到这么快就发生在了自己的头上。

DDoS(分布式拒绝服务)攻击是一种通过制造大量恶意流量打向目标服务器,导致其资源耗尽、服务中断或无法正常响应用户请求的网络攻击方式。

曾经你以为,DDoS 没什么可怕的,大不了攻击时网站不提供服务,攻击结束后再重启服务不就好了?

但现实给了你一巴掌,没想到云服务器平台直接把你的服务器 封禁了 12 小时 !你脊背有些发凉了:攻击者只需攻击几十秒,竟然就能让你的服务器老老实实瘫痪半天。

你不甘心,决定运用你学过的专业知识进行反击。

d6cf1bff1a73c3cddc44806f0b04184b.jpg

你给服务器程序增加了一个请求 IP 黑白名单,并且能够对每个 IP 的请求频率进行统计,只要发现单个 IP 请求过快过多,系统就会自动把该 IP 拉黑,就不用处理该 IP 的请求了。

af05da6a-2ea8-4fdc-bad2-8eaded13e6b1.png

你信心满满,又开始了对未来的幻想。。

结果没多久,你又收到了同样的邮件,你的服务器 IP 又被封堵了!而且这次 封禁了 24 小时

08b38844-285d-40e6-a076-bd86d543854c.png

坏了,你意识到自己犯了一个错误。DDoS 攻击根本不需要向你的应用程序发送恶意请求,而是可以通过直接发送大量的网络流量(比如 UDP 包、ICMP 请求等)到服务器,从而消耗服务器的带宽和资源。也就是说,攻击的目标是直接影响服务器的网络层和传输层,不需要经过应用层。

那一瞬间,你发如雨下,突然意识到,自己的后端技术学得再好,有什么用?DDoS 来了,自己还是没办法解决。

不过你不甘心,天将降大任于斯人也,必先苦其心志劳其筋骨,伤其服务器。。。你继续搜索防御方案,发现 Cloudflare 提供了免费的、号称不限量的 DDoS 防护服务!于是你满怀希望地将它接入网站。

之后,有些用户访问网站时,就会看到这朵小黄云,减少了机器请求攻击:

4cc4ccb0-03a9-4eca-bc02-fe7f50135479.png

这下,你长呼了一口气,让攻击者和 Cloudflare 斗智斗勇吧~

可没想到,接下来的几天,不断有用户反映:猪站长啊,你这网站打开速度也太慢了!

原来免费版本的 Cloudflare 在国内的节点数量有限,要从国外节点加载网站文件,导致国内用户访问速度变慢了。

于是你在网上查了一些攻略,发现有一些开源仓库确实可以找到国内优选的加速节点,但对网络运营商还是有一定限制,而且谁知道这些节点又能撑多久呢?

e728e203-8e4d-4cd4-82ba-24de97392881.png

正当你犹豫不决时,你又又又又又收到了服务器封堵的邮件!

你一脸懵逼:不是已经接入 CloudFlare 防护了么?

等等,攻击者已经知道了服务器本身的 IP 地址,完全可以绕过 CloudFlare,直接攻击到服务器啊!

这就好比你造了一面墙,但攻击者直接绕过去:

7d6818a5-b774-47ea-8263-659c1767c9e2.png

你有些头痛了,干脆一不做二不休,花点儿钱上更好的防护服务?于是你上网搜了一下大公司专业的高防服务器,发现价格竟然在几万 ~ 几十万不等!

1d9005ba-bfdd-4e16-be71-47bb84526623.png

你看了看自己 “薄如蝉翼” 的钱包,瞬间放弃了这个念头。

你开始怀疑是不是自己选错了方向,或者该做的也许并不是去拼防护,而是去做点儿别的事情?

首先,你想到了切换一个平台作为源站,只要保证服务器不会因为攻击而导致长时间封禁,这样即使被攻击了也能快速恢复。但是换到哪个平台呢?这时你想到了你的好朋友鱼皮,他曾经也用了一些平台,比如 Vercel。但你听说,他当时在 Vercel 上的网站因为被攻击得太严重,直接被平台封禁了账号,属实是老倒霉蛋了。

通过调研,你发现可以使用云托管之类的容器部署平台,可以将应用程序部署到多个不同的节点上,被封禁的概率小了很多。

但治根不治本,你想了想,只要保护好自己的源站服务器 IP 地址不被泄露,是不是就可以了呢?

于是,你更换了个新的服务器 IP。这次,不直接将网站域名解析到服务器 IP,而是接入了一个大厂的 CDN 服务,将域名解析到 CDN 服务,再让 CDN 服务从你的服务器获取网站文件。这样一来,攻击者无法直接得到服务器的 IP 地址,只能看到 CDN 节点的 IP。

b60151c2-9979-4fe2-828a-263bcf5e11c2.png

CDN 一般是按照流量计费的,不出意外的话,价格比高防可低了太多。

那如果,出意外了呢?

没过几天,你发现自己的云服务账户欠费了!

eecdb47370409a99f565ff6e5e309fec.jpg

原来,攻击者疯狂请求你的 CDN 盗刷流量,产生了高额的流量费用,第一次使用 CDN 的你,根本没有料到这点!

这次,你给 CDN 配置了单 IP 访问频率限制、最大消耗流量的限制和自动告警,比如 5 分钟内流量超过 5 G 时,就自动停止 CDN 服务。

d44ed70d-d3c8-4afa-830f-51d075861ac1.png

这样一通操作之后,你又恢复了些信心。但没想到,接下来等待你的,是一场无休止的攻击循环。

攻击者攻击了你的 CDN => 触发 CDN 的用量封顶防护,自动关闭服务 => 你重新打开 CDN 服务、并且通过 CDN 配置拉黑了之前攻击者的 IP => 攻击者又使用新的 IP 攻击 CDN。。。

你的选择

你的故事还没有结束,接下来,你会怎么做呢?

  • A. 怒砸巨款,买一年的 DDoS 安全防护
  • B. 关闭网站,不做了
  • C. 找专业人士求助
  • D. 找警察叔叔求助
  • E. 想办法拉赞助

你的结局

A. 怒砸巨款,买一年的 DDoS 安全防护

你决定不再 “省小钱,吃大亏”,干脆砸几万块钱,买一个更加专业的防护服务。你的网站终于在大流量攻击下依然稳定运行,用户也稳定增长,但一年后,你的网站只盈利了不到 1 万,血亏!

B. 关闭网站,不做了

看到 DDoS 攻击一波又一波地袭来,你虽然无数次尝试过调整策略,但身心俱疲,最后你决定放弃,关掉这个网站。

虽然稍有不甘,但你意识到,想一个人做好、运营好网站真的太不容易,你也更加理解鱼皮曾经的感受,选择加入鱼皮,帮他一起开发 编程导航

C. 找专业人士求助

你意识到自己的网络安全知识是缺斤少两的,于是决定请一位专家来帮你做 DDOS 防护。专家跟你说了很多的专业名词和理论,什么零信任架构、IDS、IPS、态势感知、流量清洗、蜜罐之类的,但最终并没有给你实质性的帮助,因为你也没有足够的资金去实现那些理论。

D. 找警察叔叔求助

你认为攻击者已经触犯了法律,于是决定报警。但没想到,由于你并没有受到巨大的金额损失,警方表示对此案件的关注度较低。而且 DDoS 攻击通常是由大量分布在全球各地的受害主机发起的,很难被追踪和定位。

你很难过,但也意识到了,这才是现实。

E. 想办法拉赞助

既然解决不了 DDoS 问题,何不去找找投资者或合作伙伴,拉个 “大力支持” 的赞助?说不定他们会为你提供免费的 DDOS 防护服务呢!

于是,你将网站开源,持续写文章介绍自己的网站。最终被一位年轻的富二代看上,他不仅没有给你提供赞助,还直接让公司的程序员搬走了你的开源代码,自己上线了个网站。


转载自博客园子:网站刚上线,就被 DDoS 攻击炸了!

原文作者:程序员鱼皮

以上故事如果与deepin社区前段时间经历雷同,那纯属巧合sweat

Reply Favorite View the author
All Replies
1 / 2
To page
神末shenmo
deepin
Spark-App
2024-12-04 19:48
#1

这我可太懂了


解决方案

  • 静态网站:对于不刚需互动的服务,使用完全静态的部署方式,把计算任务分配到客户端 原则:客户端能做的,就不要让服务端做,把计算任务分给客户端或者第三方服务,静态服务不怕打也不怕渗透

    例:星火应用商店的各项服务基本都是在用户本地实现的,基础服务完全不依赖交互

  • 请求透传,禁止CDN缓存:抛弃CDN带来的加速,要求每个请求都回源,每个IP都过筛,使用WAF来鉴别CC攻击和DDoS攻击,自动封禁IP并加入数据库,回源这一点非常重要,CDN很难做到动态封禁,就算是有IP封禁也有数量限制,就算有请求验证也不支持自定义,必须每个请求都回源+合法性验证,才能避免被刷流,这里推荐 雷池 WAF 可以自动获取恶意IP库

  • 更换IP并禁止泄漏:到服务商更换干净的IP,或者使用多个跳板隧道,然后确保所有的请求都必须使用VPN或者经过CDN访问,不开任何不必要的端口,防止源机被扫到,让攻击只能打到CDN,而CDN只会传合法请求,SYN攻击和UDP Flood攻击就都无效了

  • 大文件分离+CORS验证:图片,视频,软件包等大文件易被刷流,同时并不是那么刚需实时性,使用外部连接提供。如星火的应用列表中,json是通过国内CDN提供的,图片却使用单独的CF Page提供,尽管加载会稍微慢一些,但配图的加载速度并不是刚需,这样做可以杜绝被刷流——因为流量是免费的CF提供

    原则:能被刷流的不要放按流量付费服务,尽量不得不放按量付费服务的,尽可能地降低大小和加验证

  • 客户端有效性验证:通过特定的算法计算出客户端标识,可以采用GPG等方式让服务端验证客户端/浏览器的合法性(雷池WAF免费提供浏览器客户端验证功能),拒绝一切未经验证的请求,只返回静态页面,配合禁止CDN缓存可以大大降低被攻击的影响

  • 优化业务流程,多机备份服务:服务进行多点备份,尽可能低成本地完成服务。比如反馈服务,可以做成多点接收请求,再返回给核心服务,只要接收请求端有一个没有倒,服务就不会异常,而新增请求端是可以动态下发的,也可利用serverless服务进行部署来大批量地开启和关闭服务,大量更换节点以分散攻击流量

Reply View the author
funny
deepin
2024-12-04 19:51
#2
神末shenmo

这我可太懂了


解决方案

  • 静态网站:对于不刚需互动的服务,使用完全静态的部署方式,把计算任务分配到客户端 原则:客户端能做的,就不要让服务端做,把计算任务分给客户端或者第三方服务,静态服务不怕打也不怕渗透

    例:星火应用商店的各项服务基本都是在用户本地实现的,基础服务完全不依赖交互

  • 请求透传,禁止CDN缓存:抛弃CDN带来的加速,要求每个请求都回源,每个IP都过筛,使用WAF来鉴别CC攻击和DDoS攻击,自动封禁IP并加入数据库,回源这一点非常重要,CDN很难做到动态封禁,就算是有IP封禁也有数量限制,就算有请求验证也不支持自定义,必须每个请求都回源+合法性验证,才能避免被刷流,这里推荐 雷池 WAF 可以自动获取恶意IP库

  • 更换IP并禁止泄漏:到服务商更换干净的IP,或者使用多个跳板隧道,然后确保所有的请求都必须使用VPN或者经过CDN访问,不开任何不必要的端口,防止源机被扫到,让攻击只能打到CDN,而CDN只会传合法请求,SYN攻击和UDP Flood攻击就都无效了

  • 大文件分离+CORS验证:图片,视频,软件包等大文件易被刷流,同时并不是那么刚需实时性,使用外部连接提供。如星火的应用列表中,json是通过国内CDN提供的,图片却使用单独的CF Page提供,尽管加载会稍微慢一些,但配图的加载速度并不是刚需,这样做可以杜绝被刷流——因为流量是免费的CF提供

    原则:能被刷流的不要放按流量付费服务,尽量不得不放按量付费服务的,尽可能地降低大小和加验证

  • 客户端有效性验证:通过特定的算法计算出客户端标识,可以采用GPG等方式让服务端验证客户端/浏览器的合法性(雷池WAF免费提供浏览器客户端验证功能),拒绝一切未经验证的请求,只返回静态页面,配合禁止CDN缓存可以大大降低被攻击的影响

  • 优化业务流程,多机备份服务:服务进行多点备份,尽可能低成本地完成服务。比如反馈服务,可以做成多点接收请求,再返回给核心服务,只要接收请求端有一个没有倒,服务就不会异常,而新增请求端是可以动态下发的,也可利用serverless服务进行部署来大批量地开启和关闭服务,大量更换节点以分散攻击流量

星火现在还在被DDOS吗 confused

Reply View the author
不知道用啥昵称
deepin
2024-12-04 19:58
#3
神末shenmo

这我可太懂了


解决方案

  • 静态网站:对于不刚需互动的服务,使用完全静态的部署方式,把计算任务分配到客户端 原则:客户端能做的,就不要让服务端做,把计算任务分给客户端或者第三方服务,静态服务不怕打也不怕渗透

    例:星火应用商店的各项服务基本都是在用户本地实现的,基础服务完全不依赖交互

  • 请求透传,禁止CDN缓存:抛弃CDN带来的加速,要求每个请求都回源,每个IP都过筛,使用WAF来鉴别CC攻击和DDoS攻击,自动封禁IP并加入数据库,回源这一点非常重要,CDN很难做到动态封禁,就算是有IP封禁也有数量限制,就算有请求验证也不支持自定义,必须每个请求都回源+合法性验证,才能避免被刷流,这里推荐 雷池 WAF 可以自动获取恶意IP库

  • 更换IP并禁止泄漏:到服务商更换干净的IP,或者使用多个跳板隧道,然后确保所有的请求都必须使用VPN或者经过CDN访问,不开任何不必要的端口,防止源机被扫到,让攻击只能打到CDN,而CDN只会传合法请求,SYN攻击和UDP Flood攻击就都无效了

  • 大文件分离+CORS验证:图片,视频,软件包等大文件易被刷流,同时并不是那么刚需实时性,使用外部连接提供。如星火的应用列表中,json是通过国内CDN提供的,图片却使用单独的CF Page提供,尽管加载会稍微慢一些,但配图的加载速度并不是刚需,这样做可以杜绝被刷流——因为流量是免费的CF提供

    原则:能被刷流的不要放按流量付费服务,尽量不得不放按量付费服务的,尽可能地降低大小和加验证

  • 客户端有效性验证:通过特定的算法计算出客户端标识,可以采用GPG等方式让服务端验证客户端/浏览器的合法性(雷池WAF免费提供浏览器客户端验证功能),拒绝一切未经验证的请求,只返回静态页面,配合禁止CDN缓存可以大大降低被攻击的影响

  • 优化业务流程,多机备份服务:服务进行多点备份,尽可能低成本地完成服务。比如反馈服务,可以做成多点接收请求,再返回给核心服务,只要接收请求端有一个没有倒,服务就不会异常,而新增请求端是可以动态下发的,也可利用serverless服务进行部署来大批量地开启和关闭服务,大量更换节点以分散攻击流量

那个渣滓还在攻击你的网站吗

Reply View the author
观摩
deepin
2024-12-04 20:03
#4

遇到DDOS攻击确实很头疼。
能有条件上高防的人群肯定不在社区混。

一般的企业运营的系统只能换IP,不适合用国外CDN。

个人站或者开源站,用国外CDN到是凑合,部分人打不开就打不开了,无所谓。

Reply View the author
神末shenmo
deepin
Spark-App
2024-12-04 20:14
#5
不知道用啥昵称

那个渣滓还在攻击你的网站吗

时不时吧

等寒假他应该又要集中攻击了

Reply View the author
funny
deepin
2024-12-04 20:18
#6
神末shenmo

时不时吧

等寒假他应该又要集中攻击了

你们说的谁啊 不懂 confused

Reply View the author
pzm9012
Moderator
2024-12-04 22:26
#7

所以,什么时候解决一下deepin官网访问不稳定的问题,前段时间还在把网友往社区引流

Reply View the author
新手来啦~
deepin
2024-12-05 01:44
#8

哈哈哈哈

Reply View the author
新手来啦~
deepin
2024-12-05 01:44
#9

好有节目

Reply View the author
神末shenmo
deepin
Spark-App
2024-12-05 07:33
#10
pzm9012

所以,什么时候解决一下deepin官网访问不稳定的问题,前段时间还在把网友往社区引流

我觉得可以深度之家带一个webengine访问国内服务器版本的论坛

客户端可以加的验证就多多了,方便,还可以加上论坛通知同步

Reply View the author
funny
deepin
2024-12-05 07:37
#11
神末shenmo

我觉得可以深度之家带一个webengine访问国内服务器版本的论坛

客户端可以加的验证就多多了,方便,还可以加上论坛通知同步

好主意

Reply View the author
pzm9012
Moderator
2024-12-05 08:15
#12
神末shenmo

我觉得可以深度之家带一个webengine访问国内服务器版本的论坛

客户端可以加的验证就多多了,方便,还可以加上论坛通知同步

但是这样要想稳定访问论坛还得专门用deepin了,产研没精力做多平台的客户端

GXDE也没有深度之家吧?

Reply View the author
WangZhongyun
deepin
2024-12-05 09:33
#13

对过于频繁地非正常用户访问予以自动屏蔽,对同一地址访问限频率响应。这样即使遭到不停地攻击,但一定时间内只做一次响应处理,其余的清除也不会占用资源。

Reply View the author
gfdgd_xi
deepin
Ecological co-builder
2024-12-05 12:44
#14
pzm9012

但是这样要想稳定访问论坛还得专门用deepin了,产研没精力做多平台的客户端

GXDE也没有深度之家吧?

joy 但其实gxde的源里有深度之家

Reply View the author
观摩
deepin
2024-12-05 13:05
#15
WangZhongyun

对过于频繁地非正常用户访问予以自动屏蔽,对同一地址访问限频率响应。这样即使遭到不停地攻击,但一定时间内只做一次响应处理,其余的清除也不会占用资源。

你说这个,说明你没明白DDOS攻击的原理。

其实楼主帖子里面也写了,你仔细看看。

当然,没经历过可能不太容易理解。

Reply View the author
Oli
deepin
2024-12-06 06:29
#16

那次之后论坛无敌卡

Reply View the author
小小怪冲啊!
deepin
2024-12-06 06:53
#17

感觉一个技术论坛被攻陷是我想不到的

Reply View the author
小小怪冲啊!
deepin
2024-12-06 06:53
#18

可能官方也没怎么在意论坛安全吧

Reply View the author
神末shenmo
deepin
Spark-App
2024-12-06 13:19
#19
pzm9012

但是这样要想稳定访问论坛还得专门用deepin了,产研没精力做多平台的客户端

GXDE也没有深度之家吧?

并不是 只能 而是客户端可以优先提供更好的线路

比如都是访问bbs.deepin.org,客户端的通过验证,服务升级,连接cn.bbs.deepin.org,国内节点,网页版的走CF,也能用

Reply View the author
小鱼贝壳
deepin
2024-12-07 01:56
#20

啥时候?

Reply View the author
1 / 2
To page