自大模型以迅雷不及掩耳之势席卷各行各业,其快速地超越了自然语言范畴,发展到了编程语言。一时之间,大模型颠覆软件工程、“杀死”开发者的论调不绝于耳。如今,大模型增强了语言处理能力,使得人机交互更直观,可以以协同者的形式参与到软件开发的整个周期中,在功能设计、代码开发、测试等环节发挥作用,推动编码任务自动化,加快开发周期和提升软件产品质量。
本期,我们主要观察大模型在软件供应链安全领域的应用和发展趋势。
环节与参与者众多 软件供应链险象环生
大模型之于软件工程的广义探讨,更多地在关注软件的开发阶段,其如何帮助或逐步替代开发者完成编码的工作。回归到安全层面的诉求,我们需要从开发层面扩充到整个软件供应链层面,囊括更多的环节和参与者,以及应用上线运行后的安全情况。
软件供应链涉及开发、测试、集成、部署等多个环节的软件开发和交付过程,其中包括了供应商、开发者、第三方库、依赖组件、工具和用户等各种参与者。软件供应链安全则是要确保软件供应链中的各个环节和组件不受恶意攻击或未经授权的篡改,以保证软件交付的完整性、可信性和可靠性。
那么,这些环节和参与者可能面临哪些安全风险呢?
恶意代码注入:黑客可以在软件开发过程中注入恶意代码,这些代码可能会在软件运行时执行恶意操作,如窃取敏感信息、破坏系统功能等。
依赖关系风险:软件通常会依赖于许多第三方库和组件,而这些依赖可能存在漏洞或被滥用。如果攻击者能够操纵或替换这些依赖,就可能导致整个软件链的安全问题。
开发环境恶意篡改:黑客可以通过恶意修改开发工具、框架或编译器,来操纵或损害软件的构建过程,从而在软件中插入后门或漏洞。
不安全的交付渠道:软件交付过程中,如果传输渠道不安全,攻击者可能利用中间人攻击、篡改软件包等手段,在传递过程中对软件进行恶意篡改或注入恶意代码。
查漏洞、编代码 大模型辅助开发更安全的应用
此前我们分析过,大模型的能力优势主要展现在上下文语义理解分析、代码理解和复杂推理等方面。可以串联为一种理解、生成、检测的能力,与软件供应链流程匹配,便拥有契合度较高的结合应用点。
比如编写代码阶段,安全大模型可以提供多种方式的帮助。根据输入的部分代码预测并推荐接下来可能的代码片段;检测到潜在的语法错误、逻辑错误或潜在的错误做法,并提供相关建议和修复策略;根据开发人员提供的高级指令或意图,生成相应的代码;帮助编写文档和注释,提供关于代码功能、参数和用法的提示和建议,改善代码的可读性。
更明确的安全辅助在于软件供应链漏洞检测和代码分析。从第三方引入的代码必须进行安全检测,目前,针对已知漏洞业界往往使用sca技术来进行识别,针对未知漏洞需要加以静态分析、动态分析等技术判断代码质量。在大模型出现之后,业界通过将漏洞数据投喂生成安全大模型,表现出较好的检测效果。
进一步将安全大模型应用于漏洞排查和漏洞修复过程,通过对代码进行静态和动态分析,大模型可以识别出潜在的漏洞点、安全隐患和错误用法。同时,大模型能够理解代码的语法规则、api调用和数据流向,并识别出可能导致漏洞的代码片段。
还可以利用安全大模型将恶意代码中的混淆或加密的部分进行还原,恢复代码的可读性和可理解性。从恶意代码中提取出其行为特征,描述其功能和目的。比较不同的恶意代码之间的相似度,判断其是否属于同一家族或来源。这项专业、困难、耗时的工作可以在安全大模型的支持下提高代码分析的效率和广度。
早期探索阶段潜力巨大 应用及产品正逐渐落地
总体而言,安全大模型可以从软件开发生命周期的起始阶段编写更安全的代码,并提升和简化检测和修复代码中安全缺陷的能力,增强应用程序的安全性。但是,将大模型应用于软件供应链安全领域目前仍处于初步尝试阶段。
idc相关市场调研显示,现阶段还无法通过生成式ai帮助代码编写者实现应用程序安全性的巨大改进,产品还缺乏解释应用程序完整上下文的能力,因此难以防范复杂的代码安全风险。
报告《大模型与软件供应链安全的融合探索》指出,大模型能够对软件供应链事件进行分类(威胁类型、意图、性质和影响),但仍然缺乏对事件的分析;大模型在软件开发生命周期中能够对缺陷的引入进行识别和解决,但是准确率一般;针对使用的第三方软件进行缺陷检测,但效果只比经典静态分析方法好一点点。
因此,与安全运营等大模型落地的热门安全细分领域相比,业界在软件供应链安全领域的探索和尝试则显得低调许多。不过,我们仍然关注到相关专业厂商的一些积极实践,希望为市场供需双方都能带来启发。
海云安 开发者安全智能助手
定位为一款由安全大模型技术加持的平台型产品,将白盒安全检测、开源组件检测、应用安全合规等多方面安全能力嵌入到开发环境中,面向软件开发人员、编程人员提供安全赋能。
ai辅助生成规则,内置ai能力可辅助生成检测规则提升检测覆盖率,全面增强检测、验证、修复效果;ai生成漏洞成因,内置ai能力可根据当前实际代码分析漏洞的形成原因、利用方法和修复方案;ai降低检测误报,通过融合sast、sca等技术进行分析,高效识别代码已有安全防护手段,运用ai大语言模型,极大降低误报率;ai自动修复代码,支持ai自动生成修复方案,开发者确认无误后点击接受即完成修复。
根据调研统计数据,国内外的代码安全检测技术普遍误报率在40%-50%,引入ai技术其准确率可提升至90%,甚至是95%以上。同时,通过ai加持其检测速度也提升了10倍,如规模级的整体检测需1小时才能完成的话,海云安开发者安全智能助手只需7分钟便可完成。
云起无垠 secgpt
这是一个开源的安全大模型,不仅开源了基座模型,还开源了所有的训练代码以及数据(包括预训练,有监督训练,dpo训练等大模型全流程训练代码)和网络安全训练数据。
模型训练过程
可以作为基座安全模型,用于探索各种网络安全任务。比如,通过多轮对话分析和审查应用程序或系统中的潜在漏洞,帮助识别和理解漏洞的性质、潜在影响以及可能的修复方法。可以解释和分析安全相关的命令、脚本或代码,帮助安全专家理解其功能、潜在风险和执行结果。
另外在网络入侵事件调查中协助分析网络流量、日志和事件记录,以追踪攻击者的活动路径,从而支持安全溯源分析。分析网络流量数据,识别异常流量模式,帮助检测潜在的网络攻击或入侵行为,并提供应对这些行为的建议。在面对未知攻击时通过多轮对话共同分析攻击的特征、模式和可能的来源。当然也包括安全知识问答,解释安全概念、提供最佳实践建议和分析最新的威胁趋势。
代码审计&解释&修复建议
蜚语科技 corax
一款代码分析平台产品,通过引入符号执行、函数摘要、污点分析、路径可达性分析、数据流分析、自然语言分析等技术增强了在处理程序语义信息上的能力,对于代码的建模与分析更加精准高效。
通过在代码分析场景下引入基于大型语言模型的ai能力,corax能够帮助使用者快速理解bug与漏洞的成因,并且能够智能化地生成修复代码,极大地降低了使用者的技术门槛以及用于修复漏洞所花费的人工成本。通过将大型语言模型的解释生成能力与蜚语多年积累的代码分析能力相结合,corax能够突破llm无法处理超长上下文、缺乏数学运算与逻辑推理能力等天然缺陷,实现在超大规模代码库上对漏洞发现、漏洞解释和漏洞修复等任务的ai智能化。
官方表示目前公司已经完成了程序分析底座与大模型的深度融合,可以对接各类大模型,实现代码分析、代码解释、漏洞修复等任务的智能化,帮助用户快速理解工具所发现的bug与漏洞,降低认知和使用门槛,减少跨部门协作的成本。同时也提供能够本地化部署的专属大模型。
可以明确的是,大模型并不是现有技术的替代,而是作为现有技术的补充,大模型的到来无意“杀死”开发者,相反,它应该成为开发者强有力的安全帮手,提供肉眼可见的增益。
探索大模型等ai相关技术与软件供应链安全的融合是一个必然的趋势,我们也观察到业界在多个方向做出的积极展望,比如,协助识别分析在软件集成过程对于他人api误用造成的逻辑漏洞;将模型进行调用图生成、理解等定向训练,降低静态分析固有的误报率;或扮演安全培训工程师的角色,定向生成特殊场景的漏洞代码及相关文档,完成对开发人员的培训等等。
期待大模型未来在软件供应链安全领域摩擦出更多火花,发挥更大的优势。