DevOps 与 DevSecOps 的争论最近在 IT 圈子中获得了越来越多的动力。但是,这两个概念不是竞争者,而是相互理解的。了解 DevOps 和 DevSecOps 之间的区别对于为您的软件开发环境选择正确的模型非常重要。本博客介绍 DevOps 和 DevSecOps,希望能帮助您做出明智的决定。
什么是 DevOps?
DevOps是一种集成开发和运营团队以无缝协调和开发软件应用程序的方法,以便每个成员在产品的整个生命周期中分担责任。它将人员、流程和工具结合在一起作为一个实体工作,以自动化发布周期、快速响应客户需求并更快、更高效地交付高质量的软件。
什么是 DevSecOps?
DevSecOps 基本上采用 DevOps 模型并在其周围包裹了一个安全层。简而言之,DevSecOps 在软件开发周期的早期以及持续完整性 (CI) 和持续交付 (CD) 流程中引入安全专业人员,这样安全也是整个产品生命周期中每个成员的共同责任,从而使 DevOps 团队能够更快地交付安全应用程序。
当开发人员从第一天起就在编写代码时考虑到安全性,修复错误和保护应用程序更容易,同时打破不同团队之间的孤岛。归根结底,这不是关于 DevOps 与 DevSecOps 的问题,而是关于这两种方法如何相互补充的问题。
DevSecOps 是 DevOps 趋势之一,它将改变现在及以后的业务;在此处阅读有关它的完整博客。
安全性左移
安全性左移是每个 DevOps 与 DevSecOps 或 DevSecOps 与 DevOps 对话的关键方面。安全性左移侧重于安全最佳实践应该在 CI/CD 管道中的何处实施以及何时以及如何应用它们。顾名思义,这种方法涉及将测试、质量和性能评估等安全措施移至软件开发管道的左侧/开始阶段。
这意味着在软件开发生命周期的早期和频繁地合并安全检查,而不是在应用程序开发的最后阶段实施它们。
DevSecOps 减少了与安全问题有关的重大瓶颈,因为开发人员可以及早发现并修复错误,以提高软件质量并简化整个 SDLC 流程。虽然安全团队了解自动化文化的运作方式和速度,但开发人员配备了安全自动化工具和最佳实践,从而获得安全的最终产品。
安全、治理和控制被纳入开发周期,同时保持相同的部署速度,以便安全成为业务支持而不是限制。
DevOps 与 DevSecOps:有什么区别?
关于 DevOps 与 DecSecOps,两种方法乍一看可能非常相似。但是,有一些关键差异需要您注意。DevOps 是关于在整个产品开发生命周期中整合开发和运营团队,并共享标准工具和 KPI 指标。
DevOps 工程师的重点是在不影响用户体验的情况下有效地实施对应用程序的更改。DevSecOps 是 DevOps 的扩展,当开发团队了解到安全性没有被优先考虑并且当前模型中的问题没有得到适当解决时,它就出现了。
因此,从 CI/CD 周期的构建阶段就引入了安全性,以便 DevOps 工程师现在可以在部署产品时考虑到安全性和用户体验。这不是关于 DevSecOps 与 DevOps 的对比,而是关于从安全角度调整 DevOps 模型。
安全自动化
安全自动化是 DevOps 与 DevSecOps 讨论的另一个关键方面。安全自动化涉及自动化系统,无需人工干预即可调查、检测和修复网络威胁。从检测网络威胁并对其进行分类到确定适当的补救计划和执行缓解任务,安全自动化使组织能够在降低开销的同时提高整体安全效率。
安全自动化可以更快地识别威胁,消除手动和容易出错的分类、过滤和可视化任务,并为您节省重复性任务的时间,同时使您能够使用直观的仪表板和报告工具轻松分析和共享数据。通过减少 MTTD 和 MTTR 指标并提高投资回报率,组织可以在整个基础架构中享受面向未来的安全性。
基础架构即代码 (IaC) 安全性
在考虑 DevSecOps 与 DevOps 之争时,IaC 安全性非常重要。传统上,IaC 环境中的云安全任务是在配置基础架构之后执行的。IaC 安全通过在配置资源之前解决云配置问题,将这种方法提升到一个新的水平,从而消除了手动配置引起的新问题。
通过针对数百种策略和已知漏洞扫描云、应用程序和基础设施的模板、模块、文件和相应变量,IaC 安全识别安全问题和错误配置。监控部署资源的安全性然后被转移到 IaC 层。安全自动化使组织能够快速享受对合规性控制和最佳实践的全面覆盖。
Bridgecrew 的 Checkov 和 Open Policy Agent 是两个开源工具,可帮助您根据已知策略扫描 IaC 文件。
CI/CD 安全性
在涉及的每个工具和环境的每个阶段保护 CI/CD 管道是至关重要的,因为所有 DevOps 流程都建立在这个基础上。CI/CD 安全性通过降低管道所有阶段的安全风险来解决这个问题。不安全的代码(主要由第三方来源导入)、未经授权访问代码存储库、不安全的机密管理和开发/测试环境漏洞是一些需要解决的关键 CI/CD 安全威胁。
这需要多管齐下的方法,因为需要不同的工具和框架来解决不同软件堆栈层中的问题。例如,静态软件应用程序测试 (SAST) 和源代码组成分析 (SCA) 在构建阶段工作,扫描代码中的漏洞和错误配置,而 Amazon KMS 和 Hashicorp Vault 有助于管理访问控制和机密管理。了解 DevOps 和 DevSecOps 之间的区别是实施正确工具和流程的关键。
威胁搜寻和安全事件响应
自动化威胁搜寻可在无需人工干预的情况下更快地检测和修复威胁,从而使公司免于整体违规成本。同样,对包含多个应用程序、平台和框架的整个生态系统进行补救既费时又昂贵。自动化安全事件响应可帮助您快速并发地响应事件。
要了解有关安全性的更多信息,您还可以阅读博客SaaS 安全性最佳实践。
DevSecOps 工具
将安全性紧密集成到 CI/CD 管道和自动化流程中,使得应用程序安全测试工具在 DevOps 与 DevSecOps 环境中非常重要。虽然这些工具可以在早期阶段识别错误并降低 CI/CD 工作流中的风险,但它们还可以帮助安全团队自动执行监控和管理任务,并提高基础设施的整体安全性。
以下是最重要的应用程序安全测试工具的列表:
1)静态应用程序安全测试(SAST)
SAST是一种白盒测试方法。SAST 工具扫描应用程序代码,例如字节码、源代码和二进制代码,以查找漏洞和潜在的安全问题,并分配安全弱点级别以优先修复。顾名思义,SAST 工具扫描静态或非运行文件以识别 SQL 注入、跨站点脚本和缓冲区溢出场景等问题。
遵循左移安全原则,SAST 工具在 CI/CD 管道的构建阶段工作,在 SDLC 的早期保护应用程序。这些工具最重要的限制是它们只能分析静态代码,不能扫描暂存或生产环境中的代码。
SAST 通常用于专有代码。Mend、SonarQube、Veracode、Checkmarx 和 AppScan 是 SAST 工具的几个著名示例。
2)动态应用安全测试(DAST)
DAST属于黑盒测试范畴。顾名思义,DAST 工具用于检查正在运行的应用程序。DAST 工具向正在运行的应用程序提供恶意输入,并检查跨站点脚本、SQL 注入、操作系统注入、cookie 安全、安全标头和内容安全策略等漏洞。
DAST 与正在运行的应用程序一起工作时与语言无关。出于同样的原因,他们也不需要访问源代码。此外,他们还测试网络应用程序的 HTML 和 HTTP 接口。DAST 工具在测试和生产环境中自动执行安全扫描,并且可以轻松地与 CI/CD 管道集成。
Acunetix、Netsparker、OWASP Zap、Astra Pentest 和 AppScan 是市场上一些著名的 DAST 工具。
3)安全成分分析(SCA)
安全成分分析是一种安全测试方法,可以扫描和识别开源软件应用程序代码中的安全漏洞、有问题的OSS许可证等。SCA 工具还提供严重性评分、补救指导和详细报告,以帮助用户轻松降低风险。
借助来源和代码质量检查,SCA 可帮助您识别和更新维护不善的软件。SAST 处理专有代码,而 SCA 则用于开放源代码。
Snyk、Veracode、Mend、Black Duck 和 Sonatype Nexus Platform 是 SCA 工具的几个著名示例。
DevSecOps 工具和工作流程
OWASP 十大方法论
OWASP 代表开放式 Web 应用程序安全项目。基本上,它是一个在开放社区模式下运作以提高软件安全性的非营利性基金会。它还向用户提供免费的安全信息。因此,任何人都可以加入社区并为 OWASP 相关项目做出贡献。
OWASP Top 10 是一个提供前 10 个安全漏洞以及基于社区贡献者共识的修复指南的程序,这些贡献者也是安全专家并且在该领域拥有丰富的知识和经验。根据安全威胁的频率以及影响的严重性和规模,Top 10 程序对漏洞进行排名。
自 2003 年以来,考虑到 AppSec 市场的变化趋势,Top 10 计划每 2-3 年更新一次列表。审计机构认为在 CI/CD 或 SDLC 中实施 Top 10 是为了遵守安全合规性和最佳实践。
以下是每位 DevOps 工程师和开发人员在考虑 DevOps 与 DevSecOps 时应考虑的 10 大风险和实践:
OWASP 与 DevSecOps
OWASP DevSecOps 指南通过使用左移安全方法实施 10 大安全措施,帮助各种规模的组织创建安全的 CI/CD 管道。
以下是遵循十大安全控制措施在基本 CI/CD 管道中实施 OWASP DevSecOps 指南的步骤。
- Git 回购扫描
- 静态应用程序安全测试 (SAST)
- 软件组成分析 (SCA)
- 交互式应用程序安全测试 (IAST)
- 动态应用程序安全测试 (DAST)
- 基础架构即代码 (IaC) 扫描
- 基础设施扫描
- 合规检查
可以自定义这些步骤以满足组织要求。通过实施 Top 10 安全控制,组织可以减少系统中的操作故障和错误,同时保护应用程序免受网络攻击。除了提供更强大的加密和更安全的终端产品外,组织还可以提高其作为安全合规公司的真实性和品牌形象。
DevOps 与 DevSecOps:何去何从?
DevOps 与 DevSecOps 的讨论并未就此结束。还有其他值得深思的地方:
漏洞评估
漏洞评估是关于审查系统的潜在漏洞和风险,以确定系统对威胁的暴露程度和严重程度,同时提供补救指导。从网络钓鱼和密码漏洞到 SQL 注入和错误的身份验证机制,漏洞评估评估应用程序和系统在各种威胁攻击中的表现。
不同类型的漏洞评估:
构建评估:针对安全和性能问题分析软件应用程序的构建。
数据库评估:分析数据库系统的漏洞。
Web App Assessment:使用 DAST、SAST 和 SCA 等方法分析应用程序的前端。
移动应用程序评估:分析移动应用程序的安全威胁。
无线评估:分析所有无线接入点及其在基础设施中的分布,以识别对无线安装安全性产生负面影响的架构、环境和配置变量。
配置评估:分析跨基础设施的网络和系统的配置。
渗透测试:
这是一种安全方法,它模拟针对系统或网络的网络攻击,以识别漏洞并评估系统的安全强度。也称为笔测试,这种方法评估应用程序和系统的前端服务、后端服务和 API。根据报告,安全管理员可以修补已知漏洞并加强他们的 Web 应用程序防火墙 (WAF) 策略和协议。
安全合规
安全合规性是指监控、评估和评估网络和系统的安全性,以确保符合监管政策和行业安全标准。如果不这样做,可能会导致代价高昂的数据泄露,这意味着诉讼、处罚和罚款。
无论 DevOps 和 DevSecOps 的实施如何,以下是组织的一些关键合规性要求:
PCI 合规性: PCI 合规性适用于支付卡行业。处理或存储支付卡信息的组织应遵守操作和技术标准,以按照 PCI 安全标准委员会 (PCI SSC) 制定的一套安全指南来保护支付卡持有人的关键数据。
HIPAA 合规性: HIPAA 合规性适用于医疗保健行业。涉及医疗保健的组织应遵守 1996 年联邦健康保险携带和责任法案,以保护与患者健康相关的敏感数据。
HITRUST 合规性: HITRUST 是指健康信息信任联盟,成立于 2007 年。它是一个可认证的安全框架,提供了一组指南/控制来证明组织中的 HIPAA 合规性。请务必注意,HITRUST 和 HIPAA 并不相同。虽然 HIPAA 是一项法律,但 HITRUST 是一个基于 HIPAA 立法要求的框架。
SOC2 合规性: SOC2 是一种审计程序,它定义了基于五项信任原则(即安全性、隐私、机密性、可用性和流程完整性)安全管理客户数据的标准。它由美国注册会计师协会开发。
结论
DevOps 和 DevSecOps 在自动化、主动监控和协作文化方面看起来很相似,但也存在重大差异。当谈到 DevOps 与 DevSecOps 时,DevOps 团队关注应用程序的部署频率和性能,而 DevSecOps 团队则关注整个产品生命周期中的应用程序安全性。了解这两种方法之间差异的组织可以对其流程进行正确的更改,以优化速度、敏捷性和安全性,同时提高交付管道的整体效率。