CN116975881A - 一种基于llvm的漏洞细粒度定位方法 - Google Patents

一种基于llvm的漏洞细粒度定位方法 Download PDF

Info

Publication number
CN116975881A
CN116975881A CN202311080520.3A CN202311080520A CN116975881A CN 116975881 A CN116975881 A CN 116975881A CN 202311080520 A CN202311080520 A CN 202311080520A CN 116975881 A CN116975881 A CN 116975881A
Authority
CN
China
Prior art keywords
vulnerability
llvm
model
fine
granularity
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202311080520.3A
Other languages
English (en)
Inventor
白万荣
杜超本
张驯
赵金雄
张译匀
张学军
周博
魏峰
张蕾
王迪
刘东清
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
STATE GRID GASU ELECTRIC POWER RESEARCH INSTITUTE
State Grid Gansu Electric Power Co Ltd
Original Assignee
STATE GRID GASU ELECTRIC POWER RESEARCH INSTITUTE
State Grid Gansu Electric Power Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by STATE GRID GASU ELECTRIC POWER RESEARCH INSTITUTE, State Grid Gansu Electric Power Co Ltd filed Critical STATE GRID GASU ELECTRIC POWER RESEARCH INSTITUTE
Priority to CN202311080520.3A priority Critical patent/CN116975881A/zh
Publication of CN116975881A publication Critical patent/CN116975881A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0464Convolutional networks [CNN, ConvNet]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Mathematical Physics (AREA)
  • Quality & Reliability (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

本发明涉及一种基于LLVM的漏洞细粒度定位方法,该方法包括以下步骤:⑴构建源代码的抽象语法树:使用基于LLVM的前端工具Clang生成源代码的抽象语法树;并分别定义4类漏洞代码特征;⑵特征提取;⑶模型训练:ⅰ获取敏感中间代码片段,生成IRVCs:ⅱ基于词嵌入模型进行数据向量化表示;ⅲ训练漏洞细粒度定位模型:以获得的包含漏洞位置信息的细粒度程序切片IRVCs的向量化表示为BGRU模型的输入,建立基于BGRU的漏洞细粒度定位模型,且在该模型中加入融合层,并在融合层之后依次加入K‑max池化层和平均池化层共同实现粒度细化,最终获得输出结果。本发明在保证漏洞检测模型的综合性能的前提下,实现对C/C++源代码的细粒度漏洞定位。

Description

一种基于LLVM的漏洞细粒度定位方法
技术领域
本发明涉及软件安全技术领域,尤其涉及一种基于LLVM的漏洞细粒度定位方法。
背景技术
精确定位软件漏洞的具体发生位置是开发人员进行漏洞修补的基础。但目前大多数漏洞检测工具检测粒度普遍较粗,而传统基于深度学习的漏洞检测方法通过源代码层面的数据流、控制流分析以及程序切片无法彻底满足细粒度定位的需求。如何构造细粒度的程序切片算法,以及如何构造能够学习多种细粒度漏洞特征的深度学习模型是实现漏洞定位技术的难点。
源代码的漏洞定位依赖于细粒度的代码表征方法以及高效的漏洞挖掘模型。近些年来,深度学习技术被广泛应用于程序的分析过程中,如异常检测、软件语言建模、代码复制检测、API 学习、二进制函数边界识别、文件路径检测和注册表键检测、修复程序错误、软件的可追溯性、预测程序的属性、代码作者归属等领域。在进行源代码漏洞定位时,基于规则的漏洞挖掘方法在匹配相应漏洞规则时存在一定的漏洞定位效果,但由于其存在的漏报率以及误报率较高的问题,导致在实际使用时无法覆盖所有漏洞类型。而传统机器学习的漏洞挖掘方法检测粒度较粗,只能够在文件或者函数层面挖掘漏洞是否存在,无法实现精确的定位。
近些年越来越多研究将程序切片与深度学习技术融合,将源代码的漏洞定位粒度进一步降低。研究表明通过定义关系链接多个文件,并利用基于中间代码的表示来解决上述基于深度学习的漏洞检测器检测能力不足的问题。因为基于中间代码的表示采用静态单赋值(SSA)形式,因此可以确保每个变量都被定义并使用,并被精确赋值一次;提出粒度细化的概念来定位漏洞代码行号,构建了用于漏洞检测和定位的BRNN-vdl模型,将VulDeeLocator的漏洞输出精确至大约3行代码(Li Z, Zou D, Xu S, et al.Vuldeelocator: a deep learning-based fine-grained vulnerability detec-tor[J].IEEE Transactions on Dependable and Secure Computing, 2021, 19(4): 2821-2837.)。但该方法使用BRNN模型进行检测和定位,易出现梯度消失问题,导致精度不高。
专利CN115935367A公开了一种基于图神经网络的源代码漏洞静态检测及定位方法,包括对目标程序源代码依次进行词法、语法分析后生成抽象语法树;在抽象语法树的基础上加入控制流图、控制依赖图和数据依赖图以组合形成代码属性图;在代码属性图寻找调用类型的节点,根据找到的调用类型的节点信息建立函数调用图;将函数调用图添加到代码属性图中,利用函数调用图对控制流图与数据依赖图进行关联,形成关联代码属性图;构建基于图神经网络的漏洞检测及定位模型,将关联代码属性图输入至该模型中完成漏洞检测和定位。但基于图神经的漏洞定位不能完全表示漏洞的语义语法信息,导致定位精度不搞。
综上所述,与基于规则的漏洞检测方法代码行级别的检测粒度相比,大多数方法的定位粒度依旧较粗。
发明内容
本发明所要解决的技术问题是提供一种在保证漏洞检测模型的综合性能的前提下,实现对 C/C++源代码的细粒度漏洞定位的基于LLVM的漏洞细粒度定位方法。
为解决上述问题,本发明所述的一种基于LLVM的漏洞细粒度定位方法,包括以下步骤:
⑴构建源代码的抽象语法树:
使用基于LLVM的前端工具Clang生成源代码的抽象语法树;并分别定义4类漏洞代码特征为:算术表达式特征(Arithmetic Expression,AE)、API函数调用特征(APIFunction Call,FC)、指针特征(Pointer Usage,PU)以及数组使用特征(Array Usage,AU);
⑵特征提取:
①根据4类漏洞代码特征分别提取FeVC,并完成4类漏洞代码特征基于抽象语法树的程序切片;
②通过LLVM前端编译器Clang获取基于LLVM的中间代码表示LLVM IR;
⑶模型训练:
ⅰ获取敏感中间代码片段,生成IRVCs:
首先,输入FeVCs和相应基于LLVM的中间代码表示LLVM IR;其次,通过词法分析技术得到FeVCs中每个漏洞代码块的可能发生位置与所在函数,并以该函数为切片入口,引入开源工具DG(Dependence Graph)进行基于漏洞位置的程序切片,然后将切片结果与进行匹配,生成基于LLVM的中间代码切片,并将之存入IRVCs集合中;将漏洞标记通过LLVM映射后,获得带漏洞行号的中间代码,对FeVCs标记的每一个漏洞块中代码行均生成IRVC并标记漏洞行号信息,最后形成漏洞标记矩阵IRVCs;
ⅱ基于词嵌入模型进行数据向量化表示,即FastText向量化:
利用词向量转化技术将得到的程序切片IRVCs转化为神经网络可识别的特征向量;
ⅲ训练漏洞细粒度定位模型:
以获得的包含漏洞位置信息的细粒度程序切片IRVCs的向量化表示为BGRU模型的输入,建立基于BGRU的漏洞细粒度定位模型,且在该模型中加入融合层,并在融合层之后依次加入K-max池化层和平均池化层共同实现粒度细化,最终获得输出结果。
本发明与现有技术相比具有以下优点:
1、本发明对数据源代码依据预定义的 4 类漏洞语法特征对源代码的抽象语法树进行切片,进而得到基于特征的漏洞代码块。其次,使用工具对原有漏洞代码块进行基于LLVM 的进一步细粒度切片,并标记漏洞发生行号等信息,最终得到精确到漏洞发生位置的代码行级别漏洞程序切片以及数据集。最后,构建一种基于BGRU(Bidirectional GateRecurrent Unit)的漏洞细粒度定位模型,以获得的包含漏洞位置信息的细粒度程序切片的向量化表示为模型输入,利用BGRU捕获代码特征,学习程序切片中代码间的长期依赖关系;同时引入注意力机制,在传统的 BGRU 模型基础上加入融合层以及K-max 池化层和平均池化层共同实现漏洞细粒度定位,解决了传统基于深度学习的漏洞检测方法检测粒度较粗、可用性不足的缺点,最终得到基于LLVM的漏洞细粒度定位方法VulR。
2、本发明在保证漏洞检测模型的综合性能的前提下,实现了对 C/C++源代码的细粒度漏洞定位。
附图说明
下面结合附图对本发明的具体实施方式作进一步详细的说明。
图1为本发明漏洞细粒度定位方法框架。
图2为本发明基于LLVM的代码特征提取方法框架。
图3为本发明基于BGRU的漏洞细粒度定位模型。
具体实施方式
如图1~3所示,一种基于LLVM的漏洞细粒度定位方法,包括以下步骤:
⑴构建源代码的抽象语法树:
使用基于LLVM的前端工具Clang生成源代码的抽象语法树,并分别定义4类漏洞代码特征为:算术表达式特征(Arithmetic Expression,AE)、API函数调用特征(APIFunction Call,FC)、指针特征(Pointer Usage,PU)以及数组使用特征(Array Usage,AU)。
其中:Clang自带对AST进行构建的底层基本功能,其所分析出的AST结果可以输出及保存,是源代码分析过程的重要工具。
⑵特征提取:
①根据4类漏洞代码特征分别提取FeVC,并完成4类漏洞代码特征基于抽象语法树的程序切片。
FeVC表示基于特征的漏洞候选,由一个或多个连续的token(标识符、操作符、常量、关键字等)组成。FeVCs是4类漏洞代码候选的集合。
因为定义了4类漏洞语法特征,所以对四类情况分别进行讨论。首先以指针特征PU和数组使用特征AU为例,为获取以指针和数组为关键特征的漏洞代码块,需要递归遍历程序对应AST的每一个节点并判断节点类型,若节点类型为DeclStmt,则从该节点为起始访问其子节点,若子节点类型是VarDecl或者ParmDecl其任意一种,则需再次判断该节点所对应的源代码语句是否包含指针的‘*’特征或者数组的‘[’‘]’特征,若含有则将该源代码语句添加至FeVCs集合。
若基于算数表达式特征AE,同样需递归遍历程序对应AST的每一个节点并判断节点类型,若节点类型为BinaryOperator且该节点的父节点不为IfStmt条件成立,则将子节点的全部DeclRefExpr进行读取,并将表达式中所有参数作为Token逐一添加至FeVCs集合。
若基于API调用特征,将程序对应AST递归遍历每一个节点并判断节点类型后,判断每个节点类型是否为CallExpr以及是否在预设的敏感API列表中,(如果)是,则以此节点为起始位置,提取子节点中所有的DeclRefExpr,最终将API中所有参数作为Token逐一添加至FeVCs集合。
至此,返回所有漏洞代码块,并完成4类漏洞代码特征基于抽象语法树的程序切片。
②通过LLVM前端编译器Clang获取基于LLVM的中间代码表示LLVM IR。
首先生成中间表示LLVM IR,通过LLVM前端编译器Clang可以将C/C++编译为汇编形式的LLVM,这是一种序列化的代码表现形式,具有一定程度的可读性,然后生成链接IR文件。
⑶模型训练:
ⅰ获取敏感中间代码片段,生成IRVCs:
首先,输入FeVCs和相应基于LLVM的中间代码表示LLVM IR;其次,通过词法分析技术得到FeVCs中每个漏洞代码块的可能发生位置与所在函数,并以该函数为切片入口,引入开源工具DG(Dependence Graph)进行基于漏洞位置的程序切片,然后将切片结果与进行匹配,生成基于LLVM的中间代码切片,并将之存入IRVCs集合中;将漏洞标记通过LLVM映射后,获得带漏洞行号的中间代码,对FeVCs标记的每一个漏洞块中代码行均生成IRVC并标记漏洞行号信息,最后形成漏洞标记矩阵IRVCs。
ⅱ基于词嵌入模型进行数据向量化表示,即FastText向量化:
利用词向量转化技术将得到的程序切片IRVCs转化为神经网络可识别的特征向量。
ⅲ训练漏洞细粒度定位模型:
以获得的包含漏洞位置信息的细粒度程序切片IRVCs的向量化表示为BGRU模型的输入,建立基于BGRU的漏洞细粒度定位模型,且在该模型中加入融合层,并在融合层之后依次加入K-max池化层和平均池化层共同实现粒度细化,最终获得输出结果。具体过程如下:
接收输入后,模型的每个时间步长对应IRVCs中的一个长度为50的向量化的token,得到BGRU神经网络中激活层的输出向量,记作向量A。模型加入融合层的目的是挑选包含漏洞的IRVCs、剔除不存在漏洞的IRVCs,最后将挑选与漏洞代码行对应的tokens作为输出。融合层将上一步得到的激活层向量A与漏洞标记对角矩阵相乘得到融合层的输出。在融合层后使用K-max池化层和平均池化层共同实现粒度细化,K-max层选择最大的k个向量元素,平均层求出这k个最大元素的平均值,这样得出的结果作为平均池化层最终的输出结果,该输出结果在训练阶段用于与标签进行比较进行反向传播训练模型。
本发明基于SARD和NVD漏洞库中的漏洞样本数据集,引入4类可引发漏洞的漏洞语法特征分别对数据集进行切片,得到4种子数据集以及两种不同粒度的切片FEVC和IRVC进行实验。
实施例1
本实验所用的源代码来源于SARD和NVD漏洞库中公开的标准漏洞数据集,主要对C/C++编写的软件源代码进行漏洞检测,漏洞数据集源代码包含三类:(1) 表示无任何漏洞的“good”函数块;(2) 表示有某种特定漏洞的“bad”函数块;(3) 对漏洞程序有修补的代码mixed。其中,标记为“good”的函数是对标记为“bad”的函数块进行漏洞修复后生成的补丁。数据集总体包含样本15347个,其中作为训练数据集的样本10362个。
为了验证VuIR在不同特征数据集上的漏洞检测性能,基于SARD和NVD漏洞库中的漏洞样本数据集,引入4种可引发漏洞的漏洞语法特征分别对数据集进行切片,得到4种子数据集进行实验。以上提到的4种漏洞语法特征分别为:算术表达式特征(ArithmeticExpression,AE),API函数调用特征(API Function Call,FC)、指针特征(Pointer Usage,PU)以及数组使用(Array Usage,AU)。
实验使用假阳性率(False positive rate,FPR)、假阴性率(False negativerate,FNR)、真阳性率(True positive rate,TPR)、准确率(Precision,P)、F1 分数(F1score)和 ACC 分数(Accuracy,ACC)6个指标来评价 VuIR 方法的性能。
如表1所示,对4种子数据集AE、FC、PU、AU以及总数据集上两种不同粒度的切片FeVC和IRVC进行比较实验,结果表明使用IRVC作为漏洞定位模型的输入比使用FeVC实验结果更好。
表1 两种不同粒度的切片FeVC和IRVC的比较实验
实施例2
如表2所示,在定位综合性能测试中的实验数据来源于AE、FC、PU、AU四类特征构成的总数据集,本发明提出基于LLVM漏洞定位模型,基于两级粒度不同的程序切片对漏洞进行细粒度定位。
选取商业漏洞检测软件Checkmarx以及开源工具Flawfinder作为与传统漏洞检测工具的对照组;在基于深度学习的漏洞检测器对照组的选取上,选择SySeVR-BGRU模型作为比较对象。从表中实验结果看出,使用BGRU模型的VuIR方法比使用BLSTM模型的方法性能更优异。
表2 在定位综合性能测试中的实验数据

Claims (1)

1.一种基于LLVM的漏洞细粒度定位方法,包括以下步骤:
⑴构建源代码的抽象语法树:
使用基于LLVM的前端工具Clang生成源代码的抽象语法树;并分别定义4类漏洞代码特征为:算术表达式特征、API函数调用特征、指针特征以及数组使用特征;
⑵特征提取:
①根据4类漏洞代码特征分别提取FeVC,并完成4类漏洞代码特征基于抽象语法树的程序切片;
②通过LLVM前端编译器Clang获取基于LLVM的中间代码表示LLVM IR;
⑶模型训练:
ⅰ获取敏感中间代码片段,生成IRVCs:
首先,输入FeVCs和相应基于LLVM的中间代码表示LLVM IR;其次,通过词法分析技术得到FeVCs中每个漏洞代码块的可能发生位置与所在函数,并以该函数为切片入口,引入开源工具DG进行基于漏洞位置的程序切片,然后将切片结果与进行匹配,生成基于LLVM的中间代码切片,并将之存入IRVCs集合中;将漏洞标记通过LLVM映射后,获得带漏洞行号的中间代码,对FeVCs标记的每一个漏洞块中代码行均生成IRVC并标记漏洞行号信息,最后形成漏洞标记矩阵IRVCs;
ⅱ基于词嵌入模型进行数据向量化表示,即FastText向量化:
利用词向量转化技术将得到的程序切片IRVCs转化为神经网络可识别的特征向量;
ⅲ训练漏洞细粒度定位模型:
以获得的包含漏洞位置信息的细粒度程序切片IRVCs的向量化表示为BGRU模型的输入,建立基于BGRU的漏洞细粒度定位模型,且在该模型中加入融合层,并在融合层之后依次加入K-max池化层和平均池化层共同实现粒度细化,最终获得输出结果。
CN202311080520.3A 2023-08-25 2023-08-25 一种基于llvm的漏洞细粒度定位方法 Pending CN116975881A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311080520.3A CN116975881A (zh) 2023-08-25 2023-08-25 一种基于llvm的漏洞细粒度定位方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311080520.3A CN116975881A (zh) 2023-08-25 2023-08-25 一种基于llvm的漏洞细粒度定位方法

Publications (1)

Publication Number Publication Date
CN116975881A true CN116975881A (zh) 2023-10-31

Family

ID=88479670

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311080520.3A Pending CN116975881A (zh) 2023-08-25 2023-08-25 一种基于llvm的漏洞细粒度定位方法

Country Status (1)

Country Link
CN (1) CN116975881A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117473510A (zh) * 2023-12-26 2024-01-30 南京邮电大学 一种基于图神经网络和漏洞补丁关系的自动化漏洞挖掘技术

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117473510A (zh) * 2023-12-26 2024-01-30 南京邮电大学 一种基于图神经网络和漏洞补丁关系的自动化漏洞挖掘技术
CN117473510B (zh) * 2023-12-26 2024-03-26 南京邮电大学 一种基于图神经网络和漏洞补丁关系的自动化漏洞挖掘技术

Similar Documents

Publication Publication Date Title
CN109697162B (zh) 一种基于开源代码库的软件缺陷自动检测方法
CN110245496B (zh) 一种源代码漏洞检测方法及检测器和其训练方法及系统
CN110737899B (zh) 一种基于机器学习的智能合约安全漏洞检测方法
CN111459799B (zh) 一种基于Github的软件缺陷检测模型建立、检测方法及系统
CN116049831A (zh) 一种基于静态分析和动态分析的软件漏洞检测方法
CN113297580B (zh) 基于代码语义分析的电力信息系统安全防护方法及装置
CN112733156A (zh) 基于代码属性图的软件脆弱性智能检测方法、系统及介质
CN111475820A (zh) 基于可执行程序的二进制漏洞检测方法、系统及存储介质
CN116975881A (zh) 一种基于llvm的漏洞细粒度定位方法
CN108563561B (zh) 一种程序隐性约束提取方法及系统
CN116150757A (zh) 一种基于cnn-lstm多分类模型的智能合约未知漏洞检测方法
CN110750297A (zh) 一种基于程序分析和文本分析的Python代码参考信息生成方法
CN116702157B (zh) 一种基于神经网络的智能合约漏洞检测方法
CN111737694B (zh) 一种基于行为树的恶意软件同源性分析方法
CN113434418A (zh) 知识驱动的软件缺陷检测与分析方法及系统
Guan et al. A survey on deep learning-based source code defect analysis
US20230385037A1 (en) Method and system for automated discovery of artificial intelligence (ai)/ machine learning (ml) assets in an enterprise
CN116257877A (zh) 一种面向隐私计算的数据分类分级方法
Zeng et al. An efficient vulnerability extrapolation using similarity of graph kernel of pdgs
Haojie et al. Vulmg: A static detection solution for source code vulnerabilities based on code property graph and graph attention network
CN115859307A (zh) 基于树型注意力和加权图匹配的相似漏洞检测方法
CN113868650B (zh) 基于代码异质中间图表示的漏洞检测方法与装置
Komendantskaya et al. Proof mining with dependent types
Grechanik et al. Differencing graphical user interfaces
CN115438341A (zh) 提取代码循环计数器的方法、装置、存储介质和电子设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination