《新思科技:保护供应链安全的六个考虑因素-解决方案指南(11页).pdf》由会员分享,可在线阅读,更多相关《新思科技:保护供应链安全的六个考虑因素-解决方案指南(11页).pdf(11页珍藏版)》请在三个皮匠报告上搜索。
1、保护供应链安全的六个考虑因素解决方案指南|1新思科技在年度“开源安全与风险分析”(OSSRA)报告中指出,开源和第三方软件的使用将继续快速增长。这意味着在软件开发生命周期中,软件开发团队在软件研发周期中无疑会在某种程度上使用一定数量的开源软件。如果您的团队是一个软件供应商,那么使用开源以及在构建应用时所依赖的第三方和商业组件将使您成为供应链的一部分。值得注意的是,这条供应链并不局限于您的团队,而是扩展到了您的开发和交付活动之外,一直延伸到应用的最终用户。您的供应链包含与应用相关的所有内容,或在其组装、开发和部署中发挥作用的任何内容。从这个角度来看,您的供应链还包括由开发团队创建的私有代码和组件
2、、软件使用的API和云服务、以及用于构建该软件并将其交付给最终用户的基础架构。通过对更具体或更传统的供应链示例进行分析,有助于提高软件供应链讨论的清晰度。我们以汽车制造业为例。该行业的供应链始于原材料。原材料供应商向零部件制造商提供金属、棉花、皮革和木材等原材料。零部件制造商使用这些原材料生产螺钉、织物、螺母和螺栓等非汽车级零部件。然后,零部件制造商将这些零部件提供给汽车零部件和系统制造商,由他们负责设计制造汽车所需的汽车级零部件(发动机和变速器等)。最后,这些汽车级零部件将交给原始设备制造商,由他们在装配线上制造汽车并将其运送到销售点,卖给消费者。鉴于这个制造过程涉及面很广,因此会生成很多的
3、风险入口。制造这辆车的零部件质量如何?汽车制造商组装这些零部件的工艺如何?这辆车的实际上路性能如何?它如何应对突发性事故和非理想驾驶条件等情况?对于这条供应链而言,整个过程中所涉及的每个组件、人员、活动、材料或程序都会对最终产品及其用户产生影响。该工作流中任何部分的漏洞都会带来风险,减轻这种风险的唯一方法就是完全了解整条供应链。这一点同样适用于软件供应链。简言之,如果没有全面了解供应链,企业就无法准确或全面地管理其风险。纵观如此众多的活动部件,只要存在一个未经识别的漏洞或设计缺陷,都会带来漏洞被利用的风险。对于这条供应链而言,整个过程中所涉及的每个组件、人员、活动、材料或程序都会对最终产品及其
4、用户产生影响。|2 软件供应链现状2021年,各种安全事件层出不穷。最突出的是,常用的Apache Log4j实用程序中的0-day漏洞,允许攻击者在易受攻击的服务器上执行任意代码。这证明了不安全的开源代码可能会对软件开发行业内部和外部的各种业务产生影响。同时还有一些事件,表明开源软件并不是破坏软件供应链完整性的唯一风险。SolarWinds泄密事件是因为一个被泄露的密码帮助黑客获得了对公司系统的访问权限,从而伺机利用例行日常更新侵入了成千上万客户的敏感数据。在CodeCov供应链攻击中,黑客利用在Docker镜像中发现的密钥凭据,安装了后门,从而获取了客户数据访问权限。面对安全漏洞的增加,拜
5、登总统发布了一项行政命令(EO),针对与联邦政府有业务关系的企业如何保护其软件安全提出了具体指导方针。该命令旨在增强美国网络安全的状况,推动实现全国范围内的企业安全实践重审,范围远远超出了命令中提到的那些企业。这项行政命令还引发了对软件安全实践的整体审查。该命令的关键宗旨是增强软件供应链以及规避软件供应链中的漏洞。该项行政命令在现有的软件安全实践中添加了另一个考虑因素:企业从供应链安全的视角全面审查其现有活动。其结果是在审查和加强安全措施时需要满足更多的强制性要求。确保供应链安全:取得成功的关键因素从根本上讲,确保供应链安全必须考虑如何保护应用远离上游风险,以及如何防止企业产生下游风险。为了帮
6、助您轻松便捷地开始解决供应链安全问题,新思科技确定了有助于安全活动取得成功的六个考虑因素。回答这六个问题可以让您深入了解供应链安全工作中的成功和疏漏,为您的安全活动提供支持。从根本上讲,确保供应链安全必须考虑如何保护应用远离上游风险,以及如何防止企业产生下游风险。|3您使用的开源软件是否安全?了解开源风险由于使用开源软件会带来很大的风险,因此,确保供应链中每一个环节的安全都必不可少。众所周知,开源代码在当今的开发环境中无处不在。因此,毫不夸张的说,您的大多数应用都在某种程度上采用了开源代码。开源的普及给解决供应链安全带来了一个根本隐患。虽然开源的风险与私有代码差不多,但如果不能对其进行充分防护
7、,就会给企业的整体安全带来巨大风险。开发人员很可能在其创建的几乎所有应用程序中都使用开源,这意味着应用程序中有很大一部分不是采用开发团队自己所编写的代码创建的。新思科技2021年开源安全风险与分析(OSSRA)报告证明了这一事实:98%的被扫描代码库中包含开源。顾名思义,开源来自不受企业控制的来源:企业外部的开发人员。成功地保护供应链意味着保持对所有应用组成的可视性,尤其是当它来自企业外部时。这一事实提醒您务必留意,您的开发人员可能会有意或无意地将开源引入其项目之中。开源很可能会进入每个项目,但通常不会引起注意。您合作的软件供应商也是如此;他们的开发人员也会有意或无意地将开源引入到其项目中。虽
8、然这本质上并不是一件坏事,但也确实为上游风险引入开辟了一条途径。您有责任跟踪供应链中的开源组件、许可证和漏洞及其相关风险。鉴于这项工作规模很大,因此,仅靠手动跟踪是行不通的,而且维护起来的人力耗费也极大。强大的软件组成分析(SCA)工具可以自动提供这些关键信息。合适的SCA工具可以帮助用户回答以下问题:用户正在使用什么开源软件、是否有人对其进行积极维护及其来源是否来自有信誉的公司等问题。一个强大的SCA工具能为用户能提供构建应用所有依赖组件的完整可视性,并创建软件物料清单(SBOM)清单来详细说明代码中的内容、来源以及任何相关的安全或许可风险。最重要的是,SCA工具可以持续提供这些信息,确保用
9、户及时地了解到开源风险的最新情况。您有责任跟踪供应链中的开源组件、许可证和漏洞及其相关风险。问题 1问题 1|4了解法律风险除安全风险外,企业或组织还必须考虑法律风险。与安全风险相比,许可证违规和冲突等原因而产生的法律影响通常不太为人所知,但很容易演变成并购、供应商纠纷和分销问题。供应链漏洞产生的法律风险会对软件供应商或分销商的声誉和财务安全构成威胁。这些法律风险通常归咎于对开源的管理不善,因为开源的存在会使知识产权的识别和监控变得相当模糊。作为反面典型的思科与自由软件基金会诉讼案就是这种情况。在这起诉讼案中,思科收购了许可证不合规的开源软件的固件。但是通过继承许可证冲突,思科本可以避免其法律
10、和声誉受到影响。这起诉讼案再次表明,供应链中的任何事物都有可能破坏和颠覆整个业务运营。因此,将软件风险视为业务风险并进行相应处理至关重要。强大的SCA工具有助于识别许可证冲突,从而容易确定必要的解决措施。管理已知漏洞之外的风险已知漏洞是指经常被识别和分类的漏洞。这些漏洞有可能为网络攻击敞开大门。但风险来源不仅限于这些已知漏洞。当开发团队使用过时的组件、近期未更新的组件、或因开发社区人手不足而未能对代码进行积极维护的项目组件时,就可能引入运营风险。除了带来代码质量、可靠性和可维护性问题外,运营风险也是引发安全风险的途径。如果没有开发人员负责查找和修复项目中的漏洞,就相当于没有开发人员负责查找、披
11、露和修复安全缺陷。这一问题在声誉和口碑不佳的项目或无从查证的项目中尤其严重。此类项目很容易被攻击者利用。有效的SCA工具提供安全和法律风险之外的信息,使用户能够更全面地了解开源风险,并使他们能够更加积极主动地开展供应链安全工作。完整的组件信息将包括新版本、提交活动和活动趋势等信息,以便您用户够轻松洞悉组件质量,并了解开源的维护是积极主动的还是不积极的。无意中编码到应用中的安全缺陷和漏洞为诸多攻击打开了大门,例如缓冲区溢出、SQL注入和跨站脚本等攻击。|5您编写的代码是否安全?由于大部分的应用代码都是开源代码,因此,开源攻击面占到总体攻击面的一大部分,这一事实不足为奇。但是,确保开发人员编写的代
12、码能够保护敏感数据和系统免受网络攻击仍然至关重要。无意中编码到应用中的安全缺陷和漏洞为诸多攻击打开了大门,例如缓冲区溢出、SQL注入和跨站脚本等。如果存在系统漏洞,这些安全缺陷会导致敏感数据容易暴露在外。攻击者可以利用这些漏洞注入恶意代码,然后伺机渗透操作系统以及运行该软件的组织所维护的其他系统。企业通常会借助代码检视来试图避免这些问题,希望通过对源代码进行更深入地检视来帮助识别问题。然而,大多数软件开发人员都没有接受过安全编码方面的培训,而且许多安全漏洞过于复杂,无法通过人工代码检视发现和追踪。因此,您需要可以自动检视代码执行情况和数据路径,并识别CWE等安全漏洞的静态分析解决方案,这些解决
13、方案是确保您确信不会引入任何下游风险的重要工具。通过静态分析发现并修复代码中的安全漏洞可为软件安全增加一个宝贵的防护层,但企业应始终专注于不断提高产品安全性。毕竟,防止安全漏洞的最佳方法是从一开始就不要制造它们。因此,企业应投资培训开发人员如何安全地编写代码,并培养安全斗士来带头灌输供应链安全文化。无意中编码到应用中的安全缺陷和漏洞为诸多攻击打开了大门,例如缓冲区溢出、SQL注入和跨站脚本等攻击。问题 2问题 2|6您能否保护自己不受故意插入的恶意代码的伤害吗?Forrester在2021年网络安全事件预测中指出,三分之一的安全漏洞由内部威胁引起。无论是心怀不满的开发人员创建后门,还是黑客入侵
14、系统并发起更大的攻击,精心放置的恶意代码都会给您构建和运行的软件带来重大风险。由于大多数的恶意代码都是由熟悉软件系统的人员植入,因此,易受攻击的系统看起来可能完全正常,导致使用传统工具难以识别出这些风险。恶意代码检测(MCD)是专业团队开展的一项工作,其目的是在生产性的二进制文件、配置和数据中查找可疑结构,同时发现典型安全工具无法找到的恶意代码和内部威胁行为体。除了从内部植入的代码外,MCD还可以评估开源和第三方依赖项,以发现故意被拉入代码库的任何恶意程序包。除检测恶意代码外,完整的MCD服务还能就恶意代码管理和漏洞修复策略提供建议。由于大多数恶意代码都是由熟悉软件系统的人员植入,因此,易受攻
15、击的系统看起来可能完全正常,导致使用传统工具难以识别出这些风险。问题 3问题 3|7您的开发和交付基础架构是否安全?数据存储需求不断增长,部署期限越来越短,而且快速可扩展性变得空前重要。面对这种情况,软件行业越来越依赖云技术为其应用软件提供动力。这种云原生方法在某种程度上意味着采用能够满足可扩展性和敏捷性需求的应用部署方法 这正是容器化和基础架构即代码(IaC)的用武之地。了解哪些软件被打包到容器中容器可以简化应用或微服务的快速部署、修补和扩展工作,还可以可跨越多个不同的操作系统和硬件平台确保一致性能。这使得容器化成为云原生方法的理想解决方案,但也为威胁进入供应链开辟了其他途径。当对应用进行容
16、器化处理时,开发人员最常用的方法是从基础镜像入手 基础镜像通常是采用开源构建的开源镜像。然后再向这个基础镜像添加由第三方代码和自定义代码组成的代码层,并将二者合并到一个以二进制文件形式表示的文件系统中,生成最终镜像。基本的SCA工具将假设代码层中的文件是通过诸如YUM之类的包管理器添加的,并以此为依据来确定软件组成。但这并不完全靠谱。当使用Dockerfile中的某些命令(如ADD、COPY或RUN)将文件添加到代码层时,无需使用包管理器即可完成。只有对容器镜像进行真正的二进制分析才能查看软件组成签名特征,以识别容器镜像中存在的所有开源组件(与其来源无关)和敏感数据。使用基础架构即代码实现安全
17、部署当前,云平台的运行方式中,支持配套基础架构的配置、管理和交付是不可或缺的。为了满足虚拟化和容器编排需求,服务器的工作方式现在都是临时性的,即根据规范按需构建。这些规范由工作团队使用Terraform和Ansible等软件制定,旨在实现服务器操作的自动运行。但它们也可能引入随应用部署规模而成倍增加的安全漏洞,每周可增加数十倍甚至数十万倍的安全漏洞。基础架构配置中无意和有意构建的后门例如未经授权的权限升级或网络暴露,这些基础架构配置的问题并不是新的风险。负责构建和组装服务器配置的人员才是新的风险。这些曾经由IT运维工程师负责的工作现在已由开发团队接手,开发团队使用IaC为其正在构建的应用轻松指
18、定部署配置。问题在于,IT运维工程师在安全配置服务器和预测威胁方面接受过培训并拥有丰富经验,但开发团队在在这方面却经验欠缺,容易导致错误和失察,令攻击者渗透基础架构,进一步靠近应用的用户、操作人员和数据。IaC之所以如此重要,部分原因在于它是由代码组成的。因此,它可以像代码一样编写和读取,以代码的形式保存和并进行版本管理,并且可以作为代码进行分析和检视。正如开发人员应该使用静态分析工具来分析应用源代码以找出安全漏洞一只有对容器镜像进行真正的二进制分析才能查看组件签名特征,以识别容器镜像中存在的所有开源组件(与其来源无关)和敏感数据。问题 4问题 4|8样,他们也应该使用静态分析工具来扫描IaC
19、文件,以发现通常因为培训或经验不足而无法发现的代价高昂的配置错误。您的应用与其他系统进行通信的API和协议是否安全?API和协议允许您在应用和用户之间快速地传输数据和服务。尽管这些方法日益普及,但大多数企业都难以维护其所使用的API清单。因此,他们对哪些应用和用户可以访问哪些服务的控制力有限。缺乏对API的可视性和控制会威胁到关键系统和敏感用户信息的安全性。黑客会伺机利用固有缺陷来执行破坏关键系统或发动中间人攻击(本质上是窃听)等任务,最终目标是窃取密钥、密码、登录凭据和账户详情等信息,以便在供应链的其他地方发起杀伤性更大的攻击。保护供应链免受此类攻击不仅需要了解应用可以使用的API,而且还需
20、要能够发现缺陷并主动修补安全漏洞。IAST 或模糊测试等现代的动态应用安全测试解决方案能够自动测试已知和未知漏洞以及故障和异常。IAST等动态工具还能检测到Web应用和微服务中使用的所有入站和出站端点调用,并以直观可视化的图来呈现,包括内部开发的服务和来自第三方的应用服务。然后,它可以在开发团队开展正常的开发和测试活动时,在后台自动执行安全测试。通过这种方式,可被利用的常见安全漏洞在应用部署之前便会浮出水面并得到处理。缺乏对API的可视性和控制会威胁到关键系统和敏感用户信息的安全。?问题 5问题 5|9您的软件供应链对客户和其他利益相关者是否透明?拜登总统的网络安全行政命令严格要求美国政府使用
21、的任何软件都必须附有SBOM。该SBOM的内容由美国国家电信和信息管理局(National Telecommunications and Information Administration)详细说明,其目的是让消费者了解他们正在采购的应用中包含哪些组件,从而更加准确及时地发现并消除安全与合规问题。虽然这一要求不会直接影响私营部门或美国境外的软件供应商,但这类消费者在制定供应链安全计划和政策时很有可能参考此类法规。除监管义务外,维护SBOM也是供应链安全计划取得成功的最佳实践和基石。如果没有针对应用中所含内容的完整动态视图,您自己、您的供应商和您的消费者都将无法自信地确定您所面临的风险。以近期
22、的Apache Log4j 0-day漏洞为例:拥有SBOM的企业能够在漏洞披露后的几小时内确定风险并采取控制措施,而无需回过头去扫描整个应用组合。仅对包管理器进行依赖项分析是不够的,仅依靠几天、几周或几个月前编译的SBOM也不够。为了使SBOM切实发挥效力,您需要向其中不断地添加隐藏在代码中的依赖项,无论使用哪种语言、依赖项类型或版本。另外,您不能止步于开源代码,还要涵盖和跟踪自定义和商用代码。全面的SCA工具是唯一能够提供此等规模可视性的解决方案。后续行动结合上面列出的问题检查您现有的安全活动、政策和程序,可以帮助您确定供应链安全计划中需要关注的薄弱环节。虽然供应链安全看似可能令人望而却步
23、,但将其分解为清晰简洁的考虑因素,然后使用正确的工具和实践来处理已确定的薄弱环节,这样能够帮助您轻松构建安全的供应链。如果您希望进一步了解供应链及其相关风险,新思科技的供应链安全 文章可以指导您开展安全分析,并推动您对安全实践进行重大更新。除监管义务外,维护SBOM也是供应链安全计划取得成功的最佳实践和基石。问题 6问题 6新思科技软件完整性小组提供集成解决方案来帮助开发团队改变软件的构建和交付方式,从而在应对业务风险的同时加速创新。我们业界领先的软件安全产品和服务是市场上最全面的产品组合,并可与第三方和开源工具互操作,从而允许您利用现有投资来构建最能满足需求的安全程序。只有新思科技能够满足您在构建可信软件时的一切需求。更多信息,请访问: E Middlefield Road Mountain View,CA 94043 USA联系我们:美国销售热线:800.873.8193国际销售热线:+1 415.321.5237电子邮件:sig-2022 Synopsys,Inc.版权所有,保留所有权利。新思科技是Synopsys,Inc.在美国和其他国家/地区的商标。新思科技商标列表可见