软件合规性团队应借鉴DevSecOps实践

2023-12-15 02:38

本文主要是介绍软件合规性团队应借鉴DevSecOps实践,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

作者:新思科技应用安全分析师Charlie Klein

 

尽管软件测试对于合规性至关重要,但当测试工具无法跟上现代软件开发的速度时,开发人员也会感到沮丧。本文将为您解析如何在不影响软件开发速度的情况下进行有效的软件合规性测试。

许多人认为应用安全仅仅应该是安全团队的责任。然而,虽然安全专家可以对此做出贡献,开发人员通常是唯一具备修复软件安全漏洞的技术能力的人。软件合规性也是如此。归根结底,只有开发人员才能构建符合特定软件标准的应用程序。

 

考虑到开发团队的紧迫期限,给他们额外的职责可能会带来挑战。为了帮助开发人员在不降低速度的情况下交付安全的应用程序,许多团队采用了DevSecOps,鼓励将自动安全测试集成到每个版本的DevOps工作流程中。

 

DevSecOps帮助团队更快地交付更安全的软件,但是否是更加符合合规性的软件呢?许多尝试实现软件合规性的团队遇到了与试图实现软件安全性的团队相似的挑战。幸运的是,他们可以采用相似的策略。

 

DevSecOps的作用是什么?

DevOps工作流程支持快速迭代的软件发布周期,这给软件安全带来了一定障碍。

 

在保护软件安全的传统方法中,测试是在应用程序构建之后,软件开发生命周期结束之后才进行的。结果,大多数(如果不是全部的话)应用程序同时测试,并且将一长串、令人生畏的安全问题清单发回给开发人员。

 

然而,许多团队发现这种方法与DevOps不兼容。开发团队没有时间,更不用说预算,来停止他们正在做的事情去处理一大堆表格中的问题。

 

为了解决这个问题,企业可以通过将安全测试集成到DevOps发布周期更短的、更高频率的反馈循环中,以实现DevSecOps。DevSecOps要求在早期经常执行自动安全测试,而不是在开发人员完成构建应用程序之后运行大型的测试。通过帮助开发人员编入更安全的代码,DevSecOps有助于减少质量保证(QA)必须识别以及发回来的问题数量。

 

如果开发团队可以将安全测试集成到DevOps工作流程中,为什么不将合规性测试也集成到DevOps工作流程中呢?

 

 

如何将DevSecOps实践应用到软件合规性中?

虽然安全测试通常与合规性测试要求不一样的分析方法,但是尝试DevSecOps的开发团队可以使用类似的方法来进行合规性测试。

 

正如传统的应用安全测试一样,合规性测试通常发生在QA环境中。大致的应用开发和测试流程如下所示:

 

  1. 开发人员编写应用程序的代码
  2. QA在开发人员转移到另一个项目时测试代码
  3. QA向开发人员发送一份违反合规性的列表,要求他们暂停当前的工作,先解决这些问题

 

这种合规性测试策略在技术上并没有什么问题。然而,这种方法并不受开发人员欢迎,如果问题列表特别长,对于开发团队来说可谓代价高昂。为了在应用程序完成之前解决更多的合规性问题,团队可以实施受DevSecOps启发的实践,来帮助开发人员在软件开发生命周期(SDLC)早期提交合规性代码。

 

策略之一是将自动合规性测试集成到DevOps发布周期中。通过定期测试而不是一次性测试应用程序,团队可以减少每个测试周期违规的数量。显然它需要在整个SDLC中进行更高频率的测试,事实证明这种方法比在QA中找到问题更快。

 

另一种方法是在集成开发环境(IDE)中创建沙箱环境,开发人员可以自己在其中运行测试。在编写代码时测试他们自己写的代码,使开发人员能够编入更清晰、更合规的代码,

因此违规就不太可能出现在QA中或者更糟出现在生产中。这种方法另一个好处是帮助开发人员熟悉可能导致违规行为的代码。

 

这些识别和解决违规问题的策略并不意味着要取代QA测试。然而,通过将合规性测试集成到SDLC的多个阶段,团队将在QA和开发的反馈循环中看到更少的问题,这将会更好地支持DevOps工作流程。

 

在现实中又是怎样的情况呢?

就像安全测试一样,将合规性测试集成到DevOps发布周期需要新的技术和工作流程,它们都有不同的学习曲线。

 

关于技术,静态分析正成为帮助开发团队构建合规应用程序的流行的选择方式。静态分析工具之间的覆盖范围各不相同,但是总体而言,该技术可以在代码质量标准中发现问题,比如MISRA 和CERT C/C++,以及安全标准,比如OWASP Top 10和 PCI DSS。

 

团队选择的用来解决合规性问题的静态分析工具或者其他的任何技术在他们采用的工作流程中发挥着重要作用。如前所述,那些希望将问题排除在QA之外的人希望找到解决方案从而能够:

 

  1. 将快速反馈循环集成到测试和开发中
  2. 在开发人员编写代码时在IDE中扫描代码

 

在测试和开发之间构建一个持续的反馈循环可能代表了开发人员日常工作的重大转变。

 

虽然“DevSecOps”并不完全相同,但是受管制行业的开发团队可以通过将合规性测试集成到DevOps发布周期中来获得降低成本的益处。

这篇关于软件合规性团队应借鉴DevSecOps实践的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/494792

相关文章

Mybatis嵌套子查询动态SQL编写实践

《Mybatis嵌套子查询动态SQL编写实践》:本文主要介绍Mybatis嵌套子查询动态SQL编写方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录前言一、实体类1、主类2、子类二、Mapper三、XML四、详解总结前言MyBATis的xml文件编写动态SQL

apache的commons-pool2原理与使用实践记录

《apache的commons-pool2原理与使用实践记录》ApacheCommonsPool2是一个高效的对象池化框架,通过复用昂贵资源(如数据库连接、线程、网络连接)优化系统性能,这篇文章主... 目录一、核心原理与组件二、使用步骤详解(以数据库连接池为例)三、高级配置与优化四、典型应用场景五、注意事

python web 开发之Flask中间件与请求处理钩子的最佳实践

《pythonweb开发之Flask中间件与请求处理钩子的最佳实践》Flask作为轻量级Web框架,提供了灵活的请求处理机制,中间件和请求钩子允许开发者在请求处理的不同阶段插入自定义逻辑,实现诸如... 目录Flask中间件与请求处理钩子完全指南1. 引言2. 请求处理生命周期概述3. 请求钩子详解3.1

Jvm sandbox mock机制的实践过程

《Jvmsandboxmock机制的实践过程》:本文主要介绍Jvmsandboxmock机制的实践过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、背景二、定义一个损坏的钟1、 Springboot工程中创建一个Clock类2、 添加一个Controller

Mysql中的用户管理实践

《Mysql中的用户管理实践》:本文主要介绍Mysql中的用户管理实践,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录13. 用户管理13.1 用户 13.1.1 用户信息 13.1.2 创建用户 13.1.3 删除用户 13.1.4 修改用户

在Java中基于Geotools对PostGIS数据库的空间查询实践教程

《在Java中基于Geotools对PostGIS数据库的空间查询实践教程》本文将深入探讨这一实践,从连接配置到复杂空间查询操作,包括点查询、区域范围查询以及空间关系判断等,全方位展示如何在Java环... 目录前言一、相关技术背景介绍1、评价对象AOI2、数据处理流程二、对AOI空间范围查询实践1、空间查

qtcreater配置opencv遇到的坑及实践记录

《qtcreater配置opencv遇到的坑及实践记录》我配置opencv不管是按照网上的教程还是deepseek发现都有些问题,下面是我的配置方法以及实践成功的心得,感兴趣的朋友跟随小编一起看看吧... 目录电脑环境下载环境变量配置qmake加入外部库测试配置我配置opencv不管是按照网上的教程还是de

golang实现动态路由的项目实践

《golang实现动态路由的项目实践》本文主要介绍了golang实现动态路由项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习... 目录一、动态路由1.结构体(数据库的定义)2.预加载preload3.添加关联的方法一、动态路由1

Vue 2 项目中配置 Tailwind CSS 和 Font Awesome 的最佳实践举例

《Vue2项目中配置TailwindCSS和FontAwesome的最佳实践举例》:本文主要介绍Vue2项目中配置TailwindCSS和FontAwesome的最... 目录vue 2 项目中配置 Tailwind css 和 Font Awesome 的最佳实践一、Tailwind CSS 配置1. 安

MyBatis分页插件PageHelper深度解析与实践指南

《MyBatis分页插件PageHelper深度解析与实践指南》在数据库操作中,分页查询是最常见的需求之一,传统的分页方式通常有两种内存分页和SQL分页,MyBatis作为优秀的ORM框架,本身并未提... 目录1. 为什么需要分页插件?2. PageHelper简介3. PageHelper集成与配置3.