DOS攻击与防护
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
DOS攻击与防护
www.nsfocus.com nsfocus.com
© 2013 绿盟科技
目录
1 简单探索——DOS的分类和简介
2 知己知彼——DOS攻击详解与防护
3 居家旅行必备——抓包分析
简单探索——DOS分类和简介
• DOS攻击和防护
– DOS攻击在众多的网络攻击技术中是一种简单有效并 且具有很大危害性的攻击方法 – 目的特点:
• 通过各种手段消耗网络带宽和系统资源 • 攻击系统缺陷,使正常系统的正常服务陷于瘫痪状态
• DDOS攻击是基于DOS攻击的一种特殊形式
– 攻击者将多台受控制的计算机联合起来向目标计算机 发起DOS攻击 – 特点
• 大规模协作的攻击方式
– 对象
• 比较大的商业站点,具有较大的破坏性
DDoS 类型的划分
攻击类型划分I 攻击类型划分II • 应用层 – 垃圾邮件、病毒邮件
• 堆栈突破型(利用主机/设备漏洞) – 远程溢出拒绝服务攻击 • 网络流量型(利用网络通讯协议) – SYN Flood – ACK Flood – ICMP Flood – UDP Flood、UDP Query Flood DNS
– DNS Flood
• 网络层 – SYN Flood、ICMP Flood
– 伪造
• 链路层 – ARP 伪造报文
– Connection Flood
– HTTP Get Flood
• 物理层
– 直接线路破坏 – 电磁干扰
DDoS攻击介绍——SYN Flood
SYN Flood 攻击原理
伪造地址进行SYN 请求 SYN (我可以连接吗?) 就是让 你白等
为何还 没回应
攻击表象
•
SYN_RECV状态
•
半开连接队列
不能建立正常的连接!
受害者
攻击者
– 遍历,消耗CPU 和内存 – SYN|ACK 重试 – SYN Timeout: 30秒~2分钟
• 无暇理睬正常的连接请求— 拒绝服务
我没发 过请求
DDoS攻击介绍——ACK Flood
ACK Flood 攻击原理
查查看表 内有没有
攻击表象
•
ACK (你得查查我连过你没) 你就慢 慢查吧 ACK/RST(我没有连过你呀) 受害者
大量ACK冲击服务器
•
受害者资源消耗
– 查表 – 回应ACK/RST
• ACK Flood流量要较大才会 对服务器造成影响
攻击者
DDoS攻击介绍——Connection Flood
Connection Flood 攻击原理 大量tcp connect
正常tcp connect 正常tcp connect 正常tcp connect 正常tcp connect 正常tcp connect 这么多?
攻击表象
•
利用真实 IP 地址(代理服 务器、广告页面)在服务器 上建立大量连接 服务器上残余连接(WAIT状 态 ) 过多,效率降低,甚至 资源耗尽,无法响应 蠕虫传播过程中会出现大 量源IP地址相同的包,对于 TCP 蠕虫则表现为大范围扫 描行为 消耗骨干设备的资源 , 如 防火墙的连接数
•
攻击者
•
正常tcp connect
受害者
正常用户 不能建立正常的连接
•
DDoS攻击介绍——HTTP Get Flood
正常HTTP Get请求
正常HTTP 正常HTTP 正常HTTP 正常HTTP 正常HTTP 正常HTTP Get Get Get Get Get Get Flood Flood Flood Flood Flood Flood
攻击表象
• •
受害者(Web Server)
利用代理服务器向受害者发 起大量HTTP Get请求 主要请求动态页面,涉及到 数据库访问操作 数据库负载以及数据库连接 池负载极高,无法响应正常 请求
攻击者
•
占 用 占 用 占 用
正常用户
DB连接池
DB连接池 用完啦!!
HTTP Get Flood 攻击原理
受害者(DB Server)
知己知彼——DOS攻击详解与防护
TCP数据包格式
TCP/IP三次握手
客户端向服务器发送包含初始序 列值的数据段,开启通信会话
TCP/IP三次握手
• 服务器发送包含确认值的数据 段,其值等于收到的序列值加1
,并加上其自身的同步序列值
。该值比序列号大 1,因为 ACK 总是下一个预期字节或二 进制八位数。通过此确认值, 客户端可以将响应和上一次发 送到服务器的数据段联接起来
TCP/IP三次握手
发送带确认值的客户端响应
,其值等于接受的序列值
加1
SYN Flood
SYN TCP客户端 客户端端口 (1034~65535) 2 SYN/ACK ACK SYN . . .
1
TCP服务器端
3
服务器端口 (1~1023熟知端 口)
SYN Cookie/SYN Proxy防护
Client
存在的问题 – 代理的性能 – 反向探测量数量=攻击包数量,上行 带宽堵死
syn syn/ack ack
SynCookie
Syn’
syn/ack’
ack’
ack1
ack2
ADS
Server
Safereset防护
Client
syn
客户端再次自动发起 SYN的时间3-6秒
syn/ack(特殊的)
Reset
加入信任
Syn’
syn/ack’ ack’ ack1
ADS
Server
ACK Flood
连接建立
数据传输
TCP客户端
1
DATA ACK 2
TCP服务器端
发送大量的 ACK 包冲击设备 服务器回应 ACK/RST 包,消耗资 源 正常连接ack包承载数据传输,容 易误判 带宽阻塞
数据
ACK-FLood普通算法
Client
存在的问题 -会话中断1次
ack
断开连接
SYN防御算法
syn'
Syn’ syn/ack’ ack’ ack1
ADS
Server
ACK-FLood高级防御算法
Client ACK-FLood攻击
ack1
ack
加入信任
进入防御状态 查无此人
存在的问题 -攻击开始后启用无效 -必须攻击开始前进行学习
syn'
SYN防御算法
Client
ack
具备信任
ADS
Server
UDP Flood
TCP客户端
UDP
1
TCP服务器端
IP:随机 流量:大 包:小包
UDP,无连接状态的防御
1、限速 2、报文内容特征--模式匹配 3、IP特征—ACL 4、随机丢包
ICMP Flood
ICMP Flood 的攻击原理和ACK Flood原理类似,属 于流量型的攻击方式,也是利用大的流量给服务器 带来较大的负载,影响服务器的正常服务。由于目 前很多防火墙直接过滤ICMP报文,因此ICMP Flood 出现的频度较低。 防护:其防御也很简单,直接过滤ICMP报文。
连接耗尽攻击
ESTABLISHED TCP客户端 客户端端口 (1034~65535) ESTABLISHED ESTABLISHED Time:long long long . . .
TCP服务器端
服务器端口 (1~1023)
连接耗尽防护
1、限制每一个源IP的连接数量,对肉鸡群无效 2、对恶意连接的IP进行封禁。 3、主动清除残余连接。 4、可以对特定的URL进行防护。
HTTP GET Flood
ESTABLISHED TCP客户端 客户端端口 (1034~65535) ESTABLISHED ESTABLISHED . . . TCP服务器端
调用数据库页面
肉鸡Http get可三次握手 代理服务器发起
MSSQL MYSQL ORACLE
图形验证码防护
脚本解析防护
智力型
名称
描述 极低的速录往服务器发送HTTP请求。由于 Web Server对于并发的连接数都有一定的 上限,因此若是恶意地占用住这些连接不 释放,那么Web Server的所有连接都将被 恶意连接占用,从而无法接受新的连接, 导致拒绝服务
防御 限制连接数:比如在APACHE 中由MaxClients的值定义。
Slowloris
类似Slowloris,指定Content-Length的值。 限制连接数 HTTP POST DOS
Server Limit DOS
Cookie过长造成的拒绝服务
调整Apache配置参数 LimitRequestFieldSize
面对DDOS攻击的策略方法
流量分析方法
流量分析的方法论
•流量数据所含有的信息: 空间信息:地域,IP地址,AS号, 时间信息:时间片,时间段(时间片整数倍)时,日,月,年 技术指标信息:应用类型,TCP-flag, ToS, 包大小…… 三种信息构成三个维度 数据分析 就是将流量数据分割成一个一个数据立方,从不同的 视角透视数据立方,得出在指定的时间或空间范围内,技术指 标数据对不同维度的分布。
流量分析的方法论
指标维度
时间维度
空
间 维
度
流量分析的方法论
流量分析的方法论
•基于流技术的流量分析的有效性探讨: 大流量环境下,分析7层数据很难满足性能要求 流技术提供的信息虽然粗糙,但可以用于效率较高的“初筛” “初筛”与“特异性检验”结合是未来的发展趋势时间信息 对于检测异常流量,流数据所提供的信息是足够,通过统计的 方法可以快速的发现异常流量。 由于流数据中还包含一些镜像/分光数据所没有的信息,如路 由信息、自治域信息、物理端口信息,这些信息对分析流量的 地域分布。 有的用户对信息内容的保密非常重视,镜像/分光数据容易有 可能造成信息泄漏。
NetFlow定义 由7个独立关键字定义:
•源 IP 地址 •目的 IP 地址 •源端口 •目的端口 •第三层协议类型 •TOS 字节 (DSCP) •输入逻辑端口 (端口索引号)
输出数据
NetFlow的生成
Create and update flows in NetFlow Cache
SrcIPadd SrcIPadd 173.100.21.2 173.100.21.2 173.100.3.2 173.100.3.2 173.100.20.2 173.100.20.2 173.100.6.2 173.100.6.2 173.100.7.2 DstIf DstIf Fa0/0 Fa0/0 Fa0/0 Fa0/0 Fa0/0 Fa0/0 Fa0/0 Fa0/0 Fa0/0 DstIPadd DstIPadd 10.0.227.12 10.0.227.12 10.0.227.12 10.0.227.12 10.0.227.12 10.0.227.12 10.0.227.12 10.0.227.12 10.0.227.12 Protocol Protocol 11 11 6 6 11 11 6 6 1 TOS TOS 80 80 40 40 80 80 40 40 80 Flgs Flgs 10 10 0 0 10 10 0 0 0 Pkts Pkts 11000 11000 2491 2491 10000 10010 2210 2210 3456 SrcPort SrcPort 00A2 00A2 15 15 00A1 00A1 19 19 41 SrcMsk SrcAS SrcAS SrcMsk /24 5 /24 5 /26 196 /26 196 /24 180 /24 180 /30 180 /30 180 /24 180 DstPort DstPort 00A2 00A2 15 15 00A1 00A1 19 19 41 DstMsk DstAS DstAS DstMsk /24 15 /24 15 /24 15 /24 15 /24 15 /24 15 /24 15 /24 15 /24 15 NextHop Bytes/Pkt Bytes/Pkt NextHop 10.0.23.2 1528 1528 10.0.23.2 10.0.23.2 740 740 10.0.23.2 10.0.23.2 1430 1428 10.0.23.2 10.0.23.2 1040 1040 10.0.23.2 10.0.23.2 1140 Active Active 1745 1745 41.5 41.5 1145.5 1145.5 24.5 24.5 34.5 Idle Idle 44 11 33 14 14 1
1.
SrcIf SrcIf Fa1/0 Fa1/0 Fa1/0 Fa1/0 Fa1/0 Fa1/0 Fa1/0 Fa1/0 Fa1/0
www.nsfocus.com nsfocus.com
© 2013 绿盟科技
目录
1 简单探索——DOS的分类和简介
2 知己知彼——DOS攻击详解与防护
3 居家旅行必备——抓包分析
简单探索——DOS分类和简介
• DOS攻击和防护
– DOS攻击在众多的网络攻击技术中是一种简单有效并 且具有很大危害性的攻击方法 – 目的特点:
• 通过各种手段消耗网络带宽和系统资源 • 攻击系统缺陷,使正常系统的正常服务陷于瘫痪状态
• DDOS攻击是基于DOS攻击的一种特殊形式
– 攻击者将多台受控制的计算机联合起来向目标计算机 发起DOS攻击 – 特点
• 大规模协作的攻击方式
– 对象
• 比较大的商业站点,具有较大的破坏性
DDoS 类型的划分
攻击类型划分I 攻击类型划分II • 应用层 – 垃圾邮件、病毒邮件
• 堆栈突破型(利用主机/设备漏洞) – 远程溢出拒绝服务攻击 • 网络流量型(利用网络通讯协议) – SYN Flood – ACK Flood – ICMP Flood – UDP Flood、UDP Query Flood DNS
– DNS Flood
• 网络层 – SYN Flood、ICMP Flood
– 伪造
• 链路层 – ARP 伪造报文
– Connection Flood
– HTTP Get Flood
• 物理层
– 直接线路破坏 – 电磁干扰
DDoS攻击介绍——SYN Flood
SYN Flood 攻击原理
伪造地址进行SYN 请求 SYN (我可以连接吗?) 就是让 你白等
为何还 没回应
攻击表象
•
SYN_RECV状态
•
半开连接队列
不能建立正常的连接!
受害者
攻击者
– 遍历,消耗CPU 和内存 – SYN|ACK 重试 – SYN Timeout: 30秒~2分钟
• 无暇理睬正常的连接请求— 拒绝服务
我没发 过请求
DDoS攻击介绍——ACK Flood
ACK Flood 攻击原理
查查看表 内有没有
攻击表象
•
ACK (你得查查我连过你没) 你就慢 慢查吧 ACK/RST(我没有连过你呀) 受害者
大量ACK冲击服务器
•
受害者资源消耗
– 查表 – 回应ACK/RST
• ACK Flood流量要较大才会 对服务器造成影响
攻击者
DDoS攻击介绍——Connection Flood
Connection Flood 攻击原理 大量tcp connect
正常tcp connect 正常tcp connect 正常tcp connect 正常tcp connect 正常tcp connect 这么多?
攻击表象
•
利用真实 IP 地址(代理服 务器、广告页面)在服务器 上建立大量连接 服务器上残余连接(WAIT状 态 ) 过多,效率降低,甚至 资源耗尽,无法响应 蠕虫传播过程中会出现大 量源IP地址相同的包,对于 TCP 蠕虫则表现为大范围扫 描行为 消耗骨干设备的资源 , 如 防火墙的连接数
•
攻击者
•
正常tcp connect
受害者
正常用户 不能建立正常的连接
•
DDoS攻击介绍——HTTP Get Flood
正常HTTP Get请求
正常HTTP 正常HTTP 正常HTTP 正常HTTP 正常HTTP 正常HTTP Get Get Get Get Get Get Flood Flood Flood Flood Flood Flood
攻击表象
• •
受害者(Web Server)
利用代理服务器向受害者发 起大量HTTP Get请求 主要请求动态页面,涉及到 数据库访问操作 数据库负载以及数据库连接 池负载极高,无法响应正常 请求
攻击者
•
占 用 占 用 占 用
正常用户
DB连接池
DB连接池 用完啦!!
HTTP Get Flood 攻击原理
受害者(DB Server)
知己知彼——DOS攻击详解与防护
TCP数据包格式
TCP/IP三次握手
客户端向服务器发送包含初始序 列值的数据段,开启通信会话
TCP/IP三次握手
• 服务器发送包含确认值的数据 段,其值等于收到的序列值加1
,并加上其自身的同步序列值
。该值比序列号大 1,因为 ACK 总是下一个预期字节或二 进制八位数。通过此确认值, 客户端可以将响应和上一次发 送到服务器的数据段联接起来
TCP/IP三次握手
发送带确认值的客户端响应
,其值等于接受的序列值
加1
SYN Flood
SYN TCP客户端 客户端端口 (1034~65535) 2 SYN/ACK ACK SYN . . .
1
TCP服务器端
3
服务器端口 (1~1023熟知端 口)
SYN Cookie/SYN Proxy防护
Client
存在的问题 – 代理的性能 – 反向探测量数量=攻击包数量,上行 带宽堵死
syn syn/ack ack
SynCookie
Syn’
syn/ack’
ack’
ack1
ack2
ADS
Server
Safereset防护
Client
syn
客户端再次自动发起 SYN的时间3-6秒
syn/ack(特殊的)
Reset
加入信任
Syn’
syn/ack’ ack’ ack1
ADS
Server
ACK Flood
连接建立
数据传输
TCP客户端
1
DATA ACK 2
TCP服务器端
发送大量的 ACK 包冲击设备 服务器回应 ACK/RST 包,消耗资 源 正常连接ack包承载数据传输,容 易误判 带宽阻塞
数据
ACK-FLood普通算法
Client
存在的问题 -会话中断1次
ack
断开连接
SYN防御算法
syn'
Syn’ syn/ack’ ack’ ack1
ADS
Server
ACK-FLood高级防御算法
Client ACK-FLood攻击
ack1
ack
加入信任
进入防御状态 查无此人
存在的问题 -攻击开始后启用无效 -必须攻击开始前进行学习
syn'
SYN防御算法
Client
ack
具备信任
ADS
Server
UDP Flood
TCP客户端
UDP
1
TCP服务器端
IP:随机 流量:大 包:小包
UDP,无连接状态的防御
1、限速 2、报文内容特征--模式匹配 3、IP特征—ACL 4、随机丢包
ICMP Flood
ICMP Flood 的攻击原理和ACK Flood原理类似,属 于流量型的攻击方式,也是利用大的流量给服务器 带来较大的负载,影响服务器的正常服务。由于目 前很多防火墙直接过滤ICMP报文,因此ICMP Flood 出现的频度较低。 防护:其防御也很简单,直接过滤ICMP报文。
连接耗尽攻击
ESTABLISHED TCP客户端 客户端端口 (1034~65535) ESTABLISHED ESTABLISHED Time:long long long . . .
TCP服务器端
服务器端口 (1~1023)
连接耗尽防护
1、限制每一个源IP的连接数量,对肉鸡群无效 2、对恶意连接的IP进行封禁。 3、主动清除残余连接。 4、可以对特定的URL进行防护。
HTTP GET Flood
ESTABLISHED TCP客户端 客户端端口 (1034~65535) ESTABLISHED ESTABLISHED . . . TCP服务器端
调用数据库页面
肉鸡Http get可三次握手 代理服务器发起
MSSQL MYSQL ORACLE
图形验证码防护
脚本解析防护
智力型
名称
描述 极低的速录往服务器发送HTTP请求。由于 Web Server对于并发的连接数都有一定的 上限,因此若是恶意地占用住这些连接不 释放,那么Web Server的所有连接都将被 恶意连接占用,从而无法接受新的连接, 导致拒绝服务
防御 限制连接数:比如在APACHE 中由MaxClients的值定义。
Slowloris
类似Slowloris,指定Content-Length的值。 限制连接数 HTTP POST DOS
Server Limit DOS
Cookie过长造成的拒绝服务
调整Apache配置参数 LimitRequestFieldSize
面对DDOS攻击的策略方法
流量分析方法
流量分析的方法论
•流量数据所含有的信息: 空间信息:地域,IP地址,AS号, 时间信息:时间片,时间段(时间片整数倍)时,日,月,年 技术指标信息:应用类型,TCP-flag, ToS, 包大小…… 三种信息构成三个维度 数据分析 就是将流量数据分割成一个一个数据立方,从不同的 视角透视数据立方,得出在指定的时间或空间范围内,技术指 标数据对不同维度的分布。
流量分析的方法论
指标维度
时间维度
空
间 维
度
流量分析的方法论
流量分析的方法论
•基于流技术的流量分析的有效性探讨: 大流量环境下,分析7层数据很难满足性能要求 流技术提供的信息虽然粗糙,但可以用于效率较高的“初筛” “初筛”与“特异性检验”结合是未来的发展趋势时间信息 对于检测异常流量,流数据所提供的信息是足够,通过统计的 方法可以快速的发现异常流量。 由于流数据中还包含一些镜像/分光数据所没有的信息,如路 由信息、自治域信息、物理端口信息,这些信息对分析流量的 地域分布。 有的用户对信息内容的保密非常重视,镜像/分光数据容易有 可能造成信息泄漏。
NetFlow定义 由7个独立关键字定义:
•源 IP 地址 •目的 IP 地址 •源端口 •目的端口 •第三层协议类型 •TOS 字节 (DSCP) •输入逻辑端口 (端口索引号)
输出数据
NetFlow的生成
Create and update flows in NetFlow Cache
SrcIPadd SrcIPadd 173.100.21.2 173.100.21.2 173.100.3.2 173.100.3.2 173.100.20.2 173.100.20.2 173.100.6.2 173.100.6.2 173.100.7.2 DstIf DstIf Fa0/0 Fa0/0 Fa0/0 Fa0/0 Fa0/0 Fa0/0 Fa0/0 Fa0/0 Fa0/0 DstIPadd DstIPadd 10.0.227.12 10.0.227.12 10.0.227.12 10.0.227.12 10.0.227.12 10.0.227.12 10.0.227.12 10.0.227.12 10.0.227.12 Protocol Protocol 11 11 6 6 11 11 6 6 1 TOS TOS 80 80 40 40 80 80 40 40 80 Flgs Flgs 10 10 0 0 10 10 0 0 0 Pkts Pkts 11000 11000 2491 2491 10000 10010 2210 2210 3456 SrcPort SrcPort 00A2 00A2 15 15 00A1 00A1 19 19 41 SrcMsk SrcAS SrcAS SrcMsk /24 5 /24 5 /26 196 /26 196 /24 180 /24 180 /30 180 /30 180 /24 180 DstPort DstPort 00A2 00A2 15 15 00A1 00A1 19 19 41 DstMsk DstAS DstAS DstMsk /24 15 /24 15 /24 15 /24 15 /24 15 /24 15 /24 15 /24 15 /24 15 NextHop Bytes/Pkt Bytes/Pkt NextHop 10.0.23.2 1528 1528 10.0.23.2 10.0.23.2 740 740 10.0.23.2 10.0.23.2 1430 1428 10.0.23.2 10.0.23.2 1040 1040 10.0.23.2 10.0.23.2 1140 Active Active 1745 1745 41.5 41.5 1145.5 1145.5 24.5 24.5 34.5 Idle Idle 44 11 33 14 14 1
1.
SrcIf SrcIf Fa1/0 Fa1/0 Fa1/0 Fa1/0 Fa1/0 Fa1/0 Fa1/0 Fa1/0 Fa1/0