写点什么

从 DevOps 中可供安全借鉴的五项经验

  • 2017-02-03
  • 本文字数:3665 字

    阅读完需:约 12 分钟

关键点

  • DevOps 提高了速度并扩张了规模,让安全团队面临着新的挑战。
  • 安全从业人员必须将 DevOps 原则引入他们的工具和工作流,以便跟上现代应用交付的步伐。
  • 安全解决方案应该使用 DevOps 所热衷的模块化、自动化和可扩展的技术进行构建和部署。
  • DevOps 的概念,比如标准化配置、不变的基础设施以及镜像系统等都有助于减轻安全问题的复杂性。
  • DevOps 风格的透明性和问责制是确保在安全团队内进行有效合作的关键。

因为 DevOps 对于现代企业的重要性与日俱增,安全从业人员必须问问自己,他们可以从这种文化转变中学习到什么。DevOps 是组织想法、过程和软件工具的交融,它已经帮助一些世界上最大的公司提高了劳动生产率,实现了更快的产品交付,并以极快的速度提供了更高质量的产品。一些企业,比如 Netflix、谷歌、亚马逊等都是高绩效、敏捷组织的例子,它们认定 DevOps 是它们数字业务成功的基础。

具有有效的 DevOps 实践的公司明白:在今天的技术驱动、赢家通吃的竞争格局下,一个企业的成功往往取决于其不断学习、创新并更快地提供前沿的、客户满意的产品的能力。同时,这也为其他的公司内部门提出了挑战,比如安全。更快速和方便地发布分布式应用程序会大大地增加企业的风险,如果相应的安全问题不能以与它们部署和扩展相同的速度得到解决。安全工作流、工具和运维必须不断改变以便跟上变化。

最近,权衡 DevOps 速度与现有安全要求的需求已经催生了一个名为 DevSecOps 模型。DevSecOps 基于“安全问题,人人有责”的原则。它强调应用程序开发人员可以怎样把安全检查与他们的集成和部署流水线构建到一起。但DevSecOps 对运行时的安全性关注得比较少,而这却是企业应用程序和数据最容易受到攻击的时候。运行时的安全性包括应用程序正在运行时可能遇到的所有类型的威胁,并且它包括一些功能,比如攻击检测、事件响应和政策执行。现在这些功能很大程度上仍然依赖于孤立的工具和手动的工作流程。此外,运行时的安全性不能,也不应该是整个企业中的每个人的责任——相反,这些事情最好是由安全从业人员进行处理。

除了将安全功能构建到DevOps 的工作流程中,安全团队应该评估他们如何可以将DevOps 的原则整合入他们的工具和流程之中。这里有五个DevOps 的做法,供安全从业人员参考。

构建模块化系统

DevOps 理念的关键是构建小团队可以很容易管理的系统。许多由 DevOps 团队使用的工具和方法都非常喜欢用模块化方式组装的应用程序。这样的应用程序例子包括微服务架构 Docker 等容器技术、以及 12 要素应用程序方法论等。微服务使开发人员能够专注于优化自己的应用程序部分,这些应用程序通过 API 与其他系统对接。这简化了开发、集成以及部署。

安全课堂:今天的安全团队要应对的是混杂拼凑起来的几十种安全工具,而且彼此之间还难以整合到一起。用模块化的方法构建安全系统将大大降低运维的复杂度、时间以及整合和管理这些解决方案的成本。安全从业人员应该寻找新的工具,这些新工具使用与实现模块化应用的程序开发相同的框架。使用 Docker 容器中运行的微服务进行交付的安全可以很容易地分布在整个应用程序的集群,并且由 Kubernetes Mesosphere DCOS 或者 Docker Swarm 等系统管理。这意味着安全工具可以作为另一组应用程序融入进来,而且可以和受它们保护的应用程序一起进行自动化和管理。

依赖于自动化和可扩展性

DevOps 的首要目标是实现更快的速度和敏捷性,以便更好地服务客户。团队实现这一目标的方法是通过对高水平的自动化和可扩展性的设计,来使基础设施完全可编程。例如, Netflix 公司一直专注于将公司的整个软件发布平台自动化,以便它可以按需要在几分钟内扩展到成千上万的服务器上,确保客户总是可以访问到他们想要的内容。自动化还有额外的好处,那就是减少人工操作错误的可能性,而这正是导致巨大花费的服务中断或频繁停机的原因。

安全课堂:安全的任务是减轻对业务的攻击的风险和影响。实现自动化能够更快地进行检测,这给了安全团队更多的时间来优化响应和恢复。随着新的应用程序不断地在云上快速部署和扩展,攻击面也可以很快地扩展,并且不断变化。数以千计的微服务应用程序可以在几秒钟内被启动或破坏,留下可视性和数据收集的差距。为了减少潜在的攻击,同时保留现有的开发工具,安全工具必须基于自动化和可扩展性来构建,以适应这样的新应用交付模式。将运行时安全生命周期自动化也减少了攻击者可能利用的配置错误的可能性,有助于减少安全事故。依靠传统的、分散的、手动的安全流程已经不够了。

使用标准化的配置

在 DevOps 中,团队利用一致的基线配置操作可以更容易地帮助识别操作问题。团队以运行服务需要的基础图像、应用程序和依赖性等形式来打包“基础设施即代码”。这确保了系统是相同的并且可复制,以趋向更好的运维条件。监测到的内容与标准化配置之间的差异让运维人员能够迅速定位和解决问题。将基础设施视作“不可变的”,使得运行中的系统永远不会被重新配置,这种做法正日益成为一项最佳实践,采用Docker 等应用程序容器技术为这项实践提供了便利条件。新系统已经整合了任何需要的变化,它简单地取代了运行中的系统。这种方法可以让团队很容易就停止有问题的系统,并且在同一时间重新发布,进入可预知的、良好的状态。

安全课堂:安全团队差不多都能实施被认可的安全配置、分析鉴定和进行潜在问题分析等。这些标准化的配置都将对应于正常的系统活动。偏离正常设置的运行时活动可用于识别异常或恶意攻击模式,这些模式反映了实时的攻击或折衷的指标。当检测到这样的活动时,安全团队可以将基础设施视为不可变的,快速停止受影响的系统,并运行起新的、未受影响的系统,而不必处理修补生产系统带来的复杂性。

保持可审计的“真实数据来源”

DevOps 文化通过变更跟踪和版本控制技术来促进跨团队的协作,以便保持充分的透明度,改进变更管理,并简化系统恢复过程。对配置的修改都被记录下来,以获得一些详细信息,比如变更是什么时候发生的、谁请求进行变更以及变更的影响等。通过使用这种方法,开发和运维都可以对应用程序和基础设施的完整生命周期获得更深入的了解,这有助于促进更好的跨职能团队之间的沟通,以及更高的可靠性。

安全课堂:安全团队应该确保他们使用工具去收集来自所有系统的全面的数据,以保证可操作的“真实数据来源”是随时都可以得到的。现在大部分数据要么是孤立的,要么聚集在一个集中的SIEM (Security Information and Event Management,安全信息和事件管理)系统中,没有进行必要的建模来让它们具备可操作性。即使是在治理和合规性等需要审计线索的情况之外,捕捉对所有规则和配置、还有安全策略的变化,这有助于简化安全团队内的协作和问责制。安全从业人员平时可以每个人都专注于运行时安全生命周期的具体部分,从配置仪器到取证等等,但当出现安全事件的时候,他们仍然可以更容易地采取协调行动。

利用有镜像的、有主备的部署

蓝绿部署方法是经常被团队用来尽量减少停机时间的方法。这种技术使用两套相同的生产环境,即在任何给定的时间里,一套生产环境是在线服务的,另一套处于备用状态。新版本只在备用系统中进行测试。一旦变更得到了验证,就将启用备用系统,并将在线服务系统切换到备用状态。如果在验证过程中遇到任何未预料到的错误或运维问题,团队都能够安全地将最新版本回滚,无需对在线系统作出任何更改。

安全课堂:安全团队也可以应用相同的技术来为管理和安全更新打补丁。他们可以在把补丁发布到在线生产环境中之前,先在镜像系统对它们进行测试。比如,一些操作系统供应商现在使用了双重主备根分区来简化补丁管理,以在必要情况下,使系统具备安全回滚版本的能力。这还有额外的好处,那就是保证了更高的系统可用性,这从属于保密性、完整性和可用性(Confidentiality, Integrity, and Availability, CIA )的安全管理框架。安全团队可以利用这种方法来观察补丁的稳定性和有效性,这对生产环境很重要。他们可以在实施大规模发布之前就已经确保完全修复了安全问题。

结论

当今时代,各种规模的企业都在寻求更高的敏捷性和更快的速度,以加速数字化改造。通过采用DevOps,应用程序开发人员能够专注于自己最擅长的事情:创建和发布新软件。安全从业人员也应该继续专注于他们做得最好的事情:把攻击者阻挡在外。正如DevOps 的出现满足了新的业务需求一样,我们也需要安全领域内的新方法来应对由DevOps 推动的世界的挑战。这些新的安全方法自己必须与依赖于模块化、自动化、标准化、可审计性和镜像系统的DevOps 实践整合起来。通过将这五项DevOps 原则应用于新工具和新的工作流程,安全能够成为企业重要优势,有助于企业在今天快速变化的市场中获得成功。

作者简介

Wei Lien Dang是 StackRox 公司的产品副总裁。StackRox 公司是一家安全公司,它正在构建一个新的平台来为现代企业中的应用程序提供保障。此前,他是 CoreOS 公司的产品主管,并曾就职于亚马逊公司网络服务、Splunk 公司和 Bracket Computing 等公司,担任安全和云基础设施产品等高级产品管理职务。

阅读英文原文 Five Lessons Security Can Learn from DevOps

2017-02-03 16:031971
用户头像

发布了 152 篇内容, 共 70.4 次阅读, 收获喜欢 64 次。

关注

评论

发布
暂无评论
发现更多内容

免费下载丨一看即会,Serverless 技术进阶必读百宝书

阿里巴巴云原生

阿里云 Serverless 云原生

干货演讲!龙蜥自动化运维平台SysOM 2.0调度、内存相关诊断功能介绍 | 第 70-71 期

OpenAnolis小助手

内存 系统运维 sig 龙蜥大讲堂 SysOM

基于人形检测的划区域客流统计

华为云开发者联盟

人工智能 华为云 华为云开发者联盟 企业号 3 月 PK 榜 人形检测

阿里云函数计算助力高德RTA广告投放系统架构升级

阿里巴巴中间件

阿里云 云原生 函数计算

云快充研发中心平台架构师谈云原生稳定性建设之路

阿里巴巴中间件

阿里云 容器 云原生

软件测试/测试开发 | 测试平台开发-前端开发之Vue.js 框架

测试人

软件测试 测试开发 测试平台

科技大势怎么看 2023怎么干?

加入高科技仿生人

人工智能 低代码 科技 数字孪生 6G

BI工具数据看板哪个好,瓴羊Quick BI整不错!

流量猫猫头

技术专家云集,OpenHarmony技术峰会分论坛聚焦内核及视窗创新

Geek_2d6073

转型调研 | “鼎新汇•企业行”第一站:走进中国联通软件研究院

信通院IOMM数字化转型团队

数字化转型 IOMM 鼎新汇•企业行 鼎新杯

好工作怎么选?五个核心的考量

小谷哥

Nacos+ThreadPoolExecutor构建动态线程池

小小怪下士

Java 程序员 线程池

车企数据分类分级的实践指南出炉!“数据安全推进计划”发布,奇点云参编

奇点云

数据安全 奇点云 数据分类分级 车企

如何基于 Antmove 将小程序快速迁移至 FinClip 环境

FN0

小程序 支付宝小程序 finclip

从青铜到王者,揭秘 Serverless 自动化函数最佳配置

阿里巴巴云原生

阿里云 Serverless 云原生

详解Redis的主从同步原理

C++后台开发

redis 中间件 主从同步 后端开发 Linux服务器开发

阿里云 ACK@Edge 助力元戎启行加速进入自动驾驶规模化生产

阿里巴巴云原生

阿里云 云原生容器 云原生r

软件测试/测试开发 | 跨平台API对接(Java)

测试人

软件测试 自动化测试 测试发开

60% 程序员大呼:我要远程办公!

引迈信息

敏捷开发 低代码 远程办公

从资源弹性到数据弹性,乾象如何将云上量化研究效率提升 40%?

阿里巴巴云原生

阿里云 云原生

大国重器用友BIP,助力贸易行业数智化转型

用友BIP

数智化

附安装包和快捷键!5个不能错过的 Blender 插件

Finovy Cloud

软件 blender 3ds Max云渲染

分投趣fintoch去中心化借贷交易dapp系统开发搭建

开发微hkkf5566

消灭报销,从超级差规开始,用友BIP解决大型企业商旅费控核心难题用友BIP

用友BIP

差旅报销

尚硅谷Redis7实战教程发布

小谷哥

搞定预设,让你的 ChatGPT 不受限制 | 社区征文

极客飞兔

人工智能 聊天机器人 openai ChatGPT

怎么预防LED显示屏静电

Dylan

设备 LED显示屏 全彩LED显示屏

博睿数据数智领航营全国巡讲火热预约中,扫码即可参与报名~ ​​​

博睿数据

智能运维 博睿数据 数智领航营

Nydus 在约苗平台的容器镜像加速实践

SOFAStack

开源 互联网 开发

关于印度跨境数据传输,印度放宽了跨境数据传输

镭速

从DevOps中可供安全借鉴的五项经验_安全_Wei Lien Dang_InfoQ精选文章