7?月?17日,据慢雾区情报反馈,Premint遭遇黑客攻击。慢雾安全团队在第一时间进行分析和预警。
本文来自慢雾区伙伴ScamSniffer的投稿,具体分析如下:
攻击细节
打开任意Premint项目页面,可以看到有个cdn.min.js注入到了页面中,看调用栈该js是由(https://s3-redwood-labs.premint.xyz/theme/js/boomerang.min.js)注入,目前该s3-redwood-labs-premint-xyz.com域名已经停止解析,无法正常访问了。
区块链旅行数据共享平台NoeKe完成150万美元pre-seed轮融资:金色财经报道,荷兰区块链旅行数据共享及身份验证平台NoeKe宣布完成150万美元(130万欧元) pre-seed轮融资,Dreamcraft Ventures、ff Venture Capital、Gharage和Plug and Play Tech Center参投。NoeKe提供了一个供旅行者和旅行服务提供商之间使用的数据共享和身份验证平台,该平台使用区块链技术和云技术来安全地存储和共享经过验证的身份信息,旨在让旅行者控制自己的数据。 (skift)[2023/7/15 10:57:03]
查询Whois,该域名在2022-07-16注册于TucowsDomainsInc:
打开virustotal.com可以看到该域名之前曾解析到CloudFlare:
DeFi协议AlloyX获得200万美元pre-seed融资:金色财经报道,DeFi协议AlloyX在获得200万美元的pre-seed资金后,推出资产保险库。该金库将Credix Finance的代币化信贷与代币化的美国国库券相结合,为DeFi投资者提供了获得真实世界资产流动性的机会。
根据一份声明,该轮融资还包括来自Circle Ventures、Digital Currency Group、Stratos、Lecca Ventures、MH Ventures、very early Ventures、Archblock、dao5和Credix Finance的投资。[2023/6/29 22:08:56]
打开源代码可以看到boomerang.min.js是Premint用到的一个UI库:
该js是在s3-redwood-labs.premint.xyz域名下,猜测:
Espresso Systems推出二层扩容方案测试网Americano:11月30日消息,Web3应用扩展和隐私系统Espresso Systems发布公告称,去中心化二层扩容方案Espresso Sequencer内部测试网Americano现已上线,目前尚未对公众开放。
Espresso Sequencer是一个优先考虑高吞吐量和快速最终确定性的共识协议,使以太坊二层扩容方案交易排序去中心化,补充了以太坊共识(Gasper)所固有的平衡。[2022/11/30 21:12:55]
上传文件接口有漏洞可以上传任意文件到任意Path
黑客拿到了他们这个AmazonS3的权限,从而可以注入恶意代码
这个第三方库被供应链攻击污染了
把boomerang.min.js代码下载下来,前面都是正常的代码,但是末尾有一段经过加密的代码:
DeFi平台Alloy完成300万美元pre-seed轮融资,Headline Ventures领投:金色财经报道,德国DeFi平台Alloy宣布完成了一笔300万美元的pre-seed轮融资,Headline Ventures 领投,Seedcamp、Sorare 创始人Nicolas Julia、Checkout.com 创始人 Guillaume Pousaz 通过其家族办公室 Zinal Growth 参投。Alloy 的目标是通过构建受监管 DeFi 策略公司打造一个针对机构投资者的 DeFi 平台,并解决来自监管和客户端方面的挑战,其平台预计将于 2022 年下半年在以太坊网络上推出。[2022/5/31 3:53:24]
这段代码负责把代码s3-redwood-labs-premint-xyz.com/cdn.min.js注入到页面。
恶意代码cdn.min.js
加密及区块链教育平台Coinmarketpedia完成200万美元pre-seed轮融资:5月25日消息,总部位于迪拜的去中心化加密及区块链教育平台 Coinmarketpedia 宣布完成 200 万美元 pre-seed 轮融资,投资方信息暂未公布。据悉,Coinmarketpedia 团队正在构建一个革命性的教育平台,允许加密和区块链爱好者、开发人员、投资者和交易者分享他们的专业知识,最终成为所有加密和区块链专业人士的教育中心。[2022/5/25 3:41:33]
根据代码内容,可以大致看到有通过调用dappradar.com的接口来查询用户的NFT资产列表。
如果用户持有相关NFT资产:
恶意代码会以Two-stepwallet验证的借口,发起setApprovalForAll让用户授权给他们后端接口返回的地址。
如果用户点了Approve,攻击者还会调用监测代码通知自己有人点击了:
如果当用户地址没有NFT资产时,它还会尝试直接发起转移钱包里的ETH的资产请求:
另外这种代码变量名加密成_0xd289_0x开头的方式,我们曾经在play-otherside.org,thesaudisnfts.xyz这些钓鱼网站也见到过。
根据用户资产发起setApprovalForAll或者直接转移ETH,并且阻止用户使用开发者工具debug。
预防方式
那么作为普通用户如何预防?现阶段MetaMask对ERC721的setApprovalForAll的风险提示,远没有ERC20的Approve做得好。
即使很多新用户无法感知到这个行为的风险,但我们作为普通用户看到带Approve之类的交易一定要仔细打开授权给相关地址,看看这些地址最近的交易是否异常,避免误授权!
这种攻击和上次Etherscan上Coinzilla利用广告注入恶意的攻击方式挺相似的,那么在技术上有没有可能预防?
理论上如果已知一些恶意js代码的行为和特征:
比如说代码的加密方式
恶意代码关键特征
代码会反debug
会调用opensea,debank,dappradar等API查询用户资产
根据这些恶意代码的行为特征库,那么我们可以尝试在客户端网页发起交易前,检测页面有没有包含已知恶意特征的代码来探测风险,或者直接更简单一点,对常见的网站设立白名单机制,不是交易类网站发起授权,给到足够的风险提醒等。
接下来ScamSniffer和慢雾安全团队也会尝试探索一下如何在客户端来预防此类的攻击发生!
Ps.感谢作者ScamSniffer的精彩分析!
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。