目录

1. 什么是DevSecOps?

2. 基于 DevOps 构建 DevSecOps

3. DevSecOps文化

4. DevSecOps起因

4.1 组织与文化

4.2 过程与控制

4.3 技术与架构

4.4 技能与工具

5. DecSecOps优势

6. DevSecOps落地实施

7. DevSecOps生命周期

8. DevSecOps安全工具

1. 什么是DevSecOps?

        运维同学应该都听说过DevOps,但很多人DevSecOps很多人会比较陌生,那么什么是DevSecOps呢?

        DevSecOps(Development Security Operations),又称为安全DevOps,是软件开发中的一种思维,每个人都应对应用程序安全负责。通过将开发人员与IT运营集成在一起,并使每个人都专注于做出更好的安全决策,开发团队希望以更快的速度和更高的效率提供更安全的软件。

        DevSecOps是DevOps 概念的延续,相较于DevOps,其主要优势之一是它可以最大限度在软件上线前减少产品的漏洞,并使其完全准备好供最终用户使用。由于每个流程和相关工作流程都通过严格的安全检查实现自动化,因此可以更准确地满足安全要求。但是,选择正确的工具来维护持续集成 (CI) 中的安全性至关重要。安全团队需要经过充分培训才能帮助实现这一目标。

2. 基于 DevOps 构建 DevSecOps

        DevSecOps 不是 DevOps 的备选方案。它只是扩展了 DevOps 背后的核心概念,即开发人员和 IT 团队应该紧密合作,而不是各自为政,单独行事,由此加入安全方案。有效的 DevSecOps 意味着采用 DevOps 并将安全方案集成到整个 CI/CD 开发管道。

3. DevSecOps文化

        DevSecOps 是一种文化,而非工具。许多工具和流程可以帮助企业实现 DevSecOps,但最终 DevSecOps 并不是一个特定的工具或流程。它是一种文化。

        DevSecOps 可以归结为向企业灌输正确的文化价值观。开发人员、IT 团队、安全专家和其他所有参与软件交付的人员都必须接受这样的想法,即软件安全应该是一切的重中之重。在做出任何与应用相关的决定之前,您的整个团队都应该考虑安全问题。如果他们做到这一点,就实现了 DevSecOps。

4. DevSecOps起因

4.1 组织与文化

开发运维人员缺少安全技能,意识 安全专业人员很有限 第一道防线安全往往在运维的基础架构职能下,地位不高很难协同工作 开发、运维之间的壁垒,安全职能难以嵌入进 IT 声明周期的各个阶段 开发交付团队,设置管理层过度地强调进度,而忽视了安全风险

4.2 过程与控制

漏洞一般是在上线前被检测发现,而不持续在开发流程中被识别,导致修复成本高 控制点或审计过于滞后或缺失 安全需求、架构设计的持续交付得不到保障 缺少全链条各阶段的风险视角和管理能力

4.3 技术与架构

老旧,不标准的架构与应用系统 失效的最佳实践和架构模式 环境标准化及维护程度低

4.4 技能与工具

安全人员技能欠缺、安全“运营”的程度低 安全工具自动化不足或集成程度不高

5. DecSecOps优势

        DevOps 将业务关键应用程序在性能、速度、功能和规模方面提升到了一个全新的水平。但是由于缺乏合规性和可靠的安全性,这些应用程序有时会滞后。而将 DevSecOps 集成到软件开发生命周期中就等于把开发、安全和运营置于一个统一的框架之下。借助 DevSecOps,每个开发人员和运维人员都将在开发和部署关键业务应用程序的每个阶段优先考虑安全性。

DevSecOps 的优势在于:

降低合规成本更快地部署应用程序提高软件交付率从软件开发的最开始就进行安全检查、持续监控和自动部署检查从应用程序开发的早期阶段提高可视性和透明度在遭受安全攻击的情况下能够更快地恢复通过启用进一步安全自动化来提高整体安全性

6. DevSecOps落地实施

        实施 DevSecOps 能够让企业保持高速、敏捷地开发和创新,同时满足合规要求且永远领先攻击者一步。从 DevOps 切换到 DevSecOps 看起来复杂且不易执行,企业可以参考以下六点:

代码分析 - 以小规模、高频率的版本交付代码,以便更轻松高效地检查漏洞,同时将代码分析嵌入 QA 流程中。变更管理 - 允许并鼓励开发人员随时提出重要任务安全更改建议并尽可能在24小时内批准更改,让变更管理流程变得更加高效。合规监控 - 在开始编写代码或进行更改时收集合规性证据,以便让开发持续处于合规状态。威胁研究 - 针对使用新交付代码对企业所做出的更改而产生的威胁或漏洞进行查找、调查、研究并且进行修正。漏洞管理及评估 - 在发布代码并完成漏洞检查后,定期进行扫描并进行代码审查和渗透测试。安全培训 - 鼓励技术人员参加行业会议或安全认证会议,并定期为他们提供安全开发的相关培训。

7. DevSecOps生命周期

        DevSecOps的主要特征是通过在软件生命周期的各个阶段进行自动化,监控和应用安全性来提高客户成果和使命价值,包括计划、创建、验证、预发布、发布、预防、检测、响应、预测和适应阶段。

(1)计划阶段:作为DevSecOps的第一个阶段,其包含了SDL模型里培训、需求、设计等几个阶段,主要关注的是开发前的安全动作。

(2)创建阶段:创建阶段主要就是指编码阶段。编码阶段主要进行安全编码及检查,旨在在编码阶段进行安全风险的消除。

(3)验证阶段:验 证 阶 段 其 实 就 是 测 试 阶 段,主 要 以 自 动 化 的 应 用 安 全 测 试(AST,Application Security Testing)和 软 件 成 分 分 析(SCA,Software Composition Analysis)为主。

(4)预发布阶段:预发布阶段一般是测试阶段及正式发布阶段的中间阶段,其与测试阶段不同的是预发布阶段所发布的预发布环境是连接的正式环境的数据库等,其等同于独立部署的非对外公开的正式环境。在DevSecOps工具链中预发布阶段主要包含有混沌工程(Chaos Engineering)、模糊测试(Fuzzing)、集成测试三个安全动作。

(5)发布阶段:针对发布阶段,在DevSecOps的流程中主要动作是软件签名,与预防阶段结合来看,主要是软件防篡改。

(6)预防阶段:该阶段主要包含有签名验证、完整性检查和纵深防御。

(7)检测阶段:从预防阶段,就已经从开发切换到运维阶段,而检测阶段则更符合传统安全中相关的安全监控动作,该阶段主要包含有RASP、UEBA、网络流量监控、渗透测试几个安全动作。

(8)响应阶段:在DevSecOps的响应阶段,安全动作主要包含有安全编排、基于RASP/WAF的防护、以及混淆。

(9)预测阶段:预测阶段主要涉及漏洞相关性分析与威胁情报。

(10)适应阶段:适应阶段主要强调了安全技术债务、修改应急响应方案、安全防御方案等几个点。其实这个阶段也可以称作优化阶段,主要是基于DevSecOps实施的整个流程的情况,进行持续的适配改进和项目调整优化,对应到过去安全动作,可以理解为持续运营反馈调整的过程,包含对相关安全问题的持续跟踪、闭环,对DevSecOps过程中相关安全动作如策略的调整等。

8. DevSecOps安全工具

        DevSecOps中的应用安全管理和保障能力依赖不同的安全工具能力互相作用、叠加、协作而实现,DevSecOps安全工具金字塔描述了安全工具所属的不同层次。安全工具之间的边界有时会模糊不清,因为单一的安全工具可以实现多种类别的安全能力。

        DevSecOps安全工具金字塔描述了一组层次结构,金字塔底部的工具是基础工具,随着组织DevSecOps实践成熟度的提高,组织可能会希望使用金字塔中较高的一些更先进的方法。金字塔中的安全工具分层与组织的DevSecOps成熟度分级没有直接关系,仅使用低层次的安全工具也可以完成高等级的DevSecOps实践成熟度,反之亦然。金字塔中的工具分层与该工具的普适性、侵入性、易用性等因素相关。普适性强、侵入性低、易用性高的安全工具更适合作为底层基础优先引入,普适性弱、侵入性高、易用性低的工具则适合作为进阶工具帮助DevSecOps实践变得更加完善且深入。

(1)CARTA平台

CARTA(Continuous Adaptive Risk and Trust Assessment,持续自适应风险与信任评估)由Gartner在2018年十大安全技术趋势中首次提出,在 2019 年再次被列入十大安全项目,也是Gartner主推的一种应对当前及未来安全趋势先进战略方法。CARTA 强调对风险和信任的评估分析,这个分析的过程就是一个权衡的过程,告别传统安全门式允许/阻断的处置方式,旨在通过动态智能分析来评估用户行为,放弃追求完美的安全,不能要求零风险,不要求100% 信任,寻求一种0和1之间的风险与信任的平衡。CARTA战略是一个庞大的体系,其包括大数据、AI、机器学习、自动化、行为分析、威胁检测、安全防护、安全评估等方面,集主流技术于一体打造出一个自适应自判断安全防护平台。CARTA跟DevSecOps的趋势一致,将安全左移至开发阶段,并最终集成在整个生命周期中,完成敏捷化的自适应风险和信任评估。因此CARTA已逐渐从单纯的生产环境实践方法,融合进DevSecOps的体系之中。

(2)应用安全性测试即服务(ASTaaS)

随着应用开发环境的开放化以及云服务日趋成熟,更轻量级的ASTaaS逐渐开始被接受。在ASTaaS上,使用者通常仅需按需付费来对应用程序执行安全测试,而不必再分别购买昂贵的私有化安全设备。该服务通常是静态和动态分析,渗透测试,应用程序编程接口(API)测试,风险评估等安全功能的组合。ASTaaS 通常用于移动和 Web 应用程序。ASTaaS的发展动力主要来自云应用程序的使用,在云应用程序中,用于测试的资源更易于配置。有数据表明,全球在公共云计算上的支出预计将从2015年的670亿美元增加到2020年的1620亿美元。

(3)应用安全测试编排(ASTO)

应用安全测试编排(Application Security Testing Orchestration,ASTO)由Gartner首次提出,目前该技术和工具还处于较为初始的阶段。其目标是对生态系统中运行的所有不同的应用安全测试工具进行集中、协调的管理和报告。ASTO综合管理SAST/SCA/IAST/DAST等各种安全工具的检测能力,完善与开发工具链条的集成与自动化能力,提供安全能力编排方案。用户自定义编排安全检测的手段、工具与其它安全产品的自动化集成响应。

(4)模糊测试

模糊测试(fuzz testing)是一种介于完全的手工渗透测试与完全的自动化测试之间的安全性测试类型。能够在一项产品投入市场使用之前对潜在的应当被阻断的攻击路径进行提示。从执行过程来说,模糊测试的执行过程很简单,大致如下:

准备好随机或者半随机方式生成的数据; 将准备好的数据导入被测试的系统; 用程序打开文件检测被测试系统的状态; 根据被测系统的状态判断是否存在潜在的漏洞。

(5)容器安全

容器安全是保护云原生环境免受漏洞和主动攻击威胁所需的安全工具。容器安全工具可完全集成到构建和部署管道中,提供针对容器镜像的漏洞管理功能,实现并强制实施合规性。容器安全工具能保护容器的完整性,这包括从其承载的应用到其所依赖的基础架构等全部内容。通常而言,组织拥有持续的容器安全包含以下方面:

保护容器管道和应用; 保护容器部署环境和基础架构; 整合企业安全工具,遵循或增强现有的安全策略。

(6)运行时应用自保护(RASP)

运行时应用自保护 (RASP) 是一种嵌入到应用程序或应用程序运行时环境的安全技术,在应用层检查请求,实时检测并阻断攻击。RASP产品通常包含以下功能:

通常在应用程序上下文中进行解包和检查应用程序请求; 产品可以在多个执行点分析完整的请求,执行监控和阻止,有时甚至更改请求以去除恶意内容; 完整的功能可通过RESTful API访问; 防止所有类型的应用程序攻击,并确定攻击是否会成功; 查明漏洞所在的模块,还有特定的代码行; 仪表盘功能和使用情况报告。

(7)软件组成分析(SCA)

SCA工具检查软件,以确定软件中所有组件和库的来源。SCA工具在识别和发现常见和流行组件(尤其是开源组件)中的漏洞方面非常有效。但是,它们通常不会检测内部自定义开发组件的漏洞。SCA工具在查找通用和流行的库和组件(尤其是开放源代码部分)方面最为有效。它们的工作原理是将代码中的已知模块与已知漏洞库进行比较。SCA工具查找具有已知漏洞并已记录漏洞的组件,并且通常会提示使用者组件是否过时或有可用的补丁修补程序。

(8)交互式应用安全测试(IAST)

IAST曾被Gartner多次列为十大安全技术。IAST工具结合了SAST和DAST技术的优点。IAST可以模拟验证代码中的已知漏洞是否可以真的在运行的环境中被利用。IAST工具利用对应用程序流和数据流的了解来创建高级攻击方案,并递归地使用动态分析结果:在执行动态扫描时,该工具将基于应用程序对测试用例的响应方式来了解有关应用程序的知识。一些工具将使用这些知识来创建其他测试用例,然后可以为更多的测试用例产生更多的知识,依此类推。IAST工具擅于减少误报数,并且可以很完美地使用在敏捷和DevOps环境。在这些环境中,传统的独立DAST和SAST工具在开发周期中可能会占用大量时间,而IAST几乎不会对原有应用生产效率产生任何影响。

(9)PTE自动化渗透测试

自动化渗透测试是近年来逐渐被关注的一项新技术,其目的是用自动化测试的方式实现以往只有依靠白帽子人工完成的渗透测试工作,以提高漏洞检测效率,降低检测成本。这一类工具是随着机器学习等AI技术的发展而产生并成熟的。自动化渗透测试工具可以将白帽子在大量渗透过程中积累的实战经验转化为机器可存储、识别、处理的结构化经验,并且在测试过程中借助 AI 算法自我迭代,自动化地完成逻辑推理决策,以贴近实际人工渗透的方式,对给定目标进行从信息收集到漏洞利用的完整测试过程。

(10)EDR

端点检测与响应 (Endpoint Detection & Response,EDR) 是一种主动的安全方法,可以实时监控端点,并搜索 渗透到公司防御系统中的威胁。 这是一种新兴的技术,可以更好地了解端点上发生的事情,提供关于攻击的上下文和详细信息。EDR服务可以让你知道攻击者是否及何时进入你的网络,并在攻击发生时检测攻击路径ーー帮助你在记录的时间内对事件作出反应。

(11)静态应用安全测试(SAST)

SAST又称白盒测试,测试人员可以在其中了解有关被测代码的信息,包括体系结构图、常规漏洞、不安全编码等内容。SAST工具可以发现源代码中可能导致安全漏洞的脆弱点,还可以通过IDE插件形式与集成开发环境结合,实时检测代码漏洞问题,漏洞发现更及时,使得修复成本更低。源代码分析器可以在未编译的代码上运行,以检查缺陷,覆盖赋值越界、输入验证、竞争条件、路径遍历、指针和引用等。部分SAST工具也可以用二进制和字节码分析器对已构建和已编译的代码执行相同的操作,但这实际上已进入SCA和DAST的范畴。

(12)移动应用安全测试(MAST)

MAST工具融合了静态,动态和取证分析。它们执行的功能与传统的静态和动态分析器类似。MAST工具具有专门针对移动应用程序问题的独特功能,例如越狱检测、伪造WI-FI链接测试、证书的处理和验证、防止数据泄漏等。

(13)动态应用安全测试(DAST)

DAST工具又称黑盒测试,与SAST工具相对应。测试人员无需具备编程能力,无需了解应用程序的内部逻辑结构,也无须了解代码细节。DAST不区分测试对象的实现语言,采用攻击特征库来做漏洞发现与验证。DAST工具针对编译后的可执行程序运行,以检测界面、请求、响应、脚本(即JavaScript)、数据注入、会话、身份验证等问题。除了可以扫描应用程序本身之外,还可以扫描发现第三方开源组件、第三方框架的漏洞。

(14)WAF

WAF即Web应用防火墙(Web Application Firewall),是通过执行一系列针对HTTP和HTTPS的安全策略,来专门对 Web应用,提供保护的一类产品。WAF初期是基于规则防护的防护设备;基于规则的防护,可以提供各种Web应用的安全规则,WAF生产商去维护这个规则库,并实时为其更新,用户按照这些规则,可以对应用进行全方面的保护。

(15)IDS/IPS

入 侵 检 测 系 统(instruction detection system,IDS)、 入 侵 防 御 系 统( instruction prevention system,IPS)是两类传统的安全保障产品,主要用于应对网络安全系统中的黑客攻击事件。IDS是依照一定的安全策略,对网络、系统的运行状况进行监视,尽可能发现各种攻击企图、攻击行为或者攻击结果,以保证网络系统资源的机密性、完整性和可用性。IPS能够监视网络或网络设备的网络资料传输行为,能够即时的中断、调整或隔离一些不正常或是具有伤害性的网络行为。

好文链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: