记一次DDOS攻击防御实录
前言
笔者所在单位是一家小型创业公司,目前产品正在成长阶段,日活跃用户只有区区几万人次,并发只有日均 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攻击防御实录的更多相关文章
- 【Network】DDoS攻击防御
DDoS(Distributed Denial of Service,分布式拒绝服务)攻击的主要目的是让指定目标无法提供正常服务,甚至从互联网上消失,是目前最强大,最难防御的攻击之一. 按照发起的方式 ...
- 抗D十招:十个方法完美解决DDoS攻击防御难题
可以说,DDoS是目前最凶猛.最难防御的网络攻击之一.现实情况是,这个世界级难题还没有完美的.彻底的解决办法,但采取适当的措施以降低攻击带来的影响.减少损失是十分必要的.将DDoS防御作为整体安全策略 ...
- 记一次DDos攻击--2016/12/8
先上图 图一 图二 午休之后~ 睡意朦胧,报警来了.看到121121Mbps的流量攻击,精神一震. 不到两秒,又来了一个短信,开始心塞.网站入口IP被封了.打开网站,全站瘫痪.紧接着运营就来了,让运营 ...
- 浅谈 DDoS 攻击与防御
浅谈 DDoS 攻击与防御 原创: iMike 运维之美 什么是 DDoS DDoS 是英文 Distributed Denial of Service 的缩写,中文译作分布式拒绝服务.那什么又是拒 ...
- DDos攻击的常见方法及防御方法
什么是DDoS? DDoS是英文Distributed Denial of Service的缩写,意即“分布式拒绝服务”,那么什么又是拒绝服务(Denial of Service)呢?可以这么理解,凡 ...
- 从分析攻击方式来谈如何防御DDoS攻击
DDoS攻击的定义: DDoS攻击全称——分布式拒绝服务攻击,是网络攻击中非常常见的攻击方式.在进行攻击的时候,这种方式可以对不同地点的大量计算机进行攻击,进行攻击的时候主要是对攻击的目标发送超过其处 ...
- DDOS、CC、sql注入,跨站攻击防御方法
web安全常见攻击解读--DDos.cc.sql注入.xss.CSRF 一,DDos https://www.cnblogs.com/sochishun/p/7081739.html#4111858 ...
- 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 什么 ...
- 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有相关 ...
随机推荐
- 加密原理介绍,代码实现DES、AES、RSA、Base64、MD5
阅读目录 github下载地址 一.DES对称加密 二.AES对称加密 三.RSA非对称加密 四.实际使用 五.关于Padding 关于电脑终端Openssl加密解密命令 关于网络安全的数据加密部分, ...
- SSM-SpringMVC-12:SpringMVC中BeanNameViewResolver这种视图解析器
------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 视图解析器,这个很熟悉啊,之间就用过,就是可以简写/和.jsp的InternalResourceViewRes ...
- Intellij IDEA 安装lombok及使用详解
项目中经常使用bean,entity等类,绝大部分数据类类中都需要get.set.toString.equals和hashCode方法,虽然eclipse和idea开发环境下都有自动生成的快捷方式,但 ...
- poj-3522 最小生成树
Description Given an undirected weighted graph G, you should find one of spanning trees specified as ...
- 2个byte类型数据相加(转型问题的分析)
转自https://blog.csdn.net/alinshen/article/details/53571857 今天看到网上有网友问到关于final修饰的面试题目,题目如下: <span s ...
- go语言 nsq源码解读四 nsqlookupd源码options.go、context.go和wait_group_wrapper.go
本节会解读nsqlookupd.go文件中涉及到的其中三个文件:options.go.context.go和wait_group_wrapper.go. options.go 123456789101 ...
- 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个 ...
- BZOJ_3173_[Tjoi2013]最长上升子序列_splay
BZOJ_3173_[Tjoi2013]最长上升子序列_splay Description 给定一个序列,初始为空.现在我们将1到N的数字插入到序列中,每次将一个数字插入到一个特定的位置.每插入一个数 ...
- Scrapy爬虫框架(实战篇)【Scrapy框架对接Splash抓取javaScript动态渲染页面】
(1).前言 动态页面:HTML文档中的部分是由客户端运行JS脚本生成的,即服务器生成部分HTML文档内容,其余的再由客户端生成 静态页面:整个HTML文档是在服务器端生成的,即服务器生成好了,再发送 ...
- 我和Python的Py交易》》》》》》 浮点数的身世字谜
什么是浮点数? 在数据类型中写道,浮点数是带小数点的小数,这个概念是不准确的:浮点数是除了无限不循环小数之外的小数,也就是可以用分数表示的带小数点的数. 好了,浮点数就这些内容,讲完了,各回各家,各找 ...