在建立机器学习应用后,需要确保它足够安全
软件行业已经非常清楚地显示了,如果你不注意安全性的话,将会发生什么。
编者注:您是否正在寻找在自己公司中使用AI的机会?不要错过2019年6月18日至21日在北京举行的AI会议

最近的一篇文章中我们描述了构建可持续的机器学习实践需要做些什么。 “可持续”一词是指那些不仅仅停留于POC(概念证明)或实验类的项目。 可持续实践意味着和组织的使命融为一体的项目:组织的生死存亡依赖这些项目。这些项目由稳定的工程师团队构建并提供支持,同时管理团队也提供支持,该团队了解机器学习是什么、为什么重要、以及它能够做到什么。 最后,可持续的机器学习意味着,尽可能多方面的产品开发流程被自动化了。这些流程不仅仅包括构建模型,还包括清理数据,构建和管理数据管线,测试等等。 机器学习将深入渗透到我们的组织,人类无法在没有工具的帮助下对它们进行管理。世界各地的公司都意识到,安全对于他们的软件项目至关重要。 没有人想成为下一个索尼,下一个Anthem,或下一个Equifax。 不过,就算我们清楚如何使传统软件更安全(即使我们经常不这样做),机器学习的引入带来一系列新问题。 任何可持续的机器学习实践都必须解决机器学习所独有的安全问题。 我们没有为传统软件做到这一点,我们现在付出了代价。 没有人愿意再付出更多代价。 如果我们从处理传统软件的安全问题方法论中学到一点,那就是我们需要未雨绸缪,而不是亡羊补牢。 正如Joanna Bryson所写,“网络安全和人工智能是不可分割的。”

任何组织机构中,都不可能只存在单一的机器学习应用和模型,会存在许多——成千上万个应用和模型,他们不断地被自动生成和更新。 在低功耗的边缘设备(edge devices)上运行的机器学习模型,运行的范围从手机,到装配线/工具/电器上,甚至家居、建筑结构中的微型传感器,都增加了需要监控的模型数量。5G移动服务的出现显著增加了移动设备的网络带宽,这使得将机器学习放在网络边缘更具吸引力。 我们预计到数十亿计的机器上,每台机器都可能在运行数十个模型。 在这种规模下,我们不能假设我们还有手动处理安全问题的能力。我们需要工具来帮助人类负责安全问题。 我们需要尽可能多地自动化流程,但不要过度自动化,给人类最后的决策权。

在《将机器学习模型转化为真实产品和服务时得到的经验教训》一文中,David Talby写道,“人们在机器学习方面犯的最大错误就是认为这些模型就像任何其他类型的软件一样。” 模型开发不仅仅是软件开发。 模型具备唯一性 – 相同的模型不能两次部署; 任何模型的准确性一旦投入生产环境,精度就会在持续下降;而且,代表真实用户及其行为的训练数据和实时数据之间的差距是巨大的。 在许多方面,建模任务直到模型投入生产才真正开始,这时候模型才开始接受真实环境下的数据。

不幸的是,软件开发与机器学习具备一个相同特征:对安全性的关注仍然缺乏。 安全性往往被倾向于放在低优先级的位置。它得到了一些口头承诺,但是一旦项目截止日期临近,它就被弃置一旁。 在软件方面,这已经在“快速行动,破除旧框架”的心态中形成了习惯。 如果您正在快速构建代码,那么您不会花时间编写干净整洁的代码,更不用说考虑攻击者了。你可能不会“破除旧框架”,但你愿意建立支离破碎的的系统,Daniel Miessler写道,按时交付不安全产品的好处超过了缺点。 你可能很幸运,您创建的漏洞可能永远不会被发现。 但是如果安全专家从一开始就不是开发团队的一部分,如果安全性是最后一分钟才需要加上的东西,如果你依靠运气行事,这不是一个好的态度。机器学习并不例外,而且除了按时交付产品的压力更大,安全问题也不容易理解,攻击者的群体面更大,被攻击的目标价值更大,那些构建机器学习的公司还没开始处理这些问题。

机器学习系统会遇到什么样的攻击,以及它们需要防御什么? 对于所有类型的攻击,我们多年来一直在努力解决,但是机器学习中仍然存在许多独有的漏洞。 这是对机器学习攻击的简要分类:

数据下毒,也被称为将坏数据(“对抗性数据”)注入训练数据。 我们在真实场景下已经多次见过这种情况。 微软的Tay是一个实验性的聊天机器人,很快被和它聊天的人教坏,大放关于种族主义和反犹太主义的厥词。 通过将种族主义内容插入数据流,这些人有效地控制了Tay的行为。 在YouTube,Facebook,Twitter,甚至Google搜索等频道中出现“虚假新闻”的情况类似:一旦发布了假新闻,用户就像苍蝇一样被吸引,推荐算法“学会了”向更多人推荐这种内容。 Danah Boyd论证了,这些事件需要被视为安全问题,为机器学习应用提供的数据被故意的、恶意的进行污染,不是单独算做是恶作剧或算法错误。

任何不断训练自己的机器学习系统在数据下毒面前都很脆弱。 这些应用程序的范围可以从客户服务聊天机器人(你能想象一个呼叫中心机器人表现得像Tay那样吗?)到推荐引擎(可能制定房地产行业贷款屏蔽列表)甚至医疗诊断(修改推荐的药物剂量)。 为了防止数据中毒,您需要对训练数据进行强有力的掌控。 这样的控制,就算不是不可能,也很难实现。 提高搜索引擎排名的“黑帽搜索引擎优化”也只能算是一个一般性的(并且仍然广泛存在)数据中毒的例子。 Google无法控制传入的数据,传入的数据就是网络上的所有内容。 他们唯一的办法是不断调整他们的搜索算法,让滥用数据下毒者得到惩罚。类似地,机器人爬虫和钓鱼大军操纵社交媒体,传播反对派、疫苗接种、新纳粹主义等各种观点。

逃避监控,简单来说是对输入数据进行微妙的改变,导致机器学习系统分类错误。 再一次,我们在真实世界和实验室都看到了这一点。 CV Dazzle使用化妆和发型作为“干扰面部识别技术的伪装术。”其他研究项目表明,通过改变图像的单个像素可以干扰图像分类:船变成汽车,马成为青蛙。 或者,就像人类一样,图像分类器可能会错误的把不属于某个上下文的物体识别出来,例如房间里的大象。认为计算机视觉系统以与人类相似的方式“理解”他们看到的东西是错误的。 他们没有意识到上下文信息,他们对“什么是正常”没有预期; 他们只是在进行高概率的模式匹配。 研究人员报告了自然语言处理中的类似漏洞,其中以不会混淆人类研究人员的方式改变单词甚至字母,导致机器学习误解了整个短语。

虽然这些例子经常是有趣的,但值得思考现实世界的一系列后果:有人可能会使用这些技巧来操控自动驾驶汽车的行为吗?具体实现方式可能是这样:我在一个停止标志上留下了一个标记 – 也许是在顶部贴上一片绿色不干胶便笺。 这是否会使自动驾驶汽车认为停车标志是一个空中飞行的番茄,如果汽车这么认为了,那车会停下来吗? 这种对停车标志的改变并不一定要真实的使人类观察者都觉得像番茄,它只需要将图像改变得处于让模型刚好倾向作出“番茄”判断的边缘。既没有上下文,也没有常识能让机器学习意识到番茄不会出现在半空中。 货运无人机是否会因为误解周围环境而被操纵改变成一种武器? 答案几乎是肯定的。 不要将这些例子视为只存在于学术中而不引起重视。在实验室中改变了几个像素的停止标志,可能与在狩猎季节用于目标练习的停止标志没有什么不同。

模仿攻击试图欺骗模型误识别某人或某物。 目标通常是获得无权访问系统的授权。 例如,攻击者可能想欺骗银行误读支票上的金额。 从水杯,甚至高分辨率照片获得的指纹可用于欺骗指纹认证系统。 South Park在一集中反复使用“Alexa”和“OK Google”字样来钓鱼Alexa和Google Home用户,从而触发观众的设备,这些设备无法区分节目声音和真实声音。 下一代模仿攻击将是“DeepFake”视频,让真实存在的人在视频中阅读某些指定的文字。

逆向工程意味着使用API 收集有关模型的信息,并使用该信息对其进行攻击。 逆向工程也可以意味着使用API 从模型中获取私有信息,比如可能通过检索数据并对其进行去匿名化进行信息获取。在《秘密分享者:测量神经网络无意中的记忆并提取秘密》中,作者表明机器学习模型倾向于记住他们所有的训练数据,并且可以从模型中提取受保护的信息。 保护信息的常用方法不起作用; 该模型仍包含一些本该是秘密的可提取信息。差分隐私 – 以不改变其统计特性的方式将无关数据小心地插入数据集的做法,有一定前景,但成本很高。作者指出,训练速度大幅度降低。 此外,了解并能够实现差分隐私的开发人员数量实在有限。

虽然这些听起来像学术方面的顾虑,但事实并非如此:编写脚本来探测机器学习应用并非难事。此外,Michael Veale等人写道,逆向攻击会引发法律问题。 在GDPR下,如果受保护的数据被模型记住,那些模型是否受到与个人数据相同的监管? 在这种情况下,开发人员必须根据要求,从模型中,而不仅仅从训练数据集中,删除个人信息。销售包含模型的产品将非常困难,甚至自动模型生成等技术也可能成为问题。 同样,作者指出差分隐私是一个方向,但谨慎地说,很少有公司具备正确部署具备差分隐私模型的专业知识。

其他漏洞与其他攻击

这种漏洞的简要分类并不能完整列出机器学习在该领域将面临的所有其他问题。 其中许多漏洞很容易被利用。 您可以探索亚马逊,了解您的产品和哪些产品被一起推荐,从而可能找出您真正的竞争对手,发现值得攻击的对象。 您甚至可以利用亚马逊推荐引擎系统工作的方式进行逆向工程,进而使用这些知识来影响系统作出的推荐。

在该领域已经观察到了更复杂的攻击。 其中一种攻击,涉及到在亚马逊卖家的网站上放置虚假评论,这样一来当卖家删除评论时,亚马逊会因为卖家进行评论操纵从而封禁卖家。 这是对机器学习的攻击吗? 攻击者欺骗人类受害者去触犯亚马逊的规则。 但最终,机器学习系统被欺骗了,它采取了本可能避免的不正确行动(封禁受害者)。

谷歌保龄球”意味着创建大量链接到竞争对手的网站,希望谷歌的排名算法将惩罚竞争对手购买批量链接。 它与“虚假评价”攻击相似,只是它不需要人工中介 —— 它是一种对分析入站链接算法的直接攻击。

广告是最早采用机器学习的行业之一,也是最早的受害者之一。 点击欺诈业已失控,机器学习社区不愿谈论(或不知道)这个问题 – 即便是这样,随着在线广告越来越依赖于机器学习,欺诈者将学习如何直接攻击模型,使他们试探性的攻击显得合法。如果点击数据不可靠,那么根据该数据构建的模型以及这些模型生成的任何结果或建议都是不可靠的。 点击欺诈和针对推荐系统、趋势分析进行的许多攻击本质上是相似的。 一旦部署了“新闻造假”工具,通过一些自动点击就可以轻松实现这一目标。 然后,推荐引擎接管了数据处理,生成推荐结果,进而产生更多的点击。 任何自动化的事物都容易受到攻击,自动化让这些攻击能够大规模发生。

从汽车到无人机的各种自动驾驶工具的出现,又带来了另一系列威胁。 如果自动驾驶车辆上的机器学习系统容易受到攻击,那么可以想象一辆汽车或卡车可以用作谋杀武器。 无人机也是如此,无论是武器化的军用无人机还是消费级无人机都是如此。 军方已经知道无人机很脆弱了; 在2011年,伊朗捕获了美国的无人机,可能是通过欺骗GPS信号做到的。 我们预计会看到针对“智能”消费者健康设备和专业医疗设备的攻击,其中的许多设备是我们已知“很脆弱”的。

采取行动

仅仅责备,或者仅仅思考攻击可能发生的方向都无济于事。 可以采取哪些措施来保护机器学习模型呢? 首先,我们可以从传统软件开始。 不安全软件的最大问题不是我们不了解安全性; 是软件供应商和软件用户本身从不采取保护自己所需的基本步骤。 在超级聪明的黑客面前,我们很容易感到手无寸铁,但现实是,像Equifax这样的网站成为受害者的原因,是因为他们没有采取基本的预防措施,例如安装软件更新。 那么,机器学习开发人员需要做什么?

安全审计是一个很好的起点。 您需要保护哪些资产? 它们在哪里,它们有多脆弱? 谁有权访问这些资源,谁实际需要访问权限? 如何最大限度地减少对关键数据的访问? 例如,运输系统需要客户地址,但不需要信用卡信息; 支付系统需要信用卡信息,但不需要完整的购买历史记录。 这些数据可以在单独的隔离数据库中存储和管理吗? 除此之外,还有基本的保障措施能用吗(比如2FA,双因素身份验证)把Equifax出错归咎于不更新软件是很容易的,但几乎所有软件系统都依赖于数百甚至数千个外部数据库。 您有什么策略来确保它们已更新,并且更新不会破坏正在运行的系统?

与传统软件一样,机器学习系统应使用监控系统生成警报,以便在发生异常或可疑事件时通知员工。 其中一些监控系统已经使用机器学习进行异常检测 – 这意味着监控软件本身可能受到攻击。

渗透测试是互联网领域的常见做法:您的安全人员(或高级一些,安全顾问人员)会攻击您的站点以发现其漏洞。 攻击模拟是渗透测试的扩展,向您展示“攻击者如何针对您公司实现攻击目标。” 他们在寻找什么? 他们怎么做到的? 您是否可以通过输入下毒的数据来控制系统?

通过生成“对抗性图像”来测试计算机视觉系统的工具已经出现,例如Cleverhans和IBM的ART。 我们开始看到描述针对语音识别系统对抗性攻击的论文。对抗性输入是某种更普遍问题的一个特例。 大多数机器学习开发人员认为他们的训练数据与他们的系统在现实世界中将面临的数据类似。 这是一个过渡理想化的最佳案例。 如果您的所有面部都光线充足,聚焦良好且肤色较浅个体,则可以轻松构建面部识别系统。 工作系统需要处理各种图像,包括模糊,聚焦不良,光线不足的图像,以及具有深色皮肤的个体。

安全验证是人工智能研究的一个新领域,仍处于起步阶段。安全验证会询问诸如模型是否可以提供一致结果,或者输入中的微小变化是否会导致输出的大幅变化等问题。 如果机器学习完全像传统软件一样,我们预计攻击者和维护者之间的斗争会不断升级; 更好的防御将导致更复杂的攻击,这将导致新一代的防御。 我们永远不可能说模型是“可验证是安全的”。但重要的是要知道,模型已经通过了测试,并且它对所有已知的攻击都表现得意料之中的可靠。

模型可解释性已成为机器学习研究的重要领域。 理解为什么模型做出特定的决策是很重要的,原因有几个,其中最重要的是它使人们在使用机器学习时心理上觉得舒适。 当然,这种“舒适”可能具有欺骗性。 但是能够探寻模型做出特定决定的原因,可以使人更容易看出它们何时受到了损害。 在开发过程中,可解释性可以测试对抗样本愚弄模型的容易程度,不管是图像分类模型还是信用评分应用中使用的模型。除了知道模型输出外,可解释性还会告诉我们原因,并帮助我们构建更强大,更不容易受操纵的模型,理解模型作出决策的原因应该有助于我们理解其局限性和弱点。 同时,可以想象,可解释性将使发现弱点和攻击方向变得更容易。 如果要向流入模型的数据下毒,它只能帮助了解模型如何对数据做出响应。

在“机器学习中的深度自动化”一文中我们讨论了数据血缘关系和溯源的重要性,以及跟踪它们的工具。 无论您是否自己开发模型,数据血缘关系和源头出处都很重要。 虽然有许多云平台可以自动进行模型构建甚至部署,但最终您的公司要对模型行为负责。 这种责任的负面影响包括从降低利润到法律责任的一切。 如果您不知道数据来自何处以及如何修改数据,您也就无从得知您的数据是否已损坏或者被污染 —— 不管这是由意外还是由恶意行为引起的。

数据集的数据表”提出了一组关于数据集来源,数据收集方式,采样偏差和其他基本信息的标准问题。 给定记录数据集属性的规范,应该很容易测试和检测突发和意外的数据更改。 如果攻击者破坏了您的数据,您应该能够检测到并预先纠正它; 如果没有预见到这一点,那么稍后应该在审计中进行纠正。

制定这样的数据表是一个良好的开端,但仅此而已。我们用于跟踪数据血缘关系和数据来源出处的任何工具都需要自动化。如果依赖于手动跟踪和审计,模型和数据集的数量就会多到无法处理。

在保持开放性和消除对抗攻击影响间找到平衡点

在某些领域,用户和监管机构将越来越倾向于使用那些“能够为如何制定自动化决策和建议提供简单解释”的机器学习服务和产品。但我们已经看到,过多的信息可能导致某些多方博弈模式出现(如SEO领域中的情况)。 披露多少信息取决于具体的应用,行业领域和管辖范围。

这种平衡行为开始出现在机器学习和相关领域,这些领域涉及研究人员的工作(他们倾向于将工作开源),他们面对的是攻击未公开漏洞的那些对手。 是否要“暂时保密”研究结果的争议是数字媒体取证领域一直在讨论的问题。在2018年的一篇文章中Hany Farid指出:“除非有必要提倡向每个人推广一项解决方案,如果某个特定项目没有学生参与的话,我会把新技术暂停一年左右发表。这种策略总能让我在我们的对手不知情的情况下,进行一些分析。“

隐私和安全正在合流

开发人员还需要了解和使用保护隐私的机器学习技术,例如差分隐私,同态加密,安全多方计算和联合学习。 差分隐私是少数几种保护用户数据“逆向运行”模型并从中提取私有数据的技术之一。 同态加密允许系统直接对加密数据进行计算,而无需解密。 联合学习允许单个节点计算模型的一部分,然后将它们的部分发送回来组合以构建完整的模型; 不必转移个人用户的数据。 Google 已经在使用联合学习来改善Android用户输入法补全建议。 然而,这些技术中的一些是缓慢的(在某些情况下,非常慢),并且需要大多数公司没有的专业知识。 而且您经常需要结合使用这些技术来实现隐私。 可以想象,未来的自动化模型构建工具将结合这些技术,最大限度地减少对局部专业知识的需求。

实时数据

机器学习应用越来越多地与实时数据交互,使构建安全可靠系统的任务变得复杂。 像排序引擎这样简单的应用必须在用户做出新选择时不断更新。 一些公司正在引入包含实时用户行为的个性化和推荐模型。 围绕虚假信息的战役是实时发生的,因此检测虚假信息需要能动态更新的知识库,检测模型和缓解问题的模型也要进行实时更新。 创建和传播虚假信息的不良行为者不断变得越来越复杂,使这些信息更难以检测,基于文本的内容尤为如此。 自动文本生成的最新发展意味着“假新闻”的创建可以自动化。 机器学习可以检测潜在的错误信息,但是目前,人们需要验证和拒绝错误的信息。 机器学习可以帮助人类,向人类提供支持,但人类本身必须存在于数据管线循环中。

强化学习的应用经常与实时数据相互作用,研究人员非常清楚需要构建安全可靠的强化学习应用。 对于像自动驾驶这样的应用,只要出现故障就是灾难性的;而与此同时,失效样本的匮乏使得有效训练系统变得更加困难。

组织和文化

在传统的软件开发中,我们终于了解到安全专家必须从一开始就成为开发团队的一员。 安全需要成为组织文化的一部分。 机器学习也是如此:从一开始,合并安全专家和领域专家就很重要,他们了解系统可能会被滥用的方式。 正如Facebook前任首席安全官Alex Stamos所说,“当你做出重大的设计决策时,[为安全性]负责是必要的。”机器学习项目的每个阶段都必须考虑安全性:初始设计,构建数据管线,收集数据,创建模型和部署系统。 不幸的是,正如Stamos指出的那样,实际上很少有团队以这种方式搭建。

结论

无论公司们相信什么,大多数公司都处于采纳机器学习的早期阶段。 具有与谷歌,Facebook,亚马逊或微软相当能力的公司寥寥无几; 在这一点上,大多数人仍在做一些早期的实验和概念证明。 思想和努力还没被投入进安全性的领域。也许那也是公平的:仅仅是一个产品演示,需要安全吗?

也许并不需要,但这个问题值得我们仔细思考历史。 安全性是一个局部性问题,因为现代计算机网络的发明者认为没有必要考虑。 他们曾经建立了ARPAnet:一个永远不会超过几百个站点的学术研究网络。没有人预料到公共互联网的产生。 然而,即使在互联网的原型上,我们在80年代就有了莫里斯蠕虫,并在70年代就存在垃圾邮件。 我们对任何技术所做的一件事就是滥用它。 基于忽视滥用技术这一现实,我们进入了一场永无止境的竞赛:不可能赢,不可能退出,却容易成为输家。

即使我们为早期互联网的问题网开一面,毫无疑问的是,我们已经生活在一个“安全问题至关重要”的世界里。 毫无疑问,机器学习的应用会经常在人们不知情或不同意的情况下接触(实际上是侵入)他们的生活。 是时候高度重视机器学习的安全性了。

我们相信对机器学习系统的攻击将变得更加频繁和复杂。 这就是安全博弈的本质:在一场复杂程度不断增加的博弈中,攻击会被防御反击,反过来又被更复杂的攻击所抵消。 我们已经列出了几种攻击,但请记住,我们还处于早期阶段。 我们的例子并非详尽无遗,当然还有许多漏洞尚无人想到。 这些漏洞将不可避免地被发现; 网络犯罪是一项相当有利可图的国际业务,坏人甚至包括政府组织。

与此同时,赌注越来越高。 我们只是开始为高度脆弱的网络设备,比如物联网(IoT)付出代价。虽然安全社区已经意识到这些问题,但很少有迹象表明设备制造商正在解决这些问题。 物联网设备变得越来越强大,5G网络有望将高带宽,低延迟连接扩展到网络边缘。 我们已经在手机中使用机器学习; 机器学习会延伸到嵌入我们墙壁中的那些接近于微处理器的芯片吗? 已有语音活动探测器可以仅依靠微瓦级别的功耗运行; 正如Twitter上的某些人所指出的,未来一代产品很可能仅依靠声波产生的能量就能运行。 而且已经有智能麦克风,我们极少怀疑它们。 在这种规模上部署不安全的“智能设备”并不是一场一触即发的灾难,这是一场已经发生的灾难。

我们从机器学习中获得了很多收益,我们将继续把它压榨到极限从中获取价值; 但如果没有解决安全问题,我们将不得不承担后果。 软件行业已经非常清楚地证明了,当你不注意安全性时会发生什么。 随着机器学习渗透到我们的生活中,代价将无可避免地变得更高。

相关资源 :

Ben Lorica

Ben Lorica是O’Reilly Media公司的首席数据科学家,同时也是Strata数据会议和O’Reilly人工智能会议的内容日程主管。他曾在多种场景下应用商业智能、数据挖掘、机器学习和统计分析技术,这些场景包括直销、消费者与市场研究、定向广告、文本挖掘和金融工程。他的背景包括在投资管理公司、互联网初创企业和金融服务公司就职。

Mike Loukides

Mike Loukides是O’Reilly传媒负责内容策略的副总裁。他编辑了很多非Windows编程的广受好评的技术书籍。特别是他对编程语言、Unix和其上的应用、系统和网络管理感兴趣。Mike是《系统性能调优》和《Unix上的强大工具》的作者之一。近年来,关注于数据和数据分析领域、分析语言(如R)、数学、Octave以及思考如何让书籍更加社交化。

安全(来源:Pixabay