本文为万向区块链技术中心负责人沈育敏在“2021云上中国国际软件产品和信息服务交易博览会:全球开源大会技术分论坛-安全与可信专题论坛”上的演讲内容。沈育敏从国内外开源现状讲起,分析了开源技术面临的风险和治理,以及区块链在开源安全和可信治理中的应用,最后以万向区块链底层开源平台“万纳链”为例,进一步解析了区块链在开源技术中的应用。注:本文在原文基础上略有删减大家好!我是万向区块链技术中心负责人沈育敏。今天很荣幸受邀和大家一起聊聊“开源的安全可信治理与区块链”。我的演讲主要分为以下五部分:第一,开源现状;第二,面临的风险;第三,安全和可信治理;第四,开源与区块链;第五,万纳链。
一、开源现状及开源在中国的现状
开源软件从上世纪末开始兴起,大家最初使用开源软件的理由主要是因为其无需成本,以及能够帮助项目快速交付。但随着时间的推移,大家的关注点从早期的快速交付,逐渐转变为开源软件的可靠性。而如今,大家更加关注开源软件的安全与可信。
随着计算机技术的发展,尤其是互联网企业的兴起,开源软件在操作系统、编译工具、数据库、服务器、中间件等各方面已经成为了主流。据Gartner调研显示,99%的组织在IT系统中依赖于开源软件,因为其开发模式、理念与精神、社区文化吸引了一大批开源贡献者。当然,目前开源贡献者绝大部分还是靠爱发电。大家愿意主动贡献的原因,除了对开源理念与精神的认可,也有开源能帮助程序员、技术人员提高项目质量的因素。
万向区块链肖风:数字经济中使用权比所有权更重要,Token或是互联网平台反垄断的最佳解决方案:2月12日消息,万向区块链实验室创始人肖风近期在新跃社科大学 DBAC 论坛主题演讲时发言表示,数字经济会造就一个虚拟资产或者叫数字资产这样的一个市场体系。而且未来 20 年或者 30 年后可能会和现在的股票市场一样具有同样的规模,也具有同样的价值。数字化的产品和服务,具有高固定成本、低边际成本的价值规律,这造成了目前全球互联网平台造成垄断的现象。同时,在追求价值最大化的路径当中,使用权显得比所有权更重要,区块链时代把这个使用权的新价值规律发挥到了极致,而 Token 在数字经济中即代表了使用权。
区块链的分布式账本帮助我们从数字化的产品和数字化的服务当中,把使用权单独的抽取出来。其个人认为 Token 可能是反对互联网平台垄断的最佳解决方案。[2023/2/12 12:01:41]
首先,项目开源后不仅可以获得社区其他成员的贡献,对技术人员来说,开源项目也是非常好的展现以及推销自身技术的窗口。开源相对于闭源来说,最大的区别在于公开、透明。开源软件中一些Bug的发现、修复,以及新功能的提出都可以在公开的论坛中进行,对使用者来说,所有的这一切都是可溯源的,也可以做到心中有数,能够更加放心地使用。此外,开源软件的代码质量往往会较好,开发人员对于要公之于众的代码,显然会更加注重代码的可读性、可维护性等一些引擎项。不仅如此,社区成员对代码检查之后的评论、建议、贡献也能够为代码质量的提高带来显著的帮助。
万向区块链肖风:预计区块链将于2025年开始应用大爆发:9月20日消息,在由万向区块链实验室主办的第八届区块链全球峰会上,万向区块链董事长兼总经理肖风发表《区块链新阶段应用协议大爆发》主旨演讲。他表示,区块链的应用大爆发参照互联网应用发展的过程,应该在2025年会开始应用大爆发。这个判断首先基于2025年的时候,区块链体系也许能达到每秒百万笔的TPS。同时,Web3各方面的技术也许已经基本准备就绪。此外,新的商业组织形式开始完善,开始能够很好地运行。[2022/9/20 7:08:09]
开源软件的好处多多,除了透明、高质量外,免费、定制性、自由等等也是开源软件的好处。正是因为有这些好处,使用开源软件的公司在逐年递增,吸引了越来越多的开发者。近些年,全球开源贡献者的数量持续增加,2020年GitHub平台有5600万贡献者,相较于2019年增长了1600万。
接下来,聊聊开源当前在中国的现状。2020年,GitHub上美国贡献者数量位居第一,其次就是中国的贡献者,占到了14%,而且中国贡献者逐年增长的速度是最快的,尤其是从2016年开始,基本上呈现了指数级的增长。据调研数据显示,国内开发者对于开源的理解日趋成熟,70%的开发者认为开源吸引开发者的原因主要是在于其公开、透明的代码,还有就是知识共享、开源的理念与精神。GitHub预测,到2030年中国开发者将成为全球最大的开源群体。
万向区块链肖风:区块链应用落地的三个阶段,目前已迈入应用落地的2.0阶段:7月31日,万向区块链董事长兼总经理肖风博士受邀出席由工信部所属中国电子技术标准化研究院主办,万向区块链协办的“区块链技术和应用峰会暨第四届中国区块链开发大赛成果发布会”,并发表了题为“区块链应用落地的三个阶段”的演讲。肖博士表示,认为区块链的应用落地可以分成三个阶段。在区块链应用落地的1.0阶段,区块链技术主要发挥存证、溯源等工具性能。而今,我们已经迈入区块链应用落地的2.0阶段。在这一阶段中,区块链技术扮演起重组生产关系的角色,催生出分布式商业等创新的商业模式。区块链应用落地的2.0阶段,并非区块链应用的最终阶段。接下来,随着央行数字货币的发行,随着多边平台越来越活跃,我们会进入区块链应用落地的3.0阶段——也就是资产数字化和数字资产化,所带来的基于区块链的价值分配和价值交换。在这一阶段中,我们会看到数字化、智能化之后,再进行金融化、资产化,重新带来基于利益相关者的经济体制,新的价值评估、价值分配、价值交换的区块链应用被建立起来。[2020/7/31]
2020年,中国已经使用开源技术的企业占比达到了近九成,阿里、百度、京东、PingCAP的项目在GitHub的中国项目活跃度Top20的榜单中都非常亮眼。阿里巴巴的数据在多项指标上的表现都非常不错,有些指标甚至是其他指标之和,并且阿里在社区、文化、开放等方面也做得很好,大家日常开发工作中所用到的Notify、RocketMQ等中间件都是阿里的开源项目。
金色财经现场报道,万向区块链首席技术官:完全没有中心是没有效率的:在新金融100人主题论坛上,金色财经现场报道,在新金融100人主题论坛上,万向区块链首席技术官罗荣阁表示,完全没有中心是没有效率的,而中心化却存在垄断,通过点对点加共识算法的多中心化才能符合解决博弈主体之间所存在的问题。[2018/4/27]
可以看出,各大互联网企业近年来均在不断加大开源社区的生态建设。同时,增加开源的影响力,对于企业的招聘也会产生一些显著的助力。
二、开源软件的风险
就像硬币有着两面,任何事物都有两面性,开源有着诸多好处。随着各领域使用开源技术的企业逐步增长,开源的劣势逐渐在闪现出来。
开源项目技术迭代快,运维成本高。数量宏大,使用很多开源依赖后统筹管理比较困难。安全漏洞威胁。开源许可证和知识产权问题。可能存在大修改许可或收费问题。尤其是近年来,开源软件的安全漏洞风险越来越显著。2020年,热门的开源项目中含有至少一个漏洞的项目占到了84%,比2019年增长了9个百分点。含有高危漏洞的项目甚至占到了60%,比2019年增长了11个百分点。通过扫描数以百万计的GitHub代码库以及程序包,对其中500个开源项目的维护者进行调研后发现,只有8%的开源项目维护者自认为有比较高的信息安全技术和意识,另外有近半数的开源项目维护者不太做代码的审计,只有10%的维护者能够做到每个季度审核代码。此外,开源软件漏洞从发现到公布,再到修复的周期非常久。漏洞从公布到被修复的最长时间为94天,平均时间也有16天。
金色财经现场报道,万向区块链首席技术官:不要为了区块链而区块链:在新金融100人主题论坛上,金色财经现场报道,在新金融100人主题论坛上,万向区块链首席技术官罗荣阁表示,在金融保险行业,区块链技术并不是刚需,区块链技术只是锦上添花的存在,不要为了区块链而区块链。[2018/4/27]
美国近十年来最严重的一次数据泄露,是1.4亿多位美国征信巨头Equifax消费者的敏感数据被黑客所窃取,而这一数字占到美国人口的近一半。这起事件的源头是因为Equifax使用的软件中,有依赖于Struts框架的软件。Struts框架是开源的MVC框架,该框架中存在着安全缺陷,该安全缺陷被黑客首先发现并利用这一安全缺陷盗取了数据。由此可以看出,开源软件公开的代码能够获得更多贡献者帮助的同时,对于黑客来说,也是一个非常好的机会。
近期,在我们身边也发生了非常严重的开源软件安全问题。12月,LOG4J被爆出了安全漏洞,该安全漏洞不需要用户执行多余操作即可被触发,漏洞可以帮助攻击者远程控制受害者的服务器,当今90%以上的JAVA开发应用平台都会受到影响。这个漏洞涉及的范围及危害程度堪比2017年的“永恒之蓝”漏洞。我相信大部分的技术公司可能在12月份都会抽出精力做这一漏洞的修复和弥补。
开源软件风险防范共有四项:系统信息的泄露、密码管理、资源注入和安全缺陷。其中,安全缺陷是最重要的一部分。之所以会有非常多的安全缺陷,一个是因为开源软件贡献者普遍来说安全意识还不够高,另一个原因是开源软件的贡献者是用爱发电,所以确实没有多余的预算对所编写的编码进行安全性测试。还有另外一个问题,开源软件的安全漏洞虽然可以被社区中的其他贡献者所发现以及上报,但是只有84%的安全漏洞出现在NVD中,很多安全漏洞散落在几百个不同的资源中,这对三方开源软件的使用者提出了非常高的要求,需要自己去收集以及对接,不然就很有可能对自己的软件或平台产生安全的风险。开源的代码既可以被开源社区中的一些贡献者看到,也可以被网络犯罪分子或者黑客所利用,黑客可以发现代码中的漏洞并利用漏洞进行攻击。开源软件因为引用方众多,所以一旦攻击了一个漏洞,影响范围可能是非常大的。
除了安全缺陷外,许可证的违规使用也是一个比较大的问题。据统计,当前超过三成的项目并没有严格遵守开源软件的许可证使用方式。另外一个风险是开源软件项目随着时间的推移,迭代可能会变慢、变少,甚至中断,有数据显示有近九成的代码库中引用到的三方开源软件,在过去两年内没有任何开发迹象,这除了增加安全的风险外,在版本控制中落后太远也会有非常大的威胁,一些非常小的变更甚至都可能带来一些基础性的问题。
三、安全和可信治理
所以,开源软件的风险治理成为使用开源软件必不可少的工作之一。首先,要梳理、依赖以及分析,当前不少工具都可以帮助开源软件的使用者轻松做到这些。梳理软件物料清单时需要注意,除了第一次梳理,之后的每一次迭代都要维护清单、更新清单。大家可以根据迭代后的清单,找到当前不需要的依赖。我们发现开发人员在维护依赖的时候,即使发现不适用的依赖也会懒得删除,这显然会增大黑客的攻击范围,因此需要定期去检查,并删除不需要的依赖。漏洞源的对接相对来说会比较复杂一些,如刚才所提到的,并没有唯一的对接源可以包含所有漏洞的报告。所幸当前已经有一些开源组织提供了一些免费的漏洞库,对接几大组织的漏洞库之后,大部分情况下可以覆盖当前市面上大部分的漏洞。最后,对比版本的依赖,以及发现问题、修复问题。
风险的治理贯穿于研发的生命周期,我个人建议把对于安全的把控左移到设计阶段,在设计阶段就引入安全人员,对于需要引用的开源软件,除了做调研、对比选型、性能测试以及漏洞源数据对比外,还要关注该项目开源社区的活性,以及该项目相关的许可证。
安全风险的治理需左移,要求我们在设计的时候就对此加以关注。在设计阶段,需要对新引用的三方依赖做调研、对比选型、使用验证,甚至会安排性能测试,最终给出选型文档、性能测试报告等等。尤其需要关注该开源项目的社区活性,对于社区活性较弱的开源项目,选择使用的时候需要尤其谨慎。在设计阶段,对于软件物料清单的更新以及许可证的调研等等,都需要在这个阶段加以考虑以及分析。同时,在之后的研发、测试、生产流程中,也是需要有一些手段确保开源软件使用的安全性。
同样,在之后的研发测试等环节中,也有需要执行相对操作来确保安全。开源软件的安全治理在我们公司是在安全治理中非常重要的组成部分。我们公司安全平台的框架中,项目漏洞追踪、开源安全开发模块都是为了帮助并确保引用开源软件时避免安全缺陷。
四、开源与区块链
区块链是去中心化的,天然符合开源的理念。央行数字货币研究所副所长狄刚曾经说过:区块链与开源是互相促进的,区块链有了开源才能走得更远。
为什么这么说呢?其实很简单,区块链的机制是不可篡改,由此减弱信息不对称现象,从而建立信任。但这个不可篡改是建立在理论基础上的,如果区块链不开源,对使用者来说是个黑盒,即时的信任可信度是会被打折扣的。纵观区块链发展史我们知道,以太坊等都是通过开源来获得信任,从而凝聚共识的。
另外,区块链对于开源会有什么帮助呢?区块链天然内置激励,能够解决开源社区的激励不足问题。Gatecoin就是国外开源软件开发激励平台,其愿景是通过区块链支持各类开源项目,帮助不同规模的开源项目寻求资获得资金的机会。此外,智能合约的自动执行,也能减少社区大规模协作的成本。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。