本文主要是介绍SAST技术联盟研讨会总结,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
3月15日晚上举办的SAST技术联盟研讨会结束了,在会上与潘博士、郑博士两位探讨了静态分析的发展现状、未来发展趋势、客户遇到的痛点问题、机遇和挑战、以及如何与AI进行结合等话题。下面我进行简单整理。
2年前国外工具Fortify、Checkmarx、Klocwork、Coverity等工具占中国市场的80%左右,而在当前,发生了翻转,国内静态分析工具占据了80%市场份额,而还有少量的国外工具订阅模式,跨国企业会在采购中采购国外工具之外,几乎国内工具厂商占了市场绝对份额,这一个方面得益于信创环境下市场需求,驱动的国内静态分析技术的发展,除了新兴应用安全工具厂商之外,传统信息安全厂商也参与到市场中;另一个方面,是静态分析技术本身的普及和发展,更多技术人才选择这个赛道。
而静态分析市场大量企业入局参与,一个方面产生了内卷,但是另一个方面,由于供应链安全的上游传导,带动了下游的供应商以及向行业纵深领域拓展,例如当前工业软件对于静态分析产品的需求;还有就是企业把静态分析工具接入DevSecops平台、基于云服务应用等。以及静态分析工具本身的存在的不足,对静态分析产品提出了更多的需求,需要我们厂商从技术上,产品上去提供解决方案。还有,供应链安全中开源治理运用的SCA工具,我们也是把它归入静态分析之中,过去的2023年供应链安全呈现井喷式需求,对于SCA工具也有更多的需求,所以我们认为静态分析仍然是一个方兴未艾的市场,虽然这个赛道比较小,但是我们也希望有企业能够提供更好的产品和技术,满足客户需求。
静态分析市场国内外发展现状和趋势,大家对这个赛道还是非常看好,那们我们如何把握好历史契机呢? 同时,我们又面临那些挑战?
把握机会:
- 深耕这个赛道,把产品做好,希望有上Gartner的企业出现,产品质量才是企业生存的根基;
- 纵深领域发展,满足像工业软件的检测,APP软件的检测;
- 支持云应用程序检测、支持AI大模型检测等;
- 解决企业遇到的痛点,很多企业的开发团队认为误报高,而有的测试团队,测评机构觉得漏报高。当然有的大型企业,在检测代码量非常巨大的情况下,希望工具检测速度更快。
挑战:
- 静态分析市场是研发周期长,技术门槛高的赛道,需要持久的投入;
- 能够在如此内卷的市场环境下,脱颖而出,需要企业有足够智慧的产品和技术;
- 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技术联盟研讨会总结的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!