在图
2
所述客户网络实际拓扑结构中,由于网络核心设备启用了
VRRP
协议,故首先将华为
8512 Active
核心交换的流量切换到华为
8512 Standby
核心交换上,同时将
DDOS
防御设备接入
Active
侧网络,在做好所有防护配置后,再将流量切换到
8512 Active
核心交换设备上;通过此方法,使得
DDOS
防御设备实现无缝平滑上架;(其实也可以直接在
Standby
侧上线后再切过来)。
3 数据统计分析以及防御实施
3.1
黑客攻击分析
通过现场检测,发现黑客攻击手段为复合型攻击,其攻击手段为
Connection Flood + SYN Flood + Connections Per Second
攻击。
A、
被攻击服务器上打开了大量的
TCP SYN_RCVD
连接,
Client IP
地址散列,服务器本地端口为
80
,是非常明显的
DDOS
的
SYN Flood
攻击;
B、
攻击源
IP
地址来自
10.0.0
.0
,
127.0.0.0
,
219.148.0.0
,
221.23.0.0
,
218.5.0.0
,
211.94.0.0
,
221.23.0.0
,
120.160.0.0
,
20.170.218.0
,
22.82.205.0
,
59.33.0.0
等数十个网段,既有私有地址,也有实际地址,也就是说源地址散列,同时源端口散列,使得无法通过一般的
ACL
技术来屏蔽攻击;所有攻击来源中,大约有
50%
为
127.0.0.0
网段地址;
C、
网络流量为
900~ 1000M
每秒,而用户反映平时正常流量仅为
200M
多。在此情况下,后台服务器已经完全不能工作,而负载均衡设备也在强大的压力下频繁切换
Active/Standby
,从而造成网络不稳定。
鉴于黑客攻击手段较多,计划采取多种复合防御手段防护此次攻击。
所谓分布式拒绝服务攻击,就是通过分布在不同地点的计算机同时发起大量的无效的、无用的、非法请求,达到占用网络带宽、占用服务器系统资源等方式,从而使服务器不能正常地提供服务;下面我们来分析黑客进攻所使用
DDOS
攻击:
SYN Flooding
:通过
TCP
协议的
3
次握手原理,只发送
SYN
到服务器,当服务器响应
SYN+ACK
时,不回应
ACK
,从而使得服务器的
TCP
连接表被大量的
Time Waiting
连接所占满,使得合法用户无法建立起新的连接,达到拒绝服务攻击的目的;该网站此次所遭遇到的攻击之一,就是属于此类攻击。
对于此种攻击,可采取
SYN Proxy
技术,通过校验访问链接来源的有效性,从而防范了该种类型的攻击。
Connections Flooding
:由于防御
SYN Flooding
攻击的方法越来越多,使得一般的
SYN Flooding
攻击不再具有足够的威胁,于是黑客们发展出更多的
DOS
攻击种类;所谓
Connections Flooding
,是指黑客控制大量的傀儡机(行话叫“肉鸡”),对服务器发起大量的
Connections
,与常规
SYN Flooding
不同的是,这次“肉鸡”们将完成与服务器的
TCP 3
次握手,但是在连接建立起来以后,所有肉鸡将不传送任何数据,从而达到通过占满服务器
TCP Connection Table
表或者服务器访问人数上限,使得服务器无法对外提供服务的攻击;
针对此类攻击,在实现
SYN proxy
的基础上,通过采用限制每个
IP
的同时连接数,从而有效地防范了该种类型攻击并降低服务器负担。
此外,此种攻击还用一个变种,名为实载攻击,就是所谓
CC
攻击,既是正常与服务器建立连接,然后发送大量的
http
请求,但是请求内容为无效或高负载内容,且请求数据非常庞大,导致服务器不断读取请求数据内容,从而占用大量内存直至死机;对于这种类型的攻击,由于是属于正常连接类型,所以不能提通过简单的阻止连接来实现防御,否则将会阻挡正常用户的访问从而形成误报;在该网站所遭受的攻击中,即有此种类型攻击。
通过限制每个
Client
总连接数,可达到一定的防御目的,但对于未达到
Client
连接总数限制的请求,
DDOS
防御设备将予以放行,所以乃有少量的合法连接接入了服务器,并向服务器传递非法请求;对此,可以对
Client
连接总数的阀值进行修改,适当减少或者增加连接数,在
2
者之间取一个平衡点;
此外,还可以抓取非法请求的内容,然后针对内容进行清洗;其原理为抓包然后分析这些
CC
攻击所请求的页面或内容,找出其规律,然后将此类
CC
攻击请求报文的特征码提交到
DDOS
防御设备上,并实行过滤。
一个附加的问题是,如果找不到请求的报文内容特征码,可用过一些其他的特征,如
HTTP GET/ HTTP POST
请求报文的大小
,
字长等其它第三特征来做简单过滤,虽然可能产生误伤,但可作为最后手段使用。
在此次防御过程中,抓包后发现黑客的
HTTP
请求报文的内容居然是射雕英雄传的小说内容,大小为
4K
左右,这个黑客真是懒到家了,估计是直接从某些小说网站上
Copy
下来直接塞进攻击软件中的。
Connection Per Second Flooding
:此类型攻击方法的原理是,通过在同一时间内向服务器发起大量的
TCP
连接请求,并完成
3
次握手,然后再断开连接,再建立连接,如此反复;此种攻击使得服务器在短时间内无法相应正常用户的访问请求,从而达到拒绝服务攻击的目的;该网站所受攻击中,这也是其中之一。
可采取通过限制每个
Client
在同一时间内的
CPS
数来实现防御该种类型的攻击。
3.2
防御实施
在分析黑客的进攻手法后,实施了如下防护手段:
A、
首先打开
DDOS
防御设备的
TCP SYN Proxy
功能实现对源地址的校验,把来自虚假地址的攻击进行屏蔽;
B、
限定
CPS
(
Connection Per Second
)值,即限定每秒新建连接数为
50
次
/
秒。
C、
针对
Connection Flooding
攻击,激活对
Connections Flooding
攻击的防护功能,限定每
Client
同时保持连接数为
25
个
D、
打开包过滤功能,对所有来自
10.x.x.x
,
127.x.x.x
等这些非正常源地址的报文进行过滤,
E、
最后的
CC
攻击,通过手工取样后,发现无法从请求的内容中找到规律,因此采用了第三方特征来进行过滤,即手工书写了过滤条件,判断所有请求报文,对于大于
4K
的请求报文一律丢弃,并将此策略在
DDOS
防御设备上启用。
在打开上述防御措施后,对于
SYN Flooding
类攻击被彻底防范;而
CPS
攻击也被限定在一定的范围内,从而使得黑客的
CPS/Connection Flooding
攻击对于服务器不再具有压倒性的威胁;由于每个
Client
仅仅能同时与服务器建立
25
个连接,所以远远不能达到
DDOS
攻击的目的,从而不再对服务器严重威胁。
3.3
防御情况
在经过上述攻击防护策略防护后,通过日志分析以及监控,网络情况如下:
A、
在后台服务器上,
TCP
半连接基本消失;说明
SYN Proxy
技术对于防御
SYN Flood
攻击有着非常明显的有效防护。
B、
数据流量已经从
900M
左右降低到
250M
左右,说明对于实载型
Connection Flooding
攻击与
CPS
攻击提供了有效防护;同时,可以通过调整同时连接数与
CPS
数的阀值,进一步的降低黑客攻击流量,但误伤肯定存在,因此要找到策略的平衡点。
C、
通过日志分析,我们发现从
19:27:33
到
20:49:46
短短
1
个小时时间内,客户网络受到了高强度的攻击,黑客能够在短短几秒秒内,让一台服务器因资源耗尽而死机。
D、
在经过防护后,后台服务器基本能够恢复工作,能够提供服务。
4 安全建议
通过以上数据统计与分析,我们得出如下结论:
A、
目前对于
DDOS
类攻击的防御措施不够强健,建议对网络安全实施加固。
为避免再度遭受相同攻击,建议安全解决方案如下图所示:
建议在网络中部署
2
台
DDOS
设备作为安全边界,同时在设备之间启用
HA
,从而提高可靠性,采取上述网络安全设计后,能够实现:
A.
能够提供我们所遇见的
SYN Flooding
、
Connection Flooding
、
CPS
等各种类型
DDOS
攻击,但对于
UDP Flooding
等类型的毫无技术含量的纯粹堵带宽的攻击,可让上级
ISP
的协助启用路由下水道技术。
B.
在保证安全性的同时,设备的性能是很高的,设备的处理能力完全可以满足现有网络环境下对设备性能的要求,目前的性能是在启用了
894
个攻击过滤器的条件下获得的。由于采用了
FPGA
芯片技术,因此所有的策略均可现场编程至芯片中执行,而该芯片可以支持多达
10
,
000
条过滤器的并行处理,保证扩展能力,完全可以满足客户对性能的高要求。
5 总结
A.
任何设备都不是万能的,最重要的还是人,而不是机器。
B.
误伤是肯定存在的,不要相信任何零误报的谎言。
C.
DDOS
的攻击有很多种类,某些种类是不能靠客户端来防御的,必须与上级
ISP
合作。
D.
现在的鸟人们真懒,连个数据包都懒的构造,直接抓小说内容来填充。
E.
本文内容仅供参考,如有雷同,实属巧合;请勿与任何实际案例挂钩,本人不负任何法律责任,谢谢。