DevOps落地实践中,安全机制应该如何保证,这篇文章从当前安全状况调查解读开始,同时介绍了DevOps落地实践时应该遵循的原则。

安全问题现状

Kaspersky Lab对26个国家超过5500公司进行了安全相关的调查,结果发现,安全风险无处不在,付出成本相当昂贵。

项番 调查结果
1 90%的业务曾发生过安全事故,而且,高达46%的业务由于内部或者外部的安全问题丢失过敏感的数据
2 大型企业平均每个安全漏洞要付出551,000$的直接成本,而对于中小型企业这个数字是38,000$
3 大型企业平均每个安全漏洞要付出额外的69,000$ 的间接成本, 而对于中小型企业这个数字是8,000$

安全漏洞影响


风险无处不在,漏洞影响巨大,主要的三种影响为:

项番 影响
1 对公司信用的影响
2 安全漏洞产生的额外的人员以及培训的费用
3 关键业务不能服务或者错误服务导致的额外保险等费用

安全漏洞类型


安全漏洞很多,在这其中,企业付出代价最大的三种类型分别是:

项番 漏洞类型
1 可以被木马等方式利用进行网络关键信息获取的漏洞
2 整合第三方业务服务引入的安全漏洞
3 网络设定相关或者容易被黑客进行攻击的安全漏洞

数据丢失的威胁来源

在一个数据变得越来越敏感和重要的年代,可能带来数据丢失的安全漏洞更加引起着广泛地关注。在这其中,以下三类严重威胁着企业的数据安全。

项番 数据丢失的安全威胁
1 恶意软件
2 钓鱼式攻击
3 内部员工导致的敏感数据泄露

DevOps实践中容易忽视的一环

安全,在DevOps实践中是非常容易被忽视的一环。所有人都认为安全非常重要,但是安全控制从那些角度着手,有哪些原则需要遵守,随着DevOps持续集成和持续部署的加快,安全机制如何才能保证跟上快速的节奏,这些都是我们在落地DevOps实践中需要考虑的问题。

安全实践原则

安全生产,重于泰山。落地实践,重在细节。如何落地,如下整理一些实际落地的实践原则:

原则一:以终为始,分析被攻击的价值所在

站在攻击者的角度,设身处地,将心比心,看看为什么会被攻击,然后便可以制定对应的应对措施了。

项番 价值分析自测问题
1 通过你的系统是否有可能接触到大量的用户私密数据,而这些数据在现在的时代具有重要的价值?
2 通过你的系统是否能够接触到很多用户名/密码,这些具有不同权限的用户名和密码是否能给攻击者带来很多价值,比如身份盗用?
3 通过你的系统是否能接触到用户的信用卡号码和账单地址等?
4 通过你的系统是否能接触到用户行为习惯这些隐私性的数据,而这些数据能够使得算法更加聪明?
5 通过你的系统是否能够接触到进行转账相关的关键性数据?
6

原则二:以客户为中心的安全策略

安全策略的创建,一般方式有如下两种:

项番 角度 安全策略
1 安全专家 保护企业资产的安全角度的防护策略
2 业务专家 满足客户的需求以增加收入的安全策略

由于安全专家与业务专家着眼点的不同,会导致在决策上产生很大分歧和摩擦。安全专家着重在防守,但是当安全方案在支持DevOps的快速响应客户需求,推动敏捷实践和持续创新落地方面则会显得步履蹒跚。而仅着眼于价值的业务专家往往对一些安全必须要注意的事项会选择性的无视。
而秉持以客户为中心的理念,使得安全和价值两者在实现时需要进行权衡和调整,安全专家采取一些不至于过于笨重的策略,保证安全的同时同时保障业务创新的敏捷性需求。

原则三:安全策略的左移

传统的方式下,开发团队/运维团队/安全团队各司其职,保证整个IT业务的整体实现:

部门 职责
开发团队 应用软件的开发和价值的交付
运维团队 保证服务的可用性和连续性
安全团队 负责安全保障

在这种构成之下,开发/运维/安全部门各有各自的KPI,职能相互独立,目标不同甚至产生对立和冲突,而且往往在交付到生产环境之前才会确认安全相关的确认,而安全事件的对应越晚付出的成本越高。根据研究,产品上线或者在运维阶段解决安全问题的成本往往远高于设计阶段:

阶段 修复安全问题的成本
产品发布以后 是设计阶段解决成本的4到5倍
运维阶段 达到甚至超出设计阶段解决成本的100倍

DevOps实践之中,尽早融入需要确认的安全性因素到各个阶段:

阶段 安全策略
需求阶段 客户合规性安全需求
开发阶段 代码静态分析,脆弱性检测
测试阶段 安全相关的测试内容
运维阶段 合规性和安全相关的监控

这样,尽可能早地引入了安全相关的机制,保证了安全保障的确认不会拖慢DevOps实践的节奏。

原则四:安全策略与工具的融合

在原则三中,我们意识到了安全策略要提前融入,工具在这其中也扮演着一个重要的角色。工具的自动化保障了安全在DevOps落地实践的顺畅执行。比如可以在如下阶段使用如下工具:

阶段 安全策略 工具融合
需求阶段 客户合规性安全需求 Anchore
开发阶段 代码静态分析,脆弱性检测 Sonarqube/Findbugs/Fortify
测试阶段 安全相关的测试内容 Robot/Selenium/UFT
运维阶段 合规性和安全相关的监控 Clamvn/Anchore/Clair

工欲善其事,必先利器。融合开发/运维/安全是一个非常繁重的工作,引入合适的工具能够做到事半功倍,使得开发/运维/安全的融合更加顺畅。

原则五:持续评估CI/CD的安全状况

持续集成和持续部署加快了交付的速度,但是自动化机制处理的不得当可能会带来很多安全上的隐患,所以评估CI/CD的安全状况以便持续改进非常重要。这里整理了一些常见的问题以便能够帮助进行自测和评估。

项番 安全评估自测问题
1 开发者能够看到其他项目的敏感信息么?
2 扩展问题1,各种用户的权限是否清晰,是否存在越权的风险?
3 密码的信息是否是用明文的形式进行存储?
4 匿名用户时候会取得过于宽松的权限比如可以执行所有项目的脚本?
5 构建的机制是否容易或者可能被攻击?
6 开发者是否可能轻易地删除其他项目的一些信息?
7 是否使用了一些其他的不安全的服务或者机制进行CI/CD?
8 是否存在上传脚本等自定义机制引入不安全的因素?
9 安全相关的基线管理是否融入和CI/CD之中?

原则六:创建适合DevOps的安全标准

安全不是为了做出一个不明觉厉的复杂安全报表让人不知所措,安全报告是为了进行决策而产生的,而产生安全报告的安全标准更应该考虑到这样。我们在原则三中提出了安全应该融入软件生命期的各个阶段,所以针对不同的阶段和不同的角色,安全标准的侧重点应该有所不同。

阶段 安全策略 安全标准侧重点
需求阶段 客户合规性安全需求 侧重于整体性的业务资源相关以及企业资产安全相关的内容
开发阶段 代码静态分析,脆弱性检测 代码的漏洞或者缺陷
测试阶段 安全相关的测试内容 系统功能性的正确性和安全相关的测试内容
运维阶段 合规性和安全相关的监控 基础设施和配置方面存在的缺陷和漏洞

原则七:主动监控而不是被动应对

如果先于攻击者发现安全漏洞并将其修复,而不是在遭受到攻击之后被动的应对,损失则能免掉很多。主动监控安全问题,尽可能早地的发现可能会被攻击者或者对手利用的缺陷,则能带来极大的好处。
所以强化以上各个原则,达成融合安全和自动化于DevOps实践之中,在持续集成和持续部署中尽早地发现可能存在的隐患,主动监控,快速反馈,主动应对,对企业会很有帮助。

原则八:自我攻击和验证

依据DevOps环境一致性原则,Staging环境尽可能地与生产环境类似,可以在Staging环境中验证可能的各种攻击,先于可能的攻击者对自己的系统进行攻击和验证,以激进地发现可能的问题,降低了大部分潜在可能的简单外部攻击带来的影响。

原则九:安全的持续评估&安全规则固化

安全的对应是一个长期的过程,是企业在持续学习中应该不断保持的状态,同时更应该不断提升安全的等级以保证业务的连续性。通过不断的对安全进行评估,确定出需要强化的安全事项,不断将这些事项固化成最佳实践,然后标准化,最后自动化到整体的流程之中,以保证安全机制的整体不断增强和持续改进。

总结

安全是一个被所有人口头上非常重视,但是往往在实际的实践中选择性无视的一个话题。通过了解卡巴斯基实验室对于安全性相关的调查状况的解读,了解到了目前企业安全状况不容忽视的现状。同时阐述了随着DevOps持续集成和持续部署的加快,安全机制如何才能保证跟上快速的节奏,应该从那些角度着手,有哪些原则需要遵守,细节上如何落地的方式。

DevOps企业实践指南(8): 安全机制相关推荐

  1. DevOps企业实践指南(4): 第二条原则:反馈

    DevOps的第二条原则名为反馈,它存在于价值流的各个阶段的逆向过程中,通过反馈而使得工作更加安全和可控.而反馈的重要性在大型复杂系统中显现的更加重要,在故障出现最初端倪的时候就能检测到的能力对于一个 ...

  2. DevOps企业实践指南(5): 第三条原则:文化

    第一条原则体现了价值流的从左向右的流动,第二条原则是快速和日常的行为带来的从优向左的反馈.第三条原则聚焦于创造一个持续学习和持续实践的企业文化.而这些原则使得组织中的成员能够不断地积累知识和经验,而这 ...

  3. DevOps企业实践指南(3): 第一条原则:流动

    DevOps的三条基本原则:流动/反馈/文化.第一条原则(流动)需要达成快速平稳地从开发向运维的价值流动,从而更快的进行价值交付.在这个过程中,作为开发或者运维的局部目标被弱化,而开发和运维等协同所产 ...

  4. DevOps企业实践指南(1):DevOps能为我们带来什么

    帮助盈利/提升文化/加速效率是DevOps实践的三大目标,上世纪八十年代在制造业领域展开的那场如火如荼的精益实践的变革还历历在目,而DevOps在软件领域将要或者已经掀起的风浪也是如出一辙. Dev+ ...

  5. devops实践指南_开发DevOps的实用指南:减少八卦的步骤

    devops实践指南 我的一个软件开发的朋友最近问我,如果我可以告诉他,他可以做什么亲自来鼓励更多的合作与理解的工作环境-一个与更一致建议 从未来 的社区的DevOps . 我们之间的对话很长,他的情 ...

  6. 5种阿里常用代码检测推荐 | 阿里巴巴DevOps实践指南

    简介: 随着业务演进和团队扩张,软件规模和调用链路越来越复杂.如若没有良好的代码检测机制,只依靠功能性验证,团队技术债会越累越高,开发团队往往要花费大量的时间和精力发现并修改代码缺陷,最终拖垮迭代进度 ...

  7. 如何提升本地开发联调效率|阿里巴巴DevOps实践指南

    编者按:本文源自阿里云云效团队出品的<阿里巴巴DevOps实践指南>,前往:https://developer.aliyun.com/topic/devops,下载完整版电子书,了解阿里十 ...

  8. DevOps实践指南 记录

    DevOps实践指南 Gene Kim Jez Humble Patrick Debois John Willis◆ 导言:展望DevOps新世界>> 技术债务是指我们当前所做出的决定会导 ...

  9. 阿里巴巴DevOps实践指南 | 数字化转型下,DevOps的根本目标是什么?

    简介:数字化转型是信息技术与产业的结合.需要转型的不仅仅是各个传统的产业,也包含信息产业本身,如互联网公司.DevOps 是数字化转型的重要组成部分,DevOps 的体系和实践也必须服务于数字化转型的 ...

最新文章

  1. hackthon提高
  2. 通过 ViewState 保存 Self-Tracking Entities
  3. 【二叉树】【144. 二叉树的前序遍历】【中等】
  4. linux之多任务的同步与互斥
  5. js 控制鼠标_JS逆向 | 面向小白之eval混淆
  6. 解决 吃货阶段02 0928
  7. Java下使用Apache POI生成具有三级联动下拉列表的Excel文档
  8. 【手写数字识别】基于matlab GUI贝叶斯+线性分类器手写数字识别【含Matlab源码 828期】
  9. fofa域名检测存活工具_检测cdn和寻找真实ip的一些方法总结
  10. 浅谈12306核心模型设计思路和架构设计
  11. c语言中begin用法,C++ deque cbegin()用法及代码示例
  12. 开启Windows远程桌面
  13. VBA中获取合并单元格的真实地址
  14. DJNZ指令:DJNZ R6,D2 ;
  15. 离散数学_九章:关系(5)
  16. 电子设计教程50:16*16LED点阵屏驱动-LED点阵屏工作原理
  17. 中文出现乱码最常见的几种方式解析
  18. 让drawText绘出中文
  19. replace()和re.s()用法
  20. 总投资127亿!中山大学深圳校区今年底完工

热门文章

  1. Pathon开发象棋小游戏
  2. 技术人员行走职场三大陷阱之“盲目创业”
  3. 750W高PF值充电机用电源方案 ;输出50V 15A 釆用UCC28070+ST6599+PIC16F193X芯片方案组合
  4. 电商美工之ps高级黑白照片效果处理的技巧
  5. Java和C#环境中制作二维码图片
  6. Win10利用IIS搭建本地网站运行环境
  7. 全是干货,机器视觉基础应用知识详解
  8. 2013汇总计算 广联达gcl_广联达新功能GCL2013的运用过程及感受
  9. 万网mysql连接_[转载]如何远程连接万网的mysql数据库?
  10. 【DM】达梦数据库(DCA培训)学习分享