DevSecOps

本文探讨了DevSecOps方法的兴起,它如何解决现代IT公司快速交付和安全性的矛盾,介绍了DevSecOps的工作原理、优势、实施策略、安全工具以及面临的挑战,包括技术不匹配、安全效率平衡等,并提到了相关的认证以提升专业能力。
摘要由CSDN通过智能技术生成

    由于 DevOps 方法的广泛采用以及由此产生的快速产品交付和部署,许多部门已采用更敏捷的方法来开发生命周期。在满足市场速度和规模要求的同时,设计安全的软件一直是现代 IT 公司共同面临的问题。结果,超过 52% 的组织因为担心上市速度落后而放弃了安全性。由于传统技术下的安全漏洞,生产版本也出现了延迟。因此,一些企业已经采用 DevSecOps 方法来解决这个安全方面的问题。然而,当公司从 DevOps 转向 DevSecOps 时,他们经常面临一系列标准障碍。

1. 什么是DevSecOps?      

    DevSecOps 是指通过与 IT 安全团队、软件开发人员和运营团队合作,在标准 DevOps 周期中建立关键的安全原则。

    DevSecOps是一种融合了开发、安全及运营理念的全新的安全管理模式,其核心理念是:业务应用生命周期的每个环节都需要为安全负责,安全是整个 IT 团队(包括开发、测试、运维及安全团队)所有成员的责任,并且需要贯穿到从研发至运营的全过程。

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

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

    DevSecOps落地的技术前提是实现可验证的、可复现的构建和部署流程,这样可以保障我们在测试、预发、生产等不同环境对架构安全性进行持续验证和改进。利用云原生技术中的 immutable infrastructure (不可变基础设施) 和 声明式的策略管理 Policy as Code 结合在一起实现DevSecOps的落地实践。下图是一个最简化的容器应用DevSecOps流水线。

2、DevSecOps 的工作原理

    DevSecOps 是开发组织解决安全问题的必然和自然发展。在过去,企业确保软件安全的方式往往是在开发周期结束时由安全团队为软件添加保护,然后再通过 QA 团队进行测试。这在不那么频繁地提供软件升级的时候确实是可行的。

    然而随着软件工程师转向敏捷和 DevOps 以将软件开发周期缩短数周甚至数天,传统的“附加”安全方法已经无法继续有效保障软件安全性。而 DevSecOps 能够将应用程序和基础架构安全性无缝地结合到敏捷和 DevOps 流程和工具中。一旦发现安全漏洞,就会立即进行处理和修复,这样就能够以更容易、更快、更便宜的方式在软件投入生产之前缓解或消除安全风险。

    此外,不同于 DevOps,DevSecOps 让应用程序和基础设施的安全性成为开发、安全和 IT 运营团队的共同责任,通过在不减慢软件开发过程的情况下自动化安全软件交付。

3、DevSecOps 的优势

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

4、DevSecOps落地实施

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

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

                                图片来源:Sumologic

5、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过程中相关安全动作如策略的调整等。

6、DevSecOps安全工具

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

(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能够监视网络或网络设备的网络资料传输行为,能够即时的中断、调整或隔离一些不正常或是具有伤害性的网络行为。

7、DevSecOps面临的挑战包括

  1. 技术不匹配:开发人员,安全专家和运维人员使用的工具和流程可能不匹配,导致合作困难。
  2. 安全和效率之间的平衡:在提高应用程序的安全性的同时保持效率是一个挑战。
  3. 人员不匹配:开发人员,安全专家和运维人员的技能和知识可能不匹配,导致协作困难。
  4. 文化差异:开发人员,安全专家和运维人员可能有不同的文化和价值观,导致协作困难。
  5. 变更管理困难:快速开发和交付环境中的安全变更管理可能非常困难。
  6. 技术债务:历史遗留的不安全代码可能对当前的安全性产生负面影响。

8、DevSecOps 相关的认证包括

  1. Certified DevSecOps Professional (CDSOP):这是由 DevSecCon 和 DevOps Institute 共同提供的一项认证,旨在评估 DevSecOps 的知识和实践。
  2. SANS DevSecOps Essentials:这是 SANS Institute 提供的一项 DevSecOps 培训课程和认证,旨在提高 DevSecOps 的实践水平。
  3. Certified Kubernetes Security Specialist (CKS):这是由 CNCF 提供的一项 Kubernetes 安全专业认证,旨在评估安全专家在使用 Kubernetes 的安全知识和实践方面的能力。
  4. Certified Secure DevOps Engineer (CSDE):这是由 International Association of Secure DevOps Professionals (IASDP) 提供的一项 DevSecOps 安全认证,旨在评估 DevSecOps 工程师的安全知识和实践能力。

这些认证都可以帮助 DevSecOps 专业人员证明他们的专业知识和实践能力,并且对于从事 DevSecOps 相关工作的人员来说是非常有价值的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Kingairy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值