绿盟科技 www.nsfocus.com © 2011 绿盟科技
拒绝服务攻击
1 脆弱的互联网
3 常见拒绝服务攻击行为
2 拒绝服务攻击基础知识
4 如何组织大规模的拒绝服务攻击
5 拒绝服务攻击
检测
工程第三方检测合同工程防雷检测合同植筋拉拔检测方案传感器技术课后答案检测机构通用要求培训
和防御
脆弱的互联网
DDoS 攻击变得越来越普遍
•有意识的攻击
– Yahoo、ebay 等网站被拒绝服务攻击,
累计损失12亿美元
– 2001年 CERT 被拒绝服务攻击
– 2002年 Microsoft被DDoS攻击,造成
约5000万美元损失
– 2002年 CNNIC 被拒绝服务攻击
– 2003年 全球13台根 DNS 中有8台被
大规模拒绝服务
– 有组织、有预谋的涉及金钱利益的拒
绝攻击出现
DDoS攻击发展趋势
行为特征 攻击规模
承载协议
• 目标
– 网站-〉网络基础设施(路由器/交换机
/DNS等)
• 流量
– 从几兆-〉几十兆-〉1G甚至更高
– 10K pps--〉100K pps -〉1M pps
• 技术
– 真实IP地址-〉IP欺骗技术
– 单一攻击源-〉多个攻击源
– 简单协议承载-〉复杂协议承载
– 智能化,试图绕过IDS或FW
• 形式
– DRDoS/ACK Flood
– Zombie Net/BOTNET
– Proxy Connection Flood
– DNS Flood
拒绝服务攻击基础知识
什么是DDoS
• DDoS概念( Distributed Denial of Service)
– 服务( Service)
• 系统提供从而为用户服务的功能
– 拒绝服务( Denial of Service )
• 任何对服务的干扰从而使其可用性降低乃至失去可用性的行为
• TCP/IP协议栈的无偏差传送数据的特性为拒绝服务提供了可能性
• 如何找到并且利用系统瓶颈成为了关键(木桶原理)
– 分布式拒绝服务攻击( Distributed Denial of Service)
• 一个或多个攻击者控制处于不同位置的多台机器同时对攻击者实施攻击行为
拒绝服务攻击现象
• 拒绝服务攻击可能出现在从物理层至应用层中的任意一层
攻击者
正常用户
受害者
设备损坏、服务中止、资源消耗
物理破坏
僵尸网络
傀儡机
无
法
正
常
访
问
常见拒绝服务攻击行为
• WinNuke
• 碎片攻击
• Land攻击
• Ping of Death
堆栈突破型(利用主机/设备漏洞)
• SYN Flood
• ACK Flood
• ICMP Flood
• UDP DNS Query Flood
• Connection Flood
HTTP Get Flood
资源消耗型(利用网络通讯协议)
攻击类型划分
• 垃圾邮件、病毒邮件
• DNS Flood
应用层
• Syn-Flood、ICMP Flood
• 伪造
网络层
• ARP伪造报文
链路层
• 直接线路破坏
• 电磁干扰
物理层
攻击类型划分(Cont)
Direct DDoS Attack
控制主机
From: Xi (spoofed)
To: Victim V
…
attack packet
From: Xi (spoofed)
To: Agent Ai
…
control packet
From: 攻击者
To: 控制主机
…
control packet
Bot
攻击者
受害者
amplification
network
Reflectors Ri
Reflector DDoS Attack(DRDoS)
Bot
From: V (spoofed)
To: Reflector Ri
…
attack trigger packet
From: Xi (spoofed)
To: Agent Ai
…
control packet
From: Xi (spoofed)
To: Master Mi
…
control packet
From: Ri
To: Victim V
…
attack packet
控制主机
Note: Reflectors are
NOT compromised.
They simply answer
requests.
欺骗
攻击者
受害者
DDoS攻击步骤
攻击者
受害者
Step 1 获取目标信息
僵尸网络
Whois
Nslookup
Google
Traceroute
Scan
Step 2 占领傀儡主机
溢出提权
注入攻击
蠕虫
购买Bot
雇用Botnet
Step 3 发起攻击
堆栈破坏
SYN-Flood
CC
…………
受害者
WinNuke攻击
攻击者
攻击原理
• 利用漏洞
– Windows系统TCP/IP
OOB带外紧急数据拒
绝服务攻击漏洞
• 影响系统
– Windows NT 3.5
– Windows 95
• 攻击效果
– 攻击端口通常为139
– 被攻击服务器蓝屏
• 变种攻击
– WinNuke2
– Pnuke
• 防护方法
– 防火墙过滤
– 打补丁
URG=1
碎片攻击(TearDrop)
攻击原理
• 利用漏洞
– Windows/Linux系统
内核碎片重组远程拒
绝服务攻击漏洞
• 影响系统
– Linux(1.x-2.0x)
– Windows NT/95
• 攻击效果
– 堆栈损坏
– 系统挂起
• 攻击工具
– TearDrop、Bonk
• 防护方法
– 防火墙过滤
– 打补丁
碎片攻击(TearDrop)
150Byte
分片
120Byte 30Byte
120Byte
30Byte
偏移1=0
偏移2=120
150Byte
分片
120Byte 30Byte
120Byte
30Byte
偏移1=0
偏移2=80
X=(偏移2+包长2)-包长1=?
重组 重组 X X
碎片攻击(Ping of Death)
攻击原理
• 利用漏洞
– 路由器、操作系统的
ICMP Bug
• 影响系统
– 某些路由器
– Windows NT/95
• 攻击效果
– 内存分配错误
– TCP/IP堆栈崩溃
• 攻击工具
– Ssping、jolt、
IceNewk等
• 防护方法
– 防火墙过滤
– 系统升级
Land攻击
受害者
攻击者
跟自己建立连接?
攻击原理
• 利用漏洞
– 系统对具有相同的目的和
源IP以及SYN标致设置的
IP包不适当的处理。
• 影响系统
– Windows XP SP2
– Windows Server 2003
– Unix
• 攻击效果
– 15-30秒的DoS
– explorer僵死
– CPU使用率达到100%
• 攻击工具
– LaTierra.c、land5.exe
• 防护方法
– 打补丁
LA
N
D
攻
击
Src IP=Det IP
Src Port=Det Port
循环攻击
受害者A
攻击者
受害者B
冒充A向B发送一
个UDPEcho请求
怎么这
么多A的
UDP包?
怎么这
么多B的
UDP包?
建立了一个无限的连接
攻击原理
• 利用漏洞
• 影响系统
• 攻击效果
– 产生大量无用包
– 阻塞带宽
• 攻击工具
– LaTierra.c、land5.exe
• 防护方法
– 过滤特定的包
– 关闭不需要的服务,如
UDP Chargen、UDP
Echo、Time、Daytime
等
SYN-Flood攻击
我没
发过
请求
• SYN_RECV状态
• 半开连接队列
– 遍历,消耗CPU和内存
– SYN|ACK 重试
– SYN Timeout:30秒~2分
钟
• 无暇理睬正常的连接请求—拒绝
服务
SYN (我可以连接吗?)
攻击者
受害者
伪造地址进行SYN 请求
为何还
没回应 就是让
你白等
不能建立正常的连接!
攻击
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
象
SYN-Flood攻击
• 伪造地址进行SYN请求,产生半开连接
• 服务器消耗大量的资源(内存为主)维护半开连接表
• 表现为netstat –an 看到大量的SYN_RECV(>500或总连接数的10%)
• 大多数的服务器在 20Mbps/4wpps情况下基本瘫痪
ACK-Flood
• 大量ACK冲击服务器
• 受害者资源消耗
– 查表
– 回应ACK/RST
• ACK Flood流量要较大才会对服
务器造成影响
ACK (你得查查我连过你没)
攻击者
受害者
查查看表
内有没有
你就慢
慢查吧
ACK Flood 攻击原理 攻击表象
ACK/RST(我没有连过你呀)
Connection-Flood攻击
攻击者
受害者
大量tcp connect
这么多?
不能建立正常的连接
正常tcp connect
正常用户
正常tcp connect
攻击表象
正常tcp connect
正常tcp connect
正常tcp connect
正常tcp connect
• 利用真实 IP 地址(代理服务器、
广告页面)在服务器上建立大量
连接
• 服务器上残余连接(WAIT状态)
过多,效率降低,甚至资源耗尽,
无法响应
• 蠕虫传播过程中会出现大量源IP
地址相同的包,对于 TCP 蠕虫
则表现为大范围扫描行为
• 消耗骨干设备的资源,如防火墙
的连接数
HTTP Get Flood
攻击者
受害者(Web Server)
正常HTTP Get请求
正常HTTP Get Flood
正常用户
攻击表象
• 利用代理服务器向受害者发起大
量HTTP Get请求
• 主要请求动态页面,涉及到数据
库访问操作
• 数据库负载以及数据库连接池负
载极高,无法响应正常请求
正常HTTP Get Flood
正常HTTP Get Flood
正常HTTP Get Flood
正常HTTP Get Flood
正常HTTP Get Flood
受害者(DB Server)
DB连接池
用完啦!!
DB连接池
占
用
占
用
占
用
反射攻击-Smurf攻击
攻击者
受害者
伪造受害者的源地址发送
ICMP ECHO到广播地址
攻击表象
• 在局域网中的攻击手段,它的作用
原理是基于广播地址与回应请求。
• 防御方法:在路由器上进行设置,
在收到定向广播数据包时将其丢弃。
internet
DNS DDoS
拒绝服务攻击检测和防御
拒绝服务攻击的现象
• 异常现象1:
– 出现明显超出正常工作时的极限通信流量。
拒绝服务攻击的现象
• 异常现象2
– netstat –na,观察到大量的SYN_RECEIVED的连接状
态。
– Snnifer抓包发现存在大量的SYN-ACK数据包。
拒绝服务攻击的现象
• 异常现象3:
– 网络中出现特大型的ICMP和UDP数据包。
拒绝服务攻击的现象
• 异常现象4:
– 服务器负载很高
– 链接数据库失败
– 通过“Netstat –es”查看,服务器的建立连接数超过
正常水平。连接状态(netstat –an)出现较多的
TIME_WAIT。
拒绝服务攻击的现象
• 异常现象5:
– 数据段内容只包含文字和数字字符(例如,没有空格、
标点和控制字 符)的数据包。TFN2K发送的控制信息
数据包就是这种类型的数据包。
拒绝服务攻击的现象
• 异常现象6
– 检测到大量的ICMP不可达消息,这是因为攻击者利用
伪造的数据包对你的网络进行攻击,而你的系统响应
这些伪造数据包后,哪些作为相应的数据包无法送达
目的。(可能是攻击者伪造了没有主机或者主机没有
活动的IP地址)
常见的检测方式
• 基于SNMP的流量监控系统
• 基于Netflow的流量
分析
定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析
系统
• 基于SPAN的流量分析系统
• 用户申告
监控手段对比
监控手段 优点 缺点
SNMP
易于部署
准确了解流量情况
只能了解攻击规模
缺乏细节,难于
有针对性地处理
NetFlow
可发现流量细节
技术相对成熟
有现成的产品
对网络设备性能有影响
对复杂的应用缺乏分析
能力
Sniffer
能够看到最详细的
数据包
部署困难、存在性能瓶
颈
对分析人员能力要求高
用户申告
了解最终用户的感觉 难于获得技术信息
被动处理,时效性差
成为用户的出气筒
Netflow 源设备
统计查询
结果输出
Flow 收集器 Flow 分析器
Netflow工作架构
常见传统缓解攻击的方法
• 轮询,负载均衡,Cache
• 路由器
• 系统加固(IIS,Apache)
• Syn Cookie技术
• 借助安全设备
Linux+Apache
网络参数调整:/etc/sysctl.conf
• #增加连接数: net.ipv4.tcp_max_syn_backlog = 2048
• #检查syncookies值:net.ipv4.tcp_syncookies = 1
• #减少重新连接次数:net.ipv4.tcp_synack_retries = 2
• #发送keepalive消息间隔时间修改:net.ipv4.tcp_keepalive_time = 300
• #会话结束等待时间修改:net.ipv4.tcp_fin_timeout = 20
• #TCP检测连接中断的数量修改:net.ipv4.tcp_keepalive_probes = 4
• #把不符合rfc1377文档的包丢弃:net.ipv4.tcp_rfc1337 = 1
• #加快接收客户端的连接速度:net.ipv4.tcp_abort_on_overflow = 1
• /sbin/sysctl -p
• /sbin/sysctl -w net.ipv4.route.flush=1
Linux+Apache
Apache参数调整:httpd.conf
• KeepAlive On
• MaxKeepAliveRequests 1000
• KeepAliveTimeout 3
• MinSpareServers 8
• MaxSpareServers 13
• MaxRequestsPerChild 50
Windows+IIS
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
• 关闭无效网关的检查。当服务器设置了多个网关,这样在网络不通畅的时候系统会尝
试连接第二个网关,通过关闭它可以优化网络。
"EnableDeadGWDetect"=dword:00000000
• 禁止转发广播包。
"ForwardBroadcasts"=dword:00000000
• 禁止响应ICMP重定向报文。此类报文有可能用以攻击,所以系统应该拒绝接受ICMP重
定向报文。
"EnableICMPRedirect"=dword:00000000
• 不允许释放NETBIOS名。当攻击者发出查询服务器NETBIOS名的请求时,可以使服务
器禁止响应。 注意系统必须安装SP2以上
"NoNameReleaseOnDemand"=dword:00000001
• 设置TCP重传单个数据段的次数。缺省项值为5,缺省这一过程消耗时间240秒。微软
站点安全推荐为3。
"TcpMaxDataRetransmissions"=dword:00000003
Windows+IIS
• 发送验证保持活动数据包。该选项决定TCP间隔多少时间来确定当前连接还处于连接
状态,不设该值,则系统每隔2小时对TCP是否有闲置连接进行检查,这里设置时间为
5分钟。
"KeepAliveTime"=dword:000493e0
• 禁止进行最大包长度路径检测。该项值为1时,将自动检测出可以传输的数据包的大小,
可以用来提高传输效率,如出现故障或安全起见,设项值为0,表示使用固定MTU值
576bytes。
"EnablePMTUDiscovery"=dword:00000000
• 启动syn攻击保护。缺省项值为0,表示不开启攻击保护,项值为1和2表示启动syn攻击
保护,设成2之后安全级别更高,对何种状况下认为是攻击,则需要根据下面的
TcpMaxHalfOpen和TcpMaxHalfOpenRetried值设定的条件来触发启动了。这里需要注
意的是,NT4.0必须设为1,设为2后在某种特殊数据包下会导致系统重启。
"SynAttackProtect"=dword:00000002
• 同时允许打开的半连接数量。所谓半连接,表示未完整建立的TCP会话,用netstat命
令可以看到呈SYN_RCVD状态的就是。这里使用微软建议值,服务器设为100,高级服
务器设为500。建议可以设稍微小一点。
"TcpMaxHalfOpen"=dword:00000064
Windows+IIS
• 判断是否存在攻击的触发点。这里使用微软建议值,服务器为80,高级服务器为400。
"TcpMaxHalfOpenRetried"=dword:00000050
• 设置等待SYN-ACK时间。缺省项值为3,缺省这一过程消耗时间45秒。项值为2,消耗
时间为21秒。项值为1,消耗时间为9秒。最低可以设为0,表示不等待,消耗时间为3
秒。这个值可以根据遭受攻击规模修改。微软站点安全推荐为2。
"TcpMaxConnectResponseRetransmissions"=dword:00000001
• 设置syn攻击保护的临界点。当可用的backlog变为0时,此参数用于控制syn攻击保护
的开启,微软站点安全推荐为5。
"TCPMaxPortsExhausted"=dword:00000005
• 禁止IP源路由。缺省项值为1,表示不转发源路由包,项值设为0,表示全部转发,设
置为2,表示丢弃所有接受的源路由包,微软站点安全推荐为2。
"DisableIPSourceRouting"=dword:0000002
• 限制处于TIME_WAIT状态的最长时间。缺省为240秒,最低为30秒,最高为300秒。建
议设为30秒。
"TcpTimedWaitDelay"=dword:0000001e
Windows+IIS
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBT\Parameters]
• 增大NetBT的连接块增加幅度。缺省为3,范围1-20,数值越大在连接越多时提升性能。
每个连接块消耗87个字节。
"BacklogIncrement"=dword:00000003
• 最大NetBT的连接快的数目。范围1-40000,这里设置为1000,数值越大在连接越多时
允许更多连接。
"MaxConnBackLog"=dword:000003e8
• [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Inte
rfaces\{自己的网卡接口}]
• 禁止路由发现功能。ICMP路由通告报文可以被用来增加路由表纪录,可以导致攻击,
所以禁止路由发现。
"PerformRouterDiscovery "=dword:00000000
Windows+IIS
调整IIS参数
• 超时时间:30
• 连接数:2048
• IIS6.0可直接调整,4.0,5.0需要
借助MetaEdit
谢谢!