【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】