DDOS攻防资料整理

2019-08-25  本文已影响0人  AmazRan

前言

日常开发中有时会遇到业务接口被刷了,因此想做一篇相关的文章摘要整理。

基本概念

维基给出的定义:DDOS攻击即denial-of-service attack 是一种爬虫攻击。
但是有的地方又喜欢把DDOS 作为一大类攻击的总称,其中爬虫攻击是很典型的一种,个人认为具体怎么叫没有必要深究。
攻击者通过这种方式让一台机器或网络资源宕机不可用。当然攻击者也有可能是通过大量的请求,获取业务数据,例如美团、携程、大众点评等的内容数据。
通常攻击者通过伪造成正常用户,伪造UA、cookie等等,通过海量的ip代理服务器发起请求,较为严重的,会造成CPU满、带宽满、内存满、连接数满等等,进而影响到正常用户的访问请求。

建议阅读阮大的DDOS 攻击的防范教程,亲身示范生动具体😂


解决办法

DDOS没有绝对完善的解决办法!

DDOS的攻防中,只能是双方之间的较量硬碰硬,并没有一招制胜的说法。阅读了各类资料,大致整理了几个要点

  1. 准备一个备份网站
    在服务器下线了,最低限度通过这种页面告诉用户正在抢修中。这种临时主页建议放到 Github Pages 或者 Netlify,它们的带宽大,可以应对攻击,而且都支持绑定域名,还能从源码自动构建。
  2. web服务器拦截ip请求
    非常消耗性能。假使黑客通过发动成千上万的肉鸡,在短时间内发起海量访问,这种做法就没有用了。
  3. 借助SLB产品
    参考了底部阿里云的文章,借助其SLB产品在web服务器前帮助过滤请求。关键词:清洗、黑洞。进行攻击报文过滤、流量限速、包限速甚至为保护整个集群的安全所有入流量丢弃处理。具体做法移步相应的产品说明书。
  4. 架设硬件防火墙
    在web服务器前架设防火墙专门过滤请求,但这种价格也昂贵。
    类似的
  5. 带宽扩容
    当遭到攻击,短时间内急剧扩容,提供几倍或几十倍的带宽,顶住大流量的请求。为什么云服务商可以提供防护产品,因为他们有大量冗余带宽,可以用来消化 DDOS 攻击。
  6. CDN
    CDN指的是网站的静态内容分发到多个服务器,用户就近访问,提高速度。因此,CDN 也是带宽扩容的一种方法,可以用来防御 DDOS 攻击。
    网站内容存放在源服务器,CDN 上面是内容的缓存。用户只允许访问 CDN,如果内容不在 CDN 上,CDN 再向源服务器发出请求。这样的话,只要 CDN 够大,就可以抵御很大的攻击。不过,这种方法有一个前提,网站的大部分内容必须可以静态缓存。对于动态内容为主的网站(比如论坛),就要想别的办法,尽量减少用户对动态数据的请求。
  7. 镜像服务器
    本质也就是自己搭建一个微型 CDN。各大云服务商提供的高防 IP,背后也是这样做的:网站域名指向高防 IP,它提供一个缓冲层,清洗流量,并对源服务器的内容进行缓存。
    这里有一个关键点,一旦上了 CDN,千万不要泄露源服务器的 IP 地址,否则攻击者可以绕过 CDN 直接攻击源服务器。阮大也遇到了绕过直接被攻击源服务器的情况,最后他买了弹性 IP ,可以动态挂载主机实例,受到攻击就换一个地址。

等等还有很多。一些防的越彻底的算法,也会增加正常业务数据丢失的风险,当然这是难以避免的。


有效的DDoS防护机制应该包含以下六个步骤
  1. 提前能检测到攻击,并启动相应的减缓攻击措施
  2. 当攻击上升到一个等级没有被成功阻止下来,立刻通知相应的处理团队
  3. 核实攻击的确是在发生,分析,提供解决方案在必要时云端迁移
  4. 将迁移信号发送给云端,同时带上这次攻击的详细细节
  5. 云端开始转移并清洗请求数据,通常是借助 Border Gateway Protocol (BGP) or the Domain Name System (DNS)
  6. 当攻击结束,When the attack is over, traffic is restored to its normal path through the ISP.

先前提到的解决方案应该归纳到第一点的减缓攻击措施里。如果还是没有拦截下来,可以按照这个流程去处理,至少在第一时间可以保持服务正常(当然是用备用的网页也是个好的方案,但这个更加成熟)


心得

就像开篇讲的一样,DDOS攻击并没有最好的根治之法,做不到彻底防御,只能采取各种手段在一定程度上减缓攻击伤害。所以平时服务器的运维工作还是要做好基本的保障,将DDOS攻击带来的损失尽量降低到最小。


参考

阮一峰的DDOS 攻击的防范教程
聊一聊负载均衡SLB的DDoS防护
How to Defend Against DDoS Attacks: Six Steps

上一篇 下一篇

猜你喜欢

热点阅读