目录
1、 2020年区块链安全概述
12020年区块链安全
22020年区块链安全事件监测
2.1. 公链安全事件的发展趋势
2.2. 智能合约安全事件的发展趋势
2.3. 外围系统安全事件的发展趋势
2、 区块链重大安全突发事件探讨
1与DeFi相关的事件
2欺诈/钓鱼相关事件
3软件敲诈相关事件
4交易平台相关事件
5数字钱包相关活动
6公链事件
7其他相关事件
3、 攻击原理分析
1合同漏洞
2业务逻辑缺陷
3分布式拒绝服务攻击
451%力量攻击
4、 cnvd区块链漏洞示例
1高风险脆弱性
2中等风险漏洞
5、 其他安全问题
1灵活供应漏洞
2清除漏洞
3时间锁定漏洞
6、 对策建议
1、 2020年区块链安全概述
2020年区块链安全
随着区块链技术的快速发展,以及项目和应用的日益增多,相关安全事件的发生也越来越频繁。据国家区块链漏洞数据库不完全统计,2020年区块链领域安全事件达555起,其中DeFi安全事件103起,欺诈/钓鱼事件204起,敲诈软件事件143起,交易平台安全事件31起,数字钱包安全事件41起,公链安全事件17起,其他安全事件16起,较2019年增加,经济损失高达179亿美元,较2019年增加130%。综上所述,全年区块链安全威胁的风险水平较高,需要各方高度重视。本章将从宏观角度分析全球区块链安全形势。
2020年区块链安全事件监测
1公链安全事件的发展趋势
2020年,公共区块链将发生17起重大安全事件,主要中心化在7月、8月和11月,其中11月的安全事件最多,有4起。
图1-2-1区块链公链全年安全事件统计图
2智能合约安全事件的发展趋势
2020年,区块链智能合约安全事件53起,主要中心化在4月、7月、8月、9月、10月和11月,其中11月安全事件最多,为13起。
图1-2-2区块链智能合约
安全事件年度统计图
3外围系统安全事件的发展趋势
外围系统包括五个部分:数字资产交易平台、中心化钱包、去中心化钱包、矿池/矿、挖矿机。2020年,区块链外围系统共发生183起安全事件,主要中心化在5月、6月、9月和10月。其中,5月份发生安全事件38起。
图1-2-3区块链全年外围安全事件数
统计
2、 区块链重大安全突发事件探讨
本章将重点介绍安全事件高发的六个方面。全年安全事件大多中心化在DeFi领域,应用量大,安全技术不完善,用户安全意识差。接下来,本文将对DeFi、欺诈/钓鱼、勒索软件、数字资产交易平台、钱包、公链等领域进行探讨,重点分析各个领域的重大安全事件。
1与DeFi相关的事件
据国家区块链脆弱性数据库监测,2020年7月、8月、9月、11月共发生安全事件103起,主要是因为2020年下半年有大量的项目和应用。随着项目和应用的增加,安全事件明显增多,11月份安全事件最多,有25起。
图2-1-1 DeFi安全事件年度统计
智能合约尚处于发展初期。相关业务逻辑的复杂设计、松散的代码实现和灵活可组合的协议带来了许多潜在的风险。目前,智能合约正迅速应用于各类DeFi项目,DeFi已成为智能合约**的应用场景。智能合约的应用加速了去中心化金融的发展进程。然而,由于DeFi项目具有源代码开放、相互引用和**、功能多样、应用灵活、开发人员水平参差不齐等特点,各种智能合约安全事件频繁发生。此外,DeFi项目中存储了大量的虚拟数字资产,使得DeFi成为黑客攻击的重点目标。
flashloan本身是DeFi领域的一项创新,允许用户无需抵押就可以借入任何数量的可用资产。由于它的非抵押性质,它已成为许多黑客的本金。如果该功能被黑客使用,将导致安全事件的发生。黑客可以利用flash loan在某些平台上放贷高额资金和交换虚拟资产。由于虚拟资产数量巨大,平台上的虚拟资产价格发生异常变化,然后赎回资金,使虚拟资产价格回归正常。攻击者在价格波动的基础上进行巨额套利。
本文从攻击方式、损失和组合风险三个方面选取了6个典攻击案例。在前三种情况下,攻击者利用闪贷操纵市场价格进行套利。在**三种情况下,攻击者通过重入漏洞攻击项目。本文将介绍黑客是如何发动攻击并最终获利的。(本分析报告仅供技术交流使用,请勿使用以下方法操作,否则后果自负。)。
(1) 北京时间2020年2月15日,BZX协议**遭到攻击。攻击者获利约355880美元,项目方暂停了除贷款外的其他功能。北京时间2月18日消息,BZX协议再次遭到黑客攻击,黑客通过控制预言机机器上虚拟资产的价格获利。接下来,本文对第二次攻击进行了简要分析。根据交易记录,首先,攻击者通过闪电贷款借入7500威思作为攻击的起始资金,如图2-1-2所示。
然后,攻击者用540个wETH交换SUSD,总共92419.7个SUSD,如图2-1-3所示。
图2-1-3交易流程
通过这次交换,Uniswap上的SUSD价格飙升。接下来,攻击者将20个wETH作为一个组,并多次交换SUSD,如图2-1-4所示。
图2-1-4交易流程
然后,攻击者从synthetix购买了943837.58个SUSD,如图2-1-5所示。此时,攻击者拥有大量SUSD,且SUSD的价格极高。
图2-1-5交易流程
**,攻击者通过BZX将1099841.39个SUSD转换成wETH,共6796个wETH。
图2-1-6交易流程图2-1-7交易流程
之前剩下的水,攻击者总共得到9878水;归还借来的7500水,攻击者总共得到2378水。整个攻击过程如图2-1-8所示。
图2-1-8攻击过程图
Nbsp;(2)收获财务攻击
北京时间2020年10月26日,嘉实金融遭遇闪贷攻击,损失总额2400万美元。这次攻击是由黑客控制预言机上数字货币的价格引起的。攻击者首先从Uniswapv2贷款1800多万美元T和5000多万美元C,并通过曲线将美元T转换成美元C,如图2-1-9所示。
图2-1-9交易流程
接下来,黑客将5000万美元存入harvest。由于之前将USDT转换为USDC的操作,曲线y池中的USDC价格上涨。同时,黑客将获得harvest铸造的fUSDC,fUSDC的价值将高于当时的5000万存款,如图2-1-10所示。
图2-1-10交易流程
接着,黑客再次通过曲线将之前兑换的美元兑成美元,并将美元兑成美元的价格拉回到正常水平。
图2-1-11交易流程
**,黑客将获得的所有fUSDC交换回USDC。从图中可以看出,扣除手续费后,黑客最终获得50298684美元,利润总额近30万美元,如图2-1-12所示。
图2-1-12交易流程
之后,黑客多次使用这种攻击方法进行攻击。
图2-1-13交易流程
**,通过这次攻击,黑客获利2400多万美元。
(3) 值定义协议攻击事件
北京时间2020年11月15日,value-DeFi协议遭到flash-loan攻击。这次攻击是由黑客操纵Dai/USDC/USD池中的价格引起的。
首先,攻击者借给8万以太坊准备攻击。其次,攻击者首先通过Uniswap V2交换了1.16亿Dai和3100万USDT,如图2-1-14所示。
图2-1-14交易流程
第三,攻击者向valuemultivaultbank合同中充值2500万Dai,如图2-1-15所示。计算硬币时,傣族将被转换成3crv,铸造2495.6万个3crv,攻击者将获得等值的mvusd。
图2-1-15交易流程
此时,攻击者将剩余的9100万Dai和3100万USDT通过曲线转换成USDC,如图2-1-16所示,这将导致Dai/USDC/USD池中USDC的价格上涨。
图2-1-16交易流程
交换完成后,攻击者使用mvusd提出3crv。由于之前的操作,USDC/3crv的价值上升。这一交易将产生比之前2500万3crv更高的价值。该交易所将产生3309万3crv,如图2-1-17所示。
图2-1-17交易流程
**,攻击者通过曲线兑换USDT和Dai,并将3crv转换为Dai。这一次,攻击者将交换超过3300万Dai,如图2-1-19所示。与之前存入的2500万戴相比,攻击者共获利800万戴。
图2-1-18交易流程
图2-1-19交易流程
Nbsp;(4)攻击泡菜金融
北京时间11月22日消息,DeFi项目pickle finance遭到黑客攻击。这次攻击是由一个再入漏洞造成的,损失高达2000万美元。
根据国家区块链漏洞库技术专家组的分析,contract漏洞存在于controller V4 contract中的SwapexActJarforjar函数中。从代码中可以看出,有6个参数传入函数中,前四个参数由攻击者fromJar、toJar、fromJarAmount、Tojarminamount控制,攻击者可以通过可控函数传入非法参数进行攻击。如图2-1-20所示。
图2-1-20合同代码
攻击者首先填写他的合同地址From jar和To jar,fromjaramount的值被设置为被攻击合同的帐户余额,大约2000万。函数首先从jar中取出uu和tojar的代币地址。因为这个参数是由攻击者控制的,所以攻击者可以调用它,fromjar的safetransferfrom函数将2000万的值作为一个参数传递到合同中,如图2-1-21所示。
图2-1-21合同代码
然后,程序判断合同中的Dai数是否能满足攻击者的交换要求,如果不足,则通过其他交换方式来弥补Dai的差额,如图2-1-22所示。
图2-1-22合同代码
**,程序将帐户中的Dai传输到攻击者的帐户中,攻击者通过这种攻击方法获得收益。如图2-1-23所示。
图2-1-23合同代码;
(5) 伦道夫。我项目被攻击
北京时间4月19日,DeFi项目伦道夫。我黑客重新进入攻击后,攻击者不间断地利用契约重新进入漏洞进行攻击,使其余额不断翻倍,最终将整个网络掏空伦道夫。我你的帐户。经分析,该漏洞存在于伦道夫。我合同中的供应职能。此漏洞允许黑客伦道夫。我当账户余额保持不变时,取出余额。接下来,从代码层面分析攻击的根本原因和攻击过程。
首先,浏览整个供应功能代码逻辑,可以发现功能流程首先获取用户的活期账户余额并保存在localResults.userSuppCurrent接下来,supp函数添加用户的当前帐户余额和这次传入的参数,以获取用户对supp函数的调用并将其放入在localResults.userSuppUpdated变量,如图2-1-24所示。
图2-1-24合同代码
接下来,supp函数调用dotransferln函数,该函数调用用户的hook函数tokenstosend,如图2-1-25所示。
图2-1-25合同代码
此时,攻击者调用伦道夫。我合同中的提款功能提取自己的账户余额。程序又回到过去了伦道夫。我合同继续执行,功能结束时更新用户余额,如图2-1-26所示。
图2-1-26
因为之前的程序将攻击者的**余额分配给了一个临时变量,所以程序使用的数据是攻击者取出余额之前的值,而不是当前的**余额值。因此,合同执行后,攻击者的余额不减少,从而达到**资产的目的。整个攻击过程如图2-1-27所示。
图2-1-27攻击过程图
(6) 驱逐舰“经典再入攻击”事件
在这次攻击中,攻击者首先通过dydx flash loan借出7万ETH,并将ETH转换成相应的USDT和Dai。
其次,攻击者将750万美元转移到金库,使其资产占金库的50%以上。
接下来,攻击者调用契约中的mintmultiple()函数,并传入2050万Dai和恶意契约中的假参数。mint函数接收2050万Dai,但在访问另一个参数时,它实际上调用了攻击者的恶意契约。为了触发rebase(),攻击者再次在攻击契约中节省2000美元。转账后,正常合同会进行结算,更新金库总价,然后通过rebase()进行分配。但此时,合同被劫持,2050万戴还未包含在金库总价中,因此当回扣()时,2050万戴将全部作为收入分配。
由于攻击者占保险库的50%以上,攻击者将在不支付任何费用的情况下分配1025万Dai。合同正常执行后,攻击者将从薄荷糖驱逐出境的价格相当于戴的价格。**,攻击者赎回先前存入的资金,并将获得的资金返回到flash贷款。**,攻击者获得了大约3327000个驱逐出境。攻击过程如图2-1-28所示。
图2-1-28攻击过程图;
2欺诈/钓鱼相关事件
据国家区块链漏洞数据库监测,2020年全国共发生欺诈/钓鱼安全事件204起,主要中心化在4月、5月和9月,其中4月的安全事件数量最多,达40起。
图2-2-1欺诈/钓鱼安全事件年度统计
目前区块链技术的发展时间相对较短,对用户有一定的门槛要求。大多数用户缺乏相关技术知识或安全意识相对较弱,这给欺诈者提供了机会。本文选取了以下三个典的诈骗案件进行分析讨论。
(1) 皮埃克斯戈诈骗案
Piexgo是一个名为big empty wing的人创建的交易平台。创始人在两年内通过iota众筹获得了3.6万倍的回报。当时,他用单价0.001元的物联网众筹10万元。两年后,单价涨到了36元。piexgo平台吸引了大量追随者。短短一个月内,大公义通过平台pxg货币融资约1.5亿元人民币ETH。然而,在pxg上市前,原本10亿元的发行量突然增加了10倍,发行总额达到了100亿元,这使得pxg的价格骤降。原上调价0.06元一度跌至0.01元甚至零。
今年5月26日,平台宣布其技术团队无法满足平台的开发,需要关闭平台。而且,平台CTO不配合移交,导致无法取款,用户在资产关闭前无法取款。
(2) dcfplus运行事件
“DCF plus”项目启动后,最初是以0.15美元的价格购买的,但大部分DCF plus硬币是由内部员工购买的。之后,项目方宣传炒作,以4元左右的价格卖给他人,然后项目策划人以1元左右的价格买下。一旦它回来,它就骗取了投资者70%的资金。**,项目方拿着赃款逃跑。
(3) twitter的大规模入侵和欺诈
北京时间2020年7月15日,twitter遭遇史上最严重的安全事故。黑客通过入侵twitter系统获得用户帐户权限。受害者包括奥巴马、拜登、比尔·盖茨和沃伦·巴菲特等政界和商界名人,以及苹果和优步等大互联网公司。黑客通过他们的twitter账户发送tweet,称如果他们将比特币发送到特定地址,发送者将获得比特币的双倍回报。这条微博实际上是一条钓鱼信息。
截至活动当天,该特定地址已收到超过12枚比特币。折合人民币80多万元。
3软件敲诈相关事件
据国家区块链漏洞数据库监测,2020年全国共发生敲诈软件安全事件143起,主要发生在6月、8月、9月、10月、11月和12月。其中,10月份发生的安全事件有18起。
图2-3-1年度勒索软件安全事件统计
敲诈软件攻击的目标多为一些国有企业、大民营企业,如加油站、医院、军队、学校等,这些机构具有数据量大、数据保密性强、数据及时性强等特点。一旦遭到勒索软件的攻击,大多数企业会选择支付赎金以减少损失。由于区块链上用户的匿名性,转账后很难收回资金,因此大多数黑客在使用勒索软件进行勒索时,往往采用加密货币的支付方式,这也给案件的侦破带来了很大的困难。选取以下两起具有代表性的安全事件进行简要分析。
(1) 美国旅游公司CWT遭到黑客的勒索攻击
美国旅游公司CWT遭到勒索软件的攻击,导致其30万台电脑被黑客锁定。该公司已经为比特币向黑客支付了450万美元的赎金。黑客使用名为Ragnar locker的勒索软件,通过加密计算机文件进行勒索攻击。被勒索软件加密的文件不会被使用,只能由黑客给出的密钥解密,而攻击者给出密钥的条件是支付相应的赎金。最终,CWT支付了450万美元的赎金。
(2) 加州大学旧金山分校遭到勒索软件攻击。
加州大学旧金山分校遭到一个名为netwalker的黑客组织的攻击。袭击者遭到袭击后,通过电子邮件向该校发出赎金通知书,并要求对方支付300万美元赎金。由于COVID-19的影响,加州大学只能为袭击者支付78万美元。**,经过谈判,加州大学支付了116.4 比特币(约合114万美元),然后黑客把解密程序送到了加州大学。
4交易平台相关事件
据国家区块链漏洞数据库监测,2020年,交易平台共发生安全事件31起,主要中心化在2月、5月、9月和10月,其中5月的安全事件数量最多,为5起。
图2-4-1
交易平台安全事件年度统计
交易平台具有交易频繁、资金流量大、系统庞大等特点。系统维护的难度较大,使得攻击者对交易平台的攻击更加频繁。本文总结了四个热点问题。
(1) Travelex交易平台受到恶意软件攻击
伦敦交易平台Travelex遭到恶意软件攻击,导致网络系统长期处于离线状态,并影响其服务的相关企业,致使部分企业网络服务也处于离线状态。黑客要求230万美元的赎金。
(2) 加密交易平台液体入侵
北京时间11月13日,流动**易平台遭到黑客攻击。通过更改DNS记录,攻击者控制了大量内部电子邮件帐户,导致攻击者破坏部分基础设施并访问交易平台的文档。目前,攻击者可能窃取了用户的姓名、地址、电子邮件、密码等信息。幸运的是,用户的资金没有被盗,相对安全。
(3) 热钱包被偷
北京时间9月26日消息,热销的钱夹钞票被盗,造成虚拟资产共计约1.5亿美元损失。事件的主要原因是钱包的私钥被泄露。与普通黑客不同的是,黑客在窃取大量虚拟资产后,并没有像往常一样消失或以各种方式洗钱。相反,他们将虚拟资产转移到主要交易平台进行套现。随后,在联系各大中心化交易平台后,钞票冻结了黑客窃取的资金。
(4) 交易平台eterbase遭到黑客攻击
加密货币交易平台eterbase遭到黑客攻击。6个钱包被黑客入侵,540万美元资金被盗。黑客通过交易平台将赃款换成其他虚拟资产,交易平台称有足够的资金弥补损失。
5数字钱包相关活动
据国家区块链漏洞数据库监测,2020年数字钱包安全事件共41起,主要中心化在3月、7月、8月和10月,其中8月安全事件最多,有13起。
图2-5-1数字钱包安全事件年度统计
数字钱包里有很多资产。一旦被黑客掌握,资金就可以被洗劫,而无需任何复杂的攻击手段。下面就两起具有代表性的安全事件进行简要分析。
(1) 巨鲸账号“周建福”遭黑客攻击
在2020年的钱包**事件中,最引人注目的是黑客攻击“周建福”账户。不过,这起事件并非连锁攻击,而是一次SIM卡冒充攻击。黑客在得知受害人真实身份信息后,通过某种手段取得受害人的SIM卡权限,通过SIM验证码机制劫持其钱包账户权限,然后窃取其资产,总价值2.6亿元。
被盗的BTC被攻击者通过复杂的手段洗钱,这使得追踪资金更加困难。据消息人士透露,在资金转移过程中,部分虚拟资产已经流向交易平台。
(2) nexus mutual创始人的个人钱包遭到攻击
2020年12月14日,DeFi保险平台nexus mutual创始人的私人钱包遭到黑客攻击。黑客修改了受害者电脑上的metamask插件,造成了800万美元的损失。
当受害人使用硬件钱包进行交易时,攻击者修改的metamask插件中存在恶意交易,使受害人误以为此交易是自己的意愿,于是批准交易,然后将资金转移到攻击者的地址。
虽然攻击者没有盗取受害人钱包的私钥,也没有盗取受害人的身份信息,但攻击者通过技术手段和欺骗攻击成功实施了攻击。
6公链事件
据国家区块链脆弱性数据库监测,2020年共发生17起公链安全事件,主要中心化在7月、8月和11月,其中11月发生的安全事件最多,有4起。
图2-6-1公链安全事件年度统计表
随着量子计算机的出现和矿业硬件租赁市场的存在,51%的攻击是可能的。本部分选取三起具有代表性的公链安全事件进行简要分析。
Nbsp;(1)filecoin测试网络的无限附加漏洞
2020年5月28日,一个技术团队发现filecoin测试网络存在无限的额外发行漏洞。之后,技术团队通过漏洞实现了48亿FIL的增发,验证了漏洞的有效性。在宣布无限制增加漏洞的原则后,测试网络中增加了93亿个漏洞。共发行了198亿菲律宾法郎。filecoin团队发现了漏洞并及时修复。
(2) 永恒受到51%的攻击
2020年12月7日,网络遭到51%的攻击,黑客共进行了三步。首先,黑客在12月3日收集了大量AE作为攻击成本,总金额为2900万;12月6日,攻击者挖出一条比公链长的未公开链,并将2752万AE转入其长链上的账户,然后在公链上花费AE;12月7日,黑客在公链上花费AE攻击者播放较长的链,从而在被识别后扩展了公链,攻击者将2752万AE转移给自己的交易被正常打包,使资产再次回到自己的账户中,而之前花费的AE无效。这次袭击造成了近400万美元的损失。
Nbsp;(3)etc遭遇51%攻击
在2020年8月,etc遭受了三次51%的攻击。8月1日,etc第一次受到攻击,造成3000多起分块重组,攻击者获利超过560万美元;8月6日,etc第二次受到攻击,造成4000多起分块重组,攻击者获利超过170万美元;8月30日,etc受到攻击第三次遭到攻击,导致7000万美元的多次区块重组,攻击者的第三次获利并不清楚。
7其他相关事件
2020年,根据国家区块链漏洞数据库监测,其他区块链相关安全事件共16起,主要中心化在6月和8月,分别发生3起。
图2-7-1全年其他安全事件统计
(1) 俄罗斯******电子投票系统的区块链遭到攻击
2020年6月27日,基于区块链技术的俄罗斯******电子投票系统遭到攻击。攻击发生后,俄罗斯政府表示,网络安全专家一直在试图修复被攻击的节点,但尚不清楚修复是否成功。虽然受到黑客攻击,但这次电子投票也会成功写入区块链,而且这次事件并没有造成系统故障。
(2) 图标软件更新中的漏洞
2020年8月22日,icon发布了新版本的软件,该软件存在漏洞。一个名为Shin的用户利用这个漏洞为自己铸造了大约1400万个ICX。随后,icon联系交易平台冻结其账户,并称其为“恶意攻击者”。但申说,他没有违反任何规则,所以他的行为不是计算机欺诈和虐待。
(3) 加代币网络传销案
2020年11月26日,“加代币”网络传销案在江苏省盐城市宣判。该犯罪团伙成员被判处2年以上11年以下有期徒刑,并处12万元以上60万元以下罚金。该案是公安机关破获的首例以数字货币为交易媒介的网络传销案件,涉案金额400亿元。
3、 攻击原理分析
2020年,区块链安全事件的攻击原则主要包括契约漏洞、DDoS攻击、51%算力攻击和业务逻辑缺陷。其中,合同漏洞攻击最多,占45次,占66%;业务逻辑缺陷12次,占16%;DDoS攻击9次,占12%;51%攻击8次,占11%。
图3-0-1攻击事件的主要分布
1合同漏洞
智能合约在区块链系统中扮演着重要的角色。由于合同代码的开源性和合同中大量的虚拟数字资产,智能合同成为越来越多黑客攻击的目标。接下来,本文选取了三个经典的合同漏洞进行分析和探讨,并给出了相关的保护建议。
(1) 再入漏洞
以太坊允许在智能合约中调用另一个合约。如果所调用的契约是攻击者的恶意契约,则攻击者可以重新启动对该契约的调用,从而在尚未第一次执行该契约时错误地进入某些恶意操作。例如,在通过普通合约进行资金转移时,如果普通合约没有检查攻击者传入的参数,则很容易发生重入攻击。当攻击者传入自己的恶意合约地址时,调用外部合约时,就会进入攻击者恶意合约的执行过程。然后,恶意合同可以再次调用正常的资金转入合同。此时,合约通过攻击者的余额增量计算出提供给攻击者的硬币数量,攻击者第一次可以传入正常合约,当恶意合约第二次调用正常合约时,会传入100。然后第二次调用的正常合同将向攻击者提供相应数量的硬币。但是,由于第二次调用的正常合约操作结束,而第一次调用的正常合约操作尚未结束,攻击者的余额增量已经不是第一次,而是100,因此正常合约再次向攻击者提供相同数量的硬币。**,攻击者将钱存入一次,并得到两个相同价值的硬币。攻击过程如下图3-1-1所示。图3-1-1再入攻击示意图
例如,如果在调用外部合同之前将资金转移到合同中,攻击者的余额将存储在变量中。然后,攻击者可以在攻击契约中调用相关的余额提取函数,并在正常契约执行前提出余额,**在正常契约执行前使用正常契约函数。balance变量更新攻击者的余额,这会导致黑客取出资产,但余额不会改变。攻击过程如图3-1-2所示。
图3-1-2再入攻击示意图
造成重入漏洞的主要原因有两个:一是参数没有经过检查和过滤;二是代码序列的逻辑设计不够严谨。如何降低再入攻击的风险?开发人员在设计和编写代码的过程中需要保持严谨的态度,加强安全审计的开发。例如,可以向合同添加检查标志,以指示合同是否已执行。如果检测到该合同已被用户调用且尚未完成,则将退出合同执行。对于第一种攻击模式,调用外部合同后,可以在合同开始时计算提供的硬币数量,而不是在合同结束时进行计算,使第二笔存款不能视为第一笔存款来计算应提供的硬币数量。对于第二种攻击模式,即收回余额但保持余额不变,可以在合同末尾计算用户的余额值,这样当攻击者在余额后的攻击中途收回余额时,也可以根据当前的**余额计算合同,而不是攻击者移除余额之前的值。
(2) 整数溢出漏洞
程序中的每个变量在存储数据时都有一个数据类,而一般的数据类有一个特定的长度,它可以表示存储数据的变量的**值;超过**值将导致溢出。例如,当您需要使用加法或乘法来计算传输总量时,如果操作方法只是简单的赋值操作,没有溢出检查,则可能导致整数溢出漏洞,如2^255*2或2^255+2^255。由于uint256可以存储的**值是2^256-1,这两个操作不能使用将导致向上溢出,**的数据将被丢弃,结果都是0。
图3-1-3溢流示意图a632
另一方面,它是向下溢出。例如,转移后的余额是通过赋值操作计算的。如果转账前余额未与转账限额进行比较或进行了溢位检查,则转账限额将大于转账前的账户余额。当减去的量小于减去的量时,将发生向下溢出。
图3-1-4溢流示意图
在数据计算过程中,必须注意和防范数据溢出的风险。在代码审计过程中,由于代码量巨大,在编写代码或进行安全审计的过程中必须格外小心。例如,在操作之前,您可以对结果进行判断。如果发现溢出,则不进行计算,如判断两个数之和是否大于原数,或者两个数相减时被减数是否大于被减数。您还可以使用safemath库来避免溢出。
Nbsp;(3)访问漏洞
在编写智能合约的过程中,一些私有变量和函数在权限之外无法被访问、调用和修改;但在编写代码的过程中,由于修改器使用不当、函数调用逻辑不严谨等疏忽行为,会发生权限攻击。比如在管理员设置的功能中,如果对该功能的访问没有限制,比如使用public修改该功能,那么黑客就可以自己调用该功能,给自己管理员权限,从而进行其他非法操作。为了防止访问权限的攻击,最重要的是合理的权限分配设计,正确的访问关系模,严格使用权限修饰符。
2业务逻辑缺陷
DeFi项目的业务逻辑设计复杂,一年来使用flashloan新产品的DeFi安全事件层出不穷。造成这些安全问题的深层次原因在于,在业务逻辑的设计中没有考虑到一些关键因素,如:灵活的供应机制、增发机制、清算机制的设计不合理,价格等信息在供应链上可以被低成本操纵,从而导致了安全问题的发生对恶意套利、恶意增发等问题。
这些问题不是由简单的编码错误引起的,而是与业务逻辑设计密切相关的。因此,项目上线前应进行严格的操作/业务流程测试,认真分析业务设计中的薄弱环节,防止出现类似问题。
3分布式拒绝服务攻击
2020年,各领域DDoS攻击主要针对各类中心化交易平台。DDoS攻击称为分布式拒绝服务攻击,即攻击者通过技术手段控制多台傀儡机。通过这些傀儡机,攻击者可以构造并向一个或多个网络目标发送大量请求,这将导致目标主机性能或网络带宽耗尽,使受害系统无**常运行并向外界提供服务。DDoS攻击比普通的DoS攻击更具破坏性,更难防范。
图3-3-1攻击模式
DDoS攻击难以避免。DDoS攻击的目的是占用全部带宽和目标主机资源。单个请求不具有攻击性,攻击手段属于分布式攻击,使得防御系统很难检测和截获攻击地址。
451%力量攻击
51%攻击是指如果攻击者拥有全网50%以上的哈希算力,并且拥有50%以上的算力,攻击者可以修改自己的事务记录,丢弃其他矿工挖矿的块,阻止事务确认。例如,攻击者使用虚拟货币购买商品,并将虚拟货币发送到另一个帐户。采购商品交易确认后,打包成链块,虚拟支付货币转入商户账户。此时,攻击者发起51%的攻击,并将传输到另一个帐户的事务打包到B链上的块中。之后,B链被合并成最长的合法链,矿工将继续从B链的后面挖矿。前一个a链中的区块将被丢弃,并且不会使用商户帐户的虚拟货币。
图3-4-1攻击示意图
4、 cnvd区块链漏洞示例
国家区块链漏洞平台将在2020年收集373个漏洞。高风险漏洞86个,占23%;中风险漏洞273个,占73%;低风险漏洞14个,占4%。
图4-1-1脆弱性等级分布图
1高风险漏洞2020年,国家区块链漏洞共享平台收录了86个区块链高风险漏洞。
(1) 双树漏洞
2020年11月10日,国家区块链漏洞平台中出现了双树漏洞(cnvd-2020-66571),攻击者可以利用该漏洞篡改部分区块数据,而不影响区块哈希。
(2) SINOC公链拒绝服务漏洞
2020年9月29日,国家区块链漏洞平台中包含SINOC公链拒绝服务漏洞(cnvd-2020-55001),攻击者可利用该漏洞发起拒绝服务攻击。
(3) 由于不正确处理底层网络请求而导致的拒绝服务漏洞
2020年3月22日,国家区块链漏洞平台包含一个拒绝服务漏洞(cnvd-2020-30134),该漏洞对底层网络请求处理不当,攻击者可利用该漏洞发起拒绝服务攻击。
(4) Bitool文件上载漏洞
2020年2月13日,bitool文件上传漏洞(cnvd-2020-30138)被纳入国家区块链漏洞平台。攻击者可以通过上传恶意木马攻击服务器,造成巨大损失。
(5) Neo cli节点客户端拒绝服务漏洞
2020年12月8日,国家区块链漏洞平台包含Neo cli节点客户端拒绝服务漏洞(cnvd-2021-02009)。通过构造恶意脚本并将其发送到公链,攻击者可以导致所有一致性节点的进程崩溃,并最终导致主网拒绝服务。
2中等风险漏洞2020年,国家区块链漏洞共享平台将273个中等风险漏洞纳入区块链。
(1) Gastoken2缓冲区溢出漏洞2020年2月18日,国家区块链漏洞平台收录了Gastoken2缓冲区溢出漏洞(cnvd-2020-30136)。由于缓冲区不使用safemath函数,攻击者可以对其发起整数溢出攻击。
(2) 2020年6月19日,国家区块链漏洞平台收录了《中电公链逻辑漏洞》(cnvd-2020-55002)。攻击者可以在未获得身份验证的情况下进行恶意操作,例如删除地址帐户、造成资本损失、添加新地址、查看系统日志信息和RPC调用示例。
(3) ETHrend逻辑漏洞2020年6月30日,国家区块链漏洞平台包含ETHrend逻辑漏洞漏洞(cnvd-2020-35586),攻击者可利用该漏洞造成整数溢出,从而绕过关键判断,导致虚拟数字资产的过度购买。
(4) Bixtoken智能合约逻辑缺陷漏洞2020年6月3日,国家区块链漏洞平台中包含Bixtoken智能合约逻辑缺陷漏洞(cnvd-2020-31663),该漏洞将导致被攻击账户永远无法解锁其锁定的代币。
(5) Asaccoin智能合约整数溢出漏洞2020年3月22日,国家区块链漏洞平台收录了Asaccoin智能合约整数溢出漏洞(cnvd-2020-30135)。契约可以构造一个大数据来向地址添加虚拟数字资产。由于漏洞的存在,会导致整数溢出,最终使接收到的虚拟数字资产的地址平衡变为零或很小。
5、 其他安全问题
除了上述常见的漏洞外,还有一些其他类的漏洞。本章将介绍由三个常见漏洞引起的安全问题。
1灵活供应漏洞
据国家区块链脆弱性数据库监测,北京时间2020年8月12日,由于项目机制柔性供应回笼存在脆弱性,在第二次回笼中投放了大量新增虚拟资产,而虚拟资产与需要提交维护和治理的总量成正比,因此,没有人能够提供足够的虚拟资产进行维护和治理。如果无法管理,虚拟资产将被锁定且不可用。
2清除漏洞
根据国家区块链漏洞库的监测,在流动性挖矿项目soda中发现了一个清算漏洞,这可能导致项目中2万个虚拟资产的清算。漏洞发现者向项目开发团队提出了这个漏洞,但是开发团队没有注意到,所以发现者清除了其中一个虚拟资产并发出了警告。之后,开发者很快停止了该项目的贷款功能。3时间锁定漏洞根据国家区块链漏洞数据库监测,DeFi项目baconswap和shroom.财务存在一个时间锁漏洞,它可以导致项目所有者绕过时间锁来发布无限的虚拟资产。对于这个漏洞,项目方还没有提供相应的解决方案。
对策建议
一是在系统上线前进行专业的安全和操作/业务流程审核,不要急于上线,以节省时间和成本;
二是系统上线后,做好数据监控和维护工作,保证第一时间发现异常并进行处理;
三是强化安全意识,完善应急流程,及时止损,异常情况下及时修复系统,将损失降到**;
四个人要加强安全意识,提高对区块链技术的了解,不要相信涉嫌非法金融活动的宣传,如一夜暴富、稳定收入无偿、谎报收入等相关字眼;
五妥善保管钱包私钥。涉案金额较大的钱夹可通过硬件钱包存放,使用过程中应注意安全防护;
六是加强区块链技术体系安全风险及防范手段研究,推进与区块链技术机制相适应的安全保障体系建设;
七是积极开展区块链系统安全评估和智能合约正式验证,提前发现潜在安全风险;八是加强区块链漏洞库建设和应用,提高发现、分析、预警和应急能力区块链安全事件。
文章标题:2020年区块链安全态势感知报告
文章链接:https://www.btchangqing.cn/204967.html
更新时间:2022年01月19日
本站大部分内容均收集于网络,若内容若侵犯到您的权益,请联系我们,我们将第一时间处理。