MoleEdu|安全合规之周-区块链安全

moledao
媒体专栏
热度: 14656

MoleEdu|安全合规之周-区块链安全

Moledao和OGBC联合举办的Web3系列课已经进入尾声啦,本周是第七周,开发者项目实战之周,会给大家带来Solidity语言教程和NFT智能合约教程。我们的课程笔记也进入到了第四周,Web3安全合规之周。

今天带大家回顾Bryce导师的”区块链安全“课程!课程录屏已经上传Moledao的Bilibili。

第四周:Web3安全合规之周 | 区块链安全
www.bilibili.com/video/BV1bY411Y7gp/?spm_id_from=333.999.0.0&vd_source=8497d6b38e91681ca1de4fd1c2530a4c

导师介绍Bryce导师有8年网络安全经验,曾就职于大型互联网和物联网公司安全实验室,擅长区块链安全、人工智能安全、物联网安全等领域。目前就职于Beosin,主要负责区块链链平台和智能合约安全研究。他期待与web3同行者一起守护生态安全。

漏洞学习收获

漏洞

01 web3生态安全态势

1.1 2022年攻击事件概况

根据“2022全球web3区块链安全态势报告”统计,2022年的重大攻击事件总计167起,总损失36亿美元,相比2021年,总损失增长了47%。如下图“2022季度损失统计图”显示,第一和第四季度的总损失较高。

漏洞

1.2 被攻击的项目类型

被攻击的项目类型主要分为:跨链桥、DeFi、中心化交易所、链平台、钱包、NFT。其中DeFi主要包含稳定币、交易借贷、资产管理、基础设施和保险等项目。2022年全年发生了12次跨链桥安全事件,损失接近18.9亿美元,是所有项目类型中损失最多的。在跨链桥安全事件中,单次损失超过1亿美元的有五起,攻击手法包括社会工程学、私钥泄露、链平台或合约漏洞等。

在全年的167起主要攻击事件中,被攻击次数最多的是DeFi,共发生了113次,占比达到了67.6%。DeFi的总损失排名第二,仅次于跨链桥,接近9.5亿美元。与用户相关或涉及用户最广的是交易所和钱包类的安全事件,共发生了21起,损失金额达到了6亿美元。

漏洞

1.3 主要攻击手法

攻击手法可归纳为漏洞利用、社会工程学、私钥泄露、闪电贷、价格操控、虚拟机漏洞、交易重放和钓鱼等。其中“漏洞利用”是全年频率最高并且损失最多的一个攻击方式,去年总共发生有87起,造成的总损失达到了14.58亿美元。其次是社会工程学攻击,去年仅有一起,就是Ronin事件,事件造成了6.24亿美元的损失。私钥泄露也占了重要比例,总共19起泄露事件,损失总计达到了4.3亿美元;总共有8起单次损失金额超过千万美元。据调查结果,团队成员或离职前团队成员盗取私钥的情况较为普遍,因此提醒项目方要加强团队的安全管理和运营安全;同时在使用第三方工具时进行专业的安全评估。

02 链平台安全

针对链平台的攻击一般分为两类,一种是针对共识层面的攻击,另一种则是网络层面的攻击。在共识层面上,最常见且影响最大的攻击是 51% 算力攻击,这种攻击在链平台上已经发生了很多次。历史上也有很多 51% 攻击的案例,我们可以在下图看到历史上攻击事件的案例。

漏洞

2.1 51%算力攻击的原理

在区块链中,目前比较常用的共识算法是 POW 和 POS。比特币一直采用 POW 共识。在这种共识算法中,有两个要注意的点。第一是采用PoW共识机制来解决如何获得记账权的问题,第二是采用“最长链共识”解决如何记账的问题。简单来说,如果网络中同时出现了两个版本的区块链,共识算法会促使全网的矿工选择最长的那一条链。“51%攻击”,其实就是是指攻击者控制全网50%以上的算力。

下图展示了攻击是如何发生的:当发生“51%算力攻击”时,一个恶意的矿工获得了记账权,并打包交易;然而,他可以选择不将交易广播出去,从而导致出现两个版本的区块链。在攻击前,全网矿工认可绿色链作为主链。在攻击后,红色攻击者私自打包了一个区块链,但没有将其广播出去。例如,在第40个区块的位置,他花费100个比特币购买了一辆汽车。尽管交易得到了大家的共识,但在他私自打包的区块链中并没有记录这个交易。在第41个块时,商家已经确认了交易;但攻击者在自己的区块链中没有记录交易。如果他已经控制了超过51%的算力,那么他就有更大的机会比其他矿工更快地算出这个区块,并将其添加到链上,就像下图中“攻击后”的情况。因为他拥有更多的算力,所以他出块的概率更高。以至于如果他出的块的比上面的块更多,那么根据最长链的共识,他放出来的这个链就会被当作主链。因为他没有把自己消费的交易打包进去,所以他自己还有100个比特币的余额,但事实上,他已经把这辆车开走了,他可以再用这100个比特币去购买其他物品。我们也把这种情况称为“双花攻击”。

漏洞

2.2 其他攻击方式

包括:日蚀攻击、女巫攻击和自私挖矿攻击。

在实际生活中,“女巫攻击”更常见。包括一些恶意的榜单刷票行为,例如一个人可以伪装成多个不同的人去刷票。也包括恶意空投活动,一些人伪装成多个不同的用户或身份,去抢夺空投奖励。有三种规避”女巫攻击“的方法。第一种方式是通过工作量证明身份。第二种可以通过资源检测来找到真实节点与伪造节点之间的差异,以确定是否为女巫节点。第三种是对这些节点进行身份验证,以确保它们可信。

漏洞

03 智能合约安全

3.1 漏洞利用

代码部署在智能合约上就没有办法修改,因此就吸引了一些攻击者利用合约中的漏洞来获利。也正是因为这样,所以从智能合约里面被盗的资产是没有办法收回的,去追踪也是比较复杂。

“漏洞利用”为全年频率最高、且损失最多的攻击方式。2022年全年涉及漏洞利用的攻击事件有87起,总损失达到了14.58亿美元。再按照漏洞类型细分,造成损失最多的前三名分别是验证问题、链平台漏洞和业务逻辑/函数设计不当。

漏洞下图展示了常见的漏洞类别:

漏洞

3.2 漏洞利用 - 重入漏洞

3.2.1 漏洞原理

漏洞

3.2.2 实现攻击的条件

大多数重入漏洞出现在转账场景中。转账有两种情况:向普通钱包用户的EOA账户转账,或向合约账户转账。在合约账户转账的情况下,会默认调用受害者的一个fallback函数,如果这个函数包含恶意功能,存在安全隐患。

真正要实现重入攻击,必须具备下图中的两个条件:

漏洞

关于“账本的改变在实际转账后”的调用过程,可参照下图代码:

漏洞

举例(如下图):攻击者帐户使用1个以太币调用 Attacker.beginAttack 函类数将会重复攻击受害者帐户,并将赚取远超其提供以太币的数量。

漏洞

3.2.3 漏洞修复建议

1. 使用 transfer() 函数:在可能的情况下,将ether发送给外部地址时使用solidity内置的transfer()函数,transfer()转账时只发送2300gas,不足以调用另一份合约(即重入发送合约)。

2. 检查-生效-交互模式(checks-effects-interactions):确保状态变量改变发生在ether被发送(或者任何外部调用)之前,即Soliditv官方推荐的“检查-生效-交互”模式。

3. 使用互斥锁:添加一个在代码执行过程中锁定合约的状态变量,防止重入调用。


3.2.4 OrionProtocol被攻击案件分析

事件背景:2月3日,以太坊和BSC链上的OrionProtocol合约遭到了重入攻击,攻击者获利 300 万美金。Orion是一种新型的DeFi平台,它围绕着流动性聚合器来连接主要的中心化和去中心化的交易所。

下面几个截图展示了攻击发生的过程;导师详细的讲解请参考课程视频回放(从24分30秒到33分):

漏洞

漏洞

漏洞漏洞漏洞

漏洞

3.3 智能合约审计

在2022年监测到的167次主要攻击事件里,经过审计与未经审计的项目比例分别为51.5%和48.5%。在86个经过审计的项目里,仍有39次攻击事件(45%)源自于漏洞利用。建议项目上线之前一定要寻找专业的安全公司进行审计,才能有效地保障资产安全。


04 智能合约安全4.1 钓鱼攻击

根据统计数据,常见的钓鱼攻击分为以下四类:

第一种:伪造官网引诱用户进行转账。

第二种:假空头诱骗用户进行授权。

第三种:诱骗用户去填写助记词。

第四种:虚假的discord。

钓鱼攻击的入口如下面两张截图,希望大家注意防范。

漏洞

漏洞

4.2 私钥安全

私钥安全分“项目方”和“用户”两个类别。

4.2.1 项目方私钥安全

项目方私钥泄露造成的损失一般都是非常大的。下图是几次重大泄露事件总结:

漏洞

4.2.2 用户私钥安全

1. 钓鱼网站(诱骗用户填写助记词)

2. 假App钱包:利用搜索引擎伪造钱包官网。向受害者发送邮件、海报等,引诱用户下载假钱包。通过社工的方式,首先获取受害者信任,然后再诱骗其下载假APP钱包。

3. 木马:这种攻击主要是通过 Discord 邀请用户参与新的游戏项目内测,打着 “给予优惠” 等幌子,或是通过群内私聊等方式发一个程序让你下载,一旦你在电脑上运行,它会扫描你电脑上的文件,然后筛选包含 Wallet 等关键词的文件上传到攻击者服务器,达到盗取加密货币的目的。


4.3 安全防护措施

4.3.1 钱包安全

用户可通过以下四种措施,来保障自己的钱包安全。

漏洞

4.3.2 私钥安全

在存储私钥的时候,做到以下三点:

1. 不使用剪贴板保存私钥

2. 助记词不使用云服务保存私钥

3. 助记词警惕供应链攻击

4.3.3 钓鱼防护

避免钓鱼攻击,有以下三种措施:

1. 社交媒体交叉信息验证

2. 使用防钓鱼插件

3. 谨慎点击不明链接


05 金融安全

5.1 Rug Pull骗局

Rug Pull骗局是指恶意的项目方在开盘后收集到资金后就立刻跑路的行为。下图是2022年月度Rug Pull骗局造成的损失金额。

2022年全年共发生Rug Pull事件243起,总涉及及金额达到了4.25亿美元。243起Rug Pull事件中,涉及金额在千万美元以上的共8个项目。210个项目(约86.4%)跑路金额集中在几千至几十万美元区区间。

漏洞

以下几点提示,可以帮助大家识别Rug Pull骗局:

1. Rug Pull项目大多无法通过审计,因为要隐藏后门,而审计公司很容易发现。审计公司不会为这样的项目提供合格的审计报告。

2. Rug Pull项目的社交媒体信息通常不完善,统计显示,至少有一半的Rug Pull项目缺乏完善的官网、推特、Telegram或Discord群组。

3. 项目不规范:抄袭其他项目的白皮书,语法错误等等。

4. 蹭热点的项目,这些项目基本上都是在3个月内卷到资金后就跑路。


5.2 钞能力攻击

顾名思义,攻击者要有很高的资金储配,不然无法发动攻击。下图是去年去中心化交易平台Mango被黑客攻击的过程:

漏洞

5.3 其他骗局:

5.3.1 老鼠仓

“老鼠仓”是金融行业的一个很常见的民间俗语,指的就是涉嫌内幕交易的行为。基本表现为:在利好消息出来之前,那些掌握内部消息的买家会低价购入大量代币,等利好一兑现就立马砸盘走人。

据相关数据分析,某个加密钱包在币安宣布即将上架Gnosis币的前6天购买了价值36万美元的Gnosis币,之后在安宣布 Gnosis币即将上线的四分钟后,这个钱包开始抛售Gnosis币,净赚了大概14万美元,回报率约为40%。

5.3.2 “貔貅盘”

“貔貅”是中国古代传说中一种神兽,有嘴无肛,能吞万物(大多为黄金珠宝)且不泄,只进不出,所以被形容只能买进而无法卖出的某种数字货币。

可以从下面四个角度进行鉴别:代码是否开源;是否经过审计;交易数据;分析社交媒体。

文章中的大部分统计数据,都来自由 Beosin等机构联合出品的【2022 年全球 Web3 区块链安全态势报告及加密行业监管政策总结】。长按下方二维码,获取完整报告。


06 鸣谢

感谢以下组织对本次公益课程的支持!赞助方支持:One Global Blockchain Centre (OGBC)

https://www.ogbc.com/OGBC是Web 3.0的领先孵化器,他们与新兴的加密货币初创公司合作,建立未来的基础设施。通过利用OGBC在加密货币领域的专业知识、网络和资源,公司和项目可以充分发挥其潜力,努力为区块链行业越来越多的用户开发创新和有价值的解决方案。

漏洞其它合作方支持:

漏洞

漏洞漏洞漏洞

漏洞漏洞

漏洞

漏洞07 关于Moledao

MoleDAO是一个区块链开发者社区,供所有区块链爱好者了解区块链的最新动态,并在经验丰富的区块链先驱者和创新者的帮助下成长,为构建Web 3生态系统贡献更多创新想法。我们旨在通过搭建区块链爱好者交流社区、提供区块链项目支持、举办全球黑客松系列活动、帮助项目人才匹配、提供项目赞助和指导,将区块链理念带给每个人并发展区块链生态系统。我们的愿景是成为一个精心策划的一站式区块链生态系统。无论你是区块链爱好者、区块链开发者、机构还是投资者,都可以在Moledao找到适合自己的定位。

声明:本文为入驻“MarsBit 专栏”作者作品,不代表MarsBit官方立场。
转载请联系网页底部:内容合作栏目,邮件进行授权。授权后转载时请注明出处、作者和本文链接。未经许可擅自转载本站文章,将追究相关法律责任,侵权必究。
提示:投资有风险,入市须谨慎,本资讯不作为投资理财建议。
免责声明:本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况,及遵守所在国家和地区的相关法律法规。