链闻ChainNews:
在传统的桌面windows攻防对抗领域,伴随着微软和合作伙伴对软件开发流程推行SDL规范,同时对安全投入的逐步加大,单一的封包超长和文件特定字段内容超长导致的溢出漏洞在一些大型软件里几乎绝迹。目前,零星剩下了一些整数类的漏洞。如去年的nginxcve-2017-7529。而区块链方向,比较早的整数溢出类漏洞可追溯到2010年的比特币大整数溢出,CVE-2010-5139,黑客通过整数溢出构造了大概92233720368
?//0-1=2**256-1functionunderflow()returns(uint256_underflow){uint256min=0;returnmin-1;}}
在线测试工具中编译运行结果如下。
可以看到uint256当取最大整数值,上溢之后直接回绕返回值为0,uint256当取0下溢之后直接回绕,返回值为2^256-1。这是solidity中整数溢出场景的常规情况。
火星云矿总裁商思林:Filecoin短期很难与云存储巨头竞争,但长期看好:IPFS100.com现场报道,8月3日,由IPFS100.com主办,CapitalN节点咨询承办,金色算力云联合主办,深圳市先河系统技术有限公司金牌赞助,逆熵科技银牌赞助,金色财经作为联合主办媒体的星际漫游指南·逐鹿中原·IPFS技术与应用研讨论坛在郑州举行。
在主题为《纯粹的技术信仰与炽热的代币激励》的圆桌环节,火星云矿总裁商思林表示,目前云存储上的商用非常成熟,Filecoin短期很难正面竞争。不过,在增量市场里面 ,Filecoin的效率和隐私性可以助其在市场占据一席之地。如果Filecoin要想真正的爆发和应用,还需要基于区块链诞生原生的去中心化应用。[2020/8/4]
1
functiondiv(uint256a,uint256b)internalconstantreturns(uint256){//assert(b>0);//Solidityautomaticallythrowswhendividingby0uint256c=a/b;//assert(a==b*ca%b);//Thereisnocaseinwhichthisdoesn'tholdreturnc;}
声音 | 火星人许子敬:比特币才是数字资产中真正的王者:火星人许子敬在微博中表示,如果在MakerDAO的基础上更进一步,将比特币加入一揽子抵押物的范畴,那么稳定币才能真正的稳定,毕竟比特币才是数字资产中真正的王者。不久的将来,伴随着跨链技术的进步,智能合约应用的稳定,去中心抵押借贷平台的发展,我们最终会看到,技术以水滴石穿的力量,将整个近代金融系统彻底颠覆。 ????[2019/7/30]
functionsub(uint256a,uint256b)internalconstantreturns(uint256){assert(b<=a);returna-b;}
functionadd(uint256a,uint256b)internalconstantreturns(uint256){uint256c=ab;assert(c>=a);returnc;}}
可以看到相关的可能产生溢出的操作都单独封装成函数,加入assert断言做判断避免溢出。调用SafeMath库的方法如下。
火星财经完成新一轮融资 策源资本和火币生态基金投资:新加坡举行的WBF世界区块链大会三点钟峰会上,火星财经发起人王峰对外透露,火星财经刚刚完成A+轮融资。此轮融资由策源资本领投,火币全球生态基金跟投,投后估值3.3亿元。[2018/6/8]
2.SMT合约中的整数安全问题简析
与大型软件或者操作系统动辄十万行甚至千万行代码不同,智能合约的代码行数通常不多,功能也不是很复杂。一起来看下SMT合约的相关代码。
SMT的合约地址是https://etherscan.io/address/0x55f93985431fc9304077687a35a1ba103dc1e081#code问题存在于transferProxy()函数代码如下
在进行加法操作的时候没有采用Safemath库进行约束。_feeSmt参数和_value参数均可以被外界进行控制,_feeSmt和value均是uint256无符号整数,相加后最高位舍掉,结果为0。
SMT最新公告:“以太坊智能合约溢出漏洞事件”已经得到全面控制:据SmartMesh(SMT)官方微博公告,此次“以太坊智能合约溢出漏洞事件”已经得到全面控制。对于此次溢出事件流出的“假币”,SMT基金会承诺将从公开流通市场进行回购,并进行销毁。[2018/4/27]
直接溢出绕过代码检查导致可以构造巨大数量的smt代币并进行转账。
攻击者的恶意转账记录可以从如下链接进行看到。https://etherscan.io/tx/0x1abab4c8db9a30e703114528e31dee129a3a758f7f8abc3b6494aad3d304e43f
3.BEC合约中的整数安全问题简析
BEC的合约地址是0xC5d105E63711398aF9bbff092d4B6769C82F793D,合约代码可以访问etherscan的如下网址进行查看https://etherscan.io/address/0xc5d105e63711398af9bbff092d4b6769c82f793d#code。代码一共是299行。
SMT最高价格达0.80元 涨幅达71.98%:根据火币pro数据显示,SMT最高价格达0.80元,最低价格为0.46元。涨幅达71.98%。现价报0.8元。[2018/1/4]
问题函数如下图。
可以看到batchTransfer函数中,语句balances=balances.sub(amount)和balances]=balances].add(_value)中,调用Safemath库中的安全函数来完成加减操作,但是在第三行代码,uint256amount=uint256(cnt)*_value却直接使用乘法运算符。
其中变量cnt为转账的地址数量,可以通过外界的用户输入_receivers进行控制,_value为单地址转账数额,也可以直接进行控制。乘法运算溢出,产生了非预期amount数值,并且外界可以通过调整_receivers和_value的数值进行操控。紧接着下面有一句对amount进行条件检查的代码require(_value>0&&balances>=amount);其中balances代表当前用户的余额。amount代表要转的总币数。代码意思为确保当前用户拥有的代币余额大于等于转账的总币数才进行后续转账操作。因为通过调大单地址转账数额_value的数值,amount溢出后可以为一个很小的数字或者0,很容易绕过balances>=amount的检查代码。从而产生巨大_value数额的恶意转账。
攻击者的恶意转账记录,可以从如下链接看到https://etherscan.io/tx/0xad89ff16fd1ebe3a0a7cf4ed282302c06626c1af33221ebe0d3a470aba4a660f。
可以从代码totalSupply进行看到,bec代币总量共计才7000000000枚。
但是攻击者通过溢出amount绕过后续require中的判定条件分别向两个地址恶意转账了57,896,044,618,658,100,000,000,000,000,000,000,000,000,000,000,000,000,000,000.792003956564819968枚bec代币。
4.合约整数漏洞事件总结
单纯从技术上来说,smt和bec的本次合约的漏洞成因和利用都不复杂,均是通过构造恶意的整数溢出绕过条件检查。相信以太坊生态下的其他数千种代币的合约也不同程度的存在类似的整数漏洞安全隐患,由于Solidity合约是直接跟钱打交道,合约的安全开发和审计值得ICO项目方和Solidity开发人员投入更多时间和精力,确保合约的安全性。
参考链接:https://ethereumdev.io/safemath-protect-overflows/https://zhuanlan.zhihu.com/p/35989258?utm_medium=social&utm_member=ZjZlYmQ1MGZkMjZjZmJkNTE4MGFmMmExZjA5NTM0NmE=&utm_source=wechat_session&wechatShare=1&from=timeline&isappinstalled=0
更多精彩内容,关注链闻ChainNews公众号,或者来微博@链闻ChainNews与我们互动!转载请注明版权和原文链接!
来源链接:www.8btc.com
本文来源于非小号媒体平台:
链闻研究院
现已在非小号资讯平台发布1篇作品,
非小号开放平台欢迎币圈作者入驻
入驻指南:
/apply_guide/
本文网址:
/news/3626905.html
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表非小号的观点或立场
下一篇:
文摘|确保加密货币安全的十条戒律
时代周报记者谢洋 在当前全球资产避险情绪浓厚的背景下,加密货币比特币的前景仍是疑云重重。5月1日,尚处于5317美元低位的比特币,在此后半个月内强势上行,不仅冲破8000美元关口,甚至一度逼近8.
老挝人民民主共和国银行警告商业银行、企业和公众不要购买、出售或使用加密货币进行货币交易,因为这种做法是非法的.
尊敬的BITKER用户:BITKER将于2019年4月30日17点正式开放CPROP/USDT和CPROP/BTC交易对。充币已经开启,提币将在5月1日开启.
火星财经APP一线报道,5月20日,Bibox官方推特发布消息称,Bibox欧洲将持牌上线。Bibox联合创始人AriesWang在Medium中表示,Bibox欧洲是一家接受全面监管的创新区块.
截至05月21日10时,8BTCCI指数报13778.94点,远高于纳斯达克综合指数,自发布日起全球Token市场表现好于证券市场表现.
LEO已于北京时间5月20日16:22正式开放交易,在开盘一分钟后爆拉11倍,但1分钟后便回到1.2美元附近,截止发文已经触及1美元发行价,已现破发风险.