




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件供应链安全洞察关于ISCISC成立于2013年,是国内唯一专注为数字安全行业赋能的平台。打造集会展服务、咨询服务、媒体服务、生态创投、生态联盟、产业导入“六维一体”的生态模式,全面赋能国家、政府、行业、企业、个人。过去10年,ISC秉承创新引领、智慧洞察、专业高效的宗旨,创办了亚太地区乃至当今世界规格高、辐射广、影响力深远的全球性安全峰会——互联网安全大会,树立了中国网络安全产业名片。版权声明本报告版权属于ISC,任何组织、个人未经授权,不得转载、更改或者以任何方式传送、复印、派发该报告内容,违者将依法追究法律责任。转载或引用本报告内容需要注明来源,同时不得进行如下活动:·
不得擅自同意他人转载、引用本报告内容。·
不得引用本报告进行商业活动或商业炒作。·
本报告中的信息及观点仅供参考,ISC对本报告拥有最终解释权。专I
家I
寄I
语当今世界处于数字化转型过程中,社会运行对软件的依赖日益加深,2020年底被爆出的SolarWinds攻击及2021年底爆发的Log4J2安全漏洞,引发全球对软件供应链安全的担忧。由于开源软件的广泛采用、基础架构云化、以及软件开发全球供应链的原因,软件供应链安全问题的解决变得尤为困难,ISC推出的这份《软件供应链安全行业洞察报告》可以为国内软件供应链安全问题的解决提供一些很有价值信息。白皮书介绍了软件供应链安全的重要性、现状、风险、攻击类型、治理指南以及落地实践方案等方面的内容。白皮书从市场动态、技术发展、政策法规等方面分析了软件供应链安全的现状,同时还对软件供应链安全风险进行了分析,包括软件供应链的构成要素、软件开发生命周期阶段、软件供应链威胁行为类别以及软件供应链安全风险影响范围等维度。接着,对软件供应链攻击类型进行了分析,包括开发阶段、分发阶段、部署阶段和维护阶段等不同阶段的攻击类型。在此基础上,提供了软件供应链安全风险治理指南,包括软件供应链风险治理体系建设、软件供应商风险管理以及软件开发生命周期风险治理指南等方面的内容。最后,介绍了软件供应链安全落地实践方案,包括悬镜软件供应链安全治理与运营解决方案在某金融机构的落地实践案例和某能源集团软供安全漏洞自动挖掘和修复落地实践等方面的内容,同时也探讨了软件供应链安全未来的发展趋势。软件供应链安全是当今网络空间安全的热点问题之一,一系列法律法规、最佳实践、技术、产品、流程还在在快速的完善过程中。关注软件供应链安全,保护信息安全、组织声誉、降低法律风险、提高业务持续性、应对市场竞争并提升用户信心。————赛博英杰创始人谭晓生报告从软件供应链的“安全风险、攻击类型、风险治理、未来趋势”等方面做出论述和洞察,并且附上了真实有效的落地案例,内容全面、技术详实、观点清晰,可作为各组织与机构在规划、实施软件供应链安全工作中的重要参考。————数世咨询创始人李少鹏近年来软件供应链安全问题备受关注,但软件供应链安全范围不清晰,定义模糊,涉及技术和安全类型复杂。本书结合安全形势,抓住软件供应链安全的核心,预测了软件供应链安全的发展趋势,对软件供应链的认知提升具有重要意义。————赛迪顾问业务总监高丹数字化浪潮中,软件供应链安全不仅是技术上的挑战,更是企业战略层面的迫切问题。本报告聚焦于揭示其技术和战略层面挑战,强调解决之道非一时之功。全球视野下,深入剖析软件供应链安全当前现状、问题及风险,并提供全生命周期的安全方案。这份研究报告为行业从业者提供了有价值的信息和洞见,值得一读。————中国信息通信研究院云大所开源和软件安全部主任郭雪当前软件供应生态愈发繁荣,然而软件供应链安全问题愈发严峻。ISC发布的2023软件供应链安全洞察,从软件供应链的安全现状、风险分析、攻击类型、风险治理以及落地实践案例等方面进行了深入分析,对软件从业人员和安全从业人员以及相关企业都有很好的启示。希望软件供应链安全的产学研用能真正打通,进一步提升我国软件供应链安全的软实力。————中国科学院信息工程研究所研究员软件安全分析群组负责人中国计算机学会高级会员/系统软件专委委员霍玮随着云计算,大数据,人工智能等技术的飞速发展,IT行业也在发生着深刻的变化。包括软件开发模式在不断的发展和演进,当前软件供应链安全面临着下面三个主要的问题:1.软件来源复杂,软件规模激增。规模带来复杂度和管理难度。包括安全漏洞等治理难度增加,风险增大。2.针对软件供应链的攻击日益猖獗,软件供应链投毒危害较大。3.非技术因素也在影响软件供应链的连续性与可持续发展。基于上面的挑战,软件供应链安全工作变得更加重要,安全管理部门,标准机构,IT头部厂商当前都非常重视软件供应链安全工作。从业界发展趋势来看,软件供应链安全治理工程技术和方法融入安全软件开发框架(SSDF)已经逐步成为共识。做好包括:软件成分管理,生命周期管理,软件完整性保护,开源软件在内的漏洞治理,是软件供应链安全的基础性工作。希望这份行业洞察报告对软件供应链安全的从业人员有帮助。————华为存储首席安全官
袁燕龙前
言在这个信息化迅速发展的时代,软件已经变得无处不在,从基础设施到日常设备,软件都在默默支撑着我们的生活和工作。然而,随着软件在全球范围内的普遍应用,软件供应链的安全问题也愈加突出,引发我们深思。软件供应链安全,简而言之,是确保软件的开发、分发和维护过程中,确保软件及其组成部分(包括源代码、库和组件)不受到威胁行为者的恶意攻击或利用的一种安全策略。在当下全球化和模块化的软件开发趋势下,软件供应链的复杂性日益增加,无疑为软件供应链安全带来了更大的挑战。从最近几年连续发生的软件供应链攻击事件来看,软件供应链安全的问题已经不容忽视。软件供应链安全的问题对我们的影响是深远的。其问题不仅可能影响软件的正常运行,还可能对使用者、公司,甚至是整个社会造成深远影响。各地政府和企业也都已经意识到这个问题的严重性,并开始寻求解决方案,但由于软件供应链的全球化和复杂性,这项任务变得尤其艰巨。在这份报告中,我们将从全球视野出发,深度剖析软件供应链安全的当前状态、主要问题、风险因素和应对策略。我们将重点介绍如何在软件供应链的各个环节,从设计开发到部署和维护中实现安全防护,以及如何利用最新的技术和工具提高安全防护能力。在数字化进程日益加速的今天,软件供应链安全不仅是一个技术问题,更是一个战略问题。同时,软件供应链安全不是一个短期可以解决的问题,它需要我们持续的努力和投入。希望通过我们的分析和洞察,能够为行业从业者提供有价值的信息和洞见,帮助整个行业在应对软件供应链安全挑战的道路上迈出坚实的步伐。目录C
O
NTENTS1软件供应链安全概述5软件供应链安全风险治理指南1.1什么是软件供应链安全?1.2软件供应链安全的发展历程02035.1软件供应链风险治理体系建设5.2软件供应商风险管理5.3软件开发生命周期(SDLC)风险治理指南5.3.1需求分析阶段2222242425253234382软件供应链安全现状分析2.1市场动态分析2.2技术发展现状2.3政策法规要求0607085.3.2设计分析阶段5.3.3研发测试阶段5.3.4发布部署阶段5.3.5运行维护阶段3软件供应链安全风险分析5.3.6废弃下线阶段3.1软件供应链的构成要素维度分析3.2软件开发生命周期阶段维度分析3.3软件供应链威胁行为类别维度分析3.4软件供应链安全风险影响范围分析111212126软件供应链安全落地实践方案6.1悬镜数字供应链安全方案在某金融机构的落地实践
416.2某能源集团软供安全漏洞自动挖掘和修复落地实践
486.3源码级软件供应链安全解决方案落地实践514软件供应链攻击类型分析6.4某大型制造国有企业应用系统全生命周期安全管理
59平台项目4.1开发阶段攻击类型分析4.1.1开发工具污染攻击4.1.2CI/CD流程攻击4.1.3源代码篡改攻击4.1.4第三方依赖攻击4.1.5依赖混淆攻击1515151616171717181818191919206.5CodePecker软件供应链安全解决方案助力某金融机构搭建数字研发流水线636.6软件供应链安全测试解决方案落地实践666.7某头部金融机构UniSCA软件供应链安全管理平台
69建设项目7软件供应链安全未来发展趋势4.2分发阶段攻击类型分析4.2.1篡改分发渠道攻击4.2.2篡改安装包攻击4.3部署阶段攻击类型分析4.3.1恶意代码插入7.1加大安全自动化和AI应用的投入7.2加强供应商安全审查和监管力度7.3采用更先进的加密和身份验证技术7.4推行实施更严格的政策和法规7575767777784.3.2篡改配置攻击7.5实现行业内生态合作和共享4.4维护阶段攻击类型分析4.4.1劫持更新攻击7.6利用体系化解决方案提升安全效能和可行性4.4.2利用陈旧组件攻击01软件供应链安全概述软件供应链安全概述1.
1
I
什么是软件供应链安全?在当今的数字化时代,软件已经成为我们生活和工作中不可或缺的一部分,任何一个领域都和软件的存在紧密相关。因此,软件的开发与生产自然而然的从传统的封闭式、单一环境变成了现在的分布式、多元化模式,形成了大家所熟知的“软件供应链”。软件供应链是指从软件的开发、制作、分发到最终维护和使用的全过程,它涉及多个环节,包括但不限于源代码管理、第三方库依赖、开发工具、集成和部署工具、分发平台等。软件供应链的出现,其实是软件生产和开发过程分工协作、专业化发展的体现。它不仅可以提高软件的生产效率,还可以让各个参与方更专注于自己擅长的环节,从而提高软件的质量。然而,这种分工协作的模式,也给软件供应链的安全带来了新的挑战。随着软件的复杂性和规模的不断增加,软件供应链的安全难度也在增加。一方面,软件供应链是攻击者寻找弱点和挖掘漏洞的重要领域,其中的每一个环节都可能成为攻击者的目标,攻击者只需要在软件供应链中找到一个薄弱环节,就可以发起攻击,从而影响整个软件供应链的安全性。另一方面,随着开源软件和第三方服务的普及,软件供应链变得更加复杂,安全管理的难度也大大增加。同时,由于软件供应链涉及多个参与方,每个参与方可能对安全有不同的理解和实践,这使得整个软件供应链的安全管理变得更加复杂且难以把控。不仅如此,软件供应链的安全性直接关系到用户的利益和组织的声誉。换句话说,软件供应链是大多数组织的命脉,如果软件供应链中的任何一个环节出现安全问题,都可能会导致用户的个人信息泄露,甚至引发大规模的社会影响,对企业的声誉造成重大损害。因此,保障软件供应链的安全性至关重要,“软件供应链安全”这一概念也应运而生。软件供应链安全是指在整个软件供应链中保护软件和软件基础设施免受恶意攻击者的侵害,这包括对软件供应链中的所有环节进行安全控制和管理,例如防止恶意软件的注入、未经授权的访问或修改、组织员工的恶意行为等。其主要组成部分包括软件供应链风险管理、第三方供应商的安全评估、安全开发、自动化安全测试、源代码和组件安全管理等。基于此,软件供应链安全应该包含以下五项关键特征:安全性:安全性是软件供应链安全最基础也是最关键的特征,这主要涉及到软件供应链的各个环节中,如何防止恶意代码的注入,保护软件不被篡改,防止未经授权的访问等。实现这一点,需要采用各种安全技术,比如安全开发、加密、身份验证、访问控制等,也需要有完备的安全策略和管理机制。完整性:完整性是指在整个软件供应链过程中,软件的内容、结构和功能都没有被篡改、破坏或丢失,始终保持原始的完整状态。这不仅需要在软件传输和存储过程中保证数据的完整性,也需要在软件修改和更新过程中,确保每一个版本都有完整的记录,并且在发布和使用过程中,软件的功能和性能也不会因为各种原因被削弱或破坏。02ISC2023软件供应链安全洞察可追溯性:可追溯性是指在整个软件供应链过程中,所有的操作、事件和结果都有明确、完整的记录,可以清楚地追溯到发生时间、发生地点、操作人员、操作方法以及产生结果等详细信息。这对于发现问题、分析问题、解决问题以及避免问题再次发生都有很大的帮助。透明性:透明性是指软件供应链中所有的操作和过程都是开放的,包括软件的开发、测试、分发、使用等环节。透明性可以帮助检测和防止不良行为,增加信任以及提供有价值的信息来改进软件供应链的管理和操作,实现透明性需要有一个开放的信息共享机制,以及一个公正的争议解决机制。持续性:持续性是指软件供应链的安全管理是一个持续不断的过程,而不是一次性的工作。随着技术的发展和威胁的变化,组织需要不断地对新的威胁和风险进行持续的评估和应对,这可能涉及到持续的风险评估、持续的安全监控、持续的安全技术更新、持续的员工培训、持续的学习和改进等机制和措施,以适应快速发展和变化的技术和环境。1.
2
I
软件供应链安全的发展历程软件供应链安全的发展历程和演变过程是非常复杂和多元化的,它的发展历程与信息技术的进步和互联网的全球化紧密相连,具体可以大致分为以下四个阶段:早期的计算机软件时代、网络时代、全球化和开源软件时代以及云计算和
DevOps
时代。这些阶段并非是明确划分的,而是重叠和并行的,每一个阶段都对软件供应链安全有着深远的影响。大约1990s早期的计算机软件时代2000后-至今全球化和开源软件时代发展历程1990s-2000s网络时代2010-至今云计算和DevOps时代·
早期的计算机软件时代(大约
1980s):在这个阶段,大多数软件通常都是由单个开发者或者小团队创建的,在这个阶段,软件供应链主要涉及到软件的设计、开发、测试和分发。尽管早期的软件供应链面临的安全问题相对较少,但
1982
年的"ElkCloner"事件是这一阶段的重要里程碑,标志着病毒和恶意软件开始入侵软件供应链,"ElkCloner"是最早的一种计算机病毒,它通过感染
AppleII
计算机的软盘传播。·
网络时代(1990s到
2000s):互联网的普及使得软件可以通过在线下载的方式进行分发,软件的更新和补丁也能迅速推送给用户。在这个阶段,软件供应链开始涵盖更多的环节,包括持续的更新和维护。安全问题开始变得更加复杂,恶意软件和病03软件供应链安全概述毒开始通过网络传播,同时网络攻击也开始出现。1999
年的
"LoveLetter"
病毒是一种通过电子邮件附件传播的病毒,全球范围内导致了数十亿美元的损失,揭示了网络时代软件供应链安全的脆弱性。·
全球化和开源软件时代(2000
年代后期至今):随着开源软件的兴起和全球化的推进,软件供应链变得更加复杂和分散。这个阶段,代码可能来自全球各地的开发者,而软件的编译、测试和分发也可能在不同的地点进行。在这个阶段,软件供应链安全问题变得更加复杂,一方面,开源软件的共享特性使得软件供应链中的每个环节都可能成为攻击目标;另一方面,全球化的开发和分发模式使得软件供应链中的任何一个环节出现问题,都可能会影响到整个链条。2014
年的“心脏出血”漏洞是一个里程碑式的事件,这是一个存在于广泛使用的开源加密库
OpenSSL
中的严重安全漏洞,由于
OpenSSL
在全球范围内广泛使用,该漏洞影响了大量的网站和应用。在这个阶段,我们也开始看到有关软件供应链安全的标准开始被提出和制定,例如,软件供应链安全的开放标准
SWID
标签(SoftwareIdentificationTags)在
2011
年由国际标准化组织(ISO)正式发布。·
云计算和
DevOps
时代(2010
年代至今):随着云计算和
DevOps
的兴起,软件供应链开始进入自动化和持续集成
/
持续部署(CI/CD)的阶段。在这个阶段,软件的开发、测试和部署都能实现自动化,使得软件的更新速度大大加快。然而,这也给软件供应链安全带来了新的挑战。由于软件的更新速度快,一旦软件供应链中的某个环节被攻击,恶意代码可能迅速传播到整个系统。2018
的
"Event-Stream"
事件就是一个例子,"Event-Stream"
是一个广泛使用的
Node.js
库,因为维护者将其转交给了一个未知的第三方,该第三方在库中植入了恶意代码,导致了软件供应链安全问题。总的来说,软件供应链安全的发展历程是一个从未意识到问题,到开始关注问题,再到制定相应对策和标准的过程。在这个过程中,不断有新的技术和策略被引入,以应对持续变化的安全威胁。0402软件供应链安全现状分析在数字化时代,软件供应链安全已成为全球关注的焦点,随着全球化、开源软件的盛行和云计算的崛起,软件供应链的复杂性和动态性不断增加,带来了新的安全挑战。在这种背景下,软件供应链安全的现状可以从市场动态、技术发展以及政策法规要求三个方面进行深入分析。软件供应链安全现状分析2
.1
I
市场动态分析在全球化、数字化和网络化的浪潮中,软件供应链已经深深地融入到了我们生活的各个方面。同时,由于其日益复杂且互联的特性,软件供应链安全也成为公众视线的焦点。如今,我们已经进入了一个全新的阶段,软件供应链安全市场正在以前所未有的速度快速发展,其影响力和重要性日益凸显。这一发展主要得益于几个关键因素:供应链攻击的增加:随着黑客和网络犯罪团伙的技术手段日益精进,供应链攻击的数量正在急剧增加。这些攻击不仅能够造成巨大的经济损失,而且还可能破坏企业的声誉,甚至威胁到国家的安全。复杂的供应链环境:随着全球化和数字化的发展,软件供应链变得越来越复杂,这给软件供应链安全带来了新的挑战。同时,新的技术趋势,如云计算、物联网和人工智能,也给软件供应链环境增加了复杂性。法规和标准的变化:全球各地的政府和行业组织都在采取行动,制定新的法规和标准,以提高软件供应链的安全性。这些法规和标准不仅要求企业采取一定的安全措施,而且还推动了市场对安全解决方案的需求。随着软件供应链市场的高速发展,我们可以明显观察到一些变化趋势:自动化和智能化:随着人工智能、大数据和云计算等技术的发展,软件供应链安全解决方案正变得更加自动化和智能化。这些技术不仅可以帮助企业更快速、更准确地识别和防止潜在的安全威胁,还可以帮助企业提高软件供应链管理的效率。从被动防御到主动预防:过去,企业主要依赖于防御性措施来保护软件供应链的安全。然而,现在越来越多的企业认识到,预防性措施才是根本。端到端的安全防护:随着软件供应链攻击方式愈发复杂化,企业正在意识到单一的安全防护措施已无法满足需求。因此,市场上解决方案越来越多地强调端到端的安全防护,包括从软件供应链的起始点到结束点的全程防护。解决方案集成:一种显著的市场发展方向是集成多个安全解决方案,创建一个全方位、一体化的供应链安全管理系统。这样的系统可以从多个角度对供应链安全进行实时监控,从而实现全面、深入的保护。此外,这样的系统还可以提供统一的界面和操作平台,使得供应链安全管理更为高效、便捷。透明性和可追溯性:在一些高规格的安全事件后,企业越来越意识到软件供应链的透明性和可追溯性的重要性。一些解决方案提供商已经开始提供使软件供应链透明化和可追溯化的工具和服务,以帮助企业更好地理解和管理软件供应链风险。服务提供商的角色转变:伴随着市场的发展,安全服务提供商的角色也在发生变化。在过去,他们主要提供技术支持和咨询服务。然而,现在,他们更多地是扮演战略合作伙伴的角色,帮助企业构建和实施全面的供应链安全策略。这表明,供应链安全不再仅仅是技术问题,也是战略问题。法规和标准的影响:随着政府和行业对软件供应链安全的关注度提高,越来越多的法规和标准正在出台。这对市场产生了重大影响,企业必须遵守这些法规和标准,而软件供应商则需要提供符合这些法规和标准的解决方案。06ISC2023软件供应链安全洞察综上所述,软件供应链安全市场发展迅速,发展方向也在不断变化。面对软件供应链安全的挑战,企业需要及时调整策略,充分利用前沿技术,构建全面的软件供应链安全管理系统,同时也需要考虑合规性问题。在这个过程中,安全服务提供商也需要适应市场变化,提供更全面、更高效的服务。2
.2
I
技术发展现状在当今的数字化世界中,软件供应链安全技术的发展已经成为了一种迫切的需求,随着技术的发展,软件供应链安全的范围也在不断扩大,从软件开发、构建和部署,到维护和升级,甚至包括下线和替换,每一个环节都可能成为攻击者的目标。因此,当前的软件供应链安全技术已经不再仅仅关注单一的安全隔离和防护,而是开始采用更加全面、深入的策略。当前的软件供应链安全技术及解决方案主要围绕以下几个方面进行:软件的安全开发和构建:通过采用
DevSecOps,其是一种将安全集成到
DevOps
过程中的方法,它将安全考虑因素前移,从开发的早期阶段就开始关注安全问题,通过自动化工具和流程帮助开发人员在代码中识别和修复安全漏洞。主要包括静态代码分析(SAST)、动态代码分析(DAST)交互式应用安全测试(IAST)、软件成分分析(SCA)和模糊测试(Fuzzing)等技术,旨在确保软件在开发和构建过程中不含有安全漏洞和恶意代码。软件的安全部署和运行:包括容器安全、云安全、终端安全等技术,旨在确保软件在部署和运行过程中的安全,防止被攻击者利用。软件的安全维护和升级:包括补丁管理、漏洞管理等技术,旨在确保软件在维护和升级过程中的安全,及时修复已知的安全漏洞。供应链的整体安全管理:包括软件供应链风险评估、软件供应链可视化、软件供应链审计等技术,旨在实现软件供应链的整体安全管理,发现并应对软件供应链中的安全风险,包括软件供应商风险评估、第三方组件风险评估、软件供应链攻击模拟等。随着技术的快速发展,软件供应链安全正在经历一系列的革新和改进,一些创新的技术也逐渐在软件供应链安全领域崭露头角。例如,利用区块链技术来构建透明、可追溯的软件供应链,通过区块链的分布式和不可篡改的特性,能够更好地防止供应链中的恶意篡改行为。此外,先进的加密和身份验证技术也在对软件供应链安全产生重要影响。软件签名可以确保软件的完整性和来源,防止恶意修改;多因素身份验证可以加强对软件开发和部署的访问控制。不仅如此,AI
和机器学习技术也开始在软件供应链中发挥作用,通过机器学习分析软件的行为模式,可以自动检测到异常行为,及时发现可能得安全威胁。自动检测和修复软件的安全漏洞,大大提升了软件供应链的安全效率和效果。这些创新技术的应用,为软件供应链安全提供了更多可能性。07软件供应链安全现状分析然而,尽管软件供应链安全的技术在快速发展,但也面临着诸多的挑战:例如,对于
SCA来说,由于软件中使用的开源组件数量庞大,分析的难度也相应增大,而且并非所有的开源组件都有详细的安全文档和维护信息,这也增加了
SCA
的难度。SBOM
的维护和更新也是一个大问题,由于软件供应链的复杂性,如何有效管理
SBOM,保持其准确性和及时性,也是一个挑战。总的来说,虽然当前的软件供应链安全技术已经取得了一些重要的进展,但也还面临着不可忽略的挑战。面对这些挑战,我们需要更加深入地研究和探索,同时也需要各方的共同努力和协作,以应对日益严峻的安全形势。2.3
I
政策法规要求复杂的网络环境和日益严重的网络攻击威胁使得网络安全问题异常复杂,许多问题无法仅靠技术手段解决,而需要依赖于更严格的政策和法规进行引导和约束。政策和法规是整个社会运行的规则和约束,它们为各个行业的运行提供了规则和方向。对于软件供应链安全而言,政策和法规的作用尤为重要,是推动软件供应链安全发展的重要因素之一。首先,政策和法规可以设定安全标准和规则,使得软件供应链各个环节的运作都有明确的安全标准和约束。其次,政策和法规可以对不遵守安全规定的行为进行处罚,有效地防止和抑制恶意行为。最后,政策和法规可以推动行业内的安全创新和技术升级,促进整个行业的安全发展。这些政策的目标是确保软件供应链的健康运行,保护消费者免受潜在的网络攻击,同时也影响了企业的操作模式和行为。在这样的大背景下,认识并理解这些政策,并制定有效的应对策略至关重要。在过去的几年里,全球范围内都出现了许多针对软件供应链安全的政策和法规,可以从国内和国际两个维度进行深入分析。国内政策和法规要求:国内政府已经意识到软件供应链安全的重要性,并开始着手制定相关的政策和法规。例如,目前已经制定了一系列的网络安全法规,其中就包括了关于软件供应链安全的内容。这些法规要求企业对其软件供应链进行全面的风险评估和管理,并要求企业采取适当的措施来确保其软件供应链的安全。此外,国内目前还对某些特定的行业和领域制定了特定的软件供应链安全政策。例如,对于关键信息基础设施运营者,政府提出了更为严格的软件供应链安全要求。这包括了对软件供应链中所有组件的来源进行审核,以及对软件供应链中的风险进行定期的评估和审查。08ISC2023软件供应链安全洞察国际政策和法规要求:在国际上,很多国家也开始制定相关的软件供应链安全政策。例如,美国政府在
2021
年发布了一项行政令,要求联邦政府的软件供应链中的所有软件供应商都必须符合一定的安全标准。这个行政令是在一个针对美国联邦政府的重大网络攻击事件后发布的,目的就是提高联邦政府软件供应链的安全性。此外,美国国家标准技术研究所(NIST)也制定了一系列的软件供应链安全风险管理指南,为企业提供了一套完整的软件供应链安全管理框架。欧盟也在加强了软件供应链安全的规则,欧盟的网络信息安全指令(NIS
Directive)对关键服务提供者提出了严格的软件供应链安全要求。同时,欧盟的通用数据保护条例
(GDPR)也间接地对软件供应链安全提出了要求,它规定了严格的数据保护和隐私要求,间接推动了企业关注和改善软件供应链安全。此外,一些国际标准组织如
ISC
也出台了针对软件供应链安全的标准和指南。例如
,ISC/IEC
27036
提供了信息安全供应链风险管理的指南。这些政策和法规的制定,无疑给软件供应链的从业者带来一定的压力。然而,也为软件供应链的从业者提供了明确的方向和指引。企业需要采取以下应对策略:建立风险管理体系:企业需要对其软件供应链进行全面的风险评估和管理,包括对软件供应链中所有组件的来源进行审查,对软件供应链中的风险进行定期的评估和审查。强化安全技术应用:利用现有的安全技术和工具,如安全测试工具等,以便及时发现和修复软件供应链中的安全漏洞。建立应急响应机制:企业需要建立有效的应急响应机制,以便在软件供应链安全事件发生时,能够及时地采取应对措施。遵守政策法规要求:企业需要主动关注和理解最新的法规要求,按照法规要求调整企业的软件供应链管理方式,主动实现合规。深化安全文化培训:通过培训和教育,提高全员的软件供应链安全意识和能力,使安全成为企业文化的一部分。总的来说,随着政策和法规的日益严格,软件供应链安全的重要性也会越来越被企业和社会广泛认识。在这样的背景下,认识并理解这个法规,并制定有效的应对策略,对于每一个企业都至关重要。0903软件供应链安全风险分析在当今高度数字化的时代,软件供应链已成为一个关键的信息技术组件,随着组织对于外部供应商和开源组件的依赖日益增加,软件供应链的安全问题也日益突出。由此引发的安全风险不仅仅局限于单个应用或系统,而是可能对整个组织的业务连续性和声誉造成重大影响。因此,对软件供应链的安全风险进行全面而深入的分析,既是防范潜在威胁的重要手段,也是推动组织持续改进的关键驱动因素。本章将对软件供应链的安全风险进行详细分析,按照软件供应链的构成要素、软件供应链生命周期的阶段、威胁行为的类别以及风险影响范围四个维度对进行展开,深入剖析各种风险类型的特点和影响。ISC2023软件供应链安全洞察3
.1
I
软件供应链的构成要素维度分析软件供应链构成要素维度关注的是软件供应链中涉及的各个要素,包括软件供应商、软件产品、开发环境、开源组件、源代码、部署环境、分发渠道以及人为因素等,每个构成要素都可能存在安全风险。第三方供应商风险:软件供应链中往往涉及多个第三方供应商,由于第三方供应商的安全性无法得到充分的保证,因此,供应商可能成为威胁的主要来源。如内部人员滥用权限、开发过程管理不严谨、供应商自身被攻击等,这些问题都可能通过供应链传导到使用方。软件产品风险:软件产品本身可能存在的漏洞,包括设计上的缺陷、实现上的错误以及配置上的问题等,可能会被攻击者利用,导致安全问题。开源组件风险:开源组件和第三方组件广泛用于现代软件的开发过程中,大大提高了开发效率。然而,由于其开发性和跨区域性,使得它们成为黑客攻击的重点目标。若开源软件或第三方组件存在未知的安全漏洞,或者在更新过程中引入新的安全风险,可能导致应用程序功能被破坏,数据被窃取或篡改,甚至整个系统的安全性和稳定性都会受到威胁。此外,攻击者还可能通过发布带有恶意代码的伪造组件,或者对正常组件进行篡改,来攻击使用这些组件的软件产品。例如,2018
年的
Event-stream
事件,就是因为一个流行的
NPM
库被恶意修改,导致使用该库的众多软件都被植入了恶意代码。开发环境风险:开发环境的安全也是软件供应链安全的重要组成部分,包括开发工具的安全性,开发者的开发环境的安全性,源代码管理系统的安全性等。如果开发环境被攻击,那么恶意代码可能被植入到软件中,对软件的运行造成影响。不仅如此,如果源代码管理过程中的权限控制不严格,或者版本控制不规范,就可能导致源代码被篡改,或者敏感信息泄露问题。例如,2015
年的
XcodeGhost
事件,就是因为苹果的官方开发工具
Xcode
被恶意修改,导致大量的iOS
应用被植入了恶意代码。源代码管理风险:源代码是软件的核心资产,其安全性直接关系到软件的安全。如果源代码管理系统(如Git)存在安全漏洞,或者开发人员的账号被恶意获取,都可能导致源代码被篡改或泄露,对软件的功能和数据造成破坏。例如,2018
年的
Bitbucket
事件,就是因为开发者的账号被恶意获取,导致大量的私有仓库被删除。部署环境风险:软件部署环境的安全问题也会直接影响到软件的运行安全,在软件开发和运维过程中,常常需要管理大量的配置信息,包括数据库的账号密码、API的访问密钥等。如果这些敏感信息未被妥善保管,例如直接暴露在源代码中,或者存储在没有加固的服务器上,就可能被恶意获取。分发渠道风险:分发渠道是软件从开发者传递给用户的重要桥梁,如果分发渠道出现安全问题,如被恶意篡改或者冒充,可能会导致用户下载到被篡改的软件。人为因素风险:内部人员的安全意识和行为规范也是影响软件供应链安全的重要因素。内部人员对软件供应链的各环节都有深入的了解,如果内部人员对安全规范不知不觉,或者进行恶意行为,例如使用弱密码、点击未知链接、私自下载非官方软件等,都可能导致企业的信息安全防线被突破,软件供应链的安全被破坏。11软件供应链安全风险分析3
.2
I
软件开发生命周期阶段维度分析软件开发的生命周期从需求分析、设计、编码、测试、部署、维护到废弃,每个阶段都可能存在安全风险。需求分析和设计阶段:如果需求分析不准确,或者设计不合理,可能会在软件产品中引入安全问题。编码阶段:如果构建过程中使用的工具和环境存在安全漏洞,就可能被攻击者利用,导致开发出的软件产品带有恶意代码。测试阶段:如果测试不全面,或者测试方法不正确,可能会漏掉一些安全漏洞,使得这些漏洞在产品发布后被攻击者利用。部署阶段:如果部署过程中的配置管理不严谨,就可能导致配置错误,或者敏感信息泄露。维护阶段:如果维护过程中忽视了安全更新,或者维护人员的权限管理不严格,可能会导致软件产品的安全性下降,从而引入新的安全问题。废弃阶段:如果废弃的软件产品没有得到妥善处理,也可能成为攻击者利用的突破口。3
.3
I
软件供应链威胁行为类别维度分析软件供应链面临的威胁行为主要有以下几类:源代码篡改:攻击者可能通过各种方式获取软件的源代码,然后在其中植入恶意代码或后门,再将篡改后的代码重新打包分发出去。这种攻击手段直接针对软件的核心,对用户造成的威胁极大。恶意依赖注入:许多软件在开发过程中,会引入第三方库或者依赖来提供某些功能。攻击者可能通过对这些第三方库或者依赖进行篡改,将恶意代码注入到软件中,从而实现对软件产品的控制。数据窃取:攻击者可能通过入侵软件供应链,窃取敏感数据,如源代码、配置信息、用户数据等。服务中断:攻击者可能通过对软件供应链发动攻击,导致软件产品的服务中断,影响到用户的正常使用。3
.4
I
软件供应链安全风险影响范围分析软件供应链的安全风险范围维度关注的是风险可能对组织造成的影响范围,通常可以从财产损失、声誉损失和法律纠纷几个方面进行分析。12ISC2023软件供应链安全洞察财产损失:安全事件可能导致数据泄露、业务中断等,进而导致财产损失,或者系统崩溃导致的业务损失等。声誉损失:安全事件可能损害到组织的品牌声誉,导致客户信任度下降进而导致客户流失,或者引起监管机构的关注。法律纠纷:如果安全事件导致数据泄露,不仅可能导致企业的商业机密被窃取,同时还可能导致用户的隐私数据泄露,从而引发重大的法律责任。软件供应链的安全风险是一个多元且复杂的问题,它们之间并不是孤立存在的,而是存在一定的关联和影响。因此,需要从多个维度进行全面且深入的理解和分析,才能准确的识别风险、有效地控制风险,从而更好地保护软件供应链的安全性。同时,软件供应链风险管理并非一次性的任务,而是一个持续的过程,只有通过持续的风险管理,才能够应对日新月异的安全威胁。在实际工作中,各企业正在工作的开展中应当结合自身的实际情况,在进行有针对性的安全风险分析和软件供应链安全风险管理时,需要综合考虑各个环节的安全控制,以实现全链条的安全防护。1304软件供应链攻击类型分析软件供应链的安全风险日益引起各界关注,尤其是各种类型的软件供应链攻击,从软件开发、构建、部署到运行,每一个环节都可能成为攻击者利用的切入点。对此进行深入的了解和分析可以帮助我们更好地防范和应对这些潜在的威胁。本章将结合具体的案例,深入分析软件供应链各个阶段的攻击类型和其背后的攻击机制,以期引发更深入的思考和讨论。ISC2023软件供应链安全洞察开发工具污染攻击CI/CD流程攻击开发阶段维护阶段部署阶段恶意代码插入源代码篡改攻击第三方依赖攻击依赖混淆攻击篡改配置攻击分发阶段篡改分发渠道攻击篡改安装包攻击劫持更新攻击利用陈旧组件攻击4
.1
I
开发阶段攻击类型分析软件供应链中的开发环节是攻击者常常寻找的目标,因为此阶段不仅涉及源代码,也涵盖了诸如开发攻击、依赖库等其他重要的部分,每一个部分都可能成为潜在的安全风险点。4.1.1
开发工具污染攻击开发工具污染攻击是指攻击者通过某种方式植入恶意代码或后门到软件的开发工具中,进而在编译或构建阶段对软件进行污染。这种攻击方式的影响力广泛,因为一旦开发工具被污染,所有使用这个工具的开发项目都可能被影响。·
典型案例分析:XcodeGhost攻击事件XcodeGhost
攻击事件是
2015
年最著名的攻击案例之一,XcodeGhost
是一个被篡改的
AppleXCode开发环境的版本,它在编译
ios
应用程序时会注入恶意代码。由于下载
Apple
官方
XCode
的速度比较慢,一些中国的开发者选择从其他来源下载
XCode,这使得他们成为了
XCodeGhost
的受害者,被XCodeGhost
编译的应用程序被上传到了
AppStore,并被数百万用户下载。这次攻击被称为影响最大的
iOS系统的恶意软件攻击之一,凸显了攻击者是如何利用开发者对开发工具的信任,以及对下载速度的需求,来传播恶意代码,这也强调了使用官方或可信任来源下载开发工具的重要性。4.1.2CI/CD
流程攻击CI/CD
流程攻击是指攻击者尝试利用持续集成
/
持续部署(CI/CD)流程中的漏洞,窃取用户的敏感信息。·
典型案例分析:CodecovBashUploader
安全事件Codecov
是一个知名的代码覆盖率服务,其
BashUploader
脚本被用于上传代码覆盖率报告。在
2021年
4
月,Codecov
公布了一项安全事件,Bash
Uploader
脚本在上传报告的过程中被植入恶意代码。15软件供应链攻击类型分析根据
Codecov
的公告,攻击者通过篡改
Codecov
在
AWS
的一个
Docker
映像,将恶意脚本注入到了Codecov
的环境中。然后,当用户执行
BashUploader
脚本上传覆盖率报告时,脚本不仅会上传报告,还会收集并传输环境变量,其中可能包含敏感信息,如密钥、令牌、服务凭据等。此次攻击对
Codecov
的用户产生了巨大影响。许多用户的敏感数据被泄漏,影响的公司包括了大型科技公司和开源项目。为应对此次事件,Codecov
及时更新了其上传脚本,移除了恶意代码,并向用户发布了公告,提示用户检查并更换可能泄露的凭证。4.1.3
源代码篡改攻击源代码是一种直接但非常有效的攻击方式,攻击者可能会通过各种手段获取到源代码的访问权限,然后在源代码中植入恶意代码或后门。·
典型案例分析:SolarWindsOrion
供应链攻击这是近年来最著名的源代码篡改案例之一,在
2020
年
SolarWinds
公司的
Orion
网络管理平台成为一场大规模网络攻击的目标。攻击者利用对
SolarWinds内部系统的访问权限,将恶意代码植入了Orion平台的源代码中。当客户下载并安装了这个被修改的
Orion平台时,攻击者就可以通过这段恶意代码对客户的系统进行攻击。这个事件的影响无比深远。首先,由于
Orion
平台的用户包括许多政府机构和大型企业,这次攻击对全球的网络安全构成了严重威胁。其次,这个事件再次提醒了我们,即使是一家大型的、看似可靠的供应商,也可能成为供应链攻击的目标。4.1.4
第三方依赖攻击攻击者可能会针对软件依赖的第三方库或服务进行攻击,以影响软件的安全性。·
典型案例分析:Event-StreamNPM
包篡改案Event-Stream
是一个在
JavaScript
世界非常流行的
NPM
包,拥有大量的下载量和依赖。2018年
11
月,Event-Stream
的维护者因为缺乏时间维护,将维护权交给了一位自愿接手的开发者。然而,这位开发者在接手后不久,就在
Event-Stream
的源码中添加了一段恶意代码。这段恶意代码的目标是针对特定的使用者:使用了
Event-Stream
并且包含
Copay项目代码的应用。Copay
是一个知名的比特币钱包应用,一旦这段恶意代码在包含Copay
项目的环境中运行,就会尝试窃取并发送用户的比特币钱包数据。这次事件的影响深远,许多依赖了
Event-Stream
的项目可能都在无意间运行了这段恶意代码。事件发生16ISC2023软件供应链安全洞察后,NPM
社区对于包维护权移交的问题、安全审查等进行了深入反思,也对开源社区的安全问题提出了警示。4.1.5
依赖混淆攻击依赖混淆是一种比较隐蔽的攻击方式,攻击者可能会发布一个与常用库,名称非常相近的恶意库,当开发者误用这个恶意库作为依赖时,就会被攻击。·
典型案例分析:RubyGemsTyposquatting
事件RubyGems
曾经发生过一次大规模的
Typosquatting
事件,Typosquatting
是一种利用用户输入错误来进行攻击的方法。攻击者会创建并发布一些与热门
Gems
名称相似的
Gems,当用户输入错误,不小心安装了这些恶意
Gems
后,攻击者就可以通过这些来进行攻击。在
RubyGems
的
Typosquatting
事件中,有超过
700
个恶意
Gems
被发布,Ruby
Gems
在发现问题后,迅速下架了这些恶意
Gems,但由于此次事件的规模相对较大,对RubyGems
社区的影响也相当深远。4
.2
I
分发阶段攻击类型分析在软件供应链中,分发环节涉及到软件产品从开发者手中传递到最终用户手中的过程。在这个阶段,攻击者可能利用各种手段来篡改软件分发渠道,或者直接篡改软件安装包,以便在软件用户的系统中引入恶意代码。4.2.1
篡改分发渠道攻击攻击者在分发环节最常见的攻击方式之一就是篡改分发渠道,通常指攻击者通过控制或影响软件的分发渠道,使得用户在从该渠道下载或获取软件时接触到被篡改或恶意的版本。·
典型案例分析:ShadowPad
攻击2017
年,一种名为
"ShadowPad"
的后门攻击影响了数百个企业。这种攻击通过篡改
NetSarang
公司的多款网络连接软件来实施。这些软件被广泛用于连接到远程服务器和虚拟化环境,是许多大型企业的关键基础设施组成部分。在这次攻击中,攻击者首先入侵了
NetSarang
的软件构建系统,然后将
ShadowPad
后门代码插入到NetSarang
软件的构建过程中。结果是,当客户从
NetSarang
的正规分发渠道下载并安装软件时,他们不知不觉地也安装了
ShadowPad
后门。ShadowPad后门能够使攻击者全面控制受感染的系统,包括执行命令、窃取信息、下载额外的恶意软件等。据估计,这次攻击影响了全球数百个大型企业。17软件供应链攻击类型分析4.2.2
篡改安装包攻击除了篡改分发渠道之外,攻击者还可能会试图篡改软件的安装包。这种攻击类型涉及攻击者对软件安装包进行篡改,插入恶意代码,然后将其重新打包。·
典型案例分析:CCleaner
攻击事件由
Avast
公司开发的
CCleaner
是一款流行的
PC
清理工具,在2017
年,CCleaner
的安装包被发现包含了恶意代码。攻击者篡改了CCleaner
在官网上的安装包,将恶意代码嵌入其中。当用户从官网下载并安装了这个版本的
CCleaner
后,恶意代码就会在用户的电脑上运行。恶意代码首先会收集用户的系统信息,然后将这些信息发送到攻击者的服务器。此外,恶意代码还有可能下载并安装更多的恶意程序。据估计,有超过200
万的用户下载并安装了这个被篡改的版本。CCleaner
攻击事件再次向我们揭示了供应链攻击的威胁。即使用户从官方网站下载软件,也可能会安装到含有恶意代码的软件。这一事件也提醒我们,任何在供应链中的环节都可能成为攻击的目标,包括被广大用户信任的软件安装包。4.3
I
部署阶段攻击类型分析软件供应链的部署环节是一个关键环节,软件或应用程序在此阶段被安装和配置以便在目标系统或网络中运行。这个阶段包含了从分发环节获取软件,到在特定硬件或环境中启动和运行软件的整个过程。4.3.1
恶意代码插入恶意代码插入是指在软件部署阶段,攻击者将恶意代码插入到软件中,使得该软件在运行时执行这些恶意代码。这些恶意代码可能用于窃取用户信息、控制用户系统、破坏系统功能等恶意活动。这种攻击的特点是隐蔽性强、难以发现。由于恶意代码直接插入到软件中,且通常会通过各种手段来隐藏其存在,如代码混淆、加密等,因此用户在使用软件的过程中很难发现这些恶意代码。此外,这种攻击对用户的影响也可能非常大,如数据泄露、系统崩溃等。·
典型案例分析:ShadowHammer攻击2019年,一种名为"ShadowHammer"的供应链攻击通过ASUS的LiveUpdate实用程序影响了全球数万台电脑。18ISC2023软件供应链安全洞察在这次攻击中,攻击者通过入侵
ASUS
的
LiveUpdate
服务器,将恶意代码插入到ASUS
的
LiveUpdate实用程序中。当用户使用LiveUpdate
更新他们的
ASUS
设备时,他们同时也安装了这个恶意代码。这个恶意代码会在用户的系统中创建一个后门,使得攻击者可以远程控制用户的系统,执行命令,窃取信息,甚至部署额外的恶意软件。据估计,这次攻击影响了全球约
57000
台
ASUS
设备。4.3.2
篡改配置攻击配置篡改攻击是指在软件部署阶段,攻击者修改软件的配置信息,以改变软件的行为或触发软件的安全漏洞。这种攻击的特点是难以防范,因为软件的配置信息通常是明文存储的,且用户在使用软件时需要有修改配置的权限,所以攻击者只需要获取到这些权限,就可以进行攻击。而这种攻击的影响也可能非常大,例如,可能导致软件的功能异常、数据丢失等。·
典型案例分析:VPNFilter
恶意软件攻击2018
年,一款名为
VPNFilter
的恶意软件在全球范围内快速传播,这款恶意软件主要攻击路由器和网络存储设备,它通过篡改设备的配置,使得设备变成攻击者的僵尸网络的一部分。在实施攻击的过程中,VPNFilter
恶意软件首先通过网络漏洞入侵设备,然后篡改设备的配置,使得设备在启动时会自动连接到攻击者控制的服务器,下载并执行攻击者的命令。这次攻击影响了全球超过
50
万台设备,被攻击的设备不仅可能被用于攻击其他设备,而且设备上的用户数据也可能被攻击者窃取。4
.4
I
维护阶段攻击类型分析在软件供应链的全过程中,维护阶段是一个至关重要的环节,主要包括软件的维护、更新和升级等操作。在这个阶段的主要目的是保障软件的稳定运行,及时修复已知的问题和漏洞,以及满足新的技术和市场需求。然而,维护阶段也可能面临着一些特定的安全威胁和攻击,以下将从不同的维度详细分析这些攻击类型,以及一些具体攻击案例。4.4.1
劫持更新攻击恶意更新是维护阶段中较为常见的一种攻击类型。攻击者利用更新机制推送含有恶意代码的更新包,进而对用户系统造成破坏。·
典型案例分析:NotPetya
勒索软件攻击19软件供应链攻击类型分析2017
年,一种名为
NotPetya
的恶意软件在全球范围内造成了大规模的破坏。这是一种勒索软件,它通过篡改正常软件的更新机制,将恶意软件部署到了目标系统上。攻击者首先对乌克兰一家软件公司
MEDoc
的更新服务器进行了攻击,并在其更新程序中植入了NotPetya
勒索软件。当
MEDoc
的用户下载并安装了这个含有恶意软件的更新后,NotPetya
就被部署到了用户的系统中。最后,这款勒索软件在受害者的电脑上启动,加密用户的文件并索要赎金。这次攻击对全球范围内的企业和机构造成了重大影响,包括丹麦的全球运输公司
Maersk
和美国的制药公司
Merck。NotPetya
攻击是一个典型的利用软件更新机制进行的软件供应链攻击,攻击者首先攻击了软件供应商的服务器,然后利用供应商的信任关系对其客户进行攻击,由于恶意代码是通过正常的软件更新分发的,因此很难被检测到。4.4.2
利用陈旧组件攻击在软件维护过程中,可能会出现某些组件因为版本较旧护着已经停止维护,而存在一些已知或未知的安全漏洞。如果这些组件没有得到及时的替换或者更新,就可能会成为攻击者的目标。通常,这类攻击的原因是开发者未能及时发现或修复漏洞,或者用户未能及时安装补丁。·
典型案例分析:WannaCry
勒索软件攻击在
2017
年,一种名为
WannaCry
的勒索软件在全球范围内爆发,导致了大规模的网络安全事件。这次攻击的背后,就是利用了微软Windows
操作系统中的一个未被及时打补丁的漏洞。在具体的攻击过程中,WannaCry
勒索软件首先会通过互联网寻找使用了未打补丁的
Windows
系统的电脑,然后利用系统漏洞入侵这些电脑,将电脑上的文件全部加密,再要求用户支付赎金以获取解密密钥。这次攻击造成了全球范围内大量电脑被感染,其中包括了很多重要的机构和企业,比如英国的国家卫生服务系统(NHS)。这次攻击对全球范围内的企业和个人造成了巨大的经济损失。在现实中,攻击者可能会结合以上多种攻击类型,构造出更为复杂的攻击策略。因此,只有全面、深入地了解并分析各种可能的攻击类型,才能构建有效的防御策略,降低软件供应链攻击带来的风险。2005软件供应链安全风险治理指南在当今的数字化时代,软件供应链的安全性已经成为组织不容忽视的问题。软件供应链包括从软件的设计和开发,到构建、测试、分发、部署、运行和维护等多个阶段。在这个过程中,任何一个环节的安全问题都可能导致整个软件供应链的瘫痪,引发严重的数据泄露和系统故障,造成巨大的经济损失,甚至影响到组织的业务运行和声誉。因此,软件供应链的安全风险管理至关重要。下面将针对软件供应链的各个阶段,提供一套软件供应链安全风险管理的方法和指南,以帮助组织更好地应对软件供应链的安全威胁。软件供应链安全风险治理指南5
.1
I
软件供应链风险治理体系建设要进行有效的软件供应链安全风险治理,首先需要构建一个风险治理体系,这个体系应当结合组织的特定需求和行业的最佳实践,包含以下核心元素:·
政策:明确组织对于软件供应链安全的态度和要求,定义相关的政策和标准,并获得高层的支持和承诺。·
过程:设计和实施一套完整的软件供应链安全风险管理过程,包括风险识别、评估、处理和监控等环节。每个环节的主要工作如下:风险识别:在此阶段,组织需要收集和整理有关软件供应链的信息,以便识别存在的风险。这可能包括识别供应链中所有的组件和服务,了解它们的来源,评估它们的安全性,以及识别可能存在的威胁。风险评估:在此阶段,组织需要对已识别的风险进行深入评估,了解风险的严重程度和可能的影响。这可能包括评估供应链中的组件和服务的安全性,以及评估如果发生安全事件,对组织可能产生的影响。风险处理:在此阶段,组织需要制定和实施应对策略,以减轻或消除风险。这可能包括改进开发流程,引入安全工具和实践,对供应商进行安全审计,或者更换不安全的组件和服务。风险监控:在此阶段,组织需要持续监控软件供应链的安全状态,以及实施的应对策略的效果。如果发现新的风险或者已有的风险发生变化,需要回到风险识别阶段,重新进行识别、评估和处理。·
人员:建立专门的软件供应链安全团队,负责软件供应链安全风险的管理和控制。提高全员的安全意识,确保所有涉及软件供应链管理的员工都对策略、程序和工具有充分的理解,能够有效地执行他们的职责。·
技术:选择并部署适合的技术和工具,以支持软件供应链安全风险管理的实施。这包括用于代码审查、漏洞扫描、依赖项管理、构建自动化、持续集成
/
持续部署(CI/CD)等工具。5
.2
I
软件供应商风险管理软件供应商风险管理是软件供应链安全风险治理的关键组成部分,应该贯穿整个软件供应链安全风险治理过程,其主要目标是确保软件供应商提供的软件产品或服务不会对使用者的环境产生安全威胁。在实施软件供应商风险管理时,主要包括以下步骤和阶段,每个步骤中也需要采取相应的措施和手段。供应商信息收集建立监控机制制定评估标准软件供应商选择阶段合同审查阶段供应商管理阶段供应商安全审计进行供应商评估软件供应商风险管理制定安全条款审查合同制定风险处理策略执行风险处理策略供应商风险处理阶段22ISC2023软件供应链安全洞察·
软件供应商选择阶段:在软件供应商选择阶段,首先需要对潜在的软件供应商进行评估,以确定他们的安全能力,这一步骤的措施和手段包括:供应商信息收集:首先需要对软件供应商的安全态势有全面的了解,主要包括收集软件供应商的信息,例如软件供应商的安全政策、开发和维护流程、历史安全事件记录等。通过这些信息,可以初步识别与软件供应链相关的安全风险。制定评估标准:评估标准应包含软件供应商必须满足的安全标准,例如,供应商是否拥有适当的安全认证,他们的产品是否已经通过了安全测试等。进行供应商评估:评估软件供应商的安全能力和性能,例如,软件供应商是否有能力发现和修复安全漏洞,软件供应商的安全响应能力如何等。此外,评估软件供应商的安全态势可能对组织的影响,例如如果软件供应商出现安全问题,会对组织的业务连续性、数据安全等方面产生何种影响。·
合同谈判:在合同谈判阶段,需要确保合同中包含足够的条款来保护使用者的安全权益,这一步骤的措施和手段包括:制定安全条款:在合同中加入必要的安全条款,例如,供应商必须遵守的安全标准,如何处理安全事件,以及如何赔偿由于安全问题导致的损失等。审查合同:由法律和安全专家对合同进行审查,以确保合同中的安全条款足够严格。·
供应商管理:在供应商管理阶段,需要定期对供应商进行监控和审计,以确保他们持续满足安全要求。这一步骤的措施和手段包括:建立监控机制:这可以通过定期收集和分析供应商的安全数据,例如,安全事件报告,补丁和更新的发布情况等来实现。供应商安全审计:定期对供应商进行安全审计,审计的内容包括供应商的安全政策和程序,安全技术的使用情况,以及安全事件的处理情况等。·
供应商风险处理:当发现供应商存在安全风险时,需要及时进行风险处理,这一步骤的措施和手段包括。制定风险处理策略:制定和实施针对软件供应商的风险处理策略,这可能包括与软件供应商协商改进其安全能力、要求供应商定期进行安全审计、修改合同条款以及减少安全风险等。同时,也需要准备应对软件供应商出现安全问题的应急计划。执行风险处理:执行制定的风险处理策略,同时监控处理结果,以确保风险得到有效的控制。软件供应商风险管理是一个持续的过程,需要在软件供应商选择、管理和风险处理等阶段采取相应的措施和手段。通过有效的软件供应商风险管理,可以显著降低软件供应链的安全风险,保护使用者的利益。如果软件供应商无法满足组织的安全需求,也可能需要考虑更换新的软件供应商。23软件供应链安全风险治理指南5
.3
I
软件开发生命周期(SDLC)风险治理指南软件供应链安全风险治理是一项至关重要的任务,它涉及对软件开发生命周期中所有阶段的安全风险进行管理。从
SDLC
的角度进行软件供应链安全风险治理,可以实现全面、早期、持续的安全风险管理,有利于提高软件的安全性,降低安全风险,保护企业的利益。这不仅需要构建一个完整的治理体系,还需要在软件开发生命周期的各个阶段引入关键技术。下面,将从
SDLC
的各个阶段介绍如何做安全风险治理。5.3.1
需求分析阶段从
SDLC
的需求分析阶段开始就对软件供应链安全风险进行治理,可以更早地识别和解决潜在的安全问题,从而降低风险,减少后期的修复成本。以下将详细介绍在需求分析阶段如何进行软件供应链安全风险治理。·
定义安全需求:首先,需要明确安全需求。安全需求是系统应该满足的关于保护信息和系统的需求,包括保密性、完整性、可用性、可追溯性、可审计性等。在需求分析阶段,需要与相关的利益相关者进行深入的沟通,以了解他们对系统安全的期望,明确安全需求。·
定义安全设计指南:定义安全设计指南是指指导系统设计的一组规则,它们描述了如何在设计中实现安全需求。安全设计指南应该涵盖各种可能的安全问题,如数据泄露、访问控制、身份验证和授权、密码管理、安全会话管理、输入验证、错误处理和日志记录等。·
实施安全风险分析:安全风险分析包括对可能影响系统安全的各种风险进行识别、分析和评估。可以使用像是威胁建模(ThreatModeling)这样的技术来进行风险分析。比如,使用STRIDE
模型来识别和分类威胁。威胁建模可以帮助我们识别可能的威胁,评估威胁的严重性,以及确定应该采取的措施来缓解这些威胁。·
开展安全审查:安全审查是一种检查技术,用于检查需求、设计和代码是否符合安全需求和指南。在需求分析阶段,安全审查主要针对安全需求、风险分析结果和安全设计指南进行。可以使用像是安全需求审查清单这样的工具来进行安全审查。·
行安全培训和教育:为了确保软件供应链的安全,开发团队需要对安全问题有深入的理解。因此,需要在需求分析阶段就开始进24ISC2023软件供应链安全洞察行安全培训和教育。这包括安全基础知识的培训,如安全原则、常见的攻击手法、安全编程技巧等;也包括针对特定的安全需求和风险的培训,如如何防止
SQL
注入攻击,如何处理敏感信息等。5.3.2
设计分析阶段软件供应链安全风险治理在软件开发生命周期的设计阶段是非常关键的,设计阶段主要是在需求分析的基础上,设计出能满足需求的系统架构和模块。如果在这个阶段就考虑到安全性,就能避免很多后续可能出现的安全问题。以下是在设计阶段如何进行软件供应链安全风险治理的一些关键步骤。·
定义安全设计规则:设计阶段的软件供应链安全风险治理首先要有一套设计规则,这套规则包括所有模块的安全设计原则、安全设计模式,以及每个设计模式对应的安全要求。例如,设计规则可能包括所有处理敏感数据的模块都必须实现强身份验证和访问控制、所有网络通信都必须加密、所有密码必须通过安全的方式存储等。这些规则为设计者提供了一个安全设计的框架,避免他们在设计时因忽略安全性而产生风险。·
进行安全设计评审:设计完成后,需要进行安全设计评审。安全设计评审是一种专门针对设计的安全性进行的审查活动。在这个过程中,安全专家会检查设计是否符合安全设计规则,是否存在可能的安全漏洞,是否已经考虑了所有可能的攻击方式等。安全设计评审可以早期发现设计中的安全问题,避免这些问题在开发和部署阶段产生严重的影响。·
实施威胁建模:威胁建模是一种重要的风险管理方法。在设计阶段,可以通过威胁建模识别设计中可能存在的威胁。例如,可以使用
STRIDE(Spoofing,Tampering,Repudiation,Informationdisclosure,Denialofservice,andElevationofprivilege)模型,这是微软提出的一种威胁建模方法,用于识别和分类系统中可能面临的各种威胁。通过威胁建模,可以更全面地理解和管理设计中的安全风险。·
进行安全原型验证在设计阶段,还可以通过建立安全原型来验证设计的安全性。安全原型是对设计中关键安全功能的初步实现。通过安全原型,可以实际测试设计中的安全机制是否能有效防止威胁,安全性能是否满足需求。例如,可以建立一个原型来测试设计的身份验证机制是否能防止身份伪装攻击,或者测试加密算法是否足够强大等。5.3.3
研发测试阶段在软件开发生命周期中,研发测试阶段是对软件产品的功能和安全性进行深度验证的关键时期。该阶段的目标是找出并解决所有的质量和安全问题,以保证软件产品在部署时能够稳定、安全地运行。为此,我们需要采25软件供应链安全风险治理指南用一系列的方法和工具来进行软件供应链安全风险的治理。·
实施安全开发实践:首先,必须在研发阶段实施安全开发实践。这包括使用安全的编程技术,避免已知的不安全编程习惯,以及在编程中使用安全库和组件。例如,避免在代码中硬编码敏感信息,避免使用具有安全隐患的函数,正确处理用户输入以防止注入攻击等。·
实施有效的安全测试:安全测试是在研发测试阶段必不可少的一步,我们需要对软件产品进行全面的安全测试,以验证所有的安全控制措施是否有效。安全测试可以采用静态应用程序安全测试(SAST),动态应用程序安全测试(DAST),交互式应用程序安全测试(IAST),以及模糊测试(Fuzzing)等方式。·
静态应用程序安全测试(SAST):静态应用程序安全测试
(StaticApplicationSecurityTesting,SAST)
是一种白盒测试技术,用于检测源代码、字节码或二进制代码中的安全漏洞。SAST
可以在软件开发过程的早期(例如编码阶段)被执行,以发现并修复安全漏洞。SAST
工具的主要目标是识别可能导致安全漏洞的代码模式和行为,SAST
工具通过直接检查应用程序的源代码,查找可能导致安全漏洞的编码模式和行为。这通常包括缓冲区溢出、输入验证和清理问题、线程和同步问题、以及其它可能导致系统漏洞的编程错误。其工作流程通常包括以下步骤:代码获取:SAST
工具首先需要获取应用程序的源代码,这可能是通过与版本控制系统(如
Git)的集成,或通过文件上传等方式来完成。代码解析:获取源代码后,SAST
工具需要对代码进行解析,理解其结构和语义。这通常涉及到词法分析、语法分析和语义分析等步骤。漏洞检测:理解代码后,SAST
工具会使用预定义的规则集来检查代码,寻找可能的安全问题。这些规则通常基于已知的漏洞模式和不安全的编程实践。结果报告:检测完成后,SAST
工具会生成一份报告,列出检测到的所有可能的安全问题,以及相关的上下文信息,如漏洞位置、类型和严重性等。SAST
的优势及特点包含以下几个方面:代码级别的分析:SAST
工具对源代码进行深度分析,能够发现隐藏在代码深处的安全问题,这些问题可能在动态测试中无法发现。早期发现问题:SAST
在编码阶段就可以发现安全问题,从而使问题在上线前得到修复,大大降低了修复漏洞的成本,并避免了潜在的安全风险。26ISC2023软件供应链安全洞察全面覆盖:由于
SAST
工具直接分析源代码,因此它可以全面覆盖所有代码,包括那些在动态测试中可能无法触及的代码。自动化程度高:大部分
SAST
工具可以自动化进行大规模的源代码分析,有效提高了检测效率。精准定位:SAST
工具能够准确地指出代码中的问题位置,从而减少开发人员寻找和修复问题的时间。合规性检查:很多行业和地区有严格的代码合规性要求,SAST
工具可以自动检查代码是否符合这些要求。与动态应用程序安全测试
(DAST)
相比,SAST
能够更早地发现问题,可以全面覆盖代码,而
DAST只能检测到在运行时能够达到的代码路径。但是,SAST
可能会
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 广西中考英语5年(21-25)真题分类汇编教师版-单项选择
- 耳鼻喉科咽喉癌康复护理方案
- 中国人造石石英石胶项目商业计划书
- 中国火电厂烟气脱硫项目商业计划书
- 2025年全球海洋污染治理的国际合作与政策协调
- 入职医院笔试题目及答案
- 2025年全球海洋酸化的治理对策研究
- 财政专家测评题库及答案
- 2025年某县盐碱地综合治理试点项目可行性研究报告( 71)
- 皮具布料手袋项目可行性研究报告评审方案设计2025年立项标准案例
- 新加坡《合成数据生成指南》
- 《新课程背景下小学数学作业设计的优化策略》4300字(论文)
- 人教版三年级上册语文期中测试题试卷(含答案)
- 《加油站消防安全教育》培训
- 普拉提大器械培训
- 劳动用工风险的防范培训
- 汽车智能制造技术课件
- 辽宁省沈阳市郊联体2024-2025学年高三上学期11月期中数学试卷(含答案)
- 内蒙古林业人才培养与引进方案
- 第5课用发展的观点看问题2023-2024学年中职高教版2023哲学与人生
- 期中拔尖测试卷(1-4单元)(试题)2024-2025学年六年级数学上册人教版
评论
0/150
提交评论