安全至上:落地DevSecOps最佳实践你不得不知道的工具

Hi!我们是DevSecOps研发安全运营一体化解决方案提供商、Atlassian全球白金合作伙伴——龙智。在过去的十多年间,传统软件研发模式发生巨变,从瀑布式开发到敏捷再到DevOps,开发和运维之间曾经明确的界限正在慢慢变得模糊。

DevOps由于能够促进开发、运维、测试等不同部门的沟通、协作与整合,正在悄然成为软件研发运营主流趋势。发展至今,DevOps也结合了新的流程,比如持续集成和持续部署来快速交付价值。

如果您对DevOps还知之甚少,或是想要更深入地了解DevOps工具链,请不要错过本系列文章。龙智将从DevOps的概念、DevOps工具链、CI及工具对比、DevOps监控、DevSecOps五个方面入手,让您从起源开始,逐步深入了解DevOps这个已流行数十年的方法论。

安全至上:落地DevSecOps最佳实践你不得不知道的工具_第1张图片

尽管软件公司尽了最大努力,但安全漏洞依然存在,并层出不穷。自2000年以来,大约有35亿人的个人数据被盗。发生这些问题的一部分原因在于,随着软件应用程序代码库规模和复杂性的增长,安全漏洞和漏洞利用的区域也在增长。

此外,随着越来越多的企业采用DevOps方法,自动化和集成软件开发和IT团队之间的流程,这让传统的安全工具不再适用。现在,开发人员需要将安全措施嵌入到开发工作流程的每个阶段中,并通过安全左移在SDLC早期预防安全风险。当涉及到DevOps工作流的安全性时,这种做法称为DevSecOps。

什么是 DevSecOps?

DevSecOps是将安全性集成到持续集成、持续交付和持续部署Pipeline中的实践。通过将 DevOps价值融入软件安全,安全验证成为开发过程中一个积极的、集成的部分。

与DevOps非常相似,DevSecOps是一种将项目管理工作流与自动化IT工具相结合的组织和技术方法。DevSecOps将主动地安全审计和安全测试集成到敏捷开发和DevOps工作流程中,从而使安全性内置于产品中,而不是应用到成品中。

要实施DevSecOps,团队应该:

  • 在整个软件开发生命周期中引入安全性,以最大限度地减少软件代码中的漏洞。
  • 确保整个DevOps团队,包括开发人员和运营团队,共同承担遵循安全最佳实践的责任。
  • 通过将安全控制、工具和流程集成到DevOps工作流程中,在软件交付的每个阶段启用自动安全检查。通过“安全左移” 将安全程序(代码审查、分析、测试等等)移动到软件开发生命周期(SDLC)早期阶段,从而防止缺陷产生和尽早找出漏洞。

通过DevSecOps,安全应该被应用到典型的DevOps Pipeline的每个阶段:计划、编码、构建、测试、发布和部署。
安全至上:落地DevSecOps最佳实践你不得不知道的工具_第2张图片

DevOps必须向左移动以确保安全

在传统的DevOps流程中,安全评估在开发流程结束时进行。这种安全至上的方法会减慢开发生命周期,导致开发人员和安全团队产生间隙,因为他们需要重新处理几乎交付的代码来修复本可以更早发现和解决的安全问题。

因此,组织已经开始向左转移,即主动将安全性引入开发生命周期本身,而不是在最后一刻 进行安全修复。安全“左移”是IT开发和DevOps人员使用的专业术语,用于描述将安全测试和安全技术向软件开发周期上游移动。当前,安全“左移”已经成为软件行业的共识,因为在软件开发生命周期早期修复漏洞远比在后期进行补救更加省时省力。

“左移”的实践:将安全测试提前到编码和构建阶段

从实践方面来说,左移,意味着在早的阶段——编码和构建阶段就可开始进行安全测试,在早期就扫描代码中的漏洞是保障产品安全的基本,也是首要步骤。将漏洞扫描工具集成到CI/CD流程中,是显而易见的开始实施DevSecOps的地方。

这意味着要确保在交付Pipeline的每个主要阶段都检查代码是否存在漏洞,为了达到这种集成水平,企业需要确保负责Pipeline各个阶段的各方都具有他们所需的培训和工具,以检测代码中的漏洞。

相关技术包括用于检测专有代码中的漏洞的SAST和用于检测具有已知漏洞的开源组件的SCA工具。许多SAST和SCA供应商都提供与CI服务,构建工具,存储库的集成,还提供与IDE的集成,以帮助开发人员尽早发现问题。

在DevSecOps中,最流行的SAST工具是SonarQube。SonarQube是一个自动代码扫描工具,用来持续分析和评测项目源代码的质量。它支持29种开发语言,包含java、python、C#、C++等,以及可从代码量、安全隐患、测试覆盖率等多个维度分析代码。SonarQube涵盖了编程语言的静态扫描规则:代码编写规范+安全规范,能够与代码编辑器、CI/CD平台完美集成。

另一个常见工具是兼顾SCA和SAST的Mend(原WhiteSource)。Mend是一个侧重于SCA,管理开源组件的一站式安全、许可和质量的解决方案。它可以准确检测所有开源许可,包括库的许可,自动化强制实施在新加组件上的许可政策。用户因此可以阻挡不期望的组件进入自己的软件。

通过使用Mend,使企业能够通过自动修复方式,保护其专有和开源代码的安全,从而使开发人员能够集中精力开创新型应用程序。Mend部署在云上,为SCA和SAST提供自动修复功能,并直接呈现在开发人员的存储库中。

与左移中其他工具集成

在Atlassian的DevOps解决⽅案中,同样采取了左移,将过去在测试阶段才进行的部分测试左移到了构建阶段。之前SonarQube是放在Bamboo中的,相当于在CI/CD阶段才使用SAST工具。现在左移后,通过SonarQube for Bitbucket插件,让SonarQube与Bitbucket紧密集成,代码扫描就被左移到了编码阶段。

使用SonarQube for Bitbucket插件集成这两个软件后,您可以直接在Bitbucket中调用SonarQube扫描代码语法错误等,并在两个软件中均能查看扫描结果。

Mend与Bitbucket的集成同样是通过插件,方便快捷。使用WhiteSource for Bitbucket,让SCA/SAST工具在编码阶段即可扫描开源组件中的已知漏洞,保障提交的代码干净。

如果您想要把Mend集成到CI/CD Pipeline中,Atlassian的Marketplace中并不提供相关插件。您可以联系Atlassian全球白金合作伙伴——龙智,我们为您提供定制开发服务,通过脚本搭建Mend与Bamboo的集成,让您能够轻松把Mend集成到CI/CD Pipeline中。

安全贯穿于整个DevOps流程:应用于所有阶段、保障安全的工具

除了编码和构建,安全理念和实践还需要落实到更多的DevOps阶段。因为只有将安全融入到软件开发的整个生命周期中,并实现安全左移,才能落地DevSecOps的最佳实践。Perforce公司的版本管理软件——Helix Core可以实现贯穿始终的安全。从计划到部署,每一个环节都是它的用武之地。

Helix Core在一个存储库中安全管理所有数字内容,提供单一可信来源,统一、灵活、颗粒度访问控制,具有全面可跟踪性。凭借对多因素身份验证和其他强大安全功能的支持,Helix Core是为您最宝贵资产——知识产权,提供坚固保护的最安全的版本控制系统。

除了Helix Core以外,还有许多版本控制软件可供选择,例如Bitbucket、SVN等。如果您的企业同时使用多个版本控制软件,那么通过Atlassian公司的源代码库深度查看软件Fisheye来管理这些版本管理软件是个很好的选择。Fisheye与Jira深度集成,让您能够直接通过Jira来管理这些版本管理软件。

龙智集成世界主流工具,为您量身定制DevSecOps解决方案

随着越来越多的开发团队发展他们的流程并采用新工具,他们需要认真对待安全。DevSecOps是一个循环过程,应该不断迭代并应用于每个新的代码部署。漏洞和攻击者都在不断发展,现代的软件团队也必须随之发展。

龙智延续开放式DevOps的理念,帮助您集成Atlassian工具和各种安全工具,为企业量身定制DevSecOps解决方案。

同时,龙智作为Atlassian全球白金合作伙伴,为帮助释放及拓展Atlassian工具的力量,也自主开发了多款Atlassian插件,更适合本土企业使用。包括帮助用户保护文档版权、跟踪文档内容来源以及提高可信度的Confluence水印插件(Watermark for Confuence);实施记录、限制用户在Confluence中复制页面内容、下载附件等行为的Confluence附件与页面安全管理插件,以及Jira工时管理插件(TimeWise for Jira)、Jira工作流扩展和并行审批插件(WorkflowWise for Jira)等,欢迎咨询试用。

想了解更多Atlassian DevOps解决方案、工具及客户案例?欢迎您立即咨询Atlassian全球白金合作伙伴—龙智:
电话:400-775-5506
邮箱:[email protected]
图片

你可能感兴趣的:(devsecops)