导语:本文将讲述用训练分类器来应对欺骗和滥用问题的4个主要的挑战。
训练分类器来检测欺骗和滥用其实就是处理对抗数据。有对抗数据的话,主要会面临4个挑战:
一是滥用的应对将变成一个非静态化的问题;
二是很难搜集到准确的训练数据;
三是需要处理数据和分类歧义相关的挑战;
四是如何将AI技术应用到那些对AI不友好的产品中去,这些产品往往没有丰富的内容和特征,但仍需保护。
1.非静态问题
一般来说,应用AI技术来解决某个指定的问题时,我们可以不断重用相同的数据,因为问题的定义是稳定不变的。但是应对滥用这样的问题却不然,因为攻击是在不断发展的。为了确保反滥用分类器的准确性,训练的数据需要经常更新把最新的攻击类型加入进来。
下面用一个例子来说明稳定定义的问题和非稳定定义问题的区别。
创建一个分类器来识别猫和其他的动物。这就是一个稳定的问题。因为动物中未来几百年也不会有太大的变化,因此,训练分类的类型时,只需要中最开始的时候收集动物的图像然后进行标注就可以了。
训练分类器来识别钓鱼页面就不是一个稳定的问题,只收集一次数据的方法就不适用了。因为钓鱼页面上不断发展变化的,每一次看起来都非常的不一样。
总的来说,第一个挑战就是
随着攻击的发展,过去的训练数据就会失去作用
当没有完美的解决方法来应对这种训练数据的废弃时,有三种补充策略来帮助应对这种改变的数据:
· 自动化的模型重训练
在新数据的基础上进行自动化的模型重训练,这可以保持跟上攻击发展的步骤哦。当进行自动化的模型重训练时,就是有一个有效集来确保新的模型能正确地执行而且不会引入回归。一般加入超参数优化到重训练过程可以最大化模型的准确度。
· 构建高度通用化的模型
构建的模型需要足够通用化以保证能够检测新的攻击。而这样的模型是非常复杂的,需要确保模型有足够大的容量,而大量的训练数据是一个好的入口。
如果没有足够的真实攻击样例,需要利用数据扩充技术来补充训练数据集,数据扩充技术可以通过生成攻击样本的微变种来增加数据集的总量。数据扩充可以让模型更加鲁棒,并可以明显增加检测的准确率。
· 建立监控和深度防御
最后,还必须设想构建的模型会在某些点被绕过,所以需要构建深度防御体系来解决这个问题。同时,建立监控体系也是必要的,当检测到的数量明显减少或者用户报告数量增多时进行告警。
研究人员Eli会经常被问到一个问题,那就是攻击在实践中的发展速度。这个问题没有一个确切的答案,但是可以通过Gmail攻击拦截的数据进行评估:今天拦截的Gmail恶意附件中的97%是与昨天拦截到的不同的。
因为这些新的恶意附件是最近一些攻击的变种,所以可以被系统进行训练后拦截。
2.缺乏基准数据
对于大多数的分类人类来说,收集训练数据是非常容易的。比如,想要建立一个动物分类器,可以获取一些动物的图片然后进行辨别。
但是收集用于反滥用目的是基准数据(训练数据)是非常不容易的,因为攻击者会尝试用这种方法来伪装成真实用户。因此,有时候真人也是很难去分别哪些是真实的哪些是假的。比如,两个应用商店的图片。你能分别哪个是真实的,哪个是虚假的吗?
相信很难分辨吧!
确实如此。想要很容易的将这些区分开来是不可能的。
第二个挑战在于训练一个成功的分类器:
滥用者会尝试隐藏恶意活动,这会导致很难收集到基准训练数据。
当如何克服这个挑战没有明确的答案前,有三种方式来帮助收集基准测试数据并缓解该问题:
· 使用聚类方法
使用聚类方法可以扩展已知的滥用内容并可以发现更多的内容。但有一个问题就是如何找到一个平衡点,因为如果聚类过渡的话就可能会把好的内容标记为坏的,但如果聚类不够的话,就可能收集不到足够的数据。
· 用蜜罐(honeypot)来收集基准数据
蜜罐控制的设定可以确保只收集攻击的相关信息。蜜罐的主要困难在于要确保收集的数据是生产系统中攻击集的代表。总的来说,蜜罐还是非常有价值的,但是投入的成本也还是挺高的。
· 使用GAN网络
一个新的应用方向是使用机器学习的最新进展和GAN网络来增强训练数据集的可信度。上图中只有最左上角的图片是真实的,其他都是合成的。通过GAN可以生成一些有意义的攻击变种。
3.歧义数据和分类
在构建分类器时遇到的第三个挑战是错误分类或分类不佳的情况,有很多边界的情况即使我们人也很难对其做出良好的分类。
比如,“I am going to kill you我要杀了你”这句话既可以是游戏中一句普通的话,也可以是争吵中的一个威胁。
我们不想要的内容本质上是根据上下文,环境和设定决定的。
所以,除了特定情境外,建立一个所有产品和用户通用的分类器是不可能的。
当想到这个的时候,即使已经建立好的SPAM的概念也会决定定义不够清楚,因为对不同的人有不同的需求。比如,很多Gmail用户会觉得很久之前订阅的邮件现在没有兴趣了,也就变成了垃圾邮件。
同样有三种方法可以帮助解决这种模糊性的问题:
· 构建上下文环境,文化和设置的模型
说起来容易,做起来难。因为需要在分类器中加入代表上下文环境的特征,这能确保分类器在不同的设定下,给出相同的数据也能够达到不同的结果(决策)。
· 使用定制化的模型
模型需要在原有架构的基础上考虑用户兴趣和可忍受的级别。这可以通过增加一些表示用户行为模型的特征。
· 提供用户的额外选择
通过提供给用户更多的可选项来减少模糊性。更多精确的选项会减少这种模糊性。
2015年,Gmail提供给用户一个选项让他们可以取消订阅邮件列表和拦截发送者,给用户更多的控制性。这样的选项可以帮助分类器减少标记为垃圾邮件的模糊性。
4.缺乏明显的特征
第四个挑战是一些产品缺乏明显的特征。截止目前,研究的关注点还在于对富文本进行分类,包括文本,图像和二进制文件等,但并不是所有的产品都有富文本的内容。
总的来说,AI在解决富特征的问题上是有优势的,比如文本和图像分类。但这需要覆盖整个攻击面,并用AI解决不理想或者数量少的用例。同时,我们发现我们面临一个艰难的问题:
一些需要AI保护的产品并没有富特征。
当没有富特征数据时,下面的几个辅助数据可能可以提供一定的帮助:
上下文环境。与客户端软件或网络相关的任何事情,包括用户代理,客户端IP列表,屏幕分辨率。
时间特性。将每个用户的动作序列化建模,而不是将每个事件隔离来看。这些时间序列会提供给用户一个丰富的统计特征集。
异常检测。攻击者的行为不可能跟普通用户完全一样,所以必然会有一些异常的特征,这些异常的特征可以用来增强检测的准确率。
其中的核心是将如果将原始攻击者与高级攻击者区分开的是攻击者精确模仿合法用户行为的能力。因为攻击者在与系统博弈,所以必然会有一些无法欺骗的行为产生。
这些没有欺骗的行为使用one-class分类进行检测。one-class分类的背后是用AI来中数据集中找出属于同一类的所有实体。不是某一类的成员的其他实体都视为异常值。
One-class分类允许在没有攻击样本的情况下检测异常和潜在的攻击。比如,上图中的红色就是用这种one class分类检测到的攻击谷歌产品的恶意IP列表。
总的来说,one-class分类是传统AI系统的一个很好的补充。还可以提前采取这一步来将反馈的结果给标准的二进制类来增加检测的准确率。
下一篇文章会讲述在生产环节运行分类器所遇到的挑战以及如何应对。