SAST技术联盟研讨会总结

2024-03-16 20:52

本文主要是介绍SAST技术联盟研讨会总结,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

3月15日晚上举办的SAST技术联盟研讨会结束了,在会上与潘博士、郑博士两位探讨了静态分析的发展现状、未来发展趋势、客户遇到的痛点问题、机遇和挑战、以及如何与AI进行结合等话题。下面我进行简单整理。

2年前国外工具Fortify、Checkmarx、Klocwork、Coverity等工具占中国市场的80%左右,而在当前,发生了翻转,国内静态分析工具占据了80%市场份额,而还有少量的国外工具订阅模式,跨国企业会在采购中采购国外工具之外,几乎国内工具厂商占了市场绝对份额,这一个方面得益于信创环境下市场需求,驱动的国内静态分析技术的发展,除了新兴应用安全工具厂商之外,传统信息安全厂商也参与到市场中;另一个方面,是静态分析技术本身的普及和发展,更多技术人才选择这个赛道。

而静态分析市场大量企业入局参与,一个方面产生了内卷,但是另一个方面,由于供应链安全的上游传导,带动了下游的供应商以及向行业纵深领域拓展,例如当前工业软件对于静态分析产品的需求;还有就是企业把静态分析工具接入DevSecops平台、基于云服务应用等。以及静态分析工具本身的存在的不足,对静态分析产品提出了更多的需求,需要我们厂商从技术上,产品上去提供解决方案。还有,供应链安全中开源治理运用的SCA工具,我们也是把它归入静态分析之中,过去的2023年供应链安全呈现井喷式需求,对于SCA工具也有更多的需求,所以我们认为静态分析仍然是一个方兴未艾的市场,虽然这个赛道比较小,但是我们也希望有企业能够提供更好的产品和技术,满足客户需求。

    静态分析市场国内外发展现状和趋势,大家对这个赛道还是非常看好,那们我们如何把握好历史契机呢? 同时,我们又面临那些挑战?

把握机会:

  1. 深耕这个赛道,把产品做好,希望有上Gartner的企业出现,产品质量才是企业生存的根基;
  2. 纵深领域发展,满足像工业软件的检测,APP软件的检测;
  3. 支持云应用程序检测、支持AI大模型检测等;
  4. 解决企业遇到的痛点,很多企业的开发团队认为误报高,而有的测试团队,测评机构觉得漏报高。当然有的大型企业,在检测代码量非常巨大的情况下,希望工具检测速度更快。

挑战:

  1. 静态分析市场是研发周期长,技术门槛高的赛道,需要持久的投入;
  2. 能够在如此内卷的市场环境下,脱颖而出,需要企业有足够智慧的产品和技术;
  3. AI大语言模型的出现,具有理解代码的能力,是否对静态分析产品带来新的挑战;

静态分析客户面临问题、痛点主要是误报多、或存在漏报以及检测效率。

通过企业遇到的痛点,纪委讨论了对静态分析认识上几个误区,让大家撂跤静态分析市场。现在大多数工具都是满足Useful static analysis。其含义是:

一是妥协 Sound,追求 Complete,即存在 false negatives,存在漏报。 二是妥协 Complete,追求 Sound,即存在 false positives,存在误报。 Useful static analysis 就是指存在漏报的静态分析方法或者是存在误报的静态分析方法。目前大部分静态分析工具都是妥协了 Complete,追求 Sound。 因此,我们将 Useful static analysis 定义为妥协 Complete,追求 Sound;静态分析方法,也就是存在误报的分析方法。

莱斯定理支出不存在perfect static analysis,也就是不存在完美的无瑕疵又保持完整性。

不存在perfect的静态分析,也就是不存在既sound又complete的静态分析方法。

Compromise  soundness  妥协的无瑕疵,也就是承认有瑕疵

Compromise  completeness 妥协的完整性,有不完整

站在企业用户角度上分析,不同团队从自身工作岗位上分析、岗位不同,责任不同。

开发团队:尽量不出现漏洞,有漏洞提交修复,则有责任进行修复;

测试团队:尽量不出现漏报,发现尽量多的漏洞提交开发团队,漏报有责任;

安全团队:按照规范,不能带漏洞上线,不要出现攻击事件。也是不要出现漏报。

作为工具厂商,在检测精度与检测效率之间取得一个平衡,要做到检测精度高,需要解决4个敏感,但是在实践中是无法做到的,可能消耗过长的时间,而无法在工程上真正运用。这也就是有些工具可以设定超时时间,超时后,就放弃整个检测或某些规则的执行。

有了莱斯定理,那么我们工具厂商如何做,能够解决或部分解决客户的痛点呢?包括引擎算法上、增强规则上,包括提供客户自定义规则、二次开发/定制开发、AI技术引入等等,这些是否可行,另外,除了这些之外,是否还有其它的方案。

后面,大家一起探讨了AI在代码质量分析能够实现的功能、达到的水平,未来AI能够做到的极限等,AI的发展对于静态分析的发展产生的作用,静态分析产品如何与AI进行结合,是否能够解决上述面临的问题和挑战。

AI大语言模型的出现,尤其是以Chatgpt为代表的AI的出现,改变了我们很多人对人工智能的认识。现在可以根据功能描述生成代码,对代码进行分析、找出代码中的缺陷,且支持客户输入代码的taken长度越来越长。能够找到代码中的缺陷越来越多,与一般静态分析工具相比,检测结果缺陷已经超过一般静态分析工具,且对缺陷描述相对比较详细,也能直接够给出缺陷修复后的代码。但是也存在一个现实问题,静态分析工具一般是离线独立部署,所以使用Chatgpt这种闭源的大模型应该是无法运用,是需要能够离线部署的,对资源要求相对较低的开源模型,工具厂商可以在这类模型上继续训练数据,在缺陷识别这个纵深领域进行深度学习。

最后一点时间,软件成分分析SCA,也是属于静态分析领域,这个产品的技术有什么发展趋势?SCA目前大家探讨的重点在于漏洞可达性分析。SCA在做直接依赖、间接依赖分析后得到的大量组件及其漏洞,这些漏洞是否存在调用链,是否能够被调用从而出发漏洞是需要关注的重点。SAST工具和SCA工具本身都属于静态分析工具,被检测项目都是源代码,而不同的是,SCA要实现可达性分析,则需要对开源组件的源代码也需要进行分析,当时当前SCA产品知识库中是不保存开源组件源代码的,在检测过程中不能下载组件,如果在产品研发阶段下载开源组件源代码会占据大量空间。

   以上是本次会议的简单总结。

(结束)

这篇关于SAST技术联盟研讨会总结的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/816692

相关文章

MySQL基本查询示例总结

《MySQL基本查询示例总结》:本文主要介绍MySQL基本查询示例总结,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录Create插入替换Retrieve(读取)select(确定列)where条件(确定行)null查询order by语句li

Web技术与Nginx网站环境部署教程

《Web技术与Nginx网站环境部署教程》:本文主要介绍Web技术与Nginx网站环境部署教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、Web基础1.域名系统DNS2.Hosts文件3.DNS4.域名注册二.网页与html1.网页概述2.HTML概述3.

Java使用WebView实现桌面程序的技术指南

《Java使用WebView实现桌面程序的技术指南》在现代软件开发中,许多应用需要在桌面程序中嵌入Web页面,例如,你可能需要在Java桌面应用中嵌入一部分Web前端,或者加载一个HTML5界面以增强... 目录1、简述2、WebView 特点3、搭建 WebView 示例3.1 添加 JavaFX 依赖3

Linux区分SSD和机械硬盘的方法总结

《Linux区分SSD和机械硬盘的方法总结》在Linux系统管理中,了解存储设备的类型和特性是至关重要的,不同的存储介质(如固态硬盘SSD和机械硬盘HDD)在性能、可靠性和适用场景上有着显著差异,本文... 目录一、lsblk 命令简介基本用法二、识别磁盘类型的关键参数:ROTA查询 ROTA 参数ROTA

Qt实现网络数据解析的方法总结

《Qt实现网络数据解析的方法总结》在Qt中解析网络数据通常涉及接收原始字节流,并将其转换为有意义的应用层数据,这篇文章为大家介绍了详细步骤和示例,感兴趣的小伙伴可以了解下... 目录1. 网络数据接收2. 缓冲区管理(处理粘包/拆包)3. 常见数据格式解析3.1 jsON解析3.2 XML解析3.3 自定义

Python实现图片分割的多种方法总结

《Python实现图片分割的多种方法总结》图片分割是图像处理中的一个重要任务,它的目标是将图像划分为多个区域或者对象,本文为大家整理了一些常用的分割方法,大家可以根据需求自行选择... 目录1. 基于传统图像处理的分割方法(1) 使用固定阈值分割图片(2) 自适应阈值分割(3) 使用图像边缘检测分割(4)

Windows Docker端口占用错误及解决方案总结

《WindowsDocker端口占用错误及解决方案总结》在Windows环境下使用Docker容器时,端口占用错误是开发和运维中常见且棘手的问题,本文将深入剖析该问题的成因,介绍如何通过查看端口分配... 目录引言Windows docker 端口占用错误及解决方案汇总端口冲突形成原因解析诊断当前端口情况解

SpringBoot3实现Gzip压缩优化的技术指南

《SpringBoot3实现Gzip压缩优化的技术指南》随着Web应用的用户量和数据量增加,网络带宽和页面加载速度逐渐成为瓶颈,为了减少数据传输量,提高用户体验,我们可以使用Gzip压缩HTTP响应,... 目录1、简述2、配置2.1 添加依赖2.2 配置 Gzip 压缩3、服务端应用4、前端应用4.1 N

Java利用JSONPath操作JSON数据的技术指南

《Java利用JSONPath操作JSON数据的技术指南》JSONPath是一种强大的工具,用于查询和操作JSON数据,类似于SQL的语法,它为处理复杂的JSON数据结构提供了简单且高效... 目录1、简述2、什么是 jsONPath?3、Java 示例3.1 基本查询3.2 过滤查询3.3 递归搜索3.4

Python中随机休眠技术原理与应用详解

《Python中随机休眠技术原理与应用详解》在编程中,让程序暂停执行特定时间是常见需求,当需要引入不确定性时,随机休眠就成为关键技巧,下面我们就来看看Python中随机休眠技术的具体实现与应用吧... 目录引言一、实现原理与基础方法1.1 核心函数解析1.2 基础实现模板1.3 整数版实现二、典型应用场景2