文 / 中国光大银行信息科技部副总经理 彭晓
近两年发生多起针对全球大型机构发起大规模DDos攻击事件,使得DDos攻击又重回大众视野,引起业界的广泛关注。金融机构虽按照要求建立了本地以及运营商级的DDos攻击检测清洗服务,但随着互联网类业务的快速发展,同时DDos攻击的成本不断降低,新型攻击攻击手法层出不穷,攻击工具的肆意传播,使得DDos攻击形成了一个地下产业,投入极低的成本便可发动一次DDos攻击,互联网类业务遭受到的威胁也在不断攀升。
本文主要结合多年网络安全运维经验以及对DDos的基本理解,浅谈DDos攻击原理和基本防护思路。
DDos的基本概念及类型
Dos拒绝服务攻击是通过各种手段消耗网络带宽和系统CPU、内存、连接数等资源,直接造成网络带宽耗尽或系统资源耗尽,使得该目标系统无法为正常用户提供业务服务,从而导致拒绝服务。DDos分布式拒绝服务攻击由Dos演变而来,黑客利用控制的多台计算机(肉鸡)对一个特定目标发送尽可能多的网络访问请求,形成流量洪流来冲击目标业务系统,其攻击源是分散的、范围可能遍布全球。信息安全的三要素——“保密性”“完整性”和“可用性”中,传统拒绝服务攻击针对的目标正是系统“可用性”。
DDos攻击主要分为两大类:流量攻击型和应用攻击型。流量型攻击最大的特点就是流量大,快速消耗用户的网络带宽造成带宽耗尽,可能出现一个特定目标单位被攻击影响到共用运营商资源的其他单位带宽受影响的情况。流量型DDos又可分为直接型和反射型,直接型主要包括SYN\ACK\ICMP\UDPFLOOD等,反射型主要包括NTP\DNS\SSDP反射FLOOD等。
而应用型DDos攻击最典型的就是CC攻击和HTTP慢速攻击,CC是DDos攻击的一种,CC攻击是借助代理服务器生成指向受害主机的合法请求,实现DDOS和伪装,CC攻击(ChallengeCollapsar)要是通过制造大量的后台数据库查询动作来攻击页面,消耗目标资源;HTTP慢速攻击是CC攻击的变种,对任何一个开放了HTTP访问的服务器,攻击者先建立一个连接,指定一个比较大的content-length,然后以非常低的速度发包,比如1-10s发一个字节,然后维持住这个连接不断开。如果客户端持续建立这样的连接,那么服务器上可用的连接数将一点一点被占满,从而导致拒绝服务。CC攻击、慢速攻击等应用型攻击与流量型DDos的区别就是流量型DDos是针对IP的攻击,而CC攻击的是服务器资源。
典型DDos攻击分类大致如图1所示。
图1 DDos攻击分类
流量型DDos攻击防护思路
常规流量型的DDos攻击应急防护方式因其选择的引流技术不同而在实现上有不同的差异性,主要分为以下三种方式,实现分层清洗的效果。
1.本地DDos防护设备。一般恶意组织发起DDos攻击时,率先感知并起作用的一般为本地数据中心内的DDos防护设备,金融机构本地防护设备较多采用旁路镜像部署方式。本地DDos防护设备一般分为DDos检测设备、清洗设备和管理中心。首先,DDos检测设备日常通过流量基线自学习方式,按各种和防御有关的维度,比如syn报文速率、http访问速率等进行统计,形成流量模型基线,从而生成防御阈值。学习结束后继续按基线学习的维度做流量统计,并将每一秒钟的统计结果和防御阈值进行比较,超过则认为有异常,通告管理中心。由管理中心下发引流策略到清洗设备,启动引流清洗。异常流量清洗通过特征、基线、回复确认等各种方式对攻击流量进行识别、清洗。经过异常流量清洗之后,为防止流量再次引流至DDos清洗设备,可通过在出口设备回注接口上使用策略路由强制回注的流量去往数据中心内部网络,访问目标系统。
2.运营商清洗服务。当流量型攻击的攻击流量超出互联网链路带宽或本地DDos清洗设备性能不足以应对DDos流量攻击时,需要通过运营商清洗服务或借助运营商临时增加带宽来完成攻击流量的清洗,运营商通过各级DDos防护设备以清洗服务的方式帮助用户解决带宽消耗型的DDos攻击行为。实践证明,运营商清洗服务在应对流量型DDos攻击时较为有效。
3.云清洗服务。当运营商DDos流量清洗不能实现既定效果的情况下,可以考虑紧急启用运营商云清洗服务来进行最后的对决。依托运营商骨干网分布式部署的异常流量清洗中心,实现分布式近源清洗技术,在运营商骨干网络上靠近攻击源的地方把流量清洗掉,提升攻击对抗能力。具备适用场景的可以考虑利用CNAME或域名方式,将源站解析到安全厂商云端域名,实现引流、清洗、回注,提升抗D能力。进行这类清洗需要较大的流量路径改动,牵涉面较大,一般不建议作为日常常规防御手段。
以上三种防御方式存在共同的缺点,由于本地DDos防护设备及运营商均不具备HTTPS加密流量解码能力,导致针对HTTPS流量的防护能力有限;同时由于运营商清洗服务多是基于Flow的方式检测DDos攻击,且策略的颗粒度往往较粗,因此针对CC或HTTP慢速等应用层特征的DDos攻击类型检测效果往往不够理想。
对比三种方式的不同适用场景,发现单一解决方案不能完成所有DDos攻击清洗,因为大多数真正的DDos攻击都是“混合”攻击(掺杂各种不同的攻击类型),比如:以大流量反射做背景,期间混入一些CC和连接耗尽,以及慢速攻击。这时很有可能需要运营商清洗(针对流量型的攻击)先把80%以上的流量清洗掉,把链路带宽清出来,在剩下的20%里很有可能还有80%是攻击流量(类似CC攻击、HTTP慢速攻击等),那么就需要本地配合进一步进行清洗。
应用型DDos攻击防护思路
这里要重点介绍一下CC攻击。CC攻击是一个依赖http协议,并通过构造特殊的http请求导致服务器保持连接等待状态,直至服务器CPU、内存、连接数等资源被打满,从而造成拒绝服务的一种攻击方式,属于典型的应用层DDos攻击。CC攻击的特点和流量型DDoS攻击最大的区别是并不需要大流量即可达到攻击效果。有些极端情况下在遭受此类攻击的时候,流量特征可能没有明显的变化,而业务层面出现访问缓慢、超时等现象,且大量访问请求可能指向同一个或少数几个页面。
因为CC攻击来的IP都是真实的、分散的,且CC攻击的请求,全都是有效的请求,无法拒绝的请求。对于此类攻击,DDoS攻击清洗设备的基础算法作用可能就没那么明显了,需要在攻击过程中实时抓取攻击特征,对症下药。
总结CC攻击,发生攻击时还是有较明显的攻击特征。一般情况客户在访问业务的时候不会集中在几个页面,而是比较分散的。而当发生了CC攻击的时候,抓包后可以很明显地发现大量的访问都集中在某几个或者多个页面,那么我们可以针对该特征进行针对性地防护配置。
CC攻击的防护思路
由于CC攻击是典型的应用层DDos攻击,因此传统安全设备,如防火墙、运营商清洗等很难起到很好的防护作用。目前业界通常会在应用服务器前端部署具备安全功能的代理设备进行防护,比如WAF、负载均衡等,避免让服务器直接面对CC攻击。代理设备启用资源代理和安全防护功能,比如要求在接收完整的HTTP请求之后才会与服务器建立TCP连接并发送已收到的HTTP请求,此时攻击者的请求直接被代理设备终结而不会发往服务器。
经过实践总结,前端WAF或者负载均衡设备能够提供的有效策略如下:
一是部署架构上,可将前端WAF或者负载均衡设备部署于HTTPS卸载器之后,从而实现对HTTPS流量的防护能力。
二是使用IP地址信誉库,对请求IP地址进行甄别和过滤,阻止来自恶意IP的服务请求。
三是通过跟踪客户端的Session信息、标记Session的威胁指数与可疑度、识别访问频度、鼠标键盘操作时间等技术,识别恶意请求;同时制定挑战策略,对于不合法的请求可以采取挑战验证码、识别机器人行为特征,快速阻断不合法请求或BOT发起的仿正常请求。
系统/应用层面能够提供的有效防护策略有:
一是轻应用部署。应用部署时考虑页面静态比例,尽量让网站静态化,减少不必要的动态查询等方式,同时应急情况下可以将动态页面临时替换为静态页面,减少后台请求数据库/应用服务器的次数。
二是限制单IP连接数量,降低同一ip攻击者带来的危害和影响。
三是降低连接超时时间,及时释放系统资源应对TCP连接资源耗尽类型的CC攻击。
四是及时清理无用过期等文件,并将大的文件对象或者页面部署在CDN节点上,隐藏真正的互联网带宽入口,降低对源站的影响等。
以上防护手段可以起到一定的防护作用。不过,我们也要看到,目前黑客攻击有多样化的趋势,一次攻击行为内往往混合了多种攻击方式和手段。金融机构需要抵御这种凶猛的攻击,靠单独的某一类设备是不够的。金融机构应该搭建层次化的立体防御架构,防范攻击需要在合适的维度采用合适的防御技术,且每个防御层面都需要充分考虑其架构可扩展性,架构上需要仔细考量与设计。
DDos防护实践总结
架构设计:应支持资源横向扩展,立体防御(见图2)。需要建立层次化的防御架构,从业务第一入口的DNS系统开始到运营商防御、本地的三、四层攻击防御、优化操作系统的TCP/IP协议栈,然后到SSL层安全防御、最后到7层防御,需要建立立体的防御体系,且每个防御层面都需要充分考虑其架构可扩展性,架构上需要仔细考量与设计。同时,尽量做到本地和云端结合,借助运营商力量解决大流量攻击问题。
图2 立体化防御架构图
开发界面优化。调整页面静态比例,每一个页面,都有其资源消耗权重,静态资源,权重较低,动态资源,权重较高。编写代码时,尽量实现优化并合理使用缓存技术。尽量让网站静态化,减少不必要的动态查询。
动态统计分析。对访问频率异常的页面进行详细分析,分析得到不同应用的页面动态访问行为模型和基线,而攻击程序(机器)一般不会按照人的行为进行加载资源。同时,运维人员应对当前系统运行了如指掌,如系统最高负载、系统处理能力,网络带宽能力等。
加强应急演练。定期组织进行DDos攻击应急演练,演练的形式不限于沙盘演练还是实操演练。通过演练的方式让大家熟悉DDos攻击的应急体系、响应流程,另外通过演练及时总结不足,持续进行优化改进。
提升系统扩容能力。面对互联网Ddos攻击,除了采用技术防御手段进行检测、清洗和攻击行为识别以外,仍然有一部分攻击请求可能会到应用系统,这个时候对应用系统的容量提出了更高要求。此时需要应用系统具备快速扩容交付能力,在一定程度上要具备与攻击黑产进行“对抗”的能力。
加强人才培养,积极与第三方安全机构合作。加强网络安全人才培养,建立网络安全人才队伍应对互联网安全威胁;同时积极与业内第三方安全机构合作,关注最新的恶意IP威胁情报列表,在被攻击时,直接启用封堵信誉库中的恶意IP和境外IP地址,减少被攻击面。
声明:本文来自金融电子化,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。