文档章节

通过 DevOps 整合开发和应用安全管道

OneAPM蓝海讯通
 OneAPM蓝海讯通
发布于 2016/01/12 16:49
字数 1815
阅读 12
收藏 0

【编者按】作者 Aaron Volkmann 是 CERT Division 高级研究员,通过提出了一种集成安全系统到 CI/CD 的方法,让机构保持快速部署到生产环境能力的同时,也大幅度降低安全隐患,本文系 OneAPM 工程师整理。

DevOps 理念规定软件开发和运维团队之间需要加强沟通和协作,从而在软件开发和交付过程中实现更好的结果。而在这之后,信息安全团队同样应该集成到 DevOps 实践团队中。虽然在持续集成(CI)和持续交付(CD)过程中还未实现完整的自动化软件安全评估,本文主要介绍应如何将 DevOps 理念应用于安全评估,并集成 CI / CD。

及时和可持续

在一个新的软件项目的开发阶段,信息安全团队应该衡量新软件的安全风险,并在整个开发过程中进行安全评估。为确保快速开发和新功能部署,企业必须确保安全评估的频率,既要保证安全风险最小化,同时也要考虑安全团队有限资源的可持续性。

众所周知,自动化是 DevOps 的主要理念之一,但很多在指定应用上进行软件安全性评估的任务仍然是手动执行。出于这个原因,适当的应用安全性评估仍然是持续集成/持续交付开发管道界外。如果一个企业正在进行持续交付,那怎样才能保证部署到生产环境的软件没有安全风险?

虽然,程序中某些代码的变动,如程序接口(API)终端或更改验证,在迁移到生产之前,需要对此类变动进行手动安全评估。但其他类型的变化则不一定需要,如视觉风格改变。例如,如果在之前评估的基础上,只是修改了一些视觉样式,或者添加了一些不影响安全性的小功能,此时,再对应用安全性进行全面评估则意义不大。

所以,是否需要手动安全评估也取决于应用程序和所处理的数据类型。例如,一个内部应用完全不涉及任何敏感数据,如客户信息、商业秘密、PCI 或 HIPAA 敏感数据等,并且只能通过公司内部访问,这种应用不同于可能接触敏感数据的 Web 应用。由于需安全评估的应用数量和工作量巨大,应用安全团队并没有能力来手动评估每一个被部署到生产的变化。在应用负责人的帮助下,安全团队应该评估和编目企业的应用程序。该目录应包含每个应用程序的威胁模型、所接触数据的相对风险以及应用会如何被用户访问等信息。

软件的新功能在部署之前,相关部门必须进行安全评估。在最初的评估后,下一次全面安全评估只有在安全性配置文件更改后才可以进行。比如,改变身份验证或授权机制,或者添加一个新的外部系统集成。

开发持续集成管道应配备一种检测机制,可以在应用一旦发生变动且需要安全评估时及时做出响应。该机制是图1所示的安全控制器,它会在出现安全性敏感变动时通知信息安全团队,并进一步规划手动安全评估。在评估完成之前,自动部署到生产环境会被叫停。

通过 DevOps 整合开发和应用安全管道 图1:一个新的软件通知发送到安全控制器后,安全控制器会触发阻塞暂停应用生产部署,并通知安全部门需要手动安全评估。

评估完成后,信息安全系统会通知持续集成/持续交付系统可以继续部署当前应用程序,如图2所示。

通过 DevOps 整合开发和应用安全管道 图2:一旦安全团队完成了安全评估,安全控制器则释放对应用生产部署的控制。

如果应用中出现了一个不影响安全性的变化,则无需手动安全评估,生产部署不会被阻止,如图3所示。

通过 DevOps 整合开发和应用安全管道 图3:一个影响安全性的小变动不会改变应用程序的部署能力。

如果对应用程序产生了较大改动,则需要执行下一个安全扫描,生产部署会被阻塞,控制器通知安全团队进行安全评估,如图4所示。

通过 DevOps 整合开发和应用安全管道 图4:应用程序如有大的更改,则需要安全评估触发阻塞暂停生产部署,并通知安全团队需要手动安全评估。

评估完成后,控制器会释放阻塞。

集成一个安全控制器到开发持续集成和持续交付系统中,可以帮助企业自动存储上一个评估之后所有的代码变动。评估完成之后,所有的代码变动都会被跟踪。在安全事故中,可靠的日志会显示事件发生的顺序,能够帮助你更快更容易地调查和缓解安全性问题。在评估之后,所有部署的更改可以通过持续集成、部署和安全控制器系统可见。定位并解决应用程序中的安全漏洞可谓是「大海捞针」。但通过了解相应的变动,可以大大地缩小问题范围。

目前,完整的应用程序安全评估自动化尚未实现,所以人工评估仍然必要。通过集成安全系统到 DevOps 的 CI / CD 中进行跟踪安全评估,不仅可以提高软件发布过程中的安全性,还能简化安全事件响应,从而提高部署或交付过程中定位并解决问题的能力。

原文链接:https://insights.sei.cmu.edu/devops/2015/10/integrating-your-development-and-application-security-security-pipelines-through-devops.html

本文系国内 ITOM 行业领军企业 OneAPM 工程师编译整理。我们致力于帮助企业用户提供全栈式的性能管理以及 IT 运维管理服务,通过一个探针就能够完成日志分析、安全防护、APM 基础组件监控、集成报警以及大数据分析等功能。想阅读更多技术文章,请访问 OneAPM 官方技术博客

本文转自 OneAPM 官方博客

© 著作权归作者所有

OneAPM蓝海讯通
粉丝 94
博文 631
码字总数 1266889
作品 0
海淀
私信 提问
什么是 DevSecOps ?

DevOps 不仅仅是开发和运营团队。如果您想要充分发挥出 DevOps 方法的敏捷性和响应力,则必须在应用的整个生命周期内同时兼顾 IT 安全性 。 为什么?以往,安全性会在开发的最后阶段由特定的...

别打我会飞
05/05
19
0
为什么 DevSecOps 对 IT 领导来说如此重要

DevSecOps 也许不是一个优雅的词汇,但是其结果很吸引人:更强的安全、提前出现在开发周期中。来看看一个 IT 领导与 Meltdown 的拼搏。 如果 DevOps 最终是关于创造更好的软件,那也就意味着...

37%
2018/07/29
0
0
Compuware 在 AWS 上新推出 Topaz 套件

  【IT168 资讯】在过去一年里,Compuware在Amazon Web Services Inc.(AWS)云上提供Topaz套件的开发和测试工具,成果在“主流主机”上又迈出了新的一步。   AWS的Topaz使得企业可以为其开...

it168网站
2017/10/23
0
0
CI/CD:DevOps 背后的推动力

DevOps并非完全是基于开发人员和运维人员应该一起协作的理念。DevOps是文化传播组织,经历了现代应用交付的途径。其最终目标是更频繁地发布高质量软件的能力。 DevOps通过促进沟通和协作来实...

oschina
2018/05/09
1K
0
来,打破十个DevOps坏习惯

一些常见的DevOps实践可能会变成坏习惯,现在就把它们扼杀在摇篮里,争取在2018年取得更大的成功。 在2017年,比以往任何时候都多的公司决定开始他们的DevOps之旅。就像任何新事物一样,有一...

云技术之家
2018/02/04
0
0

没有更多内容

加载失败,请刷新页面

加载更多

CSS--列表

一、列表标识项 list-style-type none:去掉标识项 disc:默认实心圆 circle:空心圆 squire:矩形 二、列表项图片 list-style-img: 取值:url(路径) 三、列表项位置 list-style-position:...

wytao1995
今天
4
0
linux 命令-文本比较comm、diff、patch

本文原创首发于公众号:编程三分钟 今天学了三个文本比较的命令分享给大家。 comm comm 命令比较相同的文本 $ cat charabc$ cat chardiffadc 比如,我有两个文件char和chardiff如上,...

编程三分钟
今天
7
0
QML教程

https://blog.csdn.net/qq_40194498/article/category/7580030 https://blog.csdn.net/LaineGates/article/details/50887765...

shzwork
今天
5
0
HA Cluster之5

对于使用heartbeat v2版的CRM配置的集群信息都是保存在一个名为cib.xml的配置文件中,存放在/var/lib/heartbeat/crm/下。CIB:Cluster Information Base,由于xml文件配置不是那么方便,所以...

lhdzw
今天
6
0
玩转Redis-Redis基础数据结构及核心命令

  《玩转Redis》系列文章主要讲述Redis的基础及中高级应用,文章基于Redis5.0.4+。本文主要讲述Redis的数据结构String,《玩转Redis-Redis基础数据结构及核心命令》相关操作命令为方便对比...

zxiaofan666
今天
11
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部