DevSecOps入门指南
在这篇文章中,我将谈谈在DevOps领域的一个流行词-DevSecOps。
DevOps 在过去几年中取得了成功。它现在已经成为每个组织的核心实践之一。在开发和运营团队之间建立合作有助于组织以更高质量的速度推出他们的产品。
通过使用 DevOps tools 和实践,大多数事情变得更加顺畅和自动化。
但是你认为DevOps没有挑战吗?
是有的!
为什么我们需要DevSecOps?
Forrester 的研究显示,58% 的公司遭受了数据泄露,其中 41% 是由于软件漏洞引起的。安全错误有可能造成巨大的损害并使组织损失数百万。
- 两年多的时间内,应用程序漏洞增长了 88%
- 78% 的漏洞存在于间接依赖关系中
- 37% 的开源开发者在持续集成期间不实施任何安全措施
- 54% 的开发人员不进行任何 Docker 镜像安全测试
在瀑布模型中,您过去会收集所有需求,处理所有需求,然后在几个月或几年后交付完整的产品。在 DevOps 中,完整的产品是迭代发布的。一个应用程序可以在一天内进行数百次迭代,但渗透测试人员能够每天找到应用程序的安全漏洞一百次吗?
答案是否定的!
开发人员、管理员和架构师认为,如果他们在云上工作,那么他们是安全的,因为云提供商会负责安全。这是一个错误的观念。在大多数情况下,如果您在云上工作,您更容易受到攻击。
因此,在当今时代,安全是每个公司非常重要的因素。传统的安全措施已经无法跟上 DevOps 的快速步伐。
这就是 DevSecOps 的救命之处!
什么是 DevSecOps?
DevSecOps 是一种将安全工具集成到 DevOps lifecycle 中的“安全即代码文化”。将安全作为 DevOps 过程的一部分,是减轻风险的唯一途径。
它是一个变革性的转变,将安全文化、实践和工具融入到 DevOps 过程的每个阶段。它消除了开发、安全和运维团队之间的隔阂。
它遵循“左移”(shift-left)的方法,即在设计/计划阶段尽早注入安全流程,为开发和运维团队提供安全意识,并满足网络安全要求。
以下是 DevSecOps 实施的一些实践:
- 与安全和开发团队合作进行威胁建模
- 将安全工具整合到开发集成流程中
- 将安全要求作为产品待办事项的一部分进行优先排序
- 在部署之前审查与基础设施相关的安全策略
- 安全专家正在评估自动化测试。
现代技术创新在 DevSecOps 中发挥着重要作用。安全即代码、合规即代码和 Infrastructure as a code 可以消除许多手动安全活动,并提高整体效率。
DevSecOps 的工具
它需要许多技术堆栈和多个解决方案,需要仔细整合才能部署 DevSecOps 文化,而不会产生安全漏洞或瓶颈。
以下是一些重要且流行的 DevSecOps tools:
- SonarQube:用于对代码质量进行持续检查。它提供了关于软件质量的持续反馈。
- ThreatModeler:提供一个可扩展和安全的企业软件开发生命周期的威胁建模解决方案。它能够预测、识别、定义安全威胁,并帮助您节省时间和成本。
- Aqua Security:提供预防、检测和响应自动化以保护构建、云基础架构和运行负载的安全。它保护整个应用程序生命周期。
- CheckMarx:一套完整的软件安全解决方案。该套件为静态和动态应用程序提供安全测试,提供类似 software composition analysis 的工具,并通过代码研究来促进开发人员之间的软件安全文化。
- Fortify:提供作为服务的应用程序安全。它主要用于企业的安全开发、安全测试以及持续监控和保护。
- HashiCorp Vault:管理密码、令牌、API 密钥、证书等敏感数据的秘密。还有更多秘密管理器可以 explore here。
- GauntLT:一种行为驱动的开发工具,用于自动化攻击工具。它可以轻松集成到组织的测试工具和流程中。
- IriusRisk:以规模提供生产级应用程序安全。它通过与测试工具和问题跟踪器的双向同步以及实时安全活动视图来帮助您管理威胁模型和安全风险。
DevSecOps 生态系统
这是 DevSecOps 生态系统中不同阶段的流程。在完整的生态系统中,安全扫描将是其中一部分。
- 在开发阶段,可以将安全工具和插件直接集成到 IDE 环境中,识别任何 source code vulnerability。
- 您可以集成预提交钩子,以防止将任何不安全的数据内容(如身份验证密钥)提交到存储库,并将此类数据仅保留在开发人员的机器上。
- 版本控制将在存储库级别维护秘密管理和配置。
- 在构建前和构建后将确保静态和动态代码审查、执行和反馈。
- QA 环境将检查安全扫描,特别是第三方组件扫描。
- 而暂存环境将执行漏洞和渗透测试,并将结果与开发、质量和安全团队共享。
- 针对基础设施的自动化安全扫描、合规性作为代码和安全作为代码将减少许多手动安全活动。
- 最后,监控环境将启用安全阈值的警报和通知。
- 漏洞管理将成为整个 DevSecOps 生态系统的一部分。
结论
以上是 DevSecOps 的基础知识。如果您从事 DevOps 工作,您必须开始在组织中推广和应用 DevSecOps 文化。您还可以查看 this blog 以了解 DevSecOps 专家的核心职责。