当前位置: 首页 > article >正文

机器学习(Machine Learning)的安全问题

最近看论文,看到了”对抗样本“的一些内容,然后又研究了一下其背后的东西,发现还有”机器学习的安全“这一问题,然后找了几篇博客看了一下,发现了篇2019年的比较有意思的文章,这里整理一下,方编译后查阅。

机器学习(Machine Learning)的安全问题

  • 关于机器学习,每个人都忘记了什么
    • 病毒软件的发展
    • 安全业务的发展
    • ML 是否需要安全?
    • ML 安全的发展
  • 我的机器学习系统会受到攻击吗?
    • 威胁模型饼图
      • 谁+为什么(WHO+WHY)
      • 如何(HOW)
    • 将威胁模型融为一体
  • 参考文献

关于机器学习,每个人都忘记了什么

人工智能,更具体地说是机器学习,确实正在将科幻小说变为现实。看穿墙壁?通过视频猜测材料的物理特性?通过键盘声音估算击键次数?那么生成逼真的面孔、身体或诗歌呢?或者教机器画画?

现在,如果你真的去和人工智能/ML 领域的从业人员交谈,你可能会得到两种回答中的一种:

  1. 他们对人工智能/ML 所能做的事情感到无比兴奋,并正在研究下一个大的视觉/NLP/强化学习问题;
  2. 他们对我们这些愚蠢的人类正在建造的东西感到无比恐惧,并认为人工通用智能很快就会把人类变成一堆没用的回形针。

病毒软件的发展

让我们回顾历史,重温 PC 市场。第一台个人电脑(Altair 8800)发布于 1975 年,随后的 10 年里,个人电脑不断推陈出新,最终于 1984 年推出了我们现在看起来再熟悉不过的 “苹果 Macintosh”。随之而来的是一股爆炸性的应用浪潮,这股浪潮一直持续到整个 20 世纪 90 年代,直至 2000 年:

在这里插入图片描述

然而,大多数用户并不知道,恶意软件或 “恶意软件”市场正在发生类似的爆炸。

1989 年,罗伯特-莫里斯(Robert Morris)利用 Unix sendmail 进行实验,制作了一个可自我复制的蠕虫病毒,并将其发送到互联网上。最初只是一次实验,最后却成为了第一次 DoS 攻击,造成的损失估计在 10 万到 1 万美元之间,整个互联网的运行速度慢了好几天(当然,这在现在是不可想象的)。

随后,1989 年出现了第一次勒索软件攻击,1996 年出现了第一个 Linux 病毒(“Staog”),1998 年出现了第一个 AOL 木马。

在这里插入图片描述

后来,同样的情况也发生在移动领域:2007 年 iPhone 诞生之后,智能手机的应用出现了爆炸式增长:

在这里插入图片描述

…随后是移动恶意软件的爆炸式增长:

在这里插入图片描述

现在–机器学习怎么样?

尽管热闹非凡,但机器学习的产品化仍处于起步阶段。许多真正前沿的工作仍局限于研究实验室和大学,但即使从研究的角度来看,我们也可以开始看到一些相同的趋势。

按年份和领域分列的机器学习研究论文数量:

在这里插入图片描述

…VS “对抗式机器学习(adversarial machine learning)”(ML 版恶意软件)研究论文数量:

在这里插入图片描述

安全业务的发展

没那么快 好消息是,随着个人电脑占据我们的日常生活,黑客们开始入侵,另一个市场也同时发展起来,那就是安全解决方案市场。

第一款反病毒产品由 Andreas Lüning 和 Kai Figge 于 1987 年为 Atari ST 平台开发。同年,McAffee、NOD、Flu Shot 和 Anti4us 相继问世,并在随后的二十年中推出了更多产品:

在这里插入图片描述

随着移动恶意软件的快速增长,移动领域的安全厂商也出现了类似的爆炸式增长:

在这里插入图片描述
那么机器学习呢?

ML 是否需要安全?

下面是原文作者的原话:

过去,我曾在英国最大的金融科技公司之一 GoCardless 负责反欺诈和反洗钱工作。我的团队每年监管的交易额超过 100亿美元,我们一直在努力将骗子挡在 GC 的循环系统之外。很自然地,我们在某一时刻屈服于炒作,决定尝试机器学习。

让我当时感到惊讶的是,它竟然奏效了。事实上,效果非常好。摒弃传统的启发式方法,我们成功地将欺诈造成的资金损失减少了80%,并将涉嫌洗钱账户的检测率提高了 20 倍之多。 问题只有一个。

我们在我认为是 “关键”的地方部署了机器学习。我们交给算法的任务是不允许失败的,因为一旦失败,我们要么会损失一大笔钱,要么会被吊销金融执照。对于直接负责 GC安全的产品经理我来说,这两件事听起来都不太令人兴奋。

因此,我需要知道 ML 如何以及何时会失败。我们的模型如何被利用?它的内在漏洞在哪里?我如何知道 GoCardless 是否受到攻击?

对ML存在中毒攻击,即攻击者通过在训练过程中注入损坏的数据来影响模型的思维。ML存在对抗性的样本,以及ML模型是可以被精心设计的扰动的输入数据轻易误导的。

在这里插入图片描述

到 2019 年底,1/3 的企业将部署机器学习。这相当于你、我、我们的朋友和亲人每天使用的所有产品的1/3–在任何对机器学习工作原理一知半解的攻击者面前都是赤裸裸的。

是的,机器学习需要安全。

ML 安全的发展

ML 安全是一个非常新兴的领域,到目前为止基本上还不存在。如果说从上述研究中学到了什么,那就是任何没有数学博士学位的人都很难弄明白如何确保他们的 ML 安全(如今几乎没有任何解决方案,只有大量数学研究论文)。

考虑到我们即将把生命中的大部分时间托付给算法,作者认为“我们有责任确保安全,这是你的责任、我的责任,也是整个 ML 社区的责任”。

今天,我们可以做很多事情来构建更强大的 ML 模型。但更重要的是,我们需要转变观念–从 “不惜一切代价保证准确性 ”转变为更加平衡准确性与鲁棒性的方法

在这里插入图片描述

我的机器学习系统会受到攻击吗?

在这里插入图片描述

威胁模型饼图

在 Calypso,当我们考虑威胁模型时,我们喜欢考虑三个独立的部分:

在这里插入图片描述

谁会攻击你?(WHO will attack you?) 一切从 “谁 ”开始。攻击者,对手,对方。定义 “谁 ”的工作可以变得超级简单,也可以变得超级困难。
一方面,你可以直接说 “黑客”。另一方面,这又能为你提供什么信息呢?“了解机器学习如何工作的黑客 "可能更好。“了解机器学习工作原理并有数学背景的黑客 "可能更好。围绕WHO的细节越多越好。

他们为什么要攻击你?(WHY will they attack you?) 为什么 “与 ”谁 "关系密切(下文将一并讨论)。
WHY 背后的想法很简单–他们可以黑你,但为什么要黑?这里面一定有他们想要的东西。赏金,奖励。同样,定义 “为什么 ”可以简单到说 “为什么不”(不建议),也可以难到说 “违反保密性,然后将从我的 ML 系统中提取的数据卖给 X 实体”(更好!)。

他们会如何攻击你?(HOW will they attack you?) 这是技术部分。既然知道了 “谁 ”和 “为什么 ”会攻击你,下一个问题就是 “如何 ”攻击你?
如果我们谈论的是机器学习,他们会在训练或推理过程中攻击你的 ML 吗?他们会掌握多少关于你的系统的信息?他们也许能黑进你的机器学习,但如果黑进你的数据管道更容易,他们会这么做吗?

让我们来详细了解一下。

谁+为什么(WHO+WHY)

WHO。从广义上讲,作者喜欢将对手视为“严肃”的级别。作者认为它是这样的:

  • 聪明的研究人员/工程师在商业机器学习系统上闲逛
  • 白帽参与赏金计划
  • 彭斯特/红队队员进行测试
  • 黑客活动家攻击商业机器学习系统以证明这一点
  • 黑帽攻击商业机器学习系统以获得经济奖励(无论是通过实际部署漏洞还是在暗网市场上出售)
  • 有组织的黑帽团体攻击商业机器学习系统(例如 Anonymous、The Shadow Brokers 和 Legion of Doom)
  • 国家资助的组织(此时基本上是网络战)

重要的是要考虑你的对手有多严重,因为这决定了他们可能获得的知识和工具的种类,从而决定了你的防御水平。

现在是 “为什么”。作者任务“为什么 ”可以分为两个问题:
他们的目标是什么?
他们的动机是什么?
在回答目标问题时,我喜欢使用 CIA 三段论:

在这里插入图片描述
三要素–保密性(confidentiality)完整性(integrity)可用性(availability )–是指安全的三大支柱。如果你能保护所有这三个要素,你就拥有了安全保障。

保密(或隐私)攻击(Confidentiality (or privacy) attacks ) 旨在从您的 ML 系统中提取敏感信息。例如,攻击者可能想推断特定数据点(如您)是否属于特定训练数据集(如医院出院)的一部分。

完整性攻击(Integrity attacks) 会让您的 ML 模型出错,但重要的是,这种攻击不会声张。例如,攻击者可能想让你的分类器将恶意文件当作良性文件,而不影响其整体性能,这样你就永远不会注意到。在完整性攻击中,攻击者可以有多个子目标(从难到易):

  • 源/目标错误分类(Source/target misclassification)–攻击者希望将一个特定类别(“恶意”)分类为另一个特定类别(“良性”)。
  • 目标分类错误(Targeted misclassification)–攻击者希望将特定类别(“停止 ”标志)分类为任何其他类别(例如 “限速 60 ”或 “限速 45 ”或 “狗 ”或 “人 ”或其他。只要不停车就行)。
  • 错误分类(Misclassification)–任何类别变成任何其他类别。这属于可用性攻击的范畴(如下)。
  • 降低信任度(Confidence reduction)–攻击者希望你的模型失去信任度(当模型工作在阈值范围内时很有用,例如在欺诈评分的情况下)。

可用性攻击(Availability attacks) 的目的是让你的 ML 系统完全瘫痪。例如,如果在训练池中插入足够多的坏数据,那么模型学习的边界基本上就是垃圾,模型就会变得毫无用处。这是机器学习领域的 DOS 攻击。

除了攻击者的目标,还有攻击者的动机。这一点要主观得多,而且与WHO交织在一起。如果你是一个黑客组织,顾名思义,你想发表某种声明;如果你是一个黑帽子组织,你可能想获得经济利益。

如何(HOW)

技术部分。别人如何才能真正破解你的模型?(在此,将重点讨论 ML 特有的漏洞,而不包括传统的网络安全问题,如 ML 服务器上的 DDOS)。
我们可以从以下四个方面对 ML 攻击进行分类:

  • 时机(训练/推理)
  • 能力(白盒/黑盒/灰盒)
  • 局限性(扰动距离/功能/领域/再训练频率)
  • 替代方法

时机(Timing ) --这是指攻击发生在 ML 部署管道的哪个位置。这里有两大选择–训练时间和推理时间。

在这里插入图片描述

  1. 训练时的攻击意味着攻击者能够影响训练数据集(威力无限,但很难做到,而且有额外限制)。
  2. 推理时的攻击意味着攻击者只能扰乱直接输入(可能强大,也可能不强大,这取决于模型,但由于只需要一种注入修改输入的方法,因此更容易实施)。

能力(Capability )–指攻击者对 ML 系统内部的了解。具体来说

  • 白盒(WhiteBox )攻击假定攻击者知道底层数据的分布(有可能获取部分数据)、模型的架构、使用的优化算法以及权重和偏差。
  • 黑盒(BlackBox )攻击假定攻击者对 ML 系统一无所知(因此不知道上述任何内容)。它们可以分为两种类型:硬标签(攻击者只从分类器中获得预测标签)和置信度(攻击者从分类器中获得预测标签和置信度分数)。
  • 灰盒(GreyBox )攻击介于两者之间。例如,攻击者可能知道模型是什么样的,但不知道底层数据是什么样的,反之亦然。

限制(Limitations ) 是指限制攻击者可以执行的操作的某些规则。这些确实是 ML 系统特定的。例如:

  • 在图像中,将扰动空间限制为 “距离 ”度量是很常见的,通常是从 Li、L1 或 L2 规范中挑选出来的。关于这种方法是否合理,这里有一个有趣的争论(阅读这份长达 33 页的白皮书,了解更多信息)。
  • 在恶意软件中,攻击者只能在特定位置以特定方式扰乱文件,否则文件将失去其恶意功能或完全崩溃。
  • 在物理设备(卫星、汽车、无人机、监控摄像头)上部署的系统中,攻击者可能只能修改物理域中的输入。
  • 在训练时的攻击中,攻击者需要做到两点:a) 系统根据新数据不断进行再训练(否则他们就无法注入不良数据);b) 系统从外部来源获取数据,最好不需要人工批准。
  • 在隐私攻击中,攻击者一般需要一个没有查询限制并能输出置信度分数的公共端点。置信度分数的限制性特别强–例如,大多数反病毒产品只会告诉你它们认为该文件是 “恶意 ”还是 “良性”,而不会提供更多细节。

替代方案(Alternatives )–一个在安全领域工作了 25 年的人把攻击者形容为 “电”。他们总是选择阻力最小的路径。
这是一个重要的标准,很容易决定一个威胁模型的成败。攻击 ML 组件是否是攻击者达到目的的最简单方法?例如,如果目标是侵犯隐私,他们是否会费尽周折在你的分类器上建立影子模型来获取数据,或者是否有更容易利用的漏洞?

将威胁模型融为一体

让我们把它们汇集在一起:

在这里插入图片描述

现在,让我们来介绍一些术语。

对抗式 ML(Adversarial ML )(ML 安全的学术层面)中,通常从 “WHY ”维度中提取 “Goal”(目标),从 “HOW”(如何)维度中提取 “Timing”(时机)来命名攻击。输出结果如下

在这里插入图片描述

  1. 规避攻击(Evasion attacks)(也称为 “对抗样本(adversarial examples)”) 无疑是最常见的攻击类型。它们发生在推理时,利用的是 ML 固有的漏洞(或者说是 “特征”?)
  2. 病毒攻击(Poisoning attacks) 发生在训练时间,目标有两个–完整性或可用性。攻击者可以在训练池中插入一些精心挑选的示例,从而在训练池中建立一个 “后门”(完整性),也可以插入大量的坏数据,使模型的边界基本上变得毫无用处(可用性)。在此了解有关机器学习中毒的所有信息。
  3. 隐私攻击(rivacy attacks) 可能是研究得最少的一种攻击,但尤其在今天,它是一种极其重要的威胁。在这种情况下,攻击者并不想干扰你的机器学习模型的工作,而是想从中提取可能是敏感的私人信息。有关隐私漏洞和修复方法,请阅读我的完整文章。

参考文献

What everyone forgets about Machine Learning

Will my Machine Learning System be attacked?

Poisoning attacks on Machine Learning

Privacy attacks on Machine Learning


http://www.kler.cn/a/448474.html

相关文章:

  • Liveweb视频融合共享平台在果园农场等项目中的视频监控系统搭建方案
  • 新能源汽车锂离子电池各参数的时间序列关系
  • 【C语言】动态内存管理:详解malloc和free函数
  • CS 144 check5: down the stack (the network interface)
  • 内置函数.
  • ElasticSearch08-分析器详解
  • Web APIs学习 (操作DOM BOM)
  • 什么样的LabVIEW控制算自动控制?
  • c++--------c++概念
  • AI搜索之问题分解 智谱清言、Felo、360 AI搜索、mindsearch
  • ESP8266 WiFi模块入门:搭建网络与测试实践
  • 普通人不搞副业还有什么出路?难道都能选择躺平?
  • 记录仪方案_记录仪安卓主板定制_音视频记录仪PCBA定制开发
  • Ubuntu Netlink 套接字使用介绍
  • Linux之进程相关命令
  • 版本更新导致前端网站资源加载失败:Failed to fetch dynamically imported module
  • 设计模式の享元模板代理模式
  • Redis 基本命令操作指南
  • 解决Ubuntu下蓝牙耳机连接成功但无声音输出问题
  • 开源轮子 - EasyExcel01(核心api)
  • 高超声速技术对于无人机的推进!
  • FFmpeg第二话:FFmpeg 主要结构体剖析
  • 洛谷 P1886:滑动窗口 ← 单调队列(STL queue)
  • 【计算机网络课程设计】校园网规划与设计
  • 【原生js案例】让你的移动页面实现自定义的上拉加载和下拉刷新
  • 贪心算法在背包问题上的运用(Python)