上周,我们的网站遭到了一次DDoS攻击。虽然我对DDoS的防御还是比较了解,但是真正遇到时依然打了我个措手不及。DDoS防御是一件比较繁琐的事,面对各种不同类型的攻击,防御方式也不尽相同。对于攻击来的太快量也很大这种时,在自身环境下做调整已经无法抵抗攻击。为了缓解网站压力,在尝试了其他方式后最终还是选择切换到了知道创宇的高防产品。过程中也遇到了很多问题,但是为以后的DDoS防御留下的很多经验。所以写下这篇文章,与大家分享。

这次DDoS攻击的类型是CC攻击,CC攻击是目前应用层攻击的主要手段之一,只需要借助代理服务器生成指向目标系统的合法请求,就能实现伪装和DDoS。


其实我们都有这样的体验,访问一个静态页面,即使人多也不需要太长时间,但如果在高峰期访问论坛、贴吧等,那就很慢了,因为服务器系统需要到数据库中判断访问者是否有读帖、发言等权限。访问的人越多,论坛的页面越多,数据库压力就越大,被访问的频率也越高,占用的系统资源也就相当的大。CC攻击就充分利用了这个特点,模拟多个正常用户不停地访问如论坛这些需要大量数据操作的页面,造成服务器资源的浪费。

当时我们发现服务器的CPU长时间处于100%的状态,永远都有处理不完的请求,网络拥塞,正常访问被中止。但是由于CC攻击技术性含量高,我们又无法见到真实源IP,也见不到特别大的异常流量,但服务器就是无法进行正常连接。最后才确定,这些其实都是CC攻击的典型特征。

CC攻击之所以会选择代理服务器是因为代理可以有效地隐藏自己的身份,也可以绕开防火墙,因为基本上所有的防火墙都会检测并发的TCP/IP连接数目,超过一定数目一定频率就会被认为是Connection-Flood。当然也可以使用肉鸡来发动CC攻击,攻击者使用CC攻击软件控制大量肉鸡发动攻击,肉鸡可以模拟正常用户访问网站的请求伪造成合法数据包,相比前者来说更难防御。

CC攻击是针对Web服务在第七层协议发起的攻击,在越上层协议上发动DDoS攻击越难以防御,上层协议与业务关联愈加紧密,防御系统面临的情况也会更复杂。比如CC攻击中最重要的方式之一HTTP Flood,不仅会直接导致被攻击的Web前端响应缓慢,对承载的业务造成致命的影响,还可能会引起连锁反应,间接攻击到后端的Java等业务层逻辑以及更后端的数据库服务。真的非常的扎心!后来知道创宇的工程师告诉我们,由于CC攻击成本低、威力大,80%的DDoS攻击都是CC攻击。而攻击造成的后果就是:带宽资源严重被消耗,网站瘫痪;CPU、内存利用率飙升,主机瘫痪;瞬间快速打击,无法快速响应。

那我们是如何一步一步解决的?其实在遇到攻击时,我们有仔细考虑过很多方案,是选择高防机房、机房流量清洗还是云防御?

遭到攻击的第一刻,我们首先想到的是用机房进行流量迁移。网上也有很多过来人推荐这种办法。确实,这种办法能快速的响应,面对小流量的攻击时价钱合理同事也十分有效。但问题是,攻击者一直孜孜不倦,流量越打越大,我们花出去的钱也越来越多…无奈之下我们只能转向考虑高防,高防的优势还是很明显,配置简单接入方便,能很快见效,合理的套餐选择使得攻击大时价格能低于机房清洗。在选择高防产品时我们对阿里云、腾讯云和知道创宇三家进行了评估。三家实力都很雄厚,价格阿里云>腾讯云>知道创宇,但也就几百的差距,没什么影响。最后选择知道创宇的主要原因是,我们这次遭遇到的攻击也是以CC为主,他们防御CC的能力确实很牛,所以…

最后一点点经验给到大家:遇到1G以下的攻击,使用防火墙就可以搞定(或者使用一些免费的云防御产品);流量1G—10G时可以选择机房进行流量迁移和清洗;大于10G时使用高防CDN(云防御)是相对最靠谱并且价钱最能接受的。由于攻防资源和成本的天平严重倾斜,让攻击更加肆无忌惮。只有做好充分的准备,在威胁来临的时候才不至于乱了阵脚。因此,平时就对网络架构进行优化显得十分的必要,负载均衡方案也能大大提高应对DDoS攻击的能力。

希望这点经验能帮到大家,欢迎留言交流。

现身说法:面对DDoS攻击时该如何防御?的更多相关文章

  1. 工信部公示网络安全示范项目 网易云易盾“自适应DDoS攻击深度检测和防御系统”入选

    本文由  网易云发布. 工信部官网 2017年年底,经专家评审和遴选,中华人民共和国工业和信息化部(以下简称“工信部”)公示了2017年电信和互联网行业网络安全试点示范项目,网易云易盾的“自适应DDo ...

  2. 破坏之王DDoS攻击与防范深度剖析【学习笔记】

    一.DDoS初步印象 1.什么是分布式拒绝服务攻击? 1)首先它是一种拒绝服务攻击 我们可以这么认为,凡是导致合法用户不能访问服务的行为,就是拒绝服务攻击. 注:早期的拒绝服务主要基于系统和应用程序的 ...

  3. 从分析攻击方式来谈如何防御DDoS攻击

    DDoS攻击的定义: DDoS攻击全称——分布式拒绝服务攻击,是网络攻击中非常常见的攻击方式.在进行攻击的时候,这种方式可以对不同地点的大量计算机进行攻击,进行攻击的时候主要是对攻击的目标发送超过其处 ...

  4. DDOS攻击(流量攻击)防御步骤

    DDOS全名是Distributed Denial of service (分布式拒绝服务攻击),很多DOS攻击源一起攻击某台服务器就组成了DDOS攻击,DDOS 最早可追溯到1996年最初,在中国2 ...

  5. DDos攻击的常见方法及防御方法

    什么是DDoS? DDoS是英文Distributed Denial of Service的缩写,意即“分布式拒绝服务”,那么什么又是拒绝服务(Denial of Service)呢?可以这么理解,凡 ...

  6. DDoS攻击与防御(4)

    在发生DDoS攻击的情况下,可以通过一些缓解技术来减少攻击对自身业务和服务的影响,从而在一定程度上保障业务正常运行.缓解DDoS攻击的主要方法是对网络流量先进行稀释再进行清洗. 1.攻击流量的稀释 1 ...

  7. 怎样预防Ddos攻击

    一.为何要DDOS? 随着Internet互联网络带宽的增加和多种DDOS黑客工具的不断发布,DDOS拒绝服务攻击的实施越来越容易,DDOS攻击事件正在成上升趋势.出于商业竞争.打击报复和网络敲诈等多 ...

  8. 防止 DDoS 攻击的五个「大招」!

    提到 DDoS 攻击,很多人不会陌生.上周,美国当地时间 12 月 29 日,专用虚拟服务器提供商 Linode 遭到 DDoS 攻击,直接影响其 Web 服务器的访问,其中 API 调用和管理功能受 ...

  9. cc攻击和ddos攻击

    DoS攻击.CC攻击的攻击方式和防御方法 DDoS介绍 DDoS是英文Distributed Denial of Service的缩写,意即“分布式拒绝服务”,那么什么又是拒绝服务(Denial of ...

随机推荐

  1. 20175212童皓桢 实验三敏捷开发与XP实践实验报告

    20175212童皓桢 实验三敏捷开发与XP实践实验报告 实验内容 XP基础 XP核心实践 相关工具 实验步骤 一.Code菜单功能的研究 Move Line/statement Down/Up:将某 ...

  2. 【转】Java压缩和解压文件工具类ZipUtil

    特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过.如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/ ...

  3. if && grep

    if    条件  then         Command else         Command fi                               别忘了这个结尾 ——————— ...

  4. ORACLE ASM 日常管理

    ASM概述 Automatic Storage Management(ASM)是Oracle数据库10g中一个非常出色的新特性,它以平台无关的方式提供了文件系统.逻辑卷管理器以及软件RAID等服务.A ...

  5. 7. 进行图片的数据补全和增强(随机亮度,随机饱和度,随机翻转) Image.open(进行图片的读入) 2.ImageEnhance.Brightness(亮度变化) 3.ImageEnhance.Contrast(饱和度变化) 4.enhance_image.transpose(图片随机翻转) 5.enhance_image.save(进行图片保存)

    1.Image.open(image_path)  进行图片的打开 参数说明:image_path 表示图片的路径 2. ImageEnhance.Brightness(image)  # 进行图片的 ...

  6. CPU处理多任务——中断与轮询方式比较

    中断方式与轮询方式比较   中断的基本概念 程序中断通常简称中断,是指CPU在正常运行程序的过程中,由于预选安排或发生了各种随机的内部或外部事件,使CPU中断正在运行的程序,而转到为相应的服务程序去处 ...

  7. 《Java编程思想》读书笔记<一>

    第二章 一切皆对象 java是面向对象的语言. 1.我们怎么操作对象? 每种语言都有自己的操纵内存中元素的方式,java使用引用操作内存中元素(对象).引用可以独立存在,例如:String s:表示创 ...

  8. Linux_ubuntu命令-用户、权限管理

    用户是Unix/Linux系统工作中重要的一环,用户管理包括用户与组账号的管理. 在Unix/Linux系统中,不论是由本机或是远程登录系统,每个系统都必须拥有一个账号,并且对于不同的系统资源拥有不同 ...

  9. MYSQL5.5源码包编译安装

    MYSQL5.5源码安装首先安装必要的库yum -y install gcc*###### 安装 MYSQL ######首先安装camke 一.支持YUM,则yum install -y cmake ...

  10. Dart学习笔记-变量常量数据类型

    变量和常量 1.变量的定义 main() { var t_str = 'hello world'; var t_num = 123456; String t_str2 = '你好,我很高兴'; int ...