近些年国内市场,尤其是互联网行业,竞争非常激烈,也越来越饱和,于是很多产品纷纷出海。他们的发行方式多种多样,服务部署方式相应的有所不同:有自己部署在aws/gcp/azure等公有云上的,也有部署在海外IDC服务器的,这两种方式面对的安全威胁也多种多样,但有一点是共同的,那就是DDoS攻击。因此,当下研究中国企业海外业务DDoS防护解决方案,显得十分必要。
概况
目前中国企业海外业务被DDoS情况,还没有相关报道,不过海外公有云那边可能会有比较多的数据,可惜没有公开,希望有这块数据分析的读者能分享相关数据。下面笔者仅针对了解到的几家企业的情况做些简单介绍。
公司1:大型移动工具开发商,目前主要用户来源海外,业务覆盖超过100个国家。由于发展非常迅速,他们的业务部署在AWS,同时购买了Enterprise Support。在DDoS攻击方面,他们可谓是“香饽饽”。面对年均超过100次、峰值流量几十Gbps的DDoS攻击,他们立足于AWS Marketplace和AWS Shield进行DDoS防御。
公司2:大型游戏厂商,目前主要用户来自国内,但国外业务增长速度很快,已经有近10款游戏在海外发行。面对年均超过1000次,峰值流量超过100Gbps的DDoS攻击,他们的应对方案有些不同。由于家大业大,加上自家提供公有云服务,他们选择让公有云节点随企业业务走,比如游戏业务开到哪里,清洗服务就开到哪里。如果公有云无法覆盖,则会跟当地IDC或者当地公有云合作。
这两家企业都是其所在行业的标杆企业,他们所面临的DDoS困境以及采取的应对手段十分具有代表性,也对国内企业出海有重要参考价值。下面笔者试着梳理一下具体的应对措施。
应对措施
主要包括服务器内部安全、外部安全服务两种方式。其中,外部服务安全主要是公有云和IDC两种提供商。
服务器安全
在接入外部的DDoS防御手段前,还需先做好服务器本地安全。
缩小攻击面
这一点通常也公有云抗D最佳实践之中。
- 开放尽可能少的端口
- 内部流量走内网,避免走外网受攻击影响
- 接入负载均衡集群
- 使用公有云的ELB
业务架构设计支持高可用和灵活迁移
在攻击规模超过线上系统承受范围时,业务系统架构很大程度影响了所能采取的应对措施。比如使用LB 域名的方式,则接入云清洗会非常方便。如果采用的RS IP的方式,则还要另外更换RS IP,甚至修改客户端获取的服务器列表等内容,导致整体调整成本过高,从而影响清洗效果。
公有云
国外公有云主要是Amazon Web Service(AWS)、Google Cloud Platform(GCP)以及Microsoft Azure(Azure),也可以考虑阿里云、腾讯云、金山云、Ucloud等国内公有云的海外节点。
对比分析表
AWS Shield
aws专门用于DDoS防护的产品,可为ELB、CloudFront以及 Amazon Route53提供扩展的 DDoS 攻击保护。aws ddos防护整体流程图如下:
分为标准版和高级版,对比图如下:
- 标准版
- 3/4层保护
- 自动检测与防御
- 提供常见DDoS攻击防护:SYN/UDP Floods,反射攻击等
- aws内置服务,免费
- 7层保护
- AWS WAF为7层攻击提供防护
- aws官方服务,需要收费
- 3/4层保护
- 高级版
- 功能
- 持续监控和检测(含3/4/7层)
- 提供常见DDoS攻击防护以及额外的防护手段
- 提供实时报警与历史数据查询(含3/4/7层):可看到哪些 IP、ASN 或国家/地区是攻击流量的主要来源。
- AWS DDoS应急响应团队(DRT)服务:使用 DRT可为自定义 DDoS 和WAF 防护策略,或者寻求 DRT 帮助。
- 为受攻击的Route 53, CloudFront, and ELB提供费用减免
- 应用在ELB/CloudFront
- 包含WAF在内的安全防护费用,为$3000/月,数据传输费用另算
- 支持的区域:弗吉尼亚北部、俄勒冈、爱尔兰、东京和加利福尼亚北部
- 功能
- 其他说明
- 响应时间: cloudfront提供秒级、elb提供分钟级、shield提供分钟级、触发阈值:入向5Gbps。可以看到aws ec2的响应时间比较慢,而且触发清洗阈值很高,如果真被这么打,业务会有一段时间受影响,无法做到实时的防护。
- 免费服务天花板: 原则上是用尽带宽
Google Cloud Platform
总体来说,gcp提供的产品线比aws简单,好处是gcp在台湾有节点,而aws没有,所以对于在台湾发行的海外业务可以考虑接gcp。下面介绍gcp在ddos防护上的服务。
- gcp官方ddos防护服务叫Armor,2018年才推出的,但目前只面向web服务。
- ddos防护这块属于gcp的基础架构安全,有cloudflare、reblaze和Imperva 三家合作伙伴,需要到对应官网注册接入,接入原理也是基于反代或dns解析
Azure
Azure官方提供DDoS防护服务,包括基础版和标准版两种。对比一下:
阿里云
阿里云产品线非常丰富,光DDoS防护就有阿里云盾-BGP高防和阿里云盾-游戏盾两种产品,均提供四层/7层CC防护策、攻击流量图、原始/攻击日志、业务可用性监控等服务。
- BGP高防
- 20G以内线路质量不错,但是大流量攻击需要结合静态高防,线路质量下降。攻击流量超过600G阿里BGP高防会强制黑洞。
- 游戏盾
- 抗D四层防护用户体验非常好,同时可以节省云厂商的带宽投入,动态调度节点。
IDC高防或者清洗
可以选择合作方提供的IDC高防或清洗服务,也可以接入国内CDN厂商的海外节点,比如UCloud。IDC高防或清洗,其多面向自己的用户,实现原理上不同于域名解析或者反代,而是将自己用户流量牵引到清洗设备或者直接在高防设备(通常也是IDC出口)上进行防护。因此:
- 选择IDC机房时需要考虑其是否有DDoS防御能力和对应服务
处理流程
接入
根据业务部署情况、成本选择接入公有云或者本地IDC高防或者清洗
- 尽可能接入自己的ISP高防或清洗服务,因为内网互通,避免使用反代或者域名解析时暴露真实ip
- 可以先使用公有云主机,同时根据地理位置就近购买专业高防或清洗服务备用,在云主机扛不住的时候迁走流量。或者在新服上线或者搞活动等业务高峰前购买备用。
关于具体的接入方式,则需要根据选择的方案具体确认
比如使用云清洗的方式,则可采用DNS解析或者反代的方式。如果选择IDC清洗的方式,一般是IDC层面把网络配置和清洗设备上线后,在清洗设备端操作即可,用户无感知。
防护策略
检测与报警
接入监控,设置流量bps/pps报警阈值
清洗触发阈值
清洗触发阈值一般设置正常流量峰值的2-3倍即可,由于有些清洗算法会随机丢包,因此为了避免无攻击时被清洗,需提高触发阈值。
清洗算法选择
目前业界清洗算法大同小异,常见的清洗算法主要有:畸形包丢弃;报文特征匹配;先跟清洗设备建立tcp连接,被识别为正常连接后加入白名单;黑名单;限流等等。具体算法的选择需要根据业务协议、流量变化趋势等特征进行选择。
文章先以两家中国企业海外抗D的实践为模板,引出使用公有云和IDC两种提供商的抗D服务,希望能给有需要的企业一个参考。此外,在此声明,作者与文中涉及的企业利益无关,仅从客观调研的角度进行探讨,其中如有说的不对的地方,请读者指出,定认真听取指教。
参考资料
2018上半年游戏行业DDoS态势报告
Azure海外抗DDoS服务
GCP海外抗DDoS服务
阿里云海外抗DDoS服务
AWS海外抗DDoS服务
UCloud海外抗DDoS服务