中文站

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将在帮助安全分析师应对不断变化的威胁方面发挥极其有效的作用。

如果你被网络攻击困扰,欢迎试试有人工智能加持的网易易盾DDoS高防服务,2T超大防护带宽,优质海外BGP节点。基于网络层防护,有效抵御SYN Flood、ACK Flood、ICMP Flood、UDP Flood等攻击,5分钟完成接入,技术专家一对一调配防护策略,免费试用。


参考文献:

1.特征压缩:在深层神经网络中对抗性样本的检测;
2.生成敌对网络;
3.PassGAN:密码猜测的深度学习方法;
4.PassGAN代码地址;
5.SSGAN:基于生成对抗网络的安全隐写术。