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

相关文章

Python中连接不同数据库的方法总结

《Python中连接不同数据库的方法总结》在数据驱动的现代应用开发中,Python凭借其丰富的库和强大的生态系统,成为连接各种数据库的理想编程语言,下面我们就来看看如何使用Python实现连接常用的几... 目录一、连接mysql数据库二、连接PostgreSQL数据库三、连接SQLite数据库四、连接Mo

Git提交代码详细流程及问题总结

《Git提交代码详细流程及问题总结》:本文主要介绍Git的三大分区,分别是工作区、暂存区和版本库,并详细描述了提交、推送、拉取代码和合并分支的流程,文中通过代码介绍的非常详解,需要的朋友可以参考下... 目录1.git 三大分区2.Git提交、推送、拉取代码、合并分支详细流程3.问题总结4.git push

Kubernetes常用命令大全近期总结

《Kubernetes常用命令大全近期总结》Kubernetes是用于大规模部署和管理这些容器的开源软件-在希腊语中,这个词还有“舵手”或“飞行员”的意思,使用Kubernetes(有时被称为“... 目录前言Kubernetes 的工作原理为什么要使用 Kubernetes?Kubernetes常用命令总

Python中实现进度条的多种方法总结

《Python中实现进度条的多种方法总结》在Python编程中,进度条是一个非常有用的功能,它能让用户直观地了解任务的进度,提升用户体验,本文将介绍几种在Python中实现进度条的常用方法,并通过代码... 目录一、简单的打印方式二、使用tqdm库三、使用alive-progress库四、使用progres

Android数据库Room的实际使用过程总结

《Android数据库Room的实际使用过程总结》这篇文章主要给大家介绍了关于Android数据库Room的实际使用过程,详细介绍了如何创建实体类、数据访问对象(DAO)和数据库抽象类,需要的朋友可以... 目录前言一、Room的基本使用1.项目配置2.创建实体类(Entity)3.创建数据访问对象(DAO

Java向kettle8.0传递参数的方式总结

《Java向kettle8.0传递参数的方式总结》介绍了如何在Kettle中传递参数到转换和作业中,包括设置全局properties、使用TransMeta和JobMeta的parameterValu... 目录1.传递参数到转换中2.传递参数到作业中总结1.传递参数到转换中1.1. 通过设置Trans的

C# Task Cancellation使用总结

《C#TaskCancellation使用总结》本文主要介绍了在使用CancellationTokenSource取消任务时的行为,以及如何使用Task的ContinueWith方法来处理任务的延... 目录C# Task Cancellation总结1、调用cancellationTokenSource.

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

【专题】2024飞行汽车技术全景报告合集PDF分享(附原数据表)

原文链接: https://tecdat.cn/?p=37628 6月16日,小鹏汇天旅航者X2在北京大兴国际机场临空经济区完成首飞,这也是小鹏汇天的产品在京津冀地区进行的首次飞行。小鹏汇天方面还表示,公司准备量产,并计划今年四季度开启预售小鹏汇天分体式飞行汽车,探索分体式飞行汽车城际通勤。阅读原文,获取专题报告合集全文,解锁文末271份飞行汽车相关行业研究报告。 据悉,业内人士对飞行汽车行业