过去十年,云计算的普及为企业提供了高性能计算和数据存储服务。受益于此,机器学习的应用也迎来了爆发式增长。随着上游供应商将机器学习融入到他们的产品中,这些机器学习计算的结果也成为了用户决策的重要依据。作为回应,安全专家警告说,针对机器学习技术漏洞的网络攻击将会激增。大多数在线社交平台、在线视频网站、大型购物网站、搜索引擎和其他服务都有基于机器学习技术的推荐系统。例如Netflix用户喜欢看的电影和表演,Facebook用户喜欢或分享的内容,Twitter用户喜欢或标记的内容,消费者在亚马逊购物网站购买或浏览的产品,互联网用户搜索通过谷歌。这些数据全部反馈给这些公司的机器学习系统,让用户更准确地推送符合自己口味的信息。试图影响这些推荐系统并扭曲其结果的网络攻击者并不是什么新鲜事。虚假账户用于对特定产品投赞成票和投反对票,并分享和推广它们。用户甚至可以购买这种服务,用于在地下市场或“巨魔农场”(注:专门在互联网上散布虚假言论或发布煽动性评论的互联网组织)操纵推荐系统。“从理论上讲,如果攻击者了解用户如何与系统交互,他就可以专门为该用户设计网络攻击,推荐YouTube视频、推送恶意软件或引诱他们关注虚假社交账户等。因此,可以操纵算法用于各种目的,包括虚假信息、网络钓鱼诈骗、改变公众舆论、宣传有害内容以及损害品牌或个人声誉。您甚至可以花钱操纵Google搜索的类型自动完成功能。”什么是数据中毒?数据中毒或模型中毒类型的网络攻击会污染机器学习模型的训练数据。数据中毒通常被认为是一种完整性攻击,因为篡改训练数据会阻止模型做出准确的预测。其他网络攻击可分为根据其影响分为以下三类:机密性攻击:攻击者通过向模型输入数据来推断训练数据中潜在的机密信息有效性攻击:攻击者伪装输入数据以欺骗系统并避免正确分类复制攻击:攻击者通过反向还原模型在本地进行复制或分析,策划攻击或实现自己的经济意图,区分逃避模型预测和分类的网络攻击与中毒攻击的关键在于其持久性。发动投毒攻击的目的是使输入数据被系统识别为训练数据。根据模型数据训练周期的长短,两种攻击的时限也不同。例如,一些中毒攻击需要数周时间才能完成。数据投毒有两种形式,“黑盒”或“白盒”。“黑匣子”是指对基于用户反馈更新学习模型的分类系统的攻击;通常出现在对供应链发起的攻击中)。数据中毒攻击案例帕特尔介绍,从网络安全的角度来看,攻击的目标可能是一个利用机器学习来检测网络异常和可疑活动的系统。如果攻击者知道系统中使用了某种机器学习模型,他们会尝试向模型中输入数据,这会逐渐降低识别的准确率,最终他们的攻击不会被系统识别为异常。这也称为模型偏斜。一个真实的例子来自对电子邮件服务使用的垃圾邮件过滤器的攻击。谷歌反滥用研究团队负责人ElieBursztein在2018年一篇关于攻击机器学习的博客中表示:“在现实中,我们经常发现一些顶级垃圾邮件团队试图破坏Gmail的邮件过滤器,大量垃圾邮件在他们在2017年的影响下无法识别。从2017年11月到2018年初,我们至少遭受了四次试图扭曲我们分类器的大规模恶意攻击。”另一个例子涉及谷歌的VirusTotal病毒扫描服务,许多杀毒软件使用该服务来扩展他们的病毒库。数据中毒攻击,其实在2015年就有报道称,VirusTotal的主动样本中毒攻击导致杀毒软件误将正常文件识别为恶意程序,目前还没有治愈方法数据中毒最大的问题是很难修复。根据使用情况和用户偏好,机器学习模型会定期使用新收集的数据进行再训练。由于数据中毒是在很长一段时间内累积的,通常跨越多个训练时期,因此很难确定何时准确模型的预测开始漂移。恢复数据中毒的影响需要耗时分析受影响部分的历史输入记录,识别并删除所有不良数据样本,帕特尔说。之后,机器学习模型在受感染前的版本上进行了重新训练。然而现实中,面对海量的数据处理和大量的网络攻击,这种方式再训练根本行不通,导致模型无法修复。微软“可靠机器学习”部门首席架构师HyrumAnderson表示:“学术界有一个新概念非常有吸引力,虽然不能在实践中使用,但迟早会发生。它是这样的-叫做机器逆向学习,对GPT-3(OpenAI开发的一种语言预测模型)模型做一次数据训练大约需要1600万美元,如果数据中毒后识别出来,发现中毒数据再训练的成本非常高昂贵。但是如果你可以反向学习,那么建立防御机制会便宜得多,比如让系统取消某些数据的影响并去除它们的权重。但是,我认为机器反向学习至少还需要几年远离实际使用,所以目前唯一的解决办法是用有效数据重新训练模型,尽管这种方法极其困难且昂贵。”重点是检测和预防。由于修复中毒模型极其困难,因此模型开发人员必须花费大量精力研究可以防止中毒攻击或可以在下一个训练周期之前检测恶意数据输入的工具。这些工具包括输入有效性检查、速率限制、回归测试、人工审查和使用各种统计原理检测数据异常的技术。例如,如果大量数据来自相同的几个帐户、IP地址或用户,那么这些数据不应占机器学习模型训练数据的很大比例,训练数据应接受单个特定用户提供的数据量且权重有限。通过“暗启动”(aearlyreleaseofanewfeaturetoasmallgroupofusers),可以将新训练的分类器与以前的数据进行比较,并分析输出有何不同。谷歌的Bursztein还建议sts建立一个“黄金数据库”,任何经过再训练的模型都可以根据该数据库做出准确的预测,从而帮助检测系统演化。安德森说,数据中毒只是系统中更广泛问题的一个特例,称为数据漂移。由于各种原因,每个人都会收到不良数据,包括大型云计算提供商在内的许多人都在研究数据漂移的对策和工具,以检测运营数据和模型性能的重大变化。包含此类功能的服务有AzureMonitor(MicrosoftAzure的全栈监控服务)和AmazonSageMaker(Amazon的机器学习托管服务)。Anderson还表示:“如果训练后模型的性能明显下降,无论是由于中毒攻击还是仅仅接收到一批不良数据,系统都可以检测到。如果你想解决这个问题,你需要彻底排除导致模型训练过程中无意中进入系统的影响或不良数据的中毒攻击。因此,类似的工具是应对中毒攻击的良好开端,并且这种AI风险管理框架逐渐在行业中形成规模行业。”攻击者中毒攻击还需要访问有关模型运行情况的信息,因此尽可能少地泄露信息并对训练数据和模型本身提供强大的访问权限管理至关重要。从这个角度来看,ML防御是紧密相连的对系统和数据的安全和规范操作,如权限控制、启用日志记录、启用文件和数据版本控制等。安德森表示,人工智能和机器学习模型的安全性大多与最基本的数据读写有关对模型、系统、服务器的权限和访问权限,这种情况下,一些小数据服务或一些普通目录下权限高的文件,很容易造成中毒攻击,预防任重而道远正如企业定期渗透一样检查他们的网络和系统以发现弱点,这种检查应该扩展到包括机器文件作为更大的系统或程序安全的一部分。Patel说:“开发人员在构建模型时应该模拟对模型本身的攻击,从而了解如何对模型发起攻击,然后尝试构建能够抵御这些攻击的防御措施。检测结果取决于模拟攻击的数据,所以在模型实施攻击时,可以观察到数据点的特征,然后建立相应的机制来丢弃类似于中毒攻击的数据点。”安德森积极参与微软的机器学习模型防御工作。在最近一次USENIXEnigma会议上的演讲中,他展示了他的团队在Microsoft的一次模拟攻击尝试。他们设法对资源配置服务使用的机器学习模型进行逆向工程,以确保虚拟资源得到有效分配并映射到硬件。在没有直接访问模型的情况下,安德森的团队获得了关于模型如何收集数据的足够信息,以创建模型的本地副本,并对模型发起规避攻击,而不会被系统实时检测到。通过这种方式,他们可以确定一天中的什么时间、在哪些区域以及以何种虚拟机、数据库、大小和复制因子的组合向实际系统发起请求,并且可以高概率地确定机器学习模型将他们要求提供高可用性服务的物理主机过度配置。针对这些超额配置的资源,团队使用占用大量CPU和内存资源的负载发起“吵闹的邻居”攻击(一种独占带宽、磁盘、CPU等资源的云计算架构),针对Highlyavailable服务导致拒绝服务攻击。安德森总结道:“这种攻击与对IT系统的恶意攻击惊人地相似,它们都存在反向渗透、逃避监控和执行,最终影响服务的可用性。”
