如何将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

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

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