当前位置:首页 > 物联网 > 区块链
[导读] 在区块链领域中,安全方面的考虑压倒了软件中所有其他要考虑因素。如果实现不了安全, 其他任何方面做得再好也于事无补。 区块链被证明分散的, 可信任的事务工作, 但许多区块链的安全漏洞仍然存

在区块链领域中,安全方面的考虑压倒了软件中所有其他要考虑因素。如果实现不了安全, 其他任何方面做得再好也于事无补。

区块链被证明分散的, 可信任的事务工作, 但许多区块链的安全漏洞仍然存在。

安全漏洞存在于设计阶段、编码阶段和操作阶段。同样,区块链有可能受到黑客的攻击。
 

区块链安全漏洞

智能合约的存在就像钻石一样是永恒存在的,只要它们被部署的区块链继续被使用。因此,所有的漏洞和区块链安全漏洞也会像智能合约一样存在。

通常, 每个区块链提供其自己的编程语言来实现智能合约。

智能合约的编程语言

区块链会利用他们自己的语言来开发智能合约。

例如,以太坊平台包含了编写智能合约的可靠语言。创作者设计的是一种坚固的图灵机完整语言。

图灵机完整的语言实质上允许程序员实现底层系统所能做到的任何事情。因此, 这就给程序员提供了代码中实现循环的能力, 这可能会导致区块链引发安全漏洞。

图灵机完整语言

图灵机完整语言非常的复杂, 但正是这种复杂性往往会招致 bug 和漏洞。

比特币网络也有一种编程语言,它称之为脚本。脚本的目的不是为了增强安全性。

给程序员的选项越少,区块链安全漏洞进入系统的可能性就越小。

为了尽量减少将错误代码发布到链外的风险, 程序员必须了解智能合约编程中固有的常见缺陷和反模式。(反模式表示错误的编程实践)。

DAO黑客:可重入性问题

可重入性问题在被编写到智能合约中的区块链安全漏洞中可能排在最高的位置。可重入性通过对同一事务的多个支出来消耗一个帐户。处理退款的用例适合这种利用,但是如果不在设计和编码阶段解决,这种缺陷就会影响到所有事务。

在迄今为止最臭名昭著的加密货币攻击之一中,DAO黑客就利用了可重入性。没有组织领导决定如何运行DAO(分散的自治组织),使他们能够对投资的项目进行投票。

它在第一个月筹集了超过1.5亿美元的资金。2016年6月17日,黑客从该组织的“重入性”漏洞中抽走了5000万美元。从以太经典(ETC)到以太币(ETH)的硬叉导致了解决这次黑客攻击所产生问题的所有努力。

反模式易陷入可重入性

代码脆弱的可重入性逻辑看起来是这样的:

处理支付()的函数

(1) 检查交易的有效性、收款人和账户余额;

(2) 处理交易;

(3) 更新系统状态,以显示已处理了事务;

乍一看,逻辑看起来是正确和完整的,但缺陷在于步骤3之前执行步骤2的顺序。

对函数的第一次调用将继续处理步骤2,而对同一事务的另一次调用则可以输入该函数。由于状态信息仍处于初始状态,尚未在步骤3中处理,因此第二个调用将检查为要处理的有效事务。

因此,该系统第二次为同一义务支出货币。黑客在状态正确设置之前,将多个事务快速地发送到函数中。

治疗可重入性

对算法的这一修改纠正了上面的问题:

处理支付()的函数

(1) 检查交易的有效性、收款人和账户余额;

(2) 更新系统状态以显示已处理了事务;

(3) 处理交易;

代码必须说明所有必要的异常处理,并且它还必须说明所有逻辑依赖项。

Overflow

Overflow是程序员需要注意的另一个常见的安全缺陷。

一些编程语言提供了强类型,而其他语言提供了弱类型。例如,强类型语言不允许程序员将字符串数据分配给数值变量,弱类型语言允许执行此类操作。

强类型语言实施范围有很大的限制。如果一个数组是十个元素,程序员就不能尝试访问第十一个元素。弱类型语言允许这样的行为,但会导致崩溃。如果一个变量所允许的最大值是99,并且为它赋值100,那么运行它时就会看到它崩溃!

因此,Overflow是黑客常使用的手段。如果黑客向智能合约提供了一个超出代码处理范围的参数,就会产生崩溃结果。这样的崩溃助长了多重攻击。崩溃可能触发拒绝服务攻击(DDoS攻击),这时,关于系统内部的重要信息有时会在错误消息中显示出来。

在web应用程序中,黑客经常用自己的恶意代码填充内存,因此,当程序崩溃并进入内存中的一个随机点时,恶意代码就会执行。

弱类型语言提供了强大的功能和动态灵活性,但它们也需要更严格的设计和测试来抵抗攻击。

大量的安全问题困扰着软件世界。随着新技术的出现,出现了新的威胁。除了上面提到的漏洞外,这些明显的缺陷只是许多其他区块链安全漏洞中的一些。

糟糕的密码系统制造了很多麻烦。密码学确保隐私,当隐私被破坏时,一切都会被破坏。IOTA团队犯了一个错误,在产品的初始版本中从头编写自己的密码库。滚动自己来加密所固有的问题是,所有复杂的软件都包含错误。

建立的密码库在经过学术界的审查后仍然存在,并且随着时间的推移,证明它是可靠的。

在钱包的世界里,随机数生成必须是真正随机的。特别是在加密货币出现的初期,一些钱包就不能满足这一要求。

加密货币要求地址必须是唯一的。唯一性来自一个随机数生成器,并且随机数生成器需要一个种子来开始这个过程。如果种子不是真正随机的,系统就会失败。

一个坏的随机性的结果意味着同一地址被多次创建。想象一下,钱包将地址X分配给某人A,然后稍后某个时候将地址X分配给某人B。当付款到达地址X时它只适用于一个人。那么到底哪个人会得到钱?

当黑客找出用于创建种子的算法时,会出现另一个随机性不好的问题。黑客为自己重新生成种子,并拥有系统。

安全永无止境

安全是一场永无止境的战斗,即使程序员、架构师和测试人员从代码中删除了所有漏洞,操作漏洞依然存在。

在一个工作环境的证明中,如果坏的参与者控制了网络的51%,那么完整性就会被破坏。博弈论为这种攻击提供了缓解。但是51%的攻击摧毁了货币的价值,所以攻击者只是伤害了他们自己。

区块链生活在互联网上,和互联网一样,也和黑客有同样的接触。例如,假设您从一个网站上的交换器中购买代币。注射式攻击、跨站点编写脚本、网络钓鱼攻击以及所有其他传统网站攻击都占上风。

结语

正如程序员要防范错误一样,程序员也必须在开发中考虑到安全性。虽然存在一些帮助程序员完成任务的工具,但是程序员必须首先了解他们自己的漏洞以防止它们。

分散式应用安全项目(DASP)希望成为区块链安全性信息和资源的存储库。他们在开放的Web应用安全项目(OWASP)上对自己进行了一些建模。年度OWASP前10名明确列出了目前存在的主要网页应用程序漏洞。DASP前10名希望为区块链提供同等的资源。

并非所有的攻击都是事先知道的。零日攻击定义了黑客在其他人之前就知道的漏洞。所以程序员在设计和实现软件时必须像攻击者一样去思考。如果您没有在代码中找到漏洞,那么希望寻找利润的黑客来替你找到它们。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭