加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

颠覆传统安全方式,AI重新定义Web安全

发布时间:2017-10-16 11:13:14 所属栏目:建站 来源:51CTO
导读:副标题#e# 注:从 2006 年 Amazon 发布 EC2 服务至今,已经过去了 11 年。在这 11 年里,AWS 收入从几十万美金上涨到 100 多亿美金,让云计算走进每一家企业。 根据信通院发布的“2016 云计算白皮书”,目前近 90% 的企业已经开始使用云计算(包括公有云、

对于所有行业来讲,获取样本(标注样本)都不容易,而安全领域尤为困难。如对人脸识别的标注,初中生甚至小学生就可以完成,但对于一次安全的威胁事件,就需要极具经验的安全人员才可以完成,两者的成本差距十分巨大。

颠覆传统安全方式,AI重新定义Web安全

 某个注入攻击

如上图所示,这个注入攻击经多次复杂编码,非专业人事很难进行样本标注。所以目前在通用场景下,安全领域的深度学习落地并不多,主要原因也是很难获取海量的标注数据。

02、安全领域的场景特点更加明显

判断攻击的标准会随着业务特点的不同而不同。以最简单的 CC 攻击为例,600 次/ 分钟的访问对于某些企业可能意味着破坏性攻击,但对其他企业则属于正常访问范围。

所以,即便有大量的标注样本,某一企业的标注样本可能对于其他企业毫无用处,这也是导致安全领域应用机器学习较为困难的另一个重要原因。

03、针对传统的文本型攻击,传统思维认为简单的特征工程,甚至直接的正则匹配更有效

我们把 Web 攻击分为行为型攻击和文本型攻击两类:

  • 行为型攻击。每个请求看起来都是正常的,但将其连接成请求走势图时,就会发现问题,如爬虫、撞库、刷单、薅羊毛等。

    以刷粉行为为例:每个请求看起来都是正常的,但攻击者可能动用大量 IP 在短时间内注册大量账号,并关注同一个用户。只有我们把这些行为连接起来一起分析时,才能发现问题。

  • 文本型攻击。传统的漏洞类攻击,如 SQL 注入、命令注入、XSS 攻击等,单纯的把一个请求看成是一段文本,通过文本的特征即可识别其是否为攻击。

当特征的维度空间较低,且有些维度的区分度很高时,通过简单的线性分类器,就可以实现不错的准确率。

例如我们简单的制定一些 SQL 注入的正则规则,也可以适用于很多场景。但是,这样的传统思维却忽略了召回率问题,实际上也很少有人知道,通过 SQL 注入的正则规则,可以达到多少的召回率。

同时,在某些场景,假如业务的正常接口通过 JSON 传递 SQL 语句,那么这种基于正则规则的分类器就会产生极高的误判。

04、传统安全人员并不了解机器学习

大量传统安全公司的安全人员精于构造各种漏洞探测、挖掘各种边界条件绕过,善于制定一个又一个的补丁策略,却并不擅长 AI 机器学习方面的内容,这也说明了这种跨界人才的稀缺和重要。

机器学习重新定义 Web 安全

如何解决安全领域的样本标注问题呢?机器学习分为两大类:

  • 监督学习。要求有精准的标注样本。

  • 无监督学习。无需标注样本,即可以针对特征空间进行聚类计算。在标注困难的安全领域,显然无监督学习是一把利器。

01、无监督学习

无监督学习无需事先准备大量标注样本,通过特征聚类就可以将正常用户和异常用户区分开,从而避免大量样本标注的难题。

聚类的方式有很多,如距离聚类、密度聚类等,但其核心仍是计算两个特征向量的距离。

在 Web 安全领域,我们获得的数据往往是用户的 HTTP 流量或 HTTP 日志,在做距离计算时,可能会遇到如下问题。

例如:每个维度的计算粒度不一样,如两个用户的向量空间里 HTTP 200 返回码比例的距离是两个 float 值的计算,而 request length 的距离则是两个 int 值的计算,这就涉及粒度统一归一化的问题。

在这方面有很多技巧,比如可以使用 Mahalanobis 距离来代替传统的欧式距离,Mahalanobis 距离的本质是通过标准差来约束数值,当标准差大时,说明样本的随机性大,则降低数值的权值。

反之,当标准差小的时候,说明样本具有相当的规律性,则提高数值的权值。

无监督的聚类可以利用 EM 计算模型,可以把类别、簇数或者轮廓系数(Silhouette Coefficient)看成 EM 计算模型中的隐变量,然后不断迭代计算来逼近最佳结果。

最终我们会发现,正常用户和异常聚成不同的簇,之后就可以进行后续处理了。当然,这只是理想情况,更多情况下是正常行为与异常行为分别聚成了很多簇,甚至还有一些簇混杂着正常和异常行为,那么这时就还需要额外的技巧处理。

02、学习无监督聚类的规律

无监督聚类的前提是基于用户的访问行为构建的向量空间,向量空间类似:

[key1:value1,key2:value2,key3:value3...]

这里就涉及两个问题:“如何找到 key”以及“如何确定 value”。

找到合适 key 的本质是特征选择问题,如何从众多的特征维度中,选择最具有区分度和代表性的维度。

为什么不像某些 Deep Learning 一样,将所有特征一起计算?这主要是考虑到计算的复杂度。请注意:特征选择并不等同于特征降维,我们常用的 PCA 主成分和 SVD 分解只是特征降维,本质上 Deep Learning 的前几层某种意义上也是一种特征降维。

特征选择的方法可以根据实际情况进行。实验表明在有正反标注样本的情况下,随机森林是一个不错的选择。如果标注样本较少或本身样本有问题,也可以使用 Pearson 距离来挑选特征。

最终,用户的访问行为会变成一组特征,那特征的 value 如何确定?以最重要的特征——访问频率为例,多高的访问频率值得我们关注?这需要我们对于每个业务场景进行学习,才能确定这些 key 的 value。

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读