关键词:
智能合约
未知漏洞检测
多尺度特征融合
交易操作码序列
交易异构图
摘要:
智能合约因不可篡改、透明化的优秀特性被更多地用于涉及巨额资产的商业交易,但是其本身依旧可能存在开发者编写过程中有意或无意的安全漏洞,这些漏洞也成为大多数以太坊攻击事件的关键因素。智能合约在发挥安全可信优势的同时,也带来了一定程度的安全隐患。传统的漏洞检测技术局限性大且无法检测未知漏洞,而现有的基于深度学习的方案主要侧重于检测已知漏洞,同时存在动态特征不足、无法适应未知漏洞样本量少等关键问题。为解决上述问题,本文提出了基于多尺度特征融合的智能合约漏洞检测方案,主要内容如下:
(1)提出了一种基于Geth(Go-ethereum)插桩的交易异构图的构建方法。通过Geth插桩与交易重放可以获取大量的智能合约调用交易数据,同时根据外部交易与内部交易的判别方法,分析交易数据中的交易轨迹,按顺序匹配不同类型交易,进而构建保留了更多拓扑结构信息的交易异构图。
(2)提出了一种基于C-LSTM(Convolutional Neural Network,Long Short-Term Memory)多分类模型的智能合约未知漏洞检测方案。该方案利用Word2vec(Word to Vector)算法提取不同操作码的语义信息,结合CNN与LSTM提取交易操作码序列的时序特征,同时基于漏洞的相似性原理,即未知漏洞操作码序列与部分已知漏洞操作码序列具备一定的相似性,设置双条件判定来检测智能合约未知漏洞。实验结果证明了该方案的有效性,准确率达到74.8%,F1-score达到74.86%。
(3)提出了一种基于多尺度特征融合的智能合约未知漏洞检测方案。该方案将交易操作码序列提取的微观时序特征与交易异构图提取的宏观图特征融合,并连接C-LSTM与Hetero GCN(Heterogeneous Graph Convolutional Network)的特征层,实现基于多尺度特征融合的智能合约未知漏洞检测。实验证明了该方案的检测效果优于单特征模型的方案,准确率达到89.15%,F1-score达到89.57%,相比C-LSTM多分类模型分别提升了14.35%和14.71%。