对于组织来说,更多地了解他们所依赖的软件供应链以及保护它们所需的步骤至关重要。在过去几年中,我们看到恶意行为者利用软件供应链中的漏洞来促进对组织的攻击。但是,重要的是要记住,这些攻击并不是一个新现象。事实上,它们已经存在了几十年。因此,保护我们所依赖的软件的需求并不新鲜,尽管业界将注意力转向这个问题。
软件供应链攻击也并不简单。鉴于软件供应链高度复杂,并且由许多不断变化的组件组成,恶意行为者可以采取的途径很多。例如,软件工件部分由从开源软件存储库下载的组件组成。鉴于开发人员使用它们的频率以及开发组织对它们的信任,这些平台已成为一种受欢迎的攻击途径。据GitHub称,85-97%的企业代码库来自开源存储库。其中两个存储库,npm 和 PyPI,在过去四年中,其平台上的攻击数量激增了近 300%,影响了全球数千个软件供应链。
现在常见的软件供应链攻击的一个例子是IconBurst,这是去年的一个重大攻击,在npm上发现了二十多个域名仿冒的软件包。与最近的其他攻击一样,IconBurst攻击者使用域名仿冒 – 将恶意包上传到名称与同一平台上流行和合法软件包非常相似的存储库。开发人员急于完成他们的工作,经常被欺骗下载这些错别字样的软件包。例如,在 IconBurst 活动的情况下,发现的恶意软件包之一被下载了超过 17,000 次!
鉴于软件供应链攻击的数量显著增加,组织必须更加努力地了解这些攻击的工作原理,然后采取措施保护其软件供应链免受损害。
告别“左移”
首先,开发组织需要重新评估“左移”的口号。
多年来,行业领导者一直在推广“左移”的概念,呼吁将应用程序安全性与应用程序开发相结合:将安全开发工具和实践嵌入到持续集成/持续交付 (CI/CD) 流程中。但时代在变,行业开始明白,虽然左移是必要的,但仅仅保护软件供应链是不够的。
“不要左移;到处转移!“WeHackPurple的创始人兼首席执行官Tanya Janca说。Janca 是作为 Techstrong 最近小组的成员在 Predict 2023 虚拟活动中发言的,“软件供应链:一切都与代码有关”。Janca指出,该行业过去对“左移”的执着以及由此造成的安全差距,因为对软件供应链的威胁不仅发生在开发过程中,而且发生在整个软件发布过程中。
事实上,左移的概念可能会对开发组织和开发人员造成伤害:将保护应用程序的工作完全留给他们。“期望开发人员编写完美的代码是不公平的,”该小组的另一名成员Contrast Security的联合创始人兼首席技术官杰夫威廉姆斯说。
保护软件供应链的新方法
对于希望保护他们所依赖的软件供应链的组织来说,他们必须选择正确的工具。但是,许多安全开发和应用程序安全测试(AST)技术不会削减它。例如,动态或静态应用程序安全测试(DAST / SAST)等工具是安全开发生命周期(SDLC)的关键组成部分。但是,它们并不能全面涵盖所有供应链威胁,包括软件篡改以及受损的开源和第三方库带来的风险。另一方面,软件组成分析(SCA)等工具可以帮助审查开源组件,但通常无法检测到恶意模块或提供软件供应链的全面安全覆盖。当你以 DevOps 的速度发布代码时,知道你的应用程序在事后依赖于恶意的开源包是没有什么安慰的。
这就是为什么应该考虑超越这些功能的现代工具的原因。“这是关于为开发人员提供成功所需的工具,”GitLab的CPO David DeSanto在活动中说。该领域的专家一致认为,改变是必要的,但开发人员和开发团队并没有为成功做好准备。
DevOps领域经验丰富的从业者Mat Matthews表示:“虽然开发人员负责确保代码干净,但需要一个跨职能团队,特别关注安全性,以减少针对供应链攻击的攻击面。
为了实现这一目标,组织需要依靠其安全运营中心(SOC)在帮助保护软件供应链方面发挥更大的作用。开发和 SOC 团队之间的密切合作是为组织的软件供应链提供端到端安全性的最可靠方法。而且,如果提供合适的工具,SOC 和开发团队一起工作将更好地扫描软件包;提高开发流程的可见性;检测与设定基线的偏差;并在可能的供应链妥协对软件发行商及其客户造成实际伤害之前寻求妥协。
随着对软件供应链的威胁和攻击的发展,保护也必须如此。现代软件供应链安全计划应旨在保护整个软件开发过程,从开发人员 IDE 及其插件到开源组件、CI/CD 工作流和发布管道,同时还应具备在开发生命周期的任何阶段发现和寻求妥协的能力。只有这样,开发团队才能防止像SUNBURST,IconBurst和此后发生的无数其他有害攻击。