1 背景介绍
设想一下,此时你正在高速公路上开车去上班,路上还有其他汽车,总体而言,大家都按照清晰的合法速度平稳驾驶,当你接近入口坡道的时候,会有更多的车辆加入,然后入口处的车辆越来越多,越来越多,直到所有的交通都慢了下来,最后原来的通行入口拒绝了所有车辆的通过请求。若把通行入口比作服务器的某些资源,那么这就是现实中的一种DDoS案例。
1.1 DDoS攻击
那么什么是DDoS呢?分布式拒绝服务(Distributed Denial of Service,简称DDoS) 是指多台计算机联合起来通过恶意程序对一个或多个目标发起攻击,从而影响计算机的性能或消耗网络带宽,使原目标服务器无法提供正常服务1。当目标服务器受到DDoS攻击影响后,带来的不仅仅是巨大的经济利益损失,甚至很可能造成核心数据的泄漏,因此对DDoS进行防护就非常有必要。
图1 2020.10.10 各个国家遭受DDOS攻击http://www.digitalattackmap.com/
1.2 日志审计服务
日志审计服务是在继承现有日志服务所有功能外,还支持多账户下实时自动化、中心化采集云产品日志并进行审计,以及支持审计所需的存储、查询及信息汇总。将DDoS防护和日志审计结合起来使用,可以帮助用户更清晰的掌握实时DDoS防护情况,也可以对已有防护事件进行回溯和复盘,从而更好地保障用户安全体验。目前日志审计已支持多种云产品,本文主要介绍日志审计结合DDoS防护助力云上安全。
2 DDOS防护
2.1 DDoS攻击案例
每一台网络中的服务器都有可能受到DDoS攻击。根据F5 labs的2020 DDoS攻击趋势报告2,受到最多的攻击行业有教育、金融、游戏、技术、电信等,但这并不意味其他行业就是绝对安全的,因为发起DDoS攻击对于潜在的黑客来说,有非常低的准入门槛,不仅Youtube上有大量创建僵尸网络的教程,DDoS出租服务也为哪些希望从零发起攻击的人提供非常低廉的价格。下面我们来看看迄今为止,五大著名的DDoS攻击案例3。
2017年,谷歌遭受DDoS攻击。根据谷歌安全分析小组在2020年10月16日公布的关于威胁和威胁因子的一篇博客,谷歌安全可靠性团队在2017年检测到破纪录的UDP放大攻击,其bps峰值达2.5T。
2020年2月,AWS遭受了一次巨大的DDoS攻击,攻击持续3天,带宽达到每秒2.3TB,攻击者利用CLDAP(Connectionless Lightweight Directory Access Protocal)反射技术,该技术依赖于易受攻击的第三方服务器,并将发送到受害者IP地址的数据量放大56-70倍。
2016年Brian Kerbs 和OVH 遭受DDoS攻击。Brian Kerbs是著名的安全专家,其博客自2012年就经受各种攻击的考验,然而2016年9月20日的攻击比他所有曾经遭受的攻击的三倍还要多。攻击源是Mirai僵尸网络控制的约60万台的IoT设备,例如IP相机,家庭路由等等。 Mirai在9月还攻击了另一个OVH公司,OVH是欧洲最大的网络托管服务供应商。
2016年 9月30日,Mirai的作者在论坛上发布了其源代码,并随后被复制成各种各样的版本,2016年10月21日,主要DNS服务商Dyn遭到每秒1TB的流量泛洪攻击,影响了包括Github、HBO、Twitter、Nexflix等知名网站的访问。
2018年2月28日,github遭受了每秒1.35Tb的DDoS攻击,攻击时长达约20分钟,即使Github早就为DDoS做好的充分准备,但是他们的DDoS防护对于此流量的攻击还是显得有些力不从心。
2.2 DDoS防护手段
若要缓解 DDoS 攻击,关键在于区分正常流量与攻击流量。例如,如果因发布某款新品导致公司网站涌入大批热情客户,那么全面切断流量是错误之举。如果公司从已知恶意用户处收到突然激增的流量,那么则需要努力对抗攻击。在现代互联网中,DDoS 流量的形式和设计五花八门,从非欺骗性单源攻击到复杂的自适应多方位攻击无所不有。
黑洞策略就是指当阿里云公网IP资产受到大流量DDoS攻击,其峰值带宽bps超过DDoS的防御能力时,资产IP会进入黑洞状态,即屏蔽IP所有in的互联网流量,黑洞状态可以自动解封(当达到默认解封时间后),也支持提前手动解封(DDoS原生企业版以及高防新bgp版)。但这不是理想的解决方案,因为它相当于让攻击者达成预期的目的,使正常流量也无法访问。
限制服务器在某个时间段接收的请求数量也是防护拒绝服务攻击的一种方法。虽然速率限制对于减缓 Web 爬虫窃取内容及防护暴力破解攻击很有帮助,但仅靠速率限制可能不足以有效应对复杂的 DDoS 攻击。然而,在高效 DDoS 防护策略中,速率限制不失为一种有效手段。
一般而言,攻击越复杂,越难以区分攻击流量与正常流量,因为攻击者的目标是尽可能混入正常流量,从而尽量减弱缓解成效。流量清洗就是将流量从原始路径重定向到清洗设备,对IP成分进行异常检测,并对最终到达server的流量实施限流,这是高级防护中一种比较常见的防护方式。
2.3 DDoS攻击类型
多方位 的DDoS 攻击采用多种攻击手段,以期通过不同的方式击垮目标,分散各个层级的防护工作注意力。同时针对协议堆栈的多个层级(如 DNS 放大(针对第 3/4 层)外加 HTTP泛洪(针对第 7 层))发动攻击就是多方位 DDoS 攻击的一个典型例子。下表是几种典型的DDoS攻击类型的具体描述4。
表1 DDoS 攻击类型 |
DDoS 攻击分类 | 攻击子类 | 描述 |
畸形报文 | FragFlood、Smurf、StreamFlood、LandFlood、IP畸形,TCP畸形,UDP畸形报文等 | 向target发送有缺陷的IP报文,target处理时会崩溃 |
传输层DDoS攻击 | SynFlood、AckFlood、UDPFlood、ICMPFlood、RstFlood | 例SynFlood,利用TCP三次握手机制,server收到syn请求后,需要使用一个监听队列保存连接一段时间,因此通过向sever不断发送syn请求,但不响应syn ack报文,从而消耗服务端的监听队列。 |
DNS DDoS攻击 | DNS Request Flood,DNS Response Flood, 虚假源 真实源DNS Query Flood,权威服务器攻击和local 服务器攻击等 | 例DNS Query Flood,多台傀儡机同时发起海量域名查询请求,造成sever无法响应 |
连接型DDoS攻击 | TCP慢速连接攻击,连接耗尽攻击,loic,hoic,slowloris,pyloris,xoic等 | 例slowloris,利用http协议的特性,http请求以\r\n\r\n 标识headers的结束,如果web服务端只收到\r\n 则认为http headers 还未结束,将保留该连接并等待后续请求,这样造成连接一直没法关闭,连接并发性达到上限后,即使受到新的http请求也没法建立连接 |
Web 应用层DDoS攻击 | Http Get Flood,HttpPost Flood, CC | 完全模拟用户请求,类似搜索引擎和爬虫,消耗后端资源,包括web响应时间,数据库服务,磁盘读写等。例如刷票软件就是CC攻击 |
2.4 云上安全方案
针对DDoS攻击,阿里云建议用户从以下几个方面着手降低DDoS的威胁:
表2 云上安全方案概览 |
减少暴露,资源隔离 | 弹性伸缩和灾备切换 | 监控和告警 | 商业安全方案 |
1.减少服务端口暴露,配置安全组; 2.使用专有网络VPC (virtual private cloud); | 1.定期压测,评估业务吞吐能力, 提供余量带宽; 2.SLB(Server Load Balancer)降低单服务器负载压力,多点并发; 3. 弹性伸缩(Auto Scaling)资源管理; 4.优化DNS解析; | 1.配置告警; 2.云监控; 3.应急预案; | 1.Web 应用防护墙(WAF); 2.DDoS 原生防护; 3.DDoS 高级防护; 4.游戏盾; |
图2 云上安全方案概览
2.5 DDoS防护产品
针对DDoS攻击,阿里云推出了一些商业安全方案,比如DDoS防护就有原生防护和高级防护等防护产品,其中原生防护(Anti-DDoS origin)又有基础版和企业版本。阿里云公网云服务(ECS,SLB,EIP)默认支持DDoS原生防护基础版,相较企业版,基础版不算“产品”,不具有实例概念,而企业版主要优势在于可根据实时机房网络整体水位,进行全力防护。DDoS高防产品又分为新BGP版(Anti-DDoS Pro)和国际版(Anti-DDoS Premium),此外还有游戏盾等产品。日志审计目前最新支持DDoS原生防护、DDoS高防(新BGP)版,DDoS高防(国际)版,可以在前端控制台开启采集授权。
图3 DDoS防护产品类别
DDoS防护的具体使用方法和最佳实践请参考官方网站。下面简单介绍一下原生防护和高防(新BGP)和高防(国际)三个产品。
2.5.1 原生防护
DDoS原生防护通过在阿里云机房出口处建设DDoS攻击检测及清洗系统,直接将防御能力加载到云产品上,以被动清洗为主,主动压制为辅的方式,实现DDoS攻击防护,推荐结合WAF一起使用,防护效果更佳。
图4 DDoS 原生防护工作原理
2.5.2 高防(新BGP)版
图5 DDoS 高级防护架构设计
DDoS高防通过DNS解析和IP直接指向引流到阿里云高防网络机房,在高防清洗中心清洗过滤,抵御流量型和资源耗费型攻击。
图6 DDoS高防(新BGP)工作原理
BGP(Broder GateWay Protocol)协议的最主要功能在于控制路由的传播和选择最好的路由。高防新BGP版主要适用业务服务器部署在中国内地的场景,中国内地T极八线BGP带宽资源,可帮助业务抵御超大流量DDoS攻击。
2.5.3 高防(国际)版
国际版主要适用业务服务部署在中国内地以外的地域场景,为接入防护的业务提供不设上限的DDoS全力防护。
图7 DDoS高防(国际)工作原理
Anycast是一种网络地址和路由通信方式。访问Anycast地址的报文可以被路由到该Anycast地址标识的一组特定的服务器主机。DDoS高防(国际)采用Anycast方式将接收到的流量路由到距离最近(路由跳数最少)且拥有防护能力的清洗中心。
3 日志审计下的DDoS防护
日志审计作为阿里云日志服务SLS(Simple Log Service)下的一款产品,主要是通过日志审计功能对旗下的云产品的进行多账号,跨域聚合,统计,分析,可视化等5。下面将主要介绍日志审计对DDoS三种防护产品的支持。
3.1 采集DDoS防护日志
在SLS日志审计页面开通DDoS 防护 下的产品采集授权:
图8 日志审计新增DDoS防护产品支持
3.2 查看DDoS防护日志
开启授权账号下的DDoS防护的采集后,点击project进入名为ddos_log的logstore,可以对近期的DDoS防护日志做出全面掌控。假设用户同时开通了账号下对DDoS原生防护,DDoS高防(新BGP),DDoS高防(国际)日志的采集授权,可以分别对应topic为ddosbgp_access_log, ddoscoo_access_log, ddosdip_access_log进行过滤查看。
表3:ddos_log |
__topic__ | 防护产品 |
ddos_bgp_access_log | DDoS原生防护 |
ddos_coo_access_log | DDoS高防(新BGP) |
ddos_dip_access_log | DDoS高防(国际) |
3.2.1 DDoS原生日志
图9 原生防护的日志
3.2.2 DDoS高防新BGP日志
图10 高防(新bgp)日志
3.2.3 DDoS高防国际日志
图11 高防(国际)日志
3.3 丰富的Dashboard
此外,日志审计对于DDoS也支持丰富的仪表盘功能。
3.3.1 原生防护事件报表及清洗报表
图12 今日DDoS黑洞事件1次和清洗事件2次
图13 本月DDoS黑洞事件和清洗事件趋势列表
此外,原生清洗报表还包括in流量监控,in流量分布,in流量协议类型分布,包检查,sync cookie,首包检查,L7filter,L4filter,AntiTDP,AntiUDP等报表展示。
3.3.2 DDoS高防(新BGP)访问中心与运营中心
高防访问中心和运营中心包含大量预设的模板dashboard,如下图所示。
图14 高防新BGP访问中心1
图15 高防新BGP访问中心2
图16 高防新BGD运营中心
3.3.3 DDoS高防(国际)访问中心与运营中心
图17 高防国际访问中心1
图18 高防国际访问中心2
图19 高防国际运营中心
4 审计 防护的最佳实践
接下来,我们将以DDoS高防(新BGP)的防护例子为大家展示DDoS防护结合日志审计的最佳实践。
4.1 实践准备
首先,在个人日志审计中心APP开启DDoS高防(新BGP)采集授权,然后在DDoS防护页面,将之前准备好的域名***.com接入,配置好关联高防IP地址,以及具体的防护设置。
4.1.1 添加域名接入
图20 DDoS高防配置域名接入
4.1.2 设定防护规则
在这里我们通过频率控制的手段,通过编辑具体的防护规则,对该域名下某一具体URL进行防护。频率控制防护开启后自动生效,默认使用正常防护模式,帮助网站防御一般的CC攻击。这里我们假定在检测时长5秒内,允许单个源IP访问被防护地址/test URL的次数为2次,超过次数将封禁1分钟。
图21 通过频率控制防护规则
4.2 实践对比
4.2.1 访问对比
对于该域名下具体URL:/test和/welcome ,对/test开启了防护规则设置,对/welcome没有任何限制。可以看到虽然/welcome在服务器中并不存在,但是/test页面则直接被阻隔在网站之外。
图22 发起访问请求
4.2.2 日志对照
在日志审计DDoS里查看具体的DDoS日志,可以看到访问/welcome,cc_block字段为0,也就是False,因此可视为正常流量,而访问/test,cc_block 字段为1,即True,也就是说明DDoS防护将其视作CC攻击。
图23 查看防护日志
4.2.3 仪表盘观测
我们将通过审计下面DDoS高防(新BGP)运营中心的仪表盘对刚才的事件进行更直观的复盘,
首先,我们将观测时间设为较短的相对时间5分钟,此时没有用户请求,即无正常流量也无攻击流量。
图24 原始运营中心
然后我们访问该接入域名下的/welcome页面,此时请求数为1,可以观测到客户网站出现了有效流量。
图25 有效流量示意
接下来访问/test页面,可以看到该访问被判定为攻击流量,并没有流入客户网站,而是被拿来丢弃与分析,此时的攻击者概况表格中,出现了攻击者具体IP源以及攻击次数等信息。
图26 攻击流量示意
通过上述简单的实践过程,相信对大家理解日志审计和DDoS结合使用的效果有较直观的感受,若想知道更多的细节,可以参考下面的链接。