区块链一直以不可篡改、分布式、永久可查验等特点得到人们的青睐,这些特点使区块链听起来非常安全,甚至像是个万无一失的技术。但实际上,针对区块链的攻击一直都存在,且每次发生,往往会造成巨大的损失。
对于区块链的开发者和使用者来说,了解这些攻击的原理是至关重要的。预防胜于治疗,切莫“头痛医头,脚痛医脚”。
基于对等网络的攻击
1、日蚀攻击-一个节点将选择“x”个节点作为访问区块链的基础,该节点从这“x”个节点获取区块链的数据。
如果攻击者可以使得此节点选择的“x”个节点都为攻击者可控制的节点,就可以使得被攻击节点处在一个“孤立”的状态。被攻击节点将从主网中被隔离出来,完全由攻击者控制。
如下图所示:
成都链安:whaleswap.finance项目遭受攻击,至少损失5,946 个BUSD和5964个USDT:6月21日消息,据成都链安“链必应-区块链安全态势感知平台”安全舆情监控数据显示,whaleswap.finance项目遭受攻击,成都链安技术团队分析发现原因可能是因为whaleswap.finance Pair合约的K值校验存在问题。每当用户在进行交换时,K值校验中传入的参数量级存在问题,造成K值校验失效。攻击者先通过闪电贷借一笔BSC-USD,之后归还闪电贷时K值校验参数量级为10000^4。而K值校验时采取的参数校验量级为10000^2,导致K校验失效。[2022/6/21 4:41:57]
图一
2、
女巫攻击-这里的“女巫”并不是指拥有魔法的女人,而是出自一部美国电影《Sybil》,剧中的主人公拥有16重人格,扮演着16个不同的角色。而女巫攻击就是指同一节点伪装成不同节点发起的一种攻击。
成都链安:8ight Finance项目疑似私钥泄露,资金总损失接近100万美元:据成都链安链必应-区块链安全态势感知平台舆情监测显示,8ight Finance项目方疑似私钥泄露导致被攻击,资金已从tornado转移出去,资金总损失:868587 DAI,123621 1USDT,10843 EIGHT,80 ONE.[2021/12/8 12:58:37]
攻击者通过伪造的身份,使少量节点伪装成大量节点,进而影响整个网络。攻击者可能利用女巫攻击进行双花、实现51%攻击等,并且要实施日蚀攻击,一般都会先进行女巫攻击。
图二
3、
分析 | 成都链安:钱包Safuwallet服务器是否存储了用户的私钥是关键:针对“网页加密货币钱包Safuwallet被黑与币安服务器出现问题是否存在关联”一事,成都链安在接受金色财经采访时指出:“safuwallet是第三方extension插件钱包,用户资产被盗,主要原因还是私钥被盗,发生了这样的问题,对于钱包服务器而言只要不存储用户的私钥,只做相关交易数据的处理的话,两者之间就没有关系,如果服务器存储了用户的私钥,那黑客就有可能通过攻击服务器获取到用户的私钥。推特消息称是safuwallet被注入了恶意代码,黑客可能先将恶意代码注入到safuwallet中,然后引诱受害者安装钱包,再获取到受害者的私钥后,进行相关代币的转移。事实上,对于非官方钱包,安全性确实不太好保障。对于此类钱包,私钥被盗的时间时有发生。对于这个事件,后续的影响主要是用户的损失、钱包和交易所的声誉。”[2019/10/12]
异形攻击-异形攻击又称为“地址污染”。
声音 | 成都链安:使用链上合约轮询开奖机制可能具有安全风险:今日早晨7点半,成都链安态势感知系统鹰眼对某游戏合约交易发出预警,我们的安全人员对该预警进行分析发现,攻击者正在使用一种新的途径获得随机数种子,并通过合约不断发起延时交易,尝试预先计算或者得到游戏合约的开奖参数,安全团队已通知项目方进行确认,建议具有类似基于线上合约定时开奖模式的项目方及时自查,避免遭到损失。望项目方看到本预警消息能够及时联系我们。[2019/6/12]
当不同公链使用兼容的握手协议时,我们称这些公链为同类链。攻击者将同类链的节点数据加入被攻击的公链节点中,当被攻击的公链节点进行通信并互换地址池时,就会污染其他正常节点的地址池,并持续污染整个公链网络,导致公链通信性能下降,最终造成节点阻塞等现象。
很多借鉴以太坊开发的区块链系统,与以太坊使用了相同的通讯算法,它们都属于以太坊的同类链。
基于共识和挖矿的攻击
1、自私挖矿?–区块链的共识机制决定着节点会认同最长链才是真实有效的。攻击者可以在当前最新区块上持续挖矿但不进行广播,从而隐藏自己挖出的区块。
当攻击者节点隐藏的区块长于已在链上的公布的最长区块时再进行广播,从而成为最长链,使得原先的最长链进行回滚,从而实现双花等攻击。
同时,进行自私挖矿的节点可以比其他诚实节点获得更大的利益。假设在区块1的基础上继续的挖矿,自私节点挖出“2’”和“3’”,但其并不对外广播这两个区块,并继续在“3’”的基础上继续挖矿,而当其他节点挖出了“2”时,其也对外广播“2’”,使得链上产生分叉,如此继续,当自私节点挖出较长的链并进行广播时,其可以获得“2’”到最新区块的所有挖矿奖励。
如下图所示:
图三
2、
挖矿木马?–攻击者通过上传恶意程序到公开网络或者制作蠕虫病等方式将挖矿程序传播到他人计算机上。
利用他人计算机资源和电力进行挖矿,获取挖矿利益。被攻击的计算机会消耗大量的资源,导致电脑卡顿,使用寿命减短。
图四
3、
51%算力攻击?–51%算力攻击是区块链最著名的攻击方式之一。
在一个POW共识的区块链网络中,算力即是权力。当超过50%的算力都由一人控制时,此人就可以任意的撤销和阻止交易,进而实现双花。
这种攻击在大型网络中较难实现,在小型网络中发生的可能性更高。在POS共识中与之类似的有币龄累计攻击和长距离攻击。
4、时间劫持攻击?–一个节点是通过其他节点时间的中位值来确定时间的。
如果攻击者将一个恶意的节点列表置入被攻击节点的对等节点列表中,就可以控制此节点的时间,例如通过日蚀攻击。
被攻击的节点将不会接收来自正常网络的出块。由于这些交易无法提交到实际的区块链网络,攻击者便可以对此节点发起双花等攻击。
基于0确认的攻击
1、芬尼攻击?–如果攻击者可以隐藏一个包含自己交易的区块,就可能实现一笔双花。
当一个交易所或其他机构接受0确认的交易时,攻击者可以向其进行转账,花费其隐藏区块中已经花费的资金,在新交易的区块广播前,将隐藏的区块广播。
因为所隐藏的区块时间更早,所以在后面进行的花费将被回滚,从而实现双花。
2、种族攻击?–此类型攻击是“芬尼攻击”的分支,攻击者将同时进行两笔交易,花费同一笔资金,一笔转给支持0确认的商家进行提现;一笔转账给自己,并给予更高的gas。
节点会优先处理gas更高的交易,所以后一笔交易将不会被执行。通常攻击者会连入与被攻击商家较近的节点进行操作,使得商家优先收到最终不被执行的交易。
写在最后
区块链中的漏洞导致的代价可能非常之高,尤其是公链,任何人都可以匿名的连入公链。
而区块链的不可更改性又使得攻击发生后更难以挽回损失,虽然可以通过硬分叉和软分叉进行修复,但显然这不是一个好的方法。因此在实际上线前做好安全审计和是尤为重要的。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。