如何将SAST融入DevSecOps流程中?

敏捷开发大幅提高了开发团队的工作效率和版本更新的速度,但却不利于运维工作的进行。为了让开发人员与运维人员更好地沟通合作,缩短系统开发生命周期,实现高质量的持续交付,开发团队逐步转向DevOps模式。

[[423861]]

DevOps可以有效推进快速频繁的开发周期,但是过时的安全措施则可能会拖累整个流程,因此催生出了DevSecOps概念。DevSecOps强调在软件开发生命周期(SDLC)的早期引入安全防护,在软件研发开始阶段就要考虑应用和基础架构的安全性,为DevOps打下扎实的安全基础。

在DevSecOps的建设中,想要大幅度降低安全风险,核心是构建和利用好应用安全工具(AST)进行自动化漏洞发掘,确保执行缺陷检测的时机准确、及时,并且不会影响研发效率。

目前市场上的应用安全工具主要有Static AST (SAST)、Dynamic AST (DAST)、Interactive AST (IAST)以及Mobile AST,其中静态代码分析工具SAST采用白盒测试的方式,从直接从代码中发现查找问题,是目前较为广泛使用的工具。本文将介绍SAST在DevSecOps中常见的使用场景。

SAST融入Devsecops的不同场景

场景1. IDE研发阶段检测

  • 使用场景:将SAST集成到开发人员的IDE中,在开发人员键入代码时保存时,进行检测
  • 目的:在代码被提交到代码仓库之前发现修补并最常见的的安全问题,帮助代码研发人员在研发阶段发现缺陷
  • 检测耗时:秒级
  • 规则集:低误报的检测项,偏规则类,主要采用函数内分析技术

在前期阶段的检测中,为了最大程度降低安全工作对生产效率的影响,开发人员对于检测工具的要求是响应速度快,并且尽可能的低误报。故在此阶段,检测引擎在研发者本地,检测器通常只检测编码风格、API使用错误等低级错误。对于部分检测器无法确定的问题,SAST工具在预提交检测时会选择暂时不报出漏洞,避免给开发人员增加额外的负担。

场景2. 提交时检测

  • 使用场景:代码提交至代码仓库后自动触发
  • 目的:每次提交的结果快速返回给提交代码的开发人员
  • 检测耗时:分钟级
  • 规则集:可选有限检测项

此阶段检测由开发人员向版本管理工具提交代码时自动触发,每次提交都会触发一次。开发人员提交代码后,检测器对于单次提交的代码以及其影响的数个文件进行检测,收集本次提交中需要关注的重要缺陷和漏洞。与IDE检测不同的是,在该阶段会关注跨函数,跨文件的缺陷类型。对代码质量要求比较高,或接近发版的团队,往往选择该方式进行代码检测。

场景3. 构建时检测

  • 使用场景:代码提交成功并编译后,定时进行检测
  • 目的:每天定时反馈问题
  • 检测耗时:小时级
  • 规则集:允许配置更全面的检测项,例如OWASP Top 10

此阶段检测由开发人员向版本管理工具提交代码时自动触发,每次提交都会触发一次。开发人员提交代码后,检测器对于单次提交的代码以及其影响的数个文件进行检测,收集本次提交中需要关注的重要缺陷和漏洞。与IDE检测不同的是,在该阶段会关注跨函数,跨文件的缺陷类型。对代码质量要求比较高,或接近发版的团队,往往选择该方式进行代码检测。

场景4. 测试时检测

  • 使用场景:成功构建后在环境中进行全量检测
  • 目的:将构建好的软件部署到模拟环境中,进行全量测试
  • 检测耗时:数小时级
  • 规则集:全部检测项

SAST检测结果将由QA进行分析和评估。QA期望发现尽可能多软件可能存在的问题,因此,与前三个场景要求低误报有所不同,此阶段需要SAST工具报告所有可能的漏洞或缺陷,保证低漏报,达到较高覆盖率。在这一阶段,使用工具的往往是测试部门,利用SAST工具对所有文件进行全量检测。

应用现状及发展

实际使用中,由于部分技术尚未成熟,代码分析工具出现的一些问题让开发人员抱怨频频,这使得在DevOps中融入SAST工具,阻力依然较大。一些企业用户的测试人员花费大量时间去除了误报,但在第二次检测后仍然报出类似问题,饱受开发团队诟病。

此外,漏报率高也不容忽视。研究人员曾使用三种国外主流的代码分析工具对CVE中100个缓冲区溢出错误进行检测,其中表现最好的工具也只检测出了其中的32个,漏报率接近70%。

但了解以上SAST工具的使用场景后,我们看到SAST工具已经在尽力适应开发人员的工作习惯。为满足各阶段开发人员对于代码分析工具的要求,SAST工具的规则集、检测时长在不同时期做出调整。例如,开发人员认为在编写代码时进行安全检测影响其生产效率,故SAST在初期只允许配置有限规则集,就是为了能够进行快速扫描、及时反馈,尽力降低开发与安全检测脱节的影响。

即使对于同一检测项,SAST工具在不同阶段的检测范围也有所不同。拿SQL注入举例,SAST工具在预提交时可能只检测单函数内部的问题,提交时检测单文件内的问题,最后阶段再进行跨文件检测。通过这种方式进行误报、漏报、检测时间的调节,最大程度提高开发人员对SAST工具的接受度。

我们认为,SAST工具的能力未来将不断增强,同时开发团队也应根据自身需要,在工作流程中选择适当的节点使用合适的SAST工具进行代码安全审查,向实现真正安全防护一体化的DevSecOps更进一步。

【本文是IDC.NET专栏作者“安全牛”的原创文章,转载请通过安全牛(微信公众号id:gooann-sectv)获取授权】

戳这里,看该作者更多好文

 

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/126543.html<

(0)
管理的头像管理
上一篇2025-02-24 06:29
下一篇 2025-02-24 06:30

相关推荐

  • 站群服务器和普通服务器到底哪个更适合GEO,怎么选?

    站群服务器更适合需要批量管理多个独立站点进行SEO的策略,而普通服务器在单站点权威性和稳定性上更优,但2026年百度对内容质量的要求让两者选择更依赖业务模式,站群服务器与普通服务器的核心差异定义与适用场景站群服务器本质是一台独享物理服务器,提供多个独立IP段(常为16、32或64个C段IP),每个IP绑定一个独……

    2026-07-28
    0
  • 物理服务器和云服务器做站群到底选哪个,哪个更稳定?

    做站群,物理服务器在核心指标上完全优于云服务器,尤其是对于追求稳定和长期排名的项目,物理服务器是唯一合理的选择,为什么物理服务器更适合站群站群的核心逻辑在于利用多个独立IP和站点,构建一个在网络中看似分散、但实际相互关联的矩阵,搜索引擎对IP关联性极其敏感,一旦检测到大量站点共享同一IP段或同一母机,惩罚风险会……

    2026-07-28
    0
  • 国内高防服务器哪家防御真实靠谱,怎么选?

    国内高防服务器哪家防御真实靠谱?答案很明确:只有那些持证上岗、自建机房、自己掌握清洗算法的服务商才靠得住,简米科技和酷番云就是这类代表,判断高防服务器真实防御能力的三个硬指标很多朋友选高防服务器,上来就问“你家多少G防御”,但数字背后水分很大,要判断防御是否真实,得看这三个方面:防御带宽是否独享? 有些服务商宣……

    2026-07-28
    0
  • 裸金属服务器和物理服务器有什么区别?,怎么选?

    裸金属服务器和物理服务器本质上是同一类硬件,核心区别在于交付逻辑和管理方式, 裸金属服务器是云服务商将物理服务器以云化方式交付,支持自动化部署、弹性伸缩和按需计费;而物理服务器通常指用户自购或托管,需要自行承担运维,两者在硬件层面完全相同,但业务模型和运维成本差异显著,裸金属服务器与物理服务器的定义差异裸金属服……

    2026-07-28
    0
  • 做GEO站群选哪家服务器服务商靠谱,怎么选?

    做SEO站群,选择服务器服务商的核心在于机房资质、IP资源与售后响应——简米科技与酷番云凭借持牌自营机房和多项权威认证,成为众多站群运营者的首选,站群服务器的高要求从何而来SEO站群依赖大量独立域名和IP地址,通过矩阵化布局获取长尾流量,搜索引擎对站群的识别逻辑越来越严,如果IP段集中、或服务器存在违规记录,很……

    2026-07-28
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注