
最近,专家越来越多地解决机器学习模型的安全性问题并提供各种保护方法。 现在是时候详细研究在静态数据集上训练的流行传统建模系统(例如线性模型和树模型)中的潜在漏洞和防御了。 尽管本文的作者不是安全专家,但他仔细地遵循了诸如机器学习中的调试,说明,公平性,可解释性和隐私性之类的主题。
在本文中,我们介绍了典型组织中典型机器学习系统的几种可能的攻击媒介,提供了保护性的试验性解决方案,并考虑了一些常见问题和最有前途的做法。
1.数据损坏攻击
数据失真意味着有人系统地更改训练数据以操纵模型的预测(此类攻击也称为“因果”攻击)。 要扭曲数据,攻击者必须有权访问您的部分或全部训练数据。 在许多公司中,如果缺乏适当的控制,则不同的员工,顾问和承包商可能会具有这种访问权限。 安全范围外的攻击者还可能获得对某些或所有培训数据的未经授权的访问。
对损坏数据的直接攻击可能包括更改数据集标签。 因此,无论模型的商业用途是什么,攻击者都可以管理其预测,例如,通过更改标签,以便模型可以学习如何为攻击者提供大笔贷款,大笔折扣或确定小额保险费。 强迫模型为攻击者的利益做出错误的预测有时被称为违反模型的“完整性”。
攻击者还可以使用数据损坏来训练您的模型,以故意歧视一群人,使他们没有资格获得大笔贷款,大笔折扣或低保费。 从本质上讲,这种攻击类似于DDoS。 强迫模型做出错误的预测以损害他人的行为有时被称为违反模型的“可访问性”。
尽管看起来数据失真比更改数据集中现有行中的值更容易,但您也可以通过向数据集中添加看似无害或多余的列来引入失真。 然后,这些列中的值更改会导致模型预测更改。
现在,让我们看一下在数据损坏的情况下一些可能的保护性和专家(取证)解决方案:
- 差异影响分析 。 许多银行已经在对公平贷款进行差异影响分析 ,以确定其模型是否被不同类别的人所歧视。 但是,到目前为止还没有其他许多组织。 有几种出色的开源工具可用于检测歧视并进行差异影响分析。 例如, Aequitas, Themis和AIF360 。
- 公平或私人模特儿 。 学习公平表示(LFR)和教师合奏的私人聚集(PATE)之类的模型在生成预测时倾向于较少关注单个人口统计属性。 而且,这些模型可能不太容易受到歧视性攻击,以使数据失真。
- 拒绝负面影响(RONI) 。 RONI是一种从数据集中删除数据行的方法,从而降低了预测准确性。 有关RONI的更多信息,请参见第8节, 机器学习安全性 。
- 残留分析 。 在模型预测的残差中搜索奇怪的,可察觉的模式,尤其是与员工,顾问或承包商相关的模式。
- 自我反省 。 评估您的员工,顾问和承包商的模型,以识别异常有利的预测。
可以在训练过程中以及在模型的实时监控框架内进行差异化的影响分析,残差分析和自我反思。
2.水印攻击
水印是从文献中借用的关于深度学习安全性的术语,通常是指在图像中添加特殊像素以从模型中获得所需的结果。 完全有可能对客户或交易数据执行相同的操作。
考虑一种场景,在这种情况下,外部的员工,顾问,承包商或攻击者可以访问代码以用于模型的生产用途,从而进行实时预测。 这样的人可以更改代码以识别输入变量值的奇怪或不太可能的组合,以获得所需的预测结果。 像数据损坏一样,水印攻击可用于破坏模型的完整性或可访问性。 例如,为了破坏完整性,攻击者可以在评估代码中插入“有效载荷”以供模型生产使用,其结果是识别地址99处的0年组合,这将为攻击者带来积极的预测。 为了阻止模型的可用性,他可以在评估代码中插入人为的区分规则,这将不允许模型为特定人群提供正面结果。
使用水印进行攻击的保护性和专家方法可以包括:
- 异常检测 。 自动编码器是一种欺诈检测模型 ,可以识别复杂而奇怪的输入或与其他数据不同的输入。 自动编码器可能会检测到用于触发恶意机制的任何水印。
- 数据完整性限制 。 许多数据库不允许输入变量的奇怪或不切实际的组合,这有可能防止水印攻击。 对于实时接收的数据流的完整性约束 ,相同的效果可能会起作用。
- 差异暴露分析 :请参见第1节 。
- 版本控制 。 像任何其他关键软件产品一样,必须对模型的生产应用程序的评估代码进行版本控制。
异常检测,数据完整性限制和差异影响分析可以在培训期间使用,也可以作为实时模型监视的一部分。
3.代理模型反演
通常,“反转”被称为从模型获取未经授权的信息,而不是在模型中放置信息。 同样,反演可能是“侦察反向工程攻击”的一个示例。 如果攻击者能够从您模型的API或其他端点(网站,应用程序等)获得很多预测,则他可以训练自己的
代理模型 。 简而言之,这是您的预测模型的模拟! 从理论上讲,攻击者可以在用于生成接收到的预测的输入数据与预测本身之间训练代理模型。 根据可以接收的预测数量,代理模型可以成为模型的相当准确的模拟。 在训练了替代模型之后,攻击者将拥有一个“沙盒”,可以从中计划个人化(即“模仿”)或以具有竞争力的示例对模型的完整性进行攻击,或者具有开始恢复机密训练数据某些方面的潜力。 替代模型也可以使用在某种程度上与您的预测相符的外部数据源进行训练,例如
ProPublica对COMPAS作者的累犯模型所做的事情。
为了保护您的模型不使用代理模型进行反转,您可以依靠以下方法:
- 授权访问 。 请求其他身份验证(例如,两个因素)以获取预测。
- 油门预测 限制单个用户的大量快速预测; 考虑人为地增加预测延迟的可能性。
- “白色”(白帽子)替代模型 。 作为白人黑客练习,请尝试以下操作:在生产应用程序的输入和模型预测之间训练自己的代理模型,并仔细观察以下方面:
- 各种类型的“白色”替代模型准确性的界限; 尝试了解代理模型可以实际用于获取有关模型的有害数据的程度。
- 可以从“白色”替代模型中学到的数据趋势类型,例如,由线性模型系数表示的线性趋势。
- 可以通过分析分配给“白色”替代决策树某些节点的人员数量来研究细分或人口分布的类型。
- 可以从“白人”替代决策树中学到的规则,例如,如何准确描绘将获得肯定预测的人。
4.竞争攻击
从理论上讲,专门的黑客可以学习(例如,反复试验(即“智能”或“敏感性分析”)-转换替代模型或社会工程学,如何使用模型来获得所需的预测结果或避免不良后果预测。 尝试使用专门设计的数据字符串实现此类目标的方法称为对抗攻击。 (有时会攻击以调查完整性)。 攻击者可以使用对抗性攻击来获得高额贷款或较低的保险费,或者通过对犯罪风险进行高度评估来避免假释。 有人称使用竞争性例子将预测中的不良结果排除为“逃避”。
尝试使用以下描述的方法来通过竞争示例来防御或检测攻击:
- 激活分析 。 激活分析要求您的预测模型具有比较的内部机制,例如,神经网络中神经元的平均激活或与随机森林中每个末端节点相关的观测值所占的比例。 然后,您可以将此信息与具有实际传入数据流的模型的行为进行比较。 正如我的一位同事所说:“ 这就像在随机森林中看到一个末端节点,相当于0.1%的训练数据,但适合每小时75%的评分线一样 。”
- 异常检测 。 请参阅第2节 。
- 授权访问 。 请参阅第3节 。
- 比较模型 。 在评估新数据时,除了使用更复杂的模型外,还应使用高透明度的比较模型。 解释的模型更难破解,因为它们的机制是透明的。 在评估新数据时,请将新模型与可靠的透明模型进行比较,或者将模型与经过验证的数据和受信任的流程进行训练。 如果较复杂和不透明的模型与已解释(或验证)的模型之间的差异太大,请返回保守模型预测或手动处理数据线。 记录此事件,这可能是具有竞争性例子的攻击。
- 油门预测 :请参阅第3节 。
- “白色”敏感性分析 。 使用敏感性分析来进行您自己的研究攻击,以了解哪些变量值(或它们的组合)会导致预测出现较大波动。 评估新数据时,请查找这些值或值的组合。 要进行“白人”研究分析,您可以使用开源软件包cleverhans 。
- 白色代理模型:请参阅第3节 。
激活分析或比较模型可以在培训期间使用,也可以作为模型实时监控的一部分。
5.非人格化
有目的的黑客可以通过反复试验,通过替代模型或社会工程学的反演来找出输入数据或特定人员所获得的预期预测结果。 然后,攻击者可以冒充此人,从而从预测中受益。 非个性化攻击有时也称为“模拟”攻击,从模型的角度来看,这让人联想到身份盗用。 与竞争性示例攻击一样,通过个性化设置,输入数据会根据您的模型人为更改。 但是,与具有竞争性示例的同一攻击不同,在竞争示例中,可能使用值的随机组合来假冒他人,从而欺骗与另一个建模对象(例如,定罪的客户端)相关联的信息,以获得与此类对象相关联的预测,员工,财务交易,患者,产品等)。 假设攻击者可以找出提供大笔折扣或利益所依赖的模型的特征。 然后,他可以伪造您用于获得这种折扣的信息。 攻击者可以与其他人分享他的策略,这可能会给您的公司造成巨大损失。
如果使用的是两阶段模型,请当心“过敏”攻击:攻击者可以为模型的第一阶段模拟一串普通输入数据,以攻击其第二阶段。
具有非个性化攻击的保护性和专家性方法可能包括:
- 激活分析。 参见第4节 。
- 授权访问。 请参阅第3节 。
- 检查重复项。 在计分阶段,跟踪可获得模型的相似记录的数量。 可以使用自动编码器,多维缩放(MDS)或类似的降维方法在降维空间中完成此操作。 如果在给定的时间内有太多相似的行,请采取纠正措施。
- 威胁通知功能。 将
num_similar_queries
函数保存在管道中,该函数在训练或实现模型后可能立即无用,但可以在评估(或将来的再培训)期间用于将威胁通知模型或管道。 例如,如果在评分时num_similar_queries
的值大于零,则可以发送评估请求以进行手动分析。 将来,当您重新训练模型时,您将可以教它为具有高num_similar_queries
输入线产生负预测结果。
可以在训练期间和实时监视模型时使用激活分析,重复检查和潜在威胁通知。
6.常见问题
一些常见的机器学习用途也带来了更一般的安全性问题。
黑匣子和不必要的复杂性 。 尽管解释模型和模型解释的最新进展使使用准确和透明的非线性分类器和回归器成为可能,但许多机器学习过程仍将重点放在黑盒模型上。 在商业机器学习的标准工作流程中,它们只是一种通常不必要的复杂性。 潜在有害复杂性的其他示例可能是过于奇特的规范或大量的依赖包。 这可能是一个问题,至少有两个原因:
- 与您或您的团队(特别是在当今过热且瞬息万变的“分析”数据市场)相比,一个顽固而积极进取的黑客可以了解有关您过于复杂的黑匣子仿真系统的更多信息。 为此,除了许多其他更常见的黑客工具之外,攻击者可以使用许多新的与模型无关的 解释方法和经典的敏感性分析。 知识的这种不平衡可能会被用于执行第1-5节中所述的攻击,或用于仍未知的其他类型的攻击。
- 研究与开发环境中的机器学习在很大程度上取决于开放源码软件包的多样化生态系统。 其中一些软件包有许多参与者和用户,其他软件包则高度专业化,只有一小部分研究人员和实践者才需要。 众所周知,许多软件包得到了杰出的统计学家和机器学习研究人员的支持,他们专注于数学或算法,而不是软件工程,当然也不是安全性。 在很多情况下,机器学习管道都依赖于数十个甚至数百个外部软件包,每个外部软件包都可以被黑客隐藏以隐藏恶意的“有效载荷”。
分布式系统和模型 。 幸运的是,我们生活在大数据时代。 如今,许多组织使用分布式数据处理和机器学习系统。 分布式计算可能成为来自内部或外部攻击的主要目标。 数据只能在大型分布式数据存储或处理系统的一个或几个工作节点上失真。 可以将水印的后门编码为大型合奏的一个模型。 现在,从业人员应该研究分散在大型计算集群中的数据或模型,而不是调试一个简单的数据集或模型。
分布式拒绝服务(DDoS)攻击 。 如果预测性建模服务在组织的活动中起关键作用,请确保当攻击者以大量请求攻击预测性服务时,至少要考虑最流行的分布式DDoS攻击,以延迟或停止对合法用户的预测。
7.一般决定
您可以使用几种常见的,新的和旧的,最有效的方法来减少安全系统的漏洞,并提高机器学习系统的公平性,可控制性,透明度和信任度。
授权访问和频率调节(节流)预测 。 标准的安全功能,例如附加的身份验证和预测频率调整,在阻止第1-5节中描述的许多攻击媒介方面可能非常有效。
比较模型 。 作为确定是否对预测进行任何操作的比较模型,您可以使用经过验证的旧建模管道或其他具有较高透明度的解释性预测工具。 操作包括数据损坏,水印攻击或竞争示例。 如果您的测试模型的预测与更复杂和不透明的模型的预测之间的差异太大,请记下此类情况。 将其发送给分析人员或采取其他措施来分析或纠正这种情况。 必须采取严格的安全预防措施,以确保基准和输送机在其原始的可靠状态下保持安全和不变。
解释过的,公平的或私人的模型 。 当前,存在提供准确性和可解释性的方法(例如,
单调GBM(M-GBM), 可伸缩贝叶斯规则列表(SBRL) ,
神经网络解释(XNN) )。 与经典的机器学习黑匣子相比,这些准确且可解释的模型更易于记录和调试。 还可以训练较新类型的公平和私有模型(例如LFR,PATE),以了解如何在具有竞争性例子的攻击中使用社会工程学,较少关注可用于观察的外部可见人口统计特征,或者非人格化。 您是否正在考虑将来创建新的机器学习流程? 考虑在风险较小的私有或公平模型基础上进行构建。 它们更容易调试,并且可能抵抗单个对象的特性变化。
调试安全模型 。
调试模型的新领域致力于检测机器学习模型的机制和预测中的错误并进行纠正。 诸如替代模型,残差分析和敏感性分析之类的调试工具可用于白色试验中,以识别您的漏洞,或在分析练习中,用于识别可能或可能发生的任何潜在攻击。
模型文档和解释方法 。 模型文档是减少风险的策略,已在银行业使用了数十年。 当模型所有者的组成发生变化时,它允许您保存和传递有关复杂建模系统的知识。 传统上,文档用于高透明度的线性模型。 但是,随着功能强大,准确的解释工具(例如
SHAP树和神经网络
局部函数的基于派生的属性 )的出现,至少可以对已有的黑匣子模型工作流程进行一些解释,调试和记录。 显然,文档现在应该包括所有安全目标,包括已知,固定或预期的漏洞。
出于安全原因,直接监视和管理模型 。 认真的从业者了解到,大多数模型都是以数据集的形式对静态的静态“快照”进行训练的,而实时的预测准确性会下降,因为当前的事物状态正在远离早先收集的信息。 如今,大多数模型的监视旨在识别输入变量分布中的这种偏差,最终将导致准确性下降。 模型监视应设计为跟踪1-5节中描述的攻击以及调试模型时发现的任何其他潜在威胁。 尽管这并不总是与安全直接相关,但也应实时评估模型的不同效果。 除模型文档外,还必须对所有建模工件,源代码和关联的元数据进行管理,版本控制和检查安全性,以及它们的宝贵商业资产。
威胁通知功能 。 初步或后续处理的功能,规则和阶段可能包含在您的模型或配备有可能威胁通知手段的流程中:例如,模型中的相似行数; 当前行是否代表员工,承包商或顾问; 当前行中的值是否与竞争示例中的白人攻击获得的值相似? 在模型的第一次训练期间可能需要也可能不需要这些功能。 但是,为它们节省空间对于评估新数据或随后对模型进行再培训可能非常有用。
检测系统异常 。 在整个预测建模系统的操作统计信息(特定时间段内的预测数,延迟,CPU,内存和磁盘负载,同时使用的用户数等)的基础上,基于自动编码器训练用于检测异常的元模式。异常。 异常可以判断是否出了问题。 将需要进行后续调查或采用特殊机制来准确跟踪问题的原因。
8.参考资料和信息,供进一步阅读
关于机器学习安全性的大量现代学术文献集中在自适应学习,深度学习和加密上。 但是,到目前为止,作者还不知道实际上会做所有这些事情的实践者。 因此,除了最近发表的文章和帖子外,我们还介绍了1990年代和2000年代初有关网络违规,病毒检测,垃圾邮件过滤以及相关主题的文章,它们也是有用的资料来源。 如果您想了解有关保护机器学习模型的有趣话题的更多信息,请使用以下主要链接-过去和现在-撰写本文。
结论
那些关心机器学习的科学和实践的人担心这样一个事实,即通过机器学习进行黑客攻击的威胁,以及越来越多的违反机密性和算法歧视的威胁,可能会加剧对机器学习和人工智能的公众和政治怀疑论。 我们都需要记住AI在最近的艰难时期。 安全漏洞,侵犯隐私和算法歧视可能会合并在一起,从而导致用于计算机培训研究的资金减少,或者导致用于规范该领域的严厉措施。 让我们继续讨论和解决这些重要问题,以防止发生危机,而不破坏其后果。