机器学习系统安全

2023-05-16

Abstract

机器学习已经成为当前计算机领域研究和应用最广泛的技术之一,在图像处理、自然语言处理、 网络安全等领域被广泛应用。然而,一些机器学习算法和训练数据本身还面临着诸多安全威胁,进而影响到基于机器学习的面部检测、恶意程序检测、自动驾驶汽车等实际应用系统的安全性。由目前已知的、针 对 SVM 分类器、聚类、CNNRNN多种机器学习算法的安全威胁为出发点,介绍在机器 学习的训练阶段和测试/推理阶段中出现的、基于对抗样本的投毒、逃逸、模仿、逆向等攻击和隐私泄露 等问题,归纳针对机器学习的敌手模型及其安全评估机制,总结了训练过程和测试过程中的若干防御技 术和隐私保护技术,最后展望了下一步机器学习安全研究的发展趋势。

Introduction

机器学习安全性问题分类体系

针对机器学习安全 问题的分类Marco Barreno 最早提出从三个不同角度对攻击行为进 行分类,之后经过不断的完善,形成右图 所示 的分类体系

第一个角度是依据攻击对分类器的影 响分为诱发型攻击(Causative Attack)(影响训练集) 和探索性攻击(Exploratory Attack)(不影响训练 集)

第二个角度依据攻击造成安全损害(Security Violation)将其分为完整性攻击(Integrity Attack), 可用性攻击(Availability Attack)和隐私窃取攻击 (Privacy Violation Attack

第三个角度从攻击的专 一性(Specificity of an Attack)分为针对性攻击和 非针对性攻击(Indiscriminate Attack)。

 

机器学习敌手模型

敌手目标

敌手目标可以从两个角度描述,即攻击者期望造成的安全破坏程度(完整性、可用性或隐私性)和攻击的专一性(针对性、

非针对性)。例如:攻击者的目标可以是产生一个非针对性的破坏完整性的攻击,来最大化分类器的错误率;也可以产生针对性的窃取隐私的攻击,来从分类器中获得具体的客户隐私信息。

敌手知识

敌手的知识可以从分类器的具体组成来考虑,从敌手是否知道分类器的训练数据、特征集合、学习算法和决策函数的种类及其参数、分类器中可用的反馈信息(敌手通过输入数据得到系统返回的标签信息)等方面将敌手知识划分为有限的知识和完全的知识。

敌手能力

敌手的知识主要是指攻击者对训练数据和测试数据的控制能力。可以从以下几个方面定义

第一是攻击对分类器造成的影响是探索性的还是诱发性的

第二是敌手控制训练数据或者测试数据的程度

第三是敌手操纵的特征的内容及具体程度。

攻击策略

敌手的攻击策略是指攻击者为了最优化其攻击目的会对训练数据和测试数据进行的修改措施。具体包括

攻击哪些样本类型

如何修改类别信息

如何操纵特征等。

 

机器学习面临的安全问题

训练过程

投毒攻击(Poisoning Attack)主要是对机器学习在训练模型时需要的训练数据进行投毒,是一种破坏模型可用性和完整性的诱发型攻击。攻击者通过注入一些攻击者精心伪造的恶意数据样本(带有错误的标签和攻击的性质),破坏原有的训练数据的概率分布,从而使训练出的模型的分类或者聚类的精度降低,达到破坏训模型的目的。

测试/推理过程

测试/推理过程主要指训练出的模型来对新数据进行分类或者聚类的过程,是机器学习模型发挥其作用的阶段。攻击者利用训练模型的缺陷精心制作对抗样本来逃避检测或者模仿受害者以获得非法访问权限,甚至通过基于机器学习的相关应用程序接口来获取内部隐私的训练数据,达到获取受害者隐私信息的目的。我们常见的将针对测试/推理过程的攻击分为欺骗攻击(Spoofing Attack)(包括逃避攻击、模仿攻击)和逆向攻击。

 

机器学习安全防御技术

 

训练过程的防御技术

针对训练过程的投毒攻击行为, 由于其主要是采用在系统的训练过程注入恶意数据的手段, 因此其防御技术主要采用数据清洗Data Sanitization)或者提高学习算法鲁棒性来对抗恶意训练数据

数据清洗方法先将一个候选样本加入基础的训练数据集得到一个新训练数据集, 之后用得到新训练数据集学习出新分类器,再用同一个测试数据集来评估新分类器和原分类器(基础训练集学习得到) 的分类性能。 如果新分类器的错误率和原分类器的错误率相比差很多, 则认为这个候选数据是一个恶意数据,将其移除训练集,否则加入训练集。 该方法在垃圾邮件检测系统上实验取得了较好的效果,但该方法的操作比较繁琐,计算量比较大,不适合大规模候选集合的筛选。

测试/推理过程的防御技术

1.博弈论

Invariant SVM

NashSVM

2.采用考虑数据分布的主动防御机制在训练集中注入带有完全标注的对抗样本, 这种混合了合法样本和对抗样本训练出的模型有更强的鲁棒性。

3.Deep Contractive Networks

通过平滑模型输出的机制来加强模型在小扰动下的鲁棒性

通过使用更平滑的惩罚项来训练模型提高系统的鲁棒性。此外,防御精馏(Defensive Distillation) 技术也可以实现个平滑的目的

4.针对 DNN 中的对抗样本提出了针对训练过程的防御精馏技术。

该方法通过从原来的 DNN 精馏提取出来的类别概率知识,加入到一个小的 DNN 中, 从而在保持分类精度的同时提高模型泛化能力,降低了输入扰动对分类器模型的影响,可以训练出对输入扰动不敏感的平滑分类器模型,提高模型的鲁棒性。

 

隐私保护的机器学习技术

加密技术是对数据隐私的关键, 差分隐私(Differential Privacy)技术就是一种通过加密数据来保护隐私的方式

差分隐私模型是一种被广泛认可的严格的隐私保护模型,它通过对数据添加干扰噪声的方式保护所发布数据中潜在的用户隐私信息。

同态加密(Homomorphic Encryption)技术也通过对数据的加密实现了对数据隐私的保护。同态加密允许用户直接对密文进行特定的代数运算,得到数据仍是加密的结果,与对明文进行同样的操作再将结果加密一样

除了用数据的加密方法来防御一些攻击行为之外, 尽量减少机器学习模型 API 接口的敏感信息输出也是一种保护数据隐私性的思路。


Conclusion and the end

üML system 安全性很重要

ü敌手环境评估是一个好坑(研究热点)

ü隐私保护是提升安全性的重要途径

ü安全的深度学习模型也是一个好坑

ü新型ML算法设计要考虑安全和泛化还有开销

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

机器学习系统安全 的相关文章

随机推荐

  • 图像矩(Hu矩)简介

    xff08 1 xff09 零阶矩 根据矩的定义 xff0c 二维图像的灰度用f x y 表示 xff0c 零阶矩m00表示为 xff1a 表示的是图像灰度的总和 xff08 2 xff09 一阶矩 图像的一阶矩m10和m01表示用来确定图
  • 图像处理之FAST特征点检测算法

    简介 https blog csdn net hujingshuang article details 46898007 FASText 上 Fast 角点 https blog csdn net peaceinmind article d
  • 常用的深度学习模型

    https blog csdn net jackkang01 article details 81064114
  • c++ 两数之和

    c 43 43 两数之和 题目 xff1a 给定一个整数数组 nums 和一个目标值 target xff0c 请你在该数组中找出和为目标值的那两个整数 xff0c 并返回他们的数组下标 你可以假设每种输入只会对应一个答案 但是 xff0c
  • Kubernetes学习笔记

    文章目录 基本概念 xff08 图解 xff09 问题汇总小坑记录node节点加入后 xff0c 网络插件问题connect connection refused 基本概念 xff08 图解 xff09 问题汇总 非常全的一篇 小坑记录 n
  • 解决方法:ChatGPT-OpenAI‘s services are not available in your country

    简单方法 xff1a 代理设置成全局代理 xff0c 并且使用可以访问OpenAI的国家节点 xff01 在浏览器中地址栏输入以下代码后回车 javascript window localStorage removeItem Object
  • Nacos2.2.0适配Oracle12C-建表ddl语句

    span class token keyword create span span class token keyword table span CONFIG INFO span class token punctuation span I
  • Docker快速入门

    1 基本概念 用途 核心思想 docker应用广泛 docker是一个用来装程序及其环境的容器 xff0c 属于linux容器的封装 xff0c 提供简单易用的容器使用接口 解决了环境配置的难题 xff0c 每台电脑环境都不一样 xff0c
  • Kettle-数据同步、将表数据导入到另一张表、不同数据库表数据导入

    Kettle 数据同步 将表数据导入到另一张表 不同数据库表数据导入 选择转换选择表输入双击表输入组件 xff0c 打开编辑框 xff0c 双击数据连接新建按钮添加对应数据库驱动输入源数据查询sql新增输出端表输出 xff08 全量新增 x
  • Oracle-ORA-01461:can bind a LONG value only for insert into a LONG column解决办法之二!

    ORA 01461解决办法 问题场景1 xff1a sql中使用from dual分析解决 场景2 xff1a 字符串超长解决 问题 在客户现场执行写入逻辑时遇到异常 ORA 01461 xff1a can bind a LONG valu
  • Kettle-excel数据同步

    Kettle excel数据同步 Excel输入组件编辑文件选择选择工作表内容字段预览记录 Excel输入组件 编辑 文件选择 选择工作表 内容 字段 若String类型不设置长度 xff08 或设置为 1 xff09 xff0c 则默认长
  • oracle中数据类型number(9,2)的意思

    9表示这个数据的有效位数 xff08 精度 xff09 xff0c 2表示两个小数位 xff08 刻度 xff09 例如 xff1a 1234567 89
  • mybatis-忽略实体对象的某个属性

    方法一 xff1a 在需要忽略的属性上增加 64 transient注解 javax persistence Transient transient是类型修饰符 xff0c 只能用来修饰字段 在对象序列化过程中 xff0c 被transie
  • Elasticsearch -删除索引(index)

    删除单个 DELETE index curl XDELETE 39 http 192 169 1 666 9200 index 你也可以这样删除多个索引 xff1a DELETE index one index two curl XDELE
  • STM32F103ZET6程序移植为C8T6+C8T6下载程序flash timeout的解决方案

    文章目录 一 程序移植 xff1a 程序移植还是蛮简单的二 程序下载 会出现问题 xff08 一 xff09 BOOT0和BOOT1 xff08 二 xff09 程序下载1 代码通用2 状况不断3 解决办法 xff08 三 xff09 ST
  • Android-Studio-Chipmunk版本解决gradle报错connection-refuse的问题

    Android Studio Chipmunk版本解决gradle报错connection refuse的问题 文章目录 Android Studio Chipmunk版本解决gradle报错connection refuse的问题一 问题
  • MapReduce编程-join算法实现

    假设有订单表t order和t product两张数据库表 xff0c 现在需要进行关联查询 这样的sql语句很容易写 select a span class hljs preprocessor id span a span class h
  • 《将博客搬至CSDN》

    将博客搬至CSDN
  • 3D打印Gcode文件命令详解

    目录 3D打印Gcode文件命令详解Gcode文件作用 常用命令 命令 注释G28命令 复位G90和G91命令 设置定位模式M82和M83命令 设定挤丝模式G1命令 运动命令G92命令 设置当前位置M104和M109命令 加热喷嘴M140和
  • 机器学习系统安全

    Abstract 机器学习 已经成为当前计算机领域研究和应用最广泛的技术之一 xff0c 在图像处理 自然语言处理 网络安全等领域被广泛应用 然而 xff0c 一些机器学习算法和训练数据本身还面临着诸多安全威胁 xff0c 进而影响到基于机