区块链技术是集合了分布式技术、密码学、数据存储等多项技术的一项融合创新品,它于2008年跟随比特币同时出现,经过十年的发展,已被越来越多的人所理解和接受。如今,除了各式各样的数字货币,区块链技术也开始逐渐被引入到金融等各行业的应用场景中。在区块链技术发展和应用落地过程中,已经出现、将出现哪些安全问题,又需要何种安全解决方案,本文将进行简要分析和介绍。
一、数字货币的安全现状
区块链目前最常见的应用包括各类数字货币,而数字货币的账户钱包、交易所、矿池等几乎均遭到过黑客不同程度的攻击。
已知的以太坊开源软件漏洞已包括Solidity漏洞、短地址漏洞、交易顺序依赖、时间戳依赖、可重入攻击等。2016年6月17日区块链业界最大的众筹项目The DAO(被攻击前拥有1亿美元左右资产)遭到攻击,导致300多万以太币资产被分离出The DAO资产池。2017年11月8日,以太坊Parity钱包再出现重大bug,多重签名漏洞被黑客利用,导致上亿美元资金被冻结。
Coinbase.com和Blockchain.info等加密货币钱包的Web注入漏洞,使得用户在访问受恶意软件感染的网站时,恶意软件能够检测到用户的访问活动,并在后台悄悄注入经过混淆处理的恶意脚本,然后修改目标页面中的呈现内容。这样当用户登录时,其凭证信息将会发送给攻击者所控制的服务器。当攻击者获取到目标用户的凭证数据之后,会利用这些数据来访问用户账号,并修改相应的安全设置以进行之后的欺诈交易。
Ledger硬件钱包微型控制器B缺乏验证机制,让研究人员能够绕过这种保护机制,并在Ledger产品中运行恶意代码。然后利用恶意软件来更新Ledger设备并窃取交易私钥,之后研究人员就可以获得目标用户加密货币账号中的所有数字货币了。
2017年12月初,全球最大加密货币挖矿市场NiceHash官方团队宣布因安全漏洞而被盗,平台关闭超过24小时,损失大约6200万美元的比特币。之后NiceHash公布赔偿计划,赔偿于2018年2月2日开始,所有被安全漏洞影响用户的旧账户将仅获得丢失资金10%的补偿。
《区块链:新经济的蓝图》一书展望了区块链的发展方向:区块链1.0是加密货币或与其相关的数字支付系统,区块链2.0包括在链上实现的应用于金融、市场、财政等领域的智能合约,而区块链3.0的概念则是区块链在其他更为广阔领域中的应用,例如管理、医疗健康及其他基础服务等。
在区块链技术发明之初,发明者做出的设计是通过无限量可自由生成的交易地址来实现用户的匿名和交易的不可追踪, 从而实现较强的隐私保护。然而, 近几年的研究发现, 由于区块链数据的公开性,通过分析大量的交易和网络数据,可以设计各类去匿名方案,因此需要防止恶意攻击者通过这种方式分析得出个人隐私数据。同时,由于区块链上的记录不可修改,一旦交易被记录下来就永远存在,并且是公开的、分布式的。因此区块链技术,特别是在公有链和联盟链等场景,将来要在各行业的真正落地,必然伴随着个人和企业数据安全边界的重新建立问题,有着众多难点需要解决。
二、安全问题简析
1)账户安全
账户是用户实体在虚拟世界的代表,其安全的重要性不言而喻。区块链的账户安全着重体现在节点私钥安全性上。一些数字货币交易所为了提高用户使用的便利性,采用用户私钥托管在交易所系统的方式,也增加了交易所被攻击后的用户私钥泄露风险和交易所人员监守自盗的风险。一些用户为了增强安全性,则采用了离线“冷钱包”的方式存储。所以,实际应用中需考量安全和便利性之间的取舍问题。
2)密码算法安全
由于区块链中采用了多种密码算法,容易导致其中存在不安全或者不合规的算法,或者不合理的使用方式。如采用了一些安全性已无法保证的算法,如使用了不再安全的哈希算法,可能出现哈希碰撞攻击。在密码技术使用过程中同样会出现安全问题,如以太坊存在的“偷渡”漏洞,就是由未鉴权的敏感RPC API服务和解锁账户存在一定的免密操作时间所共同造成的。
3)协议安全
PoW共识机制容易遭受51%攻击问题。51%算力攻击曾一度被认为是难以达到的,而随着矿池的出现,一个名为GHash.IO的矿池就曾经在2014年6月拥有全网51%的算力,因此, 51%算力攻击的威胁始终存在,并且是可能发生的。在权益证明类的共识机制(PoS、DPoS)中,还存在“无利害关系”攻击问题(Nothing at stake)。投票的节点可能因为私下接收贿赂等原因,做出影响原本判断的决定,从而造成选择分叉上的偏向。在BFT共识机制中,共识协议能够做出正确判断与否和网络中恶意节点的数目相关。一旦存在拜占庭故障节点超过阈值或者被某一实体控制多数节点,则有可能阻碍交易的进行,甚至是被迫接受恶意交易。ZCash所使用的零知识证明机制zk-SNARK会初始参数设置阶段,生成一个“绝对机密”的随机信息,拥有这些初始化的随机信息可以欺骗验证者,因此需要保证该过程的绝对机密与安全和拥有这些初始信息实体的绝对“可信”。区块链中的共识协议,是否能保证真正的安全性,需要更严格的证明和时间的考验。
4)编码安全
#p#分页标题#e#区块链业内常说“代码即法律”,可如前文所述,不论是区块链底层系统还是相关的数字货币交易所等系统,在其代码实现过程中总会有这样那样的软硬件漏洞,所带来的攻击也就层出不穷,大大增加了数字货币所有者财产被盗和区块链行业应用落地时的安全风险
5)隐私保护
当前,主要国家纷纷出台法律法规对数据和隐私保护做出了具体要求,如欧盟近期准备实施的《一般数据保护条例》,要求数据主体享有删除权和遗忘权,同时对于数据泄露的处理也给出了具体的规定。国内相应数据隐私保护法律及《公安机关互联网安全监督检查规定》也在制定和征求意见过程中,将对数据泄露进行追责和处罚 。
区块链一个节点的业务数据被所有节点共同拥有和共同见证的技术特性,使得用户在使用区块链系统时也往往存在被竞争对手或其他实体获得自身敏感数据的担心。因此对于区块链应用系统,随着行业应用的推广,会有相当多的安全隐患和数据安全违规风险需要去面对。
6)监管
据报道,近期德国研究人员在比特币的有些区块上发现了涉及儿童虐待和色情的内容,且不可撤销。这引出了区块链系统的监管问题,大量的区块依次相接,采取何种方式对其中内容进行监控,出现了恶意内容如何处理,对于非法交易如何追踪等等问题,也亟待解决。
三、应对策略
当前区块链技术正处于百家齐放,蓬勃发展的状态,各式各样的技术架构和应用场景层出不穷。与此同时,区块链技术也一直存在着性能耗能、去中心性(多中心性)、数据安全隐私保护的“不可能三角”。自诞生之日起,区块链技术也就是处于不断地自我优化中。而当前各行各业对于网络安全的要求也已经逐步具体化,因此在建设各类区块链应用系统时,就有众多的安全问题需要着重考虑。梆梆安全自2016年开始研究和布局区块链安全,随着研究的深入和不间断地跟踪行业发展,积累了许多切实可行的区块链安全解决方案和有针对性的安全产品,并且已应用于一些区块链企业的安全防护中。
1)节点密钥保护技术
针对节点私钥进行保护。根据业务特点,采用基于密钥白盒、代码混淆、密钥协作式托管等技术在保证安全性的同时提供便利性,或采用符合相关技术要求的TEE(可信执行环境)、硬件安全芯片等更高安全性的解决方案,保障区块链节点的密钥安全。
2)运营网站安全产品
针对数字货币交易所、矿池等系统所面临的网页篡改、网站钓鱼、植入后门、DDoS攻击等安全问题,提供立体化的网站安全解决方案,包括:网站安全咨询与评估服务、网站安全防护、7*24网站安全监测、网站安全应急响应服务等。使得业务在上线后能够抵御绝大部分的安全攻击,同时通过安全应急响应服务确保一旦出现安全问题时,能够快速定位并解决。
3)安全服务
渗透测试:通过模拟攻击的方式,借助于人工和自动化工具,测试区块链系统的数据安全、代码安全、组件安全、业务安全等,并最终提供渗透测试报告。
安全咨询:基于软件安全开发生命周期(SDLC)从安全需求、架构设计、安全开发、安全测试全流程提出区块链系统开发的安全建议和指导,帮助客户提高系统安全性。
安全培训:通过PPT、Demo演示等形式面向管理、研发、测试及安全部门的整体培训。培养客户安全意识,提升整体安全水平,帮助建立内部安全流程。
源码审计:从安全的角度对整个区块链系统的代码质量进行审计,找出其安全隐患,并给出安全报告和修复方法,从而提升系统整体安全水平。
4)数据隐私保护及监管整体方案
针对区块链技术特点及实际落地过程中会遇到的数据隐私和监管等要求,提出整体的解决方案。针对公有链和联盟链等具体应用场景,提供适合的区块数据加密、擦除、遗忘和实体标识隐藏方案。只对参与共识的节点提供密钥权限,同时天然具备可审计性,尽可能减少了私钥权限滥用的可能性,并把私钥泄露或滥用后带来的损失降到最低。采用职责分离的方式,监管系统仅提供授权和审计功能,不参与共识协议等具体业务过程,保证了区块链本身业务正常运行和去中心性(多中心性)不受影响。
区块链是一项能够降低信任成本的开创性技术,然而通过分析层出不穷的安全事件和陆续出台的相关法律法规告诉我们,区块链技术还有很多问题需要解决。因此,针对区块链特点的安全技术就不仅是区块链技术发展、应用拓展过程中的附带品,而更可以是促使区块链这项“酷科技”能够真正顺利落地的高效催化剂。一直以来相关企业和机构也在向着区块链应用落地的目标对区块链技术进行着优化,这个过程中所面临的安全挑战也是艰巨的。梆梆安全愿同各界同仁一道,为区块链技术在更多领域的成功应用落地而不懈努力。