gitlab吧 关注:221贴子:355
  • 9回复贴,共1

极狐GitLab|DevSecOps端到端的安全能力构建为什么重要?

只看楼主收藏回复

极狐GitLab|DevSecOps端到端的安全能力构建为什么重要?


1楼2022-02-20 15:32回复
    2012年,Gartner首次提出DevSecOps概念,旨在将安全性嵌入开发过程中的每个部分;十年后,DevSecOps已经成为端到端安全能力构建的事实标准。所以,在了解DevSecOps为什么重要以及如何落地之前,极狐GitLab将带领大家先从软件开发的角度弄明白什么是DevOps。
    一、软件开发进入现代化之旅
    回望过去,软件开发大概经历了四个重要阶段:第一阶段,90年代以前,软件开发是瀑布式,像交付硬件一样交付软件,最大的特点是项目庞大、开发周期长、出现原始问题时修复难度比较大。
    第二阶段,2000年左右,敏捷开发逐渐成型,更关注微小变更,开发团队可以只交付部分功能,或者一个功能的框架。这种开发模式加快了软件交付速度,确保了主线上的代码在任何时间都可以工作。


    IP属地:吉林2楼2022-02-20 23:57
    回复
      第三阶段,2008 年前后,DevOps成为实现敏捷开发的最佳方法论之一。“敏捷”强调的是速度,要实现快速开发目标,自动化成为重要手段;而DevOps最核心的能力就是自动化。从概念来看,DevOps要打通开发、运维环节,通过更自动化的方式交付软件和架构变更过程,使得构建、测试、发布等整个流程能够更快捷、频繁和可靠,这便是DevOps。
      第四阶段,2010年以后,容器开始流行,尤其是2015年原生基金会CNCF的诞生,标志着云原生时代到来。所谓“云原生”,是将应用部署在云上,更强调动态环境构建,让软件交付变得更快捷、灵活和高效。可以说,云原生不仅解决了软件交付的“最后一公里难题”,最重要的是推动软件开发流程或者方法进入了现代化之旅。


      IP属地:吉林3楼2022-02-20 23:57
      回复


        IP属地:吉林4楼2022-02-20 23:58
        回复
          极狐(GitLab)高级解决方案专家 温小刚
          在1月8日由msup主办的第十届TOP100全球软件案例研究峰会上,极狐(GitLab)高级解决方案专家 温小刚带来了精彩的案例分享,其中总结了云原生时代的软件开发十大关键能力!
          具体如下:
          1.通过轻量化容器打包;
          2.使用最佳语言和框架开发;
          3.设计为松耦合的微服务;
          4.微服务都是通过API来连接;
          5.无状态和有状态服务区分清晰;
          6.从操作系统和服务器层面抽象出来;
          7.部署到自服务的云服务环境中;


          IP属地:吉林5楼2022-02-20 23:58
          回复


            IP属地:吉林7楼2022-02-20 23:58
            回复
              为了从根本上解决安全团队的低效问题,高效团队会将信息安全 (InfoSec) 目标整合到日常工作中,团队可以实现更高水平的软件交付,并以更好的性能构建更安全的系统,这种想法称为“左移”。说白了,安全左移就是在软件开发生命周期的较早阶段,解决各种安全问题。因为,越早检查到安全漏洞,企业修复漏洞的成本就越低。
              问题是,安全左移方法论该如何落地?
              很多企业首先会考虑使用传统安全工具实现安全左移,但是一看到各种工具链,就会感觉力不从心。因为,不同企业对安全工具的需求不同;并且不同发展阶段,也会采用不同工具类型;如果使用不同厂商提供的产品,还要做各种测试,包括静态、动态页面扫描、供应链扫描、容器扫描等等。不仅要进行相关工具的匹配,还要将所有工具以及整个流程衔接起来。有时候,工具集成的成本,可能比工具本身的费用还要高,包括很多企业提供的安全看板,还要单独收费。所以,实现安全左移目标,就像企业把所有DevOps工具串起来一样,不仅花费巨额成本,最重要的是耗时费力,根本不可能完成。具体而言,安全左移要具备如下能力:
              1.便捷、高效的扫描。每次代码提交即扫描,开发人员可以第一时间得到反馈;
              2.扫描能力要可靠,能全面覆盖。扫描不同的安全类型,这样才能降低安全合规风险,进而降低总体成本;
              3.自动化的安全策略,针对不同等级的安全漏洞,在做代码合并或者上线部署的时候都需要一些自动化策略。比如:和环境无关的因素可以考虑忽略,也有一些不确定的因素需要人来参与,这些都需要从扫描结果中自动化,保证整个应用的高效、准确、可靠,防止安全漏洞进入生产环境。


              IP属地:吉林8楼2022-02-20 23:58
              回复
                4.与现有工具的集成。平台开放性,也很重要。从保护既有投资的角度看,原有工具确实有着自己的特有能力,需要和新应用进行集成和互补,不能搞“一刀切”,完全抛弃旧有工具。
                5.扫描次数、行数无限制。你如果想左移,在成本可预计、可控的前提下,就尽量多扫。
                只有具备上述能力,最终才能真正达到安全左移的效果,让需求、代码、测试、报告全流程可跟踪、可追溯,进而实现端到端的打通,以更合理的许可模式和成本实现漏洞检测。
                四、DevSecOps带来成本优势


                IP属地:吉林9楼2022-02-20 23:58
                回复


                  IP属地:吉林10楼2022-02-20 23:58
                  回复
                    如前文所述,传统业务模式下,反馈周期长、成本高、修复难度大,而新的DevSecOps可以从基础的应用安全扫描能力开始,构建端到端安全能力,将安全左移方法论嵌入到CI/CD里。
                    在极狐GitLab 里,安全扫描涵盖多种扫描能力,除了常见的静态应用安全测试(SAST),还有依赖扫描,也叫供应链扫描。另外,还有许可合规扫描、容器扫描、动态应用安全测试(DAST)、IaC安全测试、Fuzz Testing模式测试,真正将安全测试内嵌于合并请求中。
                    极狐GitLab 之所以被称为是DevSecOps的最佳范式,是因为可以做到多重检测和检查。
                    第一,检查代码。更通俗的说法是,检查自己。比如:6次攻击里面4次是针对应用,而应用是从代码里面出来的,代码是应用的基础,静态安全测试是根据已知的漏洞特征代码进行白盒扫描,然后通过扫语言、代码,和代码管理工具连在一起。对于极狐GitLab 来说,管理工具就是管理自己,极狐GitLab在这儿,仓库也在这儿。不同的语言需要不同的特征库,按照不同的规则来检查,涉及的语言包括.net、C/C++、Python、Java、JavaScript、Kotlin、Go、Ruby等等。另外,还要按照不同语言密码/密钥检测Secret Detection,检查无意提交的密码/密钥。除了特征库维护,扫描引擎需方便易用,并保定期更新。
                    第二,检查依赖。随着开源软件/组件的使用率的提高,以及开源组件生态中的漏洞数的升高,软件供应链安全变得越发重要。面对不同开源软件,如果基于某些管理体系来扫描,会让整个检测过程更方便、快捷,不用像静态检查一样,一行一行扫。比如:基于软件成分分析(SCA)的安全测试,我们可以依赖组件安全分析,还可以依赖组件开源许可合规分析。除了SCA安全测试,软件供应链也存在容器镜像,因容器镜像本身也是分层的,对于容器镜像安全扫描,和开源组件供应链扫描一样,也是分层模式,并在每一层报出已知漏洞。
                    第三,检查应用。一般,网站类应用容易被攻击,所以需要在网站正式上线之前进行测试。比如:大家熟悉的OWASP Top 10,被称为是动态扫描模拟标准。如果你希望每一次提交都能够进行动态扫描,那么整个体系都需要具备动态部署的能力。动态应用安全测试DAST(Dynamic Application Security Testing)类似于黑盒测试,像外部攻击一样测试运行中的应用。


                    IP属地:吉林11楼2022-02-20 23:59
                    回复