EOS 假充值(hard_fail 状态攻击)红色预警细节披露与修复方案

区块链资讯慢雾安全团队2019-03-15 00:57:43  阅读 -评论 0
披露时间线
2019 年 3 月 10 日,我们捕获了 EOS DApp 上的一种新型攻击手法,一个帐号名为 fortherest12 的攻击者通过 hard_fail 状态攻击手法攻击了 EOS 游戏 Vegas town ,并造成了一定数量的损失。
2019 年 3 月 10 日,我们注意到出现了数量更多的 hard_fail 类型攻击。
2019 年 3 月 11 日,我们披露了相关的攻击手法,但是没有披露具体的攻击细节,并及时联系了相关的交易所以及项目方。
2019 年 3 月 12 日,我们发布红色预警,提醒交易所和钱包需要对 EOS 交易执行状态进行校验,必要时可暂停充提系统。
2019 年 3 月 13 日,预警得到 EOS New York 及 Block.one 的 BM 等核心成员响应及认可。
2019 年 3 月 14 日,细节正式公开。
漏洞细节
参考官方文档,可以得知 EOS 交易的执行状态存在多种,相应的类别及相应的描述分别为:
· executed:交易正确执行,没有触发 error handler
· soft_fail:交易客观失败(没有执行),但正确触发 error handler
· hard_fail:交易客观失败,但没有触发 error handler
· delayed:交易延迟/deferred/在队列中待执行
· expired:交易过期

此次的攻击手法就是利用了上述状态中的 hard_fail 状态进行攻击,在以前的开发过程中,许多开发者都不曾碰到过这种交易执行状态,常规的区块浏览器上也无法查询到相关的交易,造成了开发者缺少对这种交易状态的认知。开发中的惯常思维也是只有合约才能发起延时交易。但是,通过 cleos 中的具体参数配置 delay-sec 参数:

EOS 假充值(hard_fail 状态攻击)红色预警细节披露与修复方案

即使使用非合约帐号也能正常发起 delay 交易,针对使用中心化开奖的 DApp 项目方或使用中心化管理的交易所及钱包,如果没有对 EOS 交易的执行状态进行校验,就有可能出现 “假充值” 攻击,攻击者不需要付出任何成本,却可以获得大量的 EOS。这是一种全新的攻击手法,而且也是大家十分容易忽略的点,但是导致的危害却是巨大的。对于这种手法,我们已经捕获到真实攻击,并成功阻止了一起损失金额以人民币亿为单位的攻击及多起巨额损失。但遗憾的是,还是存在几起被成功攻击的事件,这个超出了我们的能力,我们的客户或伙伴只是这个生态里的一小部分而已。
基于上述情况,我们于 3 月 12 日发布了我们的红色预警,但由于我们的翻译不够严谨,在 EOS 社区引起了恐慌,让 EOS 社区误以为这是 EOS 的漏洞,我们对此致以歉意。EOS 社区的一些成员认为,只要交易所及钱包做好相关的检查,并不会出现此类问题。但是我们很难要求所有程序员都能写出最佳安全实践的代码,当出现不严谨的校验方式便会导致攻击发生。
经过我们的分析,我们更倾向于 transaction status 属于 EOS 的一种特性(features),历史上曾经出现多例与特性相关的 “假充值” 漏洞。
如我们主导披露的:
· USDT 虚假转账安全⻛险分析
· 以太坊代币“假充值”漏洞细节披露及修复方案
及我们参与披露的:
· XRP 官方披露的假充值漏洞及相关分析
这些问题都不是链自己本身的漏洞,但是由于链自己本身的特性的原因,以及开发者对此类特性校验的不严谨从而导致了攻击的发生。这就是我们为什么会发布红色预警。这不是恐吓(FUD),更像是一种容易被人忽略的攻击手法。此类攻击手法之前在 EOS 上没有相同的攻击案例,但在我们公布相关的攻击手法后,根据我们联合 EOSPark 的数据分析系统发现,已经有十几个帐号开始分别对 DApp、交易所以及钱包作出攻击测试,这些帐号有:
bobukulabobu
cuancuan2323
testsuperdex
zhangjiayiba
justjiezhan1
wnze2qwdiyne 
havls3k3iyge
ha11w4zzmpge
wkdoptxcjvdn
xmqukuailian
allosauruses
ccholr1ub2ku
walletthomas
fuckhakcer.x
johnwickteam
eosiotokenio
peospeospeos
eczpfezhvnrk
等等其他帐号
其中不乏攻击成功的帐号。因此,我们继续发出后续预警,提醒相关项目方做好防范措施。除此之外,Twitter 帐号 Whale Alert 也关注到了此类攻击行为。Whale Alert 官方帐号在 3 月 11 日发布推文称帐号 fuckhacker.x 转账 1 万亿 EOS,随后被官方证明为虚假交易。可见此次攻击波及范围之广。应引起足够的重视。
修复方案
针对此类型的交易,相关项目方以及交易所及钱包需要对 EOS 转账的执行状态进行校验,确保交易执行状态为 “executed”,除此之外,在区块不可逆的情况下,也要做到以下几点防止其他类型的 “假充值” 攻击的发生
· 判断 action  是否为 transfer
· 判断合约账号是否为 eosio.token 或其它 token 的官方合约账号
· 判断代币名称及精度
· 判断金额
· 判断 to 是否是自己平台的充币账号
后记 Q&A
Q:节点开启 read only 模式能防范此类攻击吗?
A:根据官方文档对 read only 模式的描述

EOS 假充值(hard_fail 状态攻击)红色预警细节披露与修复方案

节点开启 read only 模式后可以查询到线上记录并存在的确认的交易。而此类攻击手法是先发出 defer 交易,defer 交易是在链上保存的真实存在的交易,随后这笔交易才会转变成 hard_fail,所以开启 read only 模式并不能防御此类攻击手法。交易的状态是从 delay 转变成 hard_fail,并不是回滚,这是需要注意的地方。
Q:为什么我在其他的区块浏览器上,如 EOSX 等不能查询到 hard_fail 交易?
A:现有的查询交易是通过 EOS 的历史插件 history plugin 来查询的,而根据 history plugin 的代码实现

EOS 假充值(hard_fail 状态攻击)红色预警细节披露与修复方案

可以发现,除了 executed 和 soft_fail 交易外其他交易都无法查询到。
Q:是否使用 history plugin 获取交易即可避免此类攻击?
A:无法保证,不同的节点 history plugin 插件的实现方式不一,不排除节点提供方自己修改 history plugin 实现,导致查询到的交易存在除 exectued 及 soft_fail 外的其他状态。
Q:交易所及钱包等项目方平台该如何配置他们自己的节点免受攻击?
A:使用默认的 history plugin 配置,除此之外检查 EOS 转账的交易状态,确保交易执行状态为 “executed”。同时,也需要判断以下几点防止其他类型的 “假充值”
· 判断 action 是否为 transfer
· 判断合约账号是否为 eosio.token 或其它 token 的官方合约账号
· 判断代币名称及精度
· 判断金额
· 判断 to 是否是自己平台的充币账号
这些点都是曾在历史上出现过问题的点,我们认为 EOS 生态是一个很强大,灵活的全新的生态,从 EOS 主网启动以来,我们参与了许多的安全应急事件,开发者想在这个生态内安全的发展的确是一件充满挑战的事情。需要做好各方面的安全检查,才能确保资产不受损失。
结语
我们希望阅读此文的 EOS 生态中的用户不要模仿文中的攻击手法,我们无意对 EOS 社区造成恐慌。慢雾安全团队本着为 EOS 生态带来更多的安全感为宗旨,及时披露相关安全事件细节,目的是为了 EOS 生态中的更多成员获得安全保障。相关项目方应及时做好充提系统的安全保障,落实对应的风控策略,保障自身财产的安全。


致谢 EOSPark   IMEOS   [email protected] 钱包

声明:链世界登载此文仅出于分享区块链知识,并不意味着赞同其观点或证实其描述。文章内容仅供参考,不构成投资建议。投资者据此操作,风险自担。此文如侵犯到您的合法权益,请联系我们100@7234.cn

    参与讨论 (0 人参与讨论)

    相关推荐

    中信银行打造“区块链”信用证结算!

    中信银行打造“区块链”信用证结算!

    科技不会改变金融的实质,但却能让金融服务更高效,能让资金供、需方信息不对称的问题更好地解决。近期,中信银行首个区块链项目——基于区块链的国内信用证信息传输系统(简称BCLC)(一期)成功上线,这是国内银行业第一次将区块链技术应用于信用证结算领域。 据中信银行国际业务部总经理助理张栩青介绍,将现在流行的区块链技术应用在国内信用证中,改变了银行传统信用证业务模式,信用证的开立、通知、交单、承兑报文

    中国信息技术部门成立区块链研究实验室

    中国信息技术部门成立区块链研究实验室

    暴走时评:本月初,中国政府对国内的ICO和数字货币交易所的打击在世界范围内引起了强大反响,但政府已经多次声明不会将区块链与数字货币划等号,依然非常重视区块链技术在中国的发展。鉴于中国工业和信息化部成立了一个专门研究区块链的实验室,这一论调也得到了进一步的证实。 虽然中国政府最近在大力打击比特币交易所和ICO,但仍然致力于开发区块链在其他领域的潜力。 据财新网报道,中国工业和信息化部已经成立了一

     分布式账本中的生命科学

    分布式账本中的生命科学

    生物科学是医学领域涉及遗传研究,疾病预防和生活方式治疗(lifestyle treatments)的学科。它已经存在了很长时间,但区块链技术的基础设施应用给该学科提供了重大进步的可能性。 根据Pistoia Alliance进行的2016年6月份高级制药和生命科学领袖调查,83%的受访者表示,他们预计在五年内将全面采用区块链技术。 Pistoia Alliance是一个全球性的非营利组织,致

    区块链vs.核能:日本最大电力公司东京电力(TEPCO)寻求使用区块链减轻对核电的依赖

    区块链vs.核能:日本最大电力公司东京电力(TEPCO)寻求使用区块链减轻对核电的依赖

    东京电力公司 (TEPCO) 对于能源过度中心化的风险可以说绝不陌生。 也许最著名的就是2011年发生的福岛核电站事故,这个日本最大的能源公司如今正在寻求区块链技术来防止这种灾难再次发生。 然而,从使用微型风车的分布式风力发电到用于存储在电力成本低时购买的电力的智能电池,可替代能源项目一直以来都属于个人慈善事业。 然而,TEPCO风险投资部门主管Jeffrey Char认为区块链能够帮助为这

    继证监会发表代币发行声明之后,香港交易所Gatecoin将下线部分ICO币

    继证监会发表代币发行声明之后,香港交易所Gatecoin将下线部分ICO币

    经过一系列监管以及合规审查后,香港交易所Gatecoin将会下线那些被金融监管部门定性为"证券"的代币。 香港加密货币交易所Gatecoin透露,如果在该平台交易的ICO代币在法律上符合"证券"定义,他们就会下线这些代币。据巴比特上月报道,香港主要的金融监管部门证券及期货事务监察委员会(SFC)表达了对ICO这种日渐普及的募资模式的担忧。 尽管ICO中售卖的数字代币通常都被定义为虚拟商品,但

    IBM与超级账本共同加入去中心化身份基金会(DIF),推动创建区块链ID行业标准

    IBM与超级账本共同加入去中心化身份基金会(DIF),推动创建区块链ID行业标准

    IBM与超级账本已经签署协议加入去中心化身份基金会(DIF),这个于今年初成立的联盟旨在帮助推动基于区块链的ID系统的互操作性和标准。 这两个企业区块链大佬加入了这个有各种企业组成的团体,其中包括像微软和埃森哲这样的大企业,还有像Civic和Gem这样的创业公司,以及像uPort和Sovrin这样的开源项目。 DIF执行主管告诉Coindesk说: "这应该是一个信号,表明在这一领域有广泛的

    为打击人口贩卖,牙买加警方盯上了犯罪分子的比特币钱包

    为打击人口贩卖,牙买加警方盯上了犯罪分子的比特币钱包

    作为打击人口贩卖计划的一部分,牙买加警方已经开始行动,锁定了那些试图用比特币和数字支付来掩人耳目的犯罪分子。 越来越多的人口贩卖者都开始转向数字货币来帮助他们进行地下活动并接收非法活动所得,但牙买加警方已经盯上他们了。 牙买加的'大生意' 不幸的是,人口贩卖以及性奴市场规模十分庞大,预计涉资1500亿美元。在牙买加,大约有7000个妇女、儿童以及成年男性被奴役,他们的操控者出售奴役服务的价格

    深圳市将发布《深圳市扶持金融业发展若干措施》,奖励区块链、数字货币等金融创新

    10月9日,深圳市人民政府向各区人民政府,市政府直属各单位印发《深圳市扶持金融业发展若干措施》(以下简称"《若干措施》")。深圳市政府表示,此举是为进一步完善金融支持政策体系,吸引集聚优质金融资源,推动全市金融业可持续均衡发展,加快建设国际化金融创新中心。 《若干措施》共分五大项,33条。内容包括:坚持服务导向,优化金融政策环境;发展金融总部经济,鼓励金融总部企业做大做强;支持金融企业分支机构

    麦妖榜
    更新日期 2019-05-24
    排名用户贡献值
    1BitettFan23907
    2等待的宿命23809
    3六叶树20309
    4区块大康17751
    5天下无双16192
    6linjm122714974
    7lizhen00214933
    8让时间淡忘14390
    9牛市来了11470
    10冷风大q11188
    返回顶部 ↑