共计 3007 个字符,预计需要花费 8 分钟才能阅读完成。
极狐 GitLab DevOps 布道师马景贺带来《DevSecOps:始于工具,终于数据,谋全局而非谋一隅》,分享如何利用 DevSecOps 来构建残缺、高效的平安防护体系。
保险与危险:向左还是向右?
随着社会的提高与人们安全意识的进步,保险的重要性逐步在失去大家的认可。多元化的保险购买也成为了投资本身以及家人的重要形式,“买保险就是买安全”也成了大家耳熟能详的广告语。因而,保险就等于管制危险,让“爆炸半径”在能控的范畴内。
对于软件来讲也是一样的,平安是底线,尤其企业数字化过程的减速、云原生与开源的采纳等都让平安从“幕后”(只有特定人群关注)到了“台前”(更多的人关注,甚至是人人要为平安负责)。尤其近几年因为软件的平安问题而导致的数据透露事件频发,数据透露意味着经济损失(依据 IBM 公布的数据透露老本报告显示,2021 年的数据透露老本均匀为 424 万美元,2022 年上涨到了 435 万美元),因而软件平安的背地逻辑就是:平安问题就等于经济损失。间接损失诸如被勒索赎金,间接损失如客户信赖的失落,最终传导下来就是金钱损失,经营老本的急速回升乃至破产。
DevSecOps 正过后
Gartner 早些时候公布了 2022 年软件工程技术成熟度曲线(Hype Cycle for Software Engieering, 2022),DevSecOps 位于第五阶段:生产成熟期。阐明 DevSecOps 曾经过了实践阐述、摸索摸索阶段,曾经成为支流采纳的能够落地实际的办法和伎俩。
DevSecOps 落地三步曲
工具是 xOps(DevOps、DevSecOps、GitOps 等)落地实际的重要撑持,比方 DevOps 落地实际时,企业会抉择 Jenkins、GitLab(依据信通院公布的《中国 DevOps 现状调查报告(2021 年)》显示,GitLab 在源代码托管以 53.45% 占据第一,远高于第二的 GitHub 靠近 20 个百分点;在 CI/CD 中以 8.86% 的占比仅次于 Jenkins,远高于其余同类型产品);在 GitOps 的落地实际中,企业会抉择 ArgoCD 和 Flux 等。
DevSecOps 是笼罩软件开全生命周期的一种平安防护体系,也是一种集泛滥平安伎俩于一体的办法。因而对于落地实际 DevSecOps 的企业来讲,第一步往往是依据不同的平安伎俩来抉择对应的工具:
通过工具来实现平安问题的扫描,先让 DevSecOps 正向流动:
工具是伎俩但不是最终目标,工具的目标是为了发现、开掘软件中潜在的平安问题,最初以直观的报告模式出现给相干人员,而后依据破绽的级别以及倡议的修复计划进行修复:
这也是 DevSecOps 落地实际的第二步:造成平安数据反馈。
最初依据我的项目的变动对平安伎俩、数据、流程等进行继续的优化,保障在保障平安的前提下,还能晋升软件的交付速度。
DevSecOps 的难点与误区
上述 DevSecOps 落地实际三步曲看似简略,然而有很多误区与难点在外面。
难点一:工具的抉择
与平安相干的工具是繁冗的,依据 Gartner 公布的 2022 年应用程序平安测试(Application Security Testing)魔力限象,有 10+ 厂商上榜,每一家都有对应的工具来提供软件平安的防护能力,这其中还不包含云原生时代支流的镜像扫描工具(Trivy、Anchore、Clair 等)、OWASP 提供的工具以及国内一些平安厂商提供的工具等。
难点二:平安数据的买通
每一种工具都有对应的平安报告,多种工具的报告无奈进行无效整合,进行对立展现,这些平安数据的彼此割裂间接造成数据孤岛,最终导致 DevSecOps 是 DevOps & Security:
难点三:平安反馈难与研发构建闭环
大部分平安伎俩通常在代码提交之后的其余环节进行(手动或主动),源代码托管零碎和平安测试零碎是不同的工具或平台,平安数据无奈反馈到代码提交环节(PR/MR),不能给代码审核 / 合并人员提供平安的数据撑持,无奈从代码提交侧杜绝有平安问题的代码被提交到主分支的问题
正因为 DevSecOps 落地难的问题,才会导致一些误区的存在。
误区一:DevSecOps 就是用工具进行平安扫描
DevSecOps 是发现问题、追踪问题、修复问题的无效闭环。而常见的一点是:应用工具进行了平安扫描,就等于实现了 DevSecOps。并未对发现的平安问题进行破绽治理并进行修复。此外,这种状况容易花大量精力聚焦在平安相干的工具上,诸如不同工具的比照、装置运维等,造成本末倒置(聚焦工具,遗记 DevSecOps 的目标)。
误区二:以一域谋全局,以一点带全局
DevSecOps 是多种平安防护伎俩的汇合,不同的平安伎俩对应软件开发的不同生命周期,从而构建起全面的平安防护体系。以一域谋全局,以一点带全局的观点是比拟常见的,诸如实现了镜像扫描、SCA、xAST(SAST、DAST、IAST)等其中的一点或者几点就是实现了 DevSecOps。
DevSecOps 避坑指南
把握住以下几个准则,能在 DevSecOps 落地实际的路上少走弯路:
- 多伎俩,全笼罩
软件开发生命周期有多个阶段(打算、编码、构建到上线等),多种状态(源码时为动态,运行时为动静)。须要抉择对应的平安伎俩来实现不同阶段、不同状态下的软件平安防护。用广度减少深度。
- 轻工具,重数据
平安的重点在于发现问题之后还能解决问题。工具是发现问题的无效伎俩,然而过分的聚焦在工具的装置应用以及有效性评估上,容易挤压留给数据处理的工夫,造成发现问题而不修复的困境,让平安数据失去重要价值:一,直观的看出软件的平安问题,从而判断软件的品质;二,针对平安问题给出对应的修复策略,依据倡议能够比拟快的进行修复。
- 有反馈,造闭环
平安问题的反馈至关重要,及时反馈,可能在软件开发晚期进行问题的追踪与修复,最终会让平安问题的修复老本降落。这外面的闭环有两个:一,发现问题、追踪问题、修复问题所造成的闭环;二,平安问题与代码变更之间的闭环,比方平安报告要能和 MR/PR 联合,便于决策者在代码合并之前做决策。
极狐 GitLab DevSecOps 体系
极狐 GitLab DevSecOps 体系有七大平安性能,所有平安能力均开箱即用,所有平安伎俩无缝嵌入 CI/CD,实现平安的自动检测,所有平安伎俩的报告进行无效整合,联合破绽治理性能,造成早晨的破绽追踪管理机制,最终利用发现问题、追踪问题、修复问题的闭环来帮忙用户构建纵深进攻体系。
除此以外,极狐 GitLab 的 DevSecOps 还具备以下性能:
简略易用,几行代码搞定
只有在 .gitlab-ci.yml 文件中援用与平安伎俩相干的模版即可在 CI/CD 中嵌入对应的平安伎俩:
为用户屏蔽所有工具的细节,提供开箱即用的平安能力。
后果在 MR 中间接展现
所有的平安报告会在 MR 中间接展现,并显示破绽的级别(高、中、低等):
用 issue 追踪治理安全漏洞
在 MR 中点击对应的安全漏洞就能够实现破绽的追踪治理:如果认为是假阳性破绽,点击疏忽即可;如果是真破绽,点击创立 issue,并调配给对应人员即可。在修复平安问题的代码提交后,会从新进行检测,在无误后合入代码并敞开对应的 issue。
平安报告对立展现,破绽高深莫测
在破绽报告中能够查看所有的平安报告,依据过滤选项来查看对应伎俩所产生的破绽信息。
所有人员一个平台工作
研发、测试、平安等团队都能够在极狐 GitLab 一个平台上实现合作,防止企业外部的工具冗余。