当前位置: 首页 > 科技观察

DevOps管道攻击呈上升趋势!如何反击?

时间:2023-03-13 14:38:08 科技观察

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