Page 289 - 《软件学报》2021年第5期
P. 289

田国华  等:区块链系统攻击与防御技术研究进展                                                         1513


                        击者的攻击能力,可以有效预防穷举攻击.
                    (4)  启用 API 调用接口认证机制,合理管理交易平台的 API 接口,预防 API 接口攻击.
                    (5)  提高开发工程师的安全素养,在一些敏感系统里单独实现一些额外的认证机制,避免单点登陆漏洞.
                    此外,用户在日常交易中应该提高个人的安全意识,采取相应的安全措施,避免在交易过程中泄露了个人账
                 户的隐私数据,具体需要从以下几方面考虑.
                    (1)  培养好安全意识,提高对危险网站、邮件的辨识能力,预防钓鱼攻击.
                    (2)  构建全面的系统安全防护体系,安装防火墙等安全软件,预防木马劫持攻击.
                    (3)  利用安全的路由协议对区块链网络实现全方位覆盖,预防中间人劫持攻击.
                    (4)  实现离线的密钥管理,预防攻击者对在线密钥存储中的私钥窃取.
                    (5)  利用代码审计、逆向漏洞分析、反逆向工程等技术对钱包客户端代码的安全性进行评估.
                    (6)  在使用数字货币钱包时,对一些来源不明的小额资金“粉尘”进行标记并禁用,预防粉尘攻击.
                    (7)  使用专门的零钱包存储该用户持有的“粉尘”级资产,其中既包含攻击者发送的“粉尘”,也可能包含用
                        户自身交易产生的小额资金.为了资产安全,该零钱包中的资金专用于隐私性不高的交易.
                    在针对认证机制漏洞的 SIM hack 攻击场景中,攻击者主要是利用服务商提供的“账户找回”服务中的安全
                 隐患来成功获取目标账户.因为基于手机、邮件的二次验证并不是完全安全的方法,因此服务商应尝试使用采
                 取 2FA 等具备更高安全性的有更高级别安全设置的服务.2FA 是基于时间、历史长度、实物,例如信用卡、SMS
                 手机、令牌、指纹等自然变量结合一定的加密算法组合出的一组动态密码,一般每 60s 刷新一次.这种方法不容
                 易被破解,相对较安全.
                    理论上,基于 UTXO 结构的区块链系统可以抵抗重放攻击,因为转账是基于每一笔 UTXO 进行的原子级别
                 操作,不存在一笔 UTXO 被重复扣除的情况.但是在类似以太坊的账户结构中,交易是通过余额判断合法性的,
                 只要余额足够就可以进行重复扣款转账,一笔交易的信息进行多次广播的重放攻击是可行的.交易延展性攻击
                 和重放攻击非常相似,它们都是对交易所发起的攻击方式,但重放攻击主要针对区块链硬分叉的情况,而交易延
                 展性攻击讲究的是区块标识的可变性.
                    此外,基于 Hyperledger Fabric 的区块链也可以抵抗重放攻击,该框架中采用 Endorser 节点对客户端提交的
                 交易预案进行身份验证,若交易信息异常,则系统终止操作,这种方式可以有效阻止重放攻击.以太坊的账户结
                 构中存在一个参数 Nonce,该参数的值等于从这个账户中发出交易的数量.当交易完成验证后,发送者账户中的
                 Nonce 值会自动增加 1.当矿工验证一笔交易是否合法的时候,矿工会对比交易包含的 Nonce 值,并与该交易的发
                 送者账户中的 Nonce 值进行比较,相等才算作合法交易,并对该交易打包出块.单链重放攻击无法修改发送者账
                 户的数值,因此当接受到重复交易时,矿工会直接判定它无效,从而阻止了单链重放攻击.面对多链重放攻击时,
                 可以参考以太零开发团队的做法,建立一个交易锁.当一笔交易发起时,交易锁将被广播到整个区块链网络.此
                 时,交易锁会锁定交易关联的数字资产.交易在主节点验证期间,原交易资产被锁定无法使用,以此达到抵御多
                 链重放攻击的目的.

                 7    区块链攻击簇与安全防御体系

                    区块链网络中,攻击者可能通过单个区块链攻击,也可能通过包含多种攻击的区块链攻击簇来实现最大化
                 获利的目的.如表 1 所示,本文对这些区块链攻击方式进行了整理和分析,梳理了各种攻击方式之间的潜在联系.
                 此外,很多攻击方式不只局限于前文所述的攻击目标(场景)和攻击目的.攻击场景不同,实施方式多样,带来的安
                 全威胁也不尽相同.为了更好地预防这些攻击,本节进一步研究了区块链攻击簇的基本原理,整理出了本文涉及
                 的区块链攻击方式中所有潜在的攻击簇(如图 5 所示),并尝试构建出了一个较为全面的区块链安全防御体系.
   284   285   286   287   288   289   290   291   292   293   294