加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 访谈 > 正文

我转了一次账,丢了10倍的钱

发布时间:2018-08-16 00:27:02 所属栏目:访谈 来源:宅客频道
导读:小宅是一家互联网公司的小职员,区块链还没火起来的时候他买了点币,火了之后也算个玩币玩家。 币圈不好混,被割韭菜的也多,谁都不知道接下来会踩着什么坑。小宅人老实,从不做那些靠币致富的美梦,谁知道还是悲剧了。 事情的起因是小宅要给另一个币友转
副标题[/!--empirenews.page--]

小宅是一家互联网公司的小职员,区块链还没火起来的时候他买了点币,火了之后也算个玩币玩家。

币圈不好混,被割韭菜的也多,谁都不知道接下来会踩着什么坑。小宅人老实,从不做那些靠币致富的美梦,谁知道还是悲剧了。

事情的起因是小宅要给另一个币友转账,没有以太坊,就找有以太坊的玩家通过代理方式转账,结果不出半天发现除了转出给币友的钱(token),自己账户在另外两个代币的钱(token)也飞了。

小宅斯巴达了,查了半天怎么都不知道这币飞去了哪。


技术细节

相比其他DEFCON上的议题,这个议题有点“另类”,用郑玉伟的话说就议题内容组织是太学术性了。

“DEFCON上大多是破解秀这种很有意思的议题,我们则更像一个学术课题。”虽然被吐槽议题过于严肃,但郑玉伟演讲完走下舞台时候还是被其他白帽子们包围了。

我转了一次账,丢了10倍的钱

重放攻击这个词谁都听着熟,指的就是身份欺诈,主要被用作报文的重放。智能合约这个热词听着也熟,懂不懂区块链的都能扯上智能合约,但这两个词加在一起就是新鲜的攻击手段了。据郑玉伟小哥说,他们团队发现以太坊上一些智能合约由于签名设计不当,存在被重放攻击可能。

具体来说,有一个场景,假如有两个用户,A给B转帐,而A没有以太坊,所以通过委托代理C来转账。A在委托代理转帐的时候会调用transferproxy这个接口,这个接口会用到一个签名。由于这个签名内容的设计存在问题,导致签名可以被重复使用。此时攻击者可以在另一个合约上重放这个交易将A在这个合约上的token转走。

“我们用自己的账户在存在漏洞的其中两个合约进行实验验证,由于实验中的两个合约在委托代理交易时签名的内容相同,攻击者通过重放交易成功的从发送者那里获得了双份收入。”实现该攻击的白振轩小哥说道。

举个“栗子”,一个用户A他在北京银行有一个账户,在招商银行也有一个账户,现在他通过银联(代理角色)在北京银行给另外一个用户B转帐。由于转账时的签名内容存在问题,这笔交易发送给招商银行也会被确认,这样,A在招商银行也会给B转出与北京银行相同的金额。

在区块链上的所有交易都是可以查到的,谁在某时间通过代理的方式做了一次转帐交易轻易就能得知,在查到之后可以提取相应的签名就可以对其发起攻击。实际上这里的签名内容和代理是谁并无关系,作出一个新的代理替换之前的代理,只要受害者在第二个合约上有token就可以转走了。

这也就是小宅只是通过代理转了一次账却莫名其妙其他账户里的钱也飞了的原因。


发现过程

说起来,整个议题的准备过程都很“赶趟儿”,就是时间紧。

今年4月初的时候,郑玉伟和一位研究区块链开发的朋友聊到了一起,两人一合计:你熟悉区块链开发过程,我熟悉安全分析技术,那何不把这两个方面结合在一起搞搞看?

两人开始先瞄准的是雷电网络,闪电网络这些协议层面,找了一圈没有收获。于是把目光转向了签名范围这个方向,发现签名设计的很多合约都有问题,接着往下研究还真有事儿。

他们先从以太坊提供的ERC20接口,发现接口在使用 Ecrecover 这个API时候可能会存在一些问题,然后针对这些条件进行扫描,机器筛选后又进行了人工审计,最终筛选出来有问题的52个合约。

这52个有问题的合约都可以被发起上面提到的重放攻击,据说根据网络上部署的有漏洞的签名内容相同的合约数量,特定情况下,攻击者甚至可获得10倍以上的收入。

为什么是10倍?

“我们将这52个合约按照签名设计分组,只有签名内容完全一样才划分成一组,同一组之间可以互相重放。”郑玉伟告诉宅客频道。

其中有10个合约的签名设计完全一样,除了包含A的账户信息,B的账户信息以及每次的转账的token数量,手续费,以及nonce外,没有额外附加信息。至于剩下的合约则在签名内容中添加了特定字符串,字符串相同的合约之间可以进行重放攻击。

发现了这种攻击方式以后,他们有意参加当年的DEFCON大会,眼看着5月1号就是议题征集截止日期。

拼一把!

四人小团队分工明确,4月20号左右开始验证攻击,全部验证完成之后已经到了4月28号,此时议题报告还没写,于是团队某位博士小哥哥被大家推了出去,赶在5月1号截止之前提交了议题。

8月11日,郑玉伟在DEFCON演讲这个选题。据说前几天他们团队做了一个统计,利用代理转账的交易有多少,扫描结果显示有三百四十多条。这个数字在庞大的交易中其实九牛一毛,从这三百四十多个交易中再筛选出处于同一组合约可能发生重放攻击的交易更少,也就是说目前尚没发现在野利用。

但仍然存在很大风险,在知道某个账户在存在漏洞合约上token数量很多的情况下, 攻击者甚至可以依照漏洞合约依葫芦画瓢部署一个新合约, 诱导用户,例如通过赠币帮忙测试的形式,在自己的新合约上做一次代理转账,就可以通过重放的方式,将用户在漏洞合约上的token都转走。倘若有人动了歪脑筋,那又会多一大批“天台伙伴”。

我转了一次账,丢了10倍的钱

这种针对智能合约的重放攻击是否有修复方式?

郑玉伟表示,防护上,由于智能合约代码即是法律的特性,一旦部署不可更改。所以对于用户而言,确保在有漏洞的的合约上不要留余额。对于合约发行方而言,只能发行新合约,在新合约中修复漏洞,将原合约的用户迁移走。

我转了一次账,丢了10倍的钱

▲郑玉伟


这届黑客大会还有啥?

世界顶级信息安全会议BlackHat和DEFCON刚刚在美国拉斯维加斯落幕,有意思的议题还有很多。

比如360无线电安全研究部的两位小哥哥曹鸿健、秦明闯带来的Ghost Tunnel(“幽灵隧道”)攻击就是一种适用于隔离网络环境下的传输方式,利用wifi无线信号来传输数据。

攻击者利用GhostTunnel 与目标设备建立一个“隐蔽隧道”,在目标完全无感知的情况下与其进行数据通信。它可以通过USB-HIB把攻击的程序释放到目标上去,并植入木马或者窃取文件。

具体来说,不论是windows 还是苹果、安卓,都有管理无线网络或者进行网络传输的一套系统API,这个系统API通过接口(API)可以操作wifi模块,并发送一些数据包(收发无线数据包)。API是系统,把程序植入到系统可以应用USB,然后利用系统去操作(恶意代码通过HID方式植入到系统并,利用系统API操作,整个过程被攻击方是无感知的,无法从wifi网络状态看出任何问题)。整个过程另一方是无感知的,通过wifi列表看不出来任何问题。

也就是说,只要掌握这种方式,你就可以轻易从图书馆后桌妹子电脑上窃取一波资料,如果里面有她的简历之类的更“收获颇丰”。

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读