【干货分享】安全开发流程—— DevSecOps最佳实践方法
来源: | 作者:swq | 发布时间: 2022-02-14 | 466 次浏览 | 分享到:
网络安全形势严峻,各个国家、政府、企业、医院、学校都积极投入到捍卫网络安全,保护公司资产,维护用户合法权益的保卫战当中。

现今社会存在各种网络安全事件,比如勒索病毒导致许多网络系统瘫痪,大量注册用户个人数据泄露导致企业面临破产,勒索软件成为2021年增长最迅猛的网络攻击工具,仅在一年内猛增29%,通用漏洞披露也从223个增加到了288个,勒索软件攻击策划者持续紧盯零日漏洞,执行供应链攻击,微调漏洞链,搜索废旧产品中的漏洞,以提高勒索软件攻击得逞机率,勒索软件正走向武器化,通过漏洞链摧毁整条供应链。

2021年勒索病毒对医疗保健行业、石油天然气供应链、食品分销商及其供应链、药房和学校的攻击程度大幅提升。众所周知,这几个关键行业部门缺少网络安全资金或具有专业知识的员工以进行威胁检测和威慑,还常常使用至少一年未打补丁的系统,这就给网络犯罪分子以可乘之机。

网络安全形势严峻,各个国家、政府、企业、医院、学校都积极投入到捍卫网络安全,保护公司资产,维护用户合法权益的保卫战当中。



1

SDL & DevSecOps

哪一类更适合企业安全研发?


目前国内企业软件安全开发建设大致分为3类,一类采用SDL路线,起源于微软,一类采用DevSecOps,起源于Gartner 研究公司的分析师 David Cearley,“它是糅合了开发、安全及运营理念以创建解决方案的全新方法”。第三类融合SDL和DevSecOps内容,结合本公司研发制度采用定制安全标准。

                                       图片

微软SDL流程框架图


 图片

Gartner DevSecOps流程框架图


我们看出软件安全开发是软件开发的必然趋势,即必须要将安全纳入到传统软件开发流程的每个环节。

简单介绍DevOps(Development和Operations的组合词)是一种重视“软件开发人员(Dev)”和“IT运维技术人员(Ops)”之间沟通合作的文化、运动或惯例。透过自动化“软件交付”和“架构变更”的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠。但是Sec就是安全部分仍然相对独立在项目流程外,DevSecOps就是解决安全融入项目质量提高的过程。所有安全流程加入研发工作的每个环节的目的是——省钱,企业增加业务流程最重要的是成本问题,以往安全不能完全融入开发 流程就会影响效率,降低收益。

这里经常提到的一个概念就是安全左移,什么是安全左移呢?结合下图对DevSecOps和SDL进行对比图示来介绍:

图片


这里是完整的两个流程对比,从实践上讲SDL对发挥人的作用更对,DevSecOps对工具的作用更重视,两者都是把安全的关注点放到了项目的最初部分,也就是说传统厂商对自己发布一个软件是不是安全如何确定?安全就从进入市场标准左移到了企业内部出厂标准。出厂标准之后,自己内部安全审查反馈给研发和测试也花时间和成本——核心问题就被注意到了:代码质量偏低!所以安全左移目的是让研发把代码质量提高,产出可信的产品提供给市场。

对于企业而言如何选择安全开发工作流程,完全取决于成本投入及产出对比,以及符合项目时间节点的安全研发流程。今天大数研发类企业,都采用了DevSecOps的方式,用以保障项目按时按点安全上线,DevSecOps也有大把的成功案例值得我们借鉴。


2

DevSecOps流程中

实时应用工具及作用


SCA:

SCA(Software Composition Analysis),第三方组件的安全检查。作为携程落地比较早的项目,在应用CI的过程中进行扫描分析,对于扫描发现中高危级别漏洞的应用就会进行发布的拦截。在项目的初期,最大的问题是动辄上万的漏洞告警,哪些漏洞需要修复,哪些漏洞不需要修复,哪些需要优先修复。

酷德啄木鸟自主研发的SCA产品——CodePecker软件成分分析系统,为了解决漏洞修复问题,在解决方案中进行了一些维度的划分,包括:

  • 漏洞等级(高、中、低)

  • 对应CVE是否有POC

  • 应用内外网属性

除此之外,还按照漏洞归属进行了划分,区分框架漏洞和应用漏洞。对于框架引入的第三方组件漏洞,会协调公司内部框架修复。通过这样的方式减少了大量的漏洞告警,使得SCA嵌入CI/CD流程对发布流程的影响降到最低。


SAST:

SAST(Static Application Security Testing)静态应用测试,对应的是研发阶段的代码扫描。酷德啄木鸟自主研发的SAST产品——CodePecker静态代码检测系统,可进行基于文本扫描的正则规则扫描,还可以基于构建的数据流、控制流扫描。

正则扫描用于在CI/CD流程中的快速检测,每个项目的扫描时间平均在10秒左右,可以完全串入CI/CD流程,对于开发流程几乎不会增加额外的时间。正则扫描代码的好处在于快速,这也就意味着可以用于应急响应中的全量代码扫描,比如说对于一些代码中配置的扫描或者特殊函数的调用检测。

基于数据流、控制流的代码扫描与CI/CD流程的关系可以说是“旁路”。像 SQL注入、命令执行这样的漏洞检测准确率是比较高的,酷德优化过解决方案之后准确率可以到95%以上。对于这部分扫描到的漏洞,会通过内部的漏洞管理平台提交给代码owner进行修复。

IAST和DAST:

IAST(交互式检测工具)和DAST(动态测试工具)应用于研发流程的测试和预发布阶段,可以有效提高扫描覆盖率、漏洞检出率、降低误报率!酷德啄木鸟相应解决方案,在少量应用灰度期间就发现了内部存在已久未被发现的通用型漏洞,对于内部安全检测能力的补齐提供了很好的帮助。

其中,酷德的DAST是国内率先实现“AI+网络安全检测”智能渗透式测试工具。他可以将白帽子在大量渗透过程中积累的实战经验转化为机器可存储、识别、处理的结构化经验,并且在自动化测试过程中借助人工智能算法不断进行“智力”成长和逻辑推理决策,以贴近实际人工渗透的方式,对给定目标进行从信息收集到漏洞利用的完整测试过程。

漏洞管理:

作为DevSecOps流程中重要的一环,漏洞管理平台是不可或缺的一部分。这部分没有工具推荐,需要企业重视人的管理。企业漏洞平台要做到从漏洞发现、修复,到复盘的整个流程跟踪。

图片