如果觉得我的内容对你有帮助,欢迎关注我的推特账号和小红书账号:飞猪聊web3,获取更多web3的安全知识、基本技能和实用资讯
如果需要更具体、系统、有针对性的教程指导,如果需要更具体、系统、有针对性的教程指导,欢迎大家私聊咨询哦
昨天(2022.10.2)tp钱包旗下dex应用Transit Swap被盗的反转事件应该算的上近期web3世界里的重大安全事故了,在为追回资金的用户感到开心的同时,我们也应该一起反思一下,作为用户,该从中吸取何种教训?
缘何被盗?
所有的被盗都逃不脱两个原因:应用代码有漏洞,用户操作有瑕疵,亦或者二者兼有,而此次Transit Swap被盗正是二者问题的集合。简单来说,用户通过dex进行swap操作,需要先把调用token的权限授权给dex的管理合约,管理合约获得授权之后可以按照用户的要求进行兑换;在正常情况下,管理合约只能由用户主动发起后调用,但此次事件中,由于代码漏洞,导致管理合约可以被任意外部调用,所有授权给管理合约的用户资金都有风险,而用户给管理合约无限制的授权,又扩大了用户的损失。
来自慢雾安全团队@SlowMist_Team的原理分析:
举个栗子:假设钱包里有500个A币,打算用其中100个兑换成B币,需要先把调用100个A币的权限授予要使用的兑换合约,如果兑换合约出问题,损失的就是这100个A币;但是如果用户怕麻烦,直接给兑换合约无限调用A币的权限,那么合约一旦出问题,钱包里所有的A币都会遭殃。
如果应用没bug,自然不会有问题;如果用户很谨慎,权限用多少给多少,那么哪怕应用出问题,损失也有限。正因为被盗存在应用和用户双方的问题,所以我们需要从这两方面有针对性的吸取教训。
首先是应用层面
这次的问题为什么没有被发现?因为应用不开源,看不到代码,自然无法发现其中的漏洞。之前我已经说过了开源是web3的灵魂,让后人可以在前人肩膀上搭积木。代码不开源,有违区块链公开透明的精神,项目方在其中暗藏私货也无法被察觉。出品了热门的中文solidity教程的@0xAA_Science大佬提到过:合约不开源,等同于对黑客开源,对用户闭源,所以他建议用户尽量不要跟不开源项目交互,他在github上整理了一个未开源项目清单,供大家参考
另外@billtheinvestor 大佬整理了一个常用钱包代码开源及开发情况总结的线程,大家可以比较一下作为选择钱包服务商的参考
其次就是用户层面
(1)最大的教训当然是要提高个人资产安全意识。
网络上各种被盗事件下经常有人评论,为啥不用硬件钱包?说的好像硬件钱包是保险柜,资金放进去就万无一失了一样。其实我很想吐槽的是,安全意识不到位用啥工具也白瞎:啥来源的网页也敢打开,啥渠道的软件也敢下载,啥英文也不认识,看着set approval for all也敢确认,真正验证了那句话:无知者无畏。
所以对于大多数web3新人来说,比起买硬件钱包,先学习一些资产安全的内容来武装一下头脑,无疑是更有性价比的选择。顺便臭不要脸的自荐一下,我的 #人话讲透web3 系列中会有专门的资产安全的板块,会从安全意识、安全操作技巧、钱包管理和使用安全等方面进行详细的介绍,欢迎关注我@flying_piggy1哦~
(2)要意识到授权存在极大风险。
授权是什么?授权就意味着你许可别人调用你的某些资产,正经的项目方当然不会随便未经你同意而调用,但也要防备此次出现bug的情况;授权给诈骗网站,不用说,基本就等于跟资产永别了。所以不论是NFT还是token,大家在看到set approval for all的提示时,一定要反复确认,对于NFT要看授权对象是否与当下操作一致,如果你在mint时弹出了一个set approval for all,肯定有问题;对于token,不要给与应用无限度的授权,用多少给多少。
经常用授权检查工具检查地址,有不使用或者可疑的授权立马取消掉,如果发现误授权,立马转移资产更换新钱包
这是@BTW0205大佬整理的慢雾推荐的取消授权的工具,大家可以收藏备用
(3)学会使用一定的安全工具很有必要。
这里给大家提供两个工具,合理使用基本可以应付大多数场景了。
VirusTotal,这是一个免费的全球最大的在线病毒分析平台之一,无需下载,即开即用,不仅可以检测程序文件,还可以对网站链接、IP地址、文件hash值来进行检测。大家在打开陌生网站、安装任何应用前,都该养成用virustotal检测的习惯
wallet guard,这是一款免费的浏览器安全插件,目前适用chrome和brave浏览器,该插件会在你进行高危操作(比如误入钓鱼网站、安装恶意插件)时弹出提示,给资产增加一道安全防线。
不过,要提醒大家的是,任何安全工具都并非绝对安全,因为每多安装一个应用,就意味着多了一个可能出问题的点。所以大家不要认为使用了工具就可以高枕无忧,任何时候,自己才是保护资产的第一责任人。
如果觉得我的内容对你有帮助,欢迎关注我的推特账号和小红书账号:飞猪聊web3,获取更多web3的安全知识、基本技能和实用资讯