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

1510                                     Journal of Software  软件学报 Vol.32, No.5,  May 2021

                        务场景中,可以作为实现双花攻击的跳板.以比特币系统为例,每笔交易被打包后需要经过 6 个区块的
                        确认才能真正上链,这明显无法满足部分服务场景对即时性交易的需求,所以部分商家推出零确认交
                        易服务,即用户在完成交易后无需等待确认便可获取服务,商家则需等待交易数据上链才可以获得相
                        应的费用.攻击者可以利用零确认交易的缺点,实施芬尼攻击:当攻击者挖到包含自己交易 A 的区块时
                        扣留该区块,然后就 A 对应的代币与商家完成零确认交易 B,并在 B 被确认前将包含 A 的区块广播至
                        全网.此时,交易 B 被验证为不合法,攻击者由此实现了双花攻击.与通过 51%攻击实现的双花攻击相
                        比,芬尼攻击的攻击成本远低于基于 51%攻击的双花攻击,因此相对常见.
                    (8)  种族攻击(race attack) [105] :种族攻击可以看作是一种进阶版的芬尼攻击,可以通过扰乱正常的交易顺
                        序来实现双花攻击.与交易顺序依赖攻击不同的是:交易顺序依赖攻击针对的是智能合约,而种族攻
                        击针对的是支持零确认交易的服务场景.如以太坊中,攻击者在与商家完成零确认交易 A 后,就 A 对应
                        的代币生成一个高 Gas 值的交易 B,“聪明”的矿工会优先将 B 打包进区块以获取最大化的利益,导致
                        零确认交易 A 验证失败,而攻击者已经提前获取了相应服务,实现了代币双花.

                 6.2   区块链交易场景中的攻击
                    随着部分国家对比特币的认可,出现了很多区块链数字货币、交易平台,形成了一套相对完整的区块链电
                 子货币金融体系.用户节点可以通过交易平台进行资产转换、投资等商业行为,也可以通过钱包账户进行点对
                 点的可信交易.多样的交易平台和用户账户中存在的安全漏洞,严重威胁着区块链用户的资产安全.
                 6.2.1    针对交易平台的攻击
                    交易平台是区块链电子货币金融体系中十分重要的一类实体,为区块链用户提供了进行各种商业行为的
                 场所.但由于用户的安全意识不足、系统潜在的安全漏洞等原因,交易平台面临隐私泄露、资产流失的风险.
                    (1)  弱口令攻击(weak password attack) [106] :实际中,用户可能出于方便记忆等原因,为自己的账户设置了
                        安全级别较低的密码,攻击者通过简单的猜测、穷举等方式,即可获取用户的账户访问权限.
                    (2)  撞库攻击(credential stuffing attack) [34] :用户由于安全意识不足,可能在不同的网站使用相同的账号和
                        口令.攻击者可以通过钓鱼攻击等手段收集与区块链、金融等相关网站上的用户账号和口令,然后在
                        目标交易平台上使用自动化程序逐个尝试,以获取该平台中用户的账户隐私信息.
                    (3)  穷举攻击(brute-force attack) [107] :如果网站不对登陆接口做请求限制或者风险控制,攻击者可以针对
                        目标值发送多次测试请求,尝试通过穷举攻击破解某些关键信息.如在短信验证中,若平台不对短信
                        验证码的有效期或验证接口进行限制,攻击者可以轻易对其完成破解.若平台对登陆接口未做请求限
                        制,攻击者可以通过大量的密码字典来暴力破解某个账户的密码.
                    (4)  API 接口攻击(application programming interface,简称 API attack) [108] :用户通常使用私钥 key,通过交易
                        平台中私有的 API 接口来执行一些敏感操作,如交易所新订单的确认、取消等.一旦 API key 泄露,很
                        可能导致用户账户蒙受经济损失.2018 年 3 月,币安网大量用户 API key 泄露                  [109] ,攻击者通过泄露的
                        key 直接操作用户交易,致一万余枚的比特币被用于购买其他币种,造成币市动荡.
                    (5)  单点登陆漏洞(single sign-on vulnerability) [110] :攻击者可以通过跨站请求伪造、跨站脚本攻击等手段
                        来窃取用户登陆的 Ticket,从而盗取目标用户账户中的资金.2017 年 10 月,OKCoin 旗下交易所出现大
                        量账户被盗情况       [111] ,损失金额超过 1 千万人民币.
                 6.2.2    针对用户账户的攻击
                    区块链钱包、交易所账户是用户参与区块链交易的重要工具,保管着大量的用户隐私和资产,是攻击者的
                 主要攻击目标.由于服务场景的多样性和复杂性,用户账户主要面临以下安全威胁.
                    (1)  钓鱼攻击(phishing attack) [37] :攻击者通过伪造网页、系统、邮件等形式,诱导用户进行一系列交易操
                        作,获取用户的钱包、交易所账户口令,进而盗取用户资产.
                    (2)  木马劫持攻击(Trojan horse attack) [112] :攻击者可以向用户主机中植入木马病毒,通过按键记录、hook
                        浏览器的方式来获取其账户和口令,从而盗取目标用户资产.2017 年 8 月,攻击者利用木马病毒
   281   282   283   284   285   286   287   288   289   290   291