【论文阅读】基于多特征融合的智能合约缺陷检测方法

题目
摘要:
1、预处理:颜色标记、词汇提取、字符转换、合约之间的继承关系的提取
2、 使用融合模型进行特征提取(BERT、CNN、BiLSTM)
3、使用node2vec随机游走算法,将合约之间的继承关系作为输入得到合约关系的特征向量。
4、使用特征向量进行缺陷分类

1、研究内容

1.1 多特征融合

将智能合约的语义、视觉和结构多类特征进行融合
多特征融合是一种将不同来源或不同表示的多个特征信息进行组合和整合的方法,比较常见的方法有特征加权、注意力机制以及特征拼接。

  1. 特征加权是按照不同的权重进行加权求和
  2. 注意力机制是动态地基于不同的特征或上下文不同的权重或者关注度
  3. 特征拼接是将多个特征在通道维度上连接在一起,形成一个更高维度的特征表示
  4. 将自然语言处理和图神经网络的方法结合生成更高质量的节点特征

2、研究方法

基于 BERT、CNN 及 LSTM 构建模型,提出利用语义、视觉和结构内部特征以及继承关系外部特征进行Solidity智能合约缺陷检测的方法。
本文主要是在特征提取阶段提取了包括合约继承结构在内的四种信息:

  1. 颜色标准
  2. 词汇提取
  3. 字符转换
  4. 特征向量
    结构

2.1 视觉信息提取

通过表示代码图像可以直观获取视觉信息,比如一些关键字的使用或者各类函数的调用。研究学者将十六进制从字节码映射到RGB颜色码[1]。文章将代码的关键字以及其它部分通过RGB颜色标记转为RGB矩阵并保存,作为CNN的输入。
根据VSCODE软件的显示颜色,将solidity语言分为括号、关键字、计算符、标识符、货币单位、注释以及其它代码,进行颜色标记,截取结果得到代码彩色图像。并进行压缩(128,128)通道3的RGB矩阵。
[1]Hsien-De Huang T T, Kao H Y. R2-d2: Color-inspired co-nvolutional neural network (cnn)-based android malware d-etections[C]//2018 IEEE international conference on big da-ta (big data). IEEE, 2018: 2633-2642.

我们使用CNN(可以用来处理具有类似网格结构的数据的神经网络)来提取特征,用于从输入数据中提取局部特征。
卷积操作:(另外看)
特征图X(h,w,c),h为高度,W表示宽度,C表示通道数。
卷积核 W(FH,FW,c,k),其中 FH 表示核的高度,FW 表示核的宽度,c 表示输入通道数,k 表示输出通道数。
核内的空间位置由 m 和 n 表示,分别对应于核的高度和宽度索引。

输入层为(128,128,3)的RGB矩阵,卷积层拥有64个大小为3的过滤器,最大池化为3,获得64单元的特征信息。

2.2 语义信息提取

使用文本特征对其修改可以对图像视觉有一定的改善作用。使用自然语言处理来获得语义信息。使用BERT将源代码映射到词向量,并对每个代码词进行划分。
[21] Wang J, Dong Y. Improve Visual Question Answering Ba-sed On Text Feature Extraction[C]//Journal of Physics: Co-nference Series. IOP Publishing, 2021, 1856(1): 012025.
[22] Jiang Zhou, Jiang Murong, Zhao Chunna, et al. Improve Image Question and Answer Accuracy by Using Text Feature Enhanceme-nt and Attention Mechanism[J]. 2019.
(江邹, 蒋慕蓉, 赵春娜, 等. 利用文本特征增强与注意力机制提高图像问答准确率[J]. 计算机科学与应用, 2019, 9: 2403.)

文中选择利用 CNN 将语义信息进行识别和提取,得到关键特征的短序列,再放入BiLSTM 模型中获得所需要的 64 单位语义特征输出。此处选用的 CNN 是由Relu 作为激活函数的两个卷积层和池化层组成。

2.3 字符语义信息提取

源代码的字符语义信息是其基本表达含义的方式,通过获取 Solidity 源代码的另一种语义特征能够在漏洞检测方面有帮助。将每个合约转换为字符型矩阵,具体来说就是将合约的每个字符转换为便于识别的 ASCII 码,在空余的部分利用“-1”值进行填充,以保证每个字符矩阵的大小都统一。
最终使用(100,300,1)作为矩阵的大小。
为了从较大的矩阵中提取到更有效的特征,CNN 的卷积层与池化层选用了三对,其中激活函数仍旧选用Relu,在最后将卷积层的输出进行展平以得到所需要的 64 单位的一维数组

2.4 结构信息提取

智能合约代码树CCTree的提出。
[26] Huang Y, Zhang T, Fang S, et al. Deep Smart Contract I-ntent Detection[J]. arXiv preprint arXiv:2211.10724, 2022.
CCTree 通过拆分和重组智能合约源代码生成的树状图数据结构。

  1. 第一层为根层,代表整个合约内容;
  2. 第二层为合约层,代表智能合约中的合约类,包括合约、接口、库和抽象合约类的类型;
  3. 第三层为叶子节点,存储合约类中的函数、事件、修饰符和构造函数等关键字的代码片段。
    在 CCTree的第二层合约层中,合约之间会有一个或多个继承关系,合约的继承可能会导致缺陷的出现,因此需要提取合约之间的继承信息。
    示例
    提取继承关系具体做法如下:
  4. 提取关键词Is. is前表示继承合约,后表示被继承合约。
  5. 同一个地址中的每个合约都当作图的节点,而合约之间的继承关系作为图的边,由继承合约指向被继承合约,将它们记录在文件中。

使用到逻辑回归模型

结构信息由节点以及其边的图结构组成,在获得智能合约的多个图结构信息以后,将它们放入 node2vec 模型中进行处理。具有直接链接关系的两个节点,即距离近的节点具有相似的嵌入向量,这样可以让合约之间的继承关系更加紧密,并获得更高质量的向量值。每个合约节点在经过 embedding 后都会得到一个 64 单位的向量输出

3、检测模型

分类器结构图
四类64单元进行拼接得到256单元特征,进入全连接层降为64维,再进入全连接层以及dropout层组成的分类器(50%),激活函数为softmax

4、实验

操作系统为 64 位Windows 10,CPU 是因特尔酷睿 i7-10700k,GPU为 RTX 5000,内存大小 32GB。开发和运行环境为 Python 3.8,开发工具使用的是Pycharm 2018.2。

4.1 数据集

从XBlock获取源码结合BSCSCS(区块链智能合约安全检测平台)构建的。
数据集地址
从中选取3680份代码,1680有缺陷,2000无缺陷。
为防止类别不平衡的问题出现,将数值溢出漏洞类别剔除,占有比例低的类别进行合并作为新的漏洞类别,根据数据集新分类的 4 类缺陷名称见下表。
缺陷类别
V:视觉特征
C:字符语义特征
S:语义特性
T:结构特征

4.2 结果分析

4.2.1 Q1

结果
与现有分类器进行对比,FC分类器(基于完全连接层分类器)效果较好,选择它作为后续缺陷检测实验的分类器。

4.2.2 Q2

分别融合多类特征:
VS视觉语义融合
VT视觉结构融合
VC视觉字符语义融合
ST语义结构融合
CT字符语义结构融合
VCT视觉字符语义结构融合
VST视觉语义结构融合
结果如下:
结果图

  1. VS与VST大致持平,较优秀
  2. CT略低于VS和VST
  3. ST和VC水平较差
  4. 其它模型性能不好

从模型性能下降的幅度推断,字符语义特征会略微降低模型的性能,语义特征对缺陷检测的贡献更大,推测原因是语义特征更能最大限度地保留智能合约的布局及缺陷信息,进而影响模型缺陷检测的性能。从整体上来看,视觉语义特征融合而成的 VS 拥有更优秀的检测能力,值得进一步研究和应用。

4.2.3 Q3

与现有工具比较:L-GCN模型和RFR模型
比较1
比较2
VS 的准确率和 F1 分数都优于其余三种模型,整体上看本文的模型平均提升了 3%~12%。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/475673.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

python-多参数-放置原则

python-多参数-操作原则: 形参、 位置参数、可变参数居于前,关键字参数居中,可变关键字放到最后 def school(name,location,*args,date_fauned,**kwargs):print(kwargs) school("sss","woshi","mike","…

【openCV】手写算式识别

OpenCV 机器学习库提供了一系列 SVM 函数和类来实现 SVM 模型的训练和预测,方便用户实现自己的 SVM 模型,并应用于分类问题。本文主要介绍使用 openCV 实现手写算式识别的工作原理与实现过程。 目录 1 SVM 模型 1.1 SVM 模型介绍 1.2 SVM 模型原理 2…

使用广播信道的数据链路层

目录 一、局域网的特点 二、媒体共享技术 三、以太网的两个标准 四、以太网 五、CSM/CD协议 1、碰撞检测 2、争用期 3、CSMA/CD重要特性 4、CSMA/CD协议的要点 六、小结 一、局域网的特点 局域网具有如下主要优点: • 具有广播功能, 从一…

Linux系统Docker安装Drupal并配置数据库实现公网远程访问本地站点

文章目录 前言1. Docker安装Drupal2. 本地局域网访问3 . Linux 安装cpolar4. 配置Drupal公网访问地址5. 公网远程访问Drupal6. 固定Drupal 公网地址 前言 Dupal是一个强大的CMS,适用于各种不同的网站项目,从小型个人博客到大型企业级门户网站。它的学习…

【07】进阶html5

HTML5 包含两个部分的更新,分别是文档和web api 文档 HTML5 元素表 元素语义化 元素语义化是指每个 HTML 元素都代表着某种含义,在开发中应该根据元素含义选择元素 元素语义化的好处: 利于 SEO(搜索引擎优化)利于无障碍访问利于浏览器的插件分析网页新增元素 多媒体…

Spring6--基础概念

1. 概述 1.1. Spring是什么 Spring 是一套广泛应用于 Java 企业级应用开发领域的轻量级开源框架,由 Rod Johnson 创立,旨在显著降低 Java 企业应用的复杂性,缩短开发周期,并提升开发效率。Spring 不仅适用于服务器端开发&#x…

Lenze伦茨8400变频器E84A L-force Drives 操作使用说明

Lenze伦茨8400变频器E84A L-force Drives 操作使用说明

html5cssjs代码 035 课程表

html5&css&js代码 035 课程表 一、代码二、解释基本结构示例代码常用属性样式和装饰响应式表格辅助技术 一个具有亮蓝色背景的网页,其中包含一个样式化的表格用于展示一周课程安排。表格设计了交替行颜色、鼠标悬停效果以及亮色表头,并对单元格设…

关于alias、root的用法

关于alias、root的用法 root 语法:root path 默认值: root html 配置段: http,server,location,if 例子: 静态文件地址:/home/static/html/js/demo.html 用例1: 以请求http://example.com/js/demo.html为…

指路明灯,99%自动化测试从业者都该看的职业规划!

这篇文章将从以下三个方面来给大家介绍自动化测试,其中包含自动化测试从业者需要了解的知识和一些常见的思想误区,以及自动化测试行业的前景以及如何进阶 1.自动化测试的介绍: 自动化测试什么是,有哪些被称作自动化测试&#xf…

2024-03-20 作业

作业要求: 1> 创建一个工人信息库,包含工号(主键)、姓名、年龄、薪资。 2> 添加三条工人信息(可以完整信息,也可以非完整信息) 3> 修改某一个工人的薪资(确定的一个&#x…

C++利用开散列哈希表封装unordered_set,unordered_map

C利用开散列哈希表封装unordered_set,unordered_map 一.前言1.开散列的哈希表完整代码 二.模板参数1.HashNode的改造2.封装unordered_set和unordered_map的第一步1.unordered_set2.unordered_map 3.HashTable 三.string的哈希函数的模板特化四.迭代器类1.operator运算符重载1.动…

算法系列--递归

一.如何理解递归 递归对于初学者来说是一个非常抽象的概念,笔者在第一次学习时也是迷迷糊糊的(二叉树遍历),递归的代码看起来非常的简洁,优美,但是如何想出来递归的思路或者为什么能用递归这是初学者很难分析出来的 笔者在学习的过程中通过刷题,也总结出自己的一些经验,总结来…

Beamer模板——基于LaTeX制作学术PPT

Beamer模板——基于LaTeX制作学术PPT 介绍Beamer的基本使用安装和编译用于学术汇报的模板项目代码模板效果图 Beamer的高级特性动态效果分栏布局定理环境 介绍 在学术领域,演示文稿是展示和讨论研究成果的重要方式。传统的PowerPoint虽然方便,但在处理复…

基于python+vue家政服务系统flask-django-php-nodejs

相比于以前的传统手工管理方式,智能化的管理方式可以大幅降低家政公司的运营人员成本,实现了家政服务的标准化、制度化、程序化的管理,有效地防止了家政服务的随意管理,提高了信息的处理速度和精确度,能够及时、准确地…

MAC本安装telnet

Linux运维工具-ywtool 目录 1.打开终端1.先安装brew命令2.写入环境变量4.安装telnet 1.打开终端 访达 - 应用程序(左侧) - 实用工具(右侧) - 终端 #注意:登入终端用普通用户,不要用MAC的root用户1.先安装brew命令 /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/H…

什么是高防CDN?

高防CDN(Content Delivery Network,内容分发网络)在网络安全中的作用非常重要。它通过一种特别的方式来保护网站和网络应用程序免受大规模DDoS攻击。以下是它的一些主要优势: 01 分布式防护 高防CDN通过在全球各地设立大量的节点…

智能电表多少钱一个?

嗨,朋友们,你是否好奇过家里那个默默工作的智能电表到底值多少钱呢?今天我们就来聊聊这个话题,一起走进智能电表的世界,看看它们是如何从传统的机械表进化为现代的智能设备,并了解它们的价格区间。 首先,…

基于Java+SpringBoot+vue+element实现毕业就业招聘系统

基于JavaSpringBootvueelement实现毕业就业招聘系统 博主介绍:多年java开发经验,专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 央顺技术团队 Java毕设项目精品实战案例《1000套》 欢迎点赞 收藏 ⭐留言 文末获取…

宏宇、萨米特、新明珠、金意陶、简一、科达、力泰、道氏、SITI BT、POPPI……35家参展商发布亮点

3月18日,2024佛山潭洲陶瓷展(4月18-22日)亮点发布会在广东新媒体产业园成功举办,主题为“我们不一样”。 陶城报社社长、佛山潭洲陶瓷展总经理李新良代表主办方,发布了2024佛山潭洲陶瓷展的“不一样”;佛山…