前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >虚拟币钱包平台安全防护解决方案

虚拟币钱包平台安全防护解决方案

作者头像
网站安全专家
发布2019-07-24 11:43:03
8550
发布2019-07-24 11:43:03
举报
文章被收录于专栏:网站漏洞修复网站漏洞修复

区块链是目前比较火热的话题,纵身而出的虚拟币也越来越多,比特币,以太坊,瑞波币,莱特币,狗狗币,门罗币都是基于区块链而生的虚拟货币,在监管以及匿名,安全方面受到众多人的喜欢,很多虚拟币交易平台,以及交易所网站也越来越多,国内像火币网,币安,比特儿,币行网,可赢可乐都是目前较火的交易所。

目前我们SINE安全在对虚拟货币进行安全检测以及安全分析,关于2018年以太坊被爆出的合约漏洞,我们来详细的跟大家介绍一下,首先查看之前的以太坊代码,对其仔细的人工检查发现该以太坊漏洞主要是程序员在设计代码的时候,对合约安全进行判断出了差错,导致攻击者利用绕过判断进行攻击。

我们看下合约代码:截图如下

从上面的合约代码看出,代码的主要功能是对转币的函数,以及虚拟币账户的余额,用户授权操作,以及提币操作函数的,在整个代码中使用判断来进行约束以太坊币的交易状态,从第188行里还看到使用了一些场外交易中的外币功能,使用该函数可以将外币统一起来提币到钱包地址进行转账操作。那漏洞是怎样发生的呢?该如何安全防范?我们接下来继续讲:

上面提到的函数是用户在转币的过程中,对传入的参数值没有进行金额的大小限制,不管多少金额都可以转到用户的钱包中去,如果转币的金额达到5以上就会自动的对虚拟币金额进行设置,有一套以太坊自己的算法,将自身钱包余额加上这个金额就等于目前钱包的所有金额,漏洞的发生也在这里。

转账使用的是token机制,每个用户的token值都不一样,我们侧重的看下转账功能函数,由于转账函数处理算法中出现安全问题才导致了漏洞的发生。看如下图:

上面的图片代码主要功能是转账,转币,我们看下代码里写的判断条件,当转币人自身的金额大于转币的金额的时候,参数值会为1,并有个附加条件就是要满足这个balances的值为0.能满足这个条件的只有溢出参数了。我们来测试看下图:

达到这个条件就是 转币人的余额要小于转币的金额。每次转币都会导致账户多出很多币来,针对于这种以太坊漏洞合约的程序员真应该好好的检查反省自己的代码逻辑判断问题,由于判断条件写的太过于疏忽才导致该虚拟币漏洞的发生,很容易被攻击者用来入侵,转币等危险的操作。

关于虚拟币交易平台安全防护方面,建议程序员在设计代码过程中,多次的测试,在上线之前找专业的网站安全公司进行安全渗透测试,对漏洞测试,漏洞挖掘,多层面的找漏洞,直到没问题,再投入到平台当中去,使整个虚拟货币更加的安全规范化,国内也就SINE安全,绿盟,启明星辰等安全公司比较专业一些。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
区块链
云链聚未来,协同无边界。腾讯云区块链作为中国领先的区块链服务平台和技术提供商,致力于构建技术、数据、价值、产业互联互通的区块链基础设施,引领区块链底层技术及行业应用创新,助力传统产业转型升级,推动实体经济与数字经济深度融合。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档