2017今年年中,俄罗斯国家支持的攻击者在乌克兰金融软件包中安装了恶意蠕虫。当企业更新其软件时,它将被成功感染。从那时起,NotPetya蠕虫病毒的迅速传播给世界造成了数十亿美元的损失。白宫被称为历史上最具破坏性和最昂贵的网络攻击。
三年后,与俄罗斯有关的攻击者劫持了另一个企业软件SolarWinds的Orion毫无疑问,网络监控工具集的软件升级过程再次产生了广泛而深远的影响。针对此事,全球网络安全咨询公司NCC Group高级安全顾问Viktor Gazdag访问软件开发管道给了攻击者接触网络基础设施并获得知识产权的机会。
针对DevOps管道攻击正在增加
人们盲目地认为,这种攻击只是孤立的,并依赖于高度专业和熟练的攻击者。不幸的是,DevOps管道不仅是国家行为体的攻击目标,也是网络犯罪团伙的热门目标。
根据Argon公司于1月份发布的一项研究显示,与2020年相比,2021年针对软件供应链的攻击增长了300%以上。常见的攻击策略包括,在流行的开源包中植入恶意代码或利用已存在的漏洞、破坏CI/CD使用硬编码凭证等错误配置和安全问题的管道工具。其中,开源组件通道是一个特别受欢迎的目标。
根据Sonatype根据公司2021年9月发布的一项研究,2021年对开源软件供应链的攻击比2020年增加了650%。攻击面很大。数据显示,超过3700万个组件和包位于Top 4开源生态系统。2021年开源软件下载量达到2.2与2020年相比,万亿次增长73%。
为什么DevOps管道易受攻击
软件开发人员通常有更高的权限级别和访问权限。如果生产的软件是为外部使用而设计的,影响可能会大得多,攻击者有机会在最终应用程序中站稳脚跟。
因此,DevOps管道应具有更高水平的安全性。不幸的是,它们有许多薄弱的安全实践和暴露的基础设施和证据。例如,您使用它Shodan搜索开发工具“Jenkins你可以在互联网上看到很多可用和可访问的东西Jenkins基础架构。
同样糟糕的是,很多时候,CI/CD与企业其他领域一样,基础设施也没有程度的关注。随着现代发展实践的不断推进,情况越来越糟。
Gartner分析师Dale Gardner解释说:随着组织的转向DevOps,出现了一种‘放松开发的一些控制措施’趋势DevOps方法是我们试图快速获取代码的产物。但人们认为限制和控制措施阻碍了这一点,因此有放松的趋势。
针对DevOps管道攻击类型
根据Linux基金会开源供应链安全主管David Wheeler对DevOps管道最常见的三种攻击类型是依赖项混淆、误植域名和恶意代码注入。
依赖项混淆(Dependency confusion)
说到供应链攻击,必须提到依赖项混淆(也称为命名空间混淆),特别是由于攻击的简化和自动化特性,它越来越受到攻击者的青睐。由于在多个开源生态系统中发现的固有设计缺陷,依赖项混淆可以通过最小的努力甚至自动化发挥作用。
简而言之,如果的软件构建使用私有和内部创建的依赖项,而该依赖项不存在于公共开源存储库中,则依赖项的混淆将起作用。攻击者可以在公共存储库上以相同的名义注册更高版本号的依赖项。那么,攻击者创建的更高版本号(公共)依赖项很可能是,而不是您的内部依赖项将被拉入您的软件构建。
2021年2月,通过利用PyPI、npm和RubyGems这种简单的缺陷在常见的生态系统中,道德黑客Alex Birsan成功入侵35家大型科技公司,获得漏洞赏金1.3万多美元。Birsan经过几天的研究天后,成千上万的依赖项混淆模仿包开始涌入PyPI、npm 等生态系统。
解决依赖项混淆的方法有很多:
在攻击者之前,首先在公共存储库上注册所有私有依赖项的名称。
使用软件开发生命周期等自动化解决方案(SDLC)防火墙,防止冲突依赖项目名称进入您的供应链。
开源存储库的所有者可以采用更严格的验证过程,并定义命名空间/范围。例如,如果你想CSO在命名空间和范围内注册依赖项,开源仓库可以首先验证注册开发人员是否有权使用CSO以此为名。
误植域名(Typosquatting)
Typosquatting中的“typo指人们在键盘上打字时可能会犯的小错误。Typosquatting也被称为URL劫持、误植域名、域名模仿、毒刺网站或虚假URL,在这种网络犯罪形式中,黑客使用故意拼写错误的知名网站名称来注册域名。黑客这样做是为了吸引未知的访问者访问替代网站,通常是为了恶意。访问者可以访问以下两种方式之一的替代网站:
无意中将热门网站的名称错误输入网络浏览器,如 gooogle.com 而不是google.com。
网站被引诱作为更广泛的网络钓鱼攻击的一部分。
黑客可能会模仿他们试图模仿的网站的外观,并希望用户泄露个人信息,如信用卡或银行细节。或者该网站可能是包含广告或色情内容的优化登录页面,为所有者创造高收入来源。
最早最著名的Typosquatting涉及攻击示例Google。2006年,网站劫持者注册了网站Goggle.com,作为钓鱼网站的操作。多年来,Google名称的变体foogle、hoogle、boogle、yoogle所有这些都是因为它们靠近qwerty 键盘上的字母 g已注册,试图转移搜索引擎的一些流量。
此外,还有麦当娜和帕丽斯·希尔顿和珍妮弗·包括洛佩兹在内的名人也成了过去Typosquatting受害者。在2020年美国总统大选之前,许多候选人也以恶意动机的名义被犯罪分子设定Typosquatting域名。
对于组织来说,最好的防御策略是尽量保持领先于Typosquatting攻击:
在网站劫持者注册你域名的错别字版本之前。购买重要和明显的错别字域,并将这些重定位到您的网站。
使用ICANN 监控服务(互联网名称与数字地址分配机构)。网站所有者可以使用ICANN商标清算了解其名称在不同领域的使用情况。
使用SSL证书发出信任信号。SSL该证书是展示您网站合法性的绝佳方式,它们将告诉最终用户他们与谁连接,并在传输过程中保护用户数据。
通知利益相关者。如果您认为有人假装(或准备假装)您的组织,请告知您的客户、员工或其他相关方注意可疑的电子邮件或在线钓鱼网站。
关闭可疑网站或邮件服务器。
注入恶意代码
代码注入是指攻击者在合法开源项目中添加恶意代码。他们可以通过窃取项目维护人员的证据并以其名义上传代码,或篡改开源开发工具来实现这一点。
20212000年,明尼苏达大学的研究人员被踢出Linux贡献群体,Linux他们之前提交的所有内核社区也被撤销了Linux由于他们故意提出有缺陷的补丁,这些补丁将再次出现Linux在核源代码中注入漏洞。尽管该事件被积极阻止,但它证实了开发人员分布广泛,没有足够的宽带来审查他们提交的每个代码,这可能是缺陷或完全恶意的。
更重要的是,社会工程学可能来自上述案例中最不可怀疑的来源——.edu后缀的电子邮件地址似乎来自可信的大学研究人员。
另一个突出的案例是任何?GitHub所有为项目做出贡献的合作伙伴都可以在发布后更改版本。需要强调的是,GitHub项目所有者的期望是,大多数贡献者可以真诚地向他们的项目提交代码。但可以说一只老鼠坏了一锅汤,只要合作伙伴不规则,就会损害许多人的供应链安全。
如何保护软件开发管道?
企业组织应该做些什么来保护他们的软件开发管道?从教育和培训开发人员开始,建立最佳实践(身份验证和代码审查两个因素),并安装监控工具来标记可疑活动。
从开发人员开始
内部开发人员和第三方软件商店都需要监督代码开发和部署过程的安全性。
当使用第三方软件开发公司时,我们需要非常严格地审查它们,包括检查它们的测试程序和它们在开发环境中实施的安全控制,以确保它们有适当的过程和控制措施来交付我们足够安全的东西。
对于公司内部开发人员来说,最大的问题是不要使用可公开访问的代码存储库,因为它允许威胁参与者访问您正在做的任何事情。
此外,企业软件的渗透测试还可以进一步提高开发安全性。事实上,在企业软件的渗透测试中,开发人员总是要求参与测试,观看白帽黑客,因为他们想知道自己在做什么,并从渗透测试人员发现的漏洞中学习。它给了开发人员不同的思维方式。
使用适当的工具和控件
为了帮助公司开发人员做出正确的决定,确保其安全,企业组织可以实施多种安全控制措施,如多因素身份验证,以防止外部访问DevOps管道;使用私有代码库,使开发人员能够从已审批的代码中选择。
有条件的企业还可以组建专门负责修补系统的团队,定期扫描整个企业环境以寻找漏洞,同时确保部署的所有内容都是最新的。
此外,企业组织还可以部署其他措施来保护开发渠道,如为非临时生产环境和生产环境设置单独的管道,并限制可访问这两个系统的人员。为了进一步锁定访问权限,公司还应使用企业访问管理系统,如Active Directory或LDAP。
最后,建议企业组织完全跟踪软件的所有组件,特别是开源库。开发人员倾向于在软件中包含开源代码,但可能存在错误和安全漏洞。
要求获取软件材料清单(SBOM),但也要扫描漏洞
许多业内人士一直在实施和倡导软件材料清单(SBOM)。去年5月,拜登总统发布了一项行政命令,要求向联邦政府提供软件SBOM。两天后,云原生计算基金会发布了最佳实践白皮书,建议所有供应商在可能的情况下提供SBOM,并提供明确直接的依赖项链接。
SBOM为了做出明智的风险决策,帮助公司在其环境中找到易受攻击组件的例子。Log4j漏洞早在2021年12月就修复了,但截至2022年2月11日,40%的下载仍是易受攻击的版本。
有远见的软件供应商正在开始将这些列表包含在他们的软件中,因为这是他们的客户想要看到的。当然,软件供应商可以进一步提供关于他们的软件应该如何运行以及不应该如何运行的信息。
不过,无论SBOM企业组织应扫描其软件,以查明已知漏洞和其他潜在的安全问题。Log4j漏洞问题的持续蔓延表明许多组织在保护代码方面落后了多远!
本文翻译自:https://www.csoonline.com/article/3649798/why-devops-pipelines-are-under-attack-and-how-to-fight-back.html如果转载,请注明原始地址。