AI安全入门-人工智能数据与模型安全

参考 人工智能数据与模型安全 from 复旦大学视觉与学习实验室

文章目录

  • 0. 计算机安全学术知名公众号
  • 1. 概述
    • 数据安全
    • 模型安全
  • 3. 人工智能安全基础
    • 3.1 基本概念
      • 攻击者
      • 攻击方法
      • 受害者
      • 受害数据
      • 受害模型
      • 防御者
      • 防御方法
      • 威胁模型
      • 目标数据
      • 替代数据
      • 替代模型
    • 3.2 威胁模型
      • 3.2.1 白盒威胁模型
      • 3.2.2 黑盒威胁模型
      • 3.2.3 灰盒威胁模型
    • 3.3 攻击类型
      • 3.3.1. 攻击目的
        • 3.3.1.1. 破坏型
        • 3.3.1.2. 操纵型
        • 3.3.1.3. 窃取型
      • 3.3.2. 攻击对象
        • 3.3.2.1. 数据
        • 3.3.2.2. 模型
      • 3.3.3. 攻击时机
        • 3.3.3.1. 训练阶段
        • 3.3.3.2. 测试阶段

0. 计算机安全学术知名公众号

  • 安全研究 GoSSIP (蜚语、上海交通大学软件安全小组,主要由李卷孺老师指导) 官网
  • 网安国际 (由清华大学段海新教授、复旦大学杨珉教授、蚂蚁韦韬博士、华为万涛博士等共同发起) 官网
  • 安全学术圈 (SecQuan) 官网
  • 漏洞战争 (林桠泉 泉哥)
  • 安全张之家 (中国科学院大学张玉清教授)
  • 隐者联盟 (AI 安全和多媒体安全,主要由复旦大学钱振兴教授运营)
  • NISL 实验室 (清华大学) 官网

1. 概述

数据安全

  • 数据投毒:通过操纵数据收集或标注过程来污染(毒化)部分训练样本,从而大幅降低最终模型的性能。
  • 数据窃取:从已训练好的模型中逆向工程出训练样本,从而达到窃取原始训练数据的目的。
  • 隐私攻击:利用模型的记忆能力,挖掘模型对特定用户的预测偏好,从而推理出用户的隐私信息。
  • 数据篡改:利用模型的特征学习和数据生成能力,对已有数据进行篡改或者合成全新的虚假数据。

模型安全

  • 对抗攻击:在测试阶段向测试样本中添加对抗噪声,让模型作出错误预测结果,从而破坏模型在实际应用中的性能。
  • 后门攻击:以数据投毒或者修改训练算法的方式,向模型中安插精心设计的后门触发器,从而在测试阶段操纵模型的预测结果。
  • 模型窃取:通过与目标模型交互的方式,训练一个窃取模型来模拟目标模型的结构、功能和性能。

3. 人工智能安全基础

当一个安全问题发生时,我们首先要弄清楚是*“谁攻击了谁”*。这就涉及到人工智能安全问题中三类主要的利益相关者:攻击者、受害者和防御者。

3.1 基本概念

攻击者

攻击者是指对数据、模型及其相关过程,包括数据收集、模型训练和模型部署等,发起恶意监听、窃取、干扰、甚至破坏行为的个人或组织。
注意具体发动攻击的是一个程序,但是会有人类或者组织来操纵,有一种刺人而杀之,曰“非我者,兵也。”的感觉。

攻击方法

攻击方法是指攻击者用来对数据、模型及其相关过程,包括数据收集、模型训练和模型部署等,发起攻击的具体手段。

受害者

受害者是指由于受到数据或模型攻击而利益受到损害的数据或模型所有者、使用者或其他利益相关者。
与受害者密切相关的两个概念是:受害数据(victim data)和受害模型(victim model);

受害数据

受害数据是指受到恶意攻击的训练或测试数据。

受害模型

受害模型是指受到恶意攻击的人工智能模型。

防御者

防御者是指通过一定的防御措施保护数据或者模型免受潜在恶意攻击的个人或组织。

防御方法

防御方法是指防御者用来对数据、模型及其相关过程,包括数据收集、模型训练和模型部署等进行保护,使其免受潜在攻击的具体手段。
下面定义攻防发生的“战场”,即威胁模型。

威胁模型

威胁模型定义了系统的运行环境、安全需求、所面临的安全风险、潜在攻击者、攻击目标和攻击方法、可能的防御策略、防御者可利用的资源等攻防相关的关键设置信息。
简而言之,威胁模型(threat model)是对真实场景的一种模拟,旨在清晰准确的划定攻击者与防御者之间边界,以便公平的开展攻防研究。数据与模型安全研究中常采用的威胁模型类型:白盒威胁模型、灰盒威胁模型和黑盒威胁模型。

目标数据

目标数据是指攻击者在进行攻击时的数据对象。

替代数据

替代数据是指攻击者自己收集的、可以用来替代目标数据的傀儡数据。

替代模型

替代模型是指攻击者自己拥有的、可以用来替代目标模型的攻傀儡模型。

3.2 威胁模型

3.2.1 白盒威胁模型

白盒威胁模型主要是对攻击目标对象来说的,是指攻击者具有对目标数据或目标模型的完全访问权限。只要切实可行,攻击者可以利用任何关于目标数据或目标模型的信息发起攻击。需要注意的是,“白盒”一般指的是访问权限,并不意味着攻击者就可以随意修改目标数据或目标模型。否则,攻击者可以任意破坏数据和模型,而不再需要设计特殊的攻击方法。

3.2.2 黑盒威胁模型

与白盒威胁模型不同,黑盒威胁模型假设攻击者只能通过API(application programming interface)对模型发起查询请求并获得返回结果,而无法获取训练数据、训练方法、模型参数等其他信息。

3.2.3 灰盒威胁模型

灰盒威胁模型介于白盒威胁模型和黑盒威胁模型之间,假设攻击者可以知道攻击目标的部分信息,如任务类型、数据类型、模型结构等,但是无法获得具体的训练数据或模型参数。

3.3 攻击类型

在介绍具体的攻击类型之前,我们需要深入理解机器学习模型本身的特点,因为模型特性决定了它可能存在的弱点和所面临的攻击。这里我们以深度学习模型(即深度神经网络)为例,介绍对机器学习模型不同层次的理解。

  • 机器学习模型是一个学习器
    机器学习模型可以在学习算法,如有监督学习算法、无监督学习算法等的指导下,从给定训练数据中学习潜在的规律,并能将学习到的规律应用到未知数据上去,这是对机器学习模型最朴素的理解。
    学习器存在一系列共同的弱点,比如当任务定义、训练数据、学习算法、训练时长等任何一个环节出了问题,最终得到的模型就会出现性能下降、被恶意攻击等各种风险。所以攻击者可以攻击这其中任何一个环节,以此来阻止模型的正常训练、破坏模型的泛化、向模型里安插后门等等。
  • 机器学习模型是一个计算器
    训练好的机器学习模型可以理解为是一个计算器,其可以对输入样本进行一系列复杂的计算并最终输出预测结果。训练好的机器学习模型可以理解为是一个计算器,其可以对输入样本进行一系列复杂的计算并最终输出预测结果。
    由于机器学习模型的输入往往是多个样本(一批样本),输出也不是单维度的,所以不同维度的计算结果之间也会产生相互干扰。另外,计算器跟具体的任务一般都不是唯一绑定的,也就是说为一个任务涉及的计算器也有可能会被劫持来服务于另一个非法的任务。
  • 机器学习模型是一个存储器
    机器学习模型在训练数据上不断训练的过程也是其不断学习规律、不断存储信息的过程。
    既然机器学习模型是一个存储器,那么其存储的信息就一定可以通过某种方式“提取”出来,导致隐泄露攻击、数据窃取攻击等安全问题的出现。
  • 机器学习模型是一个复杂函数
    机器学习模型可以被理解为一个将输入空间映射到输出空间的复杂函数。
    高维的输入和输出空间决定了其难以通过有限训练数据点达到空间的完美覆盖,导致空间存在大量无法被探索到的高维口袋(high-dimensional pocket)。这样的函数也决定了其内部会存在一些近路(shortcut),在这些路径上输入和输出之间距离很近,不需要复杂的计算即可直接得出结论;同时也会存在一些死胡同(dead end),无论怎么计算也得不到某类输出。

3.3.1. 攻击目的

3.3.1.1. 破坏型

破坏型攻击的目的只有一个,那就是“破坏”。破坏型攻击可以破坏机器学习的任何一个关键环节,包括数据收集过程、训练数据、模型的训练过程、训练得到的模型、模型部署、模型测试、测试数据等等。任何攻击都有一定的动机,对破坏型攻击来说,其攻击动机包括:破坏竞争对手的人工智能系统、以破坏来勒索受害用户、无意间使用了具有破坏性的样本等等。

3.3.1.2. 操纵型

操纵型攻击的目的是控制数据或模型以完成攻击者特定的目的。相比破坏型攻击,此类攻击要求攻击者完成对数据或模型更精细化的控制,攻击难度更大。

3.3.1.3. 窃取型

窃取型攻击的目的是通过窥探数据、模型或者模型的训练过程,以完成对训练数据、训练得到的模型、训练算法等关键信息的窃取。

3.3.2. 攻击对象

机器学习大致遵循“数据收集-模型训练-模型部署”三个步骤。

3.3.2.1. 数据

训练数据和测试数据是两类主要数据,训练数据服务于模型训练,测试数据服务于模型评估。
数据投毒攻击通过污染收集到的训练数据以达到破坏数据、阻碍模型训练的目的。数据投毒攻击可以通过不同的方式进行,比如攻击数据的收集过程、标注过程、或者直接污染收集到的数据。数据窃取通过对模型进行逆向工程,从中恢复出原始训练数据。

3.3.2.2. 模型

针对模型的攻击主要包括对抗攻击、后门攻击和模型窃取三大类,这三类攻击分别代表了破坏型、操纵性和窃取型这三类攻击目的。
对抗攻击的思想是让模型在部署使用阶段犯错,其通过向测试样本中添加微小的对抗噪声来让模型做出错误的预测结果。有意思的是,这种通过修改输入样本来干扰模型预测的攻击方式并不稀奇,反而会引发两个疑问。
(1) 既然攻击者有修改测试数据的权限,那么他/她就可以随意修改数据,那就不会仅限于微小修改。
(2) 攻击者可以修改测试数据这一假设会面临“动机”方面的挑战,即为什么模型的使用者作为受益者一方要让模型犯错呢?

3.3.3. 攻击时机

根据攻击时机的不同,现有攻击大约可以分为训练阶段攻击和测试阶段攻击。

3.3.3.1. 训练阶段

与模型训练紧密相关的是训练数据、训练算法、超参数和模型,这些元素都有被攻击的可能。在训练阶段,攻击者可以对数据进行投毒攻击,通过污染训练数据来破坏模型的正常训练。例如对训练数据进行增、删、改、换等不同形式的改动,以此来降低最终训练得到的模型的性能或者其他属性(如鲁棒性、隐私保护性等)。

目前针对训练算法和超参数的攻击并不多见,但是可以想象的是模型训练对这些参数,比如学习率、初始化参数、训练周期,是很敏感的。但是对训练超参的攻击需要很强的威胁模型,比如攻击者可以控制训练过程或者恶意修改训练代码。一个有意思的观察是,部分研究工作开源的代码存在复现难的问题,需要对训练算法和超参数进行进一步调优才能达到论文中报告的结果。对于轻量级的训练来说这可能影响不大,但是对于大规模训练算法来说,这就会带来大量的训练开销,大大增加研究费用。如果在开源代码中故意对超参数进行隐藏或者过度复杂化以增加复现难度,就可以被视为是一种训练超参攻击。这个攻击很有趣,很像当年我写的代码里面有死循环,被当成病毒干掉了;

3.3.3.2. 测试阶段

相比训练阶段,不论从数据还是模型的角度来说,测试阶段的攻击更多样化。其中很大一部分原因是测试阶段模拟的是模型的真实使用情况,此时模型会以不同的形式接收外部请求,会面临多种多样的攻击。在数据方面,可以以模型为媒介对训练数据进行窃取和隐私攻击,还可以借助模型进行数据篡改和伪造。 在模型方面,可以通过修改测试样本对模型发起对抗攻击,或者通过查询API对模型进行窃取攻击。


本文只做简要记录,详细信息还是细细研究参考书人工智能数据与模型安全

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/45588.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实践致知第16享:设置Word中某一页横着的效果及操作

一、背景需求 小姑电话说:现在有个word文档,里面有个表格太长(如下图所示),希望这一个设置成横的,其余页还是保持竖的! 二、解决方案 1、将鼠标放置在该页的最前面闪烁,然后选择“页面”》“↘…

Python面经

文章目录 Python基本概念1. Python是**解释型**语言还是**编译型**语言2. Python是**面向对象**语言还是面向过程语言3. Python基本数据类型4.append和 extend区别5.del、pop和remove区别6. sort和sorted区别介绍一下Python 中的字符串编码is 和 的区别*arg 和**kwarg作用浅拷…

Electron 进程间通信

文章目录 渲染进程到主进程(单向)渲染进程到主进程(双向)主进程到渲染进程 (单向,可模拟双向) 渲染进程到主进程(单向) send (render 发送)on &a…

【Stable Diffusion】(基础篇三)—— 图生图基础

图生图基础 本系列笔记主要参考B站nenly同学的视频教程,传送门:B站第一套系统的AI绘画课!零基础学会Stable Diffusion,这绝对是你看过的最容易上手的AI绘画教程 | SD WebUI 保姆级攻略_哔哩哔哩_bilibili 本文主要讲解如何使用S…

客户端与服务端之间的通信连接

目录 那什么是Socket? 什么是ServerSocket? 代码展示: 代码解析: 补充: 输入流(InputStream): 输出流(OutputStream): BufferedReader 是如何提高读取效率的&a…

K8s集群初始化遇到的问题

kubectl describe pod coredns-545d6fc579-s9g5s -n kube-system 找到原因1:CoreDNS Pod 处于 Pending 状态的原因是集群中的节点都带有 node.kubernetes.io/not-ready 污点 journalctl -u kubelet -f 14:57:59.178592 3553 remote_image.go:114] "PullIma…

《简历宝典》12 - 简历中“项目经历”,内功学习 - 下篇

这一小节呢,我们继续说简历中 “项目经历” 的一些内功心法。因为项目经历比较核心,所以说完了,内功呢,我们会着重说一下 实战部分。 目录 1 所用技术的考虑 2 自我成长的突出 3 综合使用STAR法则 4 小节 1 所用技术的考虑 …

如何评估AI模型:评估指标的分类、方法及案例解析

如何评估AI模型:评估指标的分类、方法及案例解析 引言第一部分:评估指标的分类第二部分:评估指标的数学基础第三部分:评估指标的选择与应用第四部分:评估指标的局限性第五部分:案例研究第六部分&#xff1a…

pear-admin-fast项目修改为集成PostgreSQL启动

全局搜索代码中的sysdate(),修改为now() 【前者是mysql特有的,后者是postgre特有的】修改application-dev.yml中的数据库url使用DBeaver把mysql中的数据库表导出csv,再从postgre中导入csv脚本转换后出现了bpchar(xx)类型,那么一定…

用友U8存货分类按层级取数SQL语句

SELECT cInvCCode 分类编码, cInvCName 分类名称, iInvCGrade 分类层级, ss.bInvCEnd 是否是末级, aa.* FROM InventoryClass ss LEFT JOIN ( SELECT * FROM ( SELECT cInvCCode AS 一级分类编码, …

python数据可视化(6)——绘制散点图

课程学习来源:b站up:【蚂蚁学python】 【课程链接:【【数据可视化】Python数据图表可视化入门到实战】】 【课程资料链接:【链接】】 Python绘制散点图查看BMI与保险费的关系 散点图: 用两组数据构成多个坐标点,考察…

如何降低老年人患帕金森病的风险?

降低老年人患帕金森病风险的方法 避免接触有害物质:长期接触某些化学物质、农药或其他有害物质可能会增加患帕金森病的风险。应减少这些物质的暴露,例如在工作或生活中采取防护措施。 健康饮食:均衡饮食,多吃富含抗氧化剂的食物&a…

做了一个万能搜索框

最近给网页做了一个搜索框,现在搜索比以前更加方便了,下面简单介绍一下如何使用 我们进入网页版(app.zyjj.cc)点击右上角的搜索就可以看到这个新版的搜索框了 目前支持中文、拼音、首字母等多种搜索方式,大家可以随意…

【Python】Python-docx使用实例 科技档案封面批量生成

使用背景 根据excel表中的信息,按照word模板格式,每条信息生成一个对应的模板及文件名。 我这里的情况是将科技档案的封面格式按照案卷表的明细批量生成。 (单位的档案软件太鸡肋了,没有这个功能) 代码整篇 工程档…

【Linux】常见指令(下)

【Linux】常见指令(下) 通配符 *man指令cp指令echo指令cat指令(简单介绍)cp指令 mv指令alias指令which ctrl ccat指令linux下一切皆文件 more指令less指令head指令tail指令管道 通配符 ‘*’ 通配符’ *‘,是可以匹配…

4 C 语言控制流与循环结构的深入解读

目录 1 复杂表达式的计算过程 2 if-else语句 2.1 基本结构及示例 2.2 if-else if 多分支 2.3 嵌套 if-else 2.4 悬空的 else 2.5 注意事项 2.5.1 if 后面不要加分号 2.5.2 省略 else 2.5.3 省略 {} 2.5.4 注意点 3 while 循环 3.1 一般形式 3.2 流程特点 3.3 注…

Dynamic多数据源

有时候我们在项目中,可能会遇到需要同时使用多个数据库连接的情况,这个时候可以使用MyBatis-Plus的dynamic多数据源的配置。但其实MyBatis-Plus官方还提供了mybatis-mate组件,但是他是付费的企业组件。 官方文档: 多数据源支持 …

识别视频中的人数并统计出来

目的: 使用Python和pysimpleguil以及opencv写一个统计人流量的软件。要求:1 加载选定的视频 2 通过形态学特征识别人,3统计人数并且在界面上显示出来,4 保存识别出人数的信息。 步骤 1: 安装必要的库 首先,确保你已经安装了Python。然后,安装PySimpleGUI和OpenCV。你可…

数电基础 - 可编程逻辑器件

目录 ​编辑 一. 简介 二. 现场可编程逻辑阵列 三. 可编程阵列逻辑 四. 通用阵列逻辑 五. 可擦除的可编程逻辑器件 六. 复杂的可编程逻辑器件 七. 现场可编程门阵列 一. 简介 可编程逻辑器件(Programmable Logic Device,PLD)是一种用…

Gmsh用户界面

主要指出几何、网格、求解三个模块. 几何模块分为基本实体和物理组两个部分,主要对几何体进行操作,并设置物理属性 网格模块主要定义了对网格的操作和对应的算法 求解主要指出了网格求解方法 所有的界面操作都是基于这三个方法的