CADetector:跨家族的各项异性合约蜜罐检测,怎么查区块链开源代码

区块 5
第45卷第4期2022年4月 计算机学报CHINESEJOURNALOFCOMPUTERS Vol.45No.4Apr.2022 CADetector:跨家族的各项异性合约蜜罐检测 冀甜甜1)方滨兴1),2)崔翔2)王忠儒3)廖 杜春来4) 宋首友1),5),6) 1)(可信分布式计算与服务教育部重点实验室(北京邮电大学)北京100876) 2)(广州大学网络空间先进技术研究院广州510006) 3)(中国网络空间研究院北京100010) 4)(北方工业大学信息学院北京100144) 5)(北京丁牛科技有限公司北京100081) 6)(丁牛信息安全科技(江苏)有限公司江苏南通226014) 鹏1) 摘要智能合约是区块链生态环境的根基,以太坊区别于比特币的最显著特性就是支持“智能合约”,也正因为这种特性使其可承载DeFi、NFT等上层应用,因此保障智能合约安全至关重要.然而,近年来兴起的智能合约蜜罐(SmartContractHoneypot,以下简称合约蜜罐)已对以太坊生态环境造成显著污染,其具有的检测延迟大、攻击时效长、变形方法多等特点,使其成为有别于以太坊其他攻击形式的新形态威胁.为了准确、及时的检测未知合约蜜罐,本文首先研究了合约蜜罐机理,分析了现有检测方法不足.在此基础上,本文提炼了合约蜜罐的攻击模型,将其完整的攻击过程概括为“构建、编译、投递、部署、传播、诱导、锁定与收割”八个步骤.围绕“诱导”与“锁定”技术上的关键区别,本文对已知的10个蜜罐家族进行了细粒度的基因特征挖掘,首次构建了蜜罐家谱.以蜜罐家谱为指导,本文提出了一种跨家族的各项异性合约蜜罐检测方法,实现了一个不依赖机器学习的自动化检测工具—CADetector.CADetector通过检测范围界定、动态路径规划与基于启发式的各项异性特性匹配实现了对合约蜜罐的精准检测.本文基于benchmark数据集和XGBoost数据集进行了对比实验,实验结果表明CADetector实现了更高的检测召回率和精准率(93.5%~100%),超越了当前最先进的两个合约蜜罐检测工具HONEYBADGER和XGBoost,它们的精准率和召回率分别为87.3%和91.2%,凸显了CADetector集成的基因特征提取方法对合约蜜罐检测具有重要的影响.除此之外,本文基于自爬取数据集(200万个区块上的125988个未知智能合约)进行了0day合约蜜罐检测实验,新发现了高达450个0day合约蜜罐,进一步量化验证了CADetector的有效性和鲁棒性.值得一提的是,0day合约蜜罐检测实验涵盖了本文通过蜜罐家谱划分的21种围绕合约蜜罐的攻击方法,其中有3种新型的合约蜜罐攻击方法由本文首次提出.最后,本文从面向以太坊的污染现状、攻击技术、检测层面和增强实现四个维度进行了深层次的数据分析,并发现合约蜜罐仍呈现缓慢上升的趋势、隐藏状态更新技术一直是攻击者偏爱的技术且偏爱程度持续升高.对此,本文建议防御者可及时关注合约蜜罐的发展趋势、攻击者相关的以太坊地址、IP地址来源等威胁情报,进而助力区块链安全社区的情报共享和态势感知. 关键词智能合约蜜罐;各项异性;攻击机理;蜜罐家谱;蜜罐画像 中图法分类号TP309 DOI号10.11897/SP.J.1016.2022.00877 收稿日期:2021-07-22;在线发布日期:2021-11-13.本课题得到广东省重点领域研发计划(GrantNo.2019B010136003,2019B010137004)、国家重点研发计划(GrantNo.2019YFA0706404)资助.冀甜甜,博士研究生,主要研究领域为网络安全.E-mail:jitiantian0728@bupt..方滨兴,博士,教授,中国工程院院士,主要研究领域为计算机体系结构、计算机网络、信息安全.崔翔(通信作者),博士,教授,主要研究领域为网络安全.E-mail:cuixiang@gzhu..王忠儒(通信作者),博士,高级工程师,主要研究领域为人工智能、网络安全.E-mail:wangzhongru@bupt..廖鹏,博士,主要研究领域为网络安全.杜春来,博士,副教授,主要研究领域为网络安全.宋首友,博士,主要研究领域为网络安全. 878 计算机学报 2022年 CADetector:Cross-familyAnisotropicContractHoneypotDetectionMethod JITian-Tian1)FANGBin-Xing1),2)CUIXiang2)WANGZhong-Ru3)LIAOPeng1)DUChun-Lai4)SONGShou-You1),5),6) 1()KeyLaboratoryofTrustworthyDistributedComputingandService(BUPT),MinistryofEducation,BeijingUniversityofPostsandmunications,Beijing100876) 2()CyberspaceInstituteofAdvancedTechnology,GuangzhouUniversity,Guangzhou510006)3()ChineseAcademyofCyberspaceStudies,Beijing100010) 4()SchoolofInformationScienceandTechnology,NorthChinaUniversityofTechnology,Beijing100144)5()BeijingDigApisTechnologyCo.,Ltd,Beijing100081) 6()DigApisInformationSecurityTechnology(Jiangsu)Co.,Ltd,Nantong226014) AbstractSmartcontractsarethefoundationoftheblockchainecologicalenvironment.ThemostsignificantfeatureofEthereumthatdiffersfromBitcoinistosupport“smartcontracts”.Itispreciselybecauseofthisfeaturethatitcancarryupper-levelapplicationssuchasDeFiandNFT,thusitisveryimportanttoensurethesecurityofsmartcontracts.However,thesmartcontracthoneypot(hereinafterreferredtoas“contracthoneypot”)thathasemergedinrecentyearshascausedsignificantpollutiontotheEthereumecologicalenvironment.Ithasthecharacteristicsoflargedetectiondelay,longattacktime,andmultipledeformationmethods,makingitanewformofthreatthatisdifferentfromotherattackformsofEthereum.Inordertouratelyandtimelydetectunknowncontracthoneypots,thispaperfirststudiesthecontracthoneypotmechanismandanalyzesthedeficienciesofexistingdetectionmethods.Onthisbasis,thispaperrefinestheattackmodelofcontracthoneypots,andsummarizespleteattackprocessintoeightsteps:“build,pile,deliver,deploy,spread,induce,lock,andharvest”.Focusingonthekeydifferencebetween“induce”and“lock”technologies,thispaperconductedfine-grainedgenefeatureminingon10knownhoneypotfamilies,andconstructedthehoneypotgenealogyforthefirsttime.Guidedbythehoneypotgenealogy,thispaperproposesacross-familyanisotropiccontracthoneypotdetectionmethod,andrealizesanautomateddetectiontoolcalledCADetectorthatdoesnotrelyonmachinelearning.CADetectorachievesprecisedetectionofcontracthoneypotsthroughdetectionrangedefinition,dynamicpathplanning,andheuristics-basedanisotropicfeaturematching.ThispaperconductsparativeexperimentbasedonthebenchmarkdatasetandtheXGBoostdataset.TheexperimentalresultsshowthatCADetectorachievesahigherdetectionrecallrateanduracyrate(93.5%~100%),surpassingthecurrenttwomostadvancedcontracthoneypotdetectiontoolsHONEYBADGERandXGBoost.TheuracyandrecallratesofHONEYBADGERandXGBoostare87.3%and91.2%,respectively,highlightingtheimportantinfluenceoftheintegratedgenefeatureextractionmethodofCADetectoroncontracthoneypotdetection.Inaddition,thispaperconducteda0daycontracthoneypotdetectionexperimentbasedonaself-crawlingdataset(125988unknownsmartcontractson2millionblocks),andnewlydiscoveredupto4500daycontracthoneypots,whichfurtherquantifiestheeffectivenessandrobustnessofCADetector.Itisworthmentioningthatthe0daycontracthoneypotdetectionexperimentcovers21attackmethodsaroundcontracthoneypotsdividedbythehoneypotgenealogyinthispaper.Amongthem,3newcontracthoneypotattackmethodsareproposedforthefirsttimeinthispaper.Finally,thisarticleconductsin-depthdataanalysisfromthefourdimensionsofEthereum’spollutionstatus,attacktechnology,detectionlevelandenhancedimplementation,andfindsthatcontracthoneypotsarestillshowingaslowupwardtrend,andHiddenStateUpdatetechnologyhasalwaysbeentheattacker’spreferenceandthedegreeofpreferencecontinuestoincrease.Inthisregard,thispapersuggeststhatthedefendercanpayattentiontothe 4期 冀甜甜等:CADetector:跨家族的各项异性合约蜜罐检测 879 developmenttrendofcontracthoneypots,attacker-relatedthreatintelligencesuchastheEthereumaddress,IPaddresssource,etc.,therebyhelpingrealizetheblockchainmunity'sintelligencesharingandsituationalawareness. Keywordssmartcontracthoneypot;anisotropy;attackmechanism;honeypotgenealogy;honeypotportrait 1引言 近年来,随着区块链热潮的兴起,以比特币和以太坊为代表的区块链应用开始走进人们的视野.相对比特币,以太坊①不仅实现了基于区块链的价值交易,还通过对智能合约的支持,使其可承载DeFi、NFT等上层应用[1].与现实世界中的合同相似,智能合约由交易双方均需遵守的一系列规则和程序构成,其形态体现为部署在以太坊上的、可复制的、不可篡改的一段代码程序.以太坊区块链上的参与者根据不同的需求,以较低的成本构造、部署出各种形式的智能合约并进行应用,基于区块链的去中心化应用的热潮由此兴起. 新技术或新应用的出现必然伴随着安全问题的产生,区块链技术也不例外.2016年,TheDAO②智能合约暴露出两个严重的安全漏洞,黑客利用这两个漏洞从中盗取了价值6000万美元的以太币,并导致了以太坊区块链的硬分叉;2017年7月和11月,Parity多签名电子钱包合约先后被爆出两次漏洞,造成的损失分别达3000万美元和1.5亿美元;2020年4月25日,DeFi借贷协议Lendf.Me被曝遭受黑客攻击,损失约2500万美元;2021年8月10日,PolyNetwork宣布主网被黑客攻击,其用户在BSC(币安智能链)、以太坊、Polygon(以太坊侧链)三条区块链上的资产总计被转移6.1亿美金.这些安全事件的曝光,使智能合约的安全问题受到研究者的关注.[2-4]智能合约中携带的安全漏洞将可能导致大量的财产流失,研究者对此开展了一系列围绕智能合约的漏洞检测、安全审计等工作[5-8],尽可能在攻击者发现或利用合约漏洞之前进行提前预警和防御. 除围绕智能合约的漏洞检测与利用之外,攻击者尝试化被动为主动,通过构造携带伪漏洞的陷阱合约来实现盗取财富的目的.此类合约的源代码往往让用户误认为存在漏洞,调用相关交易功能后可从中获利,而实则遭受损失.研究者们将这类陷阱 合约称为“合约蜜罐”.当前,合约蜜罐的兴起已经对以太坊生态环境造成了显著污染,其具有的检测延迟大、攻击时效长、变形方法多等特点,使其成为有别于以太坊其他攻击形式的新形态威胁,从而强调了合约蜜罐检测的重要性. 此外,据研究发现,由攻击者主动构造的合约蜜罐在2018年开始大量涌现,截至2018年10月,因合约蜜罐带来的财产流失已经超过了9万美元[9].截至2021年,合约蜜罐带来的财产损失尚未得到进一步的权威统计,但根据本文在第6章节的实验分析,2019年仍是合约蜜罐的高发时期;并且根据本文对2020年下半年数据的分析,合约蜜罐的数量仍有逐渐上升的趋势.因此合约蜜罐的污染危害仍不可小觑,为了避免更大的财产流失,建立对合约蜜罐的深入理解,从攻击者视角分析蜜罐的变形方向,实现对未知蜜罐的精准定位十分必要. 当前围绕合约蜜罐的研究工作尚不成熟.在前期已有的研究工作中,Torres等人首次提出了合约蜜罐的概念,并先后通过两项研究工作将在野的合约蜜罐总结为10种类型.[9-10]目前在合约蜜罐的检测工作上,以基于符号执行的静态分析技术和机器学习技术为主流.但是这些方法的鲁棒性不足,我们研究了现有检测方法的实现思想,观察并总结了它们在检测应用中存在的三个关键挑战.
(1)语义鸿沟(SemanticGap).本文观察到在合约蜜罐的基因特征提取与合约蜜罐的检测工作之间存在着语义鸿沟.即使合约蜜罐被定义并且被分类了,但却没有研究者提出使用合约蜜罐成立的基因特征来实现合约蜜罐的检测,从而导致检测中出现高误报.例如,在首项合约蜜罐检测工作[9]中就已经提出同一类型的合约蜜罐之间存在巨大的差异性,然而后续的检测工作[10-11]却依旧从二分类检测的视角提取用于合约蜜罐检测的普遍特征,因此也并不 ①munity.EthereumOfficialWebsite[EB/OL].2014.[2021-05-31]./. ②The‘Etherscanners’Team.TheDAO[EB/OL].2016.[2021-05-31].https://etherscan.io/address/0xbb9bc244d798123 1c72d3bb8c189413. 880 计算机学报 2022年 会为蜜罐检测带来可观的有益效果.
(2)特征不当(ImproperCharacteristics).本文 观察到基于合约蜜罐行为特征的检测可能导致我们作为防御方会错过第一时间给与用户告警的最佳时机.区别于传统形式的恶意代码,我们观测到的合约蜜罐行为均为已经完成的行为状态,因此诸如在实时行为检测的同时做行为阻断并捕获恶意代码的操作是不被允许的,对于合约蜜罐而言,基于某些行为特征(比如代表“转账到攻击者账户”的资金流特征)检测到的蜜罐,往往意味着黑客已经攻击成功.
(3)字节屏障(ByteObstruction).基于合约蜜罐字节码的检测复杂化了蜜罐的检测工作.这是由于合约蜜罐的捕获对象是以太坊生态系统中的新手黑客,当且仅当合约代码开源时才会引起该目标群体的兴趣,因此基于合约蜜罐字节码的检测不仅进一步遮盖了合约蜜罐的基因特征,更是使得现有的检测方法将无法从根本或源头捕获形态各异的合约蜜罐. 本文期望通过精准的合约蜜罐检测来生成区块链威胁情报,进而可对以太坊社区发出预警,以助力区块链生态系统的健康运转.因此,为了解决上述问题,本文挖掘了以太坊生态系统中合约蜜罐的基因特征,构建了蜜罐的深层分类体系,即蜜罐家谱.以此为基础,本文提出了一个跨家族的各项异性检测模型(各项异性又称“各向异性”,即合约蜜罐在各个家族中的全部或部分基因特征随技术实现方式的不同而各自表现出一定的差异性),并研制了原型系统—CADetector(Cross-familyAnisotropicDetector).实验证明,CADetector能够高效、鲁棒的实现对已知和未知蜜罐的精准检测. 本文工作的主要贡献如下:
(1)基于以太坊关系图谱,本文分析了合约蜜罐的攻击机理,并对其攻击模型进行了提炼,将完整的攻击过程概括为“构建、编译、投递、部署、传播、诱导、锁定与收割”八个步骤.围绕“诱导”与“锁定”技术上的关键区别,对已知的10个蜜罐家族进行了细粒度的基因特征挖掘,首次构建了蜜罐家谱.区别于现有的蜜罐分类,蜜罐家谱是一种面向合约蜜罐的深层分类体系,涵盖了多种新型的蜜罐分支.
(2)提出了一种跨家族的各项异性检测算法,该算法通过分析合约蜜罐的共性首先界定了蜜罐的检测范围,通过过滤大量非合约蜜罐为检测工作节约了资源,提高了检测效率;其次,该算法实现了对合约蜜罐的动态检测路径规划,强化了检测结果的 鲁棒性;最后该算法以蜜罐家谱为指导,基于启发式算法的各项异性特征匹配实现了对合约蜜罐的动态精准检测.
(3)本文进行了自动化、可扩展的原型系统实现,开发了一个跨家族的各项异性检测工具—CADetector.实验表明,CADetector精准检测能力近乎100%,不仅超越了现有的蜜罐检测工具,而且CADetector对200w个以太坊区块上超过12万份未知的智能合约进行了大规模分析,在检测中CADetector新报告了384个0day合约蜜罐,经人工对所发现合约蜜罐逐一验证,证实检测精准率为93.5%.
(4)本文从面向以太坊的污染现状、攻击技术、检测层面和增强实现四个维度进行了深层次的数据分析,并发现合约蜜罐仍呈现缓慢上升的趋势、隐藏状态更新(HiddenStateUpdate,HSU)技术一直是攻击者偏爱的技术且偏爱程度持续升高,此外数据集不平衡问题影响了机器学习技术的表现性能,本文公开了CADetector的检测结果①,旨在助力解决数据集不平衡问题. 2相关工作 当前对于智能合约蜜罐检测和分析的相关工作还比较少,本文查阅了自2019年来CCFC类及以上的该领域相关论文,将其中核心的几项研究工作进行了讨论和分析. 2019年,Torres等人[9]首次提出蜜罐检测工具HONEYBADGER,该工具使用符号执行对蜜罐进行信息收集,并将收集到的信息用于对已知的8种蜜罐的启发式静态分析.该工具爬取以太坊上的151935个智能合约作为数据集,对其中5类蜜罐实现了100%的准确率,但对另外3类却具有较高的误报率(15%、18%、12%).最终计算该工具识别是否为蜜罐的二分类准确率为87%,误报率则为13%.尽管本文认为HONEYBADGER是最接近依赖于蜜罐成立的本质特征构建的分析工具,但该工具在静态分析过程中实现的是粗粒度的本质特征匹配,因此导致了检测过程中出现较高误报的问题. 文献[10]中,Camino等人围绕蜜罐提取其源码特征、交易特征和资金流,来辅助完成基于机器学习 ①JiTiantian.HoneypotdetectionresultsbyCADetecto[rEB/OL].(2021-05-31)./yogaJtt/CADetector.git. 4期 冀甜甜等:CADetector:跨家族的各项异性合约蜜罐检测 881 算法XGBoost(eXtremeGradientBoosting)的蜜罐检测(方便起见,本文将其开源的检测工具简称为“XGBoost”).该方法爬取以太坊上的158863个智能合约作为数据集,对已知8类蜜罐的检测结果为:仅对其中一类蜜罐实现100%的召回率,对另外7类蜜罐均具有较高的漏报率(5.1%、7.7%、8.9%、9.3%、9.7%、10%、15%).值得一提的是,根据文献[12],XGBoost是对比了AdaBoost(Adaptive Boosting)、RF(RandomForest)、SVM(SupportVectorMachine)和KNN(k-NearestNeighbor)这些模型后,被选择出的用于缓解数据集不平衡的更优秀模型.本文对该方法进行了完整复现,排除了模型选择不当的因素之后,发现其具有高漏报的根本原因是数据集不平衡,文章使用295∶158863的正负样本训练机器学习模型,即使使用10折交叉验证,仍然会因数据失衡导致训练过拟合或欠拟合的问题,这是导致漏报的根源. 此外,文献[10]的这一方法在特征提取过程中使用的一些行为特征(例如表示“转账到合约账户”与“转账到攻击者账户”的资金流特征)是蜜罐攻击成功的标志.这是因为以太坊的特殊性使得与智能合约关联的行为在执行完成后才公开可见,这与传统恶意代码可以通过实时动态行为分析的恶意行为阻断不同,当这些行为特征被用于合约蜜罐检测时,检测到的合约蜜罐往往意味着黑客已经攻击成功.这不仅在一定程度上导致了漏报问题,也意味着我们作为防御方已经错过了第一时间给予用户警告的最佳时机.因此在本文中,我们不采纳基于(已完成)行为的检测. 2020年,Chen等人[11]提出了一种基于LightGBM机器学习算法的、面向字节码的蜜罐检测工具(下文简称“LightGBM”).该工具以616个蜜罐作为正样本,218250个非蜜罐作为负样本来训练机器学习模型.该模型在蜜罐二分类上表现为约96%的准确率和约87%的召回率,说明该模型具有约4%的误报率和约13%的漏报率.对比二分类的表现,该模型在多分类结果中,其检测的准确率和召回率呈现明显的不稳定性,但AUC值却可以实现为96%以上.本文对该工具进行了深入分析,发现合约蜜罐与非合约蜜罐之间存在的数据高度不平衡的问题是导致AUC值偏高、模型表现不稳定的根本原因.综合LightGBM的性能表现和对XGBoost[10]高漏报成因的分析,本文得出结论:当前蜜罐检测工作中存在数据高度失衡问题,机器学习在该场景下不能很好的 发挥其优势,且此类检测容易通过构造对抗性合约蜜罐的方式进行绕过[13],因此并不适用于直接进行机器学习模型的训练和检测,本文在尚未建立平衡数据集或特征发现工程尚不完备的情况下,将不采用机器学习进行合约蜜罐检测. 在文献[14]和文献[15]提出的方法中也分别成功捕获了23个和51个合约蜜罐.文献[14]旨在揭示并分析以太坊上已有的攻击和防御策略;文献[15]则旨在检测以太坊上有真漏洞的危险智能合约.因此这两种检测方法虽显示其具有对合约蜜罐的捕获能力,但由于这两种方法并不以捕获合约蜜罐为主要目的,因此只分别实现了1/5、1/10的类型覆盖率. 3基本概念 为下文讨论方便,本章对以太坊基本概念[16-17]展开介绍.3.1以太坊核心概念
(1)智能合约(SmartContract,简称SC):是运行在区块链上的程序,由区块链共识机制保证其正确执行.在可视化环境(例如Etherscan浏览器)中,智能合约包含合约地址、名称、余额、编译器版本、合约代码等关键信息.需要说明,合约代码一旦上链则无法可篡改.
(2)外部账户(ExternallyOwnedounts,简称EOA):指用户通过私钥直接控制的账户,是以太币交易或访问SC的起点.
(3)交易(Transaction,简称tx):由EOA发起,是唯一能够驱动以太坊发生状态改变的机制.EOA可以触发交易,而SC不能主动发起交易,只能在被触发后按预先编写的合约代码执行.一条交易信息包含多个元数据,例如:from,to,input等.其中,from表示交易的发起者,必须为EOA;to表示交易的目的地址,可以是EOA、SC或0x0;input表示交易携带的信息,可以是SC的字节码、SC的函数调用或空.以图1为例,该tx为合约创建交易,此时to字段为0x0,并且input字段信息为SC的字节码. 图1tx关键信息示意图 882 计算机学报 2022年 基于上述三个关键角色,本文面向以太坊提供了可视化的关系图谱.如图2所示,该图谱概括了以太坊上的三种基本关系:①创建关系;②调用关系;③转账关系.其中,SC到SC的转账既属于调用关系,也属于转账关系,在本文中,我们将其归类为转账关系.对应每种基本关系,根据源点(Source)和目标点(Target)的不同,又可以具化为8种关系实例,具体详见表
1. 表2关键流程描述 No.步骤 具体描述 根据需求设计、编写SC源码,其源码形态可类比常见1构建 的python、c语言代码. a.编译合约源码为可在以太坊虚拟机上执行的byte⁃2编译code;b.获取SC的AB(I应用二进制接口),ABI提供 了SC的函数调用接口.(详见图3) 基于EOA→tx的创建关系,SC构造者通过其EOA发3投递 起如图1所示的交易,实现SC到以太坊的投递. tx被打包并执行后,便在以太坊上完成了对SC的部4部署 署,相关的tx信息会同步在全网公开. 基于表1中1、4-5、6-8这些基本关系实现到SC的函 数调用.下文中,为了区别良性SC与合约蜜罐,本文5交互将交互划分为“良性交互”、“诱导”、“锁定”与“收割” 四类. 图2以太坊关系图谱 表1以太坊基本关系汇总 No.Source Target关系描述 说明 所有其他关
1 EOA tx 创建关系系均建立在 该关系的基 础之上.
2 tx EOA转账关系 —
3 → 创建关系 —
4 tx SC 调用关系 —
5 转账关系 — 6SC7 SC 创建关系该关系依赖 调用关系于3/4/5号
8 SC EOA转账关系关系的建立 3.2智能合约的关键流程一个智能合约从设计到使用的关键流程可以概 括为构建、编译、投递、部署与交互5个步骤,具体描述详见表2.3.3合约蜜罐及其相关身份 合约蜜罐是由攻击者构造的一段代码,属于一种特殊类型的非良性智能合约.[18-19]攻击者为了实现获利的目的,通过在合约代码中构造携带伪装漏 图3蜜罐源码编译后的bytecode与ABI示意图 洞的陷阱来达到吸引新手黑客的目的.这些陷阱通常使用资金形式的诱饵使新手黑客落入陷阱.这些新手黑客拥有较为局限的区块链知识,会将合约蜜罐中的伪装漏洞识别为真漏洞,因此他们会尝试进行漏洞利用,认为用较低的资金投入可以换取高回报.然而,尝试漏洞利用的过程,合约蜜罐便会将新手黑客投入的资金做封锁,并阻断其获取高额资金的过程. 合约蜜罐是区别于合约漏洞的一种特殊存在.一方面,合约漏洞是已经存在的、被黑客发现并进行恶意利用的,而合约蜜罐中存在的伪装漏洞或陷阱则是由黑客主动构造的;另一方面,合约漏洞的攻击群体多为正常用户,而合约蜜罐的主要诱导对象是新手黑客.此外,一些类型的合约蜜罐也会基于现有公开的合约漏洞来构造陷阱,这类陷阱既修补了现有的漏洞,又增加了成功诱导新手黑客的可能性. 综上,根据合约蜜罐的定义,本文明确了与合约蜜罐攻击相关的两个关键身份,并对0day合约蜜罐进行了诠释: 关键身份1-攻击者:合约蜜罐的构造者,同时也 4期 冀甜甜等:CADetector:跨家族的各项异性合约蜜罐检测 883 是最终的获利者.关键身份2-受害者:尝试针对合约蜜罐做“漏洞 利用”的新手黑客.0day合约蜜罐:与0day漏洞(指以软件供应商为 代表的防御方未知,或防御方已知但还没有相关补丁的计算机软件漏洞)有所区别,0day合约蜜罐类似于还未被纳入黑名单(Blacklist)的恶意域名或恶意网站,它综合考虑作用对象、作用时间、陷阱技术以及伪装形式等,指在以太坊上已经完成部署的合约蜜罐,除了攻击者和被成功诱导的受害者,还没有其他人知道这一陷阱,即最新被发现且当前尚未公布的合约蜜罐.0day合约蜜罐通过新的合约地址或新的伪装漏洞等不同的角度实现对新手黑客的诱导,相比在野合约蜜罐,0day合约蜜罐的诱导成功率更高,可以被攻击者有效地加以利用,其发起的攻击往往具有更大的 破坏性.在本文中,对0day合约蜜罐的检测能力是评价当前合约蜜罐检测工作的一个重要指标. 4攻击机理与蜜罐家谱 4.1典型SMC型合约蜜罐图4所示为一个典型SMC型合约蜜罐的源码 示意图.在该合约中包含PrivateBank和Log两个合约,其中PrivateBank是攻击者要部署在以太坊区块链上的主合约,对应的合约访问者可以通过调用Deposit和CashOut函数分别实现存款和取款操作.Log合约中的AddMessage函数定义了日志记录功能.在合约部署中该Log合约并不产生实际作用(即不被主合约调用),但由于与主合约调用的合约同名,其在攻击过程中将助力欺骗新手黑客. 图4SMC型蜜罐的源码形态示例-PrivateBank 为了更好的诠释合约蜜罐的思想,本文分别从受害者视角和攻击者视角对图4所示的合约蜜罐进行了剖析. 如图5所示,受害者聚焦CashOut函数,认为该合约中存在递归利用漏洞,可以通过构造对应的“利用”合约,进行如下操作的漏洞利用: ①通过“构建、编译、投递、部署”完成“利用”合 约(如图5所示的Victim)到以太坊的发布;②受害者EOA通过调用Victim合约中的B(), 实现与PrivateBank合约的“交互”,在“交互”过程中,B()调用PrivateBank合约中的CashOu(t); ③CashOu(t)实现了到访问者msg.sende(r即Victim合约)的转账(如图5line16所示); ④转账过程会默认调用Victim合约的fallback 884 计算机学报 2022年 图5受害者视角下的利用逻辑 函数(如图5line6所示的function());⑤fallback函数再次实现了对CashOu(t)的调 用,因此执行流程返回至步骤③,后续通过③④⑤步骤的循环操作可实现由PrivateBank合约到Victim合约的循环转账. 然而,图5展示的利用逻辑正是合约蜜罐诱导受害者步入陷阱的第一步,本文将其称为“诱导”.产生诱导之后,受害者尝试执行实际利用,却会发现其视角下的利用逻辑是失败的.本文将通过图6所示的实际逻辑解释这一结果: ①该步骤与图5的步骤①保持一致;②受害者EOA通过调用Victim合约(见图5)中的A(),实现对PrivateBank合约中Deposi(t)的调用,以及到PrivateBank合约的转账(>1ether); ③Deposit()会调用TransferLog合约的AddMessage(); ④TransferLog是图6所示Log合约(为了区别,下文中称为“TrueLog”)的实例化,与图4的Log合约虽然同名,但功能实现却不相同. ⑤AddMessage()实现了PrivateBank合约到攻击者账户的转账.如图6line5所示,只在PrivateBank合约保留了0.1ether. ⑥受害者对④⑤两个步骤无感知,认为步骤③中AddMessage()仅执行日志记录(如图4Log合约所示),而当受害者尝试“漏洞利用”时,由于PrivateBank合约中没有足够的资金支持转账操作,因此“利用”过程将产生崩溃,止步于图5所示逻辑中的步骤③. 图6合约蜜罐的实际攻击逻辑 本文将图6的攻击逻辑概括为“锁定”与“收割”,分别代表对受害者转入资金的锁定,以及对锁定资金的转移.根据合约蜜罐逻辑的不同,“锁定”与“收 割”可以选择合并为一条指令进行实现,也可以独立实现.综上,攻击者通过“诱导”、“锁定”与“收割”3个关键操作才最终完成了围绕合约蜜罐的攻击. 4期 冀甜甜等:CADetector:跨家族的各项异性合约蜜罐检测 885 4.2合约蜜罐的攻击机理围绕合约蜜罐的攻击模型可提炼为如图7所 示.该模型将攻击过程概括为构建、编译、投递、部署、传播、诱导、锁定、收割8个步骤. 图7围绕合约蜜罐的攻击模型 如表3所示,构建、编译、投递、部署4个步骤与良性SC发布到以太坊的关键流程保持一致,而在其他环节中显示关键区别. 表3关键流程对比 类型 良性SC合约蜜罐 构建 ●● 编译 ●● 投递 ●● 部署 ●● 传播● 诱导 ○● 锁定 ○● 收割 ○● 良性交互 ● 在传播步骤中,攻击者为了实现对潜在受害群体的诱导,需要在主流以太坊浏览器(如Etherscan)上公开合约蜜罐相关的源码、ABI等信息,以便被受害者发现,这一步骤在Etherscan上被称为“Verify&Publish” 根据前述对“典型SMC型合约蜜罐”的介绍,诱导、锁定、收割3个步骤已无需阐述.但值得一提的是,对于不同类型的合约蜜罐,它们在攻击模型上的技术区别主要表现在“诱导”和“锁定”两个步骤上,即不同构造方式生成的合约蜜罐具有不同的陷阱诱导和转账阻断技术.根据这些技术基本原理的不同,Torres团队[将9-10]当前的合约蜜罐总结为10种类型,分别为
(1)余额紊乱(BalanceDisorder,BD)、
(2)继承紊乱(InheritanceDisorder,ID)、
(3)跳过空字符串文本(SkipEmptyStringLiteral,SESL)、
(4)类型推导溢出(TypeDeductionOverflow,TDO)、
(5)结构体未初始化(UninitializedStructure,US)、
(6)隐藏状态更新(HiddenStateUpdate,HSU)、
(7)隐藏转移(HiddenTransfer,HT)、
(8)稻草人合约(StrawManContract,SMC)、
(9)转账未执行(UnexecutedCall,UC)、(10)映射键的编码技巧(MapKeyEncodingTrick,MKET). 4.3蜜罐家谱尽管Torres团队[9-10]总结的10种蜜罐类型已经 为当前的蜜罐检测工作提供了极大的便利.但与传统的恶意代码类似,即使是相同类型的蜜罐,它们之间仍存在很大的差异.例如图4和图8所示均为SMC类型的蜜罐,尽管两者具有相同的诱导原理(即:蜜罐制造者为当前合约引入了可控的接口,而被诱导者对可控接口拥有错误的认识),但两者的构造方式却存在明显的区别.前者基于一个显式的诱导合约Log来制造可控的陷阱,后者则借助delegatecall控制合约蜜罐变量的方式来构造隐式陷阱.本文将这种原理层面的特征称之为“基因特征”,相同类型蜜罐间虽然具有相同的基因特征,但由于技术实现方式的多样化,这些基因特征对应的关键代码是存在区别的.本文将这些以特定顺序链接而成的关键代码组成的序列称之为“基因序列”,而基因序列的差异化则是影响蜜罐检测的关键因素. 图8SMC型蜜罐的源码形态示例-Conductor 为了解决这一问题,本文构建了蜜罐家谱.具体如表4所示,蜜罐家谱不同于当前蜜罐的10种分类,它将每种蜜罐类型视作一个蜜罐家族,挖掘了族间各项异性特征(即:不同蜜罐家族对应的不同基因特征),这些特征总结了蜜罐进行诱导和锁定的基本原理,在不同蜜罐家族间是各项异性的存在,在同一蜜罐家族内则是各向同性的存在.进一步,考虑基因序列的差异化,本文从技术实现的角度考虑每个 886 计算机学报 2022年 蜜罐家族内部衍生的细粒度分支,并对家族可能的变形进行了预测(其中统计为0的子类分支是实际可行 的变形预测,由本文首次提出),从而构建了一套较为完整的、涵盖衍生变体的深层分类体系,即蜜罐家谱. 蜜罐家族BDID SESLTDO US HSUHT SMC UCMKET 表4蜜罐家谱 族间各项异性特征(组)
(1)转账金额判断
(2)超额转账
(1)继承关系
(2)“同名”变量混淆
(3)“同名”变量可控
(4)制约转账权限
(1)编译器版本<0.4.12
(2)空字符串参数特征
(3)转账地址具有诱导性
(1)转账金额判断(2)var特征
(3)制约转账权限
(1)编译器版本<0.5.0
(2)存在struct关键字定义的结构体(3)struct未初始化
(4)结构体类型的变量覆盖赋值
(5)制约转账权限
(1)至少存在一个storage类型的全局变量的声明
(2)某函数中对该全局变量做更改赋值
(3)存在对该全局变量的条件判断
(4)该条件判断制约转账权限
(1)某一行中空格的长度超过阈值
(2)必备隐藏与显示两个转账指令 族内分支/变形— 一重继承多重继承相似字符混淆HSU式继承紊乱基本形式msg.sender受益型无限循环型直接var变量型var变量计算型覆盖的状态判断型 覆盖的转账金额型 bool判断型 非bool判断型 —构造函数引入可控 (在野)数量21493229150047 0 75 76 2114
(1)存在蜜罐构造者可控的、误导性的调用接口 onlyOwner权限函数
1 引入可控
(2)可控接口无法被新手黑客控制
(3)制约转账权限 delegatecall引入可控
8 原子性1 1/41/21/3 1/2 1/21 1/4 拆分复用性集成性
0 2 22[0,3/4]111[0,2/3]
1 1 [0,2/3]
1 1
2 [0,4/5]- 4[0,3/4]
2 0
2 1 1[0,2/3]
1
(1)存在无效的.call.value的转账指令
(2)访问者可调用执行无效转账指令
(1)存在与英文难以区分的特殊字符
(2)该特殊字符制约转账权限 HSU式引入可控—— 10
1 4
1 0
1 1
1 0
1 蜜罐家谱的构建,不仅为增强合约蜜罐检测提供了核心的基因特征和基因序列,而且也提供了其他一些同样重要的有效信息,本文将其提炼为如下三个特性: (原子性,Atomicity)合约蜜罐成立的基因特征不可拆分.例如,BD、HT、UC和MKET4种类型的合约蜜罐由于具有原子性,其核心代码形态具有唯一性,不会产生类内子分支.本文使用数学符号α表示对原子性的度量,其取值范围应为[0,1].其中,若将族内分支数量用β表示,则具有原子性的合约蜜 罐取为
1,非原子性合约蜜罐取值为1/β.(拆分复用性,SplitReusability)合约蜜罐成立 的基因特征可被拆分用于辅助其他类型合约蜜罐的升级变形.例如,HSU型合约蜜罐便具有复用性,其基因特征的一部分已经被用于辅助ID、SMC等合约蜜罐完成了变形.最重要的是,本质上,这些变形后的合约蜜罐仍然属于原家族.本文使用数学符号θ表示对拆分复用性的度量,其取值范围应为[0,1).若一类合约蜜罐的基因特征可被拆分为ω个部分,则其拆分复用性的取值则表示为1-1/ω(ω的最 4期 冀甜甜等:CADetector:跨家族的各项异性合约蜜罐检测 887 小取值为1).值得一提的是,原子性与拆分复用性并不是互斥关系,即合约蜜罐具有非原子性并不等价于其基因特征可被拆分复用,但可被拆分复用的合约蜜罐一定具有非原子性. (集成性,Integration)合约蜜罐中包含两种及以上条诱导路径,路径之间相互独立.即使将其中一条路径删除,合约蜜罐仍然成立.简言之,合约蜜罐是多种类型合约蜜罐的合并,具有多种类型合约蜜罐的基因特征.本文使用符号φ表示对集成性的度量,φ的取值区间为[1,10],表示合约蜜罐中诱导路径的数量,值为1时则不具有集成性.例如,0x5bb52e85c21ca3df3c71da6d03be19cff89e7cf9地址对应的合约蜜罐本质上既是BD型合约蜜罐,也是ID型合约蜜罐,则其集成性取值为
2. 对应表
4,合约蜜罐的原子性取决于每个蜜罐家族的分支/变形的能力;对于一个特定的蜜罐家族则是由一组特有的基因特征构成的.不同蜜罐家族间子基因特征的交叠则意味着一组基因特征被拆分复用的可能性,即合约蜜罐构造者可以从一个子基 因特征出发,构造属于不同家族的合约蜜罐.因此,拆分复用性则表现为每个蜜罐家族可助力其他蜜罐家族进行蜜罐升级或变形的能力;最后,在一个合约蜜罐中可以集成多种蜜罐家族技术,因此集成性在单个合约蜜罐的基因序列中体现,表4所示的数值仅代表当前在野合约蜜罐中集成性的统计情况.理想情况下,单个合约蜜罐上可以集成所有蜜罐家族的诱导路径. 5各项异性合约蜜罐检测 结合合约蜜罐的攻击机理和蜜罐家谱,本文提出跨家族的各项异性蜜罐检测模型—CADetector.尤其蜜罐家谱囊括了不同类型/分支蜜罐之间的各项异性,是CADetector实现精准蜜罐检测的基础.如图9所示,CADetector由3个模块构成:
(1)基于各项同性的蜜罐检测范围界定;
(2)动态检测路径规划;
(3)基于启发式算法的各项异性特征匹配. 图9CADetector:跨家族的各项异性蜜罐检测模型架构 5.1基于各向同性的蜜罐检测范围界定蜜罐的定义及目标对象决定了其较为简单的逻 辑复杂度,这是所有蜜罐的共性.通过对比分析蜜罐和非蜜罐在逻辑复杂度呈现上的差异性,本文提取了4个关键的逻辑特征:
(1)有效代码行数(指删除代码注释和空白行后的计算结果),
(2)是否使用SafeMath,
(3)是否使用Interface,
(4)是否使用payable关键词.为方便起见,下文中我们分别用rows、has_SafeMath、has_Interface、has_payable来表示这4个特征. 我们使用散点图、小提琴图以及0-1分布计算等对349个合约蜜罐(源自HONEYBADGER和XGBoost的检测结果)和41个被HONEYBADGER误报的非合约蜜罐(注:本文侧重关注合约蜜罐的分布,因此非合约蜜罐的数量多少并不产生影响)实现了逻辑复杂度特征的对比.本文通过数据分析得出的结论为:几 乎全部(99.7%)蜜罐的代码量控制均在150行之内;蜜罐使用SafeMath和Interface的概率几乎为0;当前已知的蜜罐中全部使用payable关键字,这是合约可接收转账的关键.具体如图10和图11所示,非合约蜜罐在一定程度上区别于合约蜜罐的特征分布,因此基于这4项逻辑复杂度特征建立区分关系,可有效帮助筛除部分非蜜罐,提升检测效率. 根据表4所示的21个蜜罐家族分支,可以判断攻击者擅长合约蜜罐变形技术,因此在基于逻辑复杂度特征筛除非合约蜜罐的过程中,本文有意增强合约蜜罐的逻辑复杂度,最终提取的4个有效特征如表5所示.这四个特征将有效避免合约蜜罐检测过程中的漏报问题,当这些特征不被满足时,则意味着过高的逻辑复杂度将导致合约理解困难,无法吸引新手黑客的注意. 因此,在基于各向同性的合约蜜罐检测范围界 888 计算机学报 2022年 图10有效代码行数分布图 图11复杂逻辑表征特征统计表5Adversarial各向同性的逻辑复杂度特征 定中,本文将根据表5划定的合约蜜罐与非合约蜜罐之间的粗粒度特征边界进行区分.表5中所示圆圈中的黑色占比区域即为CADetector的检测范围.该模块将一半以上的非蜜罐划定在本文考虑的范围之外,在提高CADetector检测效率的同时,还通过增加逻辑特征的复杂度,基本完全囊括了合约蜜罐的部署范畴.5.2动态检测路径规划 由表4可以看出,部分蜜罐家族在部分基因特征上会存在一定程度的重叠,为了减少因特征重叠带来检测结果的误报,本文通过提出动态检测路径规划的思想来强化检测结果的鲁棒性.动态检测路径规划实现对蜜罐的原子性、拆分复用性、蜜罐家族体量3个要素的加权度量.具体而言,对于一种蜜罐类型,当其原子性取值越大、拆分复用性取值越小、 所属类型的蜜罐数量越少时,该类型的判定优先级 会越高.因此,本文提出的动态检测路径规划子模 型如公式
(1)所示.其中,α表示蜜罐的原子性,θ表 示蜜罐的拆分复用性,hpN为当次蜜罐检测时对应 不同蜜罐家族的体量,AmN表示量纲扩展幅度,ε表 示可接受且可忽视的容错误差,desor(t)则表示为降 序排列函数. desort(α+ε*AmN*(1-θ+ε))hpN
(1) 对应表
4,蜜罐家族的原子性数值是明确的,而 蜜罐的拆分复用性和蜜罐家族的体量却是动态变化 的.首先,在蜜罐检测过程中,若当前合约蜜罐基于 拆分复用性构建,比如属于家族B的合约蜜罐由家 族A的部分基因特征辅助构建,则A对应的拆分复 用性需要进行动态调整,此时A的拆分复用性数值 应为其在已知蜜罐中体现家族A拆分复用能力的 最大值. 其次,合约蜜罐检测初始,CADetector会默认 不同蜜罐家族是均匀分布的,这种均匀分布意味着 不同蜜罐家族间相互独立的假设.但根据本文的分 析,单个合约蜜罐可以同时集成两种及以上不同蜜 罐家族的关键技术,而且由于一些蜜罐家族间存在 子特征的重合,根据合约蜜罐执行路径的不同,它对 不同操作者呈现的家族类型也是不同的
.鉴于此, 本文在分析中发现不同家族的蜜罐体量在一定程度 上是对蜜罐家族独立性的一种映射,即:体量越小的 蜜罐家族,往往仅只具有本家族的关键基因特征,蜜 罐检测结果更加明确.因此,我们将体量作为动态 规划的一个关键参数,用于增强合约蜜罐检测的准 确性. 最后,初始检测路径规划时,本文将所有蜜罐家 族的拆分复用性数值初始化为
0,并将表4记录的已 知在野蜜罐的统计数值作为蜜罐家族的初始体量数 值,由此计算得到的初始检测路径为:MKET→ UC→HT→BD→TDO→SESL→US→ SMC→ID→HSU.5.3基于启发式算法的各项异性特征匹配 结合蜜罐家谱中总结的族间各项异性特征和族 内分支/变形的细分结果,CADetector为10个蜜罐 家族构建了蜜罐画像,并在GitHub①上实现了开源. 对应表
4,以SMC家族的合约蜜罐为例,本文构建 ①JiTiantian.HoneypotdetectionresultsbyCADetecto[rEB/OL].(2021-05-31)./yogaJtt/CADetector.git. 4期 冀甜甜等:CADetector:跨家族的各项异性合约蜜罐检测 889 的蜜罐画像如图12所示,图中①②③分别表示蜜罐家谱中总结的SMC家族的3个基因特征,即
(1)存在蜜罐构造者可控的、误导性的调用接口;
(2)可控接口无法被新手黑客控制;
(3)制约转账权限.ⓐⓑⓒⓓ则分别表示SMC合约蜜罐家族内的4个分支,即:(a)构造函数引入可控;(b)onlyOwner权限函数引入可控;(c)delegatecall引入可控;(d)HSU式引入可控. 上述4个分支对应的合约蜜罐在基因序列上存在区别.图12右侧的箭头指向代表组成基因序列的链接顺序,相同形状的箭头代表相同的功能流向,即基因序列上相同形状的箭头只需出现一次.例如ⓐⓑⓒ对应的核心代码都代表通过引入可控接口的方式来构造合约蜜罐,虽然构造方式不同,但它们对应基因序列的链接顺序是一致的,因此在图12中,本文以多个并行的实线箭头(→)来表示这一相同的链接顺序.因此,在基因序列的构成中,通过这些相同形状箭头间的链接替换,可以对应识别多种不同分支的合约蜜罐. 各类蜜罐画像为匹配目标,以动态指定的检测路径为指导进行启发式动态检测.在蜜罐首次被判定为蜜罐时,则停止当次蜜罐的检测过程,并输出蜜罐所属类型及其所属的类内分支,并根据公式
(1)重新规划检测路径,以准备指导再次的各项特征匹配与推演过程.若整条检测路径全部检测结束,当前智能合约仍未被检测为蜜罐,则该模块输出非蜜罐的检测结果.之后,该模块接受下一个智能合约,进入循环匹配与推演过程,直至所有的智能合约均被检测结束. 最终,CADetector基于各项异性特征匹配方法构建而成.聚焦整个蜜罐家族,CADetector也提供了一种动态检测路径规划的优化方案,旨在增强检测准确性.而聚焦单个智能合约,由于合约蜜罐的代码量普遍偏小(99.7%的合约蜜罐的代码行数控制在150行以内),可以遍历执行的路径很少.因此,采用符号执行覆盖所有路径的思路属于重量级分析,实时性较差;而代码量小却为静态分析带来了优势,基于启发式的方法可以快速获取精确的蜜罐合约信息,所以CADetector本质上属于基于启发式的静态检测工具. 6实验 图12以SMC家族为例的蜜罐画像示意图 相对应的,多种基因序列的组合共同映射了同一个蜜罐家族中的基因特征,因此,本文将这种枚举式基因序列的组合称之为一个蜜罐家族的蜜罐画像,图12所示即为蜜罐画像的一个典型示例.蜜罐画像集成了一个蜜罐家族的基因特征、细粒度的分支/变形、对应的核心代码以及多种不同的链接顺序,可以预见,以蜜罐画像作为一个面向蜜罐家族做启发式检测的起点,将具有良好的检测效果和检测精度. 因此,本文提出基于启发式算法的特征匹配,该算法以蜜罐家谱为指导,通过为10个蜜罐家族刻画蜜罐画像,建立了面向不同家族的各项异性的特征匹配模块.该模块接受智能合约为输入,以刻画的 6.1数据集构建为了验证CADetector的检测能力,本文搭建了 一个面向以太坊的实验环境.硬件环境是Inte(lR)Core(TM)i5-3320MCPU@2.60GHz,16.0GB,64位win10系统;测试环境是python3.7.6;数据集获取是基于geth客户端和web3模块搭建的nodejs环境和数据库存储实现的.具体而言,本文构建了3类数据集,分别用于实现不同的测试目的. 数据集Ⅰ:benchmark数据集.此数据集源于HONEYBADGER对以太坊区块链上[0,650w)区块中共158863份SC的检测结果,以及由XGBoost提供的13个在野合约蜜罐,共包含295份合约蜜罐(其中282份由HONEYBADGER捕获)和41份被HONEYBADGER误报的非合约蜜罐.XGBoost以该检测结果为benchmark来验证其基于机器学习的检测结果.鉴于此,本文仍以该检测结果为benchmark,实现了CADetector与主流检测工具HONEYBADGER和XGBoost的对比分析. 数据集Ⅱ:XGBoost数据集.此数据集是由Torres团队[9-10]开源的、以太坊区块链上[0,650w)区块的智能合约集合.本文从基于geth搭建的以太 890 计算机学报 2022年 坊节点上进行了数据集获取,共获得158568份SC(benchmark数据集中的295份合约蜜罐不包含在内).与XGBoost对检测结果做前序样本(100份)的验证方式保持一致,本文实现了CADetector与XGBoost在面向未知数据集时的检测能力对比.值得一提的是,该实验以HONEYBADGER的检测结果作为benchmark,因此XGBoost和CADetector对合约蜜罐的新发现均被视为0day合约蜜罐,而HONEYBADGER提供的检测结果则均为非0day合约蜜罐. 数据集Ⅲ:自爬取数据集.本文对以太坊节点上[650w,850w)区间的区块数据进行了爬取和数据库存储,共获取了125988份未知SC,这些SC被 创建的时间区间为2018年10月12日至2019年9月7日.由于是这类自爬取数据集属于未验证空间,本文不考虑与主流工具的对比,仅考虑CADetector在未知空间中的检测能力,通过对检测结果做全验证的方式,一方面验证了CADetector的性能,另一方面也对以太坊上未验证空间的受污染程度进行了量化评估.6.2已知合约蜜罐检测对比 本文基于数据集I实现的检测对比结果如表6所示:CADetector对所有8种类型的蜜罐均实现了100%的精准率和召回率,超越了当前最先进的两个合约蜜罐检测工具HONEYBADGER和 XGBoost. HONEYBADGERXGBoost GADetector 表6与主流合约蜜罐检测工具的检测能力对比表 TypeTPFPPrecision(%)TPFNRecall(%)TPFPFNTNPrecision(%)Recall(%) BD200100.017385.020000100.0100.0 ID41785.439490.743007100.0100.0 SESL90 100.091 90.010000 100.0100.0 TDO40 100.040 100.04000 100.0100.0 US320100.037294.939000100.0100.0 HSU1343081.71231291.1135 0030100.0100.0 HT120100.012192.313000100.0100.0 SMC304 88.2283 90.331004 100.0100.0 total2824187.32692691.2295 0041100.0100.0 首先,如表6所示,HONEYBADGER对以太坊区块链上前650w个区块上的智能合约进行了检测,获得了“是智能合约蜜罐”的检测结果.对于该结果,误报的结论是专家给出的,但是否有漏报是需要通过对所有650w个区块上的智能合约一一手动验证后才能得出的结论,因此难以得到漏报(或召回率)的结论. 其次,XGBoost的检测数据只提供了漏报信息,而未提供误报信息.一方面,在XGBoost的研究工作中,没有提供明确的误报数据;另一方面,本文在6.3节的分析中,XGBoost给出的结果数据中是存在误报的.因此,为了保证实验结果的可靠性,本文仅展示了文献[10]展示的检测结果. 最后,CADetector之所以能够保证高性能的原因在于它基于蜜罐画像精准发现了合约蜜罐的基因特征与基因序列之间的映射关系,建立了合约蜜罐与非合约蜜罐之间的有效特征边界,从而将非合约 蜜罐作为蜜罐画像覆盖范围外的异常存在.因此,CADetector通过构造蜜罐画像的检测本质上仍属于一种异常检测的方法,这种方法在数据集极度不平衡的情况下往往能产生较好的有益效果.[20-21]详细的数据对比分析如下: HONEYBADGER共将323份SC检测为合约蜜罐,其中282份为真蜜罐,体现在二分类上的精准率(precision)为87.3%.其中ID、HSU、SMC这3类蜜罐在数量上占了所有合约蜜罐的72.7%,而HONEYBADGER在这3类蜜罐上的检测性能欠佳.检测的精准率体现在这3类合约蜜罐上分别为85.4%、81.7%和88.2%,表现出了较高误报率.对比之下,CADetector不仅提升了合约蜜罐检测的精准率,其带来的额外优势还包括:
(1)不依赖于符号执行收集蜜罐信息,避免了蜜罐检测过程中路径爆炸的问题;
(2)不依赖于符号执行对关键信息进行约束求解,检测耗时的复杂度仅与 4期 冀甜甜等:CADetector:跨家族的各项异性合约蜜罐检测 891 HONEYBADGER第二阶段中启发式检测的耗时复杂度保持一致. XGBoost基于已知的共295个真蜜罐进行检测能力测试,共识别出269个真蜜罐,体现在二分类上的召回率(recall)为91.2%.影响其检测性能的主要原因在于XGBoost在没有大数据集的情况下,它通过机器学习能够学习挖掘到的、与合约蜜罐成立所密切相关的基因特征不够全面,而且大部分蜜罐家族还存在内部分支,更加增加了机器学习的难度.因此,XGBoost在面对大部分类型的蜜罐时,均存在较高的漏报率,最高时可达15%. 对比XGBoost,除通过基因特征挖掘降低了蜜罐检测的漏报率之外,CADetector还解决了XGBoost预警不及时的问题,即:XGBoost在检测过程中引入了一些不恰当的行为特征(例如“转账到攻击者账户”的资金流特征),这些特征虽然能够被用于表征蜜罐,但这些特征只在黑客攻击成功后得以表现.因此,对这些特征的利用仅可以被用于检测历史蜜罐,却无法在第一时间给予用户预警.6.30day合约蜜罐检测能力对比 本文基于数据集Ⅱ实现的检测对比结果如表7所示:在前序100份样本的验证中,XGBoost共捕获了54个0day合约蜜罐,CADetector则捕获了98个0day合约蜜罐.值得一提的是,本文对XGBoost公 开的检测结果进行了再次验证,发现其将两个应属于UC类型的合约蜜罐归类为了US类型,对此本文在表7中进行了纠正.此外,XGBoost公开的结果中报告了5个SMC型合约蜜罐,但本文分析后认为其中3个属于误报①,误报的原因是不存在吸引新手黑客的获利入口,即到访问者账户的转账. 表7的检测结果再次印证了面向少量真实合约蜜罐进行机器学习的XGBoost由于受限的特征挖掘能力,使其在对0day合约蜜罐的检测能力上也体现出一定的局限性.在小数据集上,CADetector基于语义层面的基因特征分析体现出了较高的优势.尽管如此,面向机器学习的方法仍具有一定的未知合约蜜罐检测能力,这是CADetector所不具备的,因此未来研究中,本文考虑通过数据增强实现完备的数据集,并将机器学习引入CADetector.6.4未验证空间的0day合约蜜罐检测 本文基于数据集Ⅲ实现的检测对比结果如表8所示:从二分类的角度,CADetector共将384个智能合约识别为蜜罐,其中359是真蜜罐,25个为误报,检测精准率为93.5%.导致这些误报的原因可从多分类的角度进行精准定位,可以发现对于大多数类型的蜜罐,CADetector均表现出100%的检测精准率,而几乎所有的误报都来源自对SMC型蜜罐和HSU型蜜罐的误报. BDID XGBoost
1 13 CADetector1 29 SESL 00 表70day合约蜜罐检测能力对比表 TDOUSHSUHTSMC
1 16
8 2(5-3FP)
1 13 28 11
7 UC 4(6-2FP)
7 MKET 11 Total 5498 block 650w-850w Type TPFPPrecision(%) BD 00100.0 表80day合约蜜罐的检测结果统计表 ID 10100.0 SESL 10100.0 TDO 10100.0 US 20100.0 HSU 3312493.2 HT 20100.0 SMC 19195.0 UC 20100.0 MKET 00100.0 Total 3592593.5 针对这些误报,本文总结原因如下:当前随着DApp的流行,SC的开发逻辑逐渐模块化,很多SC看似逻辑简单,实则是配合其他SC共同使用.在多个SC联合作用的过程中,SMC和HSU技术常被使用[22],并且一部分SC经专家验证后被认为是可以作为合约蜜罐使用,但考虑到联合应用的逻辑复杂度已经超过了新手黑客可以接受的范畴,因此对于这些SC,本文也将其划分为“非合约蜜罐”. 以图13所示的SC(称为BTCxCrowdsale)为 例,首先BTCxCrowdsale与0x781AC8C2D6dc017c4259A1f06123659A4f6dFeD8(简称合约A)和0x5A82De3515fC4A4Db9BA9E869F269A1e85300092(简称合约B)两个SC在协同配合下发挥作用,这是DApp开发中常见的一种模块化的开发模式;其次,与之配合的两个SC为BTCxCrowdsale的构造者 ①The'Etherscanners'Team.FixBet16[EB/OL].2018.[2021-05-31].89cff4e6 1fc36613f3c31e4d0d1#code. 892 计算机学报 2022年 图13使用HSU技术的良性智能合约 引入了一定可控的接口,这是SMC技术的特征表现;最后,BTCxCrowdsale使用bool变量crowdsaleClosed集成了HSU技术.究其本质而言,BTCxCrowdsale虽然具有合约蜜罐的特征,但合约A与合约B的设计、crowdsaleClosed变量的更新实际掌握在合约构造者一方,鉴于合约蜜罐的逻辑相对简单,此类复杂合约蜜罐凭借其代码逻辑能够诱捕新手黑客的概率较低,因此本文考虑将这种涉及多地址联合作用的复杂合约构造者视作白帽子开发者.此外,由于合约模块化开发趋势的流行,充分挖掘模块化SC的联动特征也将是必要的,CADetector未来的增强实现中将完善这一点. 与此同时,CADetector基于对抗性逻辑复杂度(详见表5)开展检测,并面向大多数类型的蜜罐实现了100%的检测精准率.这意味着在绝大多数情况下,CADetector面向各项异性特征的挖掘是成功的,与是否兼容高复杂逻辑无关,即CADetector更准确的抓住了这些蜜罐成立的本质特征和变形方向.6.5实验数据分析 结合上述实验结果,本文从面向以太坊的污染现状、攻击技术、检测层面和增强实现四个维度进行了数据分析:
(1)污染现状 基于上述3个数据集,除了当前已公开的349(295+54)份合约蜜罐,CADetector新捕获了403份0day蜜罐,其中359份0day合约蜜罐是在[650w,850w)的未验证区块空间上捕获的.所有这些合约蜜罐出现在以太坊上的时间跨度为2015年8月至2019年9月,这意味着合约蜜罐已对以太坊的生态环境造成了持续性的污染. 为了更好的感知当前的污染现状,在2020年 6月4日至2020年12月22日,本文运行CADetector对以太坊区块链上的SC进行实时动态监测,过程中又新发现了47个0day合约蜜罐,其中包括3个US型合约蜜罐、43个HSU型合约蜜罐、1个SMC型合约蜜罐.这些蜜罐出现的时间分布如下图14(a)所示,横坐标表示距今(2021年3月31日)年份,如0.3则表示为2020年12月份;纵坐标为对应时间段内合约蜜罐创建的个数.可以看出,从2020年6月到2020年12月,合约蜜罐的数量呈现缓慢上升趋势,侧面证明了合约蜜罐存在较长且可持续的攻击生命周期,该特点也使其成为攻击者在区块链上构建隐蔽型僵尸网络的一种主要利用对象[23]. 图14合约蜜罐创建时间分布图 从全局角度,本文将已知合约蜜罐与CADetector新捕获的所有合约蜜罐(共799个)进行了汇总统计,如图14(b)所示,2018与2019年是蜜罐的高发时期,虽然2020年下半年中合约蜜罐的出现次数相比之前大为降低,但逐渐上升的趋势也需要引起研究者的关注.本文将待关注问题划分为3个方面:一是为了防止合约蜜罐的再次大爆发,持续的实时监控与预警是必要的;二是随着DApp的流行,合约蜜罐的革命性变形是可能的,这将意味着合约蜜罐面向的对象可能产生转移或升级,因此,未来除了持续的实时动态监测,研究合约蜜罐是否开始对标更高资产用户或以高复杂逻辑出现是必要的;三是智能合约蜜罐污染下,对智能合约承载的上层应用(例如DeFi、NFT、DAO等)进行自底向上的防御建模和安全治理将是保护区块链财产安全的重要举措. 综上,基于CADetector的检测结果,防御方还可及时关注与攻击者相关的EOA、IP地址等威胁情报,一方面可以关注合约蜜罐的未来发展趋势,另一方面也可以助力区块链安全社区的情报共享和态势感知.
(2)攻击技术 综合表6-8以及动态实时监测下捕获的合约蜜罐数据,本文分析发现,在所有新发现的0day合约蜜罐中,HSU型蜜罐的数量占比从之前的41.5%上升 4期 冀甜甜等:CADetector:跨家族的各项异性合约蜜罐检测 893 到了约92%之高;在数量上,HSU型蜜罐从[0,650w)共650w区块上的163个上升到了后续[650w,850w)共200w个区块上的331个(详见表9的统计数据).占比的增加,时间区间的缩短,以及蜜罐出现频率的升高等都意味着HSU技术是攻击者非常偏爱的蜜罐构建技术,需要引起研究者的重视. 表9关于HSU型合约蜜罐的统计 区块/时间0-650w(2015.8-2018.10)650w-850w(2018.10-2019.9)2020.6-2020.12 HSU Total 百分比 163(135+28)393(295+98)41.5% 331 359 92.2% 43 47 91.5%
(3)检测层面CADetector的成功进一步证明了本文的观点—— 对绝大部分蜜罐的准确识别可以仅通过基于源码的语义分析和特征挖掘实现,即大部分蜜罐成立的本质特征并不严重依赖于相关的行为特征或资金流特征等.这一结论也从侧面呼应了合约蜜罐以新手黑客为主要目标对象的事实,即:为避免陷入技术细节,新手黑客可能不会进行过于复杂的行为特征分析或资金流分析,而是以更大的可能仅从源码层面对“有漏洞智能合约”(实际为合约蜜罐)进行快速识别.
(4)增强实现 当前,除了本文关注的基因特征挖掘之外,在合约蜜罐检测领域仍存在很多待解决的关键问题.典型的一个问题是当前主流的机器学习技术无法很好的应用于合约蜜罐的检测,如表10所示,导致这一问题的主要原因在于数据集极度不平衡. 场景 二分类 多分类类内分支 表10数据集不平衡问题的表现及影响 文献[10] [11] 表现 影响 合约蜜罐与非合约导致训练的机器学习模型 蜜罐的比例为295∶无法深入挖掘与蜜罐关联 158568 的本质特征 合约蜜罐与非合约蜜罐的比例为616∶218250 该方法基于字节码进行模型训练,影响了数据集的质量,进一步限制了与蜜罐相关的语义特征的挖掘 [10-11]本文 MKET、TDO、UC 型合约蜜罐数量仅 分别为1、6、
6 数据集完备度严重不足, 引入机器学习将无法发挥很多类内分支和可优势能的变形数量极少, 甚至为0(见表4) 基于这一观测视角,本文认为建立高质量、完备的数据集应是合约蜜罐检测的关键工作之
一,本文在GitHub①上对CADetector的检测结果进行了开源,以期助力该研究工作的开展. 7结论 为了探索更为健壮且有效的合约蜜罐检测方法,通过联动以太坊区块链,本文建立了面向合约蜜罐的攻击模型,给出了合约蜜罐攻击机理的诠释,并将完整的攻击过程提炼为“构建、编译、投递、部署、传播、诱导、锁定与收割”8个步骤.本文通过对在野的10个蜜罐家族做深入剖析,总结了不同蜜罐家族间的各项异性特征,并围绕攻击过程中“诱导”与“锁定”技术实现的不同,在蜜罐家族内部建立了分支和变形预测,从而为合约蜜罐构建了一套纵深完备的分类体系,即蜜罐家谱.在蜜罐家谱的指导下,本文提出了一种跨家族的各项异性蜜罐检测算法,并进行了原型系统(CADetector)实现.CADetector通过范围界定、路径规划和基于蜜罐画像的启发式算法,具备了面向不同蜜罐家族的、自动化的、可扩展的动态高精度检测能力. 在实验验证中,CADetector在性能表现上超过了当前主流的HONEYBADGER和XGBoost两个检测工具;并且本文在多个不同的数据集上进行了检测能力验证,验证结果显示CADetector对大部分类型的蜜罐均实现了100%的检测精准率,对已知和未知蜜罐的检测具有高鲁棒性,最终CADetector发现了450个0day合约蜜罐.这些0day的合约蜜罐具有检测延迟大、攻击时效长等特征,一旦攻击者通过多渠道传播成功建立对大量目标群体的诱导,将给以太坊的生态安全带来严重破坏,因此提前研究此类威胁的机理及防御技术是十分必要的. 最后,CADetector是面向solidity语言的智能合约蜜罐检测工具,本文的实验提供了其面向以太坊主网中智能合约蜜罐的检测结果.与此同时,CADetector也可以适用于多个不同的以太坊测试网络进行检测,实现跨网络的智能合约蜜罐检测,这将是本文的未来重点研究方向,旨在联合跨网络威胁情报,提供增强式态势感知,解决多网络平台的智能合约蜜罐污染问题. ①JiTiantian.HoneypotdetectionresultsbyCADetecto[rEB/OL].(2021-05-31)./yogaJtt/CADetector.git. 894 计算机学报 2022年 参考文献 [1]TsankovP,DanA,Drachsler-CohenD,etal.Securify:Practicalsecurityanalysisofsmartcontracts//Proceedingsofthe2018ACMSIGSACConferenceonComputerandCommunicationsSecurity.Toronto,Canada,2018:67-82 [2]KruppJ,RossowC.teether:Gnawingatethereumtoautomaticallyexploitsmartcontracts//Proceedingsofthe27thUSENIXSecuritySymposium(USENIXSecurity18.Baltimore,USA,2018:1317-1333 [3]MuellerB.Smashingethereumsmartcontractsforfunandrealprofit//Proceedingsofthe9thAnnualHITBSecurityConference(HITBSecConf).Amsterdam,Netherlands,2018:1-54 [4]Nikolić
I,KolluriA,SergeyI,etal.Findingthegreedy,prodigal,andsuicidalcontractsatscale//Proceedingsofthe34thAnnualComputerSecurityApplicationsConference.SanJuan,USA,2018:653-663 [5]JiangBo,LiuYe,ChanWK.Contractfuzzer:Fuzzingsmartcontractsforvulnerabilitydetection//201833rdIEEE/ACMInternationalConferenceonAutomatedSoftwareEngineering(ASE).Montpellier,France,2018:259-269 [6]HeJingxuan,Balunović
M,AmbroladzeN,etal.Learningtofuzzfromsymbolicexecutionwithapplicationtosmartcontracts//Proceedingsofthe2019ACMSIGSACConferenceonComputerandCommunicationsSecurity.London,UK,2019:531-548 [7]TorresCF,SchütteJ,StateR.Osiris:Huntingforintegerbugsinethereumsmartcontracts//Proceedingsofthe34thAnnualComputerSecurityApplicationsConference.SanJuan,USA,2018:664-676. [8]WuL,WuSW,ZhouYJ,etal.EthScope:ATransactioncentricSecurityAnalyticsFrameworktoDetectMaliciousSmartContractsonEthereum.arXivpreprintarXiv:2005.08278,2020:1-28 [9]TorresCF,SteichenM.Theartofthescam:Demystifyinghoneypotsinethereumsmartcontracts//Proceedingsofthe28thUSENIXSecuritySymposium(USENIXSecurity19.ClaraSanta,USA,2019:1591-1607 [10]CaminoR,TorresCF,BadenM,etal.ADataScienceApproachforDetectingHoneypotsinEthereum//Proceedingsofthe2020IEEEInternationalConferenceonBlockchainandCryptocurrency(ICBC).Online,2020:1-
9 [11]ChenWeili,GuoXiongfeng,ChenZhiguang,etal.HoneypotContractRiskWarningonEthereumSmartContracts//Proceedingsofthe2020IEEEInternationalConferenceonJointCloud Computing.Online,2020:1-8[12]WangW,SongJ,XuG,etal.Contractward:Automated vulnerabilitydetectionmodelsforethereumsmartcontracts.IEEETransactionsonNetworkScienceandEngineering,2020,8
(2):1-12[13]HanY.,JiT.,WangZ.,LiuH.,JiangH.etal.AnAdversarialSmartContractHoneypotinEthereum.ComputerModelinginEngineering&Sciences,2021,128
(1),247-267[14]ZhouShunfan,YangZhemin,XiangJie,etal.Aneverevolvinggame:Evaluationofreal-worldattacksanddefensesinethereumecosystem//Proceedingsofthe29thUSENIXSecuritySymposium(USENIXSecurity20.Online,2020:2793-2810[15]HanSongming,Liangbin,HuangJianjun,etal.DC-Hunter:DetectingDangerousSmartContractsviaBytecodeMatching.JournalofCyberSecurity,2020,5
(3):100-112(inChinese)韩松明,梁彬,黄建军,等.DC-Hunter:一种基于字节码匹配的危险智能合约检测方案.信息安全学报,2020,5
(3):100-112[16]ButerinV.Anext-generationsmartcontractanddecentralizedapplicationplatform.whitepaper,2014,3(37):1-36[17]WoodG.Ethereum:Asecuredecentralisedgeneralisedtransactionledger.EthereumProjectYellowPaper,2014,151(2014):1-32[18]HaraK,SatoT,ImamuraM,etal.ProfilingofMaliciousUsersUsingSimpleHoneypotsontheEthereumBlockchainNetwork//Proceedingsofthe2020IEEEInternationalConferenceonBlockchainandCryptocurrency(ICBC).Online,2020:1-3[19]ChengZ,HouX,LiR,etal.Towardsafirststeptounderstandthecryptocurrencystealingattackonethereum//Proceedingsofthe22ndInternationalSymposiumonResearchinAttacks,IntrusionsandDefenses(RAID2019).Beijing,China,2019:47-60[20]El-DosukyMA,EladlGH.DOORchain:deepontologybasedoperationresearchtodetectmalicioussmartcontracts//ProceedingsoftheWorldConferenceonInformationSystemsandTechnologies.Galicia,Spain,2019:538-545[21]PreuveneersD,RimmerV,TsingenopoulosI,etal.Chainedanomalydetectionmodelsforfederatedlearning:Anintrusiondetectioncasestudy.AppliedSciences,2018,8(12):1-21[22]AtzeiN,BartolettiM,CimoliT.Asurveyofattacksonethereumsmartcontracts(sok)//ProceedingsoftheInternationalConferenceonPrinciplesofSecurityandTrust.Uppsala,Sweden,2017:164-186[23]YinJ,CuiX,LiuC,etal.CoinBot:ACovertintheCryptocurrencyNetwork//ProceedingsoftheInternationalConferenceonInformationandCommunicationsSecurity.Copenhagen,Denmark,2020:107-125. 4期 冀甜甜等:CADetector:跨家族的各项异性合约蜜罐检测 895 JITian-Tian,Ph.D.candidate. Hermainresearchinterestworksecurity. FANGBin-Xing,Ph.D.,professor,Ph.D.supervisor,academicianofChineseAcademyofEngineering.Hismainresearchinterestsputerarchitecture,workworksecurity. CUIXiang,Ph.D.,professor,Ph.D.supervisor.Hismainresearchinterestworksecurity. WANGZhong-Ru,Ph.D.Hismainresearchinterestsincludeartificialintelligenceworksecurity. LIAOPeng,Ph.D.candidate.Hismainresearchinterestworksecurity. DUChun-Lai,Ph.D.,associateprofessor.Hismainresearchinterestworksecurity. SONGShou-You,Ph.D.Hismainresearchinterestworksecurity. BackgroundTheproblemstudiedinthispaperbelongstothefieldof networksecurity,whichmainlysolvestheecologicalsecurityproblemofblockchain.Inrecentyears,theemergenceofsmartcontracthoneypotshascausedsignificantpollutiontotheEthereumecologicalenvironment.Ithasthecharacteristicsoflargedetectiondelay,longattacktime,andmultipledeformationmethods,makingitanewformofthreatthatisdifferentfromotherformsofEthereumattacks.Throughuratecontracthoneypotdetectiontogenerateblockchainthreatintelligence,itcanissueearlywarningstotheEthereum community.However,thecurrentresearchworkoncontracthoneypotsisstillimmature.Basedontheresearchofcontracthoneypotmechanismandanalysisofexistingdetectionmethods,thispaperproposesacross-familyanisotropiccontracthoneypotdetectionmethodanddevelopsanautomateddetectionsystem—CADetector,aimingtopromotethehealthyoperationoftheblockchainecosystem. ThisworkissupportedbytheKey-AreaResearchandDevelopmentProgramofGuangdongProvince(GrantNo.2019B010136003,2019B010137004),andtheNationalKeyResearchandDevelopmentPlan(GrantNo.2019YFA0706404).

标签: #源码 #怎么做 #代码 #代码 #好友 #怎么看 #代码 #源码