欧易程序员1024献礼:链上安全手册_NFT:Nftime

1.为什么会有项目风险?

区块链技术由几个内置的安全功能组成,例如密码学、软件中介合同和身份控制。该技术通过启用分布式方式来验证访问、验证交易记录和维护隐私,从而提供显着水平的数据保护和完整性。然而,尽管有这些安全性增强,区块链市场仍然充斥着安全问题。基于区块链的攻击来自外部参与者以及内部人员。其中许多黑客使用了常见的策略,例如网络钓鱼、社会工程、攻击传输中的数据或针对编码错误。新技术伴随着新的开发工具和方法,区块链也不例外。一种新的网络威胁正在出现,涉及区块链网络独有的策略。其中包括:51%的攻击、加密劫持、闪电贷攻击、rugpull等人为风险人为风险是除技术外的一类因素,端点漏洞也是恶意行为者的入口点,例如设备、应用程序、钱包或第三方供应商级别的漏洞。员工和供应商人员也是目标。并非所有的区块链都是平等的,在市场讨论中经常被忽视的是,区块链架构存在很大差异,尤其是在涉及不同结构和组件如何引入安全权衡时。随着区块链的组件、算法和用途不断发展,攻击策略和威胁缓解技术也将不断发展。缺乏监管缺乏监管,智能合约不能替代合规性——它们不具有法律约束力。从到假冒,从隐私到,不明确的监管环境会减缓采用速度,并使网络犯罪分子猖獗。逻辑漏洞逻辑漏洞是指由于程序逻辑不严导致一些逻辑分支处理错误造成的漏洞。在实际开发中,因为开发者水平不一没有安全意识,而且业务发展迅速内部测试没有及时到位,所以常常会出现类似的漏洞。代码漏洞这是指代码中的一个缺陷,它会产生损害安全性的潜在风险。此漏洞将允许黑客通过附加端点来提取数据、篡改合约或更糟的是擦除所有内容,从而利用代码。2.如何定义风险级别?

风险分级致命:存在致命风险及隐患,需要立即解决高风险:存在高危风险及隐患,将引发相同问题,必须解决中风险:存在中度风险及隐患,可能导致潜在风险,最终仍然需要解决低风险:存在低风险及隐患,指各类处理不当或会引发警告信息的细节,这类问题可暂时搁置建议:存在可优化的部分,这类问题可以搁置,但建议最终解决分级标准定级主要依据漏洞的危害程度、利用难度,辅以其他因素综合判定,其中:危害程度主要根据机密性影响(C)、完整性影响(I)、可用性影响(A)三个维度定义;利用难度主要根据攻击向量(AV)、攻击复杂度(AC)、认证(Au)三个维度定义。

3.有哪些常见的安全风险?

风险种类个数重入攻击注入攻击权限绕过Mempool抢跑回滚条件竞争循环耗尽gas费闪电贷高影响经济模型不合理可预见的随机数投票权管理混乱数据隐私泄露链上时间使用不当fallback函数编码不当鉴权不当opcode使用不当内联汇编使用不当构造函数不规范返回值不规范event不规范关键字使用不规范未遵循ERC标准条件判断不规范流动性枯竭风险中心化风险逻辑变更风险整数溢出函数可见性不当变量初始化不当合约间调用不当变量不规范重放攻击随机存储位置写入蜜罐逻辑哈希碰撞使用不推荐的方法未遵循基本编码原则第三方依赖风险领奖逻辑不当编码不规范应急机制缺失代码逻辑问题计算精度丢失无意义的合约已弃用的合约精度不匹配代理使用不规范资产安全外部函数调用不当多次初始化风险未判断返回值账户缺少签名者检查缺少账户可写检查程序逻辑缺陷Hash算法使用不当WriteFile权限过高业务逻辑存在为题过时的外部依赖高频风险种类针对已有的审计项目进行统计,我们发现以下5个风险出现频率较高。循环耗尽gas条件判断不规范中心化风险未遵循基本的编码原则业务逻辑存在问题3.1它们的具体表现是什么?

每个种类风险的描述循环耗尽gas:在以太坊区块链中,不能将交易设置为永久运行。交易可以运行直到达到gas限制。一旦发生这种情况,交易将出错,并且将返回“outofgas”错误。条件判断不规范:智能合约代码中进行条件判断不规范,缺失必要检查。中心化风险:智能合约部分函数接口权限由单一私钥控制,具有中心化风险。未遵循基本的编码原则:没有遵循基本的编码原则,如变量命名错误等。业务逻辑存在的问题:业务逻辑考虑不完善,比如退款情况考虑不周。4.行业经典案例与对应案例分析

案例1

北京时间2022年8月2日凌晨,NomadBridge遭受攻击,导致价值约1.9亿美元的损失。OKLink链上卫士追踪显示,NomadBridge攻击事件共涉及1251个ETH地址,涉及14个币种,涉案金额约1.9亿美金;其中包含12个ENS地址,ENS地址涉案金额超6980万美金,约占总金额的38%;在利用漏洞获利后,直接进行交易的地址数达739个,占比近60%。但值得注意的是并不是所有地址都是恶意攻击,已知已有白帽骇客公开表态愿意归还资金,OKLink已对剩余的地址进行了监控,后期若发生异动,会通过微博、推特向用户同步。案例分析对Replica合约的process函数进行分析,在require(acceptableRoot(messages),“!proven”);这个判断条件中,messages的值需要经过acceptableRoot函数的逻辑检验,返回值为true才能继续往下执行。注意到acceptableRoot函数中,传入的_root参数,在confirmAt大于0且小于等于block.timestamp的情况下,就会返回true。那么该漏洞的核心就在对confirmAt这个mapping赋值的过程。从initialize函数输入参数可以看到,_committedRoot使用了0x00。一般情况使用0值做初始化参数没有问题,但是在Nomad的这个场景下,就导致了任意message都能通过检测的安全漏洞。链上卫士分析师建议在initialize函数中也进行严格的安全检查和判断。案例2

北京时间2022年10月7日凌晨,BNBChian跨链桥BSCTokenHub遭遇攻击。黑客利用跨链桥漏洞分两次共获取200万枚BNB,价值约5.66亿美元。案例分析BSCTokenHub是BNB信标链和BNB链之间的跨链桥。BNB链使用预编译合约0x65验证BNB信标链提交的IAVL的Proof,但BNB链对提交的Proof边界情况处理不足,它仅考虑了Proof只有一个Leaf的场景,对多个Leaves的处理逻辑不够严谨。黑客构造了一个包含多Leaves的Proof数据,绕过BNBChain上的校验,从而在BNB链造成了BNB增发。5.合约审计的业务流程

智能合约审计是审查用于与加密货币或区块链交互的智能合约代码的综合过程。执行此过程是为了发现代码中的错误、问题和安全漏洞,以便纠正和修复它们。它可以保护代码免受未来潜在错误的影响。OKLinkAudit采用静态扫码和人工验证相结合的审计方式,从根源处检查项目,确保项目安全。审计团队还拥有严格的漏洞评级标准,对每个漏洞设置三个级别的评分,分别是基础评分、时间评分和环境评分,确保审计结果的准确、专业。当然,专家团队也会提供针对性的修改建议,提升项目的安全性、隐私性及可用性。目前参与审计的项目涵盖公链、DeFi、L2、稳定币、钱包、NFT等多个板块。2021年,因黑客攻击、漏洞利用和欺诈造成的损失达到13亿美元。2022年第一季度,攻击型安全事件造成的损失高达约12亿美元,比去年同期的1.3亿美元增长了约9倍。它也高于2021年任何一个季度的损失金额。在被攻击的项目中,70%由第三方审计机构审计。然而,在剩下的30%未经审计的项目中,因攻击而遭受的损失占总损失额的60%以上。6.推荐哪些自动化审计工具?为什么?

智能合约静态扫描工具:slither,mythrilSlitherSlither是第一个开源的针对Solidity语言的静态分析框架。Slither速度非常快,准确性也非常高,它能够在不需要用户交互的情况下,在几秒钟之内找到真正的漏洞。该工具高度可配置,并且提供了多种API来帮助研究人员审计和分析Solidity代码。Slither在检测智能合约漏洞时,其功能优于其他静态分析工具,在速度、检测准确性方面都有着先天优势。Slither包含了一整套针对Solidity的专用静态分析工具,它可以用来检测可重用性、构造函数和方法访问等编码中的常见错误。MythrilMythril是以太坊的官方合约漏洞检测工具,可以检测大量的智能合约安全问题,如整数溢出,任意地址写入,时间戳依赖等14种漏洞检测工具。可以发现常规漏洞,但是无法发现一个合约的业务逻辑问题,主要思想是利用符号执行去探索所有可能的不安全的路径。Mythril集成了符号执行、控制流检查、污点分析等技术,并支持自定义漏洞检测逻辑来对智能合约进行分析,同时,Mythril由于可以通过多次符号执行来模拟现实区块链和智能合约被多次调用的情况,但是对于某些漏洞如重入、拒绝服务攻击的误报率比较高,也无法检测出一些常规逻辑错误。并且由于Mythril由于存在着多次符号执行,要探索的路径数量更多,也带来了较大的时间和空间开销。7.普通用户如何规避风险及如何应对已发生事件?

风险判断及检测工具

1.TokenScannerTokenScanner是OKLinkAudit第一个对外推出的产品,目前有B端API产品,以及C端页面产品,也在和一些区块链钱包团队接洽帮助进行进行整套安全加固方案的建设。目前API产品里面支持了9条EVM链的风险代币检测能力:POLY,OP,ARB,FTM,AVAX,OKC,TRON,页面上支持了ETH和BSC,其他链正在开发中,年底之前页面上会支持全部9条链的风险检测项,通过代币检测能力,我们检测了3,534,306代币,通过我们的风险扫描,确定了106,474个风险代币。2.ArgusEye结合OKLink的底层大数据能力与标签能力,针对这些数据信息我们对风险事件中的事发地址和上下游地址进行破解与规律性总结,搭建了一套可疑地址和风险交易的实时发现、跟踪分析及响应处置的机制。也会针对可能的安全事件做安全播报风险应对

1.TokenScanner页面产品主要有3个产品功能:1.风险扫描,基于代币模拟交易,合约分析,代币在DEX中的流动性,以及链上代币持有者信息,我们拥有4部分检测能力。2.基于OKLink大数据能力,我们自研一套代币打分规则对代币进行打分,10分以下是极高风险代币包括有貔貅盘代币和rugpull代币,是高危预警建议用户不要购买,10-40是高风险,建议用户也不要持有该代币,40-80是中风险,80-100是低风险,用户可以自行斟酌购买。3.代币分类器,对于特殊实现标准的代币通过分类器进行展示,类似于ERC677和777与某些DEX协议不兼容,可能会导致用户无法正常买入卖出,以及有rebase机制的代币,代币流通量会跟随币价动态变化,也就可能会导致用户发现自己钱包里面的代币突然减少了或是增多了。我们从用户视角出发设置的代币分类器帮助小白用户快速理解代币潜在风险。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金宝趣谈

[0:0ms0-3:977ms