在DeFi的黑暗森林中,用户每天面临着各种安全威胁。据报道每年有超过十亿美元的加密资产被走。用户迫切地需要一种钱包卫士来守护资产。上篇文章提到了如?FoxEye这种Web3安全插件,本帖来解释下它们的工作原理。
当谈到反钓鱼时,一个常见的安全模型是基于URL的反钓鱼,因为大部分攻击向量都依赖钓鱼网站,如:
恶意合约高风险代币授权漏洞假NFT危险签名等等面向URL的反钓鱼
建立钓鱼URL的数据库,当用户访问钓鱼网站时进行拦截。
ZetaChain:Omnichain DAO已上线ZetaChain测试网:4月30日消息,跨链智能合约平台ZetaChain发推称,由STP(资产代币化发行平台STP Network)驱动的Omnichain DAO已上线ZetaChain测试网。加密用户将很快能够从一个地方对以太坊,Polygon和任何其他链的提案进行投票。
此前消息,CoinList公告宣布,ZetaChain将推出激励测试网,并于CoinList开放节点申请,测试网参与者将有机会获得相应回报。
页面显示,申请将于4月30日截止,测试网将允许总计150个节点参与,总奖励池包含420万枚ZETA(总供应量的0.2%),锁定期1年。[2023/4/30 14:35:59]
面向URL的反钓鱼只能建立在静态的URL黑名单之上,这种措施有用但比较老套也不够全面:
Bancor V3正式上线,新版本通过Omnipool架构将流动性整合至单一vault中:5月12日消息,Bancor V3正式上线,新版本通过 Omnipool 架构将流动性整合至单一、虚拟的 vault 中以降低 Gas 并提高效率和可用性,新版本特点还包括支持单币质押并进行实时无常损失保护、交易费及激励自动计算复利,新版本提供激励的合作方包括 Polygon、Brave、Flexa、Synthetix、Enjin、Nexus Mutual 和 WOO Network。[2022/5/12 3:08:53]
不完备性:并不能涵盖所有的钓鱼网站。新生成的钓鱼网站是盲区。滞后性:在用户反馈和黑名单更新之间有一定延迟。局限性:对DNS劫持等其他攻击手段无效。面向URL的反钓鱼不能满足用户需求,因为它覆盖的不是最终的安全敞口:待签名交易。
Omnific区块链工作室将推出基于NFT的音乐比赛和犯罪电影:11月8日消息,Phoenix Waters Productions与科技公司Marvion和Coinllectibles合作,将启动数字娱乐工作室Omnific Blockchain Studios,以开发和生产与娱乐相关的NFT和数字商品。它将从“Marvion’s Music Monarch”开始,这是一场仅限NFT的音乐比赛,世界各地的艺术家将在区块链上策划他们的作品,供观众通过NFT进行投票。
Omnific Blockchain Studios还将开发犯罪电影“Karma”,由来自全球的多个相互关联的短篇故事组成,完全基于区块链策划。这将涉及美国、英国、中国香港、新加坡、日本和韩国的电影制作人,单个短片和完整正片都可以作为NFT提供。(Variety)[2021/11/8 6:39:12]
面向交易的反钓鱼
动态 | Tether在迁移中增发3亿枚USDT,Omni上还未进行相应销毁:Whale Alert今天早些时候发布推文称,Tether Treasury增发了3亿枚USDT。此次增发是互换的一部分,Omni上相应的销毁还没有发生。此前据Tether官方消息,将与第三方在几个小时内将3亿枚USDT从Omni迁移至ERC20协议上。在此过程中Tether总供应量保持不变。[2019/9/13]
殊途同归,所有的钓鱼都需要发起交易。如果我们能动态地解析交易或签名,并拦截有害的那一部分,就可以实现用户端的安全闭环。
典型的交易过程
本段包含一小部分代码,但不理解代码也可以阅读。标准的交易过程为:
dApp前端通过?ethereum.request调用?eth_sendTransaction?向钱包发送交易信息。?params?包含所有的交易参数。ethereum.request({
method:‘eth_sendTransaction’,
params:
})
钱包要求用户对交易签名。将签过名的交易发送到以太坊节点上。
Hook交易
Hook的意思是钩子。在编程中我们把『拦截系统或软件的函数、信息、事件,并增加或改变其功能』的技术称为hook。
如果我们能hook这个eth_sendTransaction方法,那么就能在其被发送至用户钱包签名前对其进行审查。
在JavaScript中,我们使用基础对象Proxy来完成hook。
创建一个对?ethereum.request的Proxy。
constproxy=newProxy(window.ethereum.request,this.proxyHandler);
window.ethereum.request=proxy;
其中一个参数?this.proxyHandler?中声明了监听到eth_sendTransaction后如何处理,具体细节按下不表,大体为:
拦截交易对象。发送至云端或在本地进行分析。若发现风险行为,警示用户。显然,第二步是这一流程里最关键和最有技术含量的,包括但不限于:
静态分析函数selector,交互地址等调用栈的动态分析链式合约扫描代币检测交易模拟AML库签名分析恶意合约库等等…每一条都可以单独写一篇文章,篇幅所限这里就不展开了。
Tips
最后有几条使用安全插件的几条建议:
仅从官网链接下载。虽然我还没见到仿冒的Web3安全插件,但我可以说它们一定会来的。仅使用开源的插件。Hook是一种很有威力的技术,它不仅能拦截你的交易,也能修改之。你肯定不想后院起火吧。使用有更多功能的插件。简单即弱小。不要在一个Chrome窗口里安装多个安全插件,他们互相之间可能会冲突。如果想体验多个插件,可以装一卸一,或使用Chrome的多用户功能。谨记安全是一种动态追求。风险也在不断变化之中。虽然安全插件能极大提升你的安全水平,但无法保证100%安全。安装安全插件的同时也要提升自己的安全意识。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。