CYBERARK术语 >

什么是 DevOps?

DevOps一词用于描述将软件开发(Dev)和IT运营(Ops)结合在一起并提高组织快速交付应用程序和服务的能力的一系列文化理念、实践和工具。

使用DevOps方法,可以频繁交付新的应用程序功能。弹性的基础架构通过自动扩展流程来满足激增的需求,这些流程可以扩展新的计算资源(虚拟机或容器)并根据需要部署更多应用程序实例。组织只需为所需的计算量付费。

全世界许多企业组织都在转向敏捷和DevOps方法,以消除功能和管理壁垒,并使变更管理、配置管理和部署流程自动化。DevOps最终可以帮助组织缩短产品上市时间、提高产品质量、消除效率低下、加速数字化转型以及更快地响应客户需求。

什么是CI/CD?

通过合并开发和运营并推动智能之间的更多协作,DevOps可以更加贴近业务目标,缩短开发周期。使用持续集成(CI)时,开发人员每天多次将代码更改合并到存储库中,并将更改自动集成到构建中。持续交付(CD)的方法要求代码始终处于可部署状态,以便可以随时通过触摸按钮将其部署到生产中。

DevOps安全挑战

尽管有很多优势,DevOps仍会带来新的风险和文化变化,以及传统的安全管理解决方案和实践通常无法解决的安全挑战。这些传统方法通常太慢、太昂贵或太复杂,无法支持自动化软件交付和部署到云中或作为容器。这些挑战包括:

DevOps中使用的特权凭据是网络攻击者的目标。DevOps环境中最大的安全挑战之一是特权访问管理。DevOps流程需要使用功能非常强大但极易受到网络攻击的人机特权凭据。

  • 人类访问:通过高速流程,DevOps从业人员需要跨开发和生产环境的特权访问。
  • 机器访问:在自动化流程中,机器和工具需要特权(或权限)提升来访问资源,而无需人工参与。示例包括:
    • 自动化工具:Ansible、Puppet和Chef
    • CI/CD工具:Jenkins、Azure DevOps和Bamboo
    • 容器管理工具:Docker和Linux容器(LXC)
    • 容器编排工具:Kubernetes、Red Hat OpenShift、Pivotal、Cloud Foundry

Tier 0资产(例如Ansible和Jenkins)可以访问许多其他工具使用的凭据。

一旦攻击者获得特权凭据,他们就可以完全访问DevOps管道、敏感数据库、甚至可以访问组织的整个云。攻击者意识到了这一点,并越来越多地转向寻找特权凭据,包括密码、访问密钥、SSH密钥和令牌,以及其他类型的秘密,例如证书、加密密钥和API密钥。攻击者可以在DevOps环境中利用不安全的凭据,从而导致加密劫持、数据泄露和知识产权遭到破坏。

开发人员专注于速度,而非安全性。DevOps团队专注于更快地生成代码,因此经常在安全团队的权限范围之外采用不安全的做法。这些做法可能包括在应用程序和配置文件中保留嵌入式秘密和凭据,在没有足够仔细检查的情况下重新使用第三方代码,采用新工具而不对潜在的安全问题进行评估,以及对DevOps工具和基础架构的保护不足。

以工具为中心的机密信息管理方法会造成安全漏洞。DevOps工具通常具有一些用于保护机密信息的内置功能。但是,这些功能无法促进互操作性,也无法在工具、云和平台之间安全地共享秘密。DevOps通常会结合各个工具的内置功能来管理秘密。 由于无法以一致的方式监视和管理机密信息,因此该方法可能难以提供充分保护。

在组织中启用DevOps安全的步骤

以下是组织通常要采取的步骤,以实现广泛的DevOps安全,同时解决特权访问的风险并与DevOps文化和方法保持一致:

  • 将安全策略实例化为代码。DevOps的基石是“基础架构即代码”(有时称为不可变基础架构)概念,以取代手动管理和配置服务器及软件的传统模型。通过将此概念应用于安全(以代码形式实例化和管理安全策略),组织可以消除人工密集型且容易出错的配置过程。
  • 确立职责区分。DevOps团队应明确定义不同的角色和职责:
    • 开发人员应专注于创建应用程序以取得业务成果。
    • 运营应专注于提供可靠且可扩展的基础架构。
    • 安全性应着眼于保护资产和数据以及降低风险。

可将各组之间的交互写入书面的安全策略中。例如,开发人员创建安全策略,声明其应用程序或服务需要哪些特权。然后,安全人员检查并批准安全策略,运营人员确保按预期部署应用程序。

了解有关DevOps安全性的更多信息

STAY IN TOUCH

STAY IN TOUCH!

Keep up-to-date on security best practices, events and webinars.