区块链信息系统安全测评方法研究
2021-01-18相里朋梅家争徐志范
相里朋,梅家争,徐志范
(工业和信息化部电子第五研究所,广州 510610)
0 引言
近年来,区块链技术数次被炒作、被营销、被否定,但并不影响其逐渐成为发展数字经济的关键技术之一,其具有的去中介化、难以篡改、数据可信、来源可溯等特性,从根本上解决了信息在交换与转移中产生的欺诈和“寻租”现象,破解了信息不对称产生的不信任难题,扩大了“信任半径”,其正以前所未有的速度发展,相关应用成果也快速融入社会各行各业当中。然而,区块链技术被追捧上天,却难以落地,行业内鲜有真正应用场景出现。究其原因,在于其受到现有的技术局限性和面临的安全问题的掣肘,已严重影响其产业的健康发展。
1 区块链的概念及主要技术
1.1 区块链的概念
区块链作为一种传递信任、共享价值、促进协作的底层基础软件,是一种全新的计算机技术应用模式,具有去中介、难篡改、可追溯、多方互信等特性,可广泛应用于电子政务、社会征信、5G、工业互联网、供应链金融等领域。其以时间顺序将区块数据排序,并组合成一个链式结构,采用非对称加密和哈希散列实现数据的不可篡改和不可伪造。其本质是一种分布式账本,采用分散和合作的方式,保证分布式数据的安全性,类似于独立客观的第三方公证人,不在任何个人、组织或机构的控制下,记录和见证着所有数据与行为。区块链主要使用基于椭圆曲线数学的公钥密码学算法,签名人可以使用绑定身份信息的私钥对数据电文进行签名,之后将签名与原始数据发送给整个网络,网络中的所有节点则可用公钥对其有效性进行验证,可解决端到端数据篡改问题,并建立基于数学、代码和机器的信任,促使区块链系统中的节点能在非信赖的环境下自由、安全地交换数据。
1.2 区块链的主要技术
区块链并非全新的前沿技术,而是一种集成了多种现有技术的组合式创新,其技术主要有分布式账本、点对点传输、密码学应用和共识机制等。
(1)分布式账本技术。区块链系统中的区块就像一个个电子账单,记录着所有节点的交易信息。每个区块的数据都存储在各用户的客户节点中,所有节点共同构成了一个安全可靠的分布式账本。即使任意节点的数据被销毁,整个系统的账本完整性与正确性都不会受到影响。整个系统具有高度的透明性和开放性,除对交易各方的私有信息进行加密外,会将可共享信息面向所有人公开,并可通过开放接口查询到公开数据。
(2)点对点传输技术。点对点传输技术也称为对等网络,是TCP/IP的一种通信体系结构。采用点对点传输技术后,相互连接的节点都处于平等地位,节点可直接连接且自由进出,任意节点的权利和义务都是均等的,系统中的数据块由整个系统中的节点来共同维护。
(3)密码学应用技术。区块链系统采用多种密码学原理进行数据加密及隐私保护,尤其是非对称加密算法和哈希散列算法(同电子签名的主要技术)。
(4)共识机制技术。共识机制又称为共识算法,是区块链系统中各个节点达成一致的策略和方法,常见的有 POW、POS、DPOS、PBFT、DAG 等数十种算法,系统可根据不同的应用场景、系统情况来灵活选择。
2 区块链的安全风险与原因
2.1 区块链的安全风险
越来越多的行业选择了区块链,但因技术成熟度不高,特别是安全方面仍面临诸多挑战,由此引发了一系列系统安全问题。根据中国区块链测评联盟发布的《区块链与分布式记账信息系统评估规范》中的系统参考架构来看,其主要安全风险如图1所示。
图1
(1)区块链平台层:提供了区块链信息系统正常工作的运行环境和基础组件,包括分布式账本、对等网络、密码学技术、共识机制、跨链技术和智能合约(运行环境)等,面临的安全风险如下:
●基础设施安全风险:区块链采用的分布式账本存储方式以及相关存储设备可能面临的安全风险,如MySQL、LevelDB、RocketDB数据库的安全漏洞,可能导致未经授权的区块链存储设备访问和入侵,或者是存放存储设备的物理运行、访问环境中存在的安全风险。
●网络攻击威胁:包括DDoS攻击、利用设备软硬件漏洞进行的攻击、病毒木马攻击、DNS污染、路由广播劫持等传统网络安全风险。
●数据丢失和泄露:针对区块数据文件的窃取、破坏,或因误操作、系统故障、管理不善等问题导致的数据丢失和泄露,线上和线下数据存储的一致性问题等。
●共识协议漏洞:针对共识机制漏洞的算力攻击、分叉攻击、女巫攻击等,或采用不安全协议及协议的不安全实现,可能导致的整个区块链系统不一致,也可能影响区块链系统的防篡改性。
●智能合约运行安全:虚拟机自身安全漏洞,或验证、控制等机制不完善等,造成攻击者部署恶意智能合约代码,扰乱正常业务秩序,消耗整个系统中的网络、存储和计算资源,进而造成各类安全威胁。
●密码学应用风险:Google、IBM相继在量子计算机上有所突破,当前看似安全的RSA、ECC、SHA256等密码学技术,有可能在量子运算中被破译掉,极大威胁了区块链技术的安全性、可靠性,甚至其可信系统也亟待一定的调整。
(2)区块链中间层:提供区块链信息系统调用平台层基本功能的接口,并为API层提供接入管理接口,包括接入管理、节点管理、账本管理等,面临的安全风险如下:
●接入管理攻击:通过进行自动程序攻击、通信过程攻击、非法用户入侵、管理员密码盗取等方式,对接入管理模块进行入侵,获取管理员权限。
●恶意节点:通过仿冒、漏洞利用等手段非法获取或提升权限,进而开展攻击,或节点间联合作恶的情况发生,刻意扰乱区块链运行秩序、破坏正常业务。
●分布式账本漏洞:利用分布式账本可能存在的输入验证、API误用、数组越界等漏洞,造成分布式账本系统运行异常、崩溃,或实现越权访问、窃取私密信息等。
(3)区块链API层:调用中间层功能组件为用户应用、管理应用和分布式应用以提供可靠和高效访问的功能,并提供统一的访问和节点管理,包括用户API、管理API和外部API等,面临的安全风险如下:
●API攻击:针对API的漏洞进行重放攻击、暴力攻击、XSS攻击、SQL注入、参数篡改等。
(4)区块链应用层:将不同类型的API封装成业务相关功能,供区块链信息系统访问和使用,包括用户应用、管理应用和分布式应用等,面临的安全风险如下:
●智能合约漏洞:利用智能合约安全漏洞、后门,在典型应用中可能导致合约控制流劫持、未授权访问、拒绝服务等风险。
●私钥管理安全:针对用户生成并保管的私钥开展攻击,导致私钥文件泄露或被窃取,威胁用户整体安全。
●账户窃取:利用病毒、木马、钓鱼等传统攻击手段窃取用户账号,进而利用合法用户账号登录系统进行一系列非法操作。
●系统环境漏洞:区块链系统所部属的服务器,若存在系统安全漏洞、病毒恶意程序,杀毒软件缺失、防火墙或安全策略配置不当等问题时,有可能突发重要安全事故。
●系统功能缺陷:软件功能因开发人员能力、编码习惯及质量、需求理解不一致、功能设计水平低、缺少第三方验证等原因,造成的区块链系统功能模块存在质量缺陷,影响系统的稳定运行。
●DDoS攻击:利用点对点协议、底层软件协议的缺陷,开展DDoS攻击,或在系统应用层发起针对业务的DDoS攻击,影响区块链+行业应用的业务可用性。
2.2 安全风险原因分析
区块链面临的安全风险多种多样,但究其原因,主要有如下几点:
(1)相关政策并不明朗,区块链安全性验证缺乏统一认证。国家部委、地市政府虽高度关注,但与基于互联网技术所实现的信息系统相比,基于区块链技术所改造的信息系统,其安全性如何评价、如何保障,尚未存在一个能提供完整指导的技术规范,政府“不敢用、不想用、不愿用”现象突出。
(2)共识机制、智能合约、分布式账本等现有关键技术,自身存在一定的技术安全隐患。区块链+行业应用也缺少工程化的理论和方法指导,系统性安全保障体系缺失,进而导致安全事故层出不穷。近五年,全球区块链产业因安全事故损失高达28.64亿美元。如币安交易所于2018年遭受攻击,损失4.2亿元;EOS公链存在合约漏洞,黑客可利用漏洞控制和接管在线节点等。
(3)因去中介、算法自治、匿名保护等特性,区块链+行业应用也对公民隐私数据的保护提出新的要求,并对虚拟网络的数据安全带来新的挑战。面对层出不穷的安全事故,如何更安全、更有效地开展区块链+行业应用的管理,政产学研用各界代表有必要给予更多关注。
(4)区块链安全生态不完善,产业链各生态方仍面临各类安全攻击,如交易所、矿池/矿机、钱包、智能合约及用户,依然面临DDoS攻击、DNS劫持、钱包被盗、个人欺诈、钓鱼、病毒木马等安全问题。
3 区块链安全测评方法
3.1 区块链的安全质量模型
依据中国区块链测评联盟发布的《区块链与分布式记账信息系统评估规范》,打造区块链信息安全质量模型,主要包括保密性、完整性、抗抵赖性、真实性、可追溯性等质量特性。
图2
(1)保密性测试
●重点考察用户未授权情况下访问账本数据,数据隐私是否可保护。即检测用户是否可在未授权情况下,访问账本的隐私数据。
●重点考察系统对未授权的功能访问进行控制的能力是否符合需求。即检测系统是否可对未授权的功能访问进行控制,且控制范围和结果是否满足用户要求。
●重点考察系统对未授权的数据访问进行控制的能力是否符合需求。即检测系统是否可对未授权的数据访问进行控制,且控制范围和结果是否满足用户要求。
●重点考察系统对数据类型实现加解密的比例是否符合需求。即检测系统中已实现加解密的数据类型个数,是否符合用户需求。
●重点考察系统对数据类型进行正确地加解密的能力是否符合需求。即检测系统中已实现并已验证正确的加解密的数据类型,是否符合用户需求。
●重点考察系统使用的加解密算法是否符合需求。即检测系统中已使用的加解密算法,是否符合用户需求。
(2)完整性测试
●重点考察系统防止数据被讹误的能力是否符合需求。即检测系统中已实现的可防止数据讹误的功能点,是否符合用户需求。
●重点考察系统为防止数据被讹误所采取的方法是否符合需求。即检测系统中已实现的可防止数据被讹误所采取的方法及个数,是否符合用户需求。
(3)抗抵赖性测试
●重点考察系统采用的数字签名算法是否符合需求。即检测系统采用的数字签名算法正确性,是否符合用户需求。
●重点考察系统预防实体否认发送事件及其行为的能力。即检测系统中已实现的预防实体否认发送事件及行为的功能,是否符合用户需求。
●重点考察系统预防实体否认接收事件及其行为的能力。即检测系统中已实现的预防实体否认接收事件及行为的功能,是否符合用户需求。
(4)真实性测试
●重点考察系统使用的身份鉴别方法是否符合需求。即检测系统中采用的身份鉴别方法,是否符合用户需求。
●重点考察系统实现的数据鉴别规则数量是否符合需求。即检测系统中采用的数据鉴别规则数量,是否符合用户需求。
(5)可追溯性测试
●重点考察日志进行安全保存的实际时间是否符合需求。即检测系统中日志安全保存的实际时间,是否符合用户需求。
●重点考察用户访问系统和数据的审计追踪能力是否符合需求。即检测用户访问系统功能时,系统的审计追踪能力,是否符合用户需求;用户访问系统数据时,系统的审计追踪能力,是否符合用户需求。
●重点考察用户访问的账本记录的审计追踪能力是否符合需求。即检测用户访问账本记录时,系统的审计追踪能力,是否符合用户需求。
3.2 区块链的安全测评要点
(1)网络设备的安全测试:重点开展网络设备(如路由器、交换机等)的漏洞扫描、漏洞挖掘、安全功能检查以及配置检查等,减少区块链信息系统的安全威胁。
(2)数据存储的安全测试:重点开展区块数据或文件的存储和转发测试,是否存在信息泄漏或失窃隐患,是否具备数据备份功能,以避免数据文件丢失、损坏而无法恢复。
(3)密码学应用的安全测试:重点开展采用的哈希散列算法、加解密算法的正确性、安全性测试,以及是否采用数字签名/验签算法。
(4)P2P网络的安全测试:重点开展DDoS攻击、女巫攻击及日食攻击防范测试,并验证是否采用网络加密传输方式。
(5)共识机制的安全测试:重点开展节点数据一致性和正确性测试,主要包括双花攻击、再生攻击、分歧攻击、魔女攻击、贿赂攻击、预期攻击、自私挖掘等的测试,以及检验系统是否具有良好的容错能力。
(6)智能合约的安全测试:重点开展合约代码的安全漏洞测试和合约可靠性测试。检查范围包括:整数溢出、越权访问、拒绝服务、逻辑错误、信息漏洞及函数误用等。
4 结语
自2016年国务院印发《“十三五”国家信息化规划》,首次提及区块链技术起,国内各界对区块链技术发展与应用的关注度持续升温,该技术已在多个重点行业探索应用,但其存在的安全问题,已严重制约其应用进一步落地推广。本文通过分析区块链平台层、中间层、API层和应用层中所面临的安全问题,结合安全质量模型,探讨区块链安全测评方法,对于区块链安全测试的研究,区块链应用落地质量的保障,具有一定的参考意义。