企业采用DevOps意味着开发进行将比以往任何时候都要快。那么如何确保一切都是安全的,尤其是将业务迁移到云端时?
调研机构Gartner公司预测, 2022年全球云计算服务市场规模和增长率几乎是整体IT服务的三倍。云计算服务无疑正在颠覆各个行业的发展,越来越多的企业采用云优先战略。
如今,数字化转型正在引领企业的业务增长,云计算加速了这一转变,简化了流程,促进了团队之间的协作。云计算的作用还包括:
使用开发和运行应用程序所需的按需计算能力替换昂贵的硬件,并降低相关的管理和运营成本;使应用程序和底层微服务能够快速扩展,而无需锁定任何特定的硬件配置。简化IT管理选项,同时提高内部IT基础设施的可靠性。
尽管如此,像任何革命性的转变一样,云迁移也会带来影响人们应该如何安全地推进业务的变化。
了解云原生架构的影响和新的安全挑战
企业首先需要了解云计算将如何影响DevOps和安全环境。云计算架构如何改变业务具有两个重大影响、相互依存的趋势:基于新架构的技术催化剂,以及业务流程挑战将如何在基础设施中引起反响。
云端的技术挑战
云计算是一种技术性的游戏改变者。由于传统的安全问题让位于云中出现的新安全概念,因此需要权衡利弊。从良好的一方面来说,云计算将扩大业务规模,并要求运营团队学习更多的专业知识。
解决首席技术官和首席安全官及其内部团队以前必须承担的许多问题。构建、维护、保护计算资源的物理设施不再是开发成功的试金石。例如,一旦迁移到云端,就不必担心备份是内部部署还是外部部署。然而,云计算带来了一些显著的安全挑战:容器安全性以及管理员不断发展的IT专业知识。
新环境要求更多地依赖API。但是,传统的解决方案并不是为处理API级的漏洞而设计的,而且随着API的发展,网络攻击变得越来越复杂。企业需要管理和传递复杂的数据结构,执行应用程序逻辑,并在各个容器之间提供流量,从而协调操作Web应用程序。
此外,还有许多类型的API:面向用户的API提供在浏览器中显示的信息;东西流量API将应用程序和微服务连接在一起;服务API允许监视、警报和应用程序管理;移动后端API使设备,如iPhone等真正智能化设备。还有一个完整的第三方生态系统,它完全通过API提供数据服务。例如,任何移动应用程序或网站现在都可以以适中的费用订阅API,向应用程序提供天气或交通信息。
API是现代体系结构的基础,并渗透到处理最敏感数据的应用程序中。但是,API使用不同的语言或协议,这使得它们很难监控。这就是为什么有API优化的安全性是至关重要的,以确保内部API和任何传入数据都被仔细监视和标记,并且问题得到适当的优先处理和解决。
新体系结构面临的另一个主要挑战是对容器和微服务的依赖。像Kubernetes这样的微服务管理系统简化了迁移。它们可以在私有云和公共云中使用,如Google、Azure或Amazon。尽管如此,这些系统有自己的一套安全概念。例如,即使企业的入口控制器上安装了一个解决方案,也需要确保它能够跟上流量和云计算规模的自动扩展。但没有人愿意为了速度牺牲安全。
此外,云计算的灵活性意味着,管理对基础设施的访问可能是一个挑战,而访问云计算管理层可以获得控制权。重要的是要确保访问点的安全并限制共享凭据,以避免它们受到危害。与其为根帐户创建访问密钥,不如实现可靠的基于角色的访问控制(RBAC)。
最后,采用者对安全工具和最佳实践的关注不够。如今出现了很多新兴技术,使得保护这一新的计算前沿变得复杂起来。快速采用的问题在于,这些新技术、基础设施以及更大数量的工具和第三方并不是既定课程的一部分,很少有人了解大局或细节。
适用于云计算的新DevOps
除了技术革新之外,云计算还与业务流程的重大变化和挑战紧密相关。
云计算和特定DevOps流程的加速演变是相关的。为了真正解决云中的安全问题,人们必须解决安全性如何与现有DevOps工作流程集成的问题。
快速的开发周期意味着预测和引入生产需求以及不可能提前测试。在采购过程中的一切操作,从物理服务器的部署到基本的订购,都必须跟上发展。因此,DevOps是一种自然的合并。
云计算的灵活性是处理不可预测的服务器负载和架构、最终用户以及从持续集成(CI)/持续交付(CD)变量的推动因素。如果没有内部部署和公共云架构的必然结果,很难想象持续集成(CI)/持续交付(CD)的发展速度。但这些快速的持续集成(CI)/持续交付(CD)流程正在改变业务预期,并加强了向市场交付的竞争。
更快的开发周期对业务的技术影响不容忽视。企业了解到保险公司可以提供数据保护网络保险,并寻求有助于量化违规风险和安全保护质量的答案。人们认为监管讨论将会影响技术采购和地理位置。即使企业向开源社区投入数十亿美元的研发费用,有关安全责任和影响的问题仍然存在。
对于他们来说,企业团队必须优先考虑安全和组织内的最佳实践。DevOps团队可能会抵制这些变化,因为他们必须获得新的技能集才能安全有效地管理DevOps和持续集成(CI)/持续交付(CD)流程。但是,企业的整体安全健康取决于每个人理解他们在安全意识和维护等方面的作用。
为了跟上快速持续集成(CI)/持续交付(CD)工作流中业务和技术转型的一致性、安全性必须适应云计算。它不仅必须部署在新技术架构的关键领域,还必须与新的业务实践相结合。安全性必须与云计算本身一样灵活,响应迅速,并且功能强大。
谁需要负责云计算安全?
迁移到云端的最明显转变是外包。企业的物理硬件和数据基础设施不再完全属于其职权范围。当数据通过基础设施即服务(IaaS)或平台即服务(PaaS)时,那么谁需要负责安全性?
企业与云计算提供商合作可以将二者之间的安全责任分开。企业团队需要了解他们负责保护的整体解决方案,以及保护这些解决方案的最佳实践。
总体而言,云计算提供的强大功能和敏捷性正在加快开发周期,使新的更改不能影响安全性。这就是开发周期包含安全基础设施和最佳实践的重要性的原因。
例如,企业不知道需要重点保护哪些基础结构层,这可能会导致发生数据泄露等事件。根据Verizon公司2019年数据泄露的调查报告,企业内部员工所犯的错误占所有数据泄露事件的34%。这些违规行为给企业带来了惨重的财务和声誉损失,而中小型企业难以承受这些损失而破产。
技术解决方案还有助于了解DevOps工作流程的紧迫性,并帮助将安全测试和解决方案集成到工具链和工作流程中。但是,这些工具和解决方案最终将依赖于DevOps内部的安全措施,而不是单独的安全团队。
云计算提供商在安全责任和客户端责任方面的份额
企业与公共云提供商合作的一个主要好处是,提供商非常重视安全性和合规性。云计算提供商在保护云计算环境方面投入了大量资金,以确保比内部部署环境更安全。公共云提供商运营和管理服务器位置、硬件本身、主机操作系统、虚拟化层的物理访问安全性。或者简而言之,它提供为企业业务服务的基础设施。
DevOps团队负责保护企业数据、操作系统、应用程序逻辑和端点。虽然与云计算提供商分担安全责任可以减轻管理负担,但重要的是使持续维护成为持续集成(CI)/持续交付(CD)流程的一部分,而不只是依靠云计算提供商来处理。另外值得一提的是,使用开源组件的开发人员必须维护这些资源,以确保不会带来漏洞。这可以通过运营发现来识别和跟踪所有开源组件来完成。
为了根据不同组织的特定需求提供量身定制的服务,云计算提供商提供了几种云计算模型,包括软件即服务(SaaS)、平台即服务(PaaS)和基础设施即服务(IaaS),每种模型都涵盖不同级别的数字解决方案以及相应的安全。
根据云计算标准客户委员会(CSCC)的说法,当用户从SaaS迁移到PaaS到IaaS时,其责任往往会增加。
使用SaaS模型的团队在安全方面参与最少,因为他们使用的是预先设计好的服务,而云计算提供商则负责处理所有的技术方面。这意味着他们可以依靠提供者来管理基础设施、软件栈,以及大多数相关的应用程序逻辑。
对于安全所有权和责任,企业团队应检查其首选云计算服务提供商的服务级别协议。一旦团队清楚地了解了他们的安全职责,他们就可以将时间集中在保护自己的组件上,并确保他们的云计算提供商将处理剩下的组件。这种政策一个很好的例子是AWS公司的共享责任模型。它清楚地记录了客户对其AWS基础设施中的数据、API和软件堆栈的责任。
在云迁移的安全解决方案中需要注意什么?
依靠云计算提供商进行监控和保护是企业安全面临的巨大挑战。以AWS公司为例。作为早期的IaaS提供商之一,AWS公司奠定了用户基础,并花费了大量资源来教育客户。AWS公司强制执行服务。他们采取了令人难以置信的措施来确保他们提供的物理设施和技术安全性。因此,企业通常不太担心网络安全、服务器、路由器等问题。但是,AWS公司也非常了解应用程序所有者负责的其他组件。
正如AWS公司对云计算安全共同责任立场所解释的那样,他们负责管理系统。但是,应用程序中的数据、与用户相关的安全性以及企业如何采用应用程序都不在他们的管辖范围之内。甚至还有一些论点指出,试图确保这一点可能意味着企业过度扩张或阻碍了进展。
只是相信开发商和提供商将会保护应用程序和微服务是不够的。企业必须确保自己的软件解决方案在逻辑级别是安全的,这是发生变化最多的地方。企业需要寻找:
在应用程序级别部署的工具 在持续集成(CI)/持续交付(CD)中运行的解决方案 不增加资源需求的集成工具集和流程允许灵活响应的自动化。
这是安全管理云平台并将企业的业务转变为强大灵活的解决方案的一部分。
支持安全的API和微服务使企业能够灵活地扩展云计算。无论企业是决定补充现有的技术堆栈,还是完全转向新一代的容器和微服务,都非常关注这一新的动态基础设施是如何、在哪里以及由谁来管理的。这就是需要新的治理过程和自动化策略的地方。采用云计算是企业的业务转型之一。
安全性必须与企业业务运作的具体情况相适应,并且只在特定的环境中才能有效。这并不总是意味着繁琐的自定义,但这意味着企业需要能够适应并运营基础设施、业务逻辑和流量的解决方案。在更深层次安装的机器学习使企业业务独一无二,这是确保这一点的一种方法。
鼓励DevOps和安全团队之间的协作
除了技术影响之外,云计算将需要在组织上进行新的重组。例如,如果企业负责管理云平台,那么组织结构图是什么样的?谁对风险承担责任?首席信息安全官和首席技术官的角色将如何变化?安全专家如何适应企业的组织结构?
传统上,企业开发、运营、安全团队在孤岛中工作。随着开发和运营融入统一的DevOps实践,问题在于DevOps是否从根本上削弱了安全性。在DevOps中,开发速度是决策制定的首要考虑因素,特别是在使用外部软件和平台时,安全性往往是事后的想法。随着新威胁和脆弱性的引入,安全格局正在迅速变化,这一挑战进一步扩大。
企业期望开发商一夜之间成为安全专家是不现实的。然而,随着应用程序开发速度的提高,以适应当今企业所需的速度和灵活性,许多企业没有在其产品中构建安全性。
为了解决这个问题,DevOps和安全团队需要进行协作,以便从开发生命周期的开始阶段就将安全性纳入其中。
为了最好地整合角色,应考虑以下一些关键的最佳实践:
01
考虑质量保证
最重要的是建立一种将安全视为高质量产品的推动者、共同责任和首要任务的文化。它应该被视为应用程序性能和用户体验的关键指标之一。
02
将安全性集成到DevOps中
DevOps过程的所有部分涉及安全团队或指定安全角色,以确保从一开始就具有透明度和协作性;安全团队可以检测应用程序特定的漏洞,并提供可操作的DevOps建议,这将为安全编码实践提供信息。
03
支持开发人员
由于大多数开发人员对需要注意的内容了解有限,所以在团队中任命安全管理人员是一件好事。他们可能不像白帽黑客那样有深入的知识,但在安全方面有足够的参与度,以理解其概念并知道在哪里寻找合适的工具和资源。
04
获得正确的工具和工具链
部署可以管理安全任务的自动化工具,使小型安全团队能够更多地关注关键优先级,例如定义框架并更加关注开发过程;在云端和持续集成(CI)/持续交付(CD)过程中自动生成和运行安全测试的工具将有助于实现这一目标。
05
加强编码
最后,许多安全问题来自最明显的错误。组织需要投资培训开发人员以在云中安全地编码,并将安全测试作为流程的一部分。通过机器学习监控代码的高级安全解决方案可以在代码中找到漏洞,帮助开发人员增强代码运行的稳定性。(来源:企业网D1Net)