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 和交易延迟攻击则属于社会工程学类攻击,解决此类
                        攻击只能通过不断完善激励制度和奖惩制度、优化网络环境等社会工程学手段.
   273   274   275   276   277   278   279   280   281   282   283