【.com快译】对于一些企业来说,即使他们的员工不是软件开发人员,了解DevSecOps的基础知识也是很有必要的。这是因为可以提高企业的安全性。许多企业长期以来一直专注于加速应用程序开发以尽快部署新软件,但往往以牺牲安全性为代价。不幸的是,如果在此阶段发现应用程序存在安全问题,则意味着需要重写大量代码,这对开发人员来说是一项非常复杂、困难且耗时的任务。但DevSecOps指标和方法已成为开发人员应对软件开发生命周期(SDLC)的重要更新。通过拥抱DevOps的快速发展和SecOps的严格监管,它们可以合并为一个整体。这种做法使开发人员能够在启动项目之前构建安全的软件。预计软件交付、安全和基础架构的新方法将成为2021年DevOps的趋势。基础架构自动化工具的成熟以及更好的安全工具以及对数字化转型的全面接受意味着DevOps将获得更多动力和知名度。本文将介绍有关DevSecOps的知识、有关如何在软件管道中实施DevOps安全指标的一些指南和技巧、为什么越来越多的开发人员采用这种方式工作以及DevSecOps的实施如何为员工带来更好的团??队意识、更快的软件开发生命周期(SDLC)、更高的生产力和更好的安全性。DevOps安全性要集成到DevOps实践中以实施DevSecOps软件开发方法,最常见的建议是:继续关注安全性并将其构建到应用程序中。使用自动和手动扫描流程来保护开源和第三方组件。始终遵循安全编码准则。验证所有输入数据、响应和内容类型。警告异常行为并分析它以寻找潜在攻击的迹象。利用人工和自动化安全测试和保护。使用SAST工具创建安全可靠的代码。对DevSecOps的需求CloudDefense的DevOps专家BarbaraEricson指出,“DevOps主要关注通过降低构建(发布)的失败率来更快地向最终用户交付软件应用程序。DevOps还强调实现您需要的工具快速周转。”然而,“DevSecOps”也将软件开发和带有安全元素的IT运维整合到一个共同的角色中,这种结合强调了开发软件时三个优先级之间的平衡。DevSecOps还可以发现潜在的安全漏洞,在它们被网络攻击者利用之前纠正它们,并构建具有内置安全服务的业务驱动软件。这种方法降低了合规成本和软件发布延迟。在DevSecOps被广泛采用之前,企业经常在软件发布前的最后阶段检查他们新开发的软件。由于快速部署的文化,将补丁应用于服务器以进行安全修复而不是修复其核心安全问题变得越来越普遍。如今,企业不能只是事后才考虑安全问题,因为很难承受网络攻击。IT基础设施非常普遍,IT技术在日常活动(例如购物、银行业务和医疗保健)中的使用也是如此。这意味着DevOps需要具有可扩展性,因为需求不断增长,并且如果发生数据泄露可能会造成中断。近年来,网络犯罪的数量一直在稳步增加。最近的一项研究显示,英国60%的企业在2020年底遭受了网络攻击。远程工作和大流行加速了这一趋势。现在,实施DevSecOps不再是一种好的做法,而是减少严重数据泄露和其他黑客事件的可能性的必要条件。DevSecOps将重点转移到安全性上,确保软件开发管道中的每个人都有责任确保最大的IT安全性。在软件开发过程的每个级别都关注网络安全,因此优先考虑速度、功能和安全性。DevSecOpsvs.DevOpsDevSecOps的旧范式和DevSecOps的新范式有什么区别?首先关注相似之处。这两种方法都重视团队合作的概念,并认识到这可以加速重要新软件的发布。他们都利用敏捷框架来强调由动态和持续的工作流程驱动的工作文化,强调各个层面的沟通和协作。DevOps和DevSecOps都对简单的任务使用了一定程度的自动化,使开发人员有时间专注于软件更重要的方面。连续过程的概念适用于这两种实践,确保在每个阶段都满足开发、运营或安全的主要目标,避免管道中的瓶颈。通过合作,开发人员、运营人员或安全专家可以迅速编写新的应用程序和软件更新,监控、记录和评估代码库和安全边界,并使用中央存储库推出新的和改进的代码库。DevOps和DevSecOps之间的主要区别非常明显。后者重新关注安全性,这在以前被其他方法和框架所忽视。过去,企业强调新应用程序的开发和发布速度,但当网络安全专家审查代码并指出安全漏洞时,却发现自己陷入了沮丧的境地。前一种做法鼓励在软件开发周期中制造瓶颈,这给网络安全专家和开发人员带来了很大压力,要求他们快速修复软件故障和漏洞。这通常是以牺牲软件的功能和安全性为代价的。DevSecOps管道本质上是一系列安全实践和工具,它们植根于软件开发管道的每个步骤。IT专家将协作构建、测试并最终更快地发布安全软件。通过实施DevSecOps,开发团队可以确保他们能够在软件开发生命周期(SDLC)的早期发现安全漏洞,并在为时已晚之前为它们创建最佳修复。这反过来又提高了整个生命周期的速度和灵活性。它还可以帮助团队中的每个人熟悉潜在的安全问题,并使企业能够更快地从安全事件中恢复过来。传统上,现代DevOps管道有几个不同的层。这些阶段称为计划、编码、构建、测试、发布、部署、操作和监控阶段。这些阶段与DevSecOps的思维方式保持一致,但有一个例外:对安全的关注应用于每一层。这种对安全的关注以几种不同的方式表现出来。第一个重点是威胁建模。开发团队集思广益各种最有可能的攻击场景,检查可能被破坏的敏感数据,并提出可能的解决方案。它还具有使团队中的每个人都了解常见安全问题的额外好处。另一个重点是扫描,它分析代码以确保免受常见漏洞的影响。一个好的做法是同时使用手动和自动扫描过程。分析在安全方面也起着重要作用。在此阶段,将进一步审查从前两个州收集的信息、数据和指标。开发团队对安全风险进行优先级排序,列出最严重的、不严重的和更有可能发生的风险。补救阶段允许参与软件开发生命周期(SDLC)的团队针对所有已识别的安全风险设计解决方案。静态分析安全测试(SAST)可以为通过自动化检测到的代码中的许多错误和漏洞提供解决方案。最后,开发团队可以监控软件并跟踪已识别的漏洞,以及记录为缓解潜在安全问题而采取的步骤。监控阶段需要不断评估软件的整体安全性。DevOps安全工具幸运的是,开发团队的工具包中有许多工具,可以用来帮助创建没有错误和漏洞的代码。这些工具可以让开发团队的生活更轻松,并促进网络安全软件的创建。SAST工具静态分析安全测试(SAST)工具依靠自动化来评估代码中的漏洞。SAST是一个很棒的工具,因为它具有高度可扩展性。SAST最重要的元素之一是源组合分析,它会自动扫描代码以查找OSS软件、OWASP、漏洞、错误、库和其他可能存在开放安全问题的类似工件中的漏洞。SAST工具遵循国际公认的编码标准,在检测到易受攻击模式的地方设置危险信号。它可以更早地识别许多不同类型代码中的安全漏洞,如果需要重写代码以优先考虑网络安全,这可以节省资金。SAST工具提供的实时反馈使开发人员能够准确了解漏洞的位置及其原因,从而使他们能够采取相应的行动。DAST工具动态应用程序安全测试(DAST)工具可深入分析软件应用程序的代码并分析执行逻辑和实时数据。DAST工具具有更全面的方法,可以在应用程序运行时对其进行分析。它测试加密算法,试图使用“白帽”黑客方法从外部破解它们。DAST帮助验证权限以确保不同权限级别的安全性。它检查跨站点脚本、SQL注入和其他常见的软件安全漏洞。它可以捕获硬应用程序故障,并记录应用程序执行情况以进行事后测试故障分析。最后,它确保第三方接口没有严重漏洞。SAST和DAST协同工作。这些工具对于有效的DevSecOps管道的全面安全测试过程至关重要。容器扫描容器扫描只是使用扫描工具不断检查容器以确保它们正常运行的过程。至少,容器扫描应确认软件供应链正常运行,并且开发团队的容器基础设施已正确配置和保护。最好的容器扫描工具将容器组件与其不断扩展的新漏洞数据库进行比较。他们还应向开发团队提供已发现的任何许可问题或漏洞的报告、影响分析和图表。结论随着人们生活在一个越来越依赖技术的世界中,开发团队肩负着创建安全软件的巨大责任。创建可能包含敏感医疗、财务或其他个人信息的大型数据库的应用程序时,风险很高。幸运的是,凭借DevSecOps思维、正确的DevOps工具和适当的指标,有许多方法可以构建和编写软件以确保最大的安全性。原标题:DevSecOps:ACompleteGuide,作者:VishnuVasudevan
