原文标题:《技术|从一个钱包被盗的案例,探讨Web3的安全指南》
原文来源:阿法兔研究笔记
原文作者:Chris阿法兔
背景
技术出身的小C,最近在学习区块链开发。本身是专业开发者,已经很谨慎小心了,通常都是在测试网络上跑,跑完之后,再会去正式网络上部署,但是没有意识到整个产业目前还处在相对混乱的阶段,麻痹大意,顺手习惯导致造成了损失。
损失是如何造成的?
2021年的最后一天,小C偶然看到一个账号很有趣,就追踪了他的一些链上交易,然后看到了一个非常有意思的项目,然后就鬼使神差地连上了自己的MetaMask,然后鬼使神差的进行了approve,因为一般Web3的项目就是这个流程,approve然后转账就结束了。
但是令人惊呆的一幕出现了:点完之后,整个网站突然卡死了,没有任何反应,小C当时没当回事,把站点给关了,去做其他事情了。
过了大概一天,小C重新回来开发的时候,发现账上的钱全部没有了,去查了历史记录,发现账上的余额已经被全部转走。
主力数据复盘:火币ETH主力在下跌过程中买入超过2600万美元:AlCoin PRO版K线主力大单统计显示:8月15日10:00-8月16日20:15,ETH从442美元跌至最低412美元。这一过程中,火币ETH/USDT出现并成交了大量委托买单。
其中,成交了70笔,总价值超过2600万美元的大额委托买单(单笔委托金额20万美元以上),买入均价426美元。[2020/8/17]
盗取者是怎么把小C账户上的钱都转走的?
现象:只要你approve了,不需要私钥理论上也可以把对应的钱全部转走。
小C进行了下溯源,大概是在一个钓鱼网站的approve出了问题,于是追溯该转账记录。
如图,可以看到,先是approve了一个合约,授权了钓鱼合约能够对账号里面BUSD进行操作,而且是没有数量限制的。
为什么会是BUSD呢?小C回忆了一下,一进入这个钓鱼站点是默认选了BUSD,估计在浏览站点链接钱包之后,盗取者就已经筛选了出了账号里面钱最多的token了。
万卉复盘Yam事件:反馈周期将是未来线上治理的关键参数:8月13日消息,Primitive Ventures创始合伙人万卉在微博复盘Yam事件,她提到反馈周期将是未来线上治理的关键参数,此外,项目方不应通过软性贿赂影响博弈结构。万卉还表示,在沟通过程中没有把复杂的信息做到社区可以消化的转述(这个确实很难,但是未来的社区治理要吸取经验教训),并且合约写死的时间线过于紧凑,导致出事没有足够的协调时间,这个当年在312的时候MAKER拍卖也发生过,当时也是时间太紧张导致流拍。这个反馈周期是未来线上治理一个很关键的参数,不能太短,也不能太长。
在号召投票的时候,不应该通过“软性贿赂”来影响博弈结果。譬如为了获取足够的票仓,来进行投票奖励。这个会影响理性的判断,特别是对于信息有限的社区成员,可能会带来负外部性。[2020/8/13]
然后当小C以为这是一个新的swap合约,并且有很高的年化收益,准备先试试的时候,按照常规流程就进行approve。approve结束后,网站直接卡了。
后来经过追溯,大概在授权之后几十秒,合约就直接触发了一个转账操作,直接把BUSDtoken给转走了。
主力复盘:BitMEX主力平空买入1.32亿美元推高价格:AICoin PRO版K线主力成交数据显示:昨天21:50~今天05:15,BitMEX XBT永续合约上出现大量主力成交单(即市价大额成交) 。其中,一共出现67笔,共计1.326亿美元主力买入单,买入均价9331.7美元;一共出现24笔,共计3227.65万美元主力卖出单,卖出均价9347.3美元,成交差1亿美元。
这一过程中,Al-PD-持仓差值大多为较高红柱,即持仓量下降明显,可判断这些成交单大多为主力买入平空。
此外,此次拉升过程中大额买入堆积的地方为趋势线附近。[2020/6/16]
后来去查了一下授权的信息
基本上MetaMask默认授权的时候是:
转换成数字,我们认识的就是1.157920892373162乘以10的59次方。基本上就可以理解为无限量转账了,也就是这个授权的操作,可以让这个合约无限量的操纵我账号的token。看到这里感觉背后一凉,因为以前点过很多次approve都是不会去看的。
然后黑客操纵一个可以控制这个合约方法的钱包地址,就发起合约转账方法,把钱转走了。所以小伙伴之后点metamask授权的时候一定要小心。
主力数据复盘:Bitfinex买入推高价格,其他平台跟随确认突破:AICoin PRO版主力数据及秒级周期K线显示:在今天7点的这轮上涨中,07:00:11,Bitfinex BTC/USDT主动买入183.62BTC,买入价格9749.3,被卖价格9777美元,滑点高达42.7美元,把价格推至9791美元。 随后的07:00:12,BitMEX开始出现大额主动买入,41秒内主动买入7笔,共计1442万美元。 差不多相同时间,火币BTC季度合约上亦出现大量主动买入单子。72秒内,有16笔,共计2560万美元成交。 此位置为三角形上沿及日线级别下降趋势线附近,可见大量的买入确认了突破。三分钟后市场开启大幅度拉升。[2020/6/2]
小C查了下,盗取者现在这个账号里大概已经有了3w美金的token了,现在还有源源不断的受害者在转钱。但是面对区块链没有办法,根本无法找不到这个黑客是谁。
问题到底出在哪里?
因为最近在学习区块链。小C大概理了一下这个钓鱼的逻辑方式,害人之心不可有,防人之心不可无。大家有兴趣可以了解一下:
复盘:又是币安主力先动的手,现货遭大量抛售:AICoin PRO版K线主力成交数据显示:过去24小时,比特币价格从6900美元上方跌至最低6468美元。其中,币安BTC现货在15日18:30分率先出现主力卖出大单成交。18:20~20:20间,共计有16笔,899.51枚BTC大单卖出成交; 随后,火币BTC现货开始挂起卖出委单,15日19:40--16日00:15,共有3笔,挂卖量2113.82枚BTC的大额委托卖单出现并成交2131.97BTC。 今晨05:45-09:05的第二次下挫中,同样是币安率先出现主力卖出大单成交,共计有21笔,1666.8枚BTC。 请密切留意币安及火币的主力动向。[2020/4/16]
正常转账
案例一:直接用户间转账A用户向B用户转账BUSD
合约正常会检查以下逻辑
1)判断A用户账户余额是否有足够的钱;2)是否是A用户发起的转账
流程如下图
正常合约兑换
就是我们平时使用pancakeswap、uniswap等兑换时候的流程
案例二:通过swap进行token兑换A用户进行token兑换流程合约进行判断:
1)A用户账户余额是否有足够的BUSD,
2)swap合约取A账户下的500BUSD放入swap的合约池中
3)成功后合约再向A账户转入1BNB
注意第2、3点,是由合约控制token进行操作。那么也就是说合约可以绕过我们直接发起对我们账号下的token的操作。
钓鱼合约
先看这张溯源图
正常的转账,转账方和合约执行的转账方应该是同一个人,即上图与应该是由同一个人发起的。而我被转账的这笔交易,这两个不是同一个地址。推测应该是由一个可以执行钓鱼合约的钱包地址控制执行了合约,然后将我授权给钓鱼合约里的BUSD转走了。
去查看钓鱼合约,不出意料钓鱼合约是一个加密的合约。不过想一下也不难,稍微学过Solidity的人都知道,在合约定义的时候,多设置几个Admin或者Owner就可以了。
所以以后一定要注意项目方的背书,不要随便给不知道的项目授权!!!
安全建议
因为这件事,小C搜了一些有用的建议和方法,也看到了很多血淋淋的教训。
这里列出来一些方法大家可以根据自己的需要选择。
1)不要共用密钥
之前看有帖子说一个助记词生成多个账号的,这种我不建议哈,因为很可能被一锅端。
2)密钥离线保存
因为现在有很多剪贴板工具输入法会将你的剪贴板记录上传到云端,如果你直接复制了,如果云端泄漏,你的密钥就直接无了。
我的建议就是生成之后,第一时间抄到本子上。当然抄到本子上,你也可以参考我对密钥自己的字典加密,比如a用1代替,b用2代替,1用a代替,这样就可以保证即使有人看到了你的纸质密钥,也不能动你的数字资产。
3)开发和测试分开
安装2个浏览器,一个可以是chrome,一个是brave。一个管理你的主钱包。另外一个可以参与领取空投,各种链上操作等
4)不要下载来历不明的软件
不要去用baidu这些下载来历不明的软件,我看到有案例是下载盗版metamask,直接破产的。一定要去正规的地址下载,有条件的可以参考googleplay。chromewebstore等
5)立即检查你的授权
检查的网址有下面几个,debank没有开源,但是UI交互比较好,后续的有开源的,大家自己抉择吧。
https://debank.com/
https://approved.zone/
https://tac.dappstar.io/
https://ethallowance.com/
看到图上所示,基本上就是无限的。
每次唤起MetaMask的时候一定要多看看授权,不要像我现在这样无脑点授权下一步。
6)进行授权前,对合约安全进行确认
https://www.slowmist.com/service-smart-contract-security-audit.html
可以使用慢雾的合约审计功能。
也可以看看该合约是否开源,如果开源的话需要确认该合约是否是可升级合约等等。
7)撸空投和福利的时候注意安全
用小号去领取,别用大号,授权的时候可以设置额度!!!
8)警惕社工的入侵,小心Discord私聊你的陌生人
比如Discord或者Telegram,有人跟你认识几天,说要带你赚钱拿空投,让你安装他发给你的软件并登录,这种99.99%你会血本无归。账号被盗。
特别地,Discord里面,进NFT的官方Discord,会有人私聊你,告诉你获得了白名单,附带一个mint链接。子会把头像和名称改成官方的样子,其实是把他和你拉了一个组来实现的。
其实只要不贪,这种局还蛮好识破的,一般会告诉你在几个小时内mint,数量1-10。很多大热项目一个白名单mint一两个不错了,这一上来顶格10个还带时间限制。
还有,会有子模仿项目官网做个假网站,私信给项目Server里的人,让他们来mint.
还有小伙伴在opensea买了假NFT后来发现不是官方的然后过了几天那个NFT就从账户消失了然而已经扣了...(怎么发现的?看链条还有官方discord发了官方Opensea网址)
还有假的collab.land钱包密码,给大v空投然后号称大v买了那个NFT/token.
新的一年到来,大家一定要注意安全呀,希望看到本文的朋友都能平平安安顺顺利利!
本文感谢作者Chris
标签:PROUSDAPPBTCVesta Protocol比特币价格今日行情usdt最新抹茶交易所app下载RENBTCCURVE价格
Gate.ioCopyTradingisnowhometo16quantitativeproducts.
1900/1/1 0:00:00Gate.ioiscurrentlyholdingaBTRSTtradingcompetition.Wehaveapoolof15,520BTRST($36.
1900/1/1 0:00:00原文作者:东方明原文来源:海外独角兽马斯克的Starlink是空天通信下主干网络的创新,本质上还是以“公司制”的高资本投入,来实现比传统网络运营商更高效的布网方式.
1900/1/1 0:00:001月25日消息,总部位于新加坡的早期风险投资基金BlockchainFoundersFund宣布,其BFFII已成功完成7500万美元融资.
1900/1/1 0:00:00“Gate.io財富賬單-分享你的年度賬單共享$10,000謝禮”活動已圓滿結束,感謝大家的參與!我們已爲每一位獲獎用戶發放獎勵,用戶可進入“我的財務—賬單明細”查詢.
1900/1/1 0:00:00尊敬的用户:BKEXGlobalETP专区将于2022年1月27日15:00上线KLAY3L、KLAY3S.
1900/1/1 0:00:00