CN117034263A - 一种智能合约在无人机集群中的应用方法 - Google Patents
一种智能合约在无人机集群中的应用方法 Download PDFInfo
- Publication number
- CN117034263A CN117034263A CN202310633542.1A CN202310633542A CN117034263A CN 117034263 A CN117034263 A CN 117034263A CN 202310633542 A CN202310633542 A CN 202310633542A CN 117034263 A CN117034263 A CN 117034263A
- Authority
- CN
- China
- Prior art keywords
- unmanned aerial
- aerial vehicle
- intelligent contract
- contract
- cluster
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 145
- 238000012423 maintenance Methods 0.000 claims abstract description 98
- 230000008569 process Effects 0.000 claims abstract description 81
- 230000007246 mechanism Effects 0.000 claims abstract description 71
- 238000001514 detection method Methods 0.000 claims abstract description 64
- 238000013528 artificial neural network Methods 0.000 claims abstract description 38
- 238000012549 training Methods 0.000 claims abstract description 17
- 238000013523 data management Methods 0.000 claims abstract description 15
- 238000010276 construction Methods 0.000 claims abstract description 13
- 238000011161 development Methods 0.000 claims abstract description 12
- 230000008901 benefit Effects 0.000 claims abstract description 11
- 230000006870 function Effects 0.000 claims description 46
- 239000013598 vector Substances 0.000 claims description 46
- 238000013527 convolutional neural network Methods 0.000 claims description 30
- 238000005516 engineering process Methods 0.000 claims description 29
- 239000011159 matrix material Substances 0.000 claims description 26
- 238000003062 neural network model Methods 0.000 claims description 21
- 238000012512 characterization method Methods 0.000 claims description 18
- 238000013475 authorization Methods 0.000 claims description 16
- 238000004364 calculation method Methods 0.000 claims description 16
- 238000012545 processing Methods 0.000 claims description 16
- 238000002474 experimental method Methods 0.000 claims description 15
- 238000000605 extraction Methods 0.000 claims description 15
- 238000011176 pooling Methods 0.000 claims description 12
- 238000012546 transfer Methods 0.000 claims description 12
- 230000000875 corresponding effect Effects 0.000 claims description 10
- 238000007726 management method Methods 0.000 claims description 10
- 238000013500 data storage Methods 0.000 claims description 9
- 230000007547 defect Effects 0.000 claims description 9
- 230000004913 activation Effects 0.000 claims description 8
- 238000003860 storage Methods 0.000 claims description 8
- 241000288105 Grus Species 0.000 claims description 7
- 230000005540 biological transmission Effects 0.000 claims description 5
- 230000000694 effects Effects 0.000 claims description 5
- 230000002159 abnormal effect Effects 0.000 claims description 4
- 230000002457 bidirectional effect Effects 0.000 claims description 4
- 239000012141 concentrate Substances 0.000 claims description 4
- 230000002596 correlated effect Effects 0.000 claims description 4
- 125000004122 cyclic group Chemical group 0.000 claims description 4
- 230000001419 dependent effect Effects 0.000 claims description 4
- 230000002452 interceptive effect Effects 0.000 claims description 4
- 239000000463 material Substances 0.000 claims description 4
- 239000000203 mixture Substances 0.000 claims description 4
- 238000005457 optimization Methods 0.000 claims description 4
- 230000004044 response Effects 0.000 claims description 4
- 230000001360 synchronised effect Effects 0.000 claims description 4
- 238000012360 testing method Methods 0.000 claims description 4
- 238000012795 verification Methods 0.000 claims description 4
- 230000009286 beneficial effect Effects 0.000 claims description 2
- 230000004927 fusion Effects 0.000 claims description 2
- 238000011160 research Methods 0.000 abstract description 17
- 238000013135 deep learning Methods 0.000 abstract description 4
- 238000004590 computer program Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 8
- 238000013461 design Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 238000005065 mining Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 230000009545 invasion Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000008450 motivation Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000012038 vulnerability analysis Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
- G06F21/563—Static detection by source code analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Virology (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Molecular Biology (AREA)
- Mathematical Physics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供一种智能合约在无人机集群中的应用方法,将从无人机集群的现实需求出发,依托具备去中心化等优势特征的智能合约研究飞行数据管理、自主协同、安全维护、安全认证四个典型应用,重点分析智能合约在应用过程中潜在的漏洞。在此研究基础上,针对潜在漏洞提出一种基于注意力机制的混合神经网络的漏洞检测模型。同时,为解决深度学习法训练模型依赖大规模数据以及短时间难以获取足够智能合约攻击样本问题,提出一种新的基础学习器‑元学习器框架;本发明针对智能合约在无人机集群中应用的安全性展开研究,这是较为完善的体系研究,对于提高无人机集群建设安全系数具有一定的实践意义以及弥补了智能合约在无人机集群中安全性探索的空白。同时,该研究也为无人化的建设与发展提供了参考。
Description
技术领域
本发明涉及一种智能合约在无人机集群中的应用方法,属于软件工程技术领域。
背景技术
目前无人机技术受到学术界和工业界的高度关注,无人机技术能够有效解决重复低效、高成本低产出以及危险系数高方面的难题。然而,无人机技术带来诸多便利和经济效益的同时,也存在潜在的安全问题。目前,众多无人机技术的实现大多是互联网的接入和覆盖,若恶意攻击者利用系统漏洞对无人机设备进行远程操控,进而对其实施攻击,轻则将会破坏其原有正常的功能,重则产生巨大的经济损失以及人员伤亡。从这个角度来看,有效防止恶意攻击者入侵,保护数据安全是无人机技术亟待解决的重要难题。结合智能合约的区块链技术使用椭圆曲线加密算法(Elliptic Curve Cryptography,ECC)等非对称加密技术能够保障数据在传输过程以及存储的安全性。无人机技术蓬勃发展的同时,人们也愈来愈关注其背后数据存储和使用的信任问题。目前,无人机技术多采用中心化控制的方式,无人机设备的生产商或其他可以作为第三方的对象会面临信任问题,中心化控制方式的缺点是信任无法得到保障。从这个角度来看,保障无人机技术的可信性,消除人们对无人机技术可信性难以保障的顾虑是无人机技术亟待解决的重要难题。结合智能合约的区块链应用共识机制使得区块链上所有无人机节点在平等和信息透明的基础之上达成“共识”,能够解决信任问题。智能合约的引入,将预先设置的条件及条件满足时触发的事件以合约的形式部署到区块链,从而摆脱第三方的参与,起到无人信托的作用。可见,区块链和智能合约的发展可以为无人机建设的安全性提供保障。研究表明,无人机以集群方式完成任务的效能远高于单架无人机累计效能总和。
密码学家尼克·萨博在20世纪90年代首次提出智能合约,该术语最初是用来指一般的法律合同的自动化,即用计算机语言取代了法律语言记录条款、由程序自动执行的合约。但由于缺乏可信的执行环境,使得智能合约的应用和发展受到限制。直到区块链的兴起为智能合约提供了可信的环境,使得智能合约能够有效应用于区块链。部署到区块链上的智能合约具备了区块链数据公开透明、不可篡改、永久运行的特点。同时,当满足智能合约预定义的条件时,用计算机程序编写的合同条款将自动执行且整个过程不依赖第三方。智能合约的有效应用增强了区块链平台的去中心化特性,丰富了区块链的应用场景,如物联网、金融、医疗保健等领域。区块链平台上使用智能合约来管理数字货币时,攻击者有很强的意愿和动机来攻击智能合约,非法获取和拥有数字货币资产。智能合约安全事件的发生不仅导致巨大的经济损失,同时无法保障合约最初设计时所要实现的功能以及会破坏基于区块链的信用系统。基于区块链的不可变性,智能合约一旦在区块链上部署就不能进行修改。
因此,为维护区块链的安全性,需要在智能合约部署到区块链上之前检测出漏洞合约。深度学习法能够更好地实现智能合约漏洞检测的自动化,但进行模型训练时依赖大规模的智能合约数据,在小规模数据下检测性能相对较差。对于以太坊而言,收集漏洞合约数据需要巨大的人力和时间成本,安全机构很难在短时间内获得足够的智能合约攻击样本。
发明内容
本发明的目的在于克服现有技术中的不足,提供一种智能合约在无人机集群中的应用方法,针对无人机集群探索智能合约在它的典型应用以及安全性,能够提高无人机集群建设的安全系数以及弥补智能合约在无人机集群上安全性探索的空白。
为达到上述目的,本发明是采用下述技术方案实现的:
第一方面,本发明提供了一种智能合约在无人机集群中的应用方法,包括以下步骤:
获取智能合约在无人机集群的典型应用;
基于智能合约在无人机集群的典型应用,分析获取智能合约在应用过程中潜在安全漏洞种类;
基于获取的智能合约在应用过程中潜在安全漏洞种类,检测潜在智能合约安全漏洞;
基于潜在智能合约安全漏洞,进行小样本智能合约数据条件下的漏洞检测,得到智能合约在无人机集群的漏洞。
作为本发明进一步的方案,智能合约在无人机集群的典型应用,包括:
(1)飞行数据管理
飞行数据的安全性管理对于无人机集群而言至关重要,关系到集群所需执行任务的成败。若飞行数据无法被准确掌握,如当前任务是否完成的反馈信息,将会影响新任务的发布。这也是无人机以集群形式执行任务时,需要对其飞行相关数据准确掌握的原因。通过构建分布式的区块链网络,每一架无人机都被视为网络中的一个节点,网络中任意节点的动态均可被监测。分布式网络中的节点互相联通,能够实现信息共享。飞行数据管理除了对数据信息的掌握之外,还需要保障飞行数据存储的安全性。智能合约能够连接星际文件系统(Inter Planetary File System,IPFS),做到对数据存储的去中心化,保障了其存储的安全性。无人机节点在链上成功写入数据之前,需要通过共识机制,共识通过,数据被成功写入链上。共识不通过,数据写入失败。共识机制保障了无人机集群之间数据传输的安全性。同时,建立加密机制对数据信息进行非对称加密,能够保障交易的安全。
(2)自主协同
无人机以集群形式执行任务的效能往往高于单架无人机执行任务效能的总和。无人机集群执行任务的高效性离不开集群内部无人机节点的自主协同。无人机节点共处于区块链网络中,各节点之间互联互通,集群内部信息能够实时共享。区块链的去中心化特性使得各节点相互协同,即使无人机集群内部有节点出现故障失效时,分布式网络会自动重构,其余节点继续执行原来的任务。同样,分布式网络加入节点后,分布式网络也能进行重构,继续执行原来的任务。现实生活中的无人机出现故障或许是自身存在缺陷,或许是被恶意攻击者劫持利用,若为后者,则无人机集群会存在一定的安全风险。因为被劫持利用的无人机会向其余正常无人机传播干扰信息,其余无人机相互之间收到的信息会不同,影响集群的决策,无法做到“共识”。不过,智能合约的可追溯特性能够保障出现故障的无人机节点及其动态能够被查询到,进而准确定位故障节点并进行相关处理工作,最终有效防范该风险,保障集群自主协同的安全性。
(3)安全维护
安全维护管理主要针对无人机集群的硬件以及软件程序升级的维护,为无人机集群执行任务时的正常运转提供保障。无人机集群的维护过程可以视作一条维护链的功能。无人机集群的安全维护过程简单讲主要是维护申请,维护受理以及维护反馈。将维护过程以智能合约的形式写入维护链中,合约的触发条件为无人机集群的硬件损坏或软件版本级别过低需要进行维护,合约的响应即依次进行维护申请,维护受理以及维护反馈流程。自动化进行维护过程需要将规则以智能合约的形式写入维护链中,在此过程中,可能会涉及信任问题。如维护受理的信任问题,若有恶意攻击者操纵无人机节点提出维护申请,将会浪费人力和物力资源对其进行检修。为解决信任问题,可以结合区块链技术,增添加密机制,利用非对称加密技术,产生公钥和私钥,将维护申请视为公钥处理,技术人员使用相应私钥完成数字签名,可受理或驳回维护申请。无人机集群的整个安全维护过程因为智能合约的参与对内部人员变得公开透明,能够实时查询安全维护的状态,提升了安全维护的工作效率。
(4)安全认证
向无人机集群内加入无人机节点之前需要进行身份认证,身份认证通过的节点才被允许加入集群内部。身份认证的目的是防止恶意攻击者使用已控制的节点破坏集群正在执行的任务。基于区块链的智能合约通过数字签名和加密机制为无人机集群内部的身份验证提供了解决方案。依据典型的访问控制模型开发智能合约,如基于角色的访问控制,不同的角色有不同的细粒度访问权限,如此能够有效管理用户的访问权限,提高了身份认证的安全系数。除此,基于区块链的智能合约能够为指定用户节点提供公平、公正、公开且不易被干扰的决策环境。构建区块链网络,指定用户节点参与进来,将决策内容以及其相关背景信息以智能合约的形式存储到区块链网络中并使用加密技术对其加密。由于区块链自身机制优势,恶意节点需要破坏区块链网络中超过51%的节点,才可以阻碍决策过程。恶意节点对决策过程发动攻击的高成本,是保障决策过程顺利进行的重要原因。
作为本发明进一步的方案,分析获取智能合约在应用过程中潜在安全漏洞种类,包括:
(1)整数溢出
整数溢出漏洞对应智能合约漏洞库SWC-101以及表示“不正确的计算”的CWE-682,该漏洞包含整数上溢和整数下溢两种情况,整数上溢指存储大于最大支持值的值,整数下溢指存储小于最小支持值的值。整数溢出漏洞产生的原因为智能合约开发前未对计算结果提前进行逻辑验证。该漏洞会产生极其严重的后果,如代币无限增发,指恶意攻击者能够利用整数溢出漏洞发起交易,通过少量代币向指定地址发送大量代币。代币在区块链中代表着数字资产,并作为奖励用于激励区块创建者对无人机集群任务链的维护和升级。数字资产的损失势必影响区块创建者的执行效率,进而影响无人机集群各个任务链的安全运转。整数溢出漏洞带来的潜在巨大代币损失是对其关注的重要因素。
(2)时间戳
时间戳依赖漏洞对应智能合约漏洞SWC-116以及表示“包含来自不受信任的控制领域的功能”的CWE-829,该漏洞通常发生在利用时间戳作为执行重大事件的一个关键要素的场景。该漏洞产生原因为时间戳作为执行重大事件的一个关键要素时,区块创建者能在短时间内(小于900秒)操纵对自己有利的时间戳。时间戳能够有效应用在无人机集群中。无人机以集群方式执行任务时,若集群中存在某无人机节点因被恶意攻击者控制而失效,可以利用时间戳技术通过溯源方式定位到失效节点,避免其干扰其他节点,影响任务的执行。若时间戳依赖漏洞被恶意攻击者利用,将会影响时间戳技术在无人机集群中溯源特性的有效应用,无法准确定位失效节点,甚至导致将正常节点误判为失效节点处理,最终影响集群任务的正常进行,这是对其关注的重要因素。
(3)重入
重入漏洞对应智能合约漏洞库SWC-107以及表示“工作流程执行不当”的CWE-841,该漏洞的本质是循环调用代码缺陷,是智能合约漏洞类型中发生较为频繁以及威胁程度较深的一种。智能合约在执行期间通过函数调用或者转移以太币实现对其他合约的调用。然而,这些外部调用存在被恶意攻击者利用的风险,导致合约被强制执行其余代码,这个过程可以被看作为重入。该漏洞通常发生在智能合约过程中使用转账函数的情况下。该漏洞会导致被攻击合约账户中的代币被窃取或拒绝服务。通过智能合约可实现无人机集群的关键功能,若发生重入漏洞,则会因拒绝服务导致功能失灵,影响任务的执行。若重入漏洞被恶意攻击者利用,将导致无人机集群存在关键功能失灵以及潜在的巨大代币损失的风险,这是对其关注的重要因素。
(4)交易顺序依赖
交易顺序依赖漏洞对应智能合约漏洞库SWC-114以及表示“并发执行中使用共享资源时未正确同步”的CWE-362。区块链网络以区块为单位处理交易,交易传播以及区块创建者对其认同需要一定时间。恶意攻击者利用这段时间监控被攻击合约的交易,以更高的gas发送自己的交易,使自己交易与被攻击合约交易处于同一区块内。区块创建者检查区块内的交易,对gas较高的攻击者合约交易优先处理。这导致恶意攻击者因窃取被攻击合约交易内容受益,被攻击合约受到损失。智能合约在无人机集群应用过程中,若有恶意攻击者利用交易顺序依赖漏洞,原有智能合约所实现的功能因合约执行顺序异常而失灵,同时恶意攻击者发布的交易对无人机集群的应用也会存在安全威胁,如恶意攻击者在抢先获得交易优先处理的同时发布带有攻击性的合约,这是对其关注的重要因素。
(5)交易授权
交易授权漏洞对应智能合约漏洞库SWC-115以及表示“包含过时功能的使用”的CWE-477,该漏洞指智能合约中使用tx.origin全局变量实现用户验证时容易遭受钓鱼攻击。智能合约能够解决无人机集群中的身份验证问题,但若使用tx.origin全局变量开发用于身份验证的合约时,如使用tx.origin全局变量进行授权操作时,会导致合约被恶意攻击者发动钓鱼攻击,引诱用户在有漏洞的合约上执行一些需要授权的操作,若授权操作带有代币的转移操作,则会存在代币损失的风险,进而影响区块创建者对无人机集群任务链的维护和升级,这是对其关注的重要因素。
作为本发明进一步的方案,检测潜在智能合约安全漏洞,具体包括:
通过智能合约表征构建方法将智能合约数据构建为基于注意力机制的混合神经网络的输入形式并通过神经网络模型训练以及测试,实现潜在智能合约漏洞的检测。混合神经网络由CNN与BiGRU组成,该模型分为两部分,一部分为将智能合约数据集通过CNN进行特征提取并将其通过注意力机制得到FCNN+attention,另一部分为将智能合约数据集通过BiGRU进行特征提取并将其通过注意力机制得到FBiGRU+attention,再将两部分得到的特征融合经过softmax分类函数得到潜在智能合约漏洞检测结果。其中,F表示特征,下标CNN表示CNN神经网络,下标BiGRU表示BiGRU神经网络,下标attention表示注意力机制,这个公式整体表示通过CNN神经网络或者BiGRU神经网络,提取特征并经过注意力机制进行特征优化,即表示特征优化的结果。
选用的分支神经网络为特征提取能力较强的CNN和能够联系上下文信息进行特征学习的BiGRU。CNN各个层级如下:
(1)输入层:智能合约数据集中的每个词经过Word2Vec被映射为相应的词向量xi,词向量xi组成矩阵S,S=(x1,x2,...xi,...,xn),其中,xi表示矩阵S中第k个词向量,k表示词向量的维度,/>n表示矩阵S中词向量的个数,本次实验中词向量的维度k=300。
(2)卷积层:卷积核与矩阵S进行卷积操作实现矩阵S的特征提取,特征为cf,如式(1):
其中,表示经过卷积操作后的特征,w表示卷积核,b表示偏置量,f表示Relu激活函数,xi:i+r-1表示从i到i+r-1行词向量。经过卷积操作的词向量集合Cf,如式(2):
其中,n为卷积核个数。
(3)池化层:为了获取最大的特征Mti,并对卷积层所提取的信息做进一步降维,本次实验选择最大池化的方法,如式(3):
Mti=max{Cf} (3)
(4)输出层:主要作用为连接池化层中所有的Mti。
作为本发明进一步的方案,GRU由更新门和重置门组成。更新门值的大小与前一时刻隐藏层输出状态ht-1对当前时刻状态xt的影响程度成正相关。重置门值的大小表示前一时刻的隐藏层的输出状态ht-1与当前时刻状态xt的结合程度,值越大,表示忽略的信息越少。σ表示sigmoid,与tanh均为激活函数,xt表示当前时刻的输入,ht表示当前时刻隐藏层的输出,ht-1表示前一刻隐藏层的输出,表示基于更新门的新的记忆信息。rt表示重置门,zt表示更新门。模型结构中ht的计算过程如式(4)~(7):
zt=σ(Wz[ht-1,xt]) (4)
rt=σ(Wr[ht-1,xt]) (5)
GRU模型虽然充分考虑到当前状态和前一时刻状态的关联信息,却无法获取到当前状态和下一时刻状态的关联信息。因此采用的双向GRU模型BiGRU,包含两个单向、方向相反的GRU,且输出状态由两个GRU输出状态共同决定。BiGRU当前隐藏层状态ht'由当前的输入xt、前向隐藏层状态的输出和反向隐藏层状态的输出/>三部分共同决定。wt,vt分别代表/>和/>的权重,bt代表当前t时刻的偏置量。BiGRU的输出计算过程如式(8)~(10):
注意力机制能够使神经网络模型训练过程中关注对训练有用的关键信息以及忽视不重要的信息,提高神经网络模型训练效率。以BiGRU为例介绍带有注意力机制的BiGRU结构,混合神经网络的另一分支CNN+attention与此结构类似。其中,(x1,x2,x3,x4,...,xn)为输入序列,(h1,h2,h3,h4,...,hn)为基于BiGRU隐藏层状态下的输出值,为基于前向BiGRU提取得到的隐藏层输出值,/>为基于反向BiGRU提取得到的隐藏层输出值。(h1,h2,h3,h4,...,hn)由/>与/>共同决定。注意力机制相关参数的计算过程如式(11)~(14):
eti=a(st-1,hi) (11)
p(yt|y1,y2,...,yt-1,x)=BiGRU(ct) (14)
a表示注释hi根据状态st-1对下一个隐藏层状态st的重要性,wti表示hi的注意力权重,ct表示步长为t的上下文向量。p(yt|y1,y2,...,yt-1,x)表示BiGRU在当前步长t中输出最有可能的符号yt。如此一来,源句的信息能够分布在整个序列中而非编码器将信息编码成固定长度的向量。信息分布在整个序列中,便于解码器在每个时间步长中有选择性地对其检索。因此,注意力机制使神经网络专注于输入相关的信息,而非无关部分。
作为本发明进一步的方案,检测小样本智能合约数据条件下的漏洞阶段包括:
小样本智能合约数据条件下的漏洞检测阶段,包括:
从github上获取智能合约公开数据集Smartbugs-wild;
将智能合约公开数据集Smartbugs-wild通过构建基于图像的表征方式转化为图像数据集IData;
构建多种基础学习器-元学习器框架,将图像数据集通过框架进行实验,实验所需要的环境是pycharm+pytorch。
通过准确率、精确率、召回率、F1-score评估框架的优劣性,确定最后的混合神经网络。
构建基于图像的智能合约表征形式,结合公开的数据集Smartbugs-wild与ScrawID确定智能合约数据集WScrawID,先使用solc编译器对数据集WScrawID编译,得到智能合约的十六进制字节码,得到字节码后使用python编程语言将十六进制字节码转化为RGB图像,最终构造小样本智能合约漏洞检测的数据集IData,使用数据集IData作为小样本智能合约数据的漏洞检测数据,进而将小样本智能合约数据的漏洞检测问题转化为图像分类问题。进行七组基础学习器-元学习器框架实验,选取最佳检测效果的元学习框架作为小样本智能合约漏洞检测的最终方法框架。基础学习器-元学习器组合方式分别为CNN-RNN、MLP-MAML、Resnet-MANN、CNN-GRU-MANN、CNN-BiGRU-MANN、Resnet-GRU-MANN、Resnet-BiGRU-MANN。
混合神经网络的输入:两个分支网络的输入分别为智能合约源代码经过两种词嵌入技术(Word2Vec和FastText)得到的矩阵向量,即一支分支网络的输入为智能合约经过.Word2Vec的矩阵向量,另一支为智能合约经过.FastText的矩阵向量。在这里Word2Vec和FastText属于词嵌入技术。
混合神经网络的输出:特征。具体的,一支网络的输出为经过CNN提取到的特征后继续经过注意力机制优化得到的特征。另一支网络的输出为经过BiGRU提取到的特征后继续经过注意力机制优化得到的特征。
与现有技术相比,本发明所达到的有益效果:
根据本发明提出的智能合约在无人机集群中的应用方法,可促进智能合约在无人机集群中的应用以及提高无人机集群建设的安全系数。
智能合约具有去中心化、不可篡改、可溯源以及自动化执行等特点,能够有效适应无人机集群的现实需求,突破飞行数据管理、自主协同、安全维护、安全认证关键技术,因此针对智能合约在无人机集群中的安全性应用进行研究具有重大现实意义。
本发明旨在通过探索智能合约在无人机集群中的典型应用和分析其在应用过程中可能存在的漏洞,进而设计并探究潜在智能合约漏洞的检测方法以及小样本智能合约漏洞检测方法,提出一种智能合约在无人机集群中的应用方法。
本发明将从无人机集群的现实需求出发,依托具备去中心化等优势特征的智能合约研究飞行数据管理、自主协同、安全维护、安全认证四个典型应用,重点分析智能合约在应用过程中潜在的高级语言层面的整数溢出和重入、区块链层面的时间戳和交易顺序依赖、虚拟机层面的交易授权5种安全漏洞。在此研究基础上,针对潜在智能合约安全漏洞提出一种基于注意力机制的混合神经网络的漏洞检测模型。同时,为解决深度学习法训练模型依赖大规模数据以及短时间难以获取足够智能合约攻击样本问题,提出一种新的基础学习器-元学习器框架。
本发明针对智能合约在无人机集群中应用的安全性展开研究,这是较为完善的体系研究,对于提高无人机集群建设安全系数具有一定的实践意义以及弥补了智能合约在无人机集群中安全性探索的空白。同时,该研究也为无人化的建设与发展提供了参考。
附图说明
图1是智能合约在无人机集群中的典型应用挖掘与漏洞分析图;
图2为基于注意力机制的混合神经网络模型图;
图3为基于基础学习器-元学习器框架的小样本智能合约漏洞检测流程图;
图4为基于智能合约在无人机集群中安全性研究方法流程图。
具体实施方式
下面结合附图对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
实施例一:
本实施例提供一种智能合约在无人机集群中的应用方法,本发明所述的基于智能合约的本发明所述的智能合约在无人机集群中的应用方法,通过分析无人机集群的关键技术难点和痛点以及智能合约去中心化等优势特点挖掘智能合约在无人机集群中的典型应用,通过结合无人机集群现实需求与智能合约编程过程中的不足分析潜在的安全漏洞,通过基于文本构建智能合约表征方式进而构建数据集以及构建基于注意力机制的混合神经网络模型实现潜在智能合约漏洞的检测,通过基于图像构建智能合约表征方式进而构建数据集以及构建基础学习器-元学习器框架实现小样本智能合约数据下漏洞检测。具体包括:
首先,进入分析智能合约在无人机集群中的典型应用阶段,从无人机集群的关键技术难点、痛点以及智能合约去中心化等优势特点出发,挖掘出智能合约在无人机集群中飞行数据管理、自主协同、安全管理以及安全认证四个方面的典型应用。
(1)飞行数据管理
飞行数据的安全性管理对于无人机集群而言至关重要,关系到集群所需执行任务的成败。若飞行数据无法被准确掌握,如当前任务是否完成的反馈信息,将会影响新任务的发布。这也是无人机以集群形式执行任务时,需要对其飞行相关数据准确掌握的原因。通过构建分布式的区块链网络,每一架无人机都被视为网络中的一个节点,网络中任意节点的动态均可被监测。分布式网络中的节点互相联通,能够实现信息共享。飞行数据管理除了对数据信息的掌握之外,还需要保障飞行数据存储的安全性。智能合约能够连接星际文件系统(Inter Planetary File System,IPFS),做到对数据存储的去中心化,保障了其存储的安全性。无人机节点在链上成功写入数据之前,需要通过共识机制,共识通过,数据被成功写入链上。共识不通过,数据写入失败。共识机制保障了无人机集群之间数据传输的安全性。同时,建立加密机制对数据信息进行非对称加密,能够保障交易的安全。
(2)自主协同
无人机以集群形式执行任务的效能往往高于单架无人机执行任务效能的总和。无人机集群执行任务的高效性离不开集群内部无人机节点的自主协同。无人机节点共处于区块链网络中,各节点之间互联互通,集群内部信息能够实时共享。区块链的去中心化特性使得各节点相互协同,即使无人机集群内部有节点出现故障失效时,分布式网络会自动重构,其余节点继续执行原来的任务。同样,分布式网络加入节点后,分布式网络也能进行重构,继续执行原来的任务。现实生活中的无人机出现故障或许是自身存在缺陷,或许是被恶意攻击者劫持利用,若为后者,则无人机集群会存在一定的安全风险。因为被劫持利用的无人机会向其余正常无人机传播干扰信息,其余无人机相互之间收到的信息会不同,影响集群的决策,无法做到“共识”。不过,智能合约的可追溯特性能够保障出现故障的无人机节点及其动态能够被查询到,进而准确定位故障节点并进行相关处理工作,最终有效防范该风险,保障集群自主协同的安全性。
(3)安全维护
安全维护管理主要针对无人机集群的硬件以及软件程序升级的维护,为无人机集群执行任务时的正常运转提供保障。无人机集群的维护过程可以视作一条维护链的功能。无人机集群的安全维护过程简单讲主要是维护申请,维护受理以及维护反馈。将维护过程以智能合约的形式写入维护链中,合约的触发条件为无人机集群的硬件损坏或软件版本级别过低需要进行维护,合约的响应即依次进行维护申请,维护受理以及维护反馈流程。自动化进行维护过程需要将规则以智能合约的形式写入维护链中,在此过程中,可能会涉及信任问题。如维护受理的信任问题,若有恶意攻击者操纵无人机节点提出维护申请,将会浪费人力和物力资源对其进行检修。为解决信任问题,可以结合区块链技术,增添加密机制,利用非对称加密技术,产生公钥和私钥,将维护申请视为公钥处理,技术人员使用相应私钥完成数字签名,可受理或驳回维护申请。无人机集群的整个安全维护过程因为智能合约的参与对内部人员变得公开透明,能够实时查询安全维护的状态,提升了安全维护的工作效率。
(4)安全认证
向无人机集群内加入无人机节点之前需要进行身份认证,身份认证通过的节点才被允许加入集群内部。身份认证的目的是防止恶意攻击者使用已控制的节点破坏集群正在执行的任务。基于区块链的智能合约通过数字签名和加密机制为无人机集群内部的身份验证提供了解决方案。依据典型的访问控制模型开发智能合约,如基于角色的访问控制,不同的角色有不同的细粒度访问权限,如此能够有效管理用户的访问权限,提高了身份认证的安全系数。除此,基于区块链的智能合约能够为指定用户节点提供公平、公正、公开且不易被干扰的决策环境。构建区块链网络,指定用户节点参与进来,将决策内容以及其相关背景信息以智能合约的形式存储到区块链网络中并使用加密技术对其加密。由于区块链自身机制优势,恶意节点需要破坏区块链网络中超过51%的节点,才可以阻碍决策过程。恶意节点对决策过程发动攻击的高成本,是保障决策过程顺利进行的重要原因。
其次,进入分析智能合约在无人机集群应用过程中潜在漏洞阶段,基于智能合约编程语言、区块链系统以及虚拟机三个层面深入研究智能合约在应用过程中潜在的高级语言层面的整数溢出和重入、区块链层面的时间戳和交易顺序依赖、虚拟机层面的交易授权5种安全漏洞。
(1)整数溢出
整数溢出漏洞对应智能合约漏洞库SWC-101以及表示“不正确的计算”的CWE-682,该漏洞包含整数上溢和整数下溢两种情况,整数上溢指存储大于最大支持值的值,整数下溢指存储小于最小支持值的值。整数溢出漏洞产生的原因为智能合约开发前未对计算结果提前进行逻辑验证。该漏洞会产生极其严重的后果,如代币无限增发,指恶意攻击者能够利用整数溢出漏洞发起交易,通过少量代币向指定地址发送大量代币。代币在区块链中代表着数字资产,并作为奖励用于激励区块创建者对无人机集群任务链的维护和升级。数字资产的损失势必影响区块创建者的执行效率,进而影响无人机集群各个任务链的安全运转。整数溢出漏洞带来的潜在巨大代币损失是对其关注的重要因素。
(2)时间戳
时间戳依赖漏洞对应智能合约漏洞SWC-116以及表示“包含来自不受信任的控制领域的功能”的CWE-829,该漏洞通常发生在利用时间戳作为执行重大事件的一个关键要素的场景。该漏洞产生原因为时间戳作为执行重大事件的一个关键要素时,区块创建者能在短时间内(小于900秒)操纵对自己有利的时间戳。时间戳能够有效应用在无人机集群中。无人机以集群方式执行任务时,若集群中存在某无人机节点因被恶意攻击者控制而失效,可以利用时间戳技术通过溯源方式定位到失效节点,避免其干扰其它节点,影响任务的执行。若时间戳依赖漏洞被恶意攻击者利用,将会影响时间戳技术在无人机集群中溯源特性的有效应用,无法准确定位失效节点,甚至导致将正常节点误判为失效节点处理,最终影响集群任务的正常进行,这是对其关注的重要因素。
(3)重入
重入漏洞对应智能合约漏洞库SWC-107以及表示“工作流程执行不当”的CWE-841,该漏洞的本质是循环调用代码缺陷,是智能合约漏洞类型中发生较为频繁以及威胁程度较深的一种。智能合约在执行期间通过函数调用或者转移以太币实现对其它合约的调用。然而,这些外部调用存在被恶意攻击者利用的风险,导致合约被强制执行其余代码,这个过程可以被看作为重入。该漏洞通常发生在智能合约过程中使用转账函数的情况下。该漏洞会导致被攻击合约账户中的代币被窃取或拒绝服务。通过智能合约可实现无人机集群的关键功能,若发生重入漏洞,则会因拒绝服务导致功能失灵,影响任务的执行。若重入漏洞被恶意攻击者利用,将导致无人机集群存在关键功能失灵以及潜在的巨大代币损失的风险,这是对其关注的重要因素。
(4)交易顺序依赖
交易顺序依赖漏洞对应智能合约漏洞库SWC-114以及表示“并发执行中使用共享资源时未正确同步”的CWE-362。区块链网络以区块为单位处理交易,交易传播以及区块创建者对其认同需要一定时间。恶意攻击者利用这段时间监控被攻击合约的交易,以更高的gas发送自己的交易,使自己交易与被攻击合约交易处于同一区块内。区块创建者检查区块内的交易,对gas较高的攻击者合约交易优先处理。这导致恶意攻击者因窃取被攻击合约交易内容受益,被攻击合约受到损失。智能合约在无人机集群应用过程中,若有恶意攻击者利用交易顺序依赖漏洞,原有智能合约所实现的功能因合约执行顺序异常而失灵,同时恶意攻击者发布的交易对无人机集群的应用也会存在安全威胁,如恶意攻击者在抢先获得交易优先处理的同时发布带有攻击性的合约,这是对其关注的重要因素。
(5)交易授权
交易授权漏洞对应智能合约漏洞库SWC-115以及表示“包含过时功能的使用”的CWE-477,该漏洞指智能合约中使用tx.origin全局变量实现用户验证时容易遭受钓鱼攻击。智能合约能够解决无人机集群中的身份验证问题,但若使用tx.origin全局变量开发用于身份验证的合约时,如使用tx.origin全局变量进行授权操作时,会导致合约被恶意攻击者发动钓鱼攻击,引诱用户在有漏洞的合约上执行一些需要授权的操作,若授权操作带有代币的转移操作,则会存在代币损失的风险,进而影响区块创建者对无人机集群任务链的维护和升级,这是对其关注的重要因素。
然后,进入潜在智能合约漏洞检测阶段,通过基于文本的智能合约表征方式将收集的智能合约数据转化为神经网络的输入形式,构建基于注意力机制混合神经网络模型实现潜在智能合约漏洞的检测,具体包括:
此阶段的核心部分为基于注意力机制的混合神经网络模型的设计。该模型分为两部分,一部分为将智能合约数据集通过CNN进行特征提取并将其通过注意力机制得到FCNN+attention,另一部分为将智能合约数据集通过BiGRU进行特征提取并将其通过注意力机制得到FBiGRU+attention,再将两部分得到的特征融合经过Softmax分类函数得到潜在智能合约漏洞检测结果。
选用的分支神经网络为特征提取能力较强的CNN和能够联系上下文信息进行特征学习的BiGRU。CNN各个层级如下:
(1)输入层:智能合约数据集中的每个词经过Word2Vec被映射为相应的词向量xi,词向量xi组成矩阵S,S=(x1,x2,...xi,...,xn),其中,xi表示矩阵S中第k个词向量,k表示词向量的维度,/>n表示矩阵S中词向量的个数,本次实验中词向量的维度k=300。
(2)卷积层:卷积核与矩阵S进行卷积操作实现矩阵S的特征提取,特征为cf,如式(1):
其中,表示经过卷积操作后的特征,w表示卷积核,b表示偏置量,f表示Relu激活函数,xi:i+r-1表示从i到i+r-1行词向量。经过卷积操作的词向量集合Cf,如式(2):
其中,n为卷积核个数。
(3)池化层:为了获取最大的特征Mti,并对卷积层所提取的信息做进一步降维,本次实验选择最大池化的方法,如式(3):
Mti=max{Cf} (3)
(4)输出层:主要作用为连接池化层中所有的Mti。
GRU由更新门和重置门组成。更新门值的大小与前一时刻隐藏层输出状态ht-1对当前时刻状态xt的影响程度成正相关。重置门值的大小表示前一时刻的隐藏层的输出状态ht-1与当前时刻状态xt的结合程度,值越大,表示忽略的信息越少。σ表示sigmoid,与tanh均为激活函数,xt表示当前时刻的输入,ht表示当前时刻隐藏层的输出,ht-1表示前一刻隐藏层的输出,表示基于更新门的新的记忆信息。rt表示重置门,zt表示更新门。模型结构中ht的计算过程如式(4)~(7):
zt=σ(Wz[ht-1,xt]) (4)
rt=σ(Wr[ht-1,xt]) (5)
GRU模型虽然充分考虑到当前状态和前一时刻状态的关联信息,却无法获取到当前状态和下一时刻状态的关联信息。因此采用的双向GRU模型BiGRU,包含两个单向、方向相反的GRU,且输出状态由两个GRU输出状态共同决定。BiGRU当前隐藏层状态ht'由当前的输入xt、前向隐藏层状态的输出和反向隐藏层状态的输出/>三部分共同决定。wt,vt分别代表/>和/>的权重,bt代表当前t时刻的偏置量。BiGRU的输出计算过程如式(8)~(10):
注意力机制能够使神经网络模型训练过程中关注对训练有用的关键信息以及忽视不重要的信息,提高神经网络模型训练效率。以BiGRU为例介绍带有注意力机制的BiGRU结构,混合神经网络的另一分支CNN+attention与此结构类似。其中,(x1,x2,x3,x4,...,xn)为输入序列,(h1,h2,h3,h4,...,hn)为基于BiGRU隐藏层状态下的输出值,为基于前向BiGRU提取得到的隐藏层输出值,/>为基于反向BiGRU提取得到的隐藏层输出值。(h1,h2,h3,h4,...,hn)由/>与/>共同决定。注意力机制相关参数的计算过程如式(11)~(14):
eti=a(st-1,hi) (11)
p(yt|y1,y2,...,yt-1,x)=BiGRU(ct) (14)
a表示注释hi根据状态st-1对下一个隐藏层状态st的重要性,wti表示hi的注意力权重,ct表示步长为t的上下文向量。p(yt|y1,y2,...,yt-1,x)表示BiGRU在当前步长t中输出最有可能的符号yt。如此一来,源句的信息能够分布在整个序列中而非编码器将信息编码成固定长度的向量。信息分布在整个序列中,便于解码器在每个时间步长中有选择性地对其检索。因此,注意力机制使神经网络专注于输入相关的信息,而非无关部分。
选取智能合约漏洞数据集Smartbugs-wild以及相同数量的不包含漏洞的智能合约数据组成用于智能合约漏洞检测的最终数据集并验证潜在智能合约漏洞检测方法的有效性。
(1)准备一台PC机,搭建潜在智能合约漏洞检测阶段需要配置的环境:Tensorflow-gpu(2.4.0)、Keras(2.3.1)、python(3.8)、CPU/GPU。
(2)分别基于文本和图像构建智能合约表征,通过两种表征方式将选取的数据集转化为相应的表征方式,构建基于注意力机制的混合神经网络模型并将两种表征方式得到的数据作为神经网络模型的输入,对智能合约数据的训练及测试。
(3)选取智能合约漏洞检测的评估指标评估漏洞检测方法的有效性,例如准确率(Accuracy)、精确率(Precision)、召回率(Recall)。
然后,进入潜在智能合约安全漏洞检测阶段,通过基于文本的智能合约表征方式将收集的智能合约数据转化为神经网络的输入形式,构建基于注意力机制混合神经网络模型实现潜在智能合约漏洞的检测,具体包括:
最后,进入小样本智能合约数据条件下的潜在安全漏洞检测阶段,通过基于图像的智能合约表征方式构建智能合约图像数据集,构建基于基础学习器-元学习器框架实现小样本智能合约漏洞的检测,具体包括:
构建基于图像的智能合约表征形式,结合公开的数据集Smartbugs-wild与ScrawID确定智能合约数据集WScrawID,先使用solc编译器对数据集WScrawID编译,得到智能合约的十六进制字节码,得到字节码后使用python编程语言将十六进制字节码转化为RGB图像,最终构造小样本智能合约漏洞检测的数据集IData,使用数据集IData作为小样本智能合约数据的漏洞检测数据,进而将小样本智能合约数据的漏洞检测问题转化为图像分类问题。进行七组基础学习器-元学习器框架实验,选取最佳检测效果的元学习框架作为小样本智能合约漏洞检测的最终方法框架。基础学习器-元学习器组合方式分别为CNN-RNN、MLP-MAML、Resnet-MANN、CNN-GRU-MANN、CNN-BiGRU-MANN、Resnet-GRU-MANN、Resnet-BiGRU-MANN。
根据本发明提出的智能合约在无人机集群中的应用方法,可促进智能合约在无人机集群中的应用以及提高无人机集群建设的安全系数。
通过分析无人机集群的关键技术难点和痛点以及智能合约去中心化等优势特点挖掘智能合约在无人机集群中的典型应用,通过结合无人机集群现实需求与智能合约编程过程中的不足分析潜在的安全漏洞,通过基于文本构建智能合约表征方式进而构建数据集以及构建基于注意力机制的混合神经网络模型实现潜在智能合约漏洞的检测,通过基于图像构建智能合约表征方式进而构建数据集以及构建基础学习器-元学习器框架实现小样本智能合约数据下漏洞检测。具体包括:
首先,进入分析智能合约在无人机集群中的典型应用阶段,从无人机集群的关键技术难点、痛点以及智能合约去中心化等优势特点出发,挖掘出智能合约在无人机集群中飞行数据管理、自主协同、安全管理以及安全认证四个方面的典型应用。
(1)飞行数据管理
飞行数据的安全性管理对于无人机集群而言至关重要,关系到集群所需执行任务的成败。若飞行数据无法被准确掌握,如当前任务是否完成的反馈信息,将会影响新任务的发布。这也是无人机以集群形式执行任务时,需要对其飞行相关数据准确掌握的原因。通过构建分布式的区块链网络,每一架无人机都被视为网络中的一个节点,网络中任意节点的动态均可被监测。分布式网络中的节点互相联通,能够实现信息共享。飞行数据管理除了对数据信息的掌握之外,还需要保障飞行数据存储的安全性。智能合约能够连接星际文件系统(Inter Planetary File System,IPFS),做到对数据存储的去中心化,保障了其存储的安全性。无人机节点在链上成功写入数据之前,需要通过共识机制,共识通过,数据被成功写入链上。共识不通过,数据写入失败。共识机制保障了无人机集群之间数据传输的安全性。同时,建立加密机制对数据信息进行非对称加密,能够保障交易的安全。
(2)自主协同
无人机以集群形式执行任务的效能往往高于单架无人机执行任务效能的总和。无人机集群执行任务的高效性离不开集群内部无人机节点的自主协同。无人机节点共处于区块链网络中,各节点之间互联互通,集群内部信息能够实时共享。区块链的去中心化特性使得各节点相互协同,即使无人机集群内部有节点出现故障失效时,分布式网络会自动重构,其余节点继续执行原来的任务。同样,分布式网络加入节点后,分布式网络也能进行重构,继续执行原来的任务。现实生活中的无人机出现故障或许是自身存在缺陷,或许是被恶意攻击者劫持利用,若为后者,则无人机集群会存在一定的安全风险。因为被劫持利用的无人机会向其余正常无人机传播干扰信息,其余无人机相互之间收到的信息会不同,影响集群的决策,无法做到“共识”。不过,智能合约的可追溯特性能够保障出现故障的无人机节点及其动态能够被查询到,进而准确定位故障节点并进行相关处理工作,最终有效防范该风险,保障集群自主协同的安全性。
(3)安全维护
安全维护管理主要针对无人机集群的硬件以及软件程序升级的维护,为无人机集群执行任务时的正常运转提供保障。无人机集群的维护过程可以视作一条维护链的功能。无人机集群的安全维护过程简单讲主要是维护申请,维护受理以及维护反馈。将维护过程以智能合约的形式写入维护链中,合约的触发条件为无人机集群的硬件损坏或软件版本级别过低需要进行维护,合约的响应即依次进行维护申请,维护受理以及维护反馈流程。自动化进行维护过程需要将规则以智能合约的形式写入维护链中,在此过程中,可能会涉及信任问题。如维护受理的信任问题,若有恶意攻击者操纵无人机节点提出维护申请,将会浪费人力和物力资源对其进行检修。为解决信任问题,可以结合区块链技术,增添加密机制,利用非对称加密技术,产生公钥和私钥,将维护申请视为公钥处理,技术人员使用相应私钥完成数字签名,可受理或驳回维护申请。无人机集群的整个安全维护过程因为智能合约的参与对内部人员变得公开透明,能够实时查询安全维护的状态,提升了安全维护的工作效率。
(4)安全认证
向无人机集群内加入无人机节点之前需要进行身份认证,身份认证通过的节点才被允许加入集群内部。身份认证的目的是防止恶意攻击者使用已控制的节点破坏集群正在执行的任务。基于区块链的智能合约通过数字签名和加密机制为无人机集群内部的身份验证提供了解决方案。依据典型的访问控制模型开发智能合约,如基于角色的访问控制,不同的角色有不同的细粒度访问权限,如此能够有效管理用户的访问权限,提高了身份认证的安全系数。除此,基于区块链的智能合约能够为指定用户节点提供公平、公正、公开且不易被干扰的决策环境。构建区块链网络,指定用户节点参与进来,将决策内容以及其相关背景信息以智能合约的形式存储到区块链网络中并使用加密技术对其加密。由于区块链自身机制优势,恶意节点需要破坏区块链网络中超过51%的节点,才可以阻碍决策过程。恶意节点对决策过程发动攻击的高成本,是保障决策过程顺利进行的重要原因。
其次,进入分析智能合约在无人机集群应用过程中潜在漏洞阶段,基于智能合约编程语言、区块链系统以及虚拟机三个层面深入研究智能合约在应用过程中潜在的高级语言层面的整数溢出和重入、区块链层面的时间戳和交易顺序依赖、虚拟机层面的交易授权5种安全漏洞。
(1)整数溢出
整数溢出漏洞对应智能合约漏洞库SWC-101以及表示“不正确的计算”的CWE-682,该漏洞包含整数上溢和整数下溢两种情况,整数上溢指存储大于最大支持值的值,整数下溢指存储小于最小支持值的值。整数溢出漏洞产生的原因为智能合约开发前未对计算结果提前进行逻辑验证。该漏洞会产生极其严重的后果,如代币无限增发,指恶意攻击者能够利用整数溢出漏洞发起交易,通过少量代币向指定地址发送大量代币。代币在区块链中代表着数字资产,并作为奖励用于激励区块创建者对无人机集群任务链的维护和升级。数字资产的损失势必影响区块创建者的执行效率,进而影响无人机集群各个任务链的安全运转。整数溢出漏洞带来的潜在巨大代币损失是对其关注的重要因素。
(2)时间戳
时间戳依赖漏洞对应智能合约漏洞SWC-116以及表示“包含来自不受信任的控制领域的功能”的CWE-829,该漏洞通常发生在利用时间戳作为执行重大事件的一个关键要素的场景。该漏洞产生原因为时间戳作为执行重大事件的一个关键要素时,区块创建者能在短时间内(小于900秒)操纵对自己有利的时间戳。时间戳能够有效应用在无人机集群中。无人机以集群方式执行任务时,若集群中存在某无人机节点因被恶意攻击者控制而失效,可以利用时间戳技术通过溯源方式定位到失效节点,避免其干扰其它节点,影响任务的执行。若时间戳依赖漏洞被恶意攻击者利用,将会影响时间戳技术在无人机集群中溯源特性的有效应用,无法准确定位失效节点,甚至导致将正常节点误判为失效节点处理,最终影响集群任务的正常进行,这是对其关注的重要因素。
(3)重入
重入漏洞对应智能合约漏洞库SWC-107以及表示“工作流程执行不当”的CWE-841,该漏洞的本质是循环调用代码缺陷,是智能合约漏洞类型中发生较为频繁以及威胁程度较深的一种。智能合约在执行期间通过函数调用或者转移以太币实现对其它合约的调用。然而,这些外部调用存在被恶意攻击者利用的风险,导致合约被强制执行其余代码,这个过程可以被看作为重入。该漏洞通常发生在智能合约过程中使用转账函数的情况下。该漏洞会导致被攻击合约账户中的代币被窃取或拒绝服务。通过智能合约可实现无人机集群的关键功能,若发生重入漏洞,则会因拒绝服务导致功能失灵,影响任务的执行。若重入漏洞被恶意攻击者利用,将导致无人机集群存在关键功能失灵以及潜在的巨大代币损失的风险,这是对其关注的重要因素。
(4)交易顺序依赖
交易顺序依赖漏洞对应智能合约漏洞库SWC-114以及表示“并发执行中使用共享资源时未正确同步”的CWE-362。区块链网络以区块为单位处理交易,交易传播以及区块创建者对其认同需要一定时间。恶意攻击者利用这段时间监控被攻击合约的交易,以更高的gas发送自己的交易,使自己交易与被攻击合约交易处于同一区块内。区块创建者检查区块内的交易,对gas较高的攻击者合约交易优先处理。这导致恶意攻击者因窃取被攻击合约交易内容受益,被攻击合约受到损失。智能合约在无人机集群应用过程中,若有恶意攻击者利用交易顺序依赖漏洞,原有智能合约所实现的功能因合约执行顺序异常而失灵,同时恶意攻击者发布的交易对无人机集群的应用也会存在安全威胁,如恶意攻击者在抢先获得交易优先处理的同时发布带有攻击性的合约,这是对其关注的重要因素。
(5)交易授权
交易授权漏洞对应智能合约漏洞库SWC-115以及表示“包含过时功能的使用”的CWE-477,该漏洞指智能合约中使用tx.origin全局变量实现用户验证时容易遭受钓鱼攻击。智能合约能够解决无人机集群中的身份验证问题,但若使用tx.origin全局变量开发用于身份验证的合约时,如使用tx.origin全局变量进行授权操作时,会导致合约被恶意攻击者发动钓鱼攻击,引诱用户在有漏洞的合约上执行一些需要授权的操作,若授权操作带有代币的转移操作,则会存在代币损失的风险,进而影响区块创建者对无人机集群任务链的维护和升级,这是对其关注的重要因素。
然后,进入潜在智能合约漏洞检测阶段,通过基于文本的智能合约表征方式将收集的智能合约数据转化为神经网络的输入形式,构建基于注意力机制混合神经网络模型实现潜在智能合约漏洞的检测,具体包括:
此阶段的核心部分为基于注意力机制的混合神经网络模型的设计。该模型分为两部分,一部分为将智能合约数据集通过CNN进行特征提取并将其通过注意力机制得到FCNN+attention,另一部分为将智能合约数据集通过BiGRU进行特征提取并将其通过注意力机制得到FBiGRU+attention,再将两部分得到的特征融合经过Softmax分类函数得到潜在智能合约漏洞检测结果。
选用的分支神经网络为特征提取能力较强的CNN和能够联系上下文信息进行特征学习的BiGRU。CNN各个层级如下:
(1)输入层:智能合约数据集中的每个词经过Word2Vec被映射为相应的词向量xi,词向量xi组成矩阵S,S=(x1,x2,...xi,...,xn),其中,xi表示矩阵S中第k个词向量,k表示词向量的维度,/>n表示矩阵S中词向量的个数,本次实验中词向量的维度k=300。
(2)卷积层:卷积核与矩阵S进行卷积操作实现矩阵S的特征提取,特征为cf,如式(1):
其中,表示经过卷积操作后的特征,w表示卷积核,b表示偏置量,f表示Relu激活函数,xi:i+r-1表示从i到i+r-1行词向量。经过卷积操作的词向量集合Cf,如式(2):
其中,n为卷积核个数。
(3)池化层:为了获取最大的特征Mti,并对卷积层所提取的信息做进一步降维,本次实验选择最大池化的方法,如式(3):
Mti=max{Cf} (3)
(4)输出层:主要作用为连接池化层中所有的Mti。
GRU由更新门和重置门组成。更新门值的大小与前一时刻隐藏层输出状态ht-1对当前时刻状态xt的影响程度成正相关。重置门值的大小表示前一时刻的隐藏层的输出状态ht-1与当前时刻状态xt的结合程度,值越大,表示忽略的信息越少。σ表示sigmoid,与tanh均为激活函数,xt表示当前时刻的输入,ht表示当前时刻隐藏层的输出,ht-1表示前一刻隐藏层的输出,表示基于更新门的新的记忆信息。rt表示重置门,zt表示更新门。模型结构中ht的计算过程如式(4)~(7):
zt=σ(Wz[ht-1,xt]) (4)
rt=σ(Wr[ht-1,xt]) (5)
GRU模型虽然充分考虑到当前状态和前一时刻状态的关联信息,却无法获取到当前状态和下一时刻状态的关联信息。因此采用的双向GRU模型BiGRU,包含两个单向、方向相反的GRU,且输出状态由两个GRU输出状态共同决定。BiGRU当前隐藏层状态ht'由当前的输入xt、前向隐藏层状态的输出和反向隐藏层状态的输出/>三部分共同决定。wt,vt分别代表/>和/>的权重,bt代表当前t时刻的偏置量。BiGRU的输出计算过程如式(8)~(10):
注意力机制能够使神经网络模型训练过程中关注对训练有用的关键信息以及忽视不重要的信息,提高神经网络模型训练效率。以BiGRU为例介绍带有注意力机制的BiGRU结构,混合神经网络的另一分支CNN+attention与此结构类似。其中,(x1,x2,x3,x4,...,xn)为输入序列,(h1,h2,h3,h4,...,hn)为基于BiGRU隐藏层状态下的输出值,为基于前向BiGRU提取得到的隐藏层输出值,为基于反向BiGRU提取得到的隐藏层输出值。(h1,h2,h3,h4,...,hn)由/>与/>共同决定。注意力机制相关参数的计算过程如式(11)~(14):
eti=a(st-1,hi) (11)
p(yt|y1,y2,...,yt-1,x)=BiGRU(ct) (14)
a表示注释hi根据状态st-1对下一个隐藏层状态st的重要性,wti表示hi的注意力权重,ct表示步长为t的上下文向量。p(yt|y1,y2,...,yt-1,x)表示BiGRU在当前步长t中输出最有可能的符号yt。如此一来,源句的信息能够分布在整个序列中而非编码器将信息编码成固定长度的向量。信息分布在整个序列中,便于解码器在每个时间步长中有选择性地对其检索。因此,注意力机制使神经网络专注于输入相关的信息,而非无关部分。
混合神经网络通过一个全连接层来实现特征融合,这使得它能够同时两种神经网络的优点,并在一定程度上提高了模型的性能和泛化能力。
选取智能合约漏洞数据集Smartbugs-wild以及相同数量的不包含漏洞的智能合约数据组成用于智能合约漏洞检测的最终数据集并验证潜在智能合约漏洞检测方法的有效性。
(4)准备一台PC机,搭建潜在智能合约漏洞检测阶段需要配置的环境:Tensorflow-gpu(2.4.0)、Keras(2.3.1)、python(3.8)、CPU/GPU。
(5)分别基于文本和图像构建智能合约表征,通过两种表征方式将选取的数据集转化为相应的表征方式,构建基于注意力机制的混合神经网络模型并将两种表征方式得到的数据作为神经网络模型的输入,对智能合约数据的训练及测试。
(6)选取智能合约漏洞检测的评估指标评估漏洞检测方法的有效性,例如准确率(Accuracy)、精确率(Precision)、召回率(Recall)。
然后,进入潜在智能合约安全漏洞检测阶段,通过基于文本的智能合约表征方式将收集的智能合约数据转化为神经网络的输入形式,构建基于注意力机制混合神经网络模型实现潜在智能合约漏洞的检测,具体包括:
最后,进入小样本智能合约数据条件下的潜在安全漏洞检测阶段,通过基于图像的智能合约表征方式构建智能合约图像数据集,构建基于基础学习器-元学习器框架实现小样本智能合约漏洞的检测,具体包括:
构建基于图像的智能合约表征形式,结合公开的数据集Smartbugs-wild与ScrawID确定智能合约数据集WScrawID,先使用solc编译器对数据集WScrawID编译,得到智能合约的十六进制字节码,得到字节码后使用python编程语言将十六进制字节码转化为RGB图像,最终构造小样本智能合约漏洞检测的数据集IData,使用数据集IData作为小样本智能合约数据的漏洞检测数据,进而将小样本智能合约数据的漏洞检测问题转化为图像分类问题。进行七组基础学习器-元学习器框架实验,选取最佳检测效果的元学习框架作为小样本智能合约漏洞检测的最终方法框架。基础学习器-元学习器组合方式分别为CNN-RNN、MLP-MAML、Resnet-MANN、CNN-GRU-MANN、CNN-BiGRU-MANN、Resnet-GRU-MANN、Resnet-BiGRU-MANN。
根据本发明提出的智能合约在无人机集群中的应用方法,可促进智能合约在无人机集群中的应用以及提高无人机集群建设的安全系数。
智能合约具有去中心化、不可篡改、可溯源以及自动化执行等特点,能够有效适应无人机集群的现实需求,突破飞行数据管理、自主协同、安全维护、安全认证关键技术,因此针对智能合约在无人机集群中的安全性应用进行研究具有重大现实意义。
本发明旨在通过探索智能合约在无人机集群中的典型应用和分析其在应用过程中可能存在的漏洞,进而设计并探究潜在智能合约漏洞的检测方法以及小样本智能合约漏洞检测方法,提出一种智能合约在无人机集群中的应用方法。
具体地,本发明将从无人机集群的现实需求出发,依托具备去中心化等优势特征的智能合约研究飞行数据管理、自主协同、安全维护、安全认证四个典型应用,重点分析智能合约在应用过程中潜在的高级语言层面的整数溢出和重入、区块链层面的时间戳和交易顺序依赖、虚拟机层面的交易授权5种安全漏洞。在此研究基础上,针对潜在智能合约安全漏洞提出一种基于注意力机制的混合神经网络的漏洞检测模型。同时,为解决深度学习法训练模型依赖大规模数据以及短时间难以获取足够智能合约攻击样本问题,提出一种新的基础学习器-元学习器框架。
具体的,检测小样本智能合约数据条件下的漏洞阶段包括:
小样本智能合约数据条件下的漏洞检测阶段,包括:
从github上获取智能合约公开数据集Smartbugs-wild;
将智能合约公开数据集Smartbugs-wild通过构建基于图像的表征方式转化为图像数据集IData;
构建多种基础学习器-元学习器框架,将图像数据集通过框架进行实验,实验所需要的环境是pycharm+pytorch。
通过准确率、精确率、召回率、F1-score评估框架的优劣性,确定最后的混合神经网络。
构建基于图像的智能合约表征形式,结合公开的数据集Smartbugs-wild与ScrawID确定智能合约数据集WScrawID,先使用solc编译器对数据集WScrawID编译,得到智能合约的十六进制字节码,得到字节码后使用python编程语言将十六进制字节码转化为RGB图像,最终构造小样本智能合约漏洞检测的数据集IData,使用数据集IData作为小样本智能合约数据的漏洞检测数据,进而将小样本智能合约数据的漏洞检测问题转化为图像分类问题。进行七组基础学习器-元学习器框架实验,选取最佳检测效果的元学习框架作为小样本智能合约漏洞检测的最终方法框架。基础学习器-元学习器组合方式分别为CNN-RNN、MLP-MAML、Resnet-MANN、CNN-GRU-MANN、CNN-BiGRU-MANN、Resnet-GRU-MANN、Resnet-BiGRU-MANN。
混合神经网络的输入:两个分支网络的输入分别为智能合约源代码经过两种词嵌入技术(Word2Vec和FastText)得到的矩阵向量,即一支分支网络的输入为智能合约经过.Word2Vec的矩阵向量,另一支为智能合约经过.FastText的矩阵向量。在这里Word2Vec和FastText属于词嵌入技术。
混合神经网络的输出:特征。具体的,一支网络的输出为经过CNN提取到的特征后继续经过注意力机制优化得到的特征。另一支网络的输出为经过BiGRU提取到的特征后继续经过注意力机制优化得到的特征。
本发明针对智能合约在无人机集群中应用的安全性展开研究,这是较为完善的体系研究,对于提高无人机集群建设安全系数具有一定的实践意义以及弥补了智能合约在无人机集群中安全性探索的空白。同时,该研究也为无人化的建设与发展提供了参考。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
Claims (8)
1.一种智能合约在无人机集群中的应用方法,其特征在于,包括:
获取智能合约在无人机集群的典型应用;
基于智能合约在无人机集群的典型应用,分析获取智能合约在应用过程中潜在安全漏洞种类;
基于获取的智能合约在应用过程中潜在安全漏洞种类,检测潜在智能合约安全漏洞;
基于潜在智能合约安全漏洞,进行小样本智能合约数据条件下的漏洞检测,得到智能合约在无人机集群的漏洞。
2.根据权利要求1所述的智能合约在无人机集群中的应用方法,其特征在于,智能合约在无人机集群的典型应用,包括:
(1)飞行数据管理
飞行数据的安全性管理对于无人机集群而言至关重要,关系到集群所需执行任务的成败;若飞行数据无法被准确掌握,如当前任务是否完成的反馈信息,将会影响新任务的发布;这也是无人机以集群形式执行任务时,需要对其飞行相关数据准确掌握的原因;通过构建分布式的区块链网络,每一架无人机都被视为网络中的一个节点,网络中任意节点的动态均可被监测;分布式网络中的节点互相联通,能够实现信息共享;飞行数据管理除了对数据信息的掌握之外,还需要保障飞行数据存储的安全性;智能合约能够连接星际文件系统(Inter Planetary File System,IPFS),做到对数据存储的去中心化,保障了其存储的安全性;无人机节点在链上成功写入数据之前,需要通过共识机制,共识通过,数据被成功写入链上;共识不通过,数据写入失败;共识机制保障了无人机集群之间数据传输的安全性;同时,建立加密机制对数据信息进行非对称加密,能够保障交易的安全;
(2)自主协同
无人机以集群形式执行任务的效能往往高于单架无人机执行任务效能的总和;无人机集群执行任务的高效性离不开集群内部无人机节点的自主协同;无人机节点共处于区块链网络中,各节点之间互联互通,集群内部信息能够实时共享;区块链的去中心化特性使得各节点相互协同,即使无人机集群内部有节点出现故障失效时,分布式网络会自动重构,其余节点继续执行原来的任务;同样,分布式网络加入节点后,分布式网络也能进行重构,继续执行原来的任务;现实生活中的无人机出现故障或许是自身存在缺陷,或许是被恶意攻击者劫持利用,若为后者,则无人机集群会存在一定的安全风险;因为被劫持利用的无人机会向其余正常无人机传播干扰信息,其余无人机相互之间收到的信息会不同,影响集群的决策,无法做到“共识”;不过,智能合约的可追溯特性能够保障出现故障的无人机节点及其动态能够被查询到,进而准确定位故障节点并进行相关处理工作,最终有效防范该风险,保障集群自主协同的安全性;
(3)安全维护
安全维护管理主要针对无人机集群的硬件以及软件程序升级的维护,为无人机集群执行任务时的正常运转提供保障;无人机集群的维护过程可以视作一条维护链的功能;无人机集群的安全维护过程简单讲主要是维护申请,维护受理以及维护反馈;将维护过程以智能合约的形式写入维护链中,合约的触发条件为无人机集群的硬件损坏或软件版本级别过低需要进行维护,合约的响应即依次进行维护申请,维护受理以及维护反馈流程;自动化进行维护过程需要将规则以智能合约的形式写入维护链中,在此过程中,可能会涉及信任问题;如维护受理的信任问题,若有恶意攻击者操纵无人机节点提出维护申请,将会浪费人力和物力资源对其进行检修;为解决信任问题,可以结合区块链技术,增添加密机制,利用非对称加密技术,产生公钥和私钥,将维护申请视为公钥处理,技术人员使用相应私钥完成数字签名,可受理或驳回维护申请;无人机集群的整个安全维护过程因为智能合约的参与对内部人员变得公开透明,能够实时查询安全维护的状态,提升了安全维护的工作效率;
(4)安全认证
向无人机集群内加入无人机节点之前需要进行身份认证,身份认证通过的节点才被允许加入集群内部;身份认证的目的是防止恶意攻击者使用已控制的节点破坏集群正在执行的任务;基于区块链的智能合约通过数字签名和加密机制为无人机集群内部的身份验证提供了解决方案;依据典型的访问控制模型开发智能合约,如基于角色的访问控制,不同的角色有不同的细粒度访问权限,如此能够有效管理用户的访问权限,提高了身份认证的安全系数;除此,基于区块链的智能合约能够为指定用户节点提供公平、公正、公开且不易被干扰的决策环境;构建区块链网络,指定用户节点参与进来,将决策内容以及其相关背景信息以智能合约的形式存储到区块链网络中并使用加密技术对其加密;由于区块链自身机制优势,恶意节点需要破坏区块链网络中超过51%的节点,才可以阻碍决策过程;恶意节点对决策过程发动攻击的高成本,是保障决策过程顺利进行的重要原因。
3.根据权利要求1所述的智能合约在无人机集群中的应用方法,其特征在于,分析获取智能合约在应用过程中潜在安全漏洞种类,包括:
(1)整数溢出
整数溢出漏洞对应智能合约漏洞库SWC-101以及表示“不正确的计算”的CWE-682,该漏洞包含整数上溢和整数下溢两种情况,整数上溢指存储大于最大支持值的值,整数下溢指存储小于最小支持值的值;整数溢出漏洞产生的原因为智能合约开发前未对计算结果提前进行逻辑验证;该漏洞会产生极其严重的后果,如代币无限增发,指恶意攻击者能够利用整数溢出漏洞发起交易,通过少量代币向指定地址发送大量代币;代币在区块链中代表着数字资产,并作为奖励用于激励区块创建者对无人机集群任务链的维护和升级;数字资产的损失势必影响区块创建者的执行效率,进而影响无人机集群各个任务链的安全运转;整数溢出漏洞带来的潜在巨大代币损失是对其关注的重要因素;
(2)时间戳
时间戳依赖漏洞对应智能合约漏洞SWC-116以及表示“包含来自不受信任的控制领域的功能”的CWE-829,该漏洞通常发生在利用时间戳作为执行重大事件的一个关键要素的场景;该漏洞产生原因为时间戳作为执行重大事件的一个关键要素时,区块创建者能在短时间内(小于900秒)操纵对自己有利的时间戳;时间戳能够有效应用在无人机集群中;无人机以集群方式执行任务时,若集群中存在某无人机节点因被恶意攻击者控制而失效,可以利用时间戳技术通过溯源方式定位到失效节点,避免其干扰其他节点,影响任务的执行;若时间戳依赖漏洞被恶意攻击者利用,将会影响时间戳技术在无人机集群中溯源特性的有效应用,无法准确定位失效节点,甚至导致将正常节点误判为失效节点处理,最终影响集群任务的正常进行,这是对其关注的重要因素;
(3)重入
重入漏洞对应智能合约漏洞库SWC-107以及表示“工作流程执行不当”的CWE-841,该漏洞的本质是循环调用代码缺陷,是智能合约漏洞类型中发生较为频繁以及威胁程度较深的一种;智能合约在执行期间通过函数调用或者转移以太币实现对其他合约的调用;然而,这些外部调用存在被恶意攻击者利用的风险,导致合约被强制执行其余代码,这个过程可以被看作为重入;该漏洞通常发生在智能合约过程中使用转账函数的情况下;该漏洞会导致被攻击合约账户中的代币被窃取或拒绝服务;通过智能合约可实现无人机集群的关键功能,若发生重入漏洞,则会因拒绝服务导致功能失灵,影响任务的执行;若重入漏洞被恶意攻击者利用,将导致无人机集群存在关键功能失灵以及潜在的巨大代币损失的风险,这是对其关注的重要因素;
(4)交易顺序依赖
交易顺序依赖漏洞对应智能合约漏洞库SWC-114以及表示“并发执行中使用共享资源时未正确同步”的CWE-362;区块链网络以区块为单位处理交易,交易传播以及区块创建者对其认同需要一定时间;恶意攻击者利用这段时间监控被攻击合约的交易,以更高的gas发送自己的交易,使自己交易与被攻击合约交易处于同一区块内;区块创建者检查区块内的交易,对gas较高的攻击者合约交易优先处理;这导致恶意攻击者因窃取被攻击合约交易内容受益,被攻击合约受到损失;智能合约在无人机集群应用过程中,若有恶意攻击者利用交易顺序依赖漏洞,原有智能合约所实现的功能因合约执行顺序异常而失灵,同时恶意攻击者发布的交易对无人机集群的应用也会存在安全威胁,如恶意攻击者在抢先获得交易优先处理的同时发布带有攻击性的合约,这是对其关注的重要因素;
(5)交易授权
交易授权漏洞对应智能合约漏洞库SWC-115以及表示“包含过时功能的使用”的CWE-477,该漏洞指智能合约中使用tx.origin全局变量实现用户验证时容易遭受钓鱼攻击;智能合约能够解决无人机集群中的身份验证问题,但若使用tx.origin全局变量开发用于身份验证的合约时,如使用tx.origin全局变量进行授权操作时,会导致合约被恶意攻击者发动钓鱼攻击,引诱用户在有漏洞的合约上执行一些需要授权的操作,若授权操作带有代币的转移操作,则会存在代币损失的风险,进而影响区块创建者对无人机集群任务链的维护和升级,这是对其关注的重要因素。
4.根据权利要求1所述的智能合约在无人机集群中的应用方法,其特征在于,检测潜在智能合约安全漏洞,具体包括:
通过智能合约表征构建方法将智能合约数据构建为基于注意力机制的混合神经网络的输入形式并通过神经网络模型训练以及测试,实现潜在智能合约漏洞的检测;
所述混合神经网络包括CNN与BiGRU以及全连接层;
CNN用于将智能合约数据集进行特征提取并将其通过注意力机制得到CNN提取特征FCNN+attention,BiGRU用于将智能合约数据集通过进行特征提取并将其通过注意力机制得到BiGRU提取特征FBiGRU+attention,全连接层用于将CNN提取特征FCNN+attention和BiGRU提取特征FBiGRU+attention进行特征融合得到潜在智能合约漏洞检测结果;其中,F表示特征,下标CNN表示CNN神经网络,下标BiGRU表示BiGRU神经网络,下标attention表示注意力机制,这个公式整体表示通过CNN神经网络或者BiGRU神经网络,提取特征并经过注意力机制进行特征优化,即表示特征优化的结果F。
5.根据权利要求4所述的智能合约在无人机集群中的应用方法,其特征在于,CNN各个层级如下:
(1)输入层:智能合约数据集中的每个词经过Word2Vec被映射为相应的词向量xi,词向量xi组成矩阵S,S=(x1,x2,...xi,...,xn),其中,xi表示矩阵S中第k个词向量,k表示词向量的维度,/>n表示矩阵S中词向量的个数,本次实验中词向量的维度k=300;
(2)卷积层:卷积核与矩阵S进行卷积操作实现矩阵S的特征提取,特征为cf,如式(1):
其中,表示经过卷积操作后的特征,w表示卷积核,b表示偏置量,f表示Relu激活函数,xi:i+r-1表示从i到i+r-1行词向量;经过卷积操作的词向量集合Cf,如式(2):
其中,n为卷积核个数;
(3)池化层:为了获取最大的特征Mti,并对卷积层所提取的信息做进一步降维,本次实验选择最大池化的方法,如式(3):
Mti=max{Cf} (3)
(4)输出层:主要作用为连接池化层中所有的Mti。
6.根据权利要求4所述的智能合约在无人机集群中的应用方法,其特征在于,GRU由更新门和重置门组成;更新门值的大小与前一时刻隐藏层输出状态ht-1对当前时刻状态xt的影响程度成正相关;重置门值的大小表示前一时刻的隐藏层的输出状态ht-1与当前时刻状态xt的结合程度,值越大,表示忽略的信息越少;σ表示sigmoid,与tanh均为激活函数,xt表示当前时刻的输入,ht表示当前时刻隐藏层的输出,ht-1表示前一刻隐藏层的输出,表示基于更新门的新的记忆信息;rt表示重置门,zt表示更新门;模型结构中ht的计算过程如式(4)~(7):
zt=σ(Wz[ht-1,xt]) (4)
rt=σ(Wr[ht-1,xt]) (5)
GRU模型虽然充分考虑到当前状态和前一时刻状态的关联信息,却无法获取到当前状态和下一时刻状态的关联信息;因此采用的双向GRU模型BiGRU,包含两个单向、方向相反的GRU,且输出状态由两个GRU输出状态共同决定;BiGRU当前隐藏层状态h′t由当前的输入xt、前向隐藏层状态的输出和反向隐藏层状态的输出/>三部分共同决定;wt,vt分别代表和/>的权重,bt代表当前t时刻的偏置量;BiGRU的输出计算过程如式(8)~(10):
其中,(x1,x2,x3,x4,...,xn)为输入序列,(h1,h2,h3,h4,...,hn)为基于BiGRU隐藏层状态下的输出值,为基于前向BiGRU提取得到的隐藏层输出值,为基于反向BiGRU提取得到的隐藏层输出值;(h1,h2,h3,h4,...,hn)由与/>共同决定;注意力机制相关参数的计算过程如式(11)~(14):
eti=a(st-1,hi) (11)
p(yt|y1,y2,...,yt-1,x)=BiGRU(ct) (14)
a表示注释hi根据状态st-1对下一个隐藏层状态st的重要性,wti表示hi的注意力权重,ct表示步长为t的上下文向量;p(yt|y1,y2,...,yt-1,x)表示BiGRU在当前步长t中输出最有可能的符号yt;如此一来,源句的信息能够分布在整个序列中而非编码器将信息编码成固定长度的向量;信息分布在整个序列中,便于解码器在每个时间步长中有选择性地对其检索;因此,注意力机制使神经网络专注于输入相关的信息,而非无关部分。
7.根据权利要求1所述的智能合约在无人机集群中的应用方法,其特征在于,检测小样本智能合约数据条件下的漏洞,包括:
构建基于图像的智能合约表征形式,结合公开的数据集Smartbugs-wild与ScrawID确定智能合约数据集WScrawID,先使用solc编译器对数据集WScrawID编译,得到智能合约的十六进制字节码,得到字节码后使用python编程语言将十六进制字节码转化为RGB图像,最终构造小样本智能合约漏洞检测的数据集IData,使用数据集IData作为小样本智能合约数据的漏洞检测数据,进而将小样本智能合约数据的漏洞检测问题转化为图像分类问题;进行七组基础学习器-元学习器框架实验,选取最佳检测效果的元学习框架作为小样本智能合约漏洞检测的最终方法框架;
根据最后的方法框架检测小样本智能合约数据条件下的漏洞。
8.根据权利要求1所述的智能合约在无人机集群中的应用方法,其特征在于,基础学习器-元学习器组合方式分别为CNN-RNN、MLP-MAML、Resnet-MANN、CNN-GRU-MANN、CNN-BiGRU-MANN、Resnet-GRU-MANN、Resnet-BiGRU-MANN。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310633542.1A CN117034263A (zh) | 2023-05-31 | 2023-05-31 | 一种智能合约在无人机集群中的应用方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310633542.1A CN117034263A (zh) | 2023-05-31 | 2023-05-31 | 一种智能合约在无人机集群中的应用方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117034263A true CN117034263A (zh) | 2023-11-10 |
Family
ID=88621462
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310633542.1A Pending CN117034263A (zh) | 2023-05-31 | 2023-05-31 | 一种智能合约在无人机集群中的应用方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117034263A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117459178A (zh) * | 2023-12-22 | 2024-01-26 | 武汉阿内塔科技有限公司 | 一种基于语义导向的无人机通信干扰方法和系统 |
-
2023
- 2023-05-31 CN CN202310633542.1A patent/CN117034263A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117459178A (zh) * | 2023-12-22 | 2024-01-26 | 武汉阿内塔科技有限公司 | 一种基于语义导向的无人机通信干扰方法和系统 |
CN117459178B (zh) * | 2023-12-22 | 2024-03-26 | 武汉阿内塔科技有限公司 | 一种基于语义导向的无人机通信干扰方法和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Ullah et al. | Cyber security threats detection in internet of things using deep learning approach | |
Darabian et al. | Detecting cryptomining malware: a deep learning approach for static and dynamic analysis | |
Vinayakumar et al. | Robust intelligent malware detection using deep learning | |
JP2019511030A (ja) | 人工知能によるコンピュータセキュリティ | |
CN103577323B (zh) | 基于动态关键指令序列胎记的软件抄袭检测方法 | |
Gao et al. | Energy-based learning for preventing backdoor attack | |
Khaled et al. | Assessing the severity of smart attacks in industrial cyber-physical systems | |
Alsobeh et al. | Integrating data-driven security, model checking, and self-adaptation for IoT systems using BIP components: A conceptual proposal model | |
US20240061937A1 (en) | Anti-malware behavioral graph engines, systems and methods | |
CN117034263A (zh) | 一种智能合约在无人机集群中的应用方法 | |
Nagarajan et al. | Security framework for IoT and deep belief network-based healthcare system using blockchain technology | |
CN115883261A (zh) | 一种基于att和ck的电力系统apt攻击建模方法 | |
Vadlamudi et al. | Analysis on digital forensics challenges and anti-forensics techniques in cloud computing | |
Gangadharan et al. | Advancing Bug Detection in Solidity Smart Contracts with the Proficiency of Deep Learning | |
Galli et al. | Explainability in AI-based behavioral malware detection systems | |
Gupta et al. | Detection of vulnerabilities in blockchain smart contracts: a review | |
CN111506313A (zh) | 一种基于神经网络的程序控制流混淆方法及系统 | |
Thevenon et al. | iMRC: Integrated Monitoring & Recovery Component, a Solution to Guarantee the Security of Embedded Systems. | |
Homaei et al. | A review of digital twins and their application in cybersecurity based on artificial intelligence | |
Li et al. | Security modeling for embedded system design | |
Fedorov et al. | Development of a method for building a trusted environment by using hidden software agent steganography | |
Peng et al. | A Survey of Security Protection Methods for Deep Learning Model | |
EP4127981A1 (en) | Systems, methods, and storage media for creating secured transformed code from input code using a neural network to obscure a function | |
Dammak et al. | Security measures for Web ETL processes | |
Milewicz et al. | A Secure Future for Open-Source Computational Science and Engineering |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |