速来报名!AICon北京站鸿蒙专场~ 了解详情
写点什么

从 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:032044
用户头像

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

关注

评论

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

阿里内部流传的JDK源码剖析手册!GitHub已获上千万的访问量

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

Github惊现神作,这份算法宝典让你横扫各大厂算法面试题

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

八家知名大厂联合手写的Java面试手册刚上线!竟就到达巅峰?

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

索引下推,这个点你肯定不知道!

艾小仙

MySQL MySQL 高可用

AI应用说-生产制造专场开课啦!

百度大脑

人工智能

kubernetes增加Node详细步骤

消失的子弹

Kubernetes 云原生 k8s kubeadm

云小课|ModelArts Pro 视觉套件 零代码构建视觉AI应用

华为云开发者联盟

AI ModelArts Pro EI智能体 视觉套件

创业增长黑客 – 如何低成本获取种子用户|冷启动实战案例 – 挖掘用户需求背后的真实动机

蒋川

用户增长 需求落地 产品经历 业务增长 数据思维

Github上标星250k的阿里Java面试复盘手册,看完竟如此的无敌?

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

2021预备秋招:Java面试必看的1000道面试解析,助你通过大厂面试

Java 程序员 架构 面试 后端

在GitHub发布秒获百万访问!就凭这份Java程序性能优化实战笔记?

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

挑战倒计时!“互联网+”大赛华为命题加速高阶能力提升

华为云开发者联盟

华为云 鲲鹏 大赛 “互联网+” 昇腾AI

书单 | 8月新书榜单TOP10,快来看看都有谁吧~~

博文视点Broadview

拆分电商系统为微服务

面向对象的猫

Python实现批量压缩文件/文件夹——zipfile

Python研究者

8月日更

阿里P8整理出SQL笔记:收获不止SOL优化抓住SQL的本质

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

千金难求!火遍GitHub的这份阿里Java面试汇总已上热搜

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

Regan Yue带你一起学习微软AZ-900认证的有关知识「 第V章」

Regan Yue

微软 8月日更 AZ-900

CC通用成绩查询小程序(云开发无服务器解决方案)

CC同学

别再找我给你重启程序啦!让你supervisor帮你搞定

Java 程序员 架构 后端

GitHub惊现!全网首份开源的深入理解JVMG1GC的算法与实现手册

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

封笔之作!阿里P8手写的Java高手是怎样练成的原理方法与实践笔记

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

快速生成好看实用的接口文档

与风逐梦

后端 接口文档

接口测试参数化(环境变量使用)----apipost

Proud lion

大前端 后端 Postman 开发工具 接口文档

带你掌握JS防抖与节流

华为云开发者联盟

面试 定时器 节流 JS防抖 触发

反向压力

程序员鱼皮

架构 系统设计 大前端 后端 实时计算

阿里被转载上100W次的Java面试题教程!已助我拿下9家大厂offer

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

五分钟搞定Docker安装ElasticSearch

咔咔

Docker 死磕Elasticsearch

微信自研生产级paxos类库PhxPaxos实现原理介绍

OpenIM

IM

遇到联邦计算数据碰撞难题怎么办?不妨试一试PSI

华为云开发者联盟

隐私保护 隐私计算 PSI 联邦计算 数据碰撞

Vue进阶(八十五):vue-router Hash模式跳转及懒加载

No Silver Bullet

Vue 路由 8月日更

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