本文作者:kaifamei

一种针对多链协作场景的安全审计方法

更新时间:2025-12-20 06:33:10 0条评论

一种针对多链协作场景的安全审计方法



1.本发明属于区块链信息安全技术领域,具体来说,是一种针对多个区块链系统协作场景下各事务活动的信息安全审计方法。


背景技术:

2.近期,针对多链协同场景的安全攻击事件时有发生,造成了严重的破坏与经济损失。有鉴于此,多链协作场景的应用、协议及设施在上线之前,有必要预先开展系统性的安全审计,充分评估可能遇到的安全问题并进行相应的修复。
3.对于区块链系统的安全审计来说,当前针对智能合约和底层系统的攻击面研究广泛,学界和业界已总结出诸多的安全问题类型。例如,对于智能合约的编码和运行安全,已有重入、委托调用(delegatecall)、可见性、价格预言、条件或返回值未检查等可能的问题类型和安全审计点;对于区块链底层系统的安全性,已有女巫攻击、拒绝服务攻击、长程攻击、延展性攻击等诸多从网络、远程调用(rpc)、共识和交易等机制上总结的安全分析问题点。尽管如此,当前仍然缺乏专门的多链协同安全审计方案。(1)现有针对区块链系统的安全分析方法并不完全适用于多链协同场景的审计,如polynetwork安全事件中所涉及的协议函数任意执行与智能合约中类似问题的产生和检查方式不同,wormhole事件所涉及的跨链机制问题并非底层系统审计的通常关注点,ronin事件则涉及到跨链验证节点被攻击,难以通过智能合约和底层系统的安全审计方法事先发现。(2)用于分布式系统的安全审计方法也较难用于多链协同场景,分布式系统中的节点或子系统通常在实现上是一致或类似的,而多链协同场景下各区块链系统通常是异构的,这使得即使排除系统实现上的差异,两者在安全审计上的关注点也并不一致;例如,相比分布式系统,多链协同场景下的单链往往可以独立运行,因而更关注一致性,而分布式系统则同时关注一致性、可用性和分区容错性。


技术实现要素:

4.为了克服现有安全审计方法的上述不足,本发明针对多链场景下的事务协作机制和特点,提供一种针对多链协作场景的安全审计方法。
5.本发明所采用的技术方案如下:
6.(1)在开展针对多链场景的安全审计之前,先对用于区块信息同步或参与共识的节点以及用于链间事务处理或验证的节点的运行环境进行充分地主机和网络安全分析和检测,增强相关软硬件及网络访问的安全性。
7.(2)进一步地,在开展针对多链场景的安全审计之前,依照区块链系统的传统审计方法对单链系统进行分析,增强其在接入多链协作场景时安全性。
8.(3)进一步地,针对多链协作场景,开展协作节点视角下的区块、交易以及资产安全审计:
9.i.开展区块信息正确性检查,验证多链协作场景中协作节点所同步的区块信息是
否与接入多链协作场景的各单链系统基于共识机制所形成的区块信息相同;当已协作的历史区块信息均相同时,则该项审计通过;否则应暂停多链协作,予以修复。
10.ii.开展区块同步时效性检查,验证协作节点同步区块信息是否存在不及时的情况,以及该情况发生时所造成的影响;当已协作的历史区块均检查不存在超时情况时,则该项审计通过;否则应判断其对多链协作的影响,当影响交易正确性时,应暂停多链协作并予以修复。
11.iii.开展交易合法性检查,验证参与跨链交易的节点所接收(或发送)的交易在发起链和接收链上是否存在交易参数异常或结果异常;当历史交易或测试交易均通过交易合法性检查,或被检出不合法而不执行时,则该项审计通过;否则应暂停多链协作并予以修复。交易参数异常与各个参与区块链系统的交易参数设计和实现相关,如不符合设计文档或与实现冲突,则认为参数异常;结果异常与交易完整性检查相关、与交易设计相关;例如,从a链发送c数量的资产到b链,如果b链上接收到的资产数量不为c,则认为没有通过完整性检查,结果异常。
12.iv.开展交易有效性检查,验证参与跨链交易的节点所接收(或发送)的合法交易在发起链和接收链上是否执行完成并成功写入相应区块账本;当历史交易或测试交易均通过交易有效性检查,或被检出无效而不执行时,则该项审计通过;否则应判断其对多链协作的影响,当影响交易正确性时,应暂停多链协作并予以修复。
13.v.开展跨链资产锁定检查,根据时间、数量、锁定和解锁权限,检验跨链资产锁定和解锁的时间、资产数量以及权限设置条件是否会导致部分资产永久锁定、被恶意挪用等不合理的情况,以及相关锁定资产的隐私性是否与跨链机制设计相符;当跨链代码和历史交易均通过跨链资产锁定检查,则该项审计通过;否则应暂停多链协作并予以修复。
14.vi.开展跨链资产的安全可靠检查,应用传统的合约审计方法和基于跨链协议实现语言的漏洞检测方法,检测资产托管模式的代码实现安全性;通过编写完整性检查代码检测跨链交易的区块记录和事件日志,检查跨链资产在资产数量兑换和身份证明等代码实现上的准确性;评估协议的资产托管模式,查看资产托管的权限分配、相应私钥保存位置和验证节点的数量以及去中心化程度,审计托管的可靠程度。当跨链代码和历史交易均通过跨链资产安全可靠检查时,则该项审计通过;否则应暂停多链协作并予以修复;当跨链代码和历史交易均通过跨链资产的安全可靠检查,则该项审计通过;否则应暂停多链协作并予以修复。
15.(4)进一步地,针对多链协作场景,开展跨链事务活动的一致性和可用性审计:
16.i.开展跨链事务的一致性检查,验证事务执行过程的原子性和唯一性,即是否被当作整体执行;验证子事务执行失败时的回滚机制,即失败时是否能保证区块账本恢复到事务发起前的状态;验证发起链和接收链中的相关事务是否均成功写入区块账本并在多链上满足最终一致性条件;当通过跨链事务的一致性检查时,则该项审计通过;否则应暂停多链协作并予以修复。
17.ii.开展跨链事务的可用性检查,检验多链协作机制的适当隔离性,即当一条链由于受攻击等影响而不能正常运行时,其它链间的跨链事务仍然可用;检验是否有针对恶意节点的处理机制,评估存在恶意节点时的跨链服务可用性;当均通过跨链事务的可用性检查时,则该项审计通过;否则应暂停多链协作并予以修复。
18.iii.开展跨链调用代码的兼容性检查,包括检验调用函数是否存在且可用、异常处理机制是否存在且正确、函数执行逻辑是否与跨链机制设计相符等,以发现兼容性问题对一致性和可用性造成的影响;当通过跨链调用代码的兼容性检查时,则该项审计通过;
19.否则应暂停多链协作并予以修复。
20.本发明的有益效果是:
21.本发明针对多链场景下的事务协作机制和特点,提供一种适用于该场景的信息安全审计方法。相比之下,现有针对智能合约和区块链底层系统的传统审计关注点并不能完全覆盖多链场景下的安全问题,例如,polynetwork、wormhole和ronin事件所涉及的问题难以通过传统审计事先发现;其它用于分布式系统的安全审计方法也较难用于多链协同场景,两者在安全审计上的关注点并不一致。本发明的提出将有助于填补这一不足,大大提高了多链协同场景的交易安全性。
附图说明
22.图1是本发明的实施流程图。
23.图2是协作节点视角下的区块、交易、资产审计实施例。
24.图3是跨链事务活动的一致性和可用性审计实施例。
具体实施方式
25.下面结合附图对本发明进行进一步详细描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
26.本发明实施方式包括但不限于以下实施例。
27.本实施例提供了一种针对多链协作场景的安全审计方法,如图1所示。在开展针对多链场景的安全审计之前,预先对参与节点的运行环境进行充分地分析和检测,对单链系统的安全性进行充分地审计。在此基础上,开展协作节点视角下的区块、交易以及资产安全审计,并进行跨链事务活动的一致性和可用性审计。具体如下:
28.(1)对参与多链协同节点(包括同步区块信息、参与共识机制、处理多链事务、参与链间验证等工作的节点)的运行环境进行充分地分析和检测。从安全事件的处置经验上来看,对于网络访问环境的检查来说,可基于人工查验的事实以及日志记录来重点检查bgp劫持、 dns污染、ddos攻击、女巫攻击等造成网络访问异常的可能性事件;对于节点自身的软硬件环境,结合链上数据和本地日志等信息判断检查区块信息是否有可能损坏或被篡改、主机权限是否可能被恶意掌控、私钥或签名是否安全,充分评估节点的安全性;
29.(2)对参与多链协同的各区块链系统安全性进行审计。依据区块链系统的传统审计方法,从网络、远程调用、共识和交易等机制上对日食攻击、长程攻击、延展性攻击等区块链上的特定安全问题进行检查;针对各区块链系统的具体实现,开展相应的参数、边界条件、状态正确性等业务逻辑审计;此外,针对非区块链特定的安全问题,基于各系统的编程实现语言,通过代码检测工具扫描以及人工确认的方法,检查常见的编码实现缺陷,发现条件竞争、信息泄露以及指针引用等方面的安全问题。
30.(3)针对多链协作场景,开展协作节点视角下的区块、交易以及资产安全审计:
31.i.开展区块信息正确性检查。统计节点本地所同步记录的各区块链系统上的区块
数据,生成相应的哈希值,与各区块链系统浏览器上的,或远程调用读取的,或另行搭建的验证环境中的区块数据哈希值比对是否相同;
32.ii.开展区块同步时效性检查。统计节点本地所同步每一区块数据的时间戳,与各区块链系统浏览器上的或远程调用读取的对应同步区块时间戳比对,查看同步时间差是否在设定阈值内;
33.iii.开展交易合法性检查。以节点在某条链上所接收的交易为例(对于所发送的交易,也可采取类似的实施方式),通过比照系统设计文档和实现代码,检查节点所接收的交易是否符合接收链和发送链的设计规范;比照跨链协议以及协议指导下所生成的各类型交易,检查交易是否符合协议的设计规范;比对链上发起的交易和事件日志,检查交易从发送链到接收链上是否有被篡改的可能,并检查交易在发送链上和接收链上的语义是否一致,以判断交易的合法性。
34.iv.开展交易有效性检查。以节点在某条链上所接收的交易为例(对于所发送的交易,也可采取类似的实施方式),预设在发生网络拥塞超时、系统工作异常以及恢复后,审计多链协同处置机制的合理性,即在发起链和接收链上是否执行完成并成功写入相应区块账本,或在发起链和接收链上回滚,完全恢复交易前的状态。
35.v.开展跨链资产锁定检查。对照跨链协议设计文档和实现代码,检查资产锁定和解锁的条件,查看是否存在边界条件,或跨链资产锁定和解锁的时间、资产数量以及权限设置条件是否会导致可能无法跨链解锁,或解锁时间异常,或解锁资产数量异常等情况;检查资产是否可跨链跟踪,判断与协议设计的可追踪隐私性是否一致。
36.vi.开展跨链资产的安全可靠检查。针对资产活动所涉及的智能合约和跨链协议代码,应用相应的传统合约审计方法和基于协议实现语言的漏洞检测方法,并在此基础上检查跨链资产的兑换和证明等实现代码在保证兑换完整性、证明不可篡改性等逻辑上是否准确,审计相关代码的安全性;评估协议的资产托管模式,查看资产托管的权限分配、相应私钥保存位置和验证节点的数量以及实际控制人的分散程度,审计托管的可靠程度。
37.(4)针对多链协作场景,开展跨链事务活动的一致性和可用性审计:
38.i.开展跨链事务的一致性检查。查看跨链事务的所有子事务或函数调用在单链上是否均在同一区块提交执行,或跨区块执行时是否有同步机制确保事务的唯一性;通过设置特定条件,逐一尝试使得跨链事务的子事务执行失败,验证跨链事务的执行失败回滚机制是否能保证区块账本恢复到事务发起前的状态;当跨链事务最终提交时,验证在跨链事务所涉及的发起区块链和接收区块链上是否均成功将相关事务写入区块账本,检查事务写入后在各链上的最终执行语义,判断是否满足一致性条件。
39.ii.开展跨链事务的可用性检查。针对实际的多链协作场景,搭建一个对应的测试环境;针对多链协作机制中应保证的适当隔离性,关闭测试环境中的一个或多个区块链系统,检查不涉及关闭链的事务活动是否仍然正常执行,以及涉及到关闭链的事务活动是否有合理的超时等待或执行失败回退机制;针对恶意节点的处理,在测试环境部署相关节点,尝试从网络、远程调用、共识和交易等功能上发起对一个或多个区块链系统的攻击,查看跨链服务的相关处理机制以及在何种情况下仍然提供跨链事务服务。
40.iii.开展跨链调用代码的兼容性检查。从多链协作场景的设计文档中获取需要调用对方区块链或被对方区块链调用的函数,多链协作场景的各区块链系统和跨链机制的设
计文档中列出了在多链协作场景中可能需要调用对方链或被对方链调用的函数,检查这些函数在所述多链协作场景的各单链系统中是否存在且可用,相关函数的调用和执行语义是否与跨链机制设计相符(比对文档所描述的机制和所实现的代码,看两者在语义上是否一致),以及当相关函数不存在时,链上异常处理机制是否能正确地处理调用错误(跳到异常处理函数,观察异常处理函数的执行语义进行判断)。
41.尽管为说明目的公开了本发明的具体实施例,其目的在于帮助理解本发明的内容并据以实施,本领域的技术人员可以理解:在不脱离本发明及所附的权利要求的精神和范围内,各种替换、变化和修改都是可能的。因此,本发明不应局限于最佳实施例所公开的内容,本发明要求保护的范围以权利要求书界定的范围为准。


文章投稿或转载声明

本文链接:http://www.wtabcd.cn/zhuanli/patent-8-1026-0.html

来源:专利查询检索下载-实用文体写作网版权所有,转载请保留出处。本站文章发布于 2022-11-27 21:26:30

发表评论

验证码:
用户名: 密码: 匿名发表
评论列表 (有 条评论
2人围观
参与讨论