DevOps安全是一种实践,开发运维(DevOps)组织的任务是探索和实现,以保护数据安全 软件开发生命周期.
这通常表示保证整个的安全 持续集成/持续交付(CI/CD) 管道, 从将被集成的工具, 开发人员将负责以下流程, 以及这些过程的执行程度. 关于DevOps安全意识形态的挑战,Forrester说:
“安全领导者寻求降低与不安全的DevOps流程相关的风险, 一半的人很难做到这一点,因为安全和开发过程没有集成. 从开发者的角度来看, 领导层将安全置于交付日期和现有安全协议之上,有时会迫使他们破坏访问控制,以满足交付期限. 低效的流程和缺乏明确的责任界限会在DevOps和安全团队之间造成摩擦.”
然而, 为了确保开发过程的安全,已经产生了优先考虑易用性的解决方案, 效率, 自动扫描 infrastructure-as-code (IaC) 模板. 通过这种方式,开发人员可以确保快速交付的安全性.
诸如命令行接口(CLI)之类的工具支持对IaC计划和模板进行按需安全扫描,并直接在CLI中交付结果, 从而缩短安全性和遵从性问题的发现和反馈循环,达到立即补救的程度.
DevSecOps是通过工程师之间的合作将安全流程更早地集成到CI/CD管道中的过程, 安全团队, 以及其他领导职位. 这个过程也被称为“向左移动”."
DevOps在开发和运维团队之间建立了协作文化和敏捷关系, DevSecOps旨在以生产力和伙伴关系的名义继续这些主题. 这个概念强化了每个员工和团队都对安全负责的理念, 这些决定需要在不牺牲安全的情况下有效地达成并付诸行动.
更快地将新代码投入生产是推动新业务发展的一个目标. 然而, 在当今世界,这一目标需要与解决安全问题的责任相平衡. 自动化是将安全性转移到开发过程中的关键推动者. 目标是将安全的不同阶段引入DevOps模型,并使整个过程自动化, 因此,安全性直接集成到初始应用程序构建和IaC模板扫描过程中.
DevSecOps的主要目标和好处是为组织打开了一扇门,让组织在各个部门之间体验到运营效率的提升. 这包括:
应用程序及其 漏洞 暴露在互联网上是为了被客户使用吗. 因此, 与其他关键基础设施相比,它们很容易进入攻击者的攻击范围——通常伪装成合法的流量, 恶意攻击者.
对于攻击者来说,有一些工具可以让他们相对容易地渗透和利用. Web应用程序安全测试 是否至关重要,特别是因为大多数应用程序漏洞都是在源代码中发现的. 动态应用安全测试(DAST) 是否有一种主要的方法可以扫描web应用程序的运行状态,以帮助开发人员识别真实的, 可利用的风险. 以真正的DevSecOps的心态, 需要注意的是,在软件开发生命周期(SDLC)的早期进行扫描可以将时间还给开发人员和测试人员.
就像DevOps一样,伙伴关系和协作是DevSecOps的全部内容. 安全和开发团队聚在一起了解其他团队面临的风险是至关重要的. 将安全测试集成到SDLC中的有效方法包括:
将应用程序安全性更早地嵌入到SDLC中有许多好处. 如果您像对待其他软件缺陷一样对待安全漏洞, 如果开发人员和测试人员能够更早地识别出这些问题,就有可能节省金钱和时间.
不出意外的话, 您现在应该能够理解,将安全原则集成到DevOps流程中是完全可能的, 但也并非没有挑战,比如:
最终目标、优先级和截止日期的变化速度每天都在增加. 人们只是期望安全能够跟上. 面对这样的变化,这可能是一个挑战 云迁移 以及全面的数字化转型. 频繁地扫描和测试开发的安全性应该尽早得到涉众的认可. 更大的挑战将会出现,如果有人在问题进入生产环境后发现了问题,并且必须放慢速度以适应补救措施.
整体 云安全 在增加DevSecOps过程时应该考虑什么. 这可以包括从云服务提供商(CSP)本地安全控制到您的组织如何利用它们的所有内容, IaC工具的复杂性, 识别将被自动化的过程. 随着云中工作负载数量的增加, 安全挑战有时会落在传统流程之外, 从技术和操作的角度来看增加了额外的风险.
平台 Kubernetes 对运行应用程序的各种容器进行分组和管理. 容器不断地被旋转和替换, 因此Kubernetes将立即交换容器以确保没有停机时间. 不难想象,在这样的发展速度下,安全是多么具有挑战性. 在这一切之中, 很难发现相关的见解和威胁发现,也很难控制由于无意中被覆盖的实例而产生的不可预见的漏洞.
组织内部的繁文缛节可能会带来挑战,比如缺乏管理层的支持, 预算不足(开源工具可以提供帮助), 孤立的努力. 另外, 熟练工人的短缺可能会加强这些管理级别的旧决策模式. 让团队以一种快速的方式来解决一个问题可以决定成败. 100%的跨职能工作很可能不是每个组织都能实现的. 然而, 接近这个目标有助于加强团队, 提升士气, 并反馈关键的学习,最终提高成功的速度.
尽管存在不小的挑战, 建立DevSecOps最佳实践可以确保——一旦进程或多或少启动并运行——安全性不会成为应用程序开发速度的障碍.
在开发者所在的地方与他们见面开发人员希望编写代码,而不是实现安全性. 因此,他们应该尽可能容易地做到这一点. Rapid7的 CLI 工具可以帮助促进这一过程.