7月4日晚间,区块链安全公司PeckShield发出安全警告称:发现某个数字货币交易所提供的场外OTC平台存在名为“tradeRifle”的安全漏洞,攻击者可利用此漏洞介入数字货币交易流程,窃取平台用户的数字资产,给用户和交易所带来严重的安全威胁。
7月5日午时,该交易所官方发出公告称,接到安全机构PeckShield发出的名为“tradeRifle”的场外交易平台漏洞报告,其安全团队已经完成对该漏洞的紧急修补。未对其场外交易平台的运行及用户资产安全造成影响。
现如今,数字货币交易所在区块链金融交易体系中扮演着极为重要的角色,OTC交易所提供一种更简单的法币与数字货币之间的线下交易方式,但正因为如此,线下交易存在的安全风险也会更大。PeckShield通过对多个顶级OTC交易所的分析,发现该交易所OTC 移动端存在一种“中间人攻击”的安全漏洞,我们将之命名为“tradeRifle”,具体表现为:
- 攻击者可以窃取买家/卖家敏感交易信息,修改并重放数据报文来模拟发出特权指令;
- 攻击者可以通过中间人攻击的方式伪造商家银行账号给已下单的买家,以骗取本用于支付订单的法币。
在披露详细攻击细节前,值得一提的是,我们在7月4日发出漏洞预警后,该交易所安全团队迅速做出回应,并在我们的技术支持下迅速修复了此漏洞,并未给用户带来直接损失。
“tradeRifle”攻击细节:
如图1所示,正常OTC交易流程,买家需要发起三个连续请求给OTC服务器以创建订单并获取卖家信息,之后买家可给卖家银行账户转账。支付操作完成买家再向OTC服务器发送付款成功通知并由服务器转发给卖家。卖家收到通知,确认法币到账后释放数字货币给买家,至此一笔买币交易流程结束。
( 图1: 正常OTC交易流程)
然而,图1中所有数据传输都是通过http而不是安全协议https实现,通讯过程很容易受到中间人攻击和重放攻击,举例来说,如图1中所示的Bank Info 请求报文部分,可以发起中间人攻击篡改银行卡信息,使买家在以为在给商家转账时却将法币转入攻击者账号而无法获得数字货币(如图2所示)。
(图2: 伪造卖家的银行信息)
图3显示了买家发送的http请求,用于在攻击测试中查询卖家的银行信息。
(图3: 买家查询卖家支付信息)
图4是JSON格式的数据查询结果。
(图4: 返回JSON数据格式的卖家账户信息)
由于OTC服务使用的是http明文协议,攻击者可以很容易篡改服务端返回的银行帐户信息(如图4红框所示)。另一种是重放攻击,攻击者可通过此攻击对卖家直接造成严重的数据资产损失。下面我们继续介绍它的工作原理。先通过通过窃听一个卖家确认放币的操作,攻击者可以获取卖家的Token和密码(如图5所示)。
(图5:卖家确认付款后的放币请求)
此后攻击者可以对该受害者卖家进行另一笔交易(如图6所示),攻击者可以自己释放受害者卖家在售的所有数字货币资产。
( 图6:冒充卖家的重放攻击)
关于我们
PeckShield是面向全球的业内顶尖区块链安全公司,以提升区块链生态整体的安全性、隐私性及可用性为己任。商业与媒体合作(包括智能合约审计需求),请通过telegram(https://t.me/peckshield)、twitter或电子邮件([email protected])与我们联系。