假usdt怎么来的,假usdt怎么转

  

  Bianews月11日消息,据悉,近日以太坊代币“假充值”漏洞影响非常广泛,受影响的对象至少包括:相关的集中交易所、集中钱包、代币合约等。据慢雾不完全统计,存在“假充值”风险的单笔代币合约有3619笔,其中不乏知名代币。由于影响,慢雾采取了负责任的披露流程。本次攻击披露前后的相关时间线大致如下:   

  

  2018/6/28慢雾区情报,USDT“虚假充值”漏洞攻击事件披露   

  

  2018/7/1慢雾安全团队开始分析知名公链是否存在类似问题。   

  

  2018/7/7慢雾安全团队捕获并确认以太坊相关的token“虚假充值”漏洞攻击事件。   

  

  2018年7月8日,慢雾安全团队分析出可能比USDT影响更大的“虚假充值”漏洞攻击事件,并迅速通报了慢雾区域的相关客户和合作伙伴。   

  

  2018/7/9慢雾区对外发布首个预警   

  

  2018/7/10慢雾安全团队将详细信息同步到至少10个区块链生态安全同行   

  

  2018/7/11详细报告正式公开   

  

  漏洞详细信息:   

  

  以太坊令牌交易回执的状态字段是0x1(真)还是0x0(假),取决于交易执行过程中是否抛出异常(例如使用require/assert/revert/throw等机制)。当用户调用令牌合约的转账函数转账时,如果转账函数运行正常,没有抛出异常,则交易状态为0x1(true)。   

  

  如图代码所示,部分代币合约的转账函数用if判断法检查转账发起方(msg.sender)的余额。balances _value时进入else的逻辑部分并返回false,最后不抛出异常。我们认为只有if/else这种温和的判断方法,在transfer等敏感的函数场景下,才是不精确的编码方法。而大多数代币契约的传递函数会采用require/assert模式,如图所示:   

  

  不满足条件时会直接抛出异常,中断契约后续指令的执行,或者也可以使用EIP 20推荐的if/else revert/throw函数组合机制来显示抛出的异常,如图:   

  

  慢雾所有程序员都很难写出最佳安全实践的代码。这种松散的编码方式是一种安全缺陷,在特殊场景下可能会导致安全问题。攻击者可以利用这个缺陷的令牌合约向集中交换、钱包等服务平台发起充值操作。如果交换机只判断TxReceipt状态为成功(也就是上面说的状态为0x1(真)),就会假设充值成功,可能存在“虚假充值”漏洞。如图所示:   

  

     

相关文章