阿里云先知安全沙龙(武汉站) ——AI赋能软件漏洞检测,机遇, 挑战与展望

简介: 本文介绍了漏洞检测的发展历程、现状及未来展望。2023年全球披露的漏洞数量达26447个,同比增长5.2%,其中超过7000个具有利用代码,115个已被广泛利用,涉及多个知名软件和系统。文章探讨了从人工审计到AI技术的应用,强调了数据集质量对模型性能的重要性,并展示了不同检测模型的工作原理与实现方法。此外,还讨论了对抗攻击对模型的影响及提高模型可解释性的多种方法,展望了未来通过任务大模型实现自动化漏洞检测与修复的趋势。

前言

image.png

漏洞检测的前世与今生

2023年,全球共披露了26447个漏洞,同比增长5.2%,创下历史新高。超过7000个漏洞具有概念验证利用代码,容易被黑客用于实际攻击。此外,共有115个漏洞已经被黑客广泛利用。这些漏洞涉及多个知名软件和系统,包括Microsoft Outlook、Adobe ColdFusion、GitLab、Cisco IOS XE Software和Atlassian Confluence Server等。2023年漏洞TOP5的CVSS评分均在9.8以上,显示出极高的风险等级。同时,2022-2023年十大漏洞频发企业涵盖了微软、谷歌、苹果、三星、戴尔、IBM、本田、PayPal、美国航空和AMD等知名企业。这些数据强调了漏洞检测对于保障网络安全和防止潜在攻击的紧迫性和必要性。

image.png

在示例代码中,第7行使用malloc()函数执行内存分配,并在第9行使用free()函数释放分配的内存。然而,在第11行的for循环语句中,先前释放的内存data在第12行再次被释放,从而导致双重释放漏洞。这种漏洞可能导致应用程序崩溃或拒绝服务攻击等问题。图中还列举了相关漏洞实例,如CVE-2023-28464和CVE-2022-40515,进一步强调了此类漏洞的危害性和识别的重要性。

image.png

早期的人工代码安全审计依赖于专业技术人员的知识,主要用于发现代码中的安全隐患。静态分析工具在20世纪70年代开始辅助审计工作,但存在较高的漏报和误报率。进入90年代,融合动态测试技术的应用提高了检测覆盖率,但仍面临漏报高的问题。近年来,随着人工智能技术的发展,人工智能漏洞挖掘技术逐渐兴起,因其易用性和高效率而备受关注。这些方法共同构成了现代漏洞检测的综合体系,帮助企业和组织更有效地识别和修复潜在的安全风险。

image.png

漏洞数据集质量研究

数据驱动的任务高度依赖于数据,标签的准确性决定了模型检测结果的可靠性。真实数据集的数据量小且难以收集,而合成数据集虽然数据量大,但代码简单且不具代表性。非功能性更改,如样式更改、重构和代码迁移,都会混淆数据标记过程。例如,将常量值转换为等价宏,以及tangled commits(混合提交)可能会并行执行其他无关的更改,这些更改容易被误认为是有漏洞的代码。因此,通过patch和diff来生成标签,可以更准确地识别和处理这些复杂情况,从而提高数据集的质量和模型的性能。

image.png

漏洞样本与非漏洞样本的比例严重不平衡,数据集中存在17%到99%的数据样本重复现象,约20%到71%的漏洞标签不准确。具体来看,Devign数据集由安全供应商提供,包含188636个函数,漏洞率为5.78%,准确性为0.800,唯一性为0.899;Big-Vul数据集由开发商提供,包含27318个函数,漏洞率为45.61%,准确性为0.543,唯一性为0.830;D2A数据集通过工具创建,包含1295623个函数,漏洞率为1.44%,准确性为0.286,唯一性仅为0.021;Juliet Testsuit数据集通过人工合成,包含253002个函数,漏洞率为36.77%,准确性为1.000,但唯一性为0.163。这些数据表明,数据集质量问题是AI漏洞检测领域亟待解决的一个难题。

image.png

漏洞检测模型原理与实现

从数据集开始,通过预处理将代码转换为中间表示形式,如序列、切片、树和图等。接着,这些中间表示被转化为特征向量,以便输入到AI模型中进行训练。经过模型训练后,系统能够执行特定任务,如判断代码是否含有漏洞(Vulnerable or Non-vulnerable)、识别具体的漏洞类型(Which)以及定位漏洞的具体位置(Where)。整个流程通过函数f(P)来表示,其中P代表原始数据集,I代表中间表示,F代表特征向量,N代表模型训练,R代表最终结果。这一系列步骤确保了AI在漏洞检测中的高效性和准确性。

image.png

漏洞检测方法主要包括DAST(动态应用安全测试)、SAST(静态应用安全测试)和IAST(交互式应用安全测试)。代码表征类型包括Token sequence(令牌序列)、Tree(树结构)、Graph(图结构)和Binary(二进制)。检测粒度级别分为Function(函数级)、Program slice(程序切片)和Statement/Line(语句/行级)。神经网络模型则涵盖了RNN(循环神经网络)、GNN(图神经网络)、CNN(卷积神经网络)、BERT(双向编码器转换器)和Transformer等。

在具体应用中,SAST技术通过模式分析、基于规则的方法、代码相似性和机器学习等方式进行漏洞检测。而DAST技术则主要依赖模糊测试和符号执行来发现潜在的安全问题。右侧的示例代码展示了不同级别的检测粒度,从函数级别到语句级别,再到切片级别,体现了漏洞检测的多层次和多维度特性。

image.png

代码通过抽象语法树(AST)、控制流图(CFG)、数据流图(DFG)和命名冲突图(NCS)进行表示。这些表示形式被整合成一个综合的图结构,用于捕捉代码中的各种关系和依赖。接下来,利用图卷积网络(GCN)对这个图结构进行处理,提取关键特征并识别潜在的漏洞。最终,系统能够准确地定位和报告代码中的问题函数。图中还提供了一个整数溢出的代码示例,详细展示了从代码到图表示的过程,以及如何通过GNN技术进行漏洞检测。

image.png

这张图展示了基于图简化的漏洞检测技术(AMPLE)的工作原理。首先,源代码被转换为代码结构图,并通过基于类型的图简化和基于变量的图简化进行处理,以减少复杂性并保留关键信息。接下来,边缘感知GCN模块对简化后的图进行分析,提取节点和边的特征向量。这些特征向量经过核缩放模块的处理,进一步增强图表示的学习能力。整个过程通过多层卷积神经网络(CNN)和注意力机制来捕捉代码结构中的深层模式,从而提高漏洞检测的准确性和效率。右侧的示例代码展示了如何通过图简化和GCN模块识别潜在的安全问题。

image.png

这张图展示了基于Transformer的漏洞定位技术(LineVul)的工作流程。首先,源代码通过BPE(字节对编码)进行预处理,将其转换为子词级别的表示形式。接着,这些子词被输入到CodeBERT模型中,利用其强大的语义理解能力进行编码。经过编码后的数据通过一系列Transformer编码器层进行处理,每一层都包含前馈神经网络和双向多头自注意力机制,以捕捉代码中的复杂依赖关系。

在训练阶段,模型通过学习源代码和二进制标签之间的关联,逐步优化参数。而在推理阶段,模型能够对新的代码片段进行预测,并输出函数级和行级的漏洞预测结果。此外,模型还提供了注意力得分,帮助安全分析师更准确地定位潜在的安全问题。整个过程通过多层次的Transformer编码器和线性分类器,实现了高效且精准的漏洞检测。

image.png

漏洞检测模型的攻防

代码的特性是非结构化数据且空间离散,无法通过添加特征扰动来攻击。对抗样本或数据投毒或后门攻击是常见的攻击手段。构造代码的对抗样本需要满足语法有效性(可通过编译)、语义不变性(输出结果一致)以及自然规范性(符合程序员编写风格)。图中还展示了图像对抗样本生成的例子,通过微小的扰动使图像被错误分类。右侧的代码示例则展示了如何通过变量随机替换生成代码对抗样本,以混淆漏洞检测模型的判断。

image.png

通过循环结构改写、条件语句改写和语句顺序转换,可以改变代码的形式而不影响其功能。此外,添加或删除死代码、变量或函数重命名、算数表达式调整以及常量替换等技术也能实现类似的效果。这些转换方法利用Txl编程语言进行自动化处理,确保源代码在经过转换后仍能保持原有的逻辑和功能。右侧的示例代码分别展示了循环改写和常量替换的具体应用,通过这些技术可以有效提高代码的多样性和复杂性,从而增强漏洞检测模型的鲁棒性。

image.png

攻击前,模型的F1分数为0.9264,显示出较高的性能。然而,在攻击后,F1分数显著下降至0.0435,精度和召回率也分别从0.9663和0.8897降至0.3077和0.0234。尽管数据集不平衡且漏洞率仅为5.78%,但攻击导致模型的准确性变化不大。这表明模型在面对攻击时未能有效捕捉深层漏洞语义,仅学习了浅层代码序列信息,从而导致性能大幅下降。

image.png

将训练样本与对抗样本结合,用于预训练模型,以增强模型的鲁棒性和泛化性。接着,利用深度学习(DL)技术进行漏洞检测(VD),并通过融合(Fusion)方法进一步优化模型性能。整个过程旨在通过增加对抗样本的多样性,使模型在面对未知攻击时能够更有效地识别和抵御潜在的安全威胁。

image.png

image.png

漏洞检测模型的可解释性

通过代码行预测值排序或计算注意力分数,可以识别与漏洞相关的代码。进一步求解每个特征值对预测结果的贡献度,有助于理解哪些代码片段更可能包含漏洞。左侧的示例代码显示了特定代码行被标记为高风险区域,右侧则展示了模型输出如何通过特征权重进行解释。这种可解释性不仅揭示了新的漏洞特征和模式,扩展了对漏洞检测领域的知识和理解,还帮助安全专家更好地理解检测结果,从而做出更为准确的决策。

image.png

模型无关方法包括LIME,它通过生成局部线性模型来解释复杂模型的预测;以及SHAP,这是一种基于博弈论的特征重要性分配方法。代理模型方法则利用决策树等可解释的模型来近似原始复杂模型的行为。模型内部方法包括Grad-CAM,通过梯度信息可视化卷积神经网络的关注区域;以及Integrated Gradients,通过积分梯度来衡量特征的重要性。这些方法共同提升了模型的透明度和可理解性,帮助用户更好地理解和信任模型的预测结果。

image.png

漏洞检测未来展望

通用大模型被转化为任务大模型,专门用于漏洞检测。这一过程强调了模型的端到端能力,能够直接进行漏洞的自动化检测与挖掘,而不仅仅是辅助预处理或特征工程。在数据量方面,通过数据增强或合成数据来提升模型性能。接下来,模型应用于具体项目中,自动识别漏洞并生成修复补丁(patch),同时进行实验(exp)以验证修复效果。整个流程旨在提高漏洞检测和修复的效率与准确性。

image.png

image.png

相关文章
|
3月前
|
云安全 人工智能 安全
Dify平台集成阿里云AI安全护栏,构建AI Runtime安全防线
阿里云 AI 安全护栏加入Dify平台,打造可信赖的 AI
2889 166
|
3月前
|
机器学习/深度学习 人工智能 Serverless
吉利汽车携手阿里云函数计算,打造新一代 AI 座舱推理引擎
当前吉利汽车研究院人工智能团队承担了吉利汽车座舱 AI 智能化的方案建设,在和阿里云的合作中,基于星睿智算中心 2.0 的 23.5EFLOPS 强大算力,构建 AI 混合云架构,面向百万级用户的实时推理计算引入阿里云函数计算的 Serverless GPU 算力集群,共同为智能座舱的交互和娱乐功能提供大模型推理业务服务,涵盖的场景如针对模糊指令的复杂意图解析、文生图、情感 TTS 等。
|
3月前
|
机器学习/深度学习 人工智能 算法
阿里云视频云以 360° 实时回放技术支撑 NBA 2025 中国赛 —— AI 开启“智能观赛”新体验
NBA中国与阿里云达成合作,首发360°实时回放技术,融合AI视觉引擎,实现多视角、低延时、沉浸式观赛新体验,重新定义体育赛事观看方式。
591 0
阿里云视频云以 360° 实时回放技术支撑 NBA 2025 中国赛 —— AI 开启“智能观赛”新体验
|
3月前
|
存储 人工智能 OLAP
AI Agent越用越笨?阿里云AnalyticDB「AI上下文工程」一招破解!
AI上下文工程是优化大模型交互的系统化框架,通过管理指令、记忆、知识库等上下文要素,解决信息缺失、长度溢出与上下文失效等问题。依托AnalyticDB等技术,实现上下文的采集、存储、组装与调度,提升AI Agent的准确性与协同效率,助力企业构建高效、稳定的智能应用。
|
3月前
|
消息中间件 人工智能 安全
云原生进化论:加速构建 AI 应用
本文将和大家分享过去一年在支持企业构建 AI 应用过程的一些实践和思考。
777 47
|
4月前
|
人工智能 安全 中间件
阿里云 AI 中间件重磅发布,打通 AI 应用落地“最后一公里”
9 月 26 日,2025 云栖大会 AI 中间件:AI 时代的中间件技术演进与创新实践论坛上,阿里云智能集团资深技术专家林清山发表主题演讲《未来已来:下一代 AI 中间件重磅发布,解锁 AI 应用架构新范式》,重磅发布阿里云 AI 中间件,提供面向分布式多 Agent 架构的基座,包括:AgentScope-Java(兼容 Spring AI Alibaba 生态),AI MQ(基于Apache RocketMQ 的 AI 能力升级),AI 网关 Higress,AI 注册与配置中心 Nacos,以及覆盖模型与算力的 AI 可观测体系。
1049 51
|
3月前
|
人工智能 运维 Kubernetes
Serverless 应用引擎 SAE:为传统应用托底,为 AI 创新加速
在容器技术持续演进与 AI 全面爆发的当下,企业既要稳健托管传统业务,又要高效落地 AI 创新,如何在复杂的基础设施与频繁的版本变化中保持敏捷、稳定与低成本,成了所有技术团队的共同挑战。阿里云 Serverless 应用引擎(SAE)正是为应对这一时代挑战而生的破局者,SAE 以“免运维、强稳定、极致降本”为核心,通过一站式的应用级托管能力,同时支撑传统应用与 AI 应用,让企业把更多精力投入到业务创新。
510 30
|
3月前
|
设计模式 人工智能 自然语言处理
3个月圈粉百万,这个AI应用在海外火了
不知道大家还记不记得,我之前推荐过一个叫 Agnes 的 AI 应用,也是当时在 WAIC 了解到的。
512 1
|
3月前
|
消息中间件 人工智能 安全
构建企业级 AI 应用:为什么我们需要 AI 中间件?
阿里云发布AI中间件,涵盖AgentScope-Java、AI MQ、Higress、Nacos及可观测体系,全面开源核心技术,助力企业构建分布式多Agent架构,推动AI原生应用规模化落地。
376 0
构建企业级 AI 应用:为什么我们需要 AI 中间件?
|
3月前
|
存储 人工智能 NoSQL
AI大模型应用实践 八:如何通过RAG数据库实现大模型的私有化定制与优化
RAG技术通过融合外部知识库与大模型,实现知识动态更新与私有化定制,解决大模型知识固化、幻觉及数据安全难题。本文详解RAG原理、数据库选型(向量库、图库、知识图谱、混合架构)及应用场景,助力企业高效构建安全、可解释的智能系统。