人工智能在安全中的应用(HanSight AI WAF)

2019年02月27日 作者: 瀚思科技

用户和企业每天面临各种安全威胁,钓鱼邮件、Web攻击、挖矿软件、勒索软件等等,日新月异的攻击手段给用户带来了极大的困扰,造成了严重的安全威胁。由于现有的检测技术与防御系统已渐渐无法应对多变的挑战,而以机器学习、深度学习为主的人工智能则为安全领域带来了新的契机。

一、传统WAF的困境

传统WAF主要基于规则,也有一些新的WAF是基于语义分析的。 基于规则的WAF,通过维护大量的已知攻击手法的特征规则,用特征规则来匹配Web服务器流量中的攻击行为,这种方式简单有效。但随着攻击的变化,目前暴露出很多问题:

1)规则是基于已知的攻击手法和特征建立的,对未知攻击难以有效应对;

2)固化的规则难以应对灵活的黑客攻击手法。黑客对攻击语句做编码、拼接等处理,有足够多的尝试,就可绕过防护;

3)难以平衡误判和漏判的问题。太松的规则容易误杀正常流量,造成误判;太严的规则又很容易被绕过,造成漏判。

4) 而语义型WAF虽然比规则型WAF提升了很大一个台阶,但它依然是被动型防御,针对新型攻击还是不能够快速有效的防御。

二、AI WAF的优势

相比于传统的规则,AI具有如下优势:

1)自学习能力

规则通常是由安全专家编写的,安全专家的知识和能力是规则型WAF的上限,规则型WAF本身是不能通过输入威胁样本和攻击手法自行学习和训练的;而AI WAF具有自学习能力,可以做到青出于蓝而胜于蓝。

2)业务自适应能力

传统 WAF 对所有客户采用通用的规则库,而实际上每个用户的业务逻辑各不相同,很容易造成误判影响业务。同时,通用的规则防护也难以帮助业务各异的用户有效防护业务风险。 而通过AI学习经验数据、业务数据,形成行为模型,然后再对攻击事件做出判断预测,将使产品具备自学习、自进化、自适应的特性,从被动型防御转为主动性防御。

三、HanSight AI WAF架构

HanSight AI WAF通过无监督和有监督结合的方式。首先能够学习、自适应客户的业务环境。客户环境通常对吞吐量比较敏感,因此过滤器就显得非常重要,通过自学习从而过滤客户环境中大部分的正常流量,只把异常流量送入检测模型,就不会因为部署了WAF而导致大幅增加业务的延时。其次通过多模型融合的方法降低误报并提高检测效果。目前,还不存在一个适合所有场景的万能算法,不同算法在不同场景的小类上表现优劣不一,多算法混合后,一般都能使检测率更高、误报率更低。

而使用深度学习算法,不需要人工提取特征,可以直接从源数据学习,能够学习数据之间的非线性相关性,而这些关系对于人来说通常太过复杂而难以定义。通过深度学习,不仅能提高自动化程度、降低人力成本,还能大幅提高准确率。

四、HanSight AI WAF算法介绍

HanSight AI WAF结合了多个算法模型,通过多模型共同决策,以降低误报提高检测率。下面简单介绍下CNN(卷积神经网络)在HanSight AI WAF中的应用。 CNN深度学习模型在图像识别中取得了巨大的成就和广泛的应用,图像识别的特点主要有:

1)每个像素和周边像素的联系很紧密,和远端的像素联系比较小。

2)平移不变性,要识别的物体在图的左边还是右边,并无区别。

同样的,Web攻击也有上述特点。以SQL Injection为例:

CNN识别SQL Injection攻击的示意图

输入是一串字符串,其中含有SQL Injection攻击。浅层的卷积层会识别一个个字符,再往下的卷积层会识别出一个个短语,最后更深层的卷积层会识别出真正的攻击载荷。攻击载荷也具有和图像类似的特点:相近的字符关系很紧密、远端的字符联系不大,攻击载荷在字符串的中间还是结尾并无区别。

五、测试效果

通过收集到的百万级正常样本、十万级恶意样本,其中恶意样本主要选取了OWASP Top 10中最为典型的XSS、SQL Injection等几种攻击类型数据,通过HanSight自主研发的AI WAF算法模型,可以看到比普通规则,无论是在检测率还是误报率上都有很大的提升。

六、AI WAF的挑战

AI也并不是万能的,对于有些安全问题也需要长期研究,或者也需要和其他如规则、人等结合起来一起做防护。

1)对抗样本

对抗样本是指在真实的样本中添加干扰而合成的新样本,AI模型对新样本的判错率非常高,但是人则比较容易辨别原样本与新样本的差别。 机器学习模型普遍都具有该缺陷。而这也是网络安全普遍存在的现象,网络安全本身就是人与人的对抗。 对于对抗样本的攻击,一方面,从数据的角度,将对抗样本加入训练集中,提高模型的抗干扰能力;另一方面,从模型的角度,可主动生成一个GAN模型,用于生成对抗样本,与分类模型交互监督训练,以提高效果。

2)样本收集

机器学习、深度学习,模型训练通常需要比较大的数据量,否则训练出来的模型很可能是错误的,而网络安全、Web安全有一些子领域的样本收集并不是那么容易,或者攻击样本就很少见。这种情况下,机器学习特别是有监督学习就不一定是一个很好的选择。