什么是开发运维安全?

女程序员在黑暗的办公室里用带有六台显示器的台式电脑进行编码

作者

Phill Powell

Staff Writer

IBM Think

Ian Smalley

Staff Editor

IBM Think

什么是开发运维安全?

开发运维安全(或称 DevSecOps)是一种在软件开发生命周期 (SDLC) 每个阶段优先落实安全流程的开发方法。

DevSecOps 将安全责任分散并共享给相关的开发、运营及安全团队。

强化开发运维安全的需求源于网络威胁无处不在的现状,这已成为当前环境的基本特征。盗窃与破坏并非人类行为的新元素,唯有被窃取的物资类型和实施犯罪的手段得到了更新。现代网络罪犯觊觎的不再是黄金财宝,而是价值连城的数据缓存,并通过电子盗窃实施犯罪。

此类犯罪分子已极度擅长利用软件系统各层级及各开发阶段的网络安全漏洞,因此前瞻性企业正着力在开发各阶段强化安全状况。DevSecOps 全面支持这一使命,致力于应对数据泄露等安全挑战,消除潜藏在开发流程各环节的安全隐患。

DevSecOps 的兴起标志着企业安全观念的转变。曾几何时,众多组织将开发运维安全视为事后补救措施。安全检测往往与 SDLC 末期的其他最终检查一并实施。这种做法容易形成信息孤岛,隐藏安全漏洞,而最终所需进行的修正成本,远高于在早期发现并修复时的代价。

此类陈旧观念依然存在,但对于大多数企业而言,开发运维安全已取得显著进步。DevSecOps 充分认识到软件开发团队当前面临各类威胁的高度复杂性,致力于在开发早期阶段处理网络安全问题,并将安全风险应对责任分散给多数或全部相关团队成员共同承担。

这种在项目早期阶段即强化安全性的概念被称为“左移”。该术语假设观察者正在审视从左至右的生产时间轴。 实施 左移测试 意味着在图表左端 (即项目启动阶段)就集成强化测试。

辅以专家洞察分析的最新科技新闻

通过 Think 时事通讯,了解有关 AI、自动化、数据等方面最重要且最有趣的行业趋势。请参阅 IBM 隐私声明

谢谢!您已订阅。

您的订阅将以英语提供。每份时事通讯都包含取消订阅链接。您可以在此管理您的订阅或取消订阅。更多相关信息,请参阅我们的 IBM 隐私声明

DevSecOps 如何运作?

建立并确保安全性,需要诸多环节和不同实践方法协调运作。

访问控制

可将其视为守门卫士,负责阻挡非法入侵者。访问控制管理着向寻求访问数字资源的实体授予权限的方式。其通过身份验证流程实现这一功能,该流程既确认个人身份,又向特授权用户授予特权访问权限。访问管理对企业遵守 HIPAA 等法规要求起着关键作用,此类法规旨在保护患者医疗数据的机密性。

框架

定义软件行为规范的任务由既定的 DevSecOps 框架承担。框架提供与最佳实践、相关流程及安全工具相关的信息。它们还阐明如何将安全性集成到每个开发阶段,以及不同软件组件或系统之间存在哪些依赖关系。这有助于实施漏洞管理并保护生产环境。

配置管理

配置管理系统工程过程中,重点在于确保产品属性在其整个生命周期内保持一致。若非软件系统需要持续吸收大量变更,配置管理便无存在必要。配置管理能确保系统在经历变更后仍按设计运行。

漏洞管理

漏洞管理并非盲目认定企业软件处于安全状态,而是预设其可能存在安全隐患,并易受各类安全漏洞影响。这是一种高度主动的防御策略,其基础是通过对代码库进行漏洞扫描来识别潜在漏洞,随后在网络犯罪分子利用这些漏洞之前采取修复措施。

密钥管理

密钥管理是另一相关学科,致力于解决持续存在的敏感信息安全需求。顾名思义,密钥管理帮助用户存储并管理密码、加密密钥(用于保护数据的密码)以及应用程序与程序编程接口 (API) 交互时所需的授权密钥等敏感数据。

云安全增强

环境通常是数据高度密集的存储库,因此需要 DevSecOps 提供的额外保护。云原生应用必须能快速启动,而 DevSecOps 通过确保这些应用在快速开发周期中平稳运行来提供支持。开发运维安全还能保护工作负载免遭配置错误及其他网络威胁的侵害。

IBM DevOps

什么是 DevOps?

Andrea Crawford 阐述了什么是开发运维、开发运维的价值,以及开发运维实践和工具如何帮助您完成从应用程序构思到生产的整个软件交付管道。本课程由 IBM 资深思想领袖主导,旨在帮助企业领导者获得所需的知识,以优先考虑能够推动增长的 AI 投资。

DevSecOps 的指导理念

企业宣称正强化有效安全措施的实施固然容易。然而,要实现全面安全目标,组织除有效开发运维流程外还需践行安全最佳实践。以下是助力 DevSecOps 实现价值回报的核心理念。

团队合作保障安全

传统安全观认为,安全只是开发运维团队需完成的又一项指派任务。而现代观点则主张,安全是 IT 运营团队、安全团队与开发团队共同承担的项目。实现协同效力的关键在于高效的跨团队沟通,从而成功管理预期并交付理想成果。

技术赋能

确保满足所有安全要求可能是项艰巨任务。除借助 安全专家的战略能力外,团队还可运用先进安全工具。此外,DevSecOps 充分利用自动化与强大自动化工具的流线型效应,解放工作流并提升安全测试效率。

安全无处不在

若不付出大量额外努力,便无法构建更强大的安全状况。这要求在各个环节实施强化安全策略。涵盖从代码分析(用于检测源代码潜在错误)等早期项目步骤,到基于同行的代码审查及安全测试等后期开发流程的全链条。

更快速、更优质的软件发布

DevSecOps 最显著的优势之一在于它能为企业发布的软件提升速度与确定性。通过实施持续交付 (CD) 流水线,企业推向市场的应用程序及其他软件版本将具备安全代码,并更有可能满足必要的安全要求。

永无止境的培训之旅

开发运维流水线的 CD 方法同样基于这样的指导原则:安全工作永无止境,相关教育培训也永不停止。须知:黑客始终在持续改进其攻击方法,因此总会有新技术需要侦测,总有新兴安全控制措施需要实施。

DevSecOps 测试类型

各类 DevSecOps 测试方案存在显著的专业化分工,如下列示例所示:

  • 应用程序安全测试 (AST):顾名思义,应用程序安全测试 (AST) 涉及评估影响应用程序的安全问题。AST 包含一系列高度独特的测试方法,每种方法在开发运维流程中各有侧重。   
    • 静态应用程序安全测试 (SAST) 让测试人员能通过分析源代码、字节码或二进制代码来发现应用中的安全漏洞。
    • 动态应用程序安全测试 (DAST) 是一种网络安全流程,通过运行应用程序并检查其行为是否存在异常。DAST 使团队能观察应用程序对真实网络攻击的响应。
  • 渗透测试:也称为“渗透测试”,渗透测试采取模拟网络攻击的形式(由伪装成黑客的安全专家触发),针对应用程序、网络或系统进行。这本质上是一种安全实战演练,让企业安全基础设施与入侵攻击正面交锋,以检验企业资源能否承受破坏并维持必要运作。
  • 软件成分分析:软件成分分析评估构成应用程序的软件组件,并检测其潜在漏洞。此类组件包括第三方代码与各类开源库。软件成分分析还有助于支持许可证合规。

开发运维安全的其他应用场景

DevSecOps 方法具有多用途性,可应用于多种编程目标:

  • Kubernetes:Kubernetes 平台与 DevSecOps 实践紧密配合,尤其在为容器化应用程序及容器化基础设施提供增强安全方面。Kubernetes 推行基于安全的框架,从开发初期到部署及运行期(即计算机程序执行阶段),实现威胁的有效检测、分析与化解。
  • 微服务:微服务源于这样的理念——应用程序可由多个本质上独立的小型松散耦合服务构建而成。虽然这种架构使应用程序具备更高可扩展性与敏捷性,并能以更快发布周期投入市场,但微服务架构本质上更为复杂,因此需要 DevSecOps 提供的额外安全支撑。  
  • 供应链:供应链能高度受益于 DevSecOps。供应链可能复杂得惊人,而这种复杂性常为黑客提供隐藏恶意软件的机会。供应链管理需要“洁净”的生产环境,而 DevSecOps 有助于实现这一目标。
相关解决方案
IBM DevOps Accelerate

实现本地、云端或大型机上任何应用程序的自动化软件交付

深入了解 DevOps Accelerate
DevOps 解决方案

使用开发运维软件和工具,在多种设备和环境中构建、部署和管理云原生应用程序。

深入了解开发运维解决方案
云咨询服务

利用 IBM 的云咨询服务发掘新功能并提升业务敏捷性。了解如何通过混合云战略和专家合作共同制定解决方案、加快数字化转型并优化性能。

云服务
采取后续步骤

通过持续集成和交付,释放 DevOps 的潜力,来构建、测试和部署安全的云原生应用程序。

探索 DevOps 解决方案 探索 DevOps 的实际应用