DDoS攻击与防御(1)
分布式拒绝服务攻击的精髓是,利用分布式的客户端,向服务提供者发起大量看似合法的请求,消耗或长期占用大量资源,从而达到拒绝服务的目的。
从不同的角度看,分布式拒绝服务攻击的方法有不同的分类标准。
依据消耗目标资源的不同,可分为攻击网络带宽资源、攻击系统资源和攻击应用资源三类。
依据攻击数据包发送的频率和速度来划分,又可以分为洪水攻击和慢速攻击。
1.攻击网络带宽资源
无论是服务器的网络接口带宽,还是路由器、交换机等互联网基础设施,其数据包处理能力都是存在着事实上的上限的,当到达或通过的网络数据包数量超过了这个上限时,就会出现网络拥堵、响应缓慢的情况。
消耗网络带宽资源的DDos攻击就是根据这个原理,利用受控主机发送大量的网络数据包,占满被攻击目标的全部带宽,从而使正常的请求无法得到及时有效的响应,造成拒绝服务。
1.1 直接攻击
1.1.1 ICMP/IGMP洪水攻击
网络控制消息协议ICMP用于在TCP/IP网络中发送控制信息,因特网组管理协议IGMP用于管理因特网协议多播组成员。
攻击者使用受控主机向被攻击目标发送大量的ICMP/IGMP报文,进行洪水攻击以消耗目标的带宽资源。
这种类型的攻击出现得很早,但现在已不多见,被攻击目标可以在其网络边界直接过滤并丢弃ICMP/IGMP数据包使攻击无效。
1.1.2 UDP洪水攻击
用户数据报协议UDP是一种面向无连接的传输层协议,主要用于不要求分组顺序到达的传输目的。
利用UDP数据报文,攻击者可以发动洪水攻击,通常会分为小包和大包两种攻击方式。
小包是指64字节大小的数据包,这是以太网上传输数据帧的最小值。
在相同流量下,单包体积越小,包数量就越多。
由于交换机、路由器等网络设备需要对每一个数据包进行检查和校验,因此使用UDP小包攻击能够最有效地增大网络设备处理数据包的压力,造成处理速度的缓慢和传输延迟等拒绝服务效果。
大包是指1500字节以上的数据包,其大小超过了以太网的MTU最大传输单元,使用UDP大包攻击,能够有效地占用网络接口的传输带宽,并迫使被攻击目标在接收到UDP数据时进行分片重组,造成网络拥堵,服务响应缓慢。
UDP洪水攻击出现得很早,它完全依靠受控主机本身的网络性能,通常对攻击目标带宽资源的消耗并不太大。
1.2 反射和放大攻击
1.2.1 ACK反射攻击
在传输控制协议TCP建立连接时,首先会进行TCP三次握手。
在此过程中,当服务器端接收到客户端发来的SYN连接请求时,会对该请求进行ACK应答。
利用TCP握手的ACK应答,即可进行ACK反射攻击。
如果攻击者将SYN的源IP地址伪造成被攻击目标的IP地址,服务器的应答也就会发送给被攻击目标。
由于使用TCP协议的服务在互联网上广泛存在,攻击者可以通过受控主机向大量不同的服务器发送伪造源IP地址的SYN请求,从而使服务器响应的大量ACK应答数据涌向被攻击目标,占用目标的网络带宽资源并造成拒绝服务。
在发动ACK反射攻击时,首先需要进行扫描,获得大量的反射器地址,并分别向这些反射器发送伪造源地址的SYN请求数据。
ACK反射攻击的优点主要在于能够比较有效地隐藏攻击的来源。
1.2.2 DNS放大攻击
域名系统DNS是因特网的一项核心服务,它将域名和IP地址相互映射。DNS使用TCP/UDP 53端口通信,主要使用UDP协议。
通常,DNS响应数据包会比查询数据包大,因此攻击者利用普通的DNS查询请求就能够发动放大攻击。
在以前,对DNS查询的响应数据包被限制在512字节以内,多余的字节根据实现的不同可能会被丢弃或使用TCP协议建立连接并重传。
后来出现了DNS扩展机制EDNS0扩展了DNS数据包的结构,增加了OPT RR字段。
该字段包含了客户端能够处理的最大UDP报文大小的信息,服务端在响应DNS请求时,根据该字段的大小生成响应报文。
攻击者发送的DNS查询请求数据包大小一般为60字节左右,而查询返回结果的数据包大小通常在3000字节以上。使用该方式进行放大攻击能够达到50倍以上的放大效果。
发动DNS放大攻击需要先进行扫描,获得大量的开放DNS解析器地址,并向这些地址发送伪造源IP的查询命令来放大攻击流量。
1.2.3 NTP放大攻击
网络时间协议NTP用于使计算机与时钟源进行同步和校正,它使用UDP 123端口通信。
NTP协议的monlist请求能够获取与目标NTP服务器进行同步的最近600个客户端的IP地址等信息。
这意味着,只需要发送一个很小的请求包,就能够触发大量连续的UDP响应数据包。
使用该方式进行放大攻击能够达到700倍以上的放大效果。
发动NTP放大攻击需要先进行扫描,获得大量的NTP服务器,并向这些NTP服务器发送伪造源地址的请求来放大攻击流量。
1.2.4 SNMP放大攻击
简单网络管理协议SNMP是目前网络中应用最为广泛的网络管理协议,它使用UDP 161端口通信。
攻击者向广泛存在并开启了SNMP服务的网络设备发送GetBulk请求,使用默认通信字符串作为认证凭据,并将源IP地址伪造成攻击目标的IP地址。
设备收到GetBulk请求后,会将响应结果发送给攻击目标。当大量的响应结果涌向攻击目标时,就会导致攻击目标网络拥堵和缓慢,造成拒绝服务。
使用该方式进行放大攻击能够达到25倍以上的放大效果。
在发动SNMP放大攻击时,需要先进行扫描,获得开放SNMP协议的网络设备,虽然开放SNMP协议的网络设备很多,但是还需要猜测它们使用的默认通信字符串,因此该方式更复杂一些。
DDoS攻击与防御(1)的更多相关文章
- 通过DDOS攻击流程图来浅谈如何预防Ddos攻击与防御
DDOS攻击流程图 站长之家配图(来源:ppkj.net) 一 背景 在前几天,我们运营的某网站遭受了一次ddos攻击,我们的网站是一个公益性质的网站,为各个厂商和白帽子之间搭建一个平台以传递安全问题 ...
- 浅谈 DDoS 攻击与防御
浅谈 DDoS 攻击与防御 原创: iMike 运维之美 什么是 DDoS DDoS 是英文 Distributed Denial of Service 的缩写,中文译作分布式拒绝服务.那什么又是拒 ...
- DDoS 攻击与防御:从原理到实践
本文来自 网易云社区 . 可怕的 DDoS 出于打击报复.敲诈勒索.政治需要等各种原因,加上攻击成本越来越低.效果特别明显等趋势,DDoS 攻击已经演变成全球性的网络安全威胁. 危害 根据卡巴斯基 2 ...
- DDoS 攻击与防御:从原理到实践(下)
欢迎访问网易云社区,了解更多网易技术产品运营经验. DDoS 攻击与防护实践 DDoS 攻击的实现方式主要有如下两种: 自建 DDoS 平台 现在有开源的 DDoS 平台源代码,只要有足够机器和带宽资 ...
- DDoS 攻击与防御:从原理到实践(上)
欢迎访问网易云社区,了解更多网易技术产品运营经验. 可怕的 DDoS 出于打击报复.敲诈勒索.政治需要等各种原因,加上攻击成本越来越低.效果特别明显等趋势,DDoS 攻击已经演变成全球性的网络安全威胁 ...
- 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 什么 ...
- DDoS攻击与防御(4)
在发生DDoS攻击的情况下,可以通过一些缓解技术来减少攻击对自身业务和服务的影响,从而在一定程度上保障业务正常运行.缓解DDoS攻击的主要方法是对网络流量先进行稀释再进行清洗. 1.攻击流量的稀释 1 ...
- DDoS攻击与防御(3)
3.攻击应用资源网络应用和服务在处理数据时,通常需要消耗一定的网络连接.计算和存储资源,这些资源是由应用程序向系统进行申请并自行管理和维护的.消耗应用资源的DDoS攻击就是通过向应用提交大量消耗资源的 ...
- DDoS攻击与防御(2)
2.攻击系统资源终端设备在与服务器进行通信时,经常需要创建会话连接,在此过程中通常会使用TCP和SSL等协议.会话连接一旦被占满,新进入的会话请求就必须等待前面的会话完成.消耗系统资源的DDoS攻击的 ...
随机推荐
- LuoGu P2835 刻录光盘
题目传送门 这个题和消息扩散那个题,一模一样啊 除了数据范围小一点,搜索能过之外,没啥区别 但是我写WA了QwQ不知道为什么 和消息扩散的代码fc/diff了半天也没找出来哪不一样 换了输入就过了反正 ...
- Confluence 6 重构索引缓慢
你的索引构建是否需要很长时间?索引构建需要的时间是由下面的一些因素确定的: 你 Confluence 安装实例中的页面数量. 附件的数量,类型和大小. Confluence 安装实例可用的内存大小. ...
- Flex布局新旧混合写法详解
flex是个非常好用的属性,如果说有什么可以完全代替 float 和 position ,那么肯定是非它莫属了(虽然现在还有很多不支持 flex 的浏览器).然而国内很多浏览器对 Flex 的支持都不 ...
- LeetCode(122):卖股票的最佳时机 II
Easy! 题目描述: 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格. 设计一个算法来计算你所能获取的最大利润.你可以尽可能地完成更多的交易(多次买卖一支股票). 注意:你不能同时参 ...
- GoogLeNet 之 Inception v1 v2 v3 v4
论文地址 Inception V1 :Going Deeper with Convolutions Inception-v2 :Batch Normalization: Accelerating De ...
- 小学生都看得懂的C语言入门(3): 数组与函数
#include <stdio.h> int main() { int x; ; ; scanf("%d",&x){ sum+=x; cnt++; scanf( ...
- hdu4044 依赖背包变形 好题!
由于不是求最大的可拦截的HP值,而是要将最小值最大化,那么就需要分配每个子树用的钱数以达到最小值最大化 第一步解决如何分配钱使得结点u的子树中用了j元钱后可以拦截的HP最大,这就是变形的分组(依赖)背 ...
- bzoj 2150
然后考虑正解 我们发现,最坏情况就是每个点都派驻军队,所以答案至多是“.”的数目 而且,每个点都至多只有一个入度和一个出度,所以我们可以将每个点拆成两个点,一个作为入点,一个作为出点,然后所有图上能到 ...
- php模拟数据请求
php:模拟后台接受数据的步骤<?php> 1.连接数据库 $host="localhost"; $uname="root"; $upwd=&quo ...
- 如何使用VisualSVN Server建立版本库
首先打开VisualSVN Server Manager,如图: 可以在窗口的右边看到版本库的一些信息,比如状态,日志,用户认证,版本库等.要建立版本库,需要右键单击左边窗口的Repositores, ...