论文url

https://arxiv.org/pdf/1702.05983.pdf

@article{hu2017generating,
title={Generating adversarial malware examples for black-box attacks based on GAN},
author={Hu, Weiwei and Tan, Ying},
journal={arXiv preprint arXiv:1702.05983},
year={2017}
}

论文核心的motivation

之前的模型都是基于梯度的,这个是实际情况中不好。如果能够基于黑盒,只需要知道用了什么特征,而不需要知道模型是什么就可以。而且如果能够把那些常规的机器学习模型,比如随机森林,决策树,攻击成功就好了。

怎么知道究竟使用了什么特征呢? 这里特征是很粗粒度的。作者提出可以设计一系列的待测特征去测试目标分类器。比如恶意程序检测,可能会使用API的特征,那么把程序的导入导出表修改一下,然后拿去分类器分类,如果分类结果前后有差异,说明使用了API特征。

作者的方法

作者提出所谓的MalGAN模型:

MalGAN由三部分组成,第一部分是一个生成器,生成器接收恶意样本 m m m 和噪声 z z z 作为输入,输出一个特征向量 o o o, o o o和 m m m是相同维度的。 m m m 是API的 o n e − h o t one-hot one−hot 向量。考虑到实际应用中,为了保持程序的可运行,只能添加往导入、导出表添加新的API名称,而不能删除,因为删除后程序就很有可能因为找不到API而跑不动了。于是取最后的输出为 G θ g ( m , z ) = m a x ( o , m ) G_{\theta g}(m,z)=max(o,m) Gθg​(m,z)=max(o,m) 。对于 m m m 中本来为1的量,不会受影响,而 m m m 中为0的量就去生成器的输出,在梯度反向传播的时候只有来自 o o o 的那些分量才能产生梯度,这种方法很巧妙加上了这种阅读!!

Black-box Detector是被攻击的目标分类器模型,该模型接收输入向量,然后给这个输入向量进行分量,
无需detector输出概率分布,只需要给出一个label即可。攻击者只能把它当做Oracle来使用,而不能取里面的模型参数啥的。Black-box可能是个随机森林,SVM或者神经网络。

Substistute Detector是一个代理分类模型 D θ d ( x ) D_{\theta_d} (x) Dθd​​(x),它是一个神经网络,它的作用是去拟合那个black-box detector,然后给generator提供梯度信息。既然black-box detector获取不到梯度,那么就只能自己整个代理模型去拟合整个black-box。从导师学习的角度来看,black-box就是一个导师,然后substitute是个学生模型,导师把自己的分类能力教给学生。

我们看到,substistute和generator是使用GAN的交替训练方法训练的。而不是先整体求一个代理模型。

训练方法

为了训练MalGAN,攻击者首先得收集恶意样本库和良性样本库。
代理模型的损失函数为:

B B B e n i g n BB_{Benign} BBBenign​ 集合是那些被Black-box detector识别为 B e n i g n Benign Benign的样本库。而 B B M a l w a r e BB_{Malware} BBMalware​ 是被目标模型识别为恶意的样本集。
生成器的损失函数为:

整个训练流程:

实验效果

数据集: 180,000个程序的API 特征向量,这些特征向量是160维的one-hot向量。某个维度的值为1,说明这个样本需要调用这个维度对应的AP.
然后作者还使用不同数据集的划分方法,第一种方法是Black box的训练和MalGAN的训练集一样。第二种方法是Black box和Mal GAN的训练不相交。

Black box detector:作者先用 RF,LR,DT,SVM,MLP,集成模型在上面提到的数据集的某个子集上训练得到一些black-box detector.

攻击结果

  • Black-box 和MalGan相同的训练集:


效果很好,居然可以把RF,DT攻击的那么好,让black box detector 对攻击样本的TPR直接下降到1%一下。

  • Black-box和MalGan的训练集不相同


效果一样很不错!DT和RF的 TPR依然可以降到3%一下!

  • retrain防御
    作者还实验了retrain对malGAN的防御。实验发现,retrain的确特别管用。当black-box的作者收集到足够多的对抗样本后,对black-box模型重新训练一下就能100%的把那些对抗样本识别出来。
    虽然如此,black-box的训练者是很难收集全足够的对抗样本,因为GAN可以生成很多很多的对抗样本。
    一旦black-box把训练后的模型公开出来以后,MalGan又可以基于这个retrained后的detector自己也重新训练一下。重新训练以后,MalGAN的攻击性能又上去了。而且,MalGan重新训练代价很低,而Black-box收集充足的对抗样本再重新训练却很难。两者的难度不一致,导致retrain在实际应用中作用很有限。

启发

MalGAN 可以视为一种良好的 decision based attack,因为它无需拿到模型参数,也无需拿到模型分类结果的logit或者probability。

不足:

  1. 作者没有测试这种方法需要产生多少次对black-box的query,才能达到一个良好的攻击效果。猜测这个应该会很大,也没有考虑如何去降低这个query的次数。
  2. 作者没有交代MalGAN的训练时长。
  3. 实际情况中,不一定能准确的知道black-box究竟使用了啥具体特征。虽然可以通过测试知道black-box会使用api信息,但是究竟使用什么api?如此测试得到?对于复杂的特征,这是一个很难的工作!

对抗机器学习:Generating Adversarial Malware Examples for Black-box Attacks Based on GAN相关推荐

  1. 对抗机器学习(Adversarial Machine Learning)发展现状

    目录 1. 了解对手 1. 1 攻击目标(Goal) 1. 2 知识储备(Knowledge) 1.3 能力限制(Capability) 1.4 攻击策略(Strategy) 2. 学会主动 2.1 ...

  2. 一文读懂对抗机器学习Universal adversarial perturbations | CSDN博文精选

    作者 | Icoding_F2014 来源 | CSDN博客 本文提出一种 universal 对抗扰动,universal 是指同一个扰动加入到不同的图片中,能够使图片被分类模型误分类,而不管图片到 ...

  3. 对抗机器学习系列——深度神经网络的盲点

    1.引言   近些年,深度学习在计算机视觉领域取得了很好的表现,引领了第三次人工智能的浪潮.目前大部分表现优异的应用都用到了深度学习,大红大紫的 AlphaGo 就使用到了深度学习.   但是本期讲的 ...

  4. [advGAN]Generating Adversarial Examples With Adversarial Networks

    这周读论文..读的是这篇反正.这个内容比较新,网上也没啥有特别有价值的参考内容,把学习笔记发上来,希望能有一点点帮助 嗯似乎是提出了用GAN以解决神经网络安全性的问题... 白盒攻击 攻击者能够获知机 ...

  5. 【李宏毅机器学习】adversarial attack 对抗攻击

    note: 对抗训练(adversarial training)通过对抗攻击(adversarial attack)的手段,即生成对抗样本(对部分原样本加入微小的扰动,可能导致误分类),是的NN能适应 ...

  6. Generating Adversarial Examples with Adversarial Networks

    文章目录 概 主要内容 black-box 拓展 Xiao C, Li B, Zhu J, et al. Generating Adversarial Examples with Adversaria ...

  7. 深度学习和机器博弈如何结合_对抗机器学习的博弈论方法

    深度学习和机器博弈如何结合 Artificial Intelligence has known a great success in recent years as it provided us wi ...

  8. 推荐系统中的对抗机器学习技术总结

    近年来,随着硬件基础以及算法能力的显著提高,以深度学习模型为代表的机器学习技术得到了学术界和工业界的广泛关注.由于出色的特征表示能力和数据拟合能力,深度学习模型已经席卷机器学习应用的各个子领域,比如计 ...

  9. 最新综述:图像分类中的对抗机器学习

    ©PaperWeekly 原创 · 作者|孙裕道 学校|北京邮电大学博士生 研究方向|GAN图像生成.人脸对抗样本生成 论文标题: Adversarial Machine Learning in Im ...

最新文章

  1. c++强大还是python强大-C/C++和Python哪个更有前景?
  2. 多组测试数据求最大值
  3. wxWidgets:wxMiniFrame类用法
  4. 使用axios上传照片
  5. SAP系统和微信集成的系列教程之三:微信用户关注公众号之后,自动在SAP C4C系统创建客户主数据
  6. 微信小程序开发学习记录01
  7. 用C++调用tensorflow在python下训练好的模型(centos7)
  8. HarmonyOS硬件创新合作伙伴,【HarmonyOS】HarmonyOS智能硬件开发学习指南 - HDC2020
  9. 数据可视化 信息可视化_动机可视化
  10. 移动研发 DevOps 落地实践
  11. idea解决maven pom依赖下载失败
  12. java getcause_java - 如果在异常上调用getCause(),为什么还要处理Throwable - 堆栈内存溢出...
  13. linux 连接两个异构网,用cheops-ng管理Linux异构网络(图)
  14. shell 面试题 (一) 待续
  15. 产品经理必备 [Axure组件、PRD模板、竞品分析、数据分析等模板]
  16. 小飞侠淘试用免费领取系统-永久免费的试用领取网站开源程序!
  17. linux+ipv6免流量下载,Ubuntu 12.04 校园网下使用IPv6源 免流量更新
  18. 代理服务器(Proxy)原理
  19. 100个精彩的开源游戏
  20. processing软件使用python_Python processing学习

热门文章

  1. 从淘宝商城10.11事件看国民的非理性
  2. SQL Server 批量插入数据方案 SqlBulkCopy 的简单封装,让批量插入更方便
  3. 论述:为什么选择PM
  4. 7-9 旅游规划 (25分) 【最短路径 Floyd+Dijkstra】
  5. Vector3 学习与应用
  6. vector的介绍与使用
  7. c++判断字符串是否包含指定字符串/判断字符串是否相等/保留小数点后几位
  8. docker mysql volum_Docker Volume入门用法详解
  9. 爬取新浪网股票并实现界面化1.0(pyqt5)
  10. 大灰狼的故事-大灰狼和小乌龟