LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 行情分析 > 比特安审计交易所逻辑漏洞统统无所遁形

比特安审计交易所逻辑漏洞统统无所遁形

2021-08-03 比特安 来源:区块链网络

没有一个系统是绝对安全的,你所信任的交易所也是!随着比特币问世,最早的加密货币交易所Mt.Gox的成立,交易所钱包存储的过多资金,成为了黑客眼中的“肥鱼”。但即使发展至今,数字资产交易所的安全问题仍然没有完全解决,网络安全问题一直是数字货币的老生常谈。

所以对于交易所来说,一个逻辑完备,鉴权完整的交易流程必不可少。业务逻辑漏洞独立于其他服务却又容易受到其他安全问题的牵扰。与SQL注入、XSS等常规web安全漏洞不同,业务逻辑漏洞使用正常的业务流程中的程序固有不足,逻辑设计缺陷等进行攻击,甚至绕过已有安全防护措施,一般防护手段以及安全设备无法防御,因此业务逻辑漏洞一直困扰着广大开发者和安全测试人员。

这里给出在经过大量对交易所安全测试后总结出的详细的测试条目,拿出具体案例和大家一起分析存在的安全问题。

测试列表

1.?越权操作测试

订单越权发起、查看、编辑、删除

地址越权添加、删除

用户信息越权查看、编辑

2.?工作流程绕过测试

3.?KYC认证缺陷测试

接口识别

人工识别

4.?OTC逻辑缺陷测试

5.?数值精度测试

6.?资产安全测试

充值

提现

7.?二次验证绕过测试

Google验证器

手机及邮箱验证码

8.?盘口价格设置缺陷测试

9.?假充值测试

10.?短地址攻击测试

11.?数值精度测试

案例分析

越权操作

越权(或者说权限提升,Privilege Escalation)是指攻击者能够执行他本身没有资格执行的一些操作,属于“访问控制”的问题。

可能是因为开发人员热衷于打破樊篱 ,所以越权一直是Web安全中老生常谈的问题,并且由于订单、地址、余额和个人信息等等功能的聚集,交易所是越权问题的重灾区。越权漏洞一般分为平行越权和垂直越权两种,而交易所中平行越权占大多数,不仅可以导致越权查看、修改、撤销订单,添加、删除地址以及修改个人信息,而且配合存在的信息泄露问题,可以变相的获取所有用户的KYC信息,因为是正常请求,比起脱裤更难被WAF所发现。

工作流程绕过

常见缺陷为无验证步骤跳跃,出现的场景一般为密码重置步骤和支付步骤。

这里简单分析一下一起由于越权、信息泄露以及工作流程绕过,导致的盗币事件的攻击手法。

攻击者在某交易所前端文件中发现了转账时所调用的API接口。按照流程,用户验证身份通过后调用此API转账,但由于验证在前,转账在后,两者并非同时进行,导致攻击者直接调用转账API接口发起转账可以直接绕过身份验证并且可以越权其他用户进行转账。

造成本次攻击事件的主要原因有三:

1.?前端文件泄露API接口

2.?交易时验证逻辑可被绕过

3.?未能做好鉴权措施

暴露意味着更大的攻击面。隐藏好自己的信息,完备逻辑,完整鉴权,来应对潜藏的威胁。

KYC认证缺陷

KYC全称Know your customer即充分了解你的客户,不仅要求实行账户实名制,了解账户的实际控制人和交易的实际收益人,还要求对客户的身份、常住地址或企业所从事的业务进行充分的了解,并采取相应的措施。

认证作为交易所的重要功能之一,认证方式也百花齐放,常见的有身份证正反面照片,手持身份证照片,手持身份证视频等等。而认证方式有人工识别和接口识别两种,人工识别的准确性取决于审核员当天的心情以及前一天的睡眠,PS加AI换脸的手持身份证照片一般来说可以轻松通过。对于调用接口来进行识别的,有使用百度识图接口来验证,判断身份证照片上的身份证号以及姓名与用户输入的是否相同,来判断是否通过;有需要用户自己掏两块钱来审核的支付宝的人脸识别接口。

OTC逻辑缺陷

OTC:场外交易市场,英文全称Over-the-counter,因为采取在银行柜台上向客户出售股票的做法,被称柜台交易市场。又因为这种交易不在交易所里进行,也叫做场外市场或店头市场。?对于交易所来说,OTC指的是用户依托交易所的担保,卖家和买家进行交易。

正常OTC交易流程为:

商家卖币 => 买家购买币并支付 => 商家确认收款 => 系统转账到买家

而攻击者通过越权:

商家卖币 => 攻击者购买币并不支付 => 攻击者通过越权点击商家的确认收款 => 系统转账到买家

此类问题在比特安对交易所客户进行安全审计时多次出现,对交易所带来直接的经济损失。

二次验证绕过

在安全审计过程中,交易所的二次验证有使用Google验证码以及手机和邮箱验证码,二次验证就是为了保障用户账号安全,已经敏感操作的确认,但是由于设计缺陷将导致二次验证形同虚设。

例:某两家交易所用户账号存在的漏洞

1. 前端先向登陆接口发送登录请求,并且返回身份Token信息;

2. 然后再弹框进行验证码二次认证。这样的验证步骤导致用户可以通过之前接口返回Token成功登陆账户,不需要二次验证就被“巧妙”绕过。

在工作流程绕过中谈过,如果支付验证与转账操作分为两步进行,就一定需要在转账时对当前用户进行验证以及鉴权来防止绕过和越权。比特安审计对大量交易所进行安全审计时发现,大部分交易所进行转账等敏感操作二次验证时,将验证操作与转账操作通过不同接口隔离实现,导致验证码结构脱离转账操作,失去二次验证的效果;部分交易所虽然服务器验证了手机号与短信验证码的有效性,但是并未验证手机号是否为当前用户所绑定,换句话来说,修改数据包就可以达到使用任意手机号进行验证,从而任意提币;还有更难解释的将验证码填空即可绕过验证。

盘口价格设置缺陷

2019年8月23日,由于AWS东京机房硬件设备故障,导致无法连接到服务。部分交易所因使用其他交易所错误的价格数据导致币价出现剧烈波动,BTC成交价最低为0.32USD/BTC,ETH以及EOS均受到影响。

这是在上游错误的情况下,没有对数据的有效性进行判断,直接使用导致损失的出现。在传统安全行业我们称之为供应链攻击,一旦上游的数据、厂商被劫持,修改,对下游没有做好防护措施的交易所将会造成降维打击。

业务逻辑,顾名思义,重点便在逻辑上面,因为最大的安全漏洞并不是存在于什么程序或者服务器内,人类才是最大的漏洞。开发人员拥有缜密的逻辑思维,才能更好的避免出现漏洞,更好为广大网民提供安全保障。

—-

编译者/作者:比特安

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...