共计 3325 个字符,预计需要花费 9 分钟才能阅读完成。
前 言
现如今,大部分企业曾经在外部实现了 DevOps 实际。DevOps 为团队提供了交付牢靠软件和疾速更新的方法论。这种办法让团队更专一于品质而不是将工夫节约在运维上。然而,后果是,平安实际往往被留在交付流水线末端的平安专家手中。而后,因为意外往往呈现在交付阶段的最初,所以使得特定的平安办法在交付过程中产生了不必要的收入。因而,团队没有足够的工夫修复代码,并重复开始雷同的流程,最终导致交付老本高且效率低。
随着大多数公司开始进行数字化转型,DevSecOps 曾经变得越来越重要。随着这些打算的施行,公司正在向云端转移。这使得本地基础设施逐步转移到私有云上。云服务提供商提供了具备老本效益、可扩大、高度可用和牢靠的解决方案。然而,这些劣势也随同着新的平安挑战。
DevSecOps 将平安纳入 DevOps,作为 SDLC 的一个组成部分,而不是在软件开发几近实现后才开始思考平安问题。它还将平安责任调配给团队成员,在于平安专家的合作中,团队能够实现一种“平安即代码(Security as code)”的文化,激励将平安与 SDLC 流水线中的其余组件放在同一地位看待。
什么是 DevSecOps?
DevSecOps 是全栈式的,横跨整个 IT 栈,包含网络、主机、服务器、云、挪动端和利用平安。这些层都逐步被各类软件代替,因而利用平安成为 DevSecOps 的关注点。DevSecOps 横跨整个软件开发生命周期,包含开发和运维。在开发中,平安的重点是辨认和预防破绽,而在运维中,监控和进攻攻打是次要指标。
那么团队能够将 DevSecOps 实际和工具利用于非 DevOps 我的项目吗?答案是必定的。如果您的团队指标是以最具老本效益的形式生产高度平安的软件,那么 DevSecOps 就是后退的方向。
履行 DevSecOps 的企业曾经大受裨益。依据 Gartner 的数据,这些早起采纳者的平安测试跟上频繁的应用程序更新的可能性要高出 2.6 倍,并且修复破绽的工夫缩小了 2 倍。
借助 DevSecOps,开发、运维、测试和平安团队进行单干,并整合资源,以便在开发过程中尽早发现平安问题。开发也不会停滞不前,最终的后果是在更快、更无效的工作流程中创立更平安、更高质量的应用程序。
如果你是一名 IT 平安业余人员,DevSecOps 能够让你在谈判桌上领有一席之地。你的团队不再被看作是一个惨重的桎梏,你们的意见将在开发之初就失去器重,你的组织将把你看作是推动平安集成的牵头人。
如果你是一名开发人员,你也会从 DevSecOps 中受害良多。因为对软件的安全性要求是不会隐没的,如果只在最初一刻解决平安问题,那么只会连累你的进度。平安是当今软件品质的一个重要组成部分,在开发阶段就开始重视软件平安,你的客户会为此感激你。
DevSecOps 的 5 个因素
1、合作
合作的终点是在整个组织内建设一种平安责任共担的心态,同时失去领导层的反对。围绕着一个独特的指标,即在满足所有平安和合规要求的前提下,尽可能快地开发和公布高质量的产品,从而坚固单干。
平安团队从相熟 DevOps 实际开始做好本人的工作,并将其整合到平安中。例如,频繁提供平安性能,并尽可能将平安工作自动化。反过来,开发人员也应该学习平安的最佳实际,对安全性的要求、风险意识和平安工具等。
2、沟通
开发人员和平安专家之间的沟通差距必须被弥合。平安专家须要用开发人员的术语来论述管制的必要性和合规的益处。例如,在探讨平安危险时,以我的项目提早和开发人员计划外的额定工作为例,将使解决这些危险的重要性深入人心。
开发人员应该分明地理解他们身上的平安责任,这样他们就能够齐全承受他们在一个更平安和合规的组织中的角色。这些责任包含意识到潜在的平安危险,并在编写代码时牢记平安的最佳实际。开发人员还应该筹备好在整个开发过程中进行破绽测试,以便在发现破绽时及时进行修复。
3、自动化
自动化可能是一个胜利的 DevSecOps 打算中最要害的组成部分。它能够让安全措施嵌入到开发过程中,并确保安全不会成为平安团队的累赘。自动化的平安测试和剖析能够集成到整个 CI/CD 流水线中,在不连累翻新和开发工作流程的状况下提供平安的软件。当初,开发人员和平安团队都很称心。
自动化还能够实现有价值的安全控制,如中断构建。这种平安故障爱护机制是基于一个自动化的危险评分零碎,当危险超过预先确定的阈值时就会收回警报。而后,所有的构建过程都会被解冻,直到开发人员补救平安问题。一旦平安问题被修复,开发人员能够持续实现构建并交付应用程序。
4、工具与架构平安
平安的软件始于平安的 DevOps 环境。爱护工具、拜访和架构在任何 DevOps 零碎中都是至关重要的。平安团队应该带头抉择和查看所有系统安全工具的配置,以确保在这些零碎被批准宽泛应用前曾经配置好适合的性能。
辨认和拜访治理应该被认真对待。平安团队应该管制对 DevOps 架构和数据的拜访权限,在整个开发流水线中爱护凭证的应用。多因素认证(MFA)、最低拜访权限以及对高级权限的长期拜访都是你能够利用的拜访控制策略。此外,CI/CD 流水线应该被隔离,以限度横向挪动,所有不必要的拜访 DevOps 工具的账户应该被打消。
有了 DevSecOps,平安和合规性管制被纳入基础设施,以涵盖所有环境,包含云。所有工作站和服务器都要承受定期的安全监控、破绽扫描和补丁。能够应用自动化工具来扫描所有代码,以确保在查看代码库时没有脱漏。另外,所有新的虚拟机和容器都会主动承受正确配置的管制,以帮忙抵挡主动重建。集中的存储系统寄存 DevOps 工具和密钥,所有这些都受到加密和多因素认证(MFA)的爱护。
5、测试
历史上,平安测试是作为产品公布前的最初一步来运行的。现实状况下,测试应该贯通整个开发过程。Keatron Evans,Infosec Skills Infosec Institute 的作者和参谋,解释说:“传统上,应用程序在实现开发后再进行测试,但如果开发人员在主动、继续的根底上进行测试,会更无效。开发者应该可能在整个开发过程中进行根本的 OWASP 十大测试,而不是测试一个齐全构建实现的应用程序,因为前者将能够解决一半的网络安全问题。”
为了放弃平安与倒退同步,自动化测试的注入是至关重要的。自动化能够帮忙执行简略的流程,如在代码被查看到代码库之前扫描代码的密钥,以确保明码没有被记录在事件日志中,以及搜寻应用程序的恶意代码。
无效的测试计划包含动态利用平安测试(SAST)、动静利用平安测试(DAST)和不太频繁但同样重要的技术,如浸透测试、Red Teaming 和 Threat Modeling。后者可能很有价值,因为它们从黑客的角度靠近代码,而不毁坏生产环境。当初,许多组织通过“Bug 赏金”打算来激励进行彻底的测试,处分发现潜在的平安问题。
DevSecOps 通过监测要害指标来评估测试机制,以掂量在整个开发过程中为了缩小危险而进行的优化和平安实际的有效性。开发人员会收到自我评估的记分表,通过各种相干问题让他们放弃对平安问题负责。例如,攻击面是否在缩小?凭证滥用是否被发现?咱们的浸透测试是否显示出更少的代码破绽?含有明码的代码提交的百分比是多少?
如何将 DevSecOps 引入企业?
过渡到 DevSecOps 办法须要工夫。为了确保整个组织的认同,倡议采取循序渐进的形式。以下是引入 DevSecOps 打算时须要记住的一些关键点:
- 在组织外部建设一种以平安为核心的文化,强调平安是组织成员独特的责任。
- 寻找办法在整个开发过程中尽早整合自动化平安测试。
- 通过安全意识培训来疏导开发人员理解平安威逼、平安编码要求和工具。
- 让开发人员接触以后的黑客技术,教他们像黑客一样思考和攻打代码。
- 让平安团队提供弱小的浸透测试、红队练习和威逼建模,以踊跃测试代码。
- 在共享的跟踪零碎中监控平安问题,以便在所有部门中取得最大的可见度。
- 提供相干的指标,以证实随着工夫的推移 DevSecOps 我的项目在继续改良并提供价值。
意识到开发人员须要工夫来齐全扭转他们的思维形式和习惯。在日常流动中持续强调平安的概念并晋升安全意识。
对于 DevSecOps 的更多内容,欢送查看这篇文章:DevSecOps: CI/CD 流水线平安的最佳实际