当前位置:网站首页>中国企业海外业务DDoS防护探索
中国企业海外业务DDoS防护探索
2022-06-21 11:05:00 【0xtuhao】
近些年国内市场,尤其是互联网行业,竞争非常激烈,也越来越饱和,于是很多产品纷纷出海。他们的发行方式多种多样,服务部署方式相应的有所不同:有自己部署在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服务,希望能给有需要的企业一个参考。此外,在此声明,作者与文中涉及的企业利益无关,仅从客观调研的角度进行探讨,其中如有说的不对的地方,请读者指出,定认真听取指教。
参考资料
边栏推荐
- 【100个 Unity踩坑小知识点】| Unity中的 碰撞盒检测 Physics.OverlapBox、OverlapCaps
- 【obs】libobs_winrt.dll
- 数据库主键一定要自增吗?有哪些场景不建议自增?
- Use the spatial complexity of O (1) to flip the linked list
- 分解任务
- MySQL - library operation
- 【100个 Unity实用技能】| 游戏中使技能或装备跟随角色环绕,持续旋转
- DevSecOps:S-SDLC企业最佳实践
- The advanced process resistance of Intel and TSMC is increasing, and Chinese chips are expected to shorten the gap
- 导航栏切换,留言板,文本框失去焦点
猜你喜欢

MySQL advanced - personal notes

Map集合遍历,添加替换,删除元素

NLog自定义Target之MQTT

求你了,别在高并发场景中使用悲观锁了!

Break down tasks

Ar manipulator of game console

MySQL 5.7 is about to be stopped and only maintained. It's time to learn a wave of MySQL 8

Secret magic weapon

fix libpng warning: iCCP: Not recognizing known sRGB profile ......

贺志理:红树林湿地沉积物中微生物驱动的碳氮硫磷循环及其耦合机制
随机推荐
Actual measurement: the performance of cloud RDS MySQL is 1.6 times that of self built
One of the components of the program
Compilation principle knowledge points sorting
求你了,别在高并发场景中使用悲观锁了!
New experience of cultural tourism! 3dcat helps Guangzhou intangible cultural heritage "yuancosmos" block make a cool appearance
分解任务
From zero into the world of software development
The delimiter connects the list string without secondary processing joiner on(). join()&&String. join(“,“, list)
Kotlin - Sequence 序列
转赠券发放倒计时!星际口袋转赠规则抢先看
送分题,ArrayList 的扩容机制了解吗?
根据模糊查询JanCode输入顺序将查询结果排序
qmlbook学习总结
从零走进软件开发的世界
【100个 Unity踩坑小知识点】| Unity控制物体持续指向某个方向
Queue队列的实现
服务器安全审计系统设计与实现
postgresql 按日期范围查询
基于QtQuick的QCustomPlot实现
导航栏切换,留言板,文本框失去焦点