打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
浅析DevSecOps的优势及实施中存在的挑战
userphoto

2022.07.11 上海

关注

DevSecOps将安全性集成到DevOps管道的每个阶段,它统一了开发活动,操作支持和安全检查,并协调了软件开发生命周期(SDLC)中涉及的团队,其自动化有助于团队之间的协同作用。

但DevSecOps并不是一个快速解决方案或临时解决方案,而是一项长期的实施过程,可帮助组织实现和维护安全的SDLC。它要求开发团队遵循标准的SDLC流程,以确保在流程的早期就发现并解决问题。

在DevSecOps范例中,开发人员维护其代码版本,并遵循同行评审过程,然后才能将其移至其他环境。由单独的团队负责开发,测试,部署等是行不通的,因为没有任何人或团队可以完全控制代码/环境中的更新方式。

运营团队支持整个开发流程,包括维护和更新操作环境,定义和实施部署流程以及记录DevSecOps流程的每个细节。安全团队可以识别并消除任何漏洞,一旦漏洞到达生产环境,DevSecOps流程就会清楚地说明何时以及如何找到漏洞。在传统的编码过程中,将应用程序部署到生产中的过程始于对代码的更改,但是在DevSecOps中,构建,测试和安全扫描较早开始,并且需要其他活动来补充,例如设计审查和后期生产监控。

1、DevSecOps可以使用一种工具执行吗?

有许多工具可以提供各种类型和服务组合,但是没有一个工具可以提供DevSecOps流程。一些提供静态应用程序安全测试(SAST)工具的供应商现在正在添加软件组成分析工具(SCA),但是DevSecOps不仅仅是执行扫描工作。

同样需要注意的是,没有一种工具适合所有环境,而且通常没有一种工具适合所有公司。除应用程序测试工具外,DevSecOps流程还需要报告工具,缺陷跟踪/管理工具,环境构建工具等。不仅如此,安全性,构建和度量标准收集活动不仅限于市场上可用的工具。甚至脚本(Shell,PowerShell,Python等)也提供各种功能。

2、DevSecOps如何帮助安全团队?

在DevSecOps中,对代码的任何更改都会触发诸如SAST或动态应用程序安全测试(DAST)审阅,体系结构审阅等活动,这些活动又会触发扫描,扫描后会生成相应的指标或报告。这些活动会在短短几分钟甚至是几秒钟内完成,在这种快速响应的条件下安全团队可以进一步考虑扩大规模。

安全团队通常缺乏资源,但他们仍有责任阻止不良行为者利用漏洞。随着开发团队朝着更加多元化,多管齐下的敏捷方法迈进,DevSecOps流程可帮助安全团队与参与SDLC流程的每个人共同承担将安全性构建到CI/CD工作流程中的责任。在SDLC中较早引入安全测试,使开发人员可以实时解决其代码中的安全问题,从而避免代价高昂的延迟。

3、DevSecOps有什么好处?

DevSecOps使组织可以快速完成许多工作,加快速度,减少延迟和实现可伸缩性其最大的优势。由于组织团队分布在许多不同的地区,组织需要在促进协作的同时减少依赖的流程和框架,以帮助团队实现目标。

通常,不同的团队在独立的孤岛中工作,而这些零散的环境使得难以确保一致性,同时仍需要使每个团队都具有其流程所需的独立性。如果团队无法改变他们的整个开发过程,那么他们如何才能在目标上保持一致?

DevSecOps可以解决这些问题,无论组织的安全级别有多成熟或有多分散,DevSecOps都可以启动和实施安全活动,并适应不同的职能团队。

“安全不是一个人的责任,而是每一个人的责任。”DevSecOps使每个人都参与确保安全性的过程和实践。开发人员,应用程序经理,操作团队,安全团队,审阅者和测试人员的都可以发挥重要的作用。

4、DevSecOps的支柱是什么?

1、加速:

快节奏的世界需要快节奏的解决方案,DevSecOps消除了手动步骤和依赖性,因此整个过程可以更快的完成。

举例来说,DevSecOps中加速的力量就体现在某公司的示例中,该公司在生产前两天就收到了对30种微服务进行扫描的请求。通过利用自动化,团队可以在两个小时内完成此请求。考虑一下:在两个工具上安全30个新的微服务,运行扫描,评估它们,并对扫描结果进行分类,全部在两个小时内完成。

通常在整个SDLC中通过只有不到一周的时间,因此很少有时间来处理安全流程。因此,当今许多安全工具的运行速度得到了改进,许多安全工具提供了自定义扫描的功能,因此组织可以选择要运行的检查,从而进一步优化了所需的扫描实践。

2、可拓展性:

DevSecOps如此受欢迎的原因之一是:它使安全团队可以在有限的带宽范围内进行扩展。即使只有有限的安全团队,DevSecOps固有的自动化对于公司支持许多应用程序的能力也至关重要。例如,一个四人小组的任务是进行SAST审查,但是由于是手动完成的,因此只能支持200个应用程序。但是,通过自动化和安全性集成,该团队能够在几个月内扩展多达700多个应用程序,并为每个应用程序提供支持。

3、灵活性:

组织可能希望从一种工具过渡到另一种工具,有时涉及1000个或更多应用程序,这听起来有可能吗?在DevSecOps中,作业通过通用的脚本库运行,并且由于这些脚本在所有作业之间共享,因此组织可以轻松地从一种工具过渡到另一种工具。通过新任务更新一组通用指令或替换现有任务,可以轻松地在所有应用程序中传播进行更改,而不必在每个作业中进行更改。

4、可追溯性

在DevSecOps中,流程是相互关联和自动化的,因此很容易查看更改是否导致问题出现。这种可跟踪性级别使人们更容易对问题负责。它还鼓励开发人员在编写安全代码时要更加小心,以防止管道中断,还可以设置项目以在特定的里程碑将电子邮件发送给整个开发团队,例如何时完成工作,合适团队满足或不满足安全要求。当触发扫描时,电子邮件可以指定谁签入或创建了触发扫描的更改。

5、组织该如何利用自动化?

自动化可用于触发构建,扫描,部署,评估和批准。当这些任务自动执行时,安全团队可以专注于其他重要活动。例如,如果一个组织有700个应用程序,那么一个由四个人组成的安全团队将很难手动监视常规版本,但利用自动化可以大大减少工作量。

如前所述,组织通常拥有分布在多个不同时区的团队。安全团队没有预算和带宽来支持所有这些时区,但是DevSecOps可以提供帮助,通过提供门户,开发人员可以通过它们运行本地工具的按需扫描。DevSecOps还可以通过实施标准化来提供帮助,该标准化使每个人的过程都清晰易懂。标准化还使按比例缩放过程以及根据需要进行更新和添加变得更加容易。

6、实施DevSecOps需要面临的挑战?

每个组织都必须确定其活动的优先级,DevSecOps可能并不是每个组织的头等大事。在某些情况下,组织可能无法将安全性集成到其DevOps流程中,因为他们依赖于某些环境和脚本的更改。或者,由于其他优先事项,团队可能没有能力进行这些更改。

团队通常支持旧版应用程序,因为他们根本还没有计划对其进行过渡。有些安全工具无法轻松或自动地与其他工具集成。例如:直到最近Brup还没有CI插件,因此将Brup扫描集成到自动化过程中并不容易。

遗留应用程序的另一个问题是它们对于功能至关重要,但是由于它们是很早以前编写的,因此没有人能够或不愿意进行更改。分配资源以使此类应用程序自动化没有意义。但是,安全团队仍然必须定期扫描这些应用程序(尤其是在更新测试方式时)。因此,它们需要适应标准化的测试过程。

7、组织该如何开始DevSecOps?

实施DevSecOps需要耐心和坚韧,任何DevSecOps实施都至少需要一年的时间。在开始设置解决方案之前,将涉及大量规划和设计。组织必须首先确定当前流程中的差距,然后确定支持实施的流程所需的工具。组织将需要与各种团队协调才能获得认可,并指示他们实施所需的更改,这些都需要花费大量的时间。

对流程进行更改会影响该流程中涉及的所有人员以及该流程之后的所有应用程序。如果使用一组通用的库对所有应用程序进行扫描,除非设置了特定条件,不然这些库中的任何更改都会影响所有应用程序。

将新的应用程序添加到此过程可能需要很长时间。启用.Net应用程序通常需要花费更多时间,因为它们必须正确构建。Visual Studio往往会隐藏许多构建错误,并在运行时提供依赖项。对于MSBuild而言,情况并非如此。如果应用程序团队使用Visual Studio 构建应用程序并检入该应用程序,则由于多种原因(错误的目录结构,缺少的依存关系,不正确的依存关系等),使用MSBuild命令行的自动化过程可能会中断。

有时,CI工具本身无法胜任这项工作,组织通常使用Jenkins来开始其CI流程。但是,Jenkins及其插件中的错误数量可能是惊人的,并且可能导致杂乱的解决方法。而且Jenkins上的许多插件都得不到维护和支持。当然这不是说其很糟糕,它仍然非常有用,值得注意的是,尽管市场上还有其他CI工具,但它们也有局限性。

还要记住,工具并不总是具有完成所需所有功能的成熟度。每个工具都有其局限性,尤其是在自动化过程中。例如,Jenkins可能不允许条件参数化,可能有些插件提供了解决方法,但没有实际要求。

当然,任何安全团队都必须面对的最大难题是误报。如果没有适当地自定义安全工具,组织可能会收到大量的误报。组织需要保持警惕,以针对用于缩小结果范围的应用程序,语言,技术或框架自定义工具。

尽管实施DevSecOps存在许多挑战,但仍有许多优势。尤其重要的是,它可以帮助解决安全团队中资源不断短缺的问题,DevSecOps使团队可以更有效地工作,并适应不断扩展的新环境。


本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
引入安全测试
下篇 | DevSecOPs在金融机构的落地实践(附实践指南)
自动安全检测五大实例
如何破解DevSecOps实施三大挑战?
什么是快速应用程序开发(RAD)?
打造一流的质量保证部门
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服