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

DevOps 与信息安全

  • 2014-05-03
  • 本文字数:2203 字

    阅读完需:约 7 分钟

DevOps 在国内社区逐渐推广,其关注于改善开发与运维团队之间的沟通与协作。最近,来自于 Yellow Spider 公司的 COO Leslie Sachs 和顾问 Bob Aiello撰文分享了如何使用 DevOps 最佳实践来使您的信息安全更加健壮和有效。

首先,作者回答了为何信息安全是 DevOps 的关键组成部分之一:

DevOps 在确保开发人员与运维人员能一起工作并且更有效率方面非常成功。通过 DevOps,运维团队可以获得他们所需要用于了解如何建立有效和可靠应用程序构建、打包和部署过程方面的信息。而信息安全组也同样有许多与运维团队一样的需求。此外,InfoSec 还需要获得他们需要用于确保整个系统是安全和可靠方面的信息。正如 DevOps 帮助开发和运维团队能更有效地一起工作一样,DevOps 也可以帮助开发和信息安全团队更有效地一起工作。在 DevOps 中,持续部署已经成为 DevOps 的一个关键实践,并且关注于通过自动化的构建、打包和部署来自动化部署流水线。通过提供一个平台可以在开发生命周期里尽早访问和定位安全问题,信息安全团队也同样能够从部署流水线上得到显著的获益。只要一旦有风险评估被介入,有效的安全保障就应当永远与之同步进行。

需要强调的是,DevOps 可以帮助定位安全风险。作者指出,作为软件或系统开发工作的一部分,风险需要被理解和定位。安全保障不能仅仅在开发过程的末尾才加入进来。系统需要在开发生命周期的最开始,就将安全保障与设计和开发一道同时得到关注。

  • DevOps 提供了必需的构造来帮助定位众多安全风险,这是创建任何复杂技术系统的内在要求。
  • 安全漏洞往往是各种事件的直接后果。例如,在 C/C++ 系统中进行不恰当的编码实践就可能导致缓冲溢出条件有机会被恶意攻击者用于实施越级程序权限。缓冲溢出攻击经常被攻击者所利用,来获得系统的控制权,甚至可以很有效地获得 root 权限。
  • 运行时事件的发生也可能导致不恰当的安全控制,例如发生在不同组件之间的身份验证与授权。一个常见的安全问题根源就是来自于由于某次部署所应用的不正确的访问权限。
  • 另外一个安全问题领域是确保所部署的是正确的代码。在部署过程中所带来的错误有可能会暴露给恶意攻击者。
  • 在不同接口之间的配置问题经常会曝露给攻击者,以被其用于尝试侵入系统。一旦系统缺乏防范措施,不恰当的安全控制问题就有可能导致非授权的变更变得非常难以识别,而且难于执行鉴定证明来查清到底有哪些变更是由于错误或是由于恶意目的所造成的。

作者指出,通过有效的源代码管理来构建安全的系统,软件质量需要从最开始构建。

DevOps 及部署流水线帮助有效地创建和提供测试环境,以用于评估和测试在组件间接口上的安全漏洞。通过以及时到位的方式提供一个健壮的测试环境可以增强安全性,通过提供一个自动化的测试平台可以用于识别需要被定位的安全问题。一旦代码中的问题被找到,它们就能被定位作为缺陷或变更请求,从而在它们的整个生命周期中被追踪到,以确保已被识别的风险可以被定位。

在“开发、运维和信息安全团队之间的协作”方面,作者强调,信息安全团队通常非常缺乏足够能理解复杂系统常见的内在自有安全漏洞方面的技术专家。

正如 DevOps 能改善开发与运维之间的沟通,DevOps 同样能增强信息安全团队的能力,它允许信息安全团队完全理解整个应用以及它是如何构建、打包和部署的。这一知识可以帮助 InfoSec 维护一个相关的和有效的关注。通过理解系统的基础架构,InfoSec 同样可以帮助理解何时安全会被突破以及应该采取什么样的措施应对该安全漏洞,尤其在基础设施自身缺乏安全免疫力的前提下。在许多案例中,这对使用自动化的过程重建服务器来说非常关键。

在“自动化应用程序的构建、打包和部署”方面,作者指出,可以以多种方式来创建自动化过程来构建、打包和部署代码来支持敏捷迭代开发。

自动化构建过程是实现持续集成(continuous integration)和持续交付(continuous delivery)的一个前提条件。构建过程应当自动化地嵌入不可改变的版本 ID 到每一个由构建过程所使用或所创建的配置项(configuration item,CI)中。这也是加密哈希值(hash)应当被创建的地方。冲刺里程碑发布版本(Sprint milestone release)可以被用于测试和验证在项目启动阶段(inception)尚未被完全理解的需求。更加重要的是,关于如何构建每一个组件的技术细节可以被隐含性地文档记录,并可以被包括了信息安全方面的感兴趣的利益相关者所审阅。在代码中创建变体可以建立应用程序的测试,包括机制化代码来建立与安全相关的测试。

当然,要想实现信息安全,执行入侵测试是是必不可少的步骤。

部署流水线提供了一个有效的框架来创建所必须的测试环境来执行入侵测试。通过 DevOps,入侵测试可以在整个软件和系统生命周期中贯彻进行。通过改善开发和信息安全团队之间的沟通,DevOps 及 InfoSec 都可以在通常专门为入侵测试所留出的短小时间片断里设计和执行更加有效的入侵测试。部署流水线同样可以使信息安全人员可以获得对于有效评估安全漏洞来说非常关键的技术信息。

最后,作者指出,必须要提供安全可信的应用程序基础。

为了确保可信的应用程序基础,应当使用可以安全识别准确二进制代码以及所有其他配置项(包括 XML 及属性配置文件)的过程来构建应用程序代码,以便您可以毫无疑问地证明正确的代码确实被部署和确认没有非授权的变更发生。这些过程通常会使用在应用程序自动化构建和打包过程中就首先创建的加密哈希值。一旦代码被部署,哈希值就可以被重新计算来验证所有的代码是否被正确部署。

2014-05-03 08:041870
用户头像

发布了 501 篇内容, 共 257.2 次阅读, 收获喜欢 61 次。

关注

评论

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

五十万字总结!2023最新Java面试八股汇总(含答案,收藏版)

采菊东篱下

Java 面试

关于Spring Cloud Alibaba,看阿里这篇笔记真香

Java你猿哥

分布式事务 微服务 Spring Cloud 服务治理 Spring Cloud Aliababa

阿里巴巴工程师1480道Java面试题及答案整理( 2023年 整理版)

Java你猿哥

Java MySQL redis JVM java面试

Office 2021和 Office 365 有什么不同之处?office 2021 和 365 区别是什么

Rose

Office 365 Office 2021 office下载

Parallels Desktop如何退出账号?PD18虚拟机退出账号方法

Rose

pd18虚拟机 PD如何退出账号 Parallels Desktop下载 Parallels破解版 Mac虚拟机下载

Java面试集锦

源字节1号

微信小程序 开源 软件开发 后端开发

CMake构建指南:如何提高C/C++项目的可维护性

小万哥

Linux 程序员 C/C++ 后端开发 cmake

Maven Cannot resolve plugin org.apache.maven.plugins

Andy

iOS MachineLearning 系列(19)—— 分析文本中的问题答案

珲少

基于Redis讲解,学懂缓存雪崩,缓存击穿,缓存穿透

做梦都在改BUG

Java redis 缓存穿透 缓存击穿 缓存雪崩

学懂缓存雪崩,缓存击穿,缓存穿透仅需一篇,基于Redis讲解

Java你猿哥

Java redis 缓存击穿 缓存雪崩 Redis缓存穿透

2023-05-27:给你一个只包含小写英文字母的字符串 s 。 每一次 操作 ,你可以选择 s 中两个 相邻 的字符,并将它们交换。 请你返回将 s 变成回文串的 最少操作次数 。 注意 ,输入数据

福大大架构师每日一题

Go 算法 rust 福大大

使用Go语言实现门面模式:简化复杂子系统的访问

Jack

非常全面的 SpringBoot 保姆级笔记,面面俱到,太牛了

做梦都在改BUG

Java spring 微服务 Spring Boot 框架

阿里“妈宝级”之作,Kubernetes原理剖析与实战应用手册,太全了

做梦都在改BUG

Java Kubernetes k8s

photoshop神经滤镜是什么,神经滤镜功能揭秘~

Rose

photoshop神经滤镜 Neural Filters插件 ps滤镜下载 PS2023破解

DR5白金版 for mac(PS一键磨皮插件Delicious Retouch)支持ps2022 v5.0汉化版

Rose

DR5白金版 PS一键磨皮插件 dr5插件 汉化版PS插件 dr5插件教程

爆肝了!阿里最新版的这份Spring Security源码手册,狂揽GitHub榜首

做梦都在改BUG

Java spring spring security Spring Security OAuth

软件测试/测试开发丨Web自动化 PageObject 设计模式

测试人

程序员 软件测试 自动化测试 测试开发 Web自动化测试

工厂+策略在springboot项目中的使用场景

做梦都在改BUG

Java Spring Boot 工厂模式 策略模式

简直人生外挂,直接涨薪25K,跪谢这份Java性能调优实战宝典

做梦都在改BUG

Java 性能优化 性能调优

分布式事务的21种武器 - 7

俞凡

架构 云原生

C语言编程—数组

梦笔生花

国外顶级架构师编写2580页DDD领域驱动设计笔记,看到内容后破防了

做梦都在改BUG

Java 架构 领域驱动设计 DDD

Java面试很难?啃完阿里老哥这套Java架构速成笔记,我都能拿30K

做梦都在改BUG

利用springboot初始化机制三种实现策略模式的应用

Java你猿哥

Java spring Spring Boot 设计模式 ssm

深度学习进阶篇-预训练模型[4]:RoBERTa、SpanBERT、KBERT、ALBERT、ELECTRA算法原理模型结构应用场景区别等详解

汀丶人工智能

自然语言处理 深度学习 预训练模型 Transformer BERT

AE模板:短信消息聊天对话气泡动画Smart Text Message

Rose

AE模板下载 Smart Text Message 对话框气泡生生成器插件

阿里巴巴Java开发手册(华山版)

Java你猿哥

Java MySQL ssm JAVA开发 Alibaba

文心一言 VS 讯飞星火 VS chatgpt (23)-- 算法导论4.2 5题

福大大架构师每日一题

福大大 文心一言 讯飞星火

耗时一周整理的牛客网上最火Java面试八股文,面试必备

架构师之道

Java 面试

DevOps与信息安全_安全_崔康_InfoQ精选文章