主页 > tp钱包导入imtoken > EOS假充值(hard_fail状态攻击)红色预警详情披露及修复方案

EOS假充值(hard_fail状态攻击)红色预警详情披露及修复方案

tp钱包导入imtoken 2023-09-27 05:09:54

qq查询转账记录_usdt转账记录查询_农行网银转账记录查询

by 慢雾安全团队

披露时间表

漏洞详情

参考官方文档,我们可以知道EOS交易有多种执行状态,对应的类别和对应的描述是:

executed:事务被正确执行,没有触发错误处理器

soft_fail:事务客观上失败(未执行),但正确触发了错误处理器

hard_fail:交易客观上失败了,但没有触发错误处理器

delayed:交易被延迟/延迟/在待执行队列中

过期:交易过期

这次的攻击方式是利用上述状态中的hard_fail状态进行攻击。 在之前的开发过程中,很多开发者都没有遇到过这种交易执行状态,而常规的区块浏览器无法查询到相关交易,导致开发者对这种交易状态缺乏认知。 开发中通常的思路是只有合约才能发起延迟交易。 但是在cleos中通过具体的参数来配置delay-sec参数:

qq查询转账记录_usdt转账记录查询_农行网银转账记录查询

即使您使用非合约账户,您也可以正常发起延迟交易。 对于使用中心化彩票奖品的DApp项目方或使用中心化管理的交易所和钱包,如果不验证EOS交易的执行状态,可能存在“虚假充值”攻击,攻击者无需支付任何费用,但可以获得大量EOS。 这是一种全新的攻击方式,也是很容易被大家忽视的一点,但是造成的危害却是巨大的。 对于这种方法,我们已经捕捉到了真实的攻击,并成功阻止了一次损失达1亿元人民币的攻击,以及数次巨额损失。 但不幸的是,还有几次被攻击成功的事件usdt转账记录查询,这超出了我们的能力范围,我们的客户或合作伙伴只是这个生态中的一小部分。

基于以上情况,我们在 3 月 12 日发布了红色预警,但由于我们的翻译不够严谨,引起了 EOS 社区的恐慌,让 EOS 社区误认为这是 EOS 的一个漏洞。 我们为此道歉。 部分EOS社区成员认为,只要交易所和钱包做好检查工作,就不会出现此类问题。 但是,我们很难要求所有程序员都编写具有最佳安全实践的代码。 当验证方法不精确时,就会导致攻击。

经过我们的分析,我们更倾向于交易状态是EOS的一个特性,历史上已经出现过很多与该特性相关的“假充值”漏洞案例。

据我们透露:

我们参与披露:

这些问题并不是链本身的漏洞,而是由于链本身的特性以及开发者对这些特性缺乏严格的验证,导致了攻击的发生。 这就是我们发布红色警报的原因。 这不是恐吓(FUD),更像是一种容易被忽视的攻击。 这种攻击方式之前EOS上没有类似的攻击案例,但是在我们公布了相关的攻击方式之后,根据我们联合EOSPark数据分析系统,已经有十几个账户开始分别攻击DApps、交易所和钱包。 攻击测试,这些账号是:

博布库拉博布

寸寸2323

测试superdex

张家驿坝

justjiezhan1

wnze2qwdiyne

havls3k3iyge

ha11w4zzmpge

wkdoptxcjvdn 的

xm曲快恋

异特龙

cholr1ub2ku

钱包托马斯

fuckhakcer.x

强威克队

求职者

peospeospeos

欧洲经济委员会

等待另一个帐户

他们中的许多人已经成功地攻击了帐户。 因此,我们继续发布后续预警,提醒相关项目方做好防范工作。 此外,Twitter账号Whale Alert也关注了此类攻击。 Whale Alert官方账号3月11日发推称,账号fuckhacker.x转账1万亿EOS,后被官方证实为虚假交易。 可见攻击范围之广。 应该给予足够的重视。

维修方案

对于此类交易,相关项目方、交易所和钱包需要验证EOS转账的执行状态,确保交易执行状态为“已执行”。 要以下几点来防止其他类型的“虚假充值”攻击

判断动作是否为转移

判断合约账户是eosio.token还是其他token的官方合约账户

判断令牌名称和准确性

判决金额

判断to是否为自己平台的入金账户

后记问答

Q:节点是否可以通过开启只读模式来防止此类攻击?

A:根据官方文档中对只读模式的描述

usdt转账记录查询_qq查询转账记录_农行网银转账记录查询

节点开启只读模式后,可以查询记录在案并在线存在的确认交易。 这种攻击方式是先发出defer交易,defer交易是保存在链上的真实交易,然后交易会转化为hard_fail,所以开启只读模式无法阻止这种攻击方法。 事务的状态从delay变为hard_fail,而不是rollback,这是需要注意的地方。

Q:为什么我在其他区块浏览器上找不到hard_fail交易,比如EOSX?

A:现有的查询交易通过EOS的历史插件查询,根据历史插件的代码

农行网银转账记录查询_qq查询转账记录_usdt转账记录查询

可以发现,除了executed和soft_fail交易外,其他交易是查询不到的。

Q:使用历史插件获取交易是否可以避免此类攻击?

答:无法保证。 不同的节点历史插件有不同的实现方式。 不排除节点提供者自行修改history plugin实现,导致被查询交易出现除executed和soft_fail以外的其他状态。

Q:交易所、钱包等项目平台应该如何配置自己的节点来避免攻击?

A:使用默认的历史插件配置,另外还要检查EOS转账的交易状态,确保交易执行状态为“已执行”。 同时,还需要判断以下几点,以防止其他类型的“假充值”

判断动作是否为转移

判断合约账户是eosio.token还是其他token的官方合约账户

判断令牌名称和准确性

判决金额

判断to是否为自己平台的入金账户

这几点都是历史上出现过的问题。 我们认为EOS生态是一个非常强大的、灵活的、全新的生态。 EOS主网上线以来,我们参与了很多次安全突发事件。 生态安全的发展确实是一个挑战。 要做好各方面的安全检查,确保资产不丢失。

结语

希望阅读本文的EOS生态用户不要模仿本文中的攻击方式。 我们无意在 EOS 社区引起恐慌。 慢雾安全团队旨在为EOS生态带来更多安全感usdt转账记录查询,及时披露相关安全事件的详情,为更多EOS生态成员提供安全保障。 相关项目方应及时确保充提款系统安全,实施相应的风险控制策略,确保自身财产安全。

相关参考

如何使用 State History Plugin 监控状态:

官方文档描述了nodeos的三种模式:

XRP官方披露的虚假充值漏洞及相关分析:

EOS智能合约最佳安全开发指南:

谢谢你

EOS公园

IMEOS

jerry@EOSlive 钱包

qq查询转账记录_usdt转账记录查询_农行网银转账记录查询

慢雾媒体平台

电报

推特

@slowmist_team

中等的

@慢雾

碧湖

知识星球