freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

浅谈“软件供应链安全”
2023-05-04 18:16:57
所属地 北京

1. 软件供应链安全概述

1.1 软件供应链安全定义

软件供应链安全涉及软件产品全生命周期内,供应链相关的组织、流程、技术等要素的安全状态与管理状况。它包括软件从研发、采购、集成到部署的全过程,涵盖软件供应链上多个参与主体之间的相互依赖关系。软件供应链安全直接影响软件产品与服务的安全性、可靠性与可用性,关系到信息基础设施与网络空间安全的整体水平。

1.2 软件供应链安全特征

软件供应链具有开放性、复杂性和全球性特征。软件开发常需要集成第三方开源组件或外包服务,使供应链上各参与主体相互依赖,软件产品安全状况取决于供应链各单元的安全保障能力与协作效果。供应链涉及参与主体众多,管理难度大,一旦任意一环出现安全漏洞,都可能威胁软件产品与服务安全。此外,软件供应链面临的安全威胁具有全球性,需要全球协作与交流提高安全保障能力。

1.3 软件供应链安全现状与挑战

鉴于软件供应链安全问题的全局性、复杂性与危急性,国际社会高度重视这一领域。但目前软件企业对供应链安全的管理投入和重视程度还不足,安全防护能力难以应对日益严峻的网络威胁环境。这要求相关各方加强合作,推进治理体系建设,共同提高软件供应链的安全保障能力。

具体而言,政府应出台相关政策与法规,加大研发投入;企业需要加强安全意识与管理,控制第三方依赖风险;安全服务商与社会组织也应积极参与,提供安全审计、检测、应急响应与培训服务等。只有各相关方携手努力,不断深入研究与实践,加强标准引导与经验分享,才能真正推动软件供应链安全防护水平的提高。

2. 政策与事件背景

近年来,各国政府高度重视网络空间安全与关键信息基础设施保护,出台相关法规政策与标准规范等。这使得软件供应链安全成为受到广泛关注的话题,其重要性得到广泛认同。

具体而言,各国政府在网络产品与服务采购使用方面提出安全审查与认证要求,这要求软件供应商建立可审查的安全保障体系,软件供应链各环节也需要接受严格安全审查与监管。“软件定义安全边界”概念的提出,也要求软件研发的每一环节进行安全设计与防护。这使软件供应链安全管理成为企业实践的必要内容。

我国《网络安全法》与《密码法》的出台,要求网络产品与服务提供者采取安全保护措施,也要求密码产品的安全管理。这使企业在研发或采购软件产品时,都需要考虑产品软件供应链各环节的安全状况与隐患。

各国也出台关键信息基础设施保护相关政策法规,如我国的《关键信息基础设施安全保护条例》提出对关键信息系统采取源头防护与全过程监管要求。这也使软件供应链安全成为企业落实这些规定的重要手段之一。

此外,工业控制系统安全国际标准的发布,要求在系统与软件开发的全过程采取安全防护措施。这也使软件供应链安全成为企业实施这些标准的必要内容之一。

另一方面,近年来多起利用软件漏洞进行的网络攻击事件,凸显软件供应链存在严重风险。如WannaCry与NotPetya等勒索病毒利用第三方软件组件漏洞传播,造成严重损失。2021年log4j漏洞的发现与利用也再次突显开源组件对软件供应链的重大威胁。

这些事件要求各国政府、企业与安全机构提高警惕,加强对软件供应链风险与开源软件安全的认知与防范。并加强协作,整体提高对软件供应链安全问题的重视程度,完善各项应对措施,共同促进这一领域的安全治理水平。

综上,在政策法规与安全事件的双重驱动下,软件供应链安全成为影响网络空间安全与关键信息基础设施安全的重要因素。这要求软件行业各参与主体加强安全合作与交流,建立系统的软件供应链风险管理机制,最大限度降低其存在的安全隐患,共同维护国家网络安全。

3. 软件供应链安全风险分析

软件供应链面临复杂多变的安全风险环境。本章从多个角度分析软件供应链常见的安全风险,以及研发、采购、人员等过程中的威胁。同时也分析了第三方服务、数据安全、网络信息安全等方面的挑战。最后,举例分析新技术如物联网、云计算带来的新风险,以全面认识软件供应链的安全风险形势。

  • 研发过程风险

软件研发阶段由于经验及安全意识不足,容易引入安全漏洞与威胁,如编码错误、设计缺陷等。特别是对开源组件的安全性认知不足,直接引入存在高危漏洞的第三方库,构成重大威胁。这要求研发人员不断提高安全意识,加强安全培训与漏洞预防知识。对开源组件等第三方要素进行严格的风险评估,确保其安全性。

同时,研发环境及工具链也容易遭受攻击,从而向产品植入恶意代码。如果攻击者通过研发环境获取源代码或注入恶意代码,会给产品安全带来严重后果。这需要企业定期检测研发环境与工具链的安全状况,对发现的高危漏洞进行及时修补,最大限度减少这些要素带来的风险。

  • 人员风险

软件研发和测试人员的安全意识和经验会直接影响产品安全性。如果人员对安全要求理解不足或工作态度不严谨,容易在产品中遗留安全问题,这会给用户带来损失。这要求企业建立长效的安全意识培训机制,不断检验和考察人员安全意识状况,对重要岗位人员进行安全背景审查。

另外,人员的离职也会产生安全风险,他们离开后可能利用保留的信息进行攻击。例如利用保留的系统权限及源代码进行入侵,这会给企业带来不可控的风险。这需要对研发人员进行持续安全教育与意识培养,强化安全责任,并建立严格的权限管理制度。离职人员的权限应及时收回,防止其利用保留权限进行恶意活动。

  • 采购过程风险

软件采购时,如果对供应商及产品安全性评估不严格,则容易采购存在安全漏洞或者后门的产品。这可能造成产品遭受入侵与攻击,甚至被利用进行进一步的攻击活动,带来重大损失。这要求对供应商安全保障能力进行审查,对产品进行严格安全评估与测试,确认其安全性后方可采购。在采购合同中也应加入供应商安全保障与服务条款,明确双方的权利义务,确保供应商对产品安全性负责。

  • 工具链风险

软件研发依赖的第三方开发工具也可能存在安全漏洞,这些工具漏洞可能会影响所有使用该工具开发的软件产品。如果攻击者获取工具链,则可通过植入恶意代码来影响大范围的下游产品,造成严重后果。这需要对研发工具进行持续安全检测与修复,降低其带来的风险。

  • 集成与部署风险

软件集成过程中,各组件之间的安全性匹配及接口安全性需要重点考虑。如果接口设计不当或组件不匹配,会产生安全隐患。安全防护措施的部署也需要严谨执行,否则攻击者可利用产品上线初期的安全漏洞进行入侵。这需要在集成阶段就考虑各组件间的安全匹配,部署安全防护措施。软件部署也应进行严格的安全测试,确认不存在可利用漏洞后再正式上线。否则产品上线后遭受攻击,会造成严重影响与损失。

  • 第三方服务风险  

软件产品常依赖第三方提供的云服务、内容分发网络等服务,这些第三方服务也面临相关安全风险,一旦遭受攻击可能会成为进攻软件产品的跳板。特别是第三方服务的安全事件响应能力弱,难以及时发现并报告安全事件,这可能延误软件产品对风险的响应。这要求对第三方服务的安全能力进行评估,在服务协议中明确安全要求与事件响应机制,并定期检验其履行情况。如果第三方服务无法满足要求,则需评估替换方案,降低其带来的风险。

  • 数据安全风险

软件产品处理大量敏感数据,这些数据可能会遭受未授权访问、窃取或篡改,导致信息泄露、欺诈等后果。数据安全直接决定软件产品的安全与可信度,这需要对数据生命周期进行严密管控,采取加密、访问控制与审计手段严密保护。同时评估数据泄露或破坏的风险影响,采取隔离与备份等措施降低潜在损失。

  • 事故与突发事件风险  

自然灾害、网络意外等突发事件可能对软件供应链造成破坏,导致服务中断或系统不可用。这需要对可能发生的突发事件进行风险评估,制定应急预案并定期演练。同时评估关键业务对事件的敏感程度,需要的恢复时间等,采取隔离、备份与异地部署等措施增强软件供应链的抗干扰能力与恢复能力。

  • 网络与信息安全风险

网络安全直接决定软件产品的安全,这要求软件供应链选用安全可靠的网络架构与设备,定期检测与修补其安全漏洞。同时加强网络边界防护,严格控制访问控制与权限管理,对连接网络的软件系统进行严密监控。信息安全也需要对信息系统与渠道进行管控,防止信息遭受未授权访问或窃取。这需要采取加密、访问控制、审计与监控等措施进行保护。

  • 物联网安全风险  

随着物联网的广泛连接,大量物联网设备与系统被纳入软件供应链,增加了供应链面临的攻击面。如果物联网系统存在安全漏洞,很容易被利用渗透软件供应链。这要求对接入供应链的物联网系统进行严密监控,发现漏洞及时修复,限制其对供应链其他系统的访问,以防被利用实施进一步攻击。同时加强对网络边界的管控,防止被物联网系统远程控制。物联网系统的安全直接决定其对供应链的威胁程度,这需要采取差异化安全策略进行严密防护。

  • 云技术风险

云技术为软件供应链带来便利的同时也增加新的风险源。如云计算资源可能遭受攻击, 植入恶意代码;云存储数据可能被窃取;云应用接口可能存在漏洞被利用。这需要对引入供应链的云技术与服务进行安全评估, 识别其存在的风险与威胁,采取加密、访问控制、监控等手段进行管控。同时选择安全可靠的云服务提供商,在服务协议中明确安全与服务等级要求,加强对云服务的依赖管理与监督。只有在风险可控的前提下,才应大规模采用云技术应用于关键产品与系统。云技术作为新兴技术,其安全风险也需要持续关注与评估。

综上,软件供应链面临的安全风险包括研发、采购、人员等内部过程风险,第三方服务、数据安全、网络信息安全等外部环境风险,以及新技术引入的挑战,如物联网、云计算等,动态的风险管理体系需要与环境变化同步更新。这要求整合内外部信息,持续监测技术、环境与威胁变化。及时识别新出现的风险源,评估其对供应链的影响,采取针对性的防护措施,不断适应新的挑战与威胁。这还需与相关机构和专业研究机构保持密切合作,共同增强对供应链全局风险的认知与防范能力。

4. 软件供应链安全防范措施

  • 研发过程管控

加强研发人员的安全意识培养与安全知识学习,严格执行安全开发流程与代码审查制度。严格评审开源与第三方组件的安全性,防止引入存在高危漏洞的第三方库。加密研发环境,严格访问控制与授权管理,防止未经授权访问。加强研发网络与信息系统的监控,及时发现异常并进行排查。

  • 采购管理  

对关键软硬件、技术与第三方服务进行安全采购管理。在采购前对供应商与产品进行安全审计与评估,尤其要审核其安全保障能力与机制。在合同或协议中明确安全要求与责任,同时request其安全认证或合规审核报告。采购重要资产还需要考虑产权与知识产权安全,避免引入可能威胁供应链安全的不可控因素。

  • 第三方服务管控

在采购或使用第三方服务前,对其安全机制与服务水平进行评估,在服务协议中明确安全与响应要求。定期检验第三方服务商是否满足安全要求,一旦无法满足需评估替换方案。建立与第三方服务的安全事件通报与响应机制,确保可以及时获取风险信息并采取行动。如采用第三方云服务,选择安全成熟的服务商,并在协议中明确安全要求,加强云服务的风险管控与监督。

  • 监测与审查

建立全面的监测与审计体系,利用配置管理、测试工具和SIEM等全面监测关键系统与网络。积极采取渗透测试与红队演练,持续评估安全管理与技术防护的有效性。进行源代码安全审计与库兼容性检查,及时发现并修复安全缺陷。运维与安全事件日志需要集中存储与分析,一旦发现异常迅速响应并追查根源。

  • 数据与信息安全

对关键数据资产进行分类分级管理,明确不同类型数据的保护要求与管理策略。采取加密、权限管理与审计等手段严密控制数据的生命周期。定期检测与修复系统与存储设备漏洞,防止数据遭受未授权访问。进行数据敏感度分析与漏洞评估,制定数据安全威胁预案并定期演练。加强信息系统边界防护,限制未授权访问与信息传播。

  • 授权与访问控制  

建立基于角色与风险的授权模型,对所有可能访问软件供应链资产与信息的主体进行精细化授权管理。采取最少特权原则,避免超级用户长期存在。对访问需要审计与安全管控资源制定严密的访问控制策略。定期检验授权与访问控制的有效性,及时修复发现的缺陷与漏洞。利用监控手段审计与追踪重要的访问行为,一旦发现异常应立即追查处理。

  • 事故与突发事件管理

对自然灾害、网络安全事件等进行风险分析,制定应急预案与响应机制。定期检测与演练预案,提高应急响应能力。加强关键系统与产品的隔离与异地备份,实现一旦发生事件可以快速恢复业务。与网络运营商、安全团队等建立紧急通报与联动机制,一旦发生 major事件可以迅速启动应急方案与协同处置。采取高可用架构与容灾措施,减少供应链对事件的敏感性。

  • 网络与系统安全

选用安全可靠的网络设备与系统架构,定期检测与修补其安全漏洞。严格限制不必要的网络连接与服务,加强网络边界与系统安全隔离。加强网络流量与系统行为监控,发现异常情况可以快速定位与处置。实施IPS、WAF等技术强化网络安全防护,对连接公网的系统与网络实施严密管理与管控。

  • 运维安全

对运维人员进行严密权限管理与行为管控,防止权限滥用与未授权操作。加强运维工作的监管与审计,发现异常迅速处置。使用集中化运维管理工具,严密管控网络设备与软件系统的登录、配置与运营情况。定期检测与修补基础设施与运维系统的安全漏洞,防止被利用实现入侵或破坏。运维安全要求将安全机制纳入到运维自动化与管理流程之中,实现安全快速响应与精细管控。

  • 身份与访问管理

建立统一的身份与访问管理体系,实现对所有可能访问供应链资产与信息主体的全面管控。采用双因素或多因素身份验证,加强对关键资源或信息的访问验证力度。定期检验身份与访问管理体系的安全与可靠性,发现弱点应立即修复。与第三方系统或服务的身份集成需要严格安全审核,避免其成为软件供应链安全的薄弱环节。

  • 持续改进

软件供应链安全不是静态的,需要不断检验和提高。建立安全管理体系并定期自我评估与外部审核,发现不足需要制定整改计划并持续跟踪整改效果。安全培训与认识不应成为形式,要定期组织有针对性的学习与演练。识别新兴技术、新出现的威胁与攻击手段,评估其对供应链安全造成的影响,并采取针对性强化措施。安全机制与技术也需要根据风险与环境变化进行持续改进与升级。

综上,软件供应链安全防范需要从研发、采购、运维等全生命周期与全流程进行管控。要协同数据、网络、应急等安全机制,实现安全管理的全面协作与可视化。通过分类分级管理与差异化防护,实现风险的精细化管控与快速响应。这需要软件企业更新安全理念,完善安全管理体系,不断适应环境变化发展的新的挑战与威胁。

5. 结束语  

软件供应链安全是一个系统的课题,它不可能局限于某个技术或某个流程,而是贯穿于软件产品与服务的全生命周期。要彻底落实软件供应链安全,需要软件企业从战略高度出发,建立完备的安全管理体系,投入必要的资源与人才,并推动组织治理与文化建设。

软件供应链安全离不开内外部的通力合作。软件企业需要与客户、供应商和第三方服务商等建立安全沟通机制,共同识别风险与威胁,采取防护措施予以管控。同时,还需要加强企业内部的安全意识与理念培育,让每个员工都成为安全管理的实践者,这需要持续的培训与学习,积累共识,营造全员参与的氛围。

安全技术与管理机制也需要持续演进,与新技术、新威胁同步更新,这需要安全团队具备前瞻性与持续学习的素质。定期检验安全措施的有效性,发现不足之处需要及时调整与改进,不断增强安全防御的适应性。

总之,软件供应链安全是一个持续的改进过程。它不是达成一个结果,而是一条长路。软件企业只有将安全理念植入企业文化,贯彻在产品与服务的每个细节,通过不懈努力不断演练与优化,才有可能真正让安全落地,保障业务的可持续发展。这也是我们这些从业者一直在追求的目标:让网络空间变得更加安全。这需要软件企业具备长期投入与改进的决心,我们也需要做好不懈努力的准备,通过持续提高安全防护的效能与成熟度,逐步实现这个目标。

# 软件安全 # 供应链安全 # 软件供应链安全分析 # 软件供应链风险 # 软件供应链安全
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录