阿里云先知安全沙龙(武汉站) ——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

相关文章
阿里云先知安全沙龙(西安站) ——浅谈XSS漏洞挖掘与构造思路
本文介绍了DOM-XSS构造、运算符的威力和模板字符串妙用三个主题。通过多个实例图解,详细展示了如何利用DOM特性构造XSS攻击、JavaScript运算符在代码中的巧妙应用,以及模板字符串在开发中的灵活运用。这些内容对提升Web安全意识和编程技巧具有重要参考价值。
FoloUp:比HR更懂岗位需求!开源语音面试平台爆火:1份岗位需求生成100问,语音AI追问逻辑漏洞
FoloUp 是一个开源的 AI 语音面试平台,能够根据职位描述自动生成定制化的面试问题,并与候选人进行自然对话式的语音面试,帮助企业高效招聘。
130 9
FoloUp:比HR更懂岗位需求!开源语音面试平台爆火:1份岗位需求生成100问,语音AI追问逻辑漏洞
AI-Infra-Guard:腾讯开源AI基础设施安全评估神器,一键扫描漏洞
AI-Infra-Guard 是腾讯开源的高效、轻量级 AI 基础设施安全评估工具,支持 28 种 AI 框架指纹识别和 200 多个安全漏洞数据库,帮助用户快速检测和修复 AI 系统中的安全风险。
198 7
AgentSociety:告别纸上谈兵!AI社会模拟器预判政策漏洞:输入新规秒看30年后社会形态
AgentSociety 是清华大学推出的基于大语言模型的社会模拟器,通过构建类人心智的智能体模拟复杂社会行为,适用于政策沙盒测试、危机预警等场景。
73 6
当安全遇上AI 阿里聚安全算法挑战赛完美收官
StanTheMan战队勇夺冠军,并获得150000元的现金大奖和8月份赴加拿大参加国际顶级数据挖掘会议KDD 2017的学习机会;Waterdrop战队、SmartIDS战队分获亚军和季军;secAI_LYL战队和freelife战队获得第四名。
2660 0
AI职场突围战:夸克应用+生成式人工智能认证,驱动“打工人”核心竞争力!
在AI浪潮推动下,生成式人工智能(GAI)成为职场必备工具。文中对比了夸克、豆包、DeepSeek和元宝四大AI应用,夸克以“超级入口”定位脱颖而出。同时,GAI认证为职场人士提供系统学习平台,与夸克结合助力职业发展。文章还探讨了职场人士如何通过加强学习、关注技术趋势及培养合规意识,在AI时代把握机遇。
多模态AI核心技术:CLIP与SigLIP技术原理与应用进展
近年来,多模态表示学习在人工智能领域取得显著进展,CLIP和SigLIP成为里程碑式模型。CLIP由OpenAI提出,通过对比学习对齐图像与文本嵌入空间,具备强大零样本学习能力;SigLIP由Google开发,采用sigmoid损失函数优化训练效率与可扩展性。两者推动了多模态大型语言模型(MLLMs)的发展,如LLaVA、BLIP-2和Flamingo等,实现了视觉问答、图像描述生成等复杂任务。这些模型不仅拓展了理论边界,还为医疗、教育等领域释放技术潜力,标志着多模态智能系统的重要进步。
43 13
多模态AI核心技术:CLIP与SigLIP技术原理与应用进展
从零开始即刻拥有 DeepSeek-R1 满血版并使用 Dify 部署 AI 应用
本文介绍了如何使用阿里云提供的DeepSeek-R1大模型解决方案,通过Chatbox和Dify平台调用百炼API,实现稳定且高效的模型应用。首先,文章详细描述了如何通过Chatbox配置API并开始对话,适合普通用户快速上手。接着,深入探讨了使用Dify部署AI应用的过程,包括选购云服务器、安装Dify、配置对接DeepSeek-R1模型及创建工作流,展示了更复杂场景下的应用潜力。最后,对比了Chatbox与Dify的输出效果,证明Dify能提供更详尽、精准的回复。总结指出,阿里云的解决方案不仅操作简便,还为专业用户提供了强大的功能支持,极大提升了用户体验和应用效率。
1193 19
从零开始即刻拥有 DeepSeek-R1 满血版并使用 Dify 部署 AI 应用

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等