阿里“霸下”——七层流量清洗提供安全防护新方案
12月13-14日,由云栖社区与阿里巴巴技术协会共同主办的《2017阿里巴巴双11技术十二讲》顺利结束,集中为大家分享了2017双11背后的黑科技。本文是《霸下-七层流量清洗》演讲整理,主要讲解了霸下-七层流量清洗区别于传统清洗方案的特点、设计理念、架构及突出表现,内容如下。
分享嘉宾:
铁花,阿里巴巴资深技术专家,淘宝最早SDL建立及实施人,淘宝第一代web安全解决方案主要开发,安全静态代码扫描平台创建者。
霸下,龙之九子之一,因其喜负重与底层系统之意契合,遂取此名。
基于场景清洗恶意流量
传统的恶意流量来源于攻击、扫描等,例如DDOS攻击、CSRF攻击、XSS攻击,或使用扫描引擎如APPScan对网站的漏洞尝试扫描。与之对应的有传统的抵御方式,如云平台上针对DDOS的防御,用WAF平台抵挡Web的漏洞扫描。但是,双11存在大量基于场景的攻击,这些技术手段并不能达到我们的要求。
例如,在下单场景中,用户经常抱怨在秒杀活动开始后还没来得及操作,活动就已经结束。这是因为背后有恶意集团进行有组织自动化地下单来抢购有差价的商品。我们把这些定义为场景化的恶意流量攻击。霸下-七层流量清洗平台正是基于场景清洗恶意流量。
如上图所示,霸下将左边混杂有恶意攻击的流量清洗,将纯净流量提供给业务系统,从而减少其在处理恶意流量过程中造成的带宽和计算资源的浪费。
提供突出防护能力
DDOS攻击防护、CC攻击防护、Web攻击防护是所有平台提供的防护能力。霸下在此基础上更有效地抵御了“薅羊毛”的行为。“薅羊毛”行为包括批量机器下单,如在商品首发时争夺商品,套取积分获取最大利益等,极大地影响了用户体验。以上流量是机器行为,不是我们期望的用户流量。
目前黑灰产企业的攻击更趋向于基于场景的、复杂化的攻击链路,区别于之前单纯的攻击方式。场景化的攻击包括但不限于:
竞争厂商使用爬虫程序爬取对方商品价格,在此基础上降价以获取优势
黑灰产企业恶意修改搜索排名加权条件,影响搜索结果
使用机器行为批量抢红包下单进而变现获取利益
霸下平台提供优秀的场景化攻击防护能力,有效地抵御了以上几类恶意攻击。
此外,霸下提供额外的网络限流功能。当流量超过网络的能力值时,我们对流量进行有选择的限流。值得注意的是限流在清洗之后,这样使限流的对象变为纯净流量,极大地提升了工作效率。
霸下 VS 传统清洗方案
传统清洗方案对于不同的攻击都有单独的防护模块,如针对CC攻击、DDOS攻击都部署特定的模块。这样的架构集中在了业务上,导致系统在计算、带宽资源消耗了后才能发挥防护作用。传统清洗方案存在如下弊端:
每一个系统都需要部署和运维,不同运营人员之间沟通不畅可能导致前后防护对象的重叠,更有甚者前后规则的冲突可能引发系统故障
模块之间缺乏协作,各自为战,可能出现攻击突破每一层防线,却无法问责的情况
数据消耗。每个模块全流量计算产生大量消耗,每层贴标签加入字段扩大了数据量,甚至可能产生数据篡改,导致最后策略不准
针对如上问题,介绍霸下-七层流量清洗理念。
1.快速接入,统一接入
传统接入需要了解应用架构,统一还是特殊的接入层、应用上是否有连接层,应用上采用何种协议等因素都会影响接入速率。特别是遇到紧急情况,例如当遭受爬虫攻击导致系统濒临崩溃时,部署测试需要大量时间,无法起到应急作用。霸下实现了快速接入,统一接入,这得益于系统完整统一的架构,用户接入时只需要跟运营简单配合或者经过BSOP控制台简单操作就可以打通。
2.纵深防御,数据打通
沿着客户端->网络层->应用层->内部的流向将数据全部打通,所有计算指标和数据都是共享的,达到一份流量copy解决多份问题。 数据打通给后端带来最精准的模型识别方式,提高识别准确率,同时也不需要浪费大量时间和空间的数据。
3.自动升级,主动防御
以DDOS攻击为例,当攻击发生时人为的抵御无法对抗机器攻击,这需要我们通过策略的拦截效果实时监控,可以动态拉起、降级、收紧、放松策略而不需要人工参与,完成自动、主动防御。
4.机器学习,策略推荐
使用纯粹的规则无法预测下一次变异攻击,另外CC攻击、限流等人为防御会有偏差。霸下可以根据正常量告诉推荐值,自动生成策略、模型和对应的阈值,有问题时实现自动上线。
统一的安全技术框架
传统防护模块各自为战,均有自己的接入方式、传输调度、配置下发管理方式以及策略中心。策略中心涉及原始流量、指标,包括计算、存储、处置和检索分析的过程。霸下打通这种独立的格局,并且出于对用户习惯的尊重,在系统统一的基础上逻辑分化出不同防护模块。
霸下的防护架构
移动互联网使用统一网关保持长连接、心跳等。用户访问某个应用的信息时,先跟统一网关建立连接,由网关进行路由。以下介绍霸下几种部署方式:
1.统一网关上部署,实现全流量接入,快速策略部署下发。
2.应用上部署插件,应用之间直接交互,但会多一些网关的消耗。
3.CNAME方式。Web应用不喜欢被侵入,数据通过CNAME引流后经霸下清洗返回到统一网关。
4.结合的方式。统一网关和应用均部署插件,统一网关筛选全部流量,应用监控独享流量,保证没有流量遗漏,或者实现不同地方部署不同策略的要求。
从功能上看架构
如上图虚线为管理模块,实线为数据流转模块。流量接入通过数据通道下发到策略中心,策略中心根据不同要求下发到计算中心,计算中心进行在线的实时计算返还给策略中心,有问题则做出处置相应,下发给端。此外,配置中心处置配置问题,编译引擎完成策略编译,数据检索用于查看误拦截或分析策略正确与否。最后,所有交互通过BSOP这一后端控制台完成。
霸下-七层流量清洗特点
1.分布式计算/防护架构
清洗更快,清洗能力和部署机器数量呈线性增长,能够应对超大规模的安全防护。
2.云端多维度、多方法的指标计算
防护CC攻击是一个维度,计算一个IP一秒内访问多少次作为指标。另外,从用户的角度出发,一个用户访问接口的频率是另一个维度。一个维度时采用计算的方式代价最小,效率最高,但问题在于不能支持复杂场景。现在,我们可以同时考虑IP和用户两个维度,实现应对复杂场景的需求,并且提供非常灵活的策略开发、灰度、线上观测机制。
3.直观数据查询和拦截分析
通过流量清洗的工作台,非常直观的看到各个业务的安全情况,例如拦截、误拦截,并提供了诸如数据查询和拦截分析等运营能力。
4.智能化
攻击导致崩溃后,通过监控自动启动拦截方式。智能化也是以后的发展方向。
案例
霸下-七层流量清洗负责阿里巴巴集团的所有网络层流量清洗和保障工作,这里主要提及两个数据:
1.双11 处理了峰值2000万PV的QPS
2.双11保障到达核心交易系统的流量纯净度大于99.85%