针对电商欺诈检测系统的“中毒攻击”
几乎所有高级网络安全产品的销售都会告诉你,人工智能已经被用于保护计算基础设施的许多产品和服务。但是,您可能没有听说过机器学习应用程序自身也需要安全防护,而且这些应用在日常服务中变得越来越普遍。
人工智能应用已经在塑造我们的意识(信息茧房)。大型社交媒体平台普遍使用基于机器学习的推荐机制让用户与平台保持强关联、参与内容并投放精准广告。但很少有人知道,这些系统很容易受到“数据中毒攻击”。
对这些机器学习算法的操纵是司空见惯的,并且存在大量在线服务来帮助完成这些操作。而且,执行此操作不需要任何技术技能——只需掏出您的支付宝刷“点赞”、“订阅”、“关注”、阅读数、转发、评论或任何能够影响算法的数据。
由于这些攻击造成的损失仍然难以用金钱量化——而且成本通常由用户或社会本身承担——大多数互联网平台仅在立法者或监管机构强制要求时才解决其模型的潜在腐败(或腐化)问题。
事实上,任何在不可信数据上训练的模型都可能遭受数据中毒攻击。近日,F-Secure的资深数据科学家Samuel Marchal介绍了对抗电子商务网站的欺诈检测算法。如果这种攻击很容易达成,那么在线零售商就必须重视这个问题。
什么是数据中毒?
机器学习模型的好坏取决于用于训练它的数据的质量和数量。训练准确的机器学习模型通常需要大量数据。为了满足这种需求,开发人员可能会求助于可能不受信任的来源,这可能会打开数据中毒的大门。
数据中毒攻击旨在通过插入错误标记的数据来修改模型的训练集,目的是诱使它做出错误的预测。成功的攻击会损害模型的完整性,从而在模型的预测中产生一致的错误。一旦模型中毒,从攻击中恢复是非常困难的,一些开发人员甚至可能都不会去尝试修复。
数据中毒攻击有两个目标:
- 拒绝服务攻击(DoS),其目标是降低模型的整体性能。
- 后门/特洛伊木马攻击,其目标是降低性能或强制对攻击者选择的输入或输入集进行特定的、不正确的预测。
对欺诈检测模型的成功攻击
研究人员通过与电子商务网站上的欺诈检测系统类似的示例场景来研究数据中毒攻击。经过训练的模型应该能够根据订单中的信息预测订单是合法的(将被支付)还是欺诈(将不被支付)。此类模型将使用零售商可用的最佳数据进行训练,这些数据通常来自之前在网站上下的订单。
针对这种模型的攻击者可能希望从整体上降低欺诈检测系统的性能(因此它通常不善于发现欺诈活动)或发起精确攻击,使攻击者能够在不被发现的情况下进行欺诈活动。
为了对该系统发起攻击,攻击者可以向训练集中的现有数据点注入新数据点或修改现有数据点上的标签。这可以通过冒充一个用户或多个用户并下订单来完成。攻击者为某些订单付款,而不为其他订单付款。目标是在下一次训练模型时降低模型的预测准确性,因此欺诈变得更加难以检测。
在研究人员的电子商务案例中,攻击者可以通过延迟支付订单以将其状态从欺诈变为合法来实现标签翻转。还可以通过与客户支持机制的交互来更改标签。通过对模型及其训练数据有足够的了解,攻击者可以生成优化的数据点,以通过DoS攻击或后门来降低模型的准确性。
数据下毒的艺术
研究者用实验生成了一个小数据集来说明电子商务欺诈检测模型的工作原理。有了这些数据,研究者训练了算法来对该集中的数据点进行分类。选择线性回归和支持向量机(SVM)模型是因为这些模型通常用于执行这些类型的分类操作。
研究者使用梯度上升方法基于拒绝服务或后门攻击策略以最佳方式生成一个或多个中毒数据点,然后研究模型在接受新数据训练后的准确性和决策边界发生了什么变化,其中包括中毒的数据点。自然,为了实现每个攻击目标,需要多个中毒数据点。
通过中毒攻击实施电子商务欺诈
研究者的实验结果发现,与拒绝服务中毒攻击(两者均为100)相比,研究者需要引入更少的中毒数据点来实现后门中毒攻击(线性回归为21,SVM为12)。
线性回归模型比SVM模型更容易受到拒绝服务攻击。在中毒数据点数相同的情况下,线性回归模型的准确率从91.5%降低到56%,而SVM模型的准确率从95%降低到81.5%。请注意,在这种情况下,50%的准确率与掷硬币相同。
SVM模型更容易受到后门中毒攻击。由于SVM模型比线性回归模型具有更高的容量,因此它们的决策边界可以更好地拟合训练集中的异常并在其预测中创建“异常”。另一方面,它需要更多中毒数据点来移动线性回归模型的线性决策边界以适应这些异常。
总结
该实验发现,只要攻击者对机器学习和优化技术有足够的了解,中毒攻击就可以很容易地被攻击者执行。目前已经存在几个公开可用的库,以帮助攻击者创建中毒攻击。
一般来说,任何使用第三方数据训练的机器学习模型都容易受到此类攻击。攻击者可以很容易使用中毒攻击来获取潜在的经济利益。
在研究者的实验设置中,我们观察到复杂的模型更容易受到后门攻击,而简单的模型更容易受到DoS策略的影响,这表明这些模型从设计上没有灵丹妙药来防止所有攻击技术。鉴于重新训练对于现实中使用的模型来说非常困难,同时考虑到自动欺诈的较低潜在成本,我们需要增加额外的防御层来保护这些脆弱而重要的机器学习应用。
为了拥有值得信赖的人工智能,它需要是安全的,但是已经在使用的机器学习算法已经带来了机器无法自行解决的安全挑战。