专家警告,区块链的非加密货币用例也有安全风险。
网络安全圈子里最热门的话题之一就是企业区块链了。区块链技术也是比特币之类加密货币的底层技术。简单讲,区块链就是网络节点间共享的被加密算法锁定的一系列交易或合约。除了比特币,区块链还能确保供应链完整性、管理合约,甚至作为金融交易的平台。
区块链在加密货币领域的流行度,其对密码的应用和去中心化的特性,都向其支持者证明了这一技术是当前很多网络安全问题的解决方案。比如说,阿卡迈技术公司目前就在打造区块链驱动的在线支付网络。其副总裁兼CTO表示:“区块链本身就是种安全技术,融入了多种安全原则。”
比特币交易所被黑的消息常会震撼到任何人都可以设立节点的开放网络,但企业区块链项目与公开网络项目不同,企业区块链通常是被许可的区块链,其节点是私有的,只有机构本身通过了安全验证的人员才可以访问这些节点。
区块链不仅仅是一阵炒作热潮,即便不是万灵丹,区块链的益处也是真实有效的。理论上,区块链的基础概念就是抗攻击的。学术视角上看,区块链只要实现恰当,就非常难以被黑,其应用前景相当明朗。
但即便区块链是黑客难以攻克的堡垒,它也不是完全无法突破的。很多安全专家都警告称,区块链实现中存在一些公司企业需要注意的危险。
加密货币犯罪是一门大生意
虽然目前尚无企业区块链项目遭遇网络攻击的报道,但这主要是因为该技术仍处于试行发展阶段。对公共区块链项目的攻击已经非常普遍了。
Carbon Black 的研究表明,今年上半年就已有价值11亿美元的加密货币被盗。网络犯罪的增长驱动了能写恶意代码的程序员数量的上升,而暗网给了他们售卖恶意代码的完美市场。罪犯从这些攻击中获得的专业技能,以及暗网上涌现的各种工具,都可以被利用来攻击企业项目。
大多数加密货币攻击都没针对核心区块链技术,罪犯只是瞄准了防护不周的交易所和没好好保护自己钱包个人及公司。发起中间人攻击都可以将加密货币交易转移到罪犯自己的钱包中。
迈克菲最近一份关于区块链的安全报告中称,很多此类问题都源于终端用户安全或区块链实现上的问题,并非区块链加密协议自身的问题。企业区块链项目也有可能出现实现问题,即便这些项目不像公共链那样有着宽泛的攻击界面。对希望采纳区块链的公司企业而言,首先应权衡实现的成本和收益以及采用新技术的风险。
基于此,我们有必要关注以下5种区块链安全风险:
1. 进入区块链交易时的人为错误
就某些方面而言,企业区块链甚至有可能比公共链更脆弱。区块链广为宣传的好处之一,就是大型分布式点对点网络的弹性。一个节点失效,并不会导致整个系统宕机,系统会绕过该节点,避免了单点故障问题。一位参与者试图往账本中引入非法交易,其他成员将迫使他老老实实做生意。但万一有人犯了个诚实的错误呢?
去中心化的优势在于必须取得共识才能做出修改。于是,即便加密货币交易所犯了错,他们也无法修正。没有中央权威的情况下,一旦丢失加密货币钱包口令,那就永远找不回来了。企业区块链应用场景下,没人希望出现有错也改不了的局面。
另外,虽然区块链加密可防止用户修改历史账本,但此类系统往往允许参与者添加新的记录条目。企业区块链项目中,参与者往往是可信方而非来自公众的随机成员。一旦可信方被黑,区块链的安全也就消失了。
2. 51%攻击
更糟的是,如果区块链网络过半数成员被黑,那么攻击者就能夺取整个链的控制权,迫使所有成员服从他/他们的意志,造成巨大的伤害。
攻击者很难拿下比特币区块链网络,因为这个网络包含了太多参与节点。小型加密货币就比较脆弱,比如 Bitcoin Gold,5月时攻击者就以51%攻击的形式卷走了价值1800万美元的加密货币。
企业区块链项目的参与者数量通常远远少于公共加密货币平台。网络规模越小,攻击者需要黑的节点数量就越少。如果银行要推出区块链来处理交易,其节点数量将远少于公共网络,黑客能相对轻松地拿下51%的节点,拿过银行区块链的控制权。
企业部署很大程度上是同质化的,所以一旦发现某个节点上存在漏洞,该漏洞往往可以被利用来攻击所有其他节点。在公共域,人们下载各种不同的挖矿软件,节点配置也各不相同。企业环境则正好相反,一致的部署反而给攻击者带来了以点带面的便利条件。
3. 区块链实现错误
区块链项目的另一重大漏洞源,就是该技术还太新了,很容易出现实现上的错误。甚至核心区块链加密技术都可能存在问题。该算法本身可能在数学上相当合理而优雅,但具体实现上就未必那么完美了。
如果无法理解区块链的基础数学原理,那你基本上就是下载个号称“神奇”的代码黑盒而对其中都有些什么一无所知。开源世界里太多人依赖第三方库,而有人把GitHub上的代码库偷偷调换了都能长达6个月无人发现。这种情况还并不少见。
区块链技术太新了,很多人都不知道该避免犯哪些错误。区块链部署中的加密密钥也需要妥善管理,但大多数企业甚至连自己的网站证书都管不好。
与其他技术项目一样,企业区块链也容易遭受类似的攻击。就拿网络钓鱼与欺骗来说,虽然目前尚未发现企业区块链受到此类攻击,但这不过是因为生产环境中太少用到区块链的缘故而已。
公共区块链上此类攻击可多。攻击者会假装是收家,拦截或者黑掉网页以劫持交易,未必是加密货币交易,可以是任何其他种类的交易。
推出区块链项目的企业需确保所有安全基础都覆盖到,包括采用最新最安全的软件开发和审计过程,确保设置了多因子身份验证,以及锁定网站以防网页攻击。跨站脚本攻击可不管你是公共链还是私有链。所有这些攻击在网络安全领域都很常见,区块链并未自带免疫光环。
4. 智能合约被黑
2016年,去中心化自治组织(DAO)利用以太坊平台启动了基于区块链的投资基金。以太坊是区块链的一个变种,不仅仅能存储加密货币交易,还可以存储智能合约。但据Gartner报道,黑客利用一份智能合约从该系统中套取了价值1.5亿美元的以太币。
DAO案例给人们敲响了警钟:不能仅仅因为某样东西建立在区块链基础上就无条件相信它是安全的。
如今人人都在谈论区块链,大家都想使用区块链。人们常有一种误解,觉得只要利用该点对点分布式账本模型,建立在其上的每样东西就天生安全。但显然,这是一种错到离谱的假设。算法很神奇,具体实现则就看实现代码到底写得如何了。而有代码的地方就有漏洞,这是程序员众所周知的事实。
企业对智能合约很感兴趣。智能合约只要条件达成就能自动履行而且不能反悔。但这同时也意味着,合约一旦建立,将几乎无法撤销问题、改正错误或者扭转欺诈行为。比如说,很容易就会无意中写下条件永远无法满足的合约,或者物流地址写错了。
一旦发生这种情况,合约里的资金就永远锁定在区块链中了。而且此类情况已有前例,并非仅仅理论上会出现的事。去年秋天,某人意外锁定了多方以太坊合约,造成了超过3亿美元的损失。
5. 未检出的区块链漏洞
公共加密货币交易所如今已是区块链生态系统中唾手可得的诱人果实。资金多,容易得手,难被抓到。犯罪团伙总是追逐投资回报率最高的产业走的。
区块链产业目前还在新生阶段,我们甚至还没建立查找和报告非加密货币相关区块链漏洞的平台。约50家主流公司企业都表示要么投资,要么并购,要么实现区块链技术。区块链漏洞真正影响生产环境还有段时间。
但随着企业区块链项目上线,这些项目或资金庞大,或涉及关键基础设施或业务流程,或涉及政治或军事敏感信息,这种情况将发生改变。对每个人而言,区块链技术及其威胁防御都将伴随着漫长的学习曲线。首先采纳区块链的大公司将会首先经历区块链漏洞阵痛并从中汲取经验教训。
还未到黄金时间
目前,商业世界中的区块链是个“寻找问题的解决方案”。最大的风险来自于“我有个问题要用区块链解决,赶紧部署一个”的想法。区块链并非万灵丹。
区块链架构提供了无需中间人就能通过共识来享有信任的功能。它能解决很多问题,但解决不了所有问题。企业投资区块链时常会在这方面误入歧途,人们陷入“这个解决方案好,我们找几个问题来应用吧”的误区。从技术角度看,目前还是个相当危险的阶段。
【本文是51CTO专栏作者“”李少鹏“”的原创文章,转载请通过安全牛(微信公众号id:gooann-sectv)获取授权】