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域名已经停止解析,无法正常访问了。
Web3初创公司Nestcoin完成645万美元Pre种子轮融资:2月5日消息,非洲Web3初创公司Nestcoin完成645万美元Pre种子轮融资,Distributed Global和Alter Global领投, Serena Williams的Serena Ventures、Alameda Research、A&T Capital、MSA Capital和4DX Ventures等参投。(News Bitcoin)[2022/2/6 9:33:31]
查询Whois,该域名在2022-07-16注册于TucowsDomainsInc:
打开virustotal.com可以看到该域名之前曾解析到CloudFlare:
Osprey Fund比特币信托现通过OTC市场向散户开放:Osprey Fund今日宣布,该基金的比特币信托(Bitcoin Trust)现在可以通过场外交易(OTC)市场向散户投资者开放。与GBTC的结构类似,Osprey基金管理着近8000万美元的资产(AUM),可由合格投资者直接进入,也可由散户通过场外交易平台间接进入。据此前1月消息,Osprey?Funds在场外交易市场推出“Osprey比特币信托(OBTC)”,收取0.49%的管理费。富达数字资产将提供托管服务。OBTC的费用大约是其主要竞争对手“灰度比特币信托(GBTC)”的四分之一,后者收费2%。(Coindesk)[2021/2/16 17:22:15]
打开源代码可以看到boomerang.min.js是Premint用到的一个UI库:
该js是在s3-redwood-labs.premint.xyz域名下,猜测:
众企安链完成数千万元人民币Pre-A轮融资,分布式资本参投:11月24日消息,众企安链正式完成Pre-A轮数千万元人民币的融资,本轮融资由常春藤资本领投、国宏嘉信、分布式资本(通过国内有限合伙企业)跟投。
据悉,众企安链是由众安孵化成立的生态合作伙伴,是众安面向金融科技领域的全新布局。众企安链成立于2020年3月,希望提供“金融+场景+技术”的供应链金融服务解决方案,以产融资源整合、业务模式咨询、金融科技输出、联合运营支持,为核心企业优化供应链管理,帮助资金方准确识别风险,为供应链上下游小微企业解决融资难题。
当前,「众企安链」主要拥有四大产品与解决方案:e信证、e信票、e信融和e信保,分别围绕产业链核心企业(国央企、上市公司、行业龙头)、垂直B2B交易平台、金融机构提供服务。[2020/11/25 22:00:26]
上传文件接口有漏洞可以上传任意文件到任意Path
黑客拿到了他们这个AmazonS3的权限,从而可以注入恶意代码
这个第三方库被供应链攻击污染了
把boomerang.min.js代码下载下来,前面都是正常的代码,但是末尾有一段经过加密的代码:
DappReview牛凤轩:流动性挖矿帮助许多协议实现冷启动:在新一期鱼池直播间DeFi专场中,DappReview创始人牛凤轩认为,流动性挖矿帮助许多协议较好的实现了冷启动,为真正有使用需求的人提供了流动性。流动性供给方获得代币奖励,需求方获得更优惠的资产价格。DeFi具有较强的灵活性,一些项目可以提供更好的流动性,也实现了较好的可操作性。DeFi利率一遍情况来看比CeFi要低,许多情况可以实现几乎零成本的借贷。但DeFi易受网络交易速度影响,用户需要比较熟练的操作钱包和去中心化应用,并不断的去跟进市场,查看抵押资产情况。[2020/8/21]
这段代码负责把代码s3-redwood-labs-premint-xyz.com/cdn.min.js注入到页面。
恶意代码cdn.min.js
动态 | 新加坡Sandbox Express计划启动首个基于区块链的债券交易所:新加坡金融管理局(MAS)的Sandbox Express计划启动了首个基于区块链的债券交易所—BondbloX。BondbloX是一个基于区块链的债券交易,旨在通过将最低投资额降低至1000美元来降低债券交易的壁垒。BondbloX出现之前,债券交易只能通过债券交易商的柜台交易(OTC),且通常有20万美元的最低投资。因此,根据BondbloX创始人Rahul Banerjee的说法,在亚洲只有大约50000人可以买得起批发债券。(Beincrypto)[2019/11/8]
根据代码内容,可以大致看到有通过调用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的精彩分析!
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。