2017年,网络攻击者在金融软件包中植入了NotPetya恶意蠕虫。当许多企业更新他们的软件时,他们就会被感染。结果,NotPetya蠕虫迅速蔓延,给全球企业造成了数十亿美元的损失。美国政府称这是“历史上最具破坏性和代价最高的网络攻击”。三年后,网络攻击者破坏了SolarWinds的Orion网络监控工具集的软件升级过程。它带来的伤害也是非常广泛的。全球网络安全咨询公司NCCGroup的高级安全顾问ViktorGazdag表示:“访问软件开发管道可以让网络攻击者有机会访问网络基础设施并获得知识产权。”针对DevOps管道的网络攻击呈上升趋势。攻击通常是孤立的,并且依赖于高度积极和熟练的攻击者。事实上,DevOps管道是犯罪团伙的主要目标。根据安全服务商Argon上个月发布的一份研究报告,与2020年相比,2021年网络攻击者对软件供应链的攻击次数将增加300%以上。常见的策略包括植入恶意代码或利用预流行的开源软件包中存在的漏洞,危及持续集成(CI)/持续交付(CD)管道工具,以及利用硬编码凭据和其他错误配置和安全问题。开源组件通道是网络攻击者的热门目标。根据Sonatype去年9月发布的一项研究,与2020年相比,去年对开源软件供应链的攻击增加了650%。它的攻击面很大。据Sonatype称,超过3700万个组件和包驻留在前四大开源生态系统中。开源软件下载量去年达到2.2万亿次,与2020年相比增长了73%。为什么DevOps管道易受攻击Gazdag表示,软件开发人员通常拥有更高的权限级别和访问权限。如果正在生产的软件是为外部使用而设计的,那么影响可能会大得多。“网络攻击者也有机会在终端应用中站稳脚跟,”他说。因此,DevOps流水线应该具有更高级别的安全性。但相反,他们有很多薄弱的安全措施和暴露的基础设施和凭据。“如果你使用Shodan并搜索开发工具‘Jenkins’,你会看到很多Jenkins基础设施在互联网上可用和可访问,”Gazdag说。持续集成(CI)/持续交付(CD)基础架构通常没有像业务的其他领域那样受到同等程度的关注。现代开发实践使情况变得更糟。Gartner分析师DaleGardner表示:“随着企业转向DevOps,有一种趋势是放松我们在开发方面的一些控制。我们想要灵活,而DevOps的方法是我们试图快速发布代码。约束和控制阻碍了这一点。”DevOps管道的攻击类型根据Linux基金会开源供应链安全主管DavidWheeler的说法,三种最常见的攻击类型是依赖混淆、域名仿冒和恶意代码注入。依赖混淆,也称为命名空间混淆,是指网络攻击者找出专有企业软件包的名称,并创建一个具有相同名称和较晚发布日期的开源软件包。一些管道工具会自动尝试下载最新版本的软件包,并最终下载带有病毒的软件包。Typosquatting是指网络攻击者创建一个名称与真实名称几乎相同的开源软件包,希望受害者输入错误并使用错误的库。恶意代码注入是指网络攻击者将恶意代码添加到合法的开源项目中。他们可以通过窃取项目维护者的凭据并以他们的名义上传代码、自愿参与项目或篡改开源开发工具来做到这一点。开源软件中的漏洞开源软件存在许多网络攻击者可以利用的漏洞。应用程序安全测试公司Synopsys去年4月审查了1,500多个企业软件项目的代码,包括内部和商业项目,发现98%的开源软件包含一些开源代码。对于普通应用程序,75%的代码库是开源的。更可怕的是,Synopsys分析的代码库中有84%至少存在一个漏洞。那是在Log4J漏洞曝光之前,安全研究人员称该漏洞是多年来最危险的Java攻击。此外,91%的开源软件在过去两年中没有进行过任何维护。根据今年2月FlashpointRisk-BasedSecurity发布的一份调查报告,2021年将披露超过28,000个新漏洞,创历史新高。这些漏洞中有4,000多个可以被远程利用,包括可公开利用和记录的解决方案信息。分析报告称,Log4j漏洞特别危险,其影响超过所有其他漏洞。该库出现在6,200多种其他软件产品中,供应商咨询的数量不断攀升。如何保护软件开发管道企业应该如何保护其软件开发管道?它从对开发人员的教育和培训开始,开发最佳安全实践,如双因素身份验证和代码审查,并安装监控工具来标记可疑活动。托管服务提供商Ensono的网络安全高级主管DavidGochenaur表示,它始于开发人员。在代码开发和部署过程的安全性方面,内部开发人员和第三方软件商店都需要监督,并且需要以不同的方式处理这些问题。开发商。Ensono不销售软件,但它需要定制软件来维护和管理其客户的门户。这些门户的安全性至关重要。“我们为许多客户管理系统并收集有关这些系统状态的数据并将其放入门户中,”Gochenaur说。这意味着Ensono的工具可以访问这些客户系统,使Ensono成为网络攻击者的目标。高价值目标。Gochenaur说,“因为有这么多客户,所以要确保客户A不能输入客户B的数据。我们的一些客户从国家安全角度和隐私角度来看非常敏感。”所以在审核厂商的时候,第一个挑战是非常严格的。“你必须非常了解他们,SolarWinds漏洞就是一个很好的例子,还有许多其他第三方没有很好地保护自己并被用作威胁参与者的切入点的例子,”他说。“这包括外部软件开发公司,”Gochenaur说。“当我们使用第三方服务时,我们会非常严格地审查他们,以确保他们有适当的流程和控制,并且我们从他们那里得到的任何东西都是安全的,其中包括审查他们的测试程序和他们在开发环境中实施的安全控制.我们还在合同中包含了缺陷罚款。然后,对于公司自己的开发人员来说,最大的问题是无法使用可公开访问的代码库,Gochenaur说,“因为任何东西都可以存在,并且可能有一些代码看起来非常酷,但它允许网络威胁参与者访问Gochenaur说,开发人员可能会采取许多其他步骤来帮助他们生成更安全的代码。一种有助于提供安全培训和激励的策略是由第三方和内部团队进行渗透测试。对正在开发的内容的质量产生巨大影响,”他说。事实上,当Gochenaur对公司软件进行渗透测试时,开发人员总是要求坐下来观察白帽黑客的工作情况。他说,“他们想了解他们所做的事情正在做并从渗透测试人员发现的漏洞中学习。它为开发人员提供了不同的思维方式。现在,当我引入第三方服务时,我的要求之一是技术团队可以看到正在发生的事情并向第三方学习。”使用适当的工具和控件来帮助公司的开发人员做出正确的决策并确保他们的安全,Ensono实施了多项安全控制措施。例如,多因素身份验证有助于防止外部人员访问DevOps管道。该公司使用私有代码库,以便开发人员可以从已经过审查和批准的代码中进行选择。Ensono还有一个专门负责修补系统的团队,以确保部署的所有内容都是最新的。“我们定期扫描整个环境以查找漏洞,”Gochenaur说。Capgemini的DevOps架构师VenkyChennapragada表示,组织还可以做其他事情来帮助锁定他们经常错过的开发管道。例如,组织应该为非生产暂存和生产提供单独的管道,并限制谁可以访问这两个系统。为了进一步锁定访问权限,企业应使用企业级访问管理系统,例如ActiveDirectory或LDAP。许多企业为软件开发团队提供单独的用户数据库或使用内置的用户管理工具,拥有单独的系统更容易。“如果我要与ActiveDirectory或LDAP集成,就会有安全审计。一些工程师可能想绕过安全审计,因为他们没有正确安装东西,”Chennapragada说。基于角色的访问是开发人员会觉得烦人的事情。另一种控制方法。“无需创建用户组和角色就可以轻松授予完全访问权限,但这是一种不好的做法,”Chennapragada说。最后,Chennapragada建议企业仔细跟踪进入其软件的所有组件,尤其是开源库。“开发人员倾向于在他们的软件中包含开源代码,这些代码可能存在错误和安全漏洞,”他说。外部库要接受安全扫描和代码审查,开发人员应该限制自己使用经过认证的依赖项。而其他有吸引力的工具包括操作系统变体和插件。例如,Linux有数百万种不同的风格。“确保他们使用的任何版本都经过强化和更新,”Chennapragada说。Jenkins是一种流行的开发工具,它是一种带有各种插件的开源自动化服务器。插件可能非常脆弱。网络攻击者可以将恶意代码放入接管受害者系统的插件中。”网络安全提供商ImmuniWeb的首席执行官IliaKolochenko表示,有许多可用的安全控制和流程不会花费太多或产生太多开销,但做一些深思熟虑的计划或培训是必需的。例如,AWS以很少或免费的方式提供内置的安全控制和工具,他说。“人们不会选择它们,因为他们不知道这些工具,或者不要认为它们是必需的,或者很难挖掘和利用它们。“云计算使部署持续安全监控和事件响应等工具变得更加容易,”他说。可以检测到可疑活动并立即停止,用干净的文件替换,并在不脱机的情况下继续进行。云计算提供了许多很好的机会来自动化他们的持续安全监控和事件响应,但有些人没有使用它。“提供软件物料清单(SBOM),还要扫描漏洞很多业内人士一直在推动软件物料清单(SBOM)。去年5月,美国总统拜登发布行政命令,提供软件物料给美国政府部门的清单(SBOM)。两天后,云原生计算基金会发布了一份最佳实践白皮书,建议所有供应商尽可能提供软件物料清单(SBOM),并明确直接链接到依赖项.软件材料清单(SBOM)将帮助企业在其环境中找到网络易受攻击组件的实例。例如,Log4j于去年12月打了补丁,但截至2月11日,40%的下载仍然存在网络漏洞“如果技术咨询公司AscentSolutions的网络安全策略师兼IEEE高级会员KayneMcGladrey说:“你买一条面包,包装上就有成分表。”采用软件还需要com公司了解软件物料清单(SBOM)并做出明智的风险决策。“McGladrey期望具有前瞻性思维的软件供应商开始将这些列表包含在他们的软件中,因为这是他们的客户希望看到的。他建议软件供应商提供有关他们的软件应该和不应该如何运行的信息。他说,“如果软件供应商提供了他们软件的正常行为列表,我们可以说,“这个软件表现异常,因为它连接到一个它不应该连接到的服务器。””无论软件物料清单(SBOM))成为强制性的,企业应该扫描他们的软件是否存在已知漏洞和其他潜在的安全问题。现在所有主要的扫描软件都在寻找易受攻击的Log4j数据包。很明显,许多企业并没有使用这些工具。Kelly说,“虽然补丁已经发布两个月了,一些公司还在使用旧版本的Log4j,这表明他们在保护代码方面远远落后。“
