【AICon】探索RAG 技术在实际应用中遇到的挑战及应对策略!AICon精华内容已上线73%>>> 了解详情
写点什么

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

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

关注

评论

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

信创舆情一线--台积电宣布9月14日断供华为

统小信uos

华为 芯片 半导体

OOP面向对象编程(Object-Oriented Programming)概述

奈学教育

面向对象编程

阿里巴巴取消周报?别高兴太早,也不见得是一件好事

非著名程序员

阿里巴巴 程序员 职场成长 职场误区

小白教程——基于阿里云快速搭建自己的网站

诸葛小猿

阿里云 视频 网站搭建 小白

Rust多线程之数据共享

编号94530

rust 多线程 数据共享 什么是多线程

LeetCode题解:141. 环形链表,JavaScript,快慢指针,详细注释

Lee Chen

大前端 LeetCode

不变的是什么?

zhongzhq

依道而行 规律 变化

浪潮信息推动AI在线教育实现全面应用

Geek_116789

从IT建设模式变化看客户中心发展

环信

我成功转行做了java程序猿!

诸葛小猿

Java 程序员 转行

Java 基础知识整理

多选参数

Java

raft协议中, 候选人角色能参与投票吗

程序员老王

raft

高价值干货:这可能是你见过最全的网络爬虫总结

华为云开发者联盟

Python Web 爬虫 python 爬虫 内存数据库

编程核心能力之复用

顿晓

编程 复用 编程日课 技术思维

上班摸鱼,可以玩一整天,哈哈哈!!!

诸葛小猿

上班 摸鱼

IDEA命令行缩短器助你解决此问题:Command line is too long. Shorten command line...

YourBatman

intellij-idea spring IDEA springboot

全球区块链专利排行榜中国52家企业上榜

CECBC

第7周作业:web性能测压工具

Melo

你以为你真的理解 Closure 吗

double U

大前端 闭包

腾讯员工每天在岗不足 8 小时被辞?背后原因可能不止你看到的这些!

程序员生活志

腾讯 辞退

Week7 作业

Shawn

ARTS Week7

丽子

ARTS 打卡计划

LeetCode题解:1051. 高度检查器,JavaScript,桶排序,详细注释

Lee Chen

大前端 LeetCode

WordPress插件设计

心平气和

php 插件设计 插件系统 WordPress

【写作群星榜】7.11~7.17 写作平台优秀作者 & 文章排名

InfoQ写作社区官方

写作平台 排行榜 热门活动

图解:最短路径之如何理解“松弛”or“放松”?

淡蓝色

Java 数据结构 算法

程序员都应该知道的数据库避坑指南

Phoenix

MySQL 数据库 事务隔离级别

细数2020上半年PC端十大“黑恶势力”,一起康康是谁在“兴风作浪”

360安全卫士

Discuz插件设计

心平气和

php Diszuz 插件设计 插件系统

第7周笔记:性能优化

Melo

OOP面向对象编程(Object-Oriented Programming)概述

古月木易

面向对象 oop

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