DOS攻击与防护
•
攻击者
•
正常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
TCP/IP三次握手
发送带确认值的客户端响应
,其值等于接受的序列值
加1
SYN Flood
SYN TCP客户端 客户端端口 (1034~65535) 2 SYN/ACK ACK SYN . . .
1
TCP服务器端
3
服务器端口 (1~1023熟知端 口)
SYN Cookie/SYN Proxy防护
Reset
加入信任
Syn’
syn/ack’ ack’ ack1
ADS
Server
ACK Flood
连接建立
数据传输
TCP客户端
1
DATA ACK 2
TCP服务器端
发送大量的 ACK 包冲击设备 服务器回应 ACK/RST 包,消耗资 源 正常连接ack包承载数据传输,容 易误判 带宽阻塞
数据
ACK-FLood普通算法
为何还 没回应
攻击表象
•
SYN_RECV状态
•
半开连接队列
不能建立正常的连接!
受害者
攻击者
– 遍历,消耗CPU 和内存 – SYN|ACK 重试 – SYN Timeout: 30秒~2分钟
• 无暇理睬正常的连接请求— 拒绝服务
我没发 过请求
DDoS攻击介绍——ACK Flood
ACK Flood 攻击原理
•流量数据所含有的信息: 空间信息:地域,IP地址,AS号, 时间信息:时间片,时间段(时间片整数倍)时,日,月,年 技术指标信息:应用类型,TCP-flag, ToS, 包大小…… 三种信息构成三个维度 数据分析 就是将流量数据分割成一个一个数据立方,从不同的 视角透视数据立方,得出在指定的时间或空间范围内,技术指 标数据对不同维度的分布。
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
Client
存在的问题 – 代理的性能 – 反向探测量数量=攻击包数量,上行 带宽堵死
syn synLeabharlann ack ackSynCookie
Syn’
syn/ack’
ack’
ack1
ack2
ADS
Server
Safereset防护
Client
syn
客户端再次自动发起 SYN的时间3-6秒
syn/ack(特殊的)
流量分析的方法论
指标维度
时间维度
空
间 维
度
流量分析的方法论
流量分析的方法论
•基于流技术的流量分析的有效性探讨: 大流量环境下,分析7层数据很难满足性能要求 流技术提供的信息虽然粗糙,但可以用于效率较高的“初筛” “初筛”与“特异性检验”结合是未来的发展趋势时间信息 对于检测异常流量,流数据所提供的信息是足够,通过统计的 方法可以快速的发现异常流量。 由于流数据中还包含一些镜像/分光数据所没有的信息,如路 由信息、自治域信息、物理端口信息,这些信息对分析流量的 地域分布。 有的用户对信息内容的保密非常重视,镜像/分光数据容易有 可能造成信息泄漏。
查查看表 内有没有
攻击表象
•
ACK (你得查查我连过你没) 你就慢 慢查吧 ACK/RST(我没有连过你呀) 受害者
大量ACK冲击服务器
•
受害者资源消耗
– 查表 – 回应ACK/RST
• ACK Flood流量要较大才会 对服务器造成影响
攻击者
DDoS攻击介绍——Connection Flood
Connection Flood 攻击原理 大量tcp connect
受害者(DB Server)
知己知彼——DOS攻击详解与防护
TCP数据包格式
TCP/IP三次握手
客户端向服务器发送包含初始序 列值的数据段,开启通信会话
TCP/IP三次握手
• 服务器发送包含确认值的数据 段,其值等于收到的序列值加1
,并加上其自身的同步序列值
。该值比序列号大 1,因为 ACK 总是下一个预期字节或二 进制八位数。通过此确认值, 客户端可以将响应和上一次发 送到服务器的数据段联接起来
连接耗尽攻击
ESTABLISHED TCP客户端 客户端端口 (1034~65535) ESTABLISHED ESTABLISHED Time:long long long . . .
TCP服务器端
服务器端口 (1~1023)
连接耗尽防护
1、限制每一个源IP的连接数量,对肉鸡群无效 2、对恶意连接的IP进行封禁。 3、主动清除残余连接。 4、可以对特定的URL进行防护。
• 通过各种手段消耗网络带宽和系统资源 • 攻击系统缺陷,使正常系统的正常服务陷于瘫痪状态
• DDOS攻击是基于DOS攻击的一种特殊形式
– 攻击者将多台受控制的计算机联合起来向目标计算机 发起DOS攻击 – 特点
• 大规模协作的攻击方式
– 对象
• 比较大的商业站点,具有较大的破坏性
DDoS 类型的划分
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报文。
攻击表象
• •
受害者(Web Server)
利用代理服务器向受害者发 起大量HTTP Get请求 主要请求动态页面,涉及到 数据库访问操作 数据库负载以及数据库连接 池负载极高,无法响应正常 请求
攻击者
•
占 用 占 用 占 用
正常用户
DB连接池
DB连接池 用完啦!!
HTTP Get Flood 攻击原理
– DNS Flood
• 网络层 – SYN Flood、ICMP Flood
– 伪造
• 链路层 – ARP 伪造报文
– Connection Flood
– HTTP Get Flood
• 物理层
– 直接线路破坏 – 电磁干扰
DDoS攻击介绍——SYN Flood