浅谈DDoS攻防对抗中的AI实践
2020-03-18 17:55:51 Author: security.tencent.com(查看原文) 阅读量:155 收藏

在众多的网络攻击手法中,尽管拒绝服务攻击DDoS(Distributed Denial of Service)不再是最新颖、最热门的方式,但从近年来发生的众多攻击事件中我们不难发现,DDoS攻击因其门槛低,危害大等特性始终被认为是黑客攻击的终极武器,在互联网发展不同阶段均能掀起血雨腥风。多年来,攻击者与防御者始终在进行着博弈,他们会针对最新的检测产品和防御手段中尚存在的漏洞与薄弱环节,开展新型的、混合式或者更高级别的攻击模式,DDoS攻击威胁形势日益严峻。


图1: DDoS攻击威胁形势日益严峻

如图1所示,一方面随着云计算、移动互联网以及IoT产业的发展,DDoS攻击产生了革命性的变化。由原先纯粹的黑客炫技逐渐形成了完整的黑客产业链,攻击方式也逐渐平台化,攻击源不再只是个人PC和服务器,存在漏洞的智能设备也被控制利用来进行DDoS攻击,随之而来的就是越来越大的攻击流量。2018年2月下旬,全球著名的代码及开源项目托管网站GitHub遭受峰值达到1.35Tbps的DDoS攻击,创历史新高,标志着DDoS攻击规模正式迈入Tb级。


图2: GitHub的DDoS攻击流量曲线

另一方面,针对具体应用的真实源攻击越来越多(如针对电子商务、网页游戏的CC攻击)。此类攻击因需要僵尸主机和被攻击服务器建立TCP连接,为了隐藏僵尸网络,攻击流量越来越小,仿真程度越来越高,可以有效躲避安全设备的识别。

面对持续对抗过程中出现的一些相比以往更为高级的攻击手法,基于传统的检测防护策略相对难以解决。比如传统的DDoS攻击检测方法主要是通过对网络中的数据类型(如:协议,标志位)请求进行统计,当统计结果偏离预设阈值时,则认为攻击发生。这种方案比较简单,但是不灵活。所有业务或者特定业务都是一刀切的阈值,容易产生大量误报或者小流量漏报。特别是涉及云上业务时,由于多样化的业务特性、差异化的基础配置以及产品化需求,固定阈值需要大量的人工干预,完全无法实现自学习自适应。

在黑客攻防对抗日益激烈的环境下,DDoS对抗不仅需要“降本”还需要“增效”。如能通过AI算法学习经验数据,形成具备自学习、自进化、自适应特性的流量模型,将‘被动应对’发展成为‘主动进化’,当前DDoS攻防能力必然可以得到进一步增强。于是,腾讯安全平台部宙斯盾DDoS防护团队开始将目光转向基于机器学习的新兴方案,探索“AI+安全”的检测防护版图。针对不同攻击特点进行精细化分析,并结合多元化AI算法优势实现效率最大化。“一对一”定制模型,保证模型对特定攻击的识别准确性;AI模型良好的泛化能力又可以实现“一对多”的效果,即同时具备识别多种攻击的能力。在本文中,我们将与业界同行们进行探讨分享,也期待能抛砖引玉。


2.1 系统整体架构


图3: AI检测防护系统架构图

如图3所示,DDoS防护进程的检测、防护由控制系统统一管理并下发命令。AI模块与其中的检测、防护密切交互,并运行这样一套流程:待检测数据进入AI引擎后,数据被分析并提取出特征,随后,特征经过预处理并输入模型训练模块,训练好的模型在正式启用前会经过一系列的迭代优化,直至模型收敛。最后,使用稳定的模型对待检测数据进行结果输出。特征提取步骤基于历史对抗中积累的经验知识,对待检测数据的特定字段、统计特征进行提取;提取出的特征被进一步分为不同类型,如数值型、离散型等,不同类型将自动采用不同预处理方案,最后处理成模型可识别的、统一的格式。统一格式的数据进入检测,该步骤中AI引擎灵活调用定制化模型,并输出高准确性的识别结果至DDoS防护进程。

2.2 AI实践

DDoS防护系统内置多算法支持的AI引擎,具备可移植性和可扩展性,仅需将待检测数据输入模型,即可得到识别结果,全程透明。

2.2.1 检测逻辑

1、用AI探索DDoS攻击检测新思路

攻击检测是攻击防御的基础,一个合格的检测系统必须能够及时准确的产生告警给到后端防护系统进行处理。现行主流的DDoS检测思路主要是使用统计分析+阈值判别的办法。如果当前网络流量数据某一统计信息超出相应阈值,则判断该时刻发生了攻击。这类方法虽然配置简单,但是存在以下几个不可避免的痛点:

难以平衡的误报和漏报问题:检测准确性依赖阈值的选取。静态阈值或同环比策略,在业务的趋势起伏的周期性变化下会产生多次漏报/误报。过大的阈值可能导致漏报,过小的阈值会产生大量误报。

预设阈值难以有效应对未知攻击:阈值设定基于已知的攻击流量特性维护,对于未知攻击难以有效应对。

固定阈值难以适应多种业务场景:每个用户的业务逻辑各不相同,业务表现方式各异,对所有用户采用通用的检测阈值规则容易造成误判,难以帮助业务各异的用户有效防护业务风险。

可维护性差:阈值的选取是一个人工选择的过程(安全专家定制),依赖大量经验和对业务流量的理解,可维护性差。

而将机器学习算法应用到DDoS攻击检测中,从被动检测防护的困局中突破出来,获得如下优势:

准确率高:基于机器学习的DDoS检测方案通过时间序列分析、机器学习算法建模,以智能基线为基准,能够预测并拟合业务趋势,发现业务异常,提升告警准确率。

获取正常样本的自学习能力:根据历史流量自动调整算法参数,实现自动进化,全程自动学习达到无人干预的全自动模式。能够实现对各业务流量日常波动范围的自学习,并发现系统指标中不同寻常的波动

获取业务的自适应能力:基于机器学习的DDoS检测方案通过获取的正常样本和攻击手法自行学习和训练,能够自适应各业务场景。

2、难题&解决思路

将AI算法运用到DDoS检测实践中,首先需要解决如下两个难题,这两个问题解决不好,AI技术在DDoS领域中的应用将停留在“为AI而AI”的噱头中:

如何平衡有监督学习及无监督学习检测模型存在的“漏报”及“误报”问题

在提高检测准确率的前提下,如何保证海量数据下检测系统的时效性(秒级)

在解决算法应用的挑战上,一方面基于“正常的载荷是类似的,异常各有各的异常”及“攻击属于异常流量”的知识经验,检测系统学习种类丰富的大量正常流量样本(无需打标),采用无监督的AI算法构建流量模型,模型通用性强,同时可以检测出未知攻击,漏报率低。另一方面针对DDoS攻击特性,提取多维特征训练若干个个体学习器,借助集成学习得到一个更好更全面的强监督模型,有效降低误报率,确保AI引擎的学习效率和检测效果。在解决时效性问题上,宙斯盾DDoS检测系统采用离线预处理,结合在线计算,最细粒度可对秒级流量监控数据进行精确的实时检测,让用户更早感知业务故障并作出响应。


图4: AI模型建立知识经验

3、具体实现

我们知道,每个用户的业务逻辑各不相同,云上场景更是多种多样。如果对所有用户流量统一建模,难以帮助业务各异的用户流量进行有效检测,从而出现误报或者漏报。针对此问题,需要建设‘IP画像’,对每个IP进行流量自学习并建模(即对每个IP进行多种维度上的特征画像),生成自适应各业务特征的个性化检测模型。

流量模型训练好之后,检测系统可以实时采集网络的流量并输入模型进行检测,一旦集成学习算法综合多个个体学习器的预测结果判定为异常流量(DDoS攻击),此时防护系统将对网络流量进行过滤和验证,如验证源IP地址的合法性、对异常的流量进行丢弃,从而实现对DDOS攻击的防御。


图5: DDoS检测系统架构

1)数据预处理

采集到的数据要进行降噪处理和插值平滑,包括过滤网络混杂流量、过滤DDoS攻击流量等。根据误差理论,要有效地剔除偶然误差,一般要测量10次以上。在采集到的历史流量数据中,有些可能含有较大的误差(或者是攻击流量),需要对它们分检,剔除可疑值,提高自适应速度。



2)集成学习

我们的目标是学习出一个稳定的且在各个方面表现都较好的模型,但实际情况往往不这么理想,单个维度的异常不足以判断攻击,大多数时候我们只能得到多个有偏好的模型(弱分类器,在某些方面表现的比较好)。

因此,我们引入了集成学习法。集成学习就是组合这里的多个弱分类器以期得到一个更好更全面的强分类器。集成学习潜在的思想是即便某一个弱分类器得到了错误的预测,其他的弱分类器也可以将错误纠正回来,以达到博采众长的目的,从而具有更好的模型泛化能力,有效降低误报。针对DDoS攻击特性分析提取业务流量的特定维度特征,基于多维特征训练若干个个体学习器,并借助集成学习算法得到一个更好更全面的强学习器。自然地,就产生两个问题:

怎么训练每个个体学习器?

在流量模型自学习的过程中,用户可以自定义学习周期,周期越长越能够准确反映用户的流量分布。通过一段时间的学习,系统将准确获取该用户在一段时间内的流量分布,形成包含L4-L7层信息的流量模型,特征包括但不限于:周期内的流量包量/情况、IP/端口分布统计、协议分布统计、连接数/请求量情况。基于多维特征训练若干个个体学习器,通过获取周期内的流量模型,结合用户的流量参数,最终生成一个与用户实际流量拟合得最好的训练模型,并作为后续判断网络中是否存在异常流量的标准。

怎么融合每个个体学习器?

集成学习会挑选一些简单的基础模型进行组装,组装这些基础模型的思路主要有 2 种方法:Bagging,Boosting

检测系统往往需要在大规模的网络流量中,做到对攻击的秒级检测,对实时性要求非常高。Bagging算法可以并行生成各个体学习器,能够极大的提升检测效率。其算法过程如下:

A)从原始样本集中抽取训练集。每轮从原始样本集中使用Bootstraping的方法抽取n个训练样本(在训练集中,有些样本可能被多次抽取到,而有些样本可能一次都没有被抽中)。共进行k轮抽取,得到k个训练集。(k个训练集之间是相互独立的)

B)每次使用一个训练集得到一个模型,k个训练集共得到k个模型。(注:这里并没有具体的分类算法或回归方法,我们可以根据具体问题采用不同的分类或回归方法,如决策树、感知器等)

C)对分类问题:将上步得到的k个模型采用投票的方式得到分类结果(如果是回归问题,计算上述模型的均值作为最后的结果,这里不做赘述)。


图6: bagging集成学习法

DDoS检测是一个分类问题。对分类来说,学习器 将从类别集合中预测出一个类别标签,最常用的是投票法(可根据具体的数据情况进行选择调整)。

---绝对多数投票法(majority voting):即如果某类别标签的投票过半数,则预测结果为该类别。

---相对多数投票法(plurality voting):即预测为得票最多的类别标签,若同时出现多个票数最多,则任选其一。

---加权投票法(weighted voting):即为不同的标记赋予不同的权重,最后再按照相对多数投票法来预测。

注:加权投票法的权重从训练数据中学习而得。

2.2.2 防护逻辑

基于AI的防护方案通过海量的旁路数据训练深度学习模型,模型训练成熟后就具有自动判断正常和异常的能力。在防护过程中,防护系统保持与AI模型通信:防护系统负责采集数据,并发送到AI模型,模型判断数据的合法性,并把结果发送到防护系统,防护系统根据模型的判断结果可以对攻击源进行拉黑等处理,从而实现对DDoS的有效防护。


图 7: 防护系统架构

防护测针对不同攻击场景的差异性定制化AI模型,并充分利用不同AI算法的处理优势实现识别率的最大化,其中CNN AI 模型的架构如图8。CNN AI 模型通过对卷积层、池化层等多个层次结构和参数的精心设计,使得模型具备挖掘深层次特征与潜在特征的能力和良好的泛化性能。目前防护侧AI算法在HTTPS CC、连接型TCP DDoS等场景下表现良好。


图 8: CNN AI模型结构

1.HTTPS CC

HTTPS为数据传输带来更高的安全性的同时,也给了黑客可乘之机。HTTPS协议在网络上传输加密的报文,传统的内容检测技术失去了效果。由于处理HTTPS连接的巨大资源消耗,让HTTPS的DDoS攻击成本较低,危害性却较大。

传统的防护方案对加密流量进行解密,然后在已解密的明文信息中提取攻击特征,从而进行攻击流量识别,降级为普通HTTP CC防护。依赖解密流量的方案其缺点非常明显: 对海量的加密流量逐个解密,防御HTTPS CC对系统的消耗大约是HTTP CC的10倍;场景受限,很多场景,特别是公有云场景,用户并不会将证书导入第三方的防护设备,导致防护系统不具备解密能力,无法防护HTTPS CC。为此需要一种在不解密场景下的HTTPS CC防护方案。

AI防护方案:基于卷积神经网络的HTTPS CC攻击的不解密识别方案应运而生,其核心思想是业务与攻击在SSL握手阶段行为习惯不一致。模型通过对多维度协议特征与行为特征进行学习,实现在不解密情况下,对HTTPS攻击流量的识别。本方案无需解密流量,大大节省开销,在多场景均可适用,具备良好的移植性。同时,从大数据中学习丰富多样的行为模式并延伸出泛化能力,相较传统的行为模式分析,不局限于已知行为模式,具备更高的灵活性和更强的判断能力。去年年底腾讯云某客户就曾遭受HTTPS CC攻击,导致异常连接过多,服务可用性差,开启HTTPS AI模型防护效果良好,可有效拦截攻击流量。

2.连接型TCP DDoS

随着DDoS攻击技术不断提升,黑客越来越偏向于使用真实肉鸡发起的连接型的TCP DDoS攻击。主要原因有:1、虚假源攻击防护技术越来越成熟,传统伪造源IP的攻击手法达不到让服务器拒绝服务的目的;2、黑客的肉鸡资源越来越庞大,每次攻击可以调用大批量肉鸡发起攻击;3、传统TCP防护策略对真实源IP的攻击防护难度大。

现网存在利用肉鸡真实IP发起,建立TCP连接后发送大量垃圾报文,且具有协议栈行为的攻击,传统四层DDoS算法无法有效防护,同时,业务基于私有协议,无法使用JS、验证码等策略做防护,从而导致流量透传,业务瘫痪。现有的挑战算法、成份分析、大数据学习、安全SDK等方案,在一定程度上缓解了攻击,但缺陷也很明显,例如:


图 9: 连接型TCP DDoS

大数据方案:基于大数据对各基线进行学习,即在正常时间段内(没有任何攻击)对流量特性进行学习,包括:新建连接速率、连接并发量等多维度特征。丰富的基线数据作为攻击检测和防护的基础。大数据方案通过基线学习,自动适配不同的业务场景,并且通过学习到的基线用作指导防护,有效提升了连接型TCP DDoS的防护能力。但过于依赖基线,无法覆盖无基线或基线缺失的场景,不具备泛化性能。

安全SDK方案:现有的安全SDK方案通过改造客户端代码接入SDK,客户端访问服务器过程中,均携带经过提前定义好的算法算出来的特定字段,防护端与客户端共享防护算法,接收到客户端发送的报文后,检查该字段合法性,如果客户端发送的该字段非法,则对该连接进行拦截,进而防护连接型TCP DDoS攻击。

安全SDK方案虽然可以防护,但是由于需要修改客户端代码接入,接入门槛较高。而且对部分业务场景,如网站业务都是用户通过浏览器访问,无法改造客户端接入SDK,无法要求所有用户均接入水印,所以对于没有接入水印的用户,无法提供有效防护。同时,接入SDK意味着正常客户端的上行流量会增加,增加了流量成本。

AI防护方案:AI模型采取无监督与有监督结合的方式,通过对会话特征和载荷特征进行采集,不断训练神经网络模型,使其具有判断正常流量及异常流量的能力。模型具有低误杀、高扩展性和兼顾未知攻击类型等的优势。

相对大数据方案,AI防护方案不依赖基线,可以学习各独立特征之间的潜在联系,具备更敏锐的识别技能。同时,泛化能力强,基于大量数据进行自动化学习和训练,无基线场景,如刚上的业务也能防。相对安全SDK,AI防护方案不需要改造客户,即可实现对连接型TCP DDoS攻击的有效、自动的防护,而且对正常业务不会有任何影响,特别适合云这类业务类型繁多、攻击威胁严重、业务重要性高的平台。

除了在DDoS攻防场景取得的进展,AI技术还能运用到更多的安全场景中。通过与流量分析结合,助力于传统基础安全能力的提升增强。


图 10: 页面识别架构图

举个例子,长期以来,Web管理后台一直是攻击者觊觎的目标,比如在未清除弱口令、添加验证码、存在万能口令的情况下直接将管理后台对外,导致产生入侵事件。因此,管理后台的检测一直是扫描检测的重中之重。

传统扫描器识别方法基于关键字,误报和漏报的问题比较突出,规则一旦形成,除非人为更改,否则长期处于停滞状态,灵活性差。AI在识别管理后台上相较于传统基于关键字的方法有非常亮眼的表现:基于机器学习分类算法,模型可以自动学习页面特征,效果远远超过传统方案。同时,引入正负反馈机制配合AI模型训练,大大提升模型识别率。模型具备良好的泛化性能,除了对管理后台的识别,甚至可以实现对其它特定类型页面的识别,比如Django的调试页面、一些框架报错页面等。以上规则已经整合到腾讯的漏洞扫描系统“洞犀”中,效果不错。

人工智能在网络安全领域的应用仍处于初级阶段,挑战机遇并存。持续深挖更多与AI结合的安全场景,构建从数据预处理、数据分析、特征提取、模型训练与参数调优,到模型优化的一体化AI引擎,将有助于传统安全能力的提升。我们也将AI用于传统安全的流量分析,在发现Web攻击、漏洞利用、木马通讯上也取得了一定进展和独有效果,未来有机会将继续与大家分享探讨。

安全平台部宙斯盾DDoS防护系统,基于十余年的防护技术积累,提供专业、可靠的攻击防护解决方案。一直服务于QQ、微信、王者荣耀、LOL、腾讯云等腾讯业务,具备T级流量的DDoS检测和清洗能力,秒级响应,保障业务运营的安全稳定。在服务保障自研业务之余,也进行技术能力输出,目前已经为Garena、知道创宇等合作公司提供防护能力部署支持;也与腾讯云合作输出T-Sec-DDoS高防产品,助力产业互联网客户安全能力升级。

广告时间:团队一直招聘各路英才,如果你对DDoS攻防、流量分析、AI+安全有浓厚兴趣,而且愿意在海量流量防护场景下一展身手,欢迎加入我们。


文章来源: https://security.tencent.com/index.php/blog/msg/144
如有侵权请联系:admin#unsafe.sh