【牛人访谈】开源盛世需警惕 “安失之乱”
作者: 日期:2021年03月01日 阅:15,827

  • 自由与开源软件(FOSS)在现代软件中的占比高达80%-90%。
  • 75%的开源代码库中存在漏洞,其中49%的开源代码库中存在高危漏洞。
  • 67%的开源组件存在许可证冲突的情况。
  • 只有22%的开源项目使用了威胁模型。
  • 只有2.3%的开源贡献者愿意在安全问题上花时间。

近年来,伴随着“大智移云链”等新兴技术的蓬勃发展,开源软件的支撑作用越来越明显,开源软件因此也被各行业广泛引入和使用。根据开源安全基金会(OpenSSF)的最新报告,自由与开源软件(FOSS)在现代软件中的占比高达80%-90%。

一方面开源软件具有免费、繁荣、易获取等优点,但是开源软件又具有开放、自由、共享等特性,使其容易被利用作为攻击点。通过利用开源软件漏洞,甚至伪装成开源贡献者预埋漏洞,都是被验证可行的攻击形式。各行业在享受开源红利的同时,也逐步认识到开源软件的潜在风险。监管部门、企业、机构等都开始重视并推动开源软件安全治理工作。

近日,安全牛邀请了苏州棱镜七彩信息科技有限公司创始人、总经理罗峋先生,就当前开源安全态势与重大威胁、相关治理的建议与应对方案进行了深度的探讨。

罗峋,苏州棱镜七彩信息科技有限公司创始人、总经理。具备十年以上信息安全前沿领域研究经验,目前专注于研究软件开源安全治理,软件供应链安全等领域。曾获2018年苏州高新区创新创业领军人才,2019年苏州市创业领军人才。

安全牛:您当初为什么选择开源安全这个创业方向?

罗峋:首先开源软件给我们带来了很多好处,对企业来讲,可以节省开发成本、树立企业形象等等,对于个人来讲,优秀的开源软件也可以提高个人竞争力。但使用开源软件也有很多的风险,如开源漏洞风险(引用的开源代码中存在着病毒、木马、后门)、开源许可证风险(使用开源软件时违反该许可证约束)等,可能随时爆发软件安全事件或侵犯他人知识产权,给企业带来巨大经济损失,同时降低客户对企业的信任度。如何保证开源软件的安全性成为使用开源软件的重中之重。

国际开源生态起步较早,在1969年Unix代码被Unix社区共享,为软件的开源打下了基础;1984年Richard Stallman发起GNU项目,拉开了开源软件的序幕,该项目今天仍处于自由和开源软件生态系统的中心地位;2008年GitHub正式启动,目前GitHub已经成为全球最大的代码托管平台。在开源软件飞速发展的同时,与引用开源软件有关的安全事件也层出不穷,如著名的OpenSSL水牢漏洞事件、心脏滴血事件、Equifax数据泄露事件、Gmail、yahoo和Hotmail账号泄露事件等,都给相应的企业带来了声誉的损害和经济的损失。由此,开源安全也逐渐被关注起来。像做源代码审计及管理的Black Duck、做源代码安全解决方案的SNYK等公司发展的都不错,其公司估值也相当可观。    

国内目前开源安全态势严峻。对于国内的软件而言,国内的软件大多数是被‘组装’出来的,不是被‘开发’出来的”,其原材料就是开源软件,开源软件已经成为构建网络空间最基础的“砖头瓦块”,无处不在。一个开源软件出现安全问题,会导致依赖它的其他开源软件受到影响,而且层层关联依赖,这就导致非常隐蔽和复杂的攻击面。

开源软件自身存在代码安全漏洞,被黑客利用攻击是导致安全事件发生的关键因素之一。如阿里云应急响应中心监测到 fastjson (阿里巴巴开源java库)爆发新的反序列化远程代码执行漏洞,黑客利用漏洞,可绕过autoType 限制,直接远程执行任意命令攻击服务器,风险极大。有数据显示,75%的开源代码库中存在漏洞,其中49%的开源代码库中存在高危漏洞。

根据 BD《2020 开源安全与风险分析报告》统计,67%的开源组件存在许可证冲突的情况,最常见的情况是与 GPL 许可证存在兼容性的问题,而GPL许可证的传染性特性又会影响到使用该组件的开源软件,这就导致许可证冲突的范围进一步扩大。

我国信息技术领域在国际市场尚未形成领先优势,开源软件所带来的“弯道超车”机会,对实现核心基础技术的自主可控具有重要的作用。我国的开源软件发展处于起步阶段,较欧美相对滞后,但近十年来取得了较好进展。在开源基础设施层面,出现了共创开源、Trustie、OSChina、CSDN、Gitee(码云)等基础设施与平台。在行业组织层面,绿色计算产业联盟于2016年正式成立,开放原子基金会于2020年成立。在企业层面,华为、阿里巴巴、小米等积极参与开源,形成了不同的开源商业模式。据信通院开源生态白皮书显示,我国互联网、金融、软件和信息技术服务行业是开源服务企业主要的服务对象,开源服务企业对互联网服务的占比最高,约为 40%,其次是金融业、服务软件和信息技术行业,达到 30%以上。开源开发模式的开放性和透明性有助于快速聚集大众智慧、加速生态发展,并可为信息技术的产品溯源和系统可信评估提供新的解决途径,对我国信息基础设施安全、产业安全、数据安全具有重大意义。

开源软件在安全方面的一大优势就是提高了代码可见性,这意味着可以检查、分析和审核代码,这项工作可以借助自动化工作进行。由于开源软件的安全风险大且软件数量多,所以我国对开源安全、代码审计的需求很大,国内开源安全企业发展前景良好,所以选择开源安全作为创业方向。

安全牛:谈谈当下的开源安全态势和重大威胁

罗峋:从根源上来讲,开源软件主要的安全风险在于开源代码没有专业的安全开发团队维护,开源代码易被利用绑定木马病毒。由此开源漏洞是攻击开源软件最好的途径。而我国软件大量依赖开源软件,开源软件中又存在大量漏洞,如果有人利用漏洞对我国软件发起恶意攻击,我国软件乃至行业会受到很大的影响。

由于发现漏洞与收录漏洞的时间差等原因,目前仍有很大一部分漏洞并未收录在任何主流漏洞库跟踪列表中,这一部分漏洞可能散落在各个开源社区中,也可能是0day(零日漏洞:除了漏洞发现者,没有其他的人知道这个漏洞的存在,并且可以有效地加以利用,发起的攻击往往具有很大的突发性与破坏性)。而目前我国无论是在开源社区层面还是在国家管控层面都缺乏对开源软件漏洞的管理,导致这些开源漏洞收录起来极为困难。

另一方面,规范开源代码使用的开源许可证在知识产权方面书写没有标准规范,使用开源软件时很容易违反开源许可证的要求造成侵权现象。大多主流的开源许可证均来源于美国,一旦美国想要在知识产权方面找我国的麻烦或者由于违反开源许可证而禁止我国使用其开源软件,开源许可证风险将是一个强有力的支撑,很可能会对我国科技发展造成影响。

从开源代码的影响力上讲,目前国际开源生态对我国的影响力巨大。多国将构建开源生态作为科技创新和产业发展的重要源动力。开源模式已受到不少国家政府和科技巨头的广泛重视。我国、美、欧等国家和地区十分重视开源生态打造,在政策制定、政府采购、技术指导、平台支撑等方面全方位推动。一旦开源生态发生变化,其对我国的新基建、关键信息基础设施等都会产生巨大的影响。

国际科技巨头们正通过收购开源平台强化其垄断地位,在此背景下,加强开源生态建设对我国核心基础技术自主可控意义重大。2018年以来,微软宣布75亿美元收购开源代码托管平台GitHub的交易完成,IBM宣布将以每股190美元的价格收购开源解决方案提供商红帽(Red Hat),开源厂商SUSE被瑞典私募股权投资公司EQT Partner以25亿美元收购。科技巨头收购开源社区的最终目的是“放长线钓大鱼”,获取更大的技术生态垄断。

而美国具备完整的开源产业体系与生态环境,是国际开源产业的主导与核心。基于美国与我国国家关系与国际形势紧张,应对我国关键基础设施中使用了哪些开源软件进行全面摸查备案,对开源软件的成分、知识产权、漏洞等信息全方位掌控,以应对极端情况下的开源软件对我国带来的威胁。

从信创国产化的角度来讲,国产软件大多依赖开源。美国是开源软件大国,掌握了大量开源漏洞攻击工具、利用工具,若国产软件中的开源漏洞无法得到修复,一旦我国与美国关系恶化乃至破裂,或从贸易战转为网络战,开源软件漏洞将是美国攻击我国最好的武器,尤其是国家关键信息基础设施遭到大量恶意攻击,可能直接导致某些关键基础设施瘫痪,使得国家网络战中处于下风或不利位置,对我国软件安全乃至国家安全会产生难以估量的影响。

安全牛:给一些开源安全治理的建议与应对方案

罗峋:

1、开源安全合规性要求应趁早介入,建立DevSecOps流程

虽然使用开源软件有很多优势,但开源安全问题也随之而来。开源安全的合规性不仅仅存在于开发完成后,而是存在于开发的每时每刻,修复一个bug的成本从需求阶段、设计阶段、测试阶段有很大差别,从修复难度、引入新问题的可能性、沟通成本也有很大的影响。越早地发现问题和解决问题,越能提高开发的效率。

使用必要的手段在软件开发周期的早些阶段发现问题。所以,开源安全合规性要求应该趁早介入,融入DevSecOps流程,将安全嵌入到软件流程管理中。

2、开源成分分析能力,形成开源资产管理清单

软件研发过程中大量使用第三方组件已成为软件研发的主流。而第三方组件也可能同样引用了其他类似的安全或者不安全的组件,这就形成了一个没有安全保障的软件供应链或调用链。供应链中任何一个薄弱环节都可能成为一个入口点导致软件被攻击。因此,为了检测研发过程中所使用第三方组件的安全性,软件成分分析技术已变得非常重要。

应用开源软件的企业/机构应该具备开源成分分析的能力,对自己使用的开源软件成分有基本的了解,并形成开源资产管理清单,这样可以对优秀或存在问题的开源软件进行引入及清除,企业/机构可以及时做出修复或替换,提高解决问题的效率。

3、应建立开源威胁情报机制

在开源成为一种流行现象后,互联网上积累了海量开放的软件开发和应用的数据,为软件开发活动的量化分析提供了良好条件。随着开源软件数量的增多,被发现的漏洞数量也越来越多,开源安全事件也频繁发生,如何对开源软件的安全进行防控已经成为各国关注的问题。

威胁情报是为面临威胁的资产主体(通常为资产所属企业或机构)提供全面的、准确的、与其相关的、并且能够执行和决策的知识和信息。我们可以搜索到大量散布在互联网上的、碎片化的关于开源软件的信息,如开源软件漏洞信息、开源组织的信息、并且可能利用这些信息来预测未来将会发生的威胁,从而建立起威胁情报机制。

建立开源威胁情报机制,需要通过对全球网络威胁态势的长期监测,以海量数据为基础发布威胁态势预警,针对热点威胁事件提供深度技术分析和防御建议。


相关文章