PREUNN:使用神经网络进行逆向工程(综述类)

代码地址

摘要

神经网络能够普遍近似任何函数,这使得它们能够学习任意类型数据之间的关系。这为信息安全主题提供了巨大的潜力,例如协议逆向工程 (PRE),到目前为止,神经网络 (NN) 的使用很少。在本文中,我们提供了一种仅使用 NN 实现 PRE 的新方法,展示了一种简单而有效的基于文本的协议逆向工程。这种方法在设计上是模块化的,允许在任何步骤将神经网络模型与性能更好的模型交换。所使用的架构包括卷积神经网络 (CNN)、自动编码器 (AE)、生成对抗网络 (GAN)、长短期记忆 (LSTM) 和自组织映射 (SOM)。所有这些模型结合在一起形成了一种新的协议逆向工程方法。结果表明,广泛的应用层协议 HTTP 和 FTP 可以被人工智能成功模仿,从而为模糊测试等用例铺平了道路。由于神经网络的黑箱性质,无法直接与其他 PRE 方法进行比较,这是我们工作的主要限制。我们的实验表明,这种多模型方法可使消息聚类提高 19%,改善上下文分布,并证明 LSTM 是生成新消息的最佳候选者,其中有效 HTTP 包高达 67.6%,有效 FTP 包高达 100%。

背景

协议逆向工程

1. 协议规范提取

协议规范提取(Prospex)。Prospex 是一种由两部分组成的 PRE 方法,基于网络信息和二进制运行时的执行轨迹进行分析,利用网络报文推断出信息格式,利用二进制运行时的控制流推断出状态自动机。为聚类步骤选择的高度独特的特征是成功的核心原因之一。这些特征包括文件系统反应和通过污染字节进行的内存分析。因此,计算信息之间的相似性不仅要看它们的格式,还要看它们产生的反应和响应。其设计了一个接受自动机来识别有效的报文序列。这个自动机后来使用 exbar 算法(Lang,1999 年)进行了缩减。最后,对工具进行了扩展,使其与模糊工具 Peach Fuzzer2 兼容。其直接结果是,模糊测试可以在有状态协议上得到改进。从 Prospex 中了解到,如何将提取特征、使用现成方法进行聚类以及最后的逆向工程等任务分离开来,是 PRE 的关键所在。

2. Discoverer

Discoverer 识别消息中的小块标记,然后将其合并并递归细化。为此,它依赖于以下假设:协议使用常见的分隔符来分隔其消息格式的各个部分,例如逗号、空格或换行符。然后通过启发式方法学习消息格式中各个字段(例如地址/变量)的相互依赖性及其数据类型(文本或二进制)。可以看到在 Discoverer 方法中识别关键特征及其对聚类的影响的重要性。

神经网络架构

神经网络架构是适用于不同数据操作(例如分类、回归、聚类等)的工具。在以下段落中,我们将描述第 4 节实验中使用的不同架构,它们擅长解决哪些问题以及我们为何考虑将它们用于 PRE。

1. CNN

卷积神经网络 (CNN)。CNN 因其在图像识别任务中的表现而广受欢迎(此架构中的各层具有一个特殊属性:它们以滑动窗口方法处理输入数据。它们在每个滑动窗口步骤中的权重保持不变,因此可用于检测小的固定模式。许多这样的“内核”在一层的单独“通道”中彼此并行存在。 此结构允许各个内核近似高度描述性的特征过滤器,从而从分类任务中消除传统的手动特征提取步骤。此架构在任何涉及图像/像素图的任务中都很有用,其中各个特征占据许多相邻像素。 但是,从理论上讲,此概念可以应用于任何形式的具有模式的输入数据。

2. Autoencoder (AE)

自动编码器 (AE)。自动编码器是一种神经网络,旨在对给定的输入进行降维,同时保留尽可能多的信息。在训练中,损失函数要求输出尽可能接近输入。 架构本身在中间层有一个瓶颈,迫使网络压缩数据但保留可重构信息。中间层的大小必须平衡压缩大小,并以某种未知的编码保留相关信息。神经网络分为两个部分,即编码器和解码器部分。在训练完 AE 后,解码器元素将被删除,这样任何输入数据都将仅以其编码形式返回。

3. GAN

生成对抗网络 (GAN)。GAN 的开发是为了创建用于学习数据分布的生成模型。这种架构的独特之处在于使用了两个竞争网络 。第一个网络称为生成器,使用随机噪声作为输入,并尝试创建与训练数据集中的图像相似的图像。第二个网络称为鉴别器,随机输入真假图像,并必须通过区分真假来学习它们之间的区别。生成器的误差校正基于鉴别器的分类结果。这两个网络的组合导致了一种竞争学习的设置,其中每个 NN 都试图胜过对方。

4. LTSM

长短期记忆 (LSTM)。循环神经网络 (RNN) 描述了一种架构,其中内部隐藏或输入状态的某些部分在下一个时间步骤中再次递归地放入网络中,从而允许网络找到数据中的时间依赖关系。LSTM 是一种 RNN,具有强大的随时间查找顺序依赖关系的能力,同时避免了一些常见的循环纠错问题。对于处理文本数据(顺序字母),通常使用字典或字母表以及合适的嵌入将信息压缩到每个单词或字母的中等大小向量中。文本被转换成文本长度 × 嵌入长度的矩阵。

5. SOM

自组织映射 (SOM)。SOM 是一种具有一维或二维神经元输出映射的架构,其中包含数据的拓扑结构。这意味着具有相似属性和特征分布的数据将位于输出映射的同一大致区域中,聚类是隐含的。SOMs给每个输出神经元一个与数据相关的分数。获胜的节点可以被返回用于索引。

主要方法

PREUNN提出了一种新的方式来看待逆向工程协议的底层任务结构。PRE被分为多个步骤,这些步骤通常是按顺序处理的。该方法旨在适应各种神经网络架构的能力,并提供模块化。这使得系统中的任何模型都可以被性能更好的模型所取代,从而使新的人工智能设计能够直接插入到过程中。

1. 数据收集

为了训练神经网络,需要有代表性的数据集。文章选择了一组基于文本的应用层协议构件作为基础,以允许更容易的结果评估,我们没有与其他PRE方法的直接比较。选择的协议是HTTP v1.1和FTP,因为它们是常用的、大量可用的并且缺乏加密。使用几个数据集来源来涵盖更广泛的实现和消息类型分布。

2.特征提取

在第一部分中,我们希望提取高度可区分的特征。在 Prospex 和 Discoverer 中,特征选择都是工作的重要组成部分,但特征都是由研究人员选择的。我们打算利用神经网络将这一过程自动化。关键词、标点符号、句法字符和其他可区分不同信息的模式尤其值得关注。标签和 cookie 等伪随机字符串被排除,因为它们通常与协议规范无关。

3.特征逆向工程

在传统的协议逆向工程中一般从通信工件中推断规则、变量或常量列表以及语法。对于神经网络,学习的知识本质上是非代表性的,这意味着人类解释它是具有挑战性的。我们使用生成评估方法来判断各个架构学习(和重新创建)的特征的质量。这种方法将从训练分布中创建新样本,并深入了解神经网络学到了什么。

4.聚类

无论协议是否明确规定了这些分组,协议报文通常都可以按类型分组。可以利用顺序、功能和一般格式等信息对这些报文进行聚类。聚类意味着各种类型的信息,这项任务非常适合神经网络。

5.状态识别
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值