月亮链 月亮链
Ctrl+D收藏月亮链
首页 > 比特币 > 正文

ENS:白帽黑客samczsun:针对NFT资产的攻击会越来越频繁_Carillonium finance

作者:

时间:1900/1/1 0:00:00

注:原文作者是拥有“审计上帝”之称的白帽黑客samczsun,同时他也是Paradigm的研究合伙人,其最近出手拯救了BitDAOMISO荷兰拍卖资金池中的3.5亿美元资产,而在这篇文章中,他提醒了关于NFT代币标准的潜在安全风险,他还预测称,随着ERC-721和ERC-1155代币标准变得越来越流行,针对NFT的攻击很可能会越来越频繁。

如果你从事软件工程方面的工作,很可能你听说过至少一条软件工程原则。虽然我不主张严格遵守每一条原则,但有一些确实是值得关注的。

我今天要讲的就是最小惊讶原则,它有一个奇特的名字,但却是一个非常简单的想法。它所说的是,当呈现声称要做某件事的代码时,大多数用户都会假设它是如何完成这件事的。因此,作为开发人员,你的工作是编写符合这些假设的代码,这样你的用户就不会感到意外。

这是一个很好的原则,因为开发人员喜欢对事物进行假设。如果你导出一个名为calculateScore(GameState)的函数,很多人就会假设该函数只会从游戏状态中读取。如果你还改变了游戏状态,你会使得很多人面临困惑的状态,他们试图弄清楚为什么他们的游戏状态会随机被破坏。即使你把它放在文档中,仍然不能保证人们会看到它,所以最好首先确保你的代码不会令人惊讶。

Gearbox Protocol 已修复白帽黑客在 Immunefi 上提出的漏洞:金色财经消息,DeFi 可组合性杠杆协议 Gearbox Protocol 在推特上宣布,目前已修复白帽黑客在 Immunefi 上提出的漏洞,协议已恢复正常使用。Gearbox 表示,此前发现的漏洞与 Uniswap V3 的适配器相关,目前已部署新的适配器,协议已恢复正常使用,此期间没有资金收到损失。此外,Gearbox 已经向白帽黑客支付了超过 15 万美元的漏洞赏金。[2022/3/27 14:21:08]

“6小时的调试工作,可以为你们节省5分钟的文档阅读时间。”

越安全越好,对吗?

早在2018年初,当ERC-721标准被起草出来时,有人就提出了实施转账安全性?的建议,以确保代币不会被卡在不用于处理代币的接受者合约中。为此,提案作者修改了transfer函数的行为,以检查接收方是否能够支持代币转账。他们还引入了unsafeTransfer函数,如果发送者愿意,该函数将绕过这个检查。

Poly Network:邀请白帽黑客担任首席安全顾问,50万美元赏金将会发送到其钱包地址:8月17日,Poly Network发布黑客攻击后的善后工作进展。Poly Network正按照既定的路线图完成了“主网升级”的第二阶段,最近每天都与白帽黑客保持联系,交流进展情况,并努力与白帽黑客达成共识,希望白帽黑客尽快将私钥移交还,以便尽早将资产还给用户。

Poly Network表示,无意追究白帽先生的法律责任,同时为感谢并鼓励白帽黑客继续与Poly Network共同为区块链世界的安全进步做出贡献,Poly Network邀请白帽黑客担任Poly Network的首席安全顾问。

Poly Network还表示,此前承诺奖励给白帽黑客的 50 万美元的漏洞悬赏,虽然遭到白帽黑客的拒绝,但Poly Network仍会将这50万美元的赏金转移到白帽黑客批准的钱包地址,供他自行决定用于网络安全事业和支持更多项目和个人。[2021/8/17 22:19:41]

然而,由于担心向后兼容性,这个函数在随后的提交中被重命名了。这使得ERC-20和ERC-721代币的transfer函数表现相同。但是,现在需要将接收方检查转移到其他地方。因此,标准作者就引入了safe类函数:safeTransfer以及safeTransferFrom。

这是一个关于正当性问题的解决方案,因为有许多ERC-20代币被意外转移到从未期望收到代币的合约的例子。而在起草ERC-1155标准时,提案作者从ERC-721标准汲取了灵感,不仅在转账时,而且在铸造也纳入了接收方检查,这一点也不足为奇。

美国国务院向白帽黑客提供高达1000万美元的加密奖励:8月17日消息,美国正在提供加密货币资产,以激励白帽黑客在暗网中发现国家支持的行为者和潜在的恐怖分子。美国国务院新的 \"正义的奖赏 \"平台允许举报人提交匿名的线索和信息,以换取数字资产的奖赏。该平台在7月31日至8月5日在拉斯维加斯举行的美国黑帽活动中得到了推广,用户可以通过一个名为#Rewardsnotransoms的不安全Wi-Fi网络提交线索。据CNN报道,这个开放的网络是特意设置的,以鼓励与会者登录并访问RFJ网站。为了交换关于各种恐怖嫌疑人、极端分子和国家支持的黑客的信息,正在提供高达1000万美元的奖赏。举报人可以选择是否希望以加密货币资产的形式获得补偿。美国国家反间谍和安全中心前主任William Evanina将这一举措描述为美国政府有史以来对加密货币资产的最公开的尝试。(cointelegraph)[2021/8/17 22:18:43]

在接下来的几年里,这些标准大多处于休眠状态,而ERC-20代币标准保持了它的流行状态,而最近gas成本的飙升,以及社区对NFT兴趣的增强,自然而然导致开发者越来越多地使用ERC-721和ERC-1155代币标准。有了这些新的兴趣,我们应该庆幸这些标准的设计考虑了安全性,对吗?

越安全越好,真的吗?

Ok,但对于转帐和铸造来说,安全意味着什么呢?不同的当事人对安全有不同的解释。对于开发人员来说,一个安全函数可能意味着它不包含任何bug或引入额外的安全问题。而对于用户来说,这可能意味着它包含额外的护栏,以保护他们不被意外射中自己的脚。

推特聘请知名白帽黑客Peiter Zatko担任安全负责人:据路透社报道,社交媒体巨头推特聘请新安全负责人,知名白帽黑客Peiter Zatko(推特昵称为Mudge)将负责安全、网站完整性和工程。Zatko发推称,很高兴能加入推特管理团队。(CoinDesk)[2020/11/17 21:04:51]

事实证明,在这种情况下,这些函数更多的是后者,而较少会是前者。这是特别令人遗憾的,因为在transfer和safeTransfer函数之间进行选择时,你为什么不选择安全的那个函数呢?名字都体现出来了!

好吧,其中的一个原因可能是我们的老朋友reentrancy,或者我一直在努力将其重命名为:不安全的外部调用。回想一下,如果接收方是攻击者控制的,则任何外部调用都可能不安全,因为攻击者可能会导致你的合约转换为未定义状态。根据设计,这些“安全”函数执行对代币接收者的外部调用,通常在铸造或转移期间由发送者控制。换句话说,这实际上是不安全外部调用的教科书示例。

但是,你可能会问自己,如果允许接收方合约拒绝他们无法处理的转账,那最坏的后果是什么?好吧,让我通过两个案例研究来回答这个问题。

例子1:Hashmasks

Hashmasks是一个供应有限的NFT头像项目,用户每次交易最多可以购买20个maskNFT。下面是购买mask的函数:

公告 | Binance Jersey将奖励入侵其域名和推特账号的白帽黑客:据官方公告,UTC时间8月16日15:00,一名白帽黑客通过对Binance Jersey使用的电子邮件域名服务提供商进行社交工程,获得@BinanceJE(Binance Jersey)推特账号访问权限。该白帽黑客在推特账号@BinanceJE上发布了几条推文,之后将其删除。其在与安全团队的沟通中态度合作并开放,Binance Jersey能够在几分钟内恢复域名,几个小时后恢复推特。Binance Jersey将向其发出安全漏洞赏金,并与服务提供商继续调查。Binance.JE上所有资金都安全。没有数据被泄露。如果您是白帽黑客,并希望报告币安生态系统内产品安全漏洞,可查看Binance Bug Bounty计划。根据报告的问题严重性可获得高达10万美元奖励。 注:社交工程是描述非技术类入侵的术语,多依赖于人类互动且通常涉及到其他人来破坏正常的安全程序。昨晚,推特用户LightningNetwo9攻击币安法币交易所Binance Jersey官方推特账号。黑客声称成功越过官方域名binance.je,本可通过网络钓鱼计划轻易进行局,但决定不这样做。[2019/8/18]

你可能觉得这个函数看起来非常合理。然而,正如你可能已经预料到的,在_safeMint调用中隐藏着一些险恶的东西。让我们来看看。

为了安全性,这个函数对token的接受者执行了一次callback回调,以检查他们是否愿意接受转账。然而,我们是token的接收者,这意味着我们刚刚得到了一次callback回调,在这个点上我们可以做任何我们想做的事情,包括再次调用mintNFT函数。如果我们这样做,我们将在仅铸造了一个mask后重调用该函数,这意味着我们可以请求再铸造另外19个mask。这导致最终铸造出了39个maskNFT,尽管规则允许铸造的最大数量只有20个。

例子2:ENS域名封装器

最近,来自ENS的NickJohnson联系了我,他想让我看看他们正在进行的ENS域名封装器工作。这个域名封装器允许用户用新的ERC-1155token代币化他们的ENS域名,这提供了对细粒度权限以及更一致的API的支持。

概括地说,为了封装任何ENS域名,你必须首先批准域名封装器以访问你的ENS域名。然后,你调用wrap(bytes,address,uint96,address),它既为你铸造一个ERC-1155token,也负责管理底层的ENS域名。

下面就是这个wrap函数,它相当简单。首先,我们调用_wrap,它执行一些逻辑并返回哈希域名。然后,我们确保交易发送方确实是ENS域名的所有者,然后再接管该域名。请注意,如果发送方不拥有底层的ENS域名,则整个交易应还原,撤销在_wrap中所做的任何更改。

下面是_wrap函数本身,这里没有什么特别的。

不幸的是,正是这个_mint函数,它可能会给毫无戒心的开发者带来可怕的惊喜。ERC-1155规范规定,在铸造token时,应咨询接收者是否愿意接受该token。在深入研究库代码后,我们发现情况确实如此。

但这到底对我们有什么好处呢?好的,我们再一次看到了一个不安全的外部调用,我们可以用它来执行重入攻击。具体地说,请注意,在callback回调期间,我们拥有了代币ENS域名的ERC-1155token,但域名封装器尚未验证我们拥有基础ENS域名本身。这使我们能够在不实际拥有ENS域名的情况下对其进行操作。例如,我们可以要求域名封装器解开我们的域名,燃烧掉我们刚刚铸造的token并获取底层的ENS域名。

现在我们拥有了底层的ENS域名,我们可以用它做任何我们想做的事情,比如注册新的子域名或者设置解析器。完成后,我们只需退出callback回调。域名封装器将和底层ENS域名的当前所有者交互,并完成交易。就像那样,我们已经取得了域名封装器被批准用于的任何ENS域名的临时所有权,并对其进行了任意更改。

结论

令人惊讶的代码可能会以灾难性的方式破坏事物。在本文的两个案例下,开发人员合理地假设safe函数类可以安全地使用,却无意中增加了他们的攻击面。随着ERC-721和ERC-1155代币标准变得越来越流行及广泛,这类攻击情况很可能会越来越频繁。开发人员需要考虑使用safe类函数的风险,并确定外部调用如何与他们编写的代码进行交互。

标签:ENSANCNANNCEAENSBinance IDRCarillonium financeOxfinance

比特币热门资讯
数字人:数字人民币试点扩围 普惠性愈发显现_数字货币

来源:证券时报网证券时报记者王君晖继国有大行之后,城商行与农村金融机构也将加入数字人民币试点进程.

1900/1/1 0:00:00
区块链:一文讲透AC的元宇宙游戏Rarity(含教程)_INT

注:本文发表于9月6日来源:微博@DFarm近日,AC发布了他在Fantom上的游戏Rarity,昨晚熬夜奋战到1点多,扒出来了游戏中不少的内容,这里跟大家分享一下.

1900/1/1 0:00:00
区块链:德勤区块链调查:全球金融服务行业正经历地震式转变,拥抱数字化是必然趋势_比特币大连夫妻跳海早了

随着疫情与加密技术双重扩散,它们深刻地改变了世界的运作方式,德勤第四次年度"全球区块链调查"发现,金融服务业必须加速走向产品现代化和产品多极化,以实现突破性发展.

1900/1/1 0:00:00
区块链:观点|如何利用社交代币实现长期增长?_efinity币分配

这是一篇客座文章,由?FF独家报道,由Foundation和MoneyMail的顾问ChrisCollins主持.

1900/1/1 0:00:00
NFT:融资新闻丨 “智能NFT”开发商Aletha AI完成1600万美元融资,亿万富豪Mark Cuban等投资_ALETH

创造了世界上第一个“智能NFT”的软件开发商AlethaAI刚刚通过私人代币销售获得了1600万美元的资金,以创建一个由其机器人填充的元宇宙.

1900/1/1 0:00:00
HEC:HECO发起首次节点治理,原路返还DDEX安全事件追回的超500万美元资金_filda币值得投资吗

巴比特讯,7月1日~2日,HECO生态链项目XDXSwap遭受黑客攻击,资金池中价值约500多万美金的各种数字货币被盗.

1900/1/1 0:00:00