想在自己公司建立 DevSecOps 计划?没问题,企业规模无论大小,都可轻松实现。这里有5个基本的 DevSecOps 原则可以帮助你启动。当然,如果你对 DevSecOps 还不太熟悉,不妨先看看第一篇文章《什么是 DevSecOps?系列(一)》。

以客户为中心

以客户为中心,可以协调业务与安全之间的关系,从而确保制定准确、完备的安全策略,并让企业的所有成员都能够支持和实施。但是,要把安全和业务产出结合起来,有时其困难程度犹如要把油和醋混合起来。安全专家使劲了浑身解数力图攻破软件,往往还是很难将这些安全信息和客户以及最终的业务产出关联起来。

实际上,安全的复杂性,以及安全专家和业务专家在工作重心方面存在的巨大差异,会导致决策出现重大分歧。安全专家考虑的是如何保护企业资产的安全,而业务专家关注的是如何冒险满足客户的需求以增加收入。这些原则性的差异会导致双方产生极大的摩擦。

抛开这些分歧,秉持以客户为中心的理念,可以促使安全专家采取更好的安全策略,同时也可以减少复杂性造成的风险控制障碍。此外,安全计划及产出可以适应客户需求和业务产出,其中的复杂性也可以通过自动化和报告进行展示。

最终,支持业务产出的必要控制应当简单易懂,让安全实现成为人人都可以做的事情。

扩展,扩展,扩展

除了以客户为中心,安全扩展也是必要的。如果客户需要快速创新业务来解决问题,而安全专家只考虑自己的安全防护功能,这么做显然不恰当。相反地,他们应当带领安全团队创建相同的工作模式和条件,使安全方案在支持 DevOps 和持续创新之余还要与业务产出相协调。随着连续部署、精益创业、敏捷型、DevOps 和其他创新驱动法成为常态,安全的进一步发展也迫在眉睫。

毋庸置疑,安全专家必须具备精益生产的意识,通过要求软件定义平台帮助收集、解释和报告有关业务资源与环境的安全分析。

实现安全扩展,其实就是通过减少人工处理量以及实现低风险产出需耗费的时间量,达到解决问题的目的。但是,对于安全专家而言,要使安全策略透明化、简单化,以便所有人都能够参与实施,这并不是件容易的事情。不过,努力之下,他们还是有可能改进和发展自动化,允许通过可以扩展安全的自助服务进行风险决策。

「以安全为准则」具有可迁移、共享和完善等附加优势,因为它不是一个读取一次就被搁置和遗忘的文件,而是支持业务产出的整个系统的有机组成部分。

客观标准

你是否曾有过这样的经历:安全报告里有成千上万条发现,有的甚至还看不明白,自己却要根据这个报告快速做出决策。我想任何人收到这样混乱不堪的安全报告,都会觉得头痛。实际上,为快速决策提供安全信息正在成为一门艺术,而且通过引入客观的标准和成熟的方法,该艺术形式得到了极大的改善。

客观标准可以帮助业务专家明白要在什么时候、以什么样的方式和顺序改善业务资源的安全情况。实际上我们可以认为,安全专家的唯一目标就是为业务伙伴提供可行的修复建议。建立客观标准来衡量企业资产安全无疑是最理想的方式,可以满足业务伙伴为了快速做出决策对可行性建议的需求。

有时,相比于策略,客观标准更为重要,因为它能促进企业内形成成熟的控制机制,使风险决策有据可依。

创建安全记分卡是制定 DevSecOps 计划的基本要素,因为它不仅可以为业务伙伴提供指导,而且还可以为持续监测企业资产安全的安全团队提供方向。根据对象的不同,记分卡可以通过检测仪器和记录结果为决策行为创设情景。

举个例子,如果面向的对象是开发部,使用的度量指标和提供的报告可能更倾向于开发方面,比如每行代码中存在的安全漏洞数量。反之,要是面向运营部,使用的度量指标可以是基础设施和配置方面存在的缺陷和漏洞。不过整体而言,只要创建记分卡便有助于各个团队排除干扰和分歧并做出快速、精准的决策。

主动搜寻

想象一下,如果你的公司能够先于攻击者发现安全漏洞并在遭受攻击前将其修复,可以免掉多少损失?主动搜寻并测试业务资源的安全性,有助于及时发现可能会被对手轻易利用的弱点和缺陷。采取主动策略保护业务资源的安全,也有助于更好地衡量与扩展,因为在业务受损前发现重要的攻击面需要自动化和大量的数据。

但是,仅凭一个好的事件响应进程来实现这个需求是不够的,因为在外部发起尝试性攻击时才发现漏洞,已经为时太晚。

建立主动搜寻的最佳方式是实现构建自动化,利用自己的信息确定安全缺陷,防止漏洞成为攻击目标。另外,这类功能还可以利用攻击者目前最常使用的被动输入来加强自身的防御策略。从根本上来说,这类功能不仅可以巩固公司技术环境方面的侦察,而且它还允许内联测试与开发,可以在整个业务产出的支持系统中优先执行修复措施。

换句话说,加强内部的安全测试,主动搜寻安全漏洞,对企业很有帮助,因为修复建议可立即执行,而且还实现了与业务流程的整合。

持续检测与响应

最后,除了牢记以上四个原则,还要确保有连续检测和响应来完成信息发现和实时攻击检测。由于监管流程和基于纸质的控制缺少攻击分析,DevSecOps 需要持续检测、对照、关联和响应来弥补该欠缺。

简而言之,持续检测和响应至关重要,因为它通过监测和分析外部对公司目标发起的尝试性攻击,可以迅速击退事件。

这似乎和近十年来所讲的检测和响应没什么区别,但实际并非如此。虽然大多数公司已有检测和响应实践,但是 DevSecOps 需要更连续的方式来为自动化进程提供反馈,从而加快内部团队获知外部发现和攻击企图的速度。

更重要的是,安全科学的实现意味着企业可以使用实时信息识别各类异常事件并做出响应,以用于支持业务产出所需的决策和防御控制预测。

本文由 DevSecOps.org 首发,系 OneASP 工程师翻译。如今,多样化的攻击手段层出不穷,传统安全解决方案越来越难以应对网络安全攻击。OneRASP 实时应用自我保护技术,可以为软件产品提供精准的实时保护,使其免受漏洞所累。

本文转自 OneAPM 官方博客

DevSecOps 实施篇!系列(二)的更多相关文章

  1. Maven提高篇系列之(二)——配置Plugin到某个Phase(以Selenium集成测试为例)

    这是一个Maven提高篇的系列,包含有以下文章: Maven提高篇系列之(一)——多模块 vs 继承 Maven提高篇系列之(二)——配置Plugin到某个Phase(以Selenium集成测试为例) ...

  2. 如何在Visual Studio 2017中使用C# 7+语法 构建NetCore应用框架之实战篇(二):BitAdminCore框架定位及架构 构建NetCore应用框架之实战篇系列 构建NetCore应用框架之实战篇(一):什么是框架,如何设计一个框架 NetCore入门篇:(十二)在IIS中部署Net Core程序

    如何在Visual Studio 2017中使用C# 7+语法   前言 之前不知看过哪位前辈的博文有点印象C# 7控制台开始支持执行异步方法,然后闲来无事,搞着,搞着没搞出来,然后就写了这篇博文,不 ...

  3. 手牵手,从零学习Vue源码 系列二(变化侦测篇)

    系列文章: 手牵手,从零学习Vue源码 系列一(前言-目录篇) 手牵手,从零学习Vue源码 系列二(变化侦测篇) 陆续更新中... 预计八月中旬更新完毕. 1 概述 Vue最大的特点之一就是数据驱动视 ...

  4. 手摸手,带你用Beego撸商城系列二(登录篇)

    完整项目地址: go-shop-b2c 系列文章: 手摸手,带你用 Beego撸商城 系列一(基础篇) 手摸手,带你用 Beego撸商城 系列二(登录篇) 手摸手,带你用 Beego撸商城 系列三(系 ...

  5. 《手把手教你》系列技巧篇(二十三)-java+ selenium自动化测试-webdriver处理浏览器多窗口切换下卷(详细教程)

    1.简介 上一篇讲解和分享了如何获取浏览器窗口的句柄,那么今天这一篇就是讲解获取后我们要做什么,就是利用获取的句柄进行浏览器窗口的切换来分别定位不同页面中的元素进行操作. 2.为什么要切换窗口? Se ...

  6. 《手把手教你》系列技巧篇(二十七)-java+ selenium自动化测试- quit和close的区别(详解教程)

    1.简介 尽管有的小伙伴或者童鞋们觉得很简单,不就是关闭退出浏览器,但是宏哥还是把两个方法的区别说一下,不然遇到坑后根本不会想到是这里的问题. 2.源码 本文介绍webdriver中关于浏览器退出操作 ...

  7. 《手把手教你》系列技巧篇(二十八)-java+ selenium自动化测试-处理模态对话框弹窗(详解教程)

    1.简介 在前边的文章中窗口句柄切换宏哥介绍了switchTo方法,这篇继续介绍switchTo中关于处理alert弹窗的问题.很多时候,我们进入一个网站,就会弹窗一个alert框,有些我们直接关闭, ...

  8. 《手把手教你》系列技巧篇(二十九)-java+ selenium自动化测试- Actions的相关操作上篇(详解教程)

    1.简介 有些测试场景或者事件,Selenium根本就没有直接提供方法去操作,而且也不可能把各种测试场景都全面覆盖提供方法去操作.比如:就像鼠标悬停,一般测试场景鼠标悬停分两种常见,一种是鼠标悬停在某 ...

  9. 《手把手教你》系列技巧篇(二十五)-java+ selenium自动化测试-FluentWait(详细教程)

    1.简介 其实今天介绍也讲解的也是一种等待的方法,有些童鞋或者小伙伴们会问宏哥,这也是一种等待方法,为什么不在上一篇文章中竹筒倒豆子一股脑的全部说完,反而又在这里单独写了一篇.那是因为这个比较重要,所 ...

随机推荐

  1. python学习day4--python基础--元组,字符串

    1.元组 #只读列表,元组,当希望生成后不被修改则用元组 r=(1,2,3,4,5) 元组 2.字符串,python字符串操作非常丰富,编程时可先查询python本身是否已设计了相关函数 #移除空白 ...

  2. python的全局变量玩法还挺特别的

    global g_arr def add(): #global g_arr g_arr = [] g_arr.append(1) add() print g_arr #你将收获一个NameError错 ...

  3. Swift使用闭包表达式

    Swift中的闭包表达式很灵活,其标准语法格式如下:{ (参数列表) ->返回值类型 in    语句组}其中,参数列表与函数中的参数列表形式一样,返回值类型类似于函数中的返回值类型,但不同的是 ...

  4. ZipArchive 的使用

    新建一个项目,首先添加 System.IO.Compression.FileSystem 引用. 解压文件 using System.IO.Compression; namespace cl { st ...

  5. OC4_电子词典

    // // MyDictionary.h // OC4_电子词典 // // Created by zhangxueming on 15/6/15. // Copyright (c) 2015年 zh ...

  6. ASP.NET MVC 路由进阶(之二)--自定义路由约束

    3.自定义路由约束 什么叫自定义路由约束呢?假如路由格式为archive/{year}/{month}/{day},其中year,month,day是有约束条件的,必须是数字,而且有一定范围. 这时候 ...

  7. spring集合类型的setter注入的一个简单例子

    在项目中我们有时候会为集合类型设定一些默认的值,使用spring后,我们可以通过配置文件的配置,用setter方式为对象的集合属性提供一些默认值,下面就是一个简单的例子. 首先我们创建了一个名为Col ...

  8. CSDN 自动评论

    转载说明 本篇文章可能已经更新,最新文章请转:http://www.sollyu.com/csdn-auto-reviews/ 说明 当打开http://download.csdn.net/my/do ...

  9. MySQL学习笔记之数据存储类型

    说明:本文是作者对MySQL数据库数据存储类型的小小总结. Numeric Type (数字类型) 1.TINYINT.SMALLINT.MEDIUMINT.INT.BIGINT主要根据存储字节长度不 ...

  10. kali使用随笔

    1.kali 默认禁用网络服务,显示设备未托管.需要在/etc/NetworkManager/NetworkManager.conf将managed=false修改为true,重启电脑. 2.自己利用 ...