使用 AWS 的 DevSecOps 简介:如何将安全性集成到 DevOps 中(下) - 嘶吼 RoarTalk – 网络安全行业综合服务平台,4hou.com

使用 AWS 的 DevSecOps 简介:如何将安全性集成到 DevOps 中(下)

walker 技术 2022-11-11 11:10:00
36351
收藏

导语:在本文中,我们向您展示了为 DevOps 增加安全性的好处、采用 DevSecOps 的主要挑战,以及使用 AWS 服务实施 DevSecOps 的最佳实践。

使用 AWS 的 DevSecOps 简介:如何将安全性集成到 DevOps 中(上)

将安全性集成到 DevOps 中的最佳实践

DevSecOps 的主要任务是通过确保 SDLC 早期阶段的安全编码实践,将安全性集成到 DevOps 中。虽然需要自动化,但 DevSecOps 不仅仅与此有关。首先,应培训开发人员和运营专家以了解黑客的逻辑并知道如何通过安全措施来防止攻击。只有这样,他们才能正确使用旨在发现缺陷并确保开发和测试过程中安全的工具。

image.png

成功采用 DevSecOps 的 6 个最佳实践

1. 培养安全性和开放性作为组织文化的一部分

如果您想将安全性集成到您的 DevOps 团队中,第一步是通过以下活动改变您的文化:

  • 建立知识库。培训开发人员和 QA 专家,确保他们了解安全编码和测试的基本原则,从而能够负责满足安全要求。

  • 促进开放。鼓励通常独立工作的 DevOps 和安全部门之间的开放式沟通和协作。确保安全指标和仪表板对开发人员透明、可用且易于理解,以便他们可以应用它们来检查代码质量。

  • 打造安全冠军。聘请了解传统 DevOps 团队安全性的专业安全人员,并可以指导您的团队以确保他们在向 DevSecOps 过渡期间具有安全意识。安全冠军应该了解行业最佳实践,并参与 DevSecOps 咨询,了解如何为软件开发调整安全性。

但是,不要过度使用这种做法。您的员工不需要成为网络安全专家——他们只需要足够的知识和培训来确保其职责范围内的安全。

2.获得可靠的版本控制系统

短冲刺和持续交付要求开发人员在每个冲刺中对应用程序的代码进行许多更改。您必须能够跟踪这些更改,查看更改的内容和更改者,并查看他们是否有权这样做。您还需要能够快速回滚更改并恢复到以前版本的代码。

这就是为什么在将 DevSecOps 实践实施到 SDLC 之前部署版本控制系统很重要。选择具有以下功能的版本控制系统:

  • 授权和身份验证机制

  • 开发人员的数字签名

  • 多样化的变更控制技术

  • 代码版本的元数据集合

  • 应用程序生命周期管理工具

您还可以选择一个分布式版本控制系统来镜像软件的代码库和开发人员机器上的所有代码更改。

3. 构建 DevSecOps 流程

构建安全的 CI/CD 管道需要在开发过程的每个阶段添加安全检查和扫描。让我们看看在每次迭代期间您可以采取哪些措施来保护您的软件:

image.png要在您的 SDLC 中实施的关键 DevSecOps 活动

1、软件规划中的安全措施

除了收集功能性和非功能性软件需求、产品特性和潜在用例之外,您还需要研究安全需求、验收测试标准和威胁模型。从软件规划阶段开始,还应考虑潜在的安全问题。

在规划阶段,您可以使用威胁建模和风险评估工具来了解应用程序的风险级别。如果您的应用程序将处理敏感数据或直接访问互联网,您可能需要构建更深层次的威胁模型。此外,如果您将任何数据用于应用程序测试,请考虑如何将其匿名化以避免隐私问题。

2、软件开发过程中的安全措施

在开发阶段,DevSecOps 要求您的团队遵循安全编码和审查软件设计和代码的原则。但是,所有这些测试和检查不应减慢开发过程。这就是为什么您需要使尽可能多的流程自动化。

您还需要集成自动化的动态和静态代码测试,以便在软件发布之前检测安全漏洞。这些自主扫描不需要安全人员的干预,并且可以将结果直接添加到错误跟踪系统中。

作为此类测试的替代方法,您可以让开发人员使用轻量级工具在其集成开发环境中进行快速代码扫描。使自动扫描和安全测试软件成为持续集成测试工具链的组成部分有助于显着减少安全漏洞的数量。

3.持续的安全检查

DevSecOps 从业者应该通过保护他们的环境来保护他们的代码。虽然开发人员经常使用开源应用程序和预构建的库、容器和框架,但他们需要在使用它们之前消除这些组件中的任何已知关键漏洞。

这就是为什么您需要对所有系统映像的所有内容进行漏洞检查,包括:

  • 云环境

  • 虚拟机

  • 集装箱

  • 操作系统

  • 其他软件

持续集成应包括检查所有操作系统和应用程序平台设置的配置是否符合安全最佳实践。

虽然容器使用通用操作系统,但对它们的任何攻击都可能会危及您的容器。因此,最佳实践是在相似信任级别的工作负载上使用容器。然而,为了更强的隔离,最好使用管理程序或物理分离。

4. 迭代优先于完美

传统的开发方法告诉我们在发布软件之前解决所有问题。随着 DevSecOps 方法中的发布频率,完善您的代码直到它完美可能非常耗时,甚至可能导致在发布之前进行处理——这反过来又会导致在下一个冲刺期间花费更多的时间来修复和打补丁。

提前规划和迭代您的工作是成功实施 DevSecOps 的关键。因此,与其试图在一次冲刺中达到完美,不如评估发现的安全问题,决定必须尽快解决哪些问题,并将其他问题留到未来的迭代中。

持续的风险评估和威胁监控可以帮助您决定需要尽快修复哪些漏洞。

5. 使用安全即代码方法自动化流程

虽然 DevOps 使用可编程基础设施即代码,但安全措施也应根据这一原则进行调整。安全编码原则应适用于脚本、模板、配方和蓝图的自动配置。安全即代码可帮助您自动应用这些原则。

安全即代码是一种允许开发人员在代码中定义安全要求、策略和最佳实践的实践。然后,他们可以将此代码集成到 CI/CD 管道中,自动执行安全测试、检查和扫描。使用安全即代码,您可以自动化:

  • 静态和动态代码分析

  • 某些渗透测试活动

  • 合规检查

  • 扫描漏洞和风险,例如嵌入式凭证、API 密钥和加密密钥

  • 向开发人员提供反馈

image.png为什么实施安全即代码方法?

将您的安全需求描述为代码需要大量的谨慎和专业知识,因为存在通过所有 CI/CD 管道使用此代码部署错误配置和漏洞的风险。这就是为什么您需要在部署之前使用结对编程或进行代码审查。此外,最好不要自动执行风险评估和优先级排序任务,或者至少在采取行动之前先审查它们的结果。

6. 管理对 DevSecOps 工具的访问

传统的静态访问控制工具不足以保护 DevSecOps 环境中的敏感资源。瞬息万变的环境和模糊的用户职责范围使得很难使用基于角色的访问管理工具一劳永逸地配置用户访问权限。

为确保高级别的安全性,您需要使用动态访问配置工具和方法,例如零信任网络访问控制、Kerberos 身份验证协议或可自定义的属性权限。

此外,DevSecOps 需要增强的机密管理。将所有代码上传到公共存储库或云服务后,您无法对敏感数据进行硬编码或使用凭据、SSH 密钥和 API 密钥上传文件。相反,您应该实施一个秘密管理工具来加密这些秘密并将它们存储在受保护的保险库中。

这些实践将帮助您构建快速、迭代且安全的 CI/CD 管道。由于您还需要可靠的工具,让我们了解如何在 AWS 基础设施中实施 DevSecOps。

在转向 DevSecOps 时,您应该使用哪些 AWS 服务?

使用来自众多供应商的工具构建完整的 CI/CD 管道极具挑战性,因为您必须担心集成、数据收集和兼容性,并确保每个工具的工作安全。此外,对任何工具的任何更新都可能会损坏您的软件基础架构或自动化流程,并导致更多工作。

这就是为什么我们更愿意使用 AWS 工具和服务来保护 DevOps,这些工具和服务可以帮助我们构建一致且安全的管道。AWS 虚拟基础设施包括一组旨在自动化代码测试的工具,特别是在整个代码开发和质量保证过程中应用安全检查。

image.png

面向 DevSecOps 的 AWS 服务

构建安全的 CI/CD 管道

您可以使用这些 AWS 工具和服务将安全性集成到 DevOps 管道中,以实现自动化代码构建、部署和分析:

  • AWS CodeBuild — 一种编译源代码、运行测试和准备软件包以进行部署的服务。

  • AWS CodeCommit — 一种用于托管基于 Git 的安全存储库的源代码控制服务。要使用它,您的 DevSecOps 团队需要配置他们的 Git 客户端以与 AWS CodeCommit 存储库通信。

  • AWS CodeDeploy — 一种用于将代码自动部署到基于 AWS 的本地和第三方计算服务的服务。

  • AWS CodePipeline — 一种高效的 CI/CD 服务,允许 DevOps 工程师自动执行预防性和检测性安全控制。使用 AWS CodePipeline 实施 DevSecOps 可确保快速安全的软件更新。

  • AWS CloudFormation — 一种用于自动安全地描述和配置基础设施资源的服务。使用此服务,DevSecOps 从业者可以创建演示管道的安全模板。

  • AWS Lambda — 一种无服务器计算工具,可自动运行您的代码以响应检测到的触发器。您可以使用它对范围内的安全组执行静态代码分析和动态堆栈验证。

  • AWS Systems Manager Parameter Store — AWS Systems Manager 的一部分,可让您安全地存储配置和管理机密。Parameter Store 使 AWS 基础设施透明且可控。

应用安全机制

当您将敏感数据上传到公共(甚至私有)存储库或云服务时,保护敏感数据尤为重要。使用以下 AWS 工具实施 DevSecOps:

  • AWS Identity and Access Management — 一项显示在对产品进行更改时谁负责什么的服务。它有助于验证谁实施了更改、审核日志和配置存储库并管理访问权限。

  • AWS Key Management Services — 用于创建和管理数据保护所需的加密密钥的服务。这些服务使用经过验证的硬件安全模块来确保您的密钥安全。

  • Amazon Virtual Private Cloud — 一项允许您在 AWS 公共云中创建私有云的服务。虚拟私有云不仅提供与私有云中其他客户的隔离,还提供与互联网的第 3 层隔离。

自动化安全活动

自动化是 DevSecOps AWS 服务的核心。以下安全自动化工具可用于自动化事件响应、补救和取证:

  • Amazon Simple Notification Service — 一种完全托管的消息传递服务,用于自动化应用程序到应用程序和应用程序到个人的通信。

  • AWS Security Hub — 一项服务,可让您全面了解 AWS 账户的安全警报和安全状况。它还有助于自动执行安全检查和警报管理。

  • AWS CloudWatch — 一种 AWS 资源监控工具,可从您的 AWS 账户和部分 AWS 基础设施收集日志并将其系统化。

  • AWS CloudTrail — 一种可以监控对 AWS 账户的 CloudWatch API 调用的服务。借助 CloudTrail,您的安全官可以快速响应可疑活动。

结论

DevOps 是改进软件工程和维护流程的有效方法。但是,只有将安全性集成到 DevOps 实践中,公司才能充分发挥其潜力。

将 DevSecOps 引入 AWS 服务需要广泛的安全培训、周密的规划以及自动化和手动活动的适当平衡。但是,遵循将安全性集成到 DevOps 中的最佳实践将帮助您成功克服这些挑战。


本文翻译自 :https://www.apriorit.com/dev-blog/530-delivering-devsecops-aws如若转载,请注明原文地址
  • 分享至
取消

感谢您的支持,我会继续努力的!

扫码支持

打开微信扫一扫后点击右上角即可分享哟

发表评论

 
本站4hou.com,所使用的字体和图片文字等素材部分来源于原作者或互联网共享平台。如使用任何字体和图片文字有侵犯其版权所有方的,嘶吼将配合联系原作者核实,并做出删除处理。
©2022 北京嘶吼文化传媒有限公司 京ICP备16063439号-1 本站由 提供云计算服务