一、Roll被攻击事件始末
3月14日消息,社区代币平台Roll被攻击,基于其发行的代币在Uniswap被大量抛售,受影响的代币包括ALEX、RARE、BAEPAY、KERMAN、WHALE、PICA等。据统计,WHALE损失1362 ETH,FWB损失797 ETH,KARMA损失155 ETH,JULIEN损失115 ETH,黑客共获利2998 ETH,并将700 ETH存入混币平台Tornado.Cash。后续,Roll官方声称此次安全事故的原因似乎是对热钱包的入侵导致,并为受此影响的用户筹集 50 万美元的资金补偿(损失2998ETH约价值500万美元)。
通付盾区块链安全团队(SharkTeam)第一时间对攻击事件进行了跟进并发现这次攻击是由于被攻击者私钥丢失造成的,似乎并没有特别之处。但后续我们发现事情远不止这么简单,一种区块链上以窃取私钥为基础,以窃取用户资产为目的的新型自动化攻击手段浮出水面,此次Roll被攻击事件或许只是一个开始,给我们敲响了警钟。
我们先来对Roll攻击事件本身进行分析:
攻击者:0x5fe4e7124d1da9046edc67a6499b565241be0167
被攻击者:0x6060b77a5d8309eb36374198e197072205ea2bb3
攻击过程如下:
(1)攻击者利用被攻击账户调用合约,利用 approve 授权给攻击合约权限。交易详情如下:
攻击合约地址为 0xeaa86ddd49d8907c939413e92888536e4587bd9a
(2)攻击者通过攻击合约进行一次性转账操作,其中包含多种Token。交易详情如下:
交易执行追踪如下:
(3)攻击者使用攻击合约在 Uniswap 进行Token交换,交易详情如下:
交易执行追踪如下:
根据整个攻击过程的分析,根本原因在于攻击者可以利用被攻击者的账户地址调用合约,利用 approve 授权给攻击合约权限,攻击者必然知道被攻击者账户地址的私钥。因此,被攻击者的私钥在管理和使用的过程中存在不安全因素,导致私钥被攻击者通过一定的方式窃取到。
建议以太坊用户管理好自己的私钥,防止私钥泄露以及私钥被攻击者窃取。
二、以私钥窃取为基础,以窃取数字资产为目的
3月15日消息,多个 DeFi 协议表示网站被 DNS 攻击,攻击者通过网站请求用户提交用户的私钥或助记词,目前已有借贷协议 Cream Finance 和交易协议 PancakeSwap 在推特上公开确认了该事件,并提醒用户不要提交私钥等信息。3月16日,Cream Financ 和 PancakeSwap表示已重新获得对其 DNS 的访问权。
私钥泄露风险集中爆发,或许并不是巧合。以此次Roll事件为例,窃取用户私钥只是第一步,以窃取用户资产为目的的自动化攻击设计,才是真正的威胁。这也给各区块链项目服务提供商敲响了警钟,应以保护用户为核心,做好自身安全防护,切莫沦为黑暗森林身份危机阴影下的猎物。以Roll被攻击事件为例:
Roll安全事件攻击画像
第一步:攻击者窃取用户私钥(钓鱼或渗透钱包)
第二步:使用被攻击者账户部署攻击合约,攻击合约是整个自动化攻击的核心。
第三步:使用被攻击者账号进行交易,将所有资产转到攻击合约中。
第四步:攻击合约自动执行,通过Uniswap等去中心化交易所将资产转出,防止项目方启动应急机制锁定被盗资产。
第五步:被盗资产进一步被转移到匿名性更强的混币平台,对抗AML等安全机制。
攻击分为5步,却有极强的目的性,自动化程度很高,一旦私钥丢失将非常难以进行防范。
那么,既然攻击的起始点是私钥窃取,那我们到底应该如何才能保护好我们的私钥?这里必须要提到区块链钱包,钱包是存储账户地址和使用数字货币的工具,比如以太坊钱包存储以太坊账户地址以及账户的以太币并且可以进行交易。区块链钱包并不是传统意义上的实体的钱包,而是使用加密技术加密保存账户地址的公私钥对的工具,有了钱包密钥就可以拥有钱包中账户地址的支配权,可以支配其中的数字货币,尤其是以太坊钱包,有了密钥不仅可以支配其中的以太币,更可以支配其中的合约地址对应的智能合约。由于私钥是一长串毫无意义且毫无规律的字符,比较难以记忆,因此出现了助记词(Mnemonic),助记词是利用固定算法,将私钥转换成十多个常见的英文单词,作为区块链数字钱包私钥的友好格式。助记词和私钥是等价的,可以相互转换。
公钥和地址的生成都依赖于私钥,而私钥和助记词时互通的,所以私钥和助记词是黑客窃取的最为核心的目标。而钱包保存了账户地址及其私钥,因此,钱包也是黑客攻击的目标。
未知攻焉知防,私钥通常面临“钓鱼”和钱包私钥保护不当两类安全风险。
三、钓鱼风险
所谓“网络钓鱼攻击(Phishing)”,指的是攻击者伪装成可以信任的人或机构,通过电子邮件、通讯软件、社交媒体等网络工具,从而获取收件人的用户名、密码、私钥等私密信息。随着技术的发展,网络钓鱼攻击不仅可以托管各种恶意软件和勒索软件攻击,而且更糟糕的是这些攻击正在呈现不断上升的趋势。
网络钓鱼攻击可以分为两种类型:社会工程和漏洞利用。社会工程是基于欺骗和随后受害者的错误行为,而漏洞利用则是利用漏洞以及软件架构缺陷实施攻击的专业技术。
1.社会工程
社会工程调用方案的特点在于网络用户直接参与其中。攻击是向用户发送虚假信息,并在用户执行某些操作(打开邮件,移动链接或下载恶意附件)后激活。研究表明,有4%的用户会单击网络钓鱼链接。用户只要单击一下网络钓鱼链接,攻击者就可以进入系统。
社会工程调用方案包含以下攻击手段:
(1)克隆网络钓鱼
攻击者会在官方网站上创建网站的副本,具有类似名称的网站或伪造的页面,然后将包含伪造资源链接的链接发送给地址中的潜在受害者。
(2)社交网络钓鱼
黑客入侵知名人物的帐户并代表他们发布包含网络钓鱼链接的帖子,创建克隆的知名人物、社区等的页面的情况越来越普遍。攻击者利用Facebook允许使用任何名称创建页面从假克隆页面进行活动,这些假克隆页面的名称与真实社区页面非常相似。
(3)针对性网络钓鱼
网络钓鱼的对象是大型投资者、钱包所有者、公司一把手、加密货币所有者。攻击者清楚地知道他们到底想攻击多少人。攻击者计算受害者在其他领域中的活动,并窃取模仿这些领域的必要数据,与受害者进行接触。
(4)膨胀
攻击者人为地提高价格,以便于管理流动性低,市值小的加密货币。空前的价格膨胀通过众多媒体渠道(YouTube,Twitter,Telegram)广泛报道,并受到大量广告宣传,有望为外部投资者带来高回报。在用户进行了大量投资之后,攻击者停止支持加密货币的发展,其价格恢复到原始位置。
(5)虚假钱包
攻击者发布虚假钱包。虚假钱包分为两类。
第一类:虚假钱包启动后,恶意的程序可以向用户请求或获取其私钥和钱包密码;
第二类:虚假钱包不会通过生成账户地址和私钥来创建新的钱包,恶意的程序仅显示攻击者的账户地址,而用户无法访问私钥。私钥归诈骗者所有。一旦启动了恶意的应用程序,用户就认为该应用程序已经生成了他的账户地址,用户可以在其中存储加密货币。如果用户将其资金发送到此钱包,他将无法提取,因为他没有私钥,而持有私钥的攻击者则可以提取用户的资金。
2.漏洞利用
利用网络漏洞以及软件和基础架构的缺陷来实现攻击手段。此类攻击一般包含以下攻击手段:
(1)基于DNS的网络钓鱼
在此攻击中,攻击者最初会创建恶意访问点,并诱使客户端连接到运行假DNS服务器的访问点。该服务器将特定站点重定向到攻击者的网络钓鱼服务器。
(2)会话劫持(cookie劫持)
该攻击基于使用有效会话(有时也称为会话密钥)来获得对计算机系统上信息或服务的未授权访问。特别是,它用于表示用于对远程服务器上的用户进行身份验证的cookie的盗窃。一种流行的方法是使用源路由的IP数据包。IP数据包通过B的计算机,这使得网络上B点的攻击者可以参与A和C之间的对话。攻击者可以在原始路由被禁用的情况下盲目捕获,发送命令但看不到响应来设置允许从网上其他地方访问的密码。攻击者还可以使用嗅探程序“监视” A和C之间的对话。这就是“中间人攻击”。
(3)恶意软件
当使用基于恶意软件的网络钓鱼时,恶意软件被用来在被攻击者计算机上存储凭据并将其发送给攻击者,即发送给钓鱼者。例如,可以通过带有附件doc文件的恶意垃圾邮件来传递威胁,该文档文件包含下载恶意程序的Powershell脚本,然后,恶意程序找到存储的钱包和凭据并将其发送给钓鱼者。木马AZORult和Pony Formgrabber以及bot Qbot是最常用的恶意程序。同时,网络犯罪分子还会继续使用以前针对银行的攻击工具,现在成功地使用它们来破解加密钱包,获得钱包的密码以及用户的个人账户等信息。
(4)按键/屏幕记录器
当用户从其设备输入信息时,它们将用于窃取数据。随着虚拟键盘和触摸屏的出现,使用了屏幕截图将其发送给攻击者。
四、数字货币钱包安全风险
根据数字货币钱包是否连网,通常分为冷钱包和热钱包两种。冷钱包就是没有连网的钱包,又称为离线钱包。热钱包就是能够联网上线的钱包,也称为在线钱包。热钱包的安全性比冷钱包的安全性低,一旦用户托管在服务器端的私钥被窃取,用户的数字资产将面临被盗风险。冷钱包的密钥能够通过物理、电磁、声、光、电等方式的隐蔽信道传输到附近的联网计算机、智能手机、摄像头等其他接收器中,相对安全,但也不是绝对安全。此处主要对冷钱包的安全风险做出分析。
对数字货币钱包进行渗透攻击的过程分成以下两个阶段:
第一阶段:钱包应用安装前,由于操作系统和钱包应用都是通过联网来进行操作的,因此攻击者可以通过下载地址来修改操作系统和钱包代码,也可以通过替换有后门的镜像来传播恶意木马。
第二阶段:钱包应用安装后,热钱包的安全性比冷钱包的安全性低,一旦用户托管的私钥没有妥善保存被窃取,用户的数字资产将面临被盗风险。冷钱包的密钥能够通过物理、电磁、声、光、电等方式的隐蔽信道传输到附近的联网计算机、智能手机、摄像头等其他接收器中。因此,钱包的攻击类型也可以分为很多种:
(1)物理方式:通过USB这种可移除设备插入目标计算机中,利用交易签名或者其他机会来窃取密钥,并将密钥存储在隐蔽分区。当USB设备再次插入其他联网计算机时,便可以将原本存储在隐蔽分区的密钥信息传给黑客。比如基于货币钱包的BeatCoin攻击。
基于货币钱包的BeatCoin攻击
(2)电磁隐蔽通道:利用计算机在显示时,会产生电磁泄露信号,由于该方式的实现需要电磁接收设备,因此适用范围并不是很广。
(3)声隐蔽通道:利用人耳听不到的超声波完成了数据传输从而窃取密钥。
(4)光隐蔽通道:利用计算机键盘的 LED 或者HDD 和路由器的指示灯等从目标计算机中窃取密钥。
(5)电隐蔽通道:通过改变 CPU 负载来控制系统中计算机中电力的消耗来进行数据传输。
五、安全建议
通过如上的分析应该可以看到,虽然不同于传统互联网的账号密码体系,但区块链账户同样面临私钥被盗的风险,由于通常私钥与数字资产紧密相关,其安全风险更高。保护私钥安全,既是用户的责任也是项目方的责任。
用户应提高私钥保护意识,对访问的网页或下载安装的钱包提高警惕,防止被钓鱼攻击。
项目方应以用户资产安全为核心,做好热钱包、冷钱包、系统服务、智能合约等相关模块的风险评估和安全审计,确保系统本身安全。
制定AML和应急方案,提高对抗黑客攻击的风险防范能力。
底层链平台可采用分组密码、环签名等技术,从区块链底层提高账户安全保护能力。
该分析报告仅供技术交流,切勿采用相关方法进行操作,否则后果自负。
特别提醒:本网内容转载自其他媒体,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。