前言

    笔者所在单位是一家小型创业公司,目前产品正在成长阶段,日活跃用户只有区区几万人次,并发只有日均 85/QPS,自建机房,带宽 100MB。在这样的背景下,完全没想过一个小产品会招来黑客的光顾,而且一来就是好几天。

起因

    事情的起因来源于某个惬意的下午,从市场接收到客户反馈,部分地区客户无法打开产品页面,由于是周末且之前也发生过机房网络故障,运维并未引起重视,以为是网络问题,放置不管。但是到傍晚19点左右,情况突然变得很严重,90%的客户都在反馈无法打开产品页面;
这一下子就炸锅了。

    首先,马上安排运维人员排查机房网络问题,然后技术人员查看服务日志、流量监控是否正常。马上就发现了问题,服务器CPU运行平稳,流量只有 3次/s,很明显,流量未进入服务器,被拦截在防火墙外面了;过了5分钟,收到运维人员反馈:机房反馈,突然收到大量数据包请求,
流量高达30GB,目前已启动限流措施!
事情非常明了,服务遭到了 DDOS 攻击!
怎么办,怎么办,怎么办!

防御

    大家都在干等着,什么也做不了,等机房处理,这是运维人员的处理意见。等机房处理是非常愚蠢的想法,后面会讲到。

    攻击持续了大约 3 个小时,晚上 22:00 左右,攻击停止,服务恢复,这期间,市场只能一直安抚客户,而大家也一致认为这是一场随机的攻击,居然也都洗洗睡了,事实证明大错特错。
第二天白天流量恢复正常,大家还认为这就是个恶作剧,然后傍晚 17 点左右,又有部分客户反馈无法打开产品页面,这次持续了 10 分钟后停止,机房也未收到任何警报(小机房坑爹啊),
晚上 19:00 又准时开始攻击,这次持续了 10 个小时,整个产品线几乎瘫痪,只有微信端很小的流量进来。

    这次情况就很难受了,大家都不好过,我的建议是马上上高防IP,联系机房,说是提供 3000RMB/月 的流量防御,最高 30GB,我说好,先上着,寥胜于无吧。第二天,马上安排财务付款购买,上了机房自带的高防IP后,果然奏效了,产品浏览正常,好事多磨,这是谁说的,
下午的攻击又准时的出现,这次高防IP发挥了左右,扛住了 10 分钟,然后也瘫痪了!!!

换IP!

    马上安排运维人员更换 IP 地址,然后扛住了 30 分钟,新IP也宣告沦陷,我就奇怪了,黑客也太厉害了,这么快就找到新 IP 了?,机房告知:更换 IP 只支持更换 C 段,我....
流量不够,IP暴露,事情的发展对我方很不利。

    这个时候我在想,要是认了个爸爸该多好!爸爸,哎爸爸,马爸爸啊,找阿里云啊,此时已是周四了,距离收到攻击报告已过去了3天了。

    马上到阿里云查看高防IP服务,果然有,果断买;联系客服,下单,拉了个钉钉群,技术专家对接;
准备接入的时候发现,要接入高防IP服务,域名必须在阿里备案,没问题,我们的域名都在在阿里买的,但是备案的时候需要服务器,运维安排买!买了以后发现,还是无法备案,提示购买时长必须是 3 个月以上,他们买了 1 个月,哈哈啊哈哈,我的天啊。财务外出,无法续费。
联系阿里高防IP服务技术专家,说可以内部提供加速服务(不收费),我说好,你们沟通一下,我马上去提个工单,把工单号发给技术专家内部安排沟通,备案问题得以顺利解决。
接下来就是接入高防IP服务。

    不得不说,阿里的敬业精神,对接群里面分别拉了技术、商务、运维、客服,各种问题全方位快速响应,在周五下班前,完美接入了高防IP服务,基础 30GB,弹性 60GB。

波澜又起

    下班后,我坐在电脑前想,IP暴露的问题还是没有解决,这个是非常大的隐患啊,还没来得及细想,攻击就来了 还是 30GB流量,不过,高防IP服务全部都清洗过去了,只造成了些许困扰,大家认为,肯定是没有问题了,都下班走人。到了晚上,部分客户反馈,安卓客户端无法浏览部分网页,
报证书链不完整的问题,钉钉电话联系阿里技术专家,彼时技术专家已下班,从电话里依稀听到孩子嬉戏的声音。

    经过详细沟通后,重新上传 https 证书,合并证书链后解决。
第二天周六,一如往常的平静,到下午 14:00 ,突然收到阿里高防IP服务警报,服务黑洞中....登录云盾查看流量,收到DDOS流量包超过 60GB,最高达到 100 GB,高防IP服务自动停止防御,发送警报短信,联系技术专家后,解决方案是提示防御弹性到 300GB,手动
解除黑洞,故障解除,接下来的周日、周一,又收到几波攻击,最高达到 150GB,但是都有惊无险的安全度过。

转机

    事情的转机出现在某个夜深人静的晚上,从遥远的华中地区来的一个电话,某个市场区域代理反馈,接到一个自称黑客要求合作的电话,已将录音发送给技术团队,我们一听,就是勒索啊,说这几天都在由于他们在“测试”,帮我们产品找漏洞,如果付钱给他们,
他们可以保证我们的产品在“全球”范围内不会再发生这种事情,我们商量了一下,觉得和他进一步的接触。

    经过两天的沟通,还是无法得到对方的有效信息,就此作罢,黑客约定第二天“展示实力”,第二天,预约的时间,攻击没有到来,1个小时后,收到阿里高防IP服务短信反馈,监控到一波 30GB的流量攻击,已平稳度过,截至发文时,服务运行平稳,流量稳定,无攻击,阿门!

总结

  • 从此事件中可以看出,我方对安全问题不重视,这也是初创企业普遍存在的问题,运维人员意识出现幸存者偏差,有侥幸心里。
  • 在攻击初始出现的时候,没有预案,无法应对,被动等待机房处理,而机房能力和服务水平较弱,无法应对这种小规模的攻击。
    唯一能做的就是将我方业务下线,俗称“拔线”,完全不理我方感受,简单粗暴,所以在初创时期,千万不要作死自建机房,除非有成熟的机房运作经验
  • 我方只有单机房,无法更换B段以上IP,IP地址直接暴露,更是自己找死。
  • 经此事件后,我方决定部分业务上云,特别要建立堡垒机方案,全面排查系统、业务、应用级别漏洞。
  • 建立多机房备灾和故障转移方案,建立应对突发事件的预案,建立预警方案。
  • 在事故处理期间还检测出防火墙老化产生的问题,更换了防火墙、IP地址,加强运维人员管理意识,提升业务水平。

结语

    系统的升级非一朝一夕,意识最重要,不怕事故,就怕没有处理方案,出了事情千万不能瞒报、误报,主管领导要全方位的了解各种情况,深挖问题,结合实际,做出最快、最优的处理决定。
从业者都应该保持对这份职业的敬重。

记一次DDOS攻击防御实录的更多相关文章

  1. 【Network】DDoS攻击防御

    DDoS(Distributed Denial of Service,分布式拒绝服务)攻击的主要目的是让指定目标无法提供正常服务,甚至从互联网上消失,是目前最强大,最难防御的攻击之一. 按照发起的方式 ...

  2. 抗D十招:十个方法完美解决DDoS攻击防御难题

    可以说,DDoS是目前最凶猛.最难防御的网络攻击之一.现实情况是,这个世界级难题还没有完美的.彻底的解决办法,但采取适当的措施以降低攻击带来的影响.减少损失是十分必要的.将DDoS防御作为整体安全策略 ...

  3. 记一次DDos攻击--2016/12/8

    先上图 图一 图二 午休之后~ 睡意朦胧,报警来了.看到121121Mbps的流量攻击,精神一震. 不到两秒,又来了一个短信,开始心塞.网站入口IP被封了.打开网站,全站瘫痪.紧接着运营就来了,让运营 ...

  4. 浅谈 DDoS 攻击与防御

    浅谈 DDoS 攻击与防御 原创: iMike 运维之美  什么是 DDoS DDoS 是英文 Distributed Denial of Service 的缩写,中文译作分布式拒绝服务.那什么又是拒 ...

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

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

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

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

  7. DDOS、CC、sql注入,跨站攻击防御方法

    web安全常见攻击解读--DDos.cc.sql注入.xss.CSRF 一,DDos https://www.cnblogs.com/sochishun/p/7081739.html#4111858 ...

  8. DDOS攻击与防御简单阐述,列出DDOS的攻击方法和防御方法

    参考1:https://www.hi-linux.com/posts/50873.html#%E7%BD%91%E7%BB%9C%E5%B1%82-ddos-%E6%94%BB%E5%87%BB 什么 ...

  9. NET MVC全局异常处理(一) 【转载】网站遭遇DDoS攻击怎么办 使用 HttpRequester 更方便的发起 HTTP 请求 C#文件流。 Url的Base64编码以及解码 C#计算字符串长度,汉字算两个字符 2019周笔记(2.18-2.23) Mysql语句中当前时间不能直接使用C#中的Date.Now传输 Mysql中Count函数的正确使用

    NET MVC全局异常处理(一)   目录 .NET MVC全局异常处理 IIS配置 静态错误页配置 .NET错误页配置 程序设置 全局异常配置 .NET MVC全局异常处理 一直知道有.NET有相关 ...

随机推荐

  1. 加密原理介绍,代码实现DES、AES、RSA、Base64、MD5

    阅读目录 github下载地址 一.DES对称加密 二.AES对称加密 三.RSA非对称加密 四.实际使用 五.关于Padding 关于电脑终端Openssl加密解密命令 关于网络安全的数据加密部分, ...

  2. SSM-SpringMVC-12:SpringMVC中BeanNameViewResolver这种视图解析器

    ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 视图解析器,这个很熟悉啊,之间就用过,就是可以简写/和.jsp的InternalResourceViewRes ...

  3. Intellij IDEA 安装lombok及使用详解

    项目中经常使用bean,entity等类,绝大部分数据类类中都需要get.set.toString.equals和hashCode方法,虽然eclipse和idea开发环境下都有自动生成的快捷方式,但 ...

  4. poj-3522 最小生成树

    Description Given an undirected weighted graph G, you should find one of spanning trees specified as ...

  5. 2个byte类型数据相加(转型问题的分析)

    转自https://blog.csdn.net/alinshen/article/details/53571857 今天看到网上有网友问到关于final修饰的面试题目,题目如下: <span s ...

  6. go语言 nsq源码解读四 nsqlookupd源码options.go、context.go和wait_group_wrapper.go

    本节会解读nsqlookupd.go文件中涉及到的其中三个文件:options.go.context.go和wait_group_wrapper.go. options.go 123456789101 ...

  7. BZOJ_1408_[Noi2002]Robot_数学

    Description Input Output Sample Input 3 2 1 3 2 5 1 Sample Output 8 6 75 HINT 90号机器人有10个老师,加上它自己共11个 ...

  8. BZOJ_3173_[Tjoi2013]最长上升子序列_splay

    BZOJ_3173_[Tjoi2013]最长上升子序列_splay Description 给定一个序列,初始为空.现在我们将1到N的数字插入到序列中,每次将一个数字插入到一个特定的位置.每插入一个数 ...

  9. Scrapy爬虫框架(实战篇)【Scrapy框架对接Splash抓取javaScript动态渲染页面】

    (1).前言 动态页面:HTML文档中的部分是由客户端运行JS脚本生成的,即服务器生成部分HTML文档内容,其余的再由客户端生成 静态页面:整个HTML文档是在服务器端生成的,即服务器生成好了,再发送 ...

  10. 我和Python的Py交易》》》》》》 浮点数的身世字谜

    什么是浮点数? 在数据类型中写道,浮点数是带小数点的小数,这个概念是不准确的:浮点数是除了无限不循环小数之外的小数,也就是可以用分数表示的带小数点的数. 好了,浮点数就这些内容,讲完了,各回各家,各找 ...