mt logoMyToken
总市值:
0%
恐慌指数:
0%
币种:--
平台 --
ETH Gas:--
EN
USD
APP
Ap Store QR Code

Scan Download

SharkTeam独家分析 | Visor Finance恶意资产转移事件分析

收藏
分享

北京时间2021年6月19日,基于 Uniswap V3 的 DeFi 流动性协议 Visor Finance 智能合约被提现 230ETH,后资金被转移至混币平台 Tornado.cash。据 CoinGecko 数据显示,Visor Finance 代币 VISR当日下跌超 60%。

image.png

SharkTeam第一时间对此事件进行了分析,并总结了安全防范手段,希望后续的区块链项目可以引以为戒,共筑区块链行业的安全防线。

一、事件分析

通过分析发现,攻击者通过10次调用emergencyWithdraw()函数将至少210多个WETH、5300多个DAI、16000多个USDT、360个LINK和少量WBTC进行了紧急提取。

image.png

image.png

之后攻击者将230多个ETH转移到了混币平台 Tornado.cash,实现资产转移。

image.png

至此,资产转移的的整个过程简单明了,根本原因是由于有人调用了本该只有管理员才能执行了emergencyWithdraw()函数。

image.png

二、事件后续

此次攻击产生的原因只有两种可能,一种是管理员私钥泄漏,被攻击者窃取了私钥并进行恶意转帐;第二种就是项目方监守自盗。

事件一出,在社交媒体上猜测 Visor Finance 项目方跑路的声音响成一片,最终项目方是在几小时后发布了事件分析报告并公布了补偿计划,证明了此次攻击事件的根本原因是由于管理员私钥泄漏。

image.png

三、安全分析

根据整个攻击过程的分析,根本原因在于攻击者可以利用被攻击者的账户地址调用合约,窃取受害者私钥授权合约执行并向攻击者地址进行大额数字资产的转账。在之前《黑暗森林中的身份危机:区块链密钥保护的重要性》的分析中,SharkTeam就向大家进行了风险提示并提醒大家进一步重视密钥保护,做好自身安全防护。

image.png

攻击画像:窃取用户密钥

第一步:攻击者窃取用户私钥(钓鱼或渗透钱包)

第二步:使用被攻击者账户部署攻击合约,攻击合约是整个自动化攻击的核心。

第三步:使用被攻击者账号进行交易,将所有资产转到攻击合约中。

第四步:攻击合约自动执行,通过Uniswap等去中心化交易所将资产转出,防止项目方启动应急机制锁定被盗资产。

第五步:被盗资产进一步被转移到匿名性更强的混币平台,对抗AML等安全机制。

攻击分为5步,却有极强的目的性,一旦私钥丢失将非常难以进行防范。未知攻焉知防,私钥通常面临社会工程学攻击和漏洞利用攻击两种类型。社会工程是基于欺骗和随后受害者的错误行为,而漏洞利用则是利用漏洞以及软件架构缺陷实施攻击的专业技术。

1.社会工程

社会工程调用方案的特点在于网络用户直接参与其中。攻击是向用户发送虚假信息,并在用户执行某些操作(打开邮件,移动链接或下载恶意附件)后激活。研究表明,有4%的用户会单击网络钓鱼链接。用户只要单击一下网络钓鱼链接,攻击者就可以进入系统。社会工程调用方案包含以下攻击手段:

(1)克隆网络钓鱼

攻击者会在官方网站上创建网站的副本,具有类似名称的网站或伪造的页面,然后将包含伪造资源链接的链接发送给地址中的潜在受害者。

(2)社交网络钓鱼

黑客入侵知名人物的帐户并代表他们发布包含 网络钓鱼 链接的帖子,创建克隆的知名人物、社区等的页面的情况越来越普遍。攻击者利用Facebook允许使用任何名称创建页面从假克隆页面进行活动,这些假克隆页面的名称与真实社区页面非常相似。

(3)针对性网络钓鱼

网络钓鱼的对象是大型投资者、钱包所有者、公司一把手、加密货币所有者。攻击者清楚地知道他们到底想攻击多少人。攻击者计算受害者在其他领域中的活动,并窃取模仿这些领域的必要数据,与受害者进行接触。

(4)虚假钱包

攻击者发布虚假钱包。虚假钱包分为两类。

第一类:虚假钱包启动后,恶意的程序可以向用户请求或获取其私钥和钱包密码;

第二类:虚假钱包不会通过生成账户地址和私钥来创建新的钱包,恶意的程序仅显示攻击者的账户地址,而用户无法访问私钥。私钥归诈骗者所有。一旦启动了恶意的应用程序,用户就认为该应用程序已经生成了他的账户地址,用户可以在其中存储加密货币。如果用户将其资金发送到此钱包,他将无法提取,因为他没有私钥,而持有私钥的攻击者则可以提取用户的资金。

2.漏洞利用

利用网络漏洞以及软件和基础架构的缺陷来实现攻击手段。此类攻击一般包含以下攻击手段:

(1)DNS劫持

在此攻击中,攻击者最初会创建恶意访问点,并诱使客户端连接到运行假DNS服务器的访问点。该服务器将特定站点重定向到攻击者的网络钓鱼服务器。

(2)会话劫持

该攻击基于使用有效会话(有时也称为会话密钥)来获得对计算机系统上信息或服务的未授权访问。特别是,它用于表示用于对远程服务器上的用户进行身份验证的cookie的盗窃。一种流行的方法是使用源路由的IP数据包。IP数据包通过B的计算机,这使得网络上B点的攻击者可以参与A和C之间的对话。攻击者可以在原始路由被禁用的情况下盲目捕获,发送命令但看不到响应来设置允许从网上其他地方访问的密码。攻击者还可以使用嗅探程序“监视” A和C之间的对话。这就是“中间人攻击”。

(3)恶意软件

当使用基于恶意软件的网络钓鱼时,恶意软件被用来在被攻击者计算机上存储凭据并将其发送给攻击者,即发送给钓鱼者。例如,可以通过带有附件doc文件的恶意垃圾邮件来传递威胁,该文档文件包含下载恶意程序的Powershell脚本,然后,恶意程序找到存储的钱包和凭据并将其发送给钓鱼者。木马AZORult和Pony Formgrabber以及bot Qbot是最常用的恶意程序。同时,网络犯罪分子还会继续使用以前针对银行的攻击工具,现在成功地使用它们来破解加密钱包,获得钱包的密码以及用户的个人账户等信息。

(4)按键/屏幕记录器

当用户从其设备输入信息时,它们将用于窃取数据。随着虚拟键盘和触摸屏的出现,使用了屏幕截图将其发送给攻击者。

四、安全建议

通过如上的分析可以看出,虽然不同于传统互联网的账号密码体系,但区块链账户同样面临私钥被盗的风险,由于通常私钥与数字资产紧密相关,其安全风险更高。在智能合约开发和部署过程中,应确保管理员等特殊账户地址私钥的机密性,防止出现私钥泄露或被盗的情况;关键逻辑应当充分考虑鉴权时的风险,使用多重签名或分散权限等方式降低风险;在项目上线前应进行严格的智能合约审计,确保安全。

提高私钥保护意识,对访问的网页或下载安装的钱包提高警惕,防止被钓鱼攻击。

制定AML和应急方案,提高对抗黑客攻击的风险防范能力。

我们看到,Visor Finance也承认此次 攻击 的根本原因也是没有对Hypervisor 的所有管理功能使用多重签名,可见多重签名对关键业务逻辑确认的安全行多么重要。下面对多重签名过程做个简单介绍,希望更多的开发者能快速掌握并应用,避免因私钥泄漏或权限问题产生安全问题。多签又叫多重签名,它的优势是可以多方对一笔交易达成共识,才能交易成功。比如,3个人合伙开公司,他们的对外付款是比特币,为了防止管理财务的人作恶,于是他们可以创建2/3多签的地址,每个人持有一个私钥,对于每一笔付款,必须任意2个人都签名了才能支付出去。以太坊中,一个地址(私钥)代表一个人。如何表示你同意花费某笔资产?有两种方式:(1)用你的私钥对相应的花费(金额、目标地址等等)进行签名,并给出签名结果;(2)用你的私钥发送一笔以太坊交易,去调用某个特定接口,并给予特定参数。

以第一种方式为例,在以太坊上实现多签,过程如下:

image.png

(1)首先需要创建多签合约并发布到以太坊。

(2)然后需要在合约中添加多个账号,每个人都可以向自己钱包中的账户里存钱以及把账户的钱转到其他账户。

(3)当有人想通过多签合约转账时,我们先通过钱包中的多签合约构建一笔交易,放入pending队列中。

(4)其他账户可以通过函数接口观察pending队列里的所有交易,如果认为可行就对认可的交易进行签名。

(5)当一笔处于pending状态的交易被指定数量的人认可之后,即该交易包含了指定数量的签名后,这笔交易就可以发布到以太坊上面了。

==

免责声明:本文版权归原作者所有,不代表MyToken(www.mytokencap.com)观点和立场;如有关于内容、版权等问题,请与我们联系。