【51CTO.com快译】虽然区块链和智能合约都有其独特的漏洞,但它们也将有利于企业应对糟糕的代码测试、加密钥和网络攻击。
为什么企业区块链现在如此受欢迎?主要有两个原因:共享现有的多个数据和大量的数据处理,每个人都希望其他人使用自己的系统和数据格式。
企业区块链以两种方式解决这些问题:首先,区块链和智能合同迫使每个人就数据格式和处理规则达成协议。更重要的是,这些规则是由系统强制执行的,除非每个人都同意更改,否则没有可用的人工覆盖。其次,区块链和智能合同本质上是每个人的“绿地部署”,没有人会有现有的解决方案来试图强加给别人。
然而,新技术带来了新的风险,这通常是人们不太了解的风险。目前,企业区块链和智能合同部署存在三个新风险:旧软件、软件缺陷和操作缺陷。
和任何技术一样,区块链和智能合约也有一些创造性的方法来带来安全风险。
以下是企业在采用前需要权衡的8个区块链安全风险:
1.老旧软件
虽然企业区块链软件很少过时,但就其变化速度和改进而言,任何使用一两年以上的软件基本上都是“石器时代”的工具。
R3的开源Corda区块链平台就是一个很好的例子:从2016年5月发布的第一个版本到2021年5月(4.8版),Corda已经发布了182个版本,每10天发布一个,其中许多都进行了重要的修改,添加主要功能和重构或代码删除是很常见的。在大多数企业项目中,最新版本的安装软件通常从未升级,因为担心升级可能会影响业务的正常运行。
经验教训:确保软件是最新版本,并且可以保持更新。
2.安全漏洞覆盖率不足
企业区块链软件在安全漏洞数据库中的覆盖率不足。这意味着除非供应商的软件发布活动一直跟踪,否则大多数企业没有进行安全更新。缺乏安全漏洞覆盖率是一个巨大的问题,特别是没有进入一般漏洞和风险库(CVE)美国国家通用漏洞数据库(NVD)覆盖范围,因为如果一些漏洞没有得到官方认可,很多企业可能会认为没有这些漏洞。区块链虽然不确定CVE和NVD覆盖率差的主要原因之一是缺乏具体区块链漏洞的官方文件。
经验教训:确保企业有资源监控正在使用的区块链和智能合安全漏洞和更新。
3.缺乏安全漏洞知识
传统软件已经很好地理解了漏洞的类型,其中许多都记录在通用弱点上(CWE)字典中——例如,缓冲区溢出和整数溢出的区别是网络攻击者使用的常见弱点。通用弱点枚举(CWE)它是一种关键资源。许多代码扫描工具都把它作为检测漏洞类型的基础。
但截至2021年5月,通用弱点枚举(CWE)区块链或智能合同没有具体覆盖。好消息是,这些问题已经被采取措施记录下来,比如SWC注册中心(以太坊等公司使用30多种强大的智能合同语言)和云安全联盟的区块链DLT攻击和弱点枚举数据库有200多个项目,涵盖各种智能合同语言、区块链技术和一般概念。
经验教训:询问企业代码审计员或工具会发现哪些漏洞,他们应该能够清楚地表达和解释。
4.代码扫描和安全测试不足
目前的区块链和智能合同代码扫描工具还不是很成熟,原因很简单,因为技术太新了。然而,更糟糕的是,许多智能合同是在没有安全审计的情况下部署的。这种情况开始改变,但了许多安全事件,使人们意识到审计代码和生成新密钥的重要性。
例如,Paid Network公司是金融交易区块链的去中心化应用程序(dApps)该公司提供了一份支付给开发人员的智能合同,但它从未删除过开发人员的密钥,因此被损坏。当开发人员的密钥后来出现时Git提交(将程序代码保存到存储库的过程)在公开时受到网络攻击。
本合同已通过安全审计。但审计员无法审计生产密钥,这将泄露,因此他们认为付费网络将用安全生成的密钥代替,但事实并非如此。
经验教训:确保所有智能合同代码的扫描和审核,安全生成并正确添加所有加密钥。
5.操作风险
假设企业有一个安全的区块链和一个没有任何安全漏洞的良好格式的智能合同,区块链和智能合同代码仍然必须在某些东西上运行,最好连接良好和可靠。如果企业选择使用云计算服务或第三方托管,则需要确保它们也是安全的。
寻求超越SOC2合规声明的真实性和透明度。一种资源是云安全联盟的安全、信任、保障和风险(STAR)注册项目允许用户直接比较供应商提供的答案。
经验教训:提出问题,注重安全的供应商和服务提供商些问题,而不是回避。
6.加密密钥和硬件安全模块(HSM)
加密钥是每个区块链服务和客户端的核心。即使在使用特殊系统时,在计算机中保存重要加密钥的措施也不再安全。
企业需要在硬件安全模块中保存加密钥(HSM)。硬件安全模块(HSM)计算机基本上做不到的两件事:首先,可以设置密钥,使其无法从硬件安全模块(HSM)其次,用户可以使用硬件安全模块(HSM)更可靠地记录密钥的使用情况。这很重要,因为如果企业的网络被入侵,它将能够确定网络攻击者使用密钥的目的,而不是猜测他们可能会进行网络攻击。
经验教训:敏感操作的加密材料必须存储在硬件安全模块(HSM)并备份。
7.网络钓鱼、SIM卡交换等攻击
企业区块链通常不使用钓鱼或钓鱼SIM交换此类技术受到广泛的网络攻击,通常用于攻击使用加密货币的用户。然而,由于其攻击非常有效,勒索软件和相关攻击越来越多地转向网络钓鱼和鱼叉网络钓鱼活动。处理这些攻击的措施通常是使用强大的多因素认证。理想情况是基于硬件令牌,即使被愚弄,也可以防止用户向网络攻击者提供信息。
经验教训:人类会犯错误,企业需要创建业务和技术流程来捕捉错误和恶意行为。
8.51%攻击
令人欣慰的是,在大多数企业的区块链部署中,使用共识机制而不是工作量证明(PoW)机制。更常见的是,使用权益证明或更传统的投票机制,如大多数投票。
51%攻击是指基于工作量证明,单个实体接管大部分区块链哈希率或计算资源试图破坏网络(PoW)系统是最有效的。即使采用简单的共识机制(如大部分票),网络攻击者也需要劫持51%的企业——虽然这些计算资源通常可以租用,但它比简单地组合计算资源要困难得多。
经验教训:确保了解正在使用的区块链共识机制以及网络攻击者在什么情况下能够破坏它们。例如,构建一个需要超过一半的企业被破坏的系统是一种可以接受的风险。
结论
区块链安全有好消息和坏消息。坏消息是区块链和智能合同软件几乎比其他任何东西都更复杂,更难保护。好消息是他们真的很难解决的问题。
企业希望建立一个信息处理系统,知道网络攻击者可能正在攻击,但不会系统。解决这个问题将开辟各种新的市场和机遇。
基于比特币自2009年推出以来的进展,并且正在稳步实现这一目标,一些安全系统已经投入生产,以抵御高水平的网络攻击和滥用。但与任何新技术一样,它仍然需要大量的专业知识来安全地构建和部署区块链,并更安全地运行。
标题:8 blockchain security risks to weigh before adoption,作者:Kurt Seifried
【51CTO转载合作网站时,请注明原译者和出处51CTO.com】