被人DDoS攻击了,分析一下原理和防护
一、行业现象
1.1 为什么要攻击?
常见的,一个是同行恶意竞争,一个是敲诈勒索。
无论是传统行业的线下门店,还是互联网行业的门户网站、APP产品,都存在着竞争关系,争相获得更多客源,究其目的,无非是为了赚钱。
1.2 被攻击有什么症状?
传统行业线下门店来讲,你开了一家饭店,正正经经做生意,生意也还不错。这两天经常有一大堆人进饭店,但是不点菜就占着位置不消费,或者动不动有乞丐在门口守着,有人在饭菜里面吃到虫子等等,这就是传统行业的恶意竞争。
互联网行业同理,你的门户网站或者APP产品一直正常运行,也没有做推广导流大量用户,但是系统突然无法访问,或者卡的要死,技术检查说是服务器流量暴增,导致服务器崩溃,阿里云ECS被拉入黑洞,无法访问。
用户无法正常使用你的产品,自然会觉得你的系统不稳定,导致用户流失。
1.3 恶意竞争的对手一般是不会攻击,那他是怎么做到的?
- “发单者”,发起恶意竞争的对手,或者是敲诈勒索的主,即“老板”;
- “攻击者”,收到发单者的订单,通过专业技术手段对目标进行攻击操作,即“项目经理”;
- “肉鸡供应商”,即给攻击者提供资源的供应商,资源即“捣乱者”;
另,本图只是简单介绍攻击产业链,还有其他角色此处就不做详细介绍,后续我们再出专题讨论。
1.4 哪些行业更有可能被攻击?
- 游戏(棋牌、网游私服)类
- 某颜色类网站类
- 金融类
- 虚拟货币类
简单分析下上述类行业,他们至少有一个非常关键的共同点:有钱!
二、常见攻击方式
2.1 DDoS攻击
DDoS攻击是利用网络上被攻陷的电脑作为“肉鸡”,通过一定方式组合形成数量庞大的“僵尸网络”,采用一对多的方式进行控制,向目标系统同时提出服务请求,超出服务器的承载量,导致服务器崩溃的攻击技术。
简单的说,就是你的饭馆最多承载100个客人在店里面消费,当被人家恶意攻击时,突然有很多人往店里挤,不光是从大门进,还有后门,爬窗,各式各样的,导致店里没办法控制,并且人满为患,真正的消费者无法进入饭店消费,最后歇菜。
一般DDoS攻击有 NTP Flood、ICMP Flood、UDP Flood、SYN Flood、DNS Query Flood 等,由于专业描述过于复杂,此处不做详细介绍。
2.2 cc攻击
cc攻击主要分代理cc和肉鸡cc,其目的都是通过控制大量的请求,访问受害主机的合法网页或接口,导致服务端应用层(如java的tomcat)无法正常响应,服务器CPU长时间处于100%状态,网络带宽被占满,数据库被拖死等情况。
简单的说,当你的饭馆被恶意cc攻击时,突然来了很多客人,他们虽然不爬窗不抄后门,但是仍然把你的大门给挤满堵死,真正的客人无法进入,人又多,饭馆的服务员忙不过来,最后歇菜。
这种攻击技术性含量高,见不到真实源IP,见不到特别大的异常流量,但服务器就是无法进行正常连接。所以cc攻击成本也相对高一些,如果不是真的有什么深仇大恨,一般不会持续多久。
三、DDoS攻击防护
3.1 理解DDoS攻击原理
首先我们要知道,最基础的网站部署是怎么实现的,用户通过浏览器访问域名,域名再转发到你的源服务器。
然后我们要了解DDoS攻击原理,他们攻击的,是你的源服务器,也就是你的饭馆门店。因为一般域名都是显示指向服务器的ip,也就是你的门店定位是暴露给客户的,所以攻击者是可以直接找到门店进行攻击。
3.2 前置路由服务器,保护源服务器
所以要防护DDoS攻击第一步,是要保护好我们的源服务器,不让对方知道我们的源服务器地址,即加一个前置路由服务器,一般我们是使用NGINX、Apache等软路由,部署如下图。
3.3 路由服务器被打死怎么办
上述架构图中,只是保证了源服务器不被影响,但是前置路由服务器被打死,用户依然访问不了,所以有的朋友已经想到了,我们再换一个路由服务器,部署如下图。
但这种方式,必须要人工将域名转发配置重新改成新的路由服务器,并且域名转发最慢可能要10分钟,所以存在部分用户短时间内无法正常访问的弊端。
3.4 高富帅的完美做法
前面讲到的多路由服务器的方式,存在明显的体验差的弊端,那么有没有更好的方式呢?当然有,就是费点钱。比如阿里云,就有他们自己的高防服务,20000元包月,打底30G流量,超出的流量按量付费。
举个例子,这个月,你被攻击了5次,每次平均流量时100G,那么也就是说,你要额外再出 70G * 5 * 平均小时 的额外流量费用。(我一个搞游戏的朋友被同行恶意攻击,一个晚上的功夫,就是1万多的超额费用。。。),部署架构图如下。
3.5 想要有阿里云高防IP的服务又想节省成本
阿里云高防IP的做法,其实就是自己做了一套清洗规则,我们百度阿里云高防可以看到,很多竞价排名在前面的都是一些机房,他们的做法跟阿里云的做法原理也是差不多的,并且价格要比阿里云便宜不少,那么靠谱吗?
竞价排名嘛,羊毛出在羊身上,所以对于他们的同行来说,价格肯定也是偏高的,稳不稳定得看口碑了。我们之前做互联网金融的时候,被别人敲诈勒索,最后也是找到一个比较靠谱的机房做的防护,他们24小时在线查处问题,后面也一直处于比较清静的状态。
四、cc攻击防护
4.1 理解cc攻击原理
cc攻击不同于普通的DDoS攻击,玩的是合法的网络请求,也就是说他就是通过域名网页请求过去的,也是因为他本身就不需要绕过门面直接攻击源服务器,那么即使加上普通的前置路由服务器,也是没用的。
既然不需要隐式保护源服务器,那要怎么处理呢?
一般cc攻击都是有策略的,通过识别出当时攻击的策略,防护修改对应的应对策略即可。(当然,没点专业技术能力的,这个应对策略也是做不到的)
4.2 如何找到专业的cc攻击策略防护
同样,也是使用类阿里云的高防IP,当服务器被攻击时,会提示你的服务器当前在被什么策略的cc攻击,对应的人为在高防管理后台修改防护策略即可应对。
另一个就是前面说的机房,他们也是同样的方式,只是因为接入了机房,被攻击的对象就是他们的服务器,所以就让他们机房自己修改策略应对就好了,你只需要观察你的客户是否可以正常访问即可。
五、防护方式用户体验与成本对照表
防护方式 | 用户体验 | 价格成本 | 人工成本 | 稳定程度 |
---|---|---|---|---|
多前置路由服务器 | 部分用户短时间内无法访问,体验差 | 主备模式,备用可以需要时再临时适用,成本较低 | 略高 | 一般 |
阿里云高防IP | 用户体验基本没有感知 | 2万保底30G,成本非常高 | 较少 | 稳定 |
靠谱IDC机房 | 用户体验基本没有影响 | 3千左右保底50G,免费弹性到100G,成本较低 | 较少 | 稳定 |
My Blog
技术交流
被人DDoS攻击了,分析一下原理和防护的更多相关文章
- 浅谈拒绝服务攻击的原理与防御(4):新型DDOS攻击 – Websocket和临时透镜
0×01 前言 前几天我已经分别发了三篇关于DDOS攻击相关的文章,我也是第一次在freebuf上发表这种文章,没想到有那么多人点击我真的很开心,前几天我为大家介绍的DDOS攻击的方法和原理都是已经出 ...
- 高效的DDoS攻击探测与分析工具——FastNetMon
一.简介 FastNetMon这是一个基于多种抓包引擎(NetFlow, IPFIX, sFLOW, netmap, PF_RING, PCAP)的DoS/DDoS攻击高效分析工具,可以探测和分析网络 ...
- 高效的DDoS攻击探测与分析工具 – FastNetMon
快速使用Romanysoft LAB的技术实现 HTML 开发Mac OS App,并销售到苹果应用商店中. <HTML开发Mac OS App 视频教程> 土豆网同步更新:http: ...
- 全年DDoS攻击分析|知道创宇云安全2018年度网络安全态势报告
*本报告由知道创宇云安全出品* 数据来源:知道创宇云防御平台 前言 2018年,网络安全领域暗流涌动,攻击趋势不断攀升,T级DDoS攻击多次爆发.数据泄露事件层出不穷.勒索软件大行其道.此外,随着我国 ...
- ddos攻击和cc攻击的区别和防护!!
什么是DDoS攻击? DDoS攻击就是分布式的拒绝服务攻击,DDoS攻击手段是在传统的DoS攻击基础之上产生的一类攻击方式.单一的DoS攻击一般是采用一对一方式的,随着计算机与网络技术的发展,DoS攻 ...
- DOS、DOS攻击、DDOS攻击、DRDOS攻击
https://baike.baidu.com/item/dos%E6%94%BB%E5%87%BB/3792374?fr=aladdin DOS:中文名称是拒绝服务,一切能引起DOS行为的攻击都被称 ...
- 老板怎么办,我们网站遭到DDoS攻击又挂了?
相信现在正在阅读此文的你,一定听说过发生在上个月的史上最大的DDoS攻击. 美国东部时间2月28日,GitHub在一瞬间遭到高达1.35Tbps的带宽攻击.这次DDoS攻击几乎可以堪称是互联网有史以来 ...
- 几十万学费总结出来的Ddos攻击防护经验!
本人从事网络安全行业十余年年.有十年被骗经验.被骗了很多回(都说能防300G,500G,买完就防不住了),本文当然重点给大家说明,ddos攻击是什么,中小企业如何防护,用到成本等. 言归正传 首先我们 ...
- DDoS攻击与防御(1)
分布式拒绝服务攻击的精髓是,利用分布式的客户端,向服务提供者发起大量看似合法的请求,消耗或长期占用大量资源,从而达到拒绝服务的目的.从不同的角度看,分布式拒绝服务攻击的方法有不同的分类标准.依据消耗目 ...
随机推荐
- sqlmap之waf绕过
#一点补充 在老版本的安全狗中,可通过构造payload: http://xx.xx.xx.xx/sqli-labs/Less-2/index.php/x.txt?id=1 and 1=1 可通过in ...
- python编程笔记--字符编码
ASCII码.Unicode.utf-8 ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电 ...
- leetcode刷题1--动态规划法回文串2
题目是: Given a string s,partition s such that every substring of the partition is a palindrome Return ...
- POI Excel索引是从0还是1开始??
this.workbook.getSheetAt(1).getFirstRowNum() // == 0 this.workbook.getSheetAt(1).getLastRowNum() // ...
- 在 Spring中如何注入一个java集合?
Spring提供以下几种集合的配置元素: 类型用于注入一列值,允许有相同的值. 类型用于注入一组值,不允许有相同的值. 类型用于注入一组键值对,键和值都可以为任意类型. 类型用于注入一组键值对,键和值 ...
- try{}里有一个return语句,那么紧跟在这个try后的finally{}里的代码会不会被执行,什么时候被执行,在return前还是后?
答:会执行,在方法返回调用者前执行.
- 什么时候用断言(assert)?
答:断言在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制.一般来说,断言用于保证程序最基本.关键的正确性.断言检查通常在开发和测试时开启.为了保证程序的执行效率,在软件发布后断言检查通常 ...
- 怎样在方法里面得到Request,或者Session?
直接在方法的形参中声明request,SpringMvc就自动把request对象传入.
- 转载:2017百度春季实习生五道编程题[全AC]
装载至:https://blog.csdn.net/zmdsjtu/article/details/70880761 1[编程题]买帽子 时间限制:1秒空间限制:32768K度度熊想去商场买一顶帽子, ...
- 在并发情况下,Elasticsearch 如果保证读写一致?
1.可以通过版本号使用乐观并发控制,以确保新版本不会被旧版本覆盖,由应用 层来处理具体的冲突: 2.另外对于写操作,一致性级别支持 quorum/one/all,默认为 quorum,即只 有当大多数 ...