[2023] 开源安全和风险分析报告 目录 [] [简介]3 关于2023年开源安全和风险分析报告与新思科技网络安全研究中心(CyRC)3 [概述]4 2022回顾4 行业概况5 术语6 [漏洞与安全性]7 开源漏洞与安全性7 戈尔迪之结:开源软件风险与供应链安全8 行业漏洞情况9 五年回顾11 [许可]13 开源许可13 了解许可证风险14 [开源代码的维护]15 开源代码开发者维护概况15 已知风险之外的风险16 开源代码使用者维护概况17 [[结语]18 “信任,但要验证”18 信任的问题18 通过SBOM进行验证18 2023年开源安全和风险分析报告|©2023Synopsys,Inc.2 [简介] 关网于络安20全23研年究开中源心安(全Cy和RC风)险分析报告与新思科技 欢迎阅读2023年第8版《开源安全和风险分析(OSSRA)报告》。今年的OSSRA提供了新思网络安全研究中心(CyRC)对商业软件中的开源安全性、合规性、许可和代码质量风险当前状态的年度深入研究。我们分享了这些调查研究结果,以帮助安全、法律、风险和开发团队更好地了解安全和许可证风险状况。新思科技网络安全研究中心(CyRC)为本报告提供了数据。该中心的任务是发布安全建议和调研报告,以帮助企业更好地开发和使用安全的高质量软件。 OSSRA年度报告代表CyRC从上一年数据中得出的结论。因此,我们的2023年报告显示的是2022年的数据。在2022年,CyRC对来自17个行业的超1,700个商业代码库的匿名调查结果进行了研究。我们的审计服务团队每年为客户审计数千个代码库,主要目的是识别并购(M&A)交易中一系列的软件风险。尽管2022年经济前景不明朗,科技领域的并购也相应放缓,但审计代码库的数量依然可观。 近20年来,新思科技BlackDuck®软件组成分析(SCA)产品团队和CyRC审计服务团队一直在帮助世界各地的安全、开发和法律团队加强其项目的安全性和许可证合规。BlackDuckSCA使企业能够识别和跟踪开源代码,并在其现有的开发环境中集成自动化的开源实施策略。BlackDuck审计通常在并购交易背景下进行,涵盖软件风险的方方面面。该审计还提供全面的、高度准确的软件物料清单(SBOM),涵盖企业应用中的开源代码、第三方代码、Web服务和应用编程接口(API)。审计服务团队依靠BlackDuckKnowledgeBase™知识库的数据识别潜在的许可证合规与安全风险。该知识库由CyRC创建、管理和多年积累,存储了来自2.8万多个开源代码仓库超610万个开源组件的数据。 无论您经营什么行业,或者您在企业安全和风险管理方面扮演什么角色,OSSRA持续强调,日益普及的开源软件推动着业务发展,同时也存在无法进行有效管理的困难。我们每年都在强调,开源软件是我们今天所依赖的每个应用程序的基础。因此,有效地识别、跟踪和管理开源代码对于成功的软件安全计划至关重要。本报告提供了关键的建议和洞察,以帮助开源软件的开发者和使用者更好地了解开源生态系统以及如何对其进行负责任的管理。 业,OSS无RA论持您续经强营调什,日么益行普务及发的展开,源同软时件也推存动在着难业以 进行有效管理的困难。 2023年开源安全和风险分析报告|©2023Synopsys,Inc.3 [概述] 100 96% 2022年审查的 个代码库中, 包括安全和运营风险评估。 84% 80 76% 60 1,703 87% 48% 54% 54%的代码库存在许可证冲突 89% 40 8四9年%的开码源库代包码含至少已过期20 0 2018 2019202020212022 31% 3或1使%的用代定码制库许包可含证没的有开许源可代证码 91% 9新1的%的组代件码库包含两年内未更 ⬛包含开源代码的库的百分比 ⬛代码库中开源代码的百分比 ⬛至少包含一个漏洞的代码库的百分比 ⬛包含高风险漏洞的代码库的百分比 2023年开源安全和风险分析报告|©2023Synopsys,Inc.4 [概述] 100 航空航天、汽车、运输和物流 100 大数据、AI、BI和机器学习 100 计算机硬件和半导体 100 网络安全 100 教育科技 8080808080 6060606060 按代行码业使划用分情的况开源 40 20 0 20182019202020212022 40 20 0 20182019202020212022 40 20 0 20182019202020212022 40 20 0 20182019202020212022 40 20 0 20182019202020212022 100 能源与清洁科技 100 企业软件/SaaS 100 金融服务和金融科技 医疗保健、健康科技和生命科学 100 100 互联网和移动应用 100 互联网和软件基础架构 808080808080 606060606060 404040404040 202020202020 0 100 20182019202020212022 物联网 0 100 20182019202020212022 制造业、工业和机器人 0 100 20182019202020212022 营销科技 0 100 20182019202020212022 零售和电子商务 0 100 20182019202020212022 电信和无线 0 100 20182019202020212022 虚拟现实、游戏、娱乐和媒体 808080808080 606060606060 404040404040 202020202020 0 2018 20192020 20212022 0 20182019 2020 20212022 0 2018 2019 2020 2021 2022 0 2018 201920202021 2022 0 20182019202020212022 0 20182019202020212022 ⬛包含开源代码的代码库的百分比█代码库中开源代码的百分比 2023年开源安全和风险分析报告|©2023Synopsys,Inc.5 [概述] 术语 代码库 组成应用程序或服务的代码及相关的库。 二进制分析 静态分析的一种,用于在无法访问源代码时识别应用程序的内容。 BlackDuckSecurityAdvisory(BDSA) 由CyRC安全研究团队研究和分析的关于开源漏洞的详细、及时、一致的信息。BDSA为新思科技客户提供了开源漏洞的早期预警通知和升级/修补指导。BlackDuckSecurityAdvisory的漏洞库超越了美国国家漏洞数据库(NVD),提供增强的数据、更为完整和准确的信息,从而用户能够获得漏洞预警和全面的洞察。BDSA提供当天通知、实际可操作的漏洞消减指导和变通解决方案信息、严重性评分和参考信息等。 软件组件 开发人员可以添加到其软件中的预先写好的代码。软件组件可以是日历函数等实用程序,也可以是支持整个应用程序的综合软件框架。 依赖项 当某个软件组件被其他软件使用时,也就是说当这些软件依赖于该组件时, 该软件组件就变成了依赖项。任何给定的应用程序或服务都可能有许多依赖项,而这些依赖项本身也可能依赖于其他组件。 开源许可证 当软件中使用开源组件或开源组件的代码片段时,用于阐述最终用户义务 的一组条款和条件,包括如何使用和重新分发该等组件。开源许可证基本上分为两类。 宽松型许可证(PermissiveLicense) 宽松型许可证基本不设任何使用限制。一般来说,此类许可证的主要要求是原始代码的归属权属于其原始开发者。 著作权许可证(Copyleftlicense) 此类许可证通常涵盖互惠义务,规定代码的修改和扩展版本必须在与原始 代码相同的条款和条件下发布,并且有改动的源代码必须按要求提供。商业实体对在其软件中使用著作权许可证的开源代码十分谨慎,因为它的使用可能会带来整个代码库的知识产权(IP)问题。 软件组成分析(SCA) 一种用于自动化开源软件管理流程中的应用程序安全工具。SCA工具可以 集成在软件开发生命周期中,用于识别代码库中使用的开源代码,提供风险管理和缓解建议,并执行许可证合规验证。 软件物料清单(SBOM) 代码库中的软件组件和依赖项的全面目录清单,通常由软件组成分析工具 生成。正如美国国家电信与信息管理局(NTIA)所说,“SBOM应包括一个机器可读的软件组件和依赖项清单,以提供关于这些组件及其层次关系的信息。”由于SBOM旨在跨公司和社区共享,因此,具有一致的格式(即人可读和机器可读)和一致的内容至关重要。美国政府指南中,目前将两种格式指定为已被批准的标准格式:SoftwarePackageDataExchange(SPDX)和CycloneDX。 第14028号行政命令(EO14028) 2021年5月,美国总统拜登发布了一项名为“改善国家网络安全状况” (ImprovingtheNation’sCybersecurity)的命令,指示各联邦政府机构为与联邦政府开展业务的企业制定软件安全指南。该命令中包括一个时间表,里面 列出了截至本报告撰写之际不要求强制履行合同义务的各项活动。然而,尽管不存在硬性要求,但该命令已经促使很多企业重新审查其安全实践,并严格审查其软件安全风险水平。EO14028大力提倡使用软件物料清单(SBOM) ,因为这可以促进软件生产者和消费者之间软件供应链信息的交流。 ApacheLog4j2漏洞(BDSA-2021-3887和CVE-2021-44228等)开源组件ApacheLog4J2(通常称为Log4j)在Java社区中用于实现应用程序日志记录。Log4j中已经发现了多个漏洞,包括远程代码执行(RCE)、拒绝服务和LDAP漏洞。 0-day漏洞 不为软件供应商或作者(他们往往对修复感兴趣)所知晓的漏洞,或者虽已知晓却尚无补丁来修复的漏洞。 OpenSSL漏洞 2022年11月,常用的开源命令行工具OpenSSL针对两个严重漏洞(CVE- 2022-3602和CVE-2022-3786)发布了官方警告。这两个漏洞的严重程度后被降为“高级”。它们是证书验证过程中存在的缓冲区溢出(Bufferoverflow/Bufferoverrun)漏洞。利用前一个漏洞可能导致系统崩溃,并有可能导致任意代码执行;利用后一个漏洞则可能带来内存损坏问题。 缓冲区溢出(Bufferoverflow/overrun)漏洞 缓冲区是应用程序执行期间的临时内存区域。当写入缓冲区的数据量超过缓 冲区的容量时,就会发生缓冲区溢出,这可能会导致系统崩溃、内存问题或其他意外行为。攻击者可以利用该漏洞实施篡改文件和访问敏感信息等行为。 2023年开源安全和风险分析报告|©2023Synopsys,Inc.6 漏洞与安全性 [] 开源漏洞与安全性 在BlackDuck审计服务团队今年分析的1,703个代码库中,有96%包含开源代码。在所有的被测代码库中,76%为开源代码库,这意味着在我们研究的所有代码库中,76%为开源代码库。 今年,给定应用程序中的开源组件的平均数量为595个。如果只有区区几个组件,则手工监控其安全漏洞并对其执行安全维护活动也许是可行的,但在这种规模下,开展此类活动将变得举步维艰,几乎不可能实现,因此需要使用SCA之类的自动化解决方案。 84%的代码库包含至少一个已知开源漏洞,比2022年版的OSSRA报告增加了近4%。我们检查的代码库中有48%包含高风险漏洞,仅比去年减少了2%。高风险漏洞是指已被主动利用、已有POC(证明漏洞存在)记录、或已被归类为远程代码执行的漏洞。 所有的BlackDuck审计都会检查开源许可证的合规性,但客户可以自行决定放弃该审计的漏洞/运营风险评估部分。2023年,BlackDuck审计服务团队共进行了1,703次审计。在这些审计中,87%的客户(1,481