Advertisement

Vulnerability Detection in Smart Contracts Using Deep Learning

阅读量:

Vulnerability Detection in Smart Contracts Using Deep Learning

利用深度学习检测智能合约中的漏洞

本研究通过实验与测试评估了机器学习模型(包括LSTM与TCN),并提出了一种具有竞争力的新架构。研究者构建了基于长短时记忆单元(LSTM)与时间卷积网络(TCN)的深度学习框架,并探讨了利用这些技术来识别系统漏洞分类以及异常行为检测的可能性。为了更深入地分析性能表现,在此研究中将基于LSTM与TCN的模型性能与Gogineni等人的研究进行了对比分析。

使用技术:

人工递归神经网络设计

“Long Short-Term Memory (LSTM)” 长短期记忆(LSTM)

“Temporal Convolutional Network (TCN)” 时间卷积网络(TCN)

Multi-label classification of types of vulnerabilities in smart contracts, employing AWD-LSTM, which draws upon pre-trained encoders from natural language processing.

本研究在现有研究的基础上扩展了[19]的相关工作。在该文献中,作者采用平均随机梯度下降加权LSTM(AWD-LSTM)模型对存在自毁指令的操作码进行分类标记。具体而言,他们将操作码分为四类:即包含自毁操作码的SC、浪子(即向任何任意SC发送以太)、贪婪(即具有冻结以太特征的SC)以及正常(即没有任何漏洞的SC)的SC。研究引用了Tann及其团队2019年的相关工作作为训练数据来源,并将该数据集划分为自杀攻击、无害攻击以及贪婪攻击三大类。然而由于不同操作码组合的数量有限,在各类别间仍然存在严重的数据不平衡问题。

创新点:

本研究中,我们采用TCN模型对网络漏洞进行检测,并对其实现的准确率进行了对比分析与基于LSTM的模型

贡献:

我们从类似资源库中获取了更多SC以解决数据不平衡问题并参考文献[48]所提出的将这些SC转换为操作码排序字符串的方法进行分类

我们为我们的数据集建立了基于LSTM和TCN的漏洞检测模型。

本研究报道指出,在现有工作中基于Transformer Convolutional Networks(TCN)的模型表现更为出色。通过数据超采样技术在TCN框架下进行优化处理,在精确率、召回率以及F1分数等方面取得了显著提升效果:精确率为95.95%、召回率为93.73%、F1分数为94.83%,同时保持了较高的准确率为94.77%。

技术背景

“B. Long Short-Term Memory (LSTM)”

b .长期短期记忆(LSTM)

长短期记忆发展出了一种基于梯度的方法,这种技术旨在应对长期执行递归反向传播时的数据存储延迟问题.基于梯度的方法利用输入数据与成本函数(或激活函数)之间的关系.相比之下,在计算过程中进行一些运算以确定准确性.因此,在此过程中减少输出的变化幅度.

“C. Temporal Convolutional Network (TCN)”

c .时间卷积网络(TCN)

与LSTM模型类似,在机器学习领域的时间序列数据分析任务中(即序列数据分析任务)中, TCN模型同样具有重要应用价值。这一发现为基于深度可逆网络的漏洞检测研究提供了理论依据。顺序数据(即连接数据)包括多种文件格式类型,例如图像[32]、音频[29]、视频[3]以及文本[54]等类型的数据形式。此外,相比于LSTM模型,使用TCN模型具有以下优势:1)由于其独特的填充机制,TCN模型能够适应不同长度的数据输入(而传统LSTM模型固定接收特定长度的数据序列);2)TCN模型能够在较长时间范围内有效保持输入信息而不发生遗忘现象;3)该模型采用灵活的设计架构以捕捉长期依赖关系[36],从而提升处理连续性较强的数据的能力;4)与LSTM和GRU相比,TCN模型架构更加简洁明了[7]。为了更好地提取长历史序列特征,TCN模型将因果滤波器与扩张卷积相结合的方式进行设计,这种组合方式显著提升了网络的感受野长度(即捕捉到的历史时间跨度)。此外,因果滤波器在计算过程中不受后续输入数据的影响(即未来信息不影响当前输出结果)。为了进一步优化深层网络的学习能力,TCN模型还引入了残差连接机制。由于其强大的特性及其易于实现的特点,TCN现已成为深度学习领域中用于序列建模的重要工具。

“IV. THE GENERAL MODEL BUILDING ALGORITHM” 四、一般的模型建立算法

该算法概述了检测SC漏洞的标准流程。该算法首先将输入数据划分为训练集、验证集和测试集。当模型在测试阶段表现不佳时,验证数据有助于优化训练流程;与此同时,在交叉验证过程中起到了关键作用的是测试数据。随后会对操作码序列进行重采样处理。研究者采用了单一的重采样策略,并认为在分类问题中采用平衡化重采样方法通常更为有效:即通过过量取样与欠量取样的结合技术构建均衡化的样本集合。经过重采样的样本集合被输入至深度学习架构(具体包括LSTM与TCN两种模型)展开系统训练工作:最终该系统能够识别出SC实例并将其分类为脆弱或非脆弱类别:其中属于脆弱类别的SC实例则需分析其可能的角色类型(如攻击者身份、贪婪行为或自杀性动机)。然而如果预测结果不准确,则需通过调整模型参数并观察损失与准确度值的变化,在验证集中重复训练以优化性能:最终系统的评估指标则由混淆矩阵完成呈现:其中包括精确率、召回率及F1分数等关键性能指标的信息统计与展示

“ 实验步骤”

“ 数据集”

作者直接从[19]的作者那里获得了SC数据集的操作码。

解决类不平衡问题:采用了过度采样和欠采样的方法

这种方法通过减少多数类样本的数量来平衡数据集,在统计学中常用于处理不平衡分类问题。
该技术通过调整多数类样本的数量使其达到与少数类样本数量相等,并被称作过抽样方法。

Oversampling refers to a method for increasing the number of data points across all categories until they align with the size of the largest category.

这个图的过采样有问题

一些概念:

“TensorFlow”

TensorFlow™是以数据流编程为基础的一种符号计算系统 [2] 。它广泛应用于各类型算法的程序实现中 [1] 。该系统最初由谷歌的人工智能研究团队开发 [2] 。

“Keras”

Keras是由Python开发的一个开源的人工神经网络工具箱,在Tensorflow、Microsoft-CNTK和Theano等高级应用接口中被广泛使用 [1] 。
在设计深度学习模型时,Keras采用面向对象的方法进行模块化构建,并注重用户体验和技术难度的平衡 [1] 。它支持当前人工智能领域的主流算法,并能够与现代统计学习模型协同工作 [2] 。
在硬件配置方面,Keras支持多种操作系统下的多GPU并行计算,并可以根据配置动态转换为Tensorflow、Microsoft-CNTK等系统组件 [3] 。
Keras的主要开发者是谷歌工程师François Chollet,在GitHub上共有6名主要维护者及超过800名直接贡献者参与其开发 [4] 。自发布以来,默认情况下Keras已向公众开放其源代码,并采用MIT协议进行许可 [1] 。

混淆矩阵(confusion matrix.)

混淆矩阵亦称误差矩阵,在图像处理领域被广泛使用作为精度评价的标准格式。通过n行n列的矩阵形式可全面展示多种评价指标包括整体精度、制图准确度以及应用准确度等关键数据指标。这些评估参数从不同维度反映了图像分类的质量特征。[1] 在人工智能领域中作为直观展示工具混淆矩阵尤其适用于有监督学习场景下的性能评估而在无监督学习的情形下则被称为匹配矩阵。对于图像精度评价而言它主要用于比较分类结果与实际观测值之间的差异并可通过构建一个混淆矩阵将分类效果一目了然地展现出来。具体而言可以通过将每个实测像元的位置与其相应的分类结果进行对比分析从而在混淆矩阵中系统地反映各类别间的分类效果与分布情况。这个过程实际上就是通过将分类结果与其真实值进行对比分析从而在混淆矩阵中系统地反映各类别间的分类效果与分布情况

注:改写说明:

  1. 将"也称"替换为"亦称"
  2. 优化了"表示"为"作为"
  3. 调整了部分表述使其更加简洁流畅
  4. 通过增加细节描述如"具体而言"等使得文本更加丰富
  5. 保持了所有数学符号(如...)以及英文术语(如confusion matrix)不变
  6. 增加了对概念关系的描述如"尤其适用于"
  7. 使用"系统地反映"替代简单的列举
  8. 通过重新组织语序使表达更加自然流畅

混淆矩阵的每列对应预测类别;每列总数量表示被预测落入该分类的数据数目;每行对应真实的数据归属类别;每行总数量表示该类别实例的数量。具体而言:在第一个分类栏中:第1行第1列数值为1567:即有1567个实际属于第1类的数据被正确分类到第1类;而第2列为第2分类栏:其中第2行列示的是将属于第1类的实际数据误分到第2分类的情况:例如:在第一个分类栏中:第2行列数是127:即有127个实际属于第1类的数据被错误地归入了其他分类。

每行总计数值代表了对应类别真实样本的数量信息,在表格结构中每一行的合计值即反映了各类别实际存在的样本数目;同时,在分类结果展示中各列总计数值则对应于模型预测为各个类别的样本总数统计情况。

评估指标

实验结果

(Gopali 等, 2022, p. 1253)

(Gopali 等, 2022, p. 1253) 如表三所示,在过采样的情况下(如文献[19]所述),其性能优于基于LSTM的模型。在某种程度上低于文献[19]所报道的结果,在问题被作为多类分类处理的情况下(如文献[19]所述),其精度达到95.95;而采用二进制分类策略时,则达到了92.50。

未来的研究方向:

但是,在归类合同为正常状态的同时,并不能确保合同中没有缺陷性问题。因为即便我们尚不清楚的新缺陷依然可能被攻击者加以利用。为此,在未来应当致力于解决创建更多精确识别的SC问题,并以此来进一步提升该模型的有效性

全部评论 (0)

还没有任何评论哟~