Web3安全插件工作原理及使用建议
建立钓鱼URL的数据库,当用户访问钓鱼网站时进行拦截。
原文作者:Ben Law
原文来源:medium
原文标题:钱包卫士:Web3安全插件工作原理
在DeFi的黑暗森林中,用户每天面临着各种安全威胁。据报道每年有超过十亿美元的加密资产被骗走。用户迫切地需要一种钱包卫士来守护资产。上篇文章提到了如FoxEye这种Web3安全插件,本帖来解释下它们的工作原理。
当谈到反钓鱼时,一个常见的安全模型是基于URL的反钓鱼,因为大部分攻击向量都依赖钓鱼网站,如:
- 恶意合约
- 高风险代币
- 授权漏洞
- 假NFT
- 危险签名
- 等等
面向URL的反钓鱼
建立钓鱼URL的数据库,当用户访问钓鱼网站时进行拦截。
面向URL的反钓鱼只能建立在静态的URL黑名单之上(虽然这个名单可以更新),这种措施有用但比较老套也不够全面:
- 不完备性: 并不能涵盖所有的钓鱼网站。新生成的钓鱼网站是盲区。
- 滞后性: 在用户反馈(应该已经受害了)和黑名单更新之间有一定延迟。
- 局限性: 对DNS劫持等其他攻击手段无效。
面向URL的反钓鱼不能满足用户需求,因为它覆盖的不是最终的安全敞口:待签名交易(或消息)。
面向交易的反钓鱼
殊途同归,所有的钓鱼都需要发起交易。如果我们能动态地解析交易或签名(签名也需要之后在本地或远程交易),并拦截有害的那一部分,就可以实现用户端的安全闭环。
典型的交易过程
本段包含一小部分代码,但不理解代码也可以阅读。标准的交易过程为:
- dApp前端通过ethereum.request调用eth_sendTransaction向钱包发送交易信息。params包含所有的交易参数。
ethereum.request({
method: ‘eth_sendTransaction’,
params: [{…, to, data, …}]
})
关于【Web3安全插件工作原理及使用建议】的延伸阅读
Solana NFT 市场是如何在过去 30 天内超越以太坊?
NFT是独特的数字资产,代表数字物品所有权。Solana和Ethereum是两大NFT平台,Solana因高速和低费用受关注。它已超过Ethereum,在过去一个月铸造3200万个NFT,远超过Ethereum的100万个,展示了其颠覆性影响力。Solana的低费用使创作者获得更多收益,Ethereum的用户基础和销售量意味着更高曝光率和价格。Solana成功展示了处理大规模操作的效率和速度,成为NFT创作者的首选。虽然Ethereum仍保持优势,但Solana吸引了更多活跃参与者,是高效且成本效益高的选择。对于收藏家和投资者来说,Ethereum仍是首选。Solana的价格上涨和积极情绪显示出市场对其的信心,但多空比下降可能预示着市场修正。总的来说,Solana在NFT领域表现出色,但Ethereum仍是高价值NFT项目的首选。
以太坊经济学简明指南
本文介绍了区块链经济学的定义和重要性,它是在加密经济网络中协调“价值创造和分配”的“机制、激励以及宏观经济政策”。区块链经济学结合了经济学设计和软件开发,旨在构建一个更好的“价值互联网”。为了实现安全、公平和成本效益,需要进行经济设计和研究。以太坊生态系统提供了许多研究机会,包括资源分配、市场结构和用户体验等方面。研究和开发齐头并进,以确保系统稳健运行。以太坊基金会也提供了资助计划和开放问题清单,促进研究工作。
- 钱包要求用户对交易签名。
- 将签过名的交易发送到以太坊节点上。
Hook交易
Hook的意思是钩子。在编程中我们把『拦截系统或软件的函数、信息、事件,并增加或改变其功能』的技术称为hook。
如果我们能hook这个eth_sendTransaction方法,那么就能在其被发送至用户钱包签名前对其进行审查。
在JavaScript中,我们使用基础对象Proxy来完成hook。
创建一个对ethereum.request(其中包含eth_sendTransaction)的Proxy。
const proxy = new Proxy(window.ethereum.request, this.proxyHandler);
window.ethereum.request = proxy;
其中一个参数this.proxyHandler中声明了监听到eth_sendTransaction后如何处理,具体细节按下不表,大体为:
- 拦截交易对象。
- 发送至云端或在本地进行分析。
- 若发现风险行为,警示用户。
显然,第二步是这一流程里最关键和最有技术含量的,包括但不限于:
- 静态分析函数selector,交互地址等
- 调用栈的动态分析
- 链式合约扫描
- 代币检测
- 交易模拟
- AML库
- 签名分析
- 恶意合约库
- 等等…
每一条都可以单独写一篇文章,篇幅所限这里就不展开了。
Tips
最后有几条使用安全插件的几条建议:
- 仅从官网链接下载。虽然我还没见到仿冒的Web3安全插件,但我可以说它们一定会来的。
- 仅使用开源的插件。Hook是一种很有威力的技术,它不仅能拦截你的交易,也能修改之。你肯定不想后院起火吧。
- 使用有更多功能的插件。简单即弱小。
- 不要在一个Chrome窗口里安装多个安全插件,他们互相之间可能会冲突。如果想体验多个插件,可以装一卸一,或使用Chrome的多用户功能。
- 谨记安全是一种动态追求。风险也在不断变化之中。虽然安全插件能极大提升你的安全水平,但无法保证100%安全。安装安全插件的同时也要提升自己的安全意识。
免责声明:本文仅代表作者个人观点,不代表链观CHAINLOOK立场,不承担法律责任。文章及观点也不构成投资意见。请用户理性看待市场风险,以及遵守所在国家和地区的相关法律法规。
图文来源:Ben Law,如有侵权请联系删除。转载或引用请注明文章出处!