知物由学 | AI网络安全实战:生成对抗网络

“知物由学”是网易云易盾打造的一个品牌栏目,词语出自汉·王充《论衡·实知》。人,能力有高下之分,学习才知道事物的道理,而后才有智慧,不去求问就不会知道。“知物由学”希望通过一篇篇技术干货、趋势解读、人物思考和沉淀给你带来收获的同时,也希望打开你的眼界,成就不一样的你。

以下是正文:

作者:Brad Harris,安全研究员,Brad曾在公共和私营部门的网络和计算机安全领域工作过。他已经完成了从渗透测试到逆向工程到应用研究的所有工作,目前他是IBMX-Force的研究员。

GANs是人工智能(AI)的最新思想之一。在我们深入讨论这个话题之前,让我们先来看看“对抗性”这个词的含义。在AI的原始应用中,这个词指的是用来欺骗评估神经网络或另一个机器学习模型的样本类型。随着机器学习在安全应用程序中的应用越来越多,这个样本类型变得非常重要。

想象一下包含终止标记的文档,比如HTML、文档长度、RTF文本格式(.rtf)或(.doc)文件格式。因为这些文件可以有附加到末尾的任意字节,这就产生了文件空间,可以用来创建这些对抗样本。

目前,最先进的技术集中表现在图像上,但它也可能适用于其他的文件格式。从理论上讲,这些格式可能更容易受到攻击,因为图像必须稍作更改才能确保人类仍能识别它。这就产生了针对这些样本的几种不同的攻击(和防御),弗吉尼亚大学的研究人员在一篇论文中更详细地描述了这些样本,“特征压缩:在深层神经网络中对抗性样本的检测[1]”

什么是生成的对抗性网络?

根据O 'Reilly媒体的说法,生成对抗性网络是“学习产生与一些已知的输入数据相似的合成数据的神经网络。”这些网络对“对抗性”的定义与上面描述的稍有不同,在这种情况下,这个术语指的是两个神经网络——一个生成器和一个鉴别器,它们在游戏中相互竞争以获得成功。游戏的目的是让生成器用类似于训练集的样本来欺骗鉴别器,这个想法在Ian J. Goodfellow的一篇研究论文首次提出,“生成敌对网络[2]。”

当鉴别器拒绝由生成器生成的一个样本时,生成器将学习更多关于好的样本的内容。注意,生成器必须从某种概率分布开始,这种概率通常只是正态分布,这使得GAN变得非常实用,且易于初始化。如果生成器能更多地学习真实的样本,它可以选择一个更好的概率分布。通常,鉴别器充当二进制分类器——也就是说,它说“是”或“不是”。所以,对于鉴别器只有两个选项可以选择简化架构并使GANs实用。

生成器如何生成出更接近真实的样本呢?生成器每次向鉴别器发送样本,鉴别器都会向它返回一个信号,告诉它与真实样本有多接近。从技术上讲,这是梯度差异,但你可以将其视为接近度/相似度的指标。换句话说,鉴别器暴露出生成器生成的样本与真实样本有多接近的信息,以及它该如何调整使其生成的样本更接近真实样本。随着生成器根据鉴别器返回的信息不断生成样本,在理想情况下,生成器最终生成出的样本会和真实样本相一致。

半监督学习

鉴别器从训练集和发生器得到样本。训练时,它将输入标记为1(通常使用平滑因子使值接近1为正值),并将生成器图像标记为0。鉴别器就是这样初始化自己的。然后它假定来自生成器的任何图像都是假的,这就是它创建二进制训练集的方式。

在实际意义上,网络的每一半都在同一时间运行,这意味着每一半在完全不知道的情况下初始化。但是,鉴别器可以访问训练集中所隐藏的存储信息,而生成器只能根据鉴别器返回的初始缺陷指标器进行调整。这是可行的,因为在开始的时候,生成器创建了可以被称为噪声的Y样本——这些样本太假了,以至于它们根本不像真实的样本。因此,鉴别器可以安全地说它从生成器收到的任何样本都是假的。

这在技术上称为半监督学习。在半监督学习中,该算法(鉴别器)有一组被标记为真实的样本,一组不是。在这种情况下,鉴别器知道训练集包含了真实的样本,但是它不能确定由生成器发送的初始样本与真实样本不太接近。它只能假定输出是噪声,因为生成器对真实样本应该是什么样子知之甚少。

由于概率分布极其精确,生成器可以快速创建令人信服的样本。然而,这违背了GANs的目的,因为如果一个人已经知道了详细的概率分布,就会有更简单和更直接的方法来得到真实的样本。

随着时间的推移,鉴别器从训练集中学习,并向生成器发送越来越多的有意义的信号。当这发生时,生成器越来越接近于从训练集的样本中学习样本。再一次,生成器的唯一输入是初始概率分布(通常是正态分布)和它从鉴别器返回的指示器。它从来没有见过真实的样本。

现在我们已经描述了生成对抗网络(GANs)的起源和一般功能,让我们来探讨一下人工智能(AI)中这一令人兴奋的新发展在网络安全方面的作用。

PassGAN:用生成对抗网络破解密码

这种技术最著名的应用是在一篇由研究人员Briland Hitaj、Paolo Gasti、Giuseppe Ateniese和Fernando Perez - Cruz撰写的题为“PassGAN:密码猜测的深度学习方法”的论文中描述的[3],其代码可在GitHub上找到[4]。

在这个项目中,研究人员首先使用GAN来测试破解密码工具Johnthe Ripper和HashCat,然后扩充HashCat的猜测规则。GAN非常成功:它接受了990万个独特的泄露密码的训练了2370万个密码包括重复密码。这是不涉及映像的GANs安全应用程序的一个罕见示例。

据该报报道,PassGAN的成绩是John the Ripper的实验室规则集的两倍,并与HashCat的最佳64和第2代规则集竞争。然而,作者指出,当他们使用PassGAN作为对HashCat的扩展时,他们产生了惊人的结果----——这种组合破解的密码比单独使用HashCat要多18%到24%。这确实是一个惊人的结果。如果HashCat能够从数据泄露中破解100万个密码,则该扩展将向破解的密码集中再添加18万到24万个密码。考虑到我们过去看到的大量数据泄露,这并非不现实。

更重要的是,作者声称他们的技术能够猜测不在规则范围内的密码。这是因为PassGAN的生成器了解了训练集的密码分布。它学习了更多的人类模式,并生成了与这些人类生成模式相近的密码。这意味着PassGAN会学到一些典型的密码破解程序永远也抓不到的东西。

需要注意的是,作者将训练数据和猜测中的最大密码长度设置为10个字符。我希望看到同样的实验使用更长的密码:在撰写本文时,13个字符被广泛认为是强密码的必要条件。

这个项目也很有趣,因为它生成文本作为输出。这些问题中的许多都是基于图像识别和操纵的,比如我们在研究另一篇描述使用GANs生成安全隐写术的论文是所看到的。

SSGAN: GANs在隐写术中的应用

隐写术是将信息隐藏在其他看起来正常的文件中的过程。例如,改变图像的每个RGB像素值中的最低有效位将允许信息泄漏而不会破坏用于人类感知的图像。然而,在统计上,这些图像易于被检测。

×××的一篇题为“SSGAN :基于生成对抗网络的安全隐写术[5]”的论文描述了研究人员试图使用GANs来创建隐写术的方案,SSGAN方法改进了早期在该领域使用另一种性能较差的策略的项目。

与PassGAN项目不同,本项目使用了一个生成器和两个鉴别器。在这里,生成器的工作是尝试创建非常适合隐藏信息的图像,这意味着该图像在视觉上是一致的,并且抗隐写术。这些称为安全封面图像。

鉴别器做两件事:一个鉴别器基于GAN的隐写术框架,作者声称它比以前的研究中使用的更复杂。第二个的方法是与生成器“竞争”,以鼓励创建的图像中的多样性,也就是说,它试图评估所创建的图像的视觉质量。这样,发生器就不会继续产生噪声图像。相反,它接收反馈,告诉它哪些图像更适合视觉。所以,第二个鉴别器试图确定图像对于隐写术的适用性。

实验结果表明,采用SSGAN结构后,隐写术网络的分类误差增大,生成的隐写图像更适合于隐藏信息。双鉴别器结构成功地使发生器不仅产生更多的抗隐写术的图像,而且产生更高视觉质量的图像。这是隐写术领域的一个巨大胜利,因为它击败了其他基于启发式的算法。

冰山一角

总体而言,这两个项目证明了各种体系结构的GANs在网络安全领域具有良好的应用前景。PassGAN证明了GANs可以应用于基本的安全相关任务,例如破解密码,并且可以改进和提高现有技术。SSGAN证明了GANs可以处理极其复杂的任务,例如发现隐藏在高质量生成的抗隐写术的图像中的信息。

这些项目只是冰山一角。随着GANs应用于更多与网络安全相关的任务,毫无疑问,GANs将在帮助安全分析师应对不断变化的威胁方面发挥极其有效的作用。

论文附录:

1.     特征压缩:在深层神经网络中对抗性样本的检测;

2.     生成敌对网络;

3.     PassGAN:密码猜测的深度学习方法;

4.     PassGAN代码地址;

5.     SSGAN:基于生成对抗网络的安全隐写术。

原文地址:http://blog.51cto.com/13610827/2106463

时间: 2024-11-05 19:39:34

知物由学 | AI网络安全实战:生成对抗网络的相关文章

生成对抗网络 Generative Adversarial Networks

转自:https://zhuanlan.zhihu.com/p/26499443 生成对抗网络GAN是由蒙特利尔大学Ian Goodfellow教授和他的学生在2014年提出的机器学习架构. 要全面理解生成对抗网络,首先要理解的概念是监督式学习和非监督式学习.监督式学习是指基于大量带有标签的训练集与测试集的机器学习过程,比如监督式图片分类器需要一系列图片和对应的标签("猫","狗"-),而非监督式学习则不需要这么多额外的工作,它们可以自己从错误中进行学习,并降低未来

《生成对抗网络GAN的原理与应用专题》笔记

视频教程的链接:http://campus.swarma.org/gpac=8 一.什么是GAN 框架简述 GAN全称是Generative Adversarial Nets,中文叫做"生成对抗网络". 在GAN中有2个网络,一个网络用于生成数据,叫做"生成器".另一个网络用于判别生成数据是否接近于真实,叫做"判别器". 下图展示了最简单的GAN的结构以及工作原理. 模型中最左侧的随机向量是为了让生成器产生不同的输出,而增加的扰动项.这些扰动决定

正在涌现的新型神经网络模型:优于生成对抗网络

http://www.17bianji.com/lsqh/35130.html 是以,它会让人想起残差前馈收集(residual feed-forward network),但在实际中,强迫这些收集向前传播误差并不克不及让它们在更高财揭捉习到有效的层次表征.是以,它们不克不及基于更上层的表征来竽暌剐效地履行其它义务,例如分类.瓜分.动作辨认.要明白这些限制,还须要更多的实验. 新一代深度神经收集正在出现.它们演变自前馈模型,之前我们曾作过具体分析,参阅机械之心文┞仿 <重磅 | 神经收集架构演

生成对抗网络GAN

详解一:GAN完整理论推导和实现 详解二:详解生成对抗网络(GAN)原理 原文地址:https://www.cnblogs.com/yunkaiL/p/10952881.html

生成对抗网络浅析(GAN)

生成对抗网络 ? 顾名思义,生成对抗网络由两个部分构成, 生成器(Generator)和判别器(Discriminator), 两个部件相互博弈,最终达到平衡状态. 基本原理 下面以生成图片为例. G: 生成器 接受一个随机的噪声 z,通过噪声产生目标G(z) D:判别器 判别目标是否是"真实的".输入参数是 x,输出为D(x), 表示是否为真实的概率. ? 训练的过程中, G的目的就是尽量生成真实的图片欺骗 D.而 D的目标就是尽量将 G 生成的图片和真实的图片分离开.这样就是一个博

使用生成对抗网络(GAN)生成手写字

先放结果 这是通过GAN迭代训练30W次,耗时3小时生成的手写字图片效果,大部分的还是能看出来是数字的. 实现原理 简单说下原理,生成对抗网络需要训练两个任务,一个叫生成器,一个叫判别器,如字面意思,一个负责生成图片,一个负责判别图片,生成器不断生成新的图片,然后判别器去判断哪儿哪儿不行,生成器再不断去改进,不断的像真实的图片靠近. 这就如同一个造假团伙一样,A负责生产,B负责就鉴定,刚开始的时候,两个人都是菜鸟,A随便画了一幅画拿给B看,B说你这不行,然后A再改进,当然需要改进的不止A,随着A

PyTorch实现简单的生成对抗网络GAN

生成对抗网络(Generative Adversarial Network, GAN)包括生成网络和对抗网络两部分.生成网络像自动编码器的解码器,能够生成数据,比如生成一张图片.对抗网络用来判断数据的真假,比如是真图片还是假图片,真图片是拍摄得到的,假图片是生成网络生成的. 生成对抗网络就是让生成网络和对抗网络相互竞争,通过生成网络来生成假的数据,对抗网络判别该数据是真是假,最后希望生成网络生成的数据以假乱真骗过判别器. 以下程序主要来自廖星宇的<深度学习之PyTorch>的第六章,本文对原代

利用tensorflow训练简单的生成对抗网络GAN

对抗网络是14年Goodfellow Ian在论文Generative Adversarial Nets中提出来的. 原理方面,对抗网络可以简单归纳为一个生成器(generator)和一个判断器(discriminator)之间博弈的过程.整个网络训练的过程中, 两个模块的分工 判断器,直观来看就是一个简单的神经网络结构,输入就是一副图像,输出就是一个概率值,用于判断真假使用(概率值大于0.5那就是真,小于0.5那就是假) 生成器,同样也可以看成是一个神经网络模型,输入是一组随机数Z,输出是一个

在浏览器中进行深度学习:TensorFlow.js (八)生成对抗网络 (GAN

Generative Adversarial Network 是深度学习中非常有趣的一种方法.GAN最早源自Ian Goodfellow的这篇论文.LeCun对GAN给出了极高的评价: "There are many interesting recent development in deep learning-The most important one, in my opinion, is adversarial training (also called GAN for Generativ