海云安开源组件安全管理平台OSCA,为金融机构开源安全助力
近日,中国人民银行办公厅、中央网信办秘书局、工信部办公厅、中国银保监会办公厅、证监会办公厅发布《关于规范金融业开源技术应用与发展的意见》,《意见》要求金融机构在使用开源技术时,应遵循“安全可控、合规使用、问题导向、开放创新”等原则。《意见》鼓励开源技术提供商加快提升技术创新能力,切实掌握开源技术核心代码,形成自主知识产权,夯实产业支撑能力。在提供基于开源技术的商业软件或服务时,遵循开源许可协议和相关法律法规要求,明确开源技术的使用范围和使用的权利与义务,保障用户合法权益。探索自主开源生态,重点在操作系统、数据库、中间件等基础软件领域和云计算、大数据、人工智能、区块链等新兴技术领域加快生态建设,利用开源模式加速推动信息技术创新发展。
开源代码(Open source code)也称为源代码公开,指的是一种软件发布模式。一般的软件仅可取得已经过编译的二进制可执行档,通常只有软件的作者或著作权所有者等拥有程序的原始码。有些软件的作者会将原始码公开,此称之为“源代码公开”,但这并不一定符合“开放源代码”的定义及条件,因为作者可能会设定公开原始码的条件限制,例如限制可阅读原始码的对象、限制衍生品等。(本段摘自百度百科)
如今,人人都在使用app来完成日常工作:支付账单、拓展兴趣、高效工作。为了满足需求,开发人员用开源软件组件为产品提供强大的功能,而无需自行编写新代码。这其中就包括开源安全代码。这些组件由开源社区编写和维护,得到了广大“志愿者”的支持--他们致力于创建更优良的代码。现在,大多数app中60-80%的代码库都来自开源软件。2017年9月,Equifax黑客在公司的Web应用程序中利用Apache Struts 2组件的易受攻击版本窃取了1.459亿人的身份信息。事实说明,如果马虎地使用开源软件,可能会有一定风险。当发现一个开源组件存在漏洞(通常称为CVE)时,这个漏洞会迅速公布,以便开源人可以执行必要的修复。不幸的是,黑客也可以看到这些信息,他们不需要付出任何努力就能了解哪些组件易受攻击以及如何进行攻击。然后,他们可以使用此信息对公司组织进行操作,以找出哪些公司可能反应太慢而无法修补,从而黑掉他们的系统。
黑客们认为,很多公司并不会仔细检查他们产品的开源组件是否包含任何公开漏洞,通常忽视产品中的开源组件,当新的漏洞被发现时,他们不能及时反映,不知道产品中有潜在的危险。
在某权威机构2021年“开源安全和风险分析”(OSSRA)报告调研结果发现,98%的代码库包含开源代码,每个代码库平均有528个组件,84%的代码库至少存在一个漏洞(比 2019年的75%增加了9%。包含高风险漏洞的代码库的百分比在2020年增加到60%,比 2019年审计的49%增加了11%。“高风险”表示漏洞已被积极利用,已记录了概念漏洞利用的证明,或已被归类为远程代码执行漏洞。),65%的代码库存在许可证冲突,最常见的是GNU通用公共许可证 (GPL)冲突。 GPL是最流行的开源许可证之一,其各种版本可能会与其他代码产生许可证冲突。事实上,其中5个有冲突的版本前10个许可证是GPL及其变体。代码库中的公开漏洞平均已存在2.2年,91%的代码库包含在过去两年中没有开发活动的组件,85%的代码库拥有超过四年的开源版本。除了增加安全风险之外,在版本控制方面过分落后还会增加更新到最新版本将变得困难并引入不需要的功能更改(例如关键功能消失)的危险。因此,可能会导致安全漏洞风险问题。
在软件许可证使用方面,开源组件受具有不同义务和限制级别的许可约束。不遵守开源许可可能会使企业面临诉讼风险并损害其知识产权。一般来说,作为最终协议的一部分,软件提供商需要声明他们对他们正在使用的任何软件拥有权利(并且可能有更明确的关于开源的声明和保证)。然而,在开源许可合规方面,很少有软件开发商是完全“干净”的。只有在确定受这些许可证管辖的开源组件并确认这些组件的使用与适用许可证授予的权利一致后,组织才能管理和遵守许可证要求。与安全漏洞一样,如果不识别软件中的所有组件,就不可能管理许可证合规风险。
开源组件的广泛采用意味着开源安全漏洞的增加。由于这些安全漏洞是公开披露的,因此它们是黑客的主要目标。如果不定期管理开源组件及其所有依赖项,企业就会面临应用安全风险。开源社区本质上是分散的,查找漏洞信息很困难,而且因项目而异。为了降低风险,企业需要了解其开源使用情况。大规模管理开源安全需要一个超越检测的解决方案,专注于开源漏洞的优先级排序、修复和预防。
平台架构
海云安源开源组件安全管理平台是一套用于管理开源组件安全性、许可证合规性风险的整体解决方案。以B/S架构的方式提供用户进行交互与管理。实现对应用系统源代码项目中引入的开源组件进行安全监测。能够响应DevSecOps的需求,与Git、SVN等代码仓库集成获取代码项目。并且能够与Jenkins构建集成流水线系统进行集成,系统构建时自动化触发进行组件扫描。一方面通过对应用系统源代码项目进行正向扫描检测,发现应用系统源代码项目中引入的组件资产清单,许可证清单,许可证风险和公开漏洞。另一方面,能够通过对公开漏洞的持续监控,通过漏洞与组件、项目关联,及时对存在相关漏洞的项目推送预警。实现对开源组件的整体检测和监测管理。最终使得用户能够及时清晰掌握应用系统代码项目组件资产、许可证资产,许可证合规风险和安全漏洞风险,并有效应对应用系统开源组件相关风险,提高应用系统得合规有效性和安全可靠性。
OSCA系统架构图
系统流程
系统整体流程主要包括正向检测和反向监测两部分,在正向检测过程中,主要是从代码仓库对接,CI流水线集成,IDE插件提交本地上传等方式进行创建开源组件检测项目。然后基于项目创建相关检测任务。在检测过程中,通过扫描引起把知识库和规则库与组件匹配得到相关检测结果,检测结果包括组件清单,许可证清单和漏洞风险清单等。
在反向监测过程中,主要通过情报收集得到相关开源组件漏洞,然后推送更新到漏洞数据库中。在漏洞数据库更新的时候触发关联分析,由漏洞关联到组件,然后由组件关联到项目,从而知道那个代码项目存在有最新漏洞,然后给相关项目负责人发送消息提醒漏洞处置修复。
下图是产品该页面的部分截图
海云安OSCA系统主要的特点
1)管理平台是一套以开源风险管理为核心,以检测为支撑的整体性解决方案,帮助用户最大限度地降低与开源和其他第三方软件相关的风险。
2)管理平台可以与DevOps流程无缝结合,在流水线的相应阶段自动发现应用程序中的开源组件,提供关键的版本控制和使用信息,支持在SDLC的每个阶段查找和修复安全漏洞,提供详细的、针对特定漏洞的修复解决方案;
3)通过使用业界主流的开源知识库来确定许可中的哪些与用户的应用程序中的开源相关,从而消除开源许可不合规的风险并保护用户的知识产权;
4)通过自动化组件资产管理能够有效提高企业组件资产管理能力,全面避免开发成本超支并通过与开源代码质量不佳相关的运营风险指标来对抗代码衰减;
5)管理平台能够云端漏洞情报监控,实时预警组件漏洞风险,以加快修复速度并降低企业的风险敞口;
6)组件漏洞检测无误报,节省时间和资源。平台能够将报告的漏洞与代码中的开源组件相匹配,从而减少警报数量。
7)基于黑白名单规则,有效识别并优先处理关键的开源安全漏洞,以便用户首先修复最重要的问题。
8)针对组件版本提供具体升级方案,并对组件版本升级进行兼容性评估。
9)平台提供全面的知识库,使用业内主流的漏洞数据库全面覆盖用户的开源使用情况。持续监控多种资源,包括NVD、CNNVD以及各种安全建议和问题跟踪器。
10)能够一键生成综合开源报告,包括内容包括组件清单,依赖关系,许可证清单及风险,新增版本,安全漏洞以及版本升级方案等。
产品采用旁路部署,部署方式灵活简单、安全,也不会对客户业务连续性造成任何影响。典型网络部署如图: