加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 服务器 > 安全 > 正文

为什么DevOps管道受到网络攻击以及怎么反击

发布时间:2022-07-26 15:37:12 所属栏目:安全 来源:互联网
导读:在2017年,网络攻击者在一个金融软件包中植入了NotPetya恶意蠕虫。当很多企业更新他们的软件时,就会被感染。NotPetya蠕虫病毒因此迅速传播,并为全球各地的企业带来数十亿美元的损失。美国政府称其为史上最具破坏性和代价最高的网络攻击。 在三年后,网络攻
  在2017年,网络攻击者在一个金融软件包中植入了NotPetya恶意蠕虫。当很多企业更新他们的软件时,就会被感染。NotPetya蠕虫病毒因此迅速传播,并为全球各地的企业带来数十亿美元的损失。美国政府称其为“史上最具破坏性和代价最高的网络攻击”。
   
  在三年后,网络攻击者侵入了SolarWinds公司的Orion网络监控工具集的软件升级过程。其带来的破坏性也是十分广泛的。
   
  全球网络安全咨询机构NCC集团的高级安全顾问Viktor Gazdag表示:“访问软件开发管道,可能使网络攻击者有机会接触网络基础设施并获得知识产权。”
   
    
  为什么DevOps管道易受攻击
   
  Gazdag表示,软件开发人员通常具有较高的权限级别和访问权限。如果正在生产的软件是为外部使用而设计的,那么影响可能会大得多。他说,“网络攻击者也有机会在最终应用中站稳脚跟。”
   
  因此,DevOps管道应该具有更高级别的安全性。但与其相反,他们有很多薄弱的安全实践和暴露的基础设施和凭据。GazDag说,“如果使用Shodan并搜索开发工具‘Jenkins',就会在互联网上看到很多可用和可访问的Jenkins基础设施。”
   
  Gazdag说,持续集成(CI)/持续交付(CD)基础设施通常没有得到与企业其他领域同等程度的关注。随着现代发展实践,情况变得越来越糟。
   
  Gartner公司分析师Dale Gardner说:“随着企业转向DevOps,我们在开发方面采取的一些控制措施有放松的趋势。我们希望变得灵活,而DevOps的方法是,我们正试图快速发布代码。限制和控制阻碍了这一点。”
   
  对DevOps管道的攻击类型
   
  Linux基金会开源供应链安全主管David Wheeler表示,三种最常见的攻击类型是依赖混淆、误植域名和恶意代码注入。
   
  依赖混淆也称为名称空间混淆,是指网络攻击者找出专有企业软件包的名称,并创建具有相同名称和较晚发布日期的开源软件包。某些管道工具会自动尝试下载最新版本的软件包,并最终获得了带有病毒的软件包。
   
  误植域名是指网络攻击者创建一个名称几乎与真实软件包相同的开源软件包,希望被攻击者输入错误并使用错误的库。
   
  恶意代码注入是网络攻击者将恶意代码添加到合法开源项目的地方。他们可以通过窃取项目维护者的凭据,并以他们的名义上传代码、自愿参与项目,或篡改开源开发工具来做到这一点。
   
  开源软件中的漏洞
   
  开源软件面临很多漏洞的问题,而网络攻击者可以利用这些漏洞。应用安全测试商Synopsys公司在去年4月审查了1500多个企业软件项目的代码,其中包括内部和商业项目,发现98%的开源软件包含一些开源代码。对于一般的应用程序,75%的代码库是开源的。
   如何保护软件开发管道
   
  企业应该做些什么来保护他们的软件开发管道?它从对开发人员的教育和培训开始,制定最佳安全实践,如双因素身份验证和代码审查,并安装监控工具来标记可疑活动。
   
  它从开发人员开始
   
  托管服务提供商Ensono公司网络安全高级总监David Gochenaur表示,在代码开发和部署过程的安全性方面,内部开发人员和第三方软件商店都需要进行监督,需要以不同的方式接触这些开发人员。
   
  Ensono公司并不对外销售软件,但它需要定制软件来维护和管理客户的门户网站。这些门户网站的安全性至关重要。Gochenaur说,“我们为许多客户管理系统,并收集有关这些系统状态的数据,并将其放入门户。”
   
  这意味着Ensono公司的工具可以访问这些客户系统,这使得Ensono公司成为网络攻击者的高价值目标。
   
  Gochenaur说,“因为客户太多了,要确保客户A不能进入客户B的数据。从国家安全角度和隐私角度来看,我们的一些客户非常敏感。”
   
  因此,在审查供应商时,第一个挑战是非常严格。他说,“你必须非常了解他们,SolarWinds数据泄露事件就是一个很好的例子,还有许多其他第三方的例子,它们没有很好地保护自己,并被用作威胁行为者的切入点。”
    
  事实上,当Gochenaur对公司软件进行渗透测试时,开发人员总是要求参加测试并观看白帽黑客的工作。他说,“他们想了解自己在做什么,并从渗透测试人员发现的漏洞中学习。它给了开发人员一种不同的思考方式。现在,当我引入第三方服务时,我的一个要求是技术团队可以了解发生了什么,并向第三方学习。”
   
  使用适当的工具和控件
   
  为了帮助该公司的开发人员做出正确的决策,并确保他们的安全,Ensono公司实施了多项安全控制措施。例如,多因素身份验证有助于防止外部人员访问DevOps管道。该公司使用私有代码库,以便开发人员可以从已经审核和批准的代码中进行选择。
   
  Ensono公司还拥有专门负责修补系统的团队,以确保部署的所有内容都是最新的。Gochenaur说,“我们定期扫描整个环境以寻找漏洞。”
   
  凯捷公司的DevOps架构师Venky Chennapragada表示,企业可以做其他事情来帮助锁定他们经常错过的开发管道。例如,企业应该为非生产暂存环境和生产设置单独的管道,并限制访问这两个系统的人员。为了进一步锁定访问权限,企业应该使用企业级访问管理系统,例如Active Directory或LDAP。
   
  许多企业为软件开发团队提供单独的用户数据库或使用内置的用户管理工具,而拥有一个单独的系统更容易。
   
  Chennapragada说,“如果我要与Active Directory或LDAP集成,就会进行安全审计。一些工程师可能想绕过安全审计,因为他们没有正确安装东西。”
   
  基于角色的访问是可能会让开发人员感到讨厌的另一种控制方法。Chennapragada说, “授予完全访问权限总是很容易,而不必创建用户组和角色,但这是一种不好的做法。”
   
  最后,Chennapragada建议企业仔细跟踪进入其软件的所有组件,尤其是开源库。他说,“开发人员倾向于在他们的软件中包含开源代码,它可能存在错误和安全漏洞。”
   
  外部库需要经过安全扫描和代码审查,开发人员应仅限于使用经过认证的依赖项。而其他有吸引力的工具包括操作系统变体和插件。例如,Linux有数百万种不同的风格。Chennapragada说,“确保他们使用的任何版本都经过强化,并且是最新的。流行的开发工具Jenkins是一个开源自动化服务器,带有各种插件。插件的安全可能非常脆弱。网络攻击者可以将恶意代码放入插件中,从而接管受害者的系统。”
   
   提供软件材料清单(SBOM),但也扫描漏洞
   
  许多业内人士一直在推动软件材料清单(SBOM)。去年5月,美国总统拜登发布了一项行政命令,要求向美国的政府部门提供软件材料清单(SBOM)。在两天后,云原生计算基金会发布了一份最佳实践白皮书,建议所有供应商在可能的情况下提供软件材料清单(SBOM),并提供明确和直接的依赖关系链接。
   
  软件材料清单(SBOM)将帮助企业在其环境中找到易受网络攻击组件的实例。例如,Log4j在去年12月进行了修补,但截至2月11日,40%的下载仍然是易受网络攻击的版本。
   
  技术咨询机构Ascent Solutions公司的IEEE高级成员、网络安全策略师Kayne McGladrey说:“如果你买一块面包,其包装上就会写上成分清单。而采用软件也需要企业了解软件材料清单(SBOM),并做出明智的风险决策。”
   
  McGladrey期望有远见的软件供应商开始将这些列表包含在他们的软件中,因为这是他们的客户希望看到的东西。他建议软件供应商提供有关他们的软件应该如何运行以及不应该如何运行的信息。他说,“如果软件供应商提供了他们软件的正常行为列表,我们可以说,‘这个软件的行为异常,因为它连接到不应该连接的服务器。’”
   
  无论软件材料清单(SBOM)是否成为强制性的,企业都应该扫描他们的软件以查找已知漏洞和其他潜在的安全问题。网络安全供应商NTT Application Security公司的研究员Ray Kelly说,现在所有主要的扫描软件都在寻找易受攻击的Log4j数据包。
   
  很明显,很多企业并没有使用这些工具。Kelly说,“尽管补丁已经发布了两个月,但还有些公司仍在使用旧版本的Log4j,这说明他们在保护代码安全方面远远落后。”

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读