网站建设资讯

企业所需领会的软件供应链四大风险

行业资讯 2023-08-19 01:37:47 | 阅读:1100

作者:JFrog大中华区总司理董任远

海内企业要想快速、平安地构建、治理和公布软件,就得构建一个从开发职员到装备一体化的平安、无阻碍的软件流程。开发职员确立的代码只是软件开发的起始,现在,开发职员治理着整个软件供应链。一家企业的软件供应链由许多部门组成,包罗种种泉源:开源包、商业软件、基础设施即代码(IaC)文件、容器、操作系统镜像等。这种多样性意味着企业的软件供应链存在许多风险点,而且由于错误、疏忽、质量差或恶意攻击,平安威胁涉及面异常普遍。

软件供应链风险趋势

领会易受攻击的风险点位置,对于保障软件供应链平安异常主要。然则,行使单点解决方案来逐一应对的做法,就犹如打地鼠游戏,被击碎的威胁可能在未注重的其他地方再次泛起。

为周全珍爱供应链免受威胁,要重新到尾始终保持小心,甚至在开发者挪用外部软件包之前就要最先注重。岂论是在专有代码开发、代码编译和暂且构建环节,照样在整体运算流水线中举行公布和分发,直到生产,甚至部署后,都要事无巨细地关注。除了展现破绽和其他平安问题,还需要知道详细场景,以便判断出真正的风险。

软件供应链威胁两大主要途径

第一种是行使供应链的“开放性”来获取攻击者设计攻击的软件信息。一个常见的例子是,攻击者试图远程映射一个网络服务,或者释放一个面向的软件,从而熟悉其使用的开源包。然后,他们就能轻松地找到与这些软件包相关的通用破绽披露(CVE)信息,领会软件包的平安设置,甚至实验寻找未知的破绽(又称零日破绽)。当充实掌握有关破绽行使路径的信息后,攻击者就可以进入第二阶段了。

第二种是攻击者会行使供应链,将恶意软件包和恶意代码注入公共或私人资源库,或改变现有的代码并将恶意部门纳入其中。

四大突出风险威胁软件供应链平安

1. 已知破绽

第三方组件(如开源和商业软件)可能带有非有意性子的破绽,其中许多是已知的,并已在NVD和VulnDB的破绽数据库中被果然追踪。

可以通过软件组件剖析(SCA)解决方案来揭破这种风险,该解决方案可以识别特定代码或制品的软件物料清单(SBOM),并将其与已知的CVE联系起来,主要是将已识其余软件元数据与公共CVE数据库举行交织引用。

然则,还需要获得足够多的信息以便制订基于风险的决议,并使之自动化。一个可扩展的数据库是必须的,不仅可以追踪更多风险,还包罗举行深入地平安研究,有助于领会能够降低这些风险的所有方式,从而选择最适用且最具成本效益的方式。

同样主要的尚有场景剖析,以此确定破绽被行使的可能性。例如,组件中易受攻击的功效可能不会被应用程序使用,或者易受攻击的程序从未在生产版本中运行,或者特定的设置会导致给定的CVE失效。

也可以从看似平安的组件中识别出可能的运行风险。例如,一个良久没有维护的开源包可能未针对平安问题举行充实监控。在此情形下,破绽是不确定的,但潜在的威胁是可预见的。

这些已知的和可预期的风险能够而且应该在以下几个方面发现:

·源代码:将平安小心性左移到代码确立之时,可以节约后期修复的成本。平安团队可以构建一个获批第三方组件的内部资源库,开发职员可以通过对其集成开发环境(IDE)的扩展来获得对微弱依赖项的警报。虽然本质上是不完整的,但这种方式有助于制止已知的风险。需注重的是,它不能能是详尽的,由于左移的平安工具通常会闪开发者肩负成百上千的事友谊务,而这些事友谊务从平安的角度来看纷歧定有影响,由于它们会忽略破绽或平安问题的完整场景。

·二进制文件:对要害二进制存储库(包罗第一和第三方组件)中的所有软件包、构建和图像举行自动软件身分剖析(SCA)扫描,确保整个软件供应链受到珍爱,免受已知破绽和运营风险的影响。作为应用程序生产阶段状态的最准确的代表,二进制文件能够对风险举行最高质量的真实剖析,并提供更准确的场景。借助二进制文件,还能剖析对左移工具和生产中平安解决方案来说是“盲点”的问题。

2. 未知破绽(零日破绽)

编码中的错误很常见。逻辑缺陷、不良加密和潜在的内存损坏都市无意中导致应用程序易受恶意攻击,如远程代码执行(RCE)和拒绝服务(DoS)。这些错误可能隐蔽在第一和第三方代码中而不被发现,甚至在被识别前已隐蔽数年。

这些问题被称为“零日”问题,部门缘故原由在于其存在时间长,但也因其紧迫性,而意味着团队能够在已部署软件中对其举行修复的时间为零。

为捕捉和防止潜在的零日问题,必须将差异二进制文件、历程和服务之间的流通性纳入考量,对每个组件与应用程序举行测试。静态代码剖析(审查代码源)和动态代码审查(测试运行中的代码)工具通常各自能够识别约85%的缺陷,但他们通常会在每个版本中产天生千上万的条目,而且需要专业知识来阐释效果并确定优先顺序。不外,一个可能存在的破绽,但并不意味着它一定可以会被攻击。

更先进的手艺连系了符号执行、数据流剖析和自动模糊测试,可以显着降低误报率,并识别典型 SAST/DAST 无法发现的破绽。连系对源代码和二进制文件的剖析,也可以产出更完善的效果,并辅助开发者、平安团队和生产司理专注于修复主要问题。

纵然竭尽所能,但照样可能会发现新的破绽并影响到已部署的软件。延续的SCA扫描有助于确保迅速获得任何会影响生产阶段软件的最新CVE通知。厚实的SBOM元数据有助于迅速领会破绽对机构的所有影响,并在整体应用程序库存中应对或解救。将代码和制品库适当举行整合,可以在整个机构内迅速接纳行动,应对已发现的威胁。

3.  非代码问题

并非所有的破绽都存在于代码之中,还可能存在于二进制文件(如EPMs)、jar文件容器、固件以及支持性制品(如设置文件或IaC文件)中。错误设置、不良加密、秘钥和私钥的露出,或操作系统问题都市导致受攻击面泛起。

这些人为错误的副作用通常是由于缺乏关注而造成,并不是恶意为之,而且通常是在主要开发的热门之外引入的。用于测试的设置可能被不经意地推广到生产阶段。这些风险通常易于解决,但难于被发现,也更难于恢复。

纵然是优越的意图也可能导致恶意的结果,例如,在公共服务器上露出密码,就可能招致恶意代码注入,从而露出敏感数据。类似名称的软件包之间的依赖项混淆也可能在非30恶意的情形下发生,稀奇是当软件包库剖析设置不良的情形下。

在这些问题生长到生产阶段之前,及早发现是至关主要的。需要像看待代码中的破绽一样认真看待这些潜在风险,并将这种小心性纳入流水线端到端平安态势中。

4.  恶意代码

有意的威胁(无论是来自外部注入攻击照样恶意的内部职员)往往是最难发现的,因其经常被掩饰,而显示为已履历证的组件。特洛伊木马、机械人程序、勒索软件、加密软件和特工软件的流传通常是以较为良性的破绽类型作为有用载体。行使有害的软件包来植入常用存储库,入侵维护员账户以改变现有软件包,或将代码注入被损坏的源存储库,都是后门接见攻击的常用方式。

在部署后发现上述攻击,通常为时已晚,损害已经造成,而且可能价值异常高昂。这就是为什么应该在整体流水线中对其举行珍爱:

·接见控制:内部软件包库必须通过整个机构内始终一致的权限和平安认证(包罗多因素认证),将写入权限限制为要害角色和团队成员。

·署理存储库:缓存外部存储库(如Maven Central和npm)可提供不能改动的第三方资源快照,因此任何后续的恶意笼罩都市立刻展现出来。

·测试和剖析:先进的静态和动态剖析工具可以检测和符号恶意代码和有问题的软件包。JFrog平安研究团队已经通过自身开发的工具,在公共软件包库中发现并披露了1300多个恶意软件包。

软件供应链风险治理的端到端小心性

虽然这些风险趋势中的一些问题能够一次性解决,但单点解决方案只能作为警报系统,而且只在需要之处才气起到辅助。

鉴于同样的缘故原由,单独的平安解决方案能够起到的辅助也是有限的,因其能力局限有限,因此无法辅助剖析和判断整个软件供应链中风险的完整场景。当与存储库和软件管明晰决方案脱节时,纵然平安单点解决方案异常准确,也很难针对所发现的问题接纳有用的行动来举行解救和应对。

周全的平安态势不能只关注流水线中伶仃的各个点,必须能够将差异问题和平安方面的发现这些众多点联系起来,而这是单独的小众解决方案所无法做到的。

为维护软件平安,就需要做到端到端的小心,从开发者的IDE一直到生产阶段,在开发和生产环境中执行一致的风险监视并落实应对措施。平安解决方案必须应用于整个软件供应链,并能够大规模接纳行动。为确保整个机构内的一致性,其运营必须围绕所有二进制文件的单一可信泉源,并与开发运维工具深度集成。

关于JFrog

JFrog Ltd.(纳斯达克股票代码:FROG)的使命是缔造一个从开发职员到装备之间流通无阻的软件交付天下。承袭“流式软件”的理念,JFrog软件供应链平台是统一的纪录系统,辅助企业快速平安地构建、治理和分发软件,确保软件可用、可追溯和防改动。集成的平安功效尚有助于发现和抵御威胁和破绽并加以解救。JFrog的夹杂、通用、多云平台可以作为跨多个主流云服务提供商的自托管和SaaS服务。全球数百万用户和7000多名客户,包罗大多数财富100强企业,依赖JFrog解决方案平安地开展数字化转型。一用便知!