Page 278 - 《软件学报》2021年第5期
P. 278
1502 Journal of Software 软件学报 Vol.32, No.5, May 2021
受害者节点集合 攻击者 P2P网络 节点
节点
节点
节点
攻击者 受害者
节点
节点 节点 v 节点
节点
v
节点 节点 v
攻击者 节点 节点
Fig.2 Eclipse attack Fig.3 DDoS attack
图 2 日蚀攻击 图 3 DDoS 攻击
3.2 防御策略与方法
网络层攻击的主要攻击目标是区块链底层的 P2P 网络,其共性在于攻击者都是通过扰乱用户的之间的通
信,从而达到不同的攻击目的.根据攻击方式的特性,区块链网络层攻击大致可以分为信息窃取类攻击、网络路
由劫持类攻击和恶意资源占用类攻击.
(1) 信息窃取类攻击:主要包括客户端代码漏洞和窃听攻击.在针对客户端代码漏洞的攻击场景中,攻击
者利用的漏洞可能是预先恶意植入的后门,也可能是开发人员编写错误导致的.理论上,无法完全杜
绝类似的漏洞,所以开发商应在软件安全开发生命周期 [62] 内,通过 Fuzzing [63] 、代码审计 [64] 、逆向漏
洞分析 [65] 、反逆向工程 [66] 等技术对客户端的安全性进行评估,以缓解类似漏洞带给用户的安全威胁.
在窃听攻击场景中,攻击者可以通过网络监听等手段获取用户身份、地址等隐私信息,其关键在于用
户的区块链网络标识唯一,攻击者可以将窃听得到的 IP 地址与已有的客户端入口节点进行匹配,从而
获得交易数据来源和用户隐私.为了预防窃听攻击,用户应采用混淆的交易方法来打破交易过程中用
户唯一标识与 IP 地址之间的一一对应关系.具体地,多个用户可以通过共享唯一网络标识,实现“一对
多”或“多对一”的交易,以此混淆用户唯一标识与 IP 地址之间的一一对应关系,使得攻击者无法通过
匹配用户标识和 IP 地址来获取用户隐私.此外,在交易数据的传输过程中,应使用可靠的加密算法实
现数据的加密传输,防止恶意攻击者对网络节点的信息进行窃取.
(2) 网络路由劫持类攻击:主要包括日蚀攻击、BGP 劫持攻击和分割攻击,它们的攻击原理相似,攻击目标
分别为单个节点、节点集合和 P2P 网络.攻击者通过改变节点的网络视图,将目标节点集合从区块链
网络中隔离出来,从而达成控制区块链网络的目的.以比特币系统为例,攻击者可以通过这 3 种攻击迫
使部分矿工节点“离线”,导致区块链全网实际算力的流失,从而使攻击者的算力在全网总算力中的占
比不断上升.当算力超过全网算力的一半时,攻击者可以以远低于原全网 51%的算力发动 51%攻击
(详见第 4 节).与通过提升自身算力来实施 51%攻击的方式相比,通过日蚀攻击和 BGP 劫持攻击来提
升自身攻击优势的方式更加经济.攻击者之所以可以发起日蚀攻击,其关键在于目标节点无法判断已
连接节点的身份.为了预防日蚀攻击,Letz 等人 [67] 提出了共识信誉机制 BlockQuick.BlockQuick 中的
网络节点在接受新产生的区块时,会对矿工的加密签名进行验证,并将该矿工的身份与共识信誉表中
已知矿工的身份进行比对.最终,当共识得分大于 50%时,网络节点才会接受该区块;否则,节点察觉出
攻击者的日蚀攻击行为并拒绝该区块.而在 BGP 劫持攻击和分割攻击场景中,攻击者主要通过 BGP
路由劫持实现网络视图分割 . 针对这 个问题 , 研究 人员提出了自动实时检测与缓解系 统
(ARTEMIS) [68] ,可以在几分钟内帮助服务提供商解决 BGP 劫持问题,使得实时流的公共 BGP 监控服
务成为可能.
(3) 恶意资源占用类攻击:DoS,DDoS 攻击属于通过恶意资源占用实现的拒绝服务攻击,目前已经存在很
多有效的防御工具,如 DoS 防火墙 [69] 等.而 BDoS 和交易延迟攻击则属于社会工程学类攻击,解决此类
攻击只能通过不断完善激励制度和奖惩制度、优化网络环境等社会工程学手段.