CN113987522B - 一种用于源代码漏洞检测的代码属性图压缩方法及装置 - Google Patents

一种用于源代码漏洞检测的代码属性图压缩方法及装置 Download PDF

Info

Publication number
CN113987522B
CN113987522B CN202111637333.1A CN202111637333A CN113987522B CN 113987522 B CN113987522 B CN 113987522B CN 202111637333 A CN202111637333 A CN 202111637333A CN 113987522 B CN113987522 B CN 113987522B
Authority
CN
China
Prior art keywords
node
nodes
graph
candidate
code
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.)
Active
Application number
CN202111637333.1A
Other languages
English (en)
Other versions
CN113987522A (zh
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.)
Harbin Institute Of Technology shenzhen Shenzhen Institute Of Science And Technology Innovation Harbin Institute Of Technology
Original Assignee
Harbin Institute Of Technology shenzhen Shenzhen Institute Of Science And Technology Innovation Harbin Institute Of Technology
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 Harbin Institute Of Technology shenzhen Shenzhen Institute Of Science And Technology Innovation Harbin Institute Of Technology filed Critical Harbin Institute Of Technology shenzhen Shenzhen Institute Of Science And Technology Innovation Harbin Institute Of Technology
Priority to CN202111637333.1A priority Critical patent/CN113987522B/zh
Publication of CN113987522A publication Critical patent/CN113987522A/zh
Application granted granted Critical
Publication of CN113987522B publication Critical patent/CN113987522B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • 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/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/563Static detection by source code analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种用于源代码漏洞检测的代码属性图压缩方法及装置,所述方法包括如下步骤:根据代码属性图计算基于前K跳邻居的节点邻域信息增益;对节点邻域信息增益进行局部归一化处理;选择归一化处理后的节点邻域信息增益低的节点组成候选删除节点集合,判断候选删除节点集合中是否存在割点,并将割点从候选删除节点集合中移除,最终得到删除节点集合;从代码属性图中去掉删除节点集合中的节点以及与节点相连的边,得到代码属性压缩图。本发明通过计算节点的前K跳邻居增益信息,选择增益信息低的节点进行删除同时保证压缩图的连通性,在尽可能保持代码属性图的节点属性和结构特征的情况下降低其复杂度,从而提高后续模型训练的时空效率。

Description

一种用于源代码漏洞检测的代码属性图压缩方法及装置
技术领域
本发明涉及软件漏洞检测方法,特别是涉及一种用于源代码漏洞检测的代码属性图压缩方法及装置。
背景技术
软件漏洞是指在软件设计、开发、配置过程中引起的错误或者缺陷,且一般不会影响程序的正常运行,但在某些情况下会被他人恶意利用对软件系统进行攻击,最终导致系统崩溃、数据泄露、被植入危险代码等后果。目前已有的自动化漏洞检测技术,用到的方法包括但不限于静态分析、动态分析、符号执行、机器学习等,且基于软件静态分析结构图和深度学习的模型层出不穷,虽然这些方法在相关数据集上已经取得了较好的结果,但是它们依然面临着代码图结构表示复杂的主要挑战。
已有的基于代码图结构的漏洞检测技术,大多都是将代码的数据流图、控制流图、程序依赖图、抽象语法树等结合起来构成综合属性图,往往结构复杂、时空效率低,难以应用到实际的软件项目中。且已存的很多方法将代码属性图假设成同构图,忽略了代码中不同节点类型代表的语义信息。这些都是基于代码图结构的源代码漏洞检测任务所面临的问题。
发明内容
本发明针对上述问题,提供了一种用于源代码漏洞检测的代码属性图压缩方法、装置及计算机存储介质。通过在尽可能保持源代码属性图的节点属性和结构特征的情况下降低其复杂度,从而提高后续模型训练的时空效率。
本发明的第一方面,提供了一种用于源代码漏洞检测的代码属性图压缩方法,所述方法包括如下步骤:
根据代码属性图节点计算基于前K跳邻居的节点邻域信息增益;
对节点邻域信息增益进行局部归一化处理;
将归一化处理后的节点邻域信息增益低的节点组成候选删除节点集合,判断候选删除节点集合中的候选删除节点是否满足:当删除候选删除节点及其相连的所有边后,图的连通分量增加,若是,则将候选删除节点作为割点从候选删除节点集合中移除,最终得到删除节点集合;
从代码属性图中去掉删除节点集合中的节点以及与节点相连的边,得到代码属性压缩图。
本发明的进一步技术方案为:计算基于前K跳邻居的节点邻域信息增益,其中节点
Figure 390576DEST_PATH_IMAGE001
的邻域信息增益具体表达式为:
Figure 979820DEST_PATH_IMAGE002
其中,
Figure 290716DEST_PATH_IMAGE001
v j 表示节点,
Figure 358029DEST_PATH_IMAGE003
表示节点
Figure 578926DEST_PATH_IMAGE001
的特征向量,
Figure 198126DEST_PATH_IMAGE004
是节点
Figure 871684DEST_PATH_IMAGE001
Figure 601742DEST_PATH_IMAGE005
跳邻居集合,
Figure 942725DEST_PATH_IMAGE006
Figure 342613DEST_PATH_IMAGE007
表示转移矩阵,
Figure 628101DEST_PATH_IMAGE008
表示代码属性图度矩阵D移除对角线元素后的k次方,
Figure 771638DEST_PATH_IMAGE009
表示代码属性图邻接矩阵Ak次方,邻接矩阵A中第
Figure 91761DEST_PATH_IMAGE010
j列的值
Figure 662550DEST_PATH_IMAGE011
表示在节点
Figure 700913DEST_PATH_IMAGE001
和节点v j 之间长度为k的路径数量。
本发明的进一步技术方案为:对节点邻域信息增益进行局部归一化处理,具体表达式为:
Figure 382562DEST_PATH_IMAGE012
其中,N(
Figure 557191DEST_PATH_IMAGE001
)表示节点
Figure 298882DEST_PATH_IMAGE001
的单跳邻居集合,
Figure 558962DEST_PATH_IMAGE013
表示单跳节点对之间转移概率的转移矩阵,
Figure 309880DEST_PATH_IMAGE014
表示节点v j 的邻域信息增益。
本发明的进一步技术方案为:将归一化处理后的节点邻域信息增益低的节点组成候选删除节点集合,具体步骤为:
将归一化处理后的节点邻域信息增益按照升序排列;
选出序列中前
Figure 214383DEST_PATH_IMAGE015
的节点作为候选删除节点,组成候选删除节点集合,其中
Figure 517188DEST_PATH_IMAGE016
表示原代码属性图的节点数目,
Figure 139930DEST_PATH_IMAGE017
表示压缩比例。
本发明的第二方面,提供了一种用于源代码漏洞检测的代码属性图压缩装置,所述装置包括:
节点邻域信息增益获取模块,用于根据代码属性图节点计算基于前K跳邻居的节点邻域信息增益;
归一化处理模块,用于对节点邻域信息增益进行局部归一化处理;
删除节点集合获取模块,用于将归一化处理后的节点邻域信息增益低的节点组成候选删除节点集合,判断候选删除节点集合中的候选删除节点是否满足:当删除候选删除节点及其相连的所有边后,图的连通分量增加,若是,则将候选删除节点作为割点从候选删除节点集合中移除,最终得到删除节点集合;
代码属性压缩图获取模块,用于从代码属性图中去掉删除节点集合中的节点以及与节点相连的边,得到代码属性压缩图。
本发明的第三方面,提供了一种用于源代码漏洞检测的代码属性图压缩装置,包括:处理器;以及存储器,其中,所述存储器中存储有计算机可执行程序,当由所述处理器执行所述计算机可执行程序时,执行上述用于源代码漏洞检测的代码属性图压缩方法。
本发明的第四方面,提供了一种计算机可读存储介质,其上存储有指令,所述指令在被处理器执行时,使得所述处理器执行上述用于源代码漏洞检测的代码属性图压缩方法。
本发明提供的一种用于源代码漏洞检测的代码属性图压缩方法、装置及计算机存储介质,代码属性图压缩方法通过计算代码属性图中各节点的重要性,并按比例选择重要的节点构建压缩图,将压缩后的代码属性图输入到GNN模型中学习向量表示以用于判断代码中是否存在漏洞。在尽可能保持原代码属性图的节点属性和结构特征的情况下降低其复杂度,从而提高后续模型训练的时空效率。最终得到的有益效果是:代码属性图压缩方法通过计算节点的前K跳邻居增益信息,选择增益信息低的节点进行删除同时保证压缩图的连通性,可以在尽可能保持原代码属性图的节点属性和结构特征的情况下降低其复杂度,从而提高后续模型训练的时空效率。
附图说明
图1是本发明实施例的用于源代码漏洞检测的代码属性图压缩方法流程图;
图2是本发明实施例的用于源代码漏洞检测的代码属性图压缩装置结构示意图;
图3是本发明实施例中的计算机设备的架构图。
具体实施方式
为进一步对本发明的技术方案作详细说明,本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的步骤。
实施例1
一种用于源代码漏洞检测的代码属性图压缩方法,具体步骤如图1所示,包括:
S01、根据代码属性图节点计算基于前K跳邻居的节点邻域信息增益;
具体实现过程为:令代码属性图
Figure 553594DEST_PATH_IMAGE018
,其中
Figure 566463DEST_PATH_IMAGE019
表示节点集合,
Figure 915536DEST_PATH_IMAGE020
表示节点的特征矩阵,
Figure 884629DEST_PATH_IMAGE021
表示代码属性图中节点的邻接矩阵。代码属性图节点类型集合为
Figure 711771DEST_PATH_IMAGE022
,不同类型节点的特征向量处于不同的特征空间,为方便衡量节点特征之间的距离和计算重要性,本发明先将节点的特征进行特征变换,转换到同一特征空间进行差异化衡量,转换公式如下:
Figure 715499DEST_PATH_IMAGE023
其中,
Figure 501052DEST_PATH_IMAGE024
表示节点类型为
Figure 957441DEST_PATH_IMAGE025
的节点特征矩阵,
Figure 588274DEST_PATH_IMAGE026
为类型
Figure 180929DEST_PATH_IMAGE025
节点的特征变换矩阵。各个类型节点变换之后的特征矩阵
Figure 137384DEST_PATH_IMAGE027
在同一个特征空间进行重要性衡量,为:
Figure 956436DEST_PATH_IMAGE028
本发明提出的节点重要性衡量指标基于如下:如果一个节点可被周围节点信息较好的预测,那么移除该节点后不会损失太多的信息。本发明采用邻域信息增益指标来指导节点的筛选,该指标被定义为中心节点信息
Figure 515593DEST_PATH_IMAGE003
与周围邻居节点之间的曼哈顿距离,即当选择一个预测函数
Figure 103700DEST_PATH_IMAGE029
之后,邻域信息增益准则可被公式化为:
Figure 824531DEST_PATH_IMAGE030
其中,
Figure 130879DEST_PATH_IMAGE031
Figure 228148DEST_PATH_IMAGE032
范数,目的是防止某个维度具有很大的方差从而决定整个增益的计算,
Figure 936341DEST_PATH_IMAGE003
表示待计算的中心节点
Figure 828074DEST_PATH_IMAGE001
的特征向量,
Figure 621717DEST_PATH_IMAGE033
是预测函数,表示节点
Figure 522677DEST_PATH_IMAGE001
的前K跳邻居节点的带权聚合信息,
Figure 85377DEST_PATH_IMAGE034
Figure 413590DEST_PATH_IMAGE035
Figure 428950DEST_PATH_IMAGE036
其中,
Figure 133601DEST_PATH_IMAGE004
Figure 550807DEST_PATH_IMAGE001
节点的
Figure 49922DEST_PATH_IMAGE005
跳邻居集合,K表示最大的k跳取值,
Figure 552578DEST_PATH_IMAGE037
Figure 795341DEST_PATH_IMAGE038
的特征向量,
Figure 67053DEST_PATH_IMAGE009
是代码属性图邻接矩阵Ak次方,第
Figure 737069DEST_PATH_IMAGE010
j列的值
Figure 992601DEST_PATH_IMAGE039
表示在节点
Figure 648841DEST_PATH_IMAGE001
Figure 165273DEST_PATH_IMAGE038
之间长度为k的路径数量。
Figure 147136DEST_PATH_IMAGE040
Figure 749018DEST_PATH_IMAGE009
移除对角元素之后的矩阵,
Figure 208950DEST_PATH_IMAGE008
表示代码属性图度矩阵D移除对角线元素后的k次方。
Figure 579888DEST_PATH_IMAGE007
表示经过
Figure 467073DEST_PATH_IMAGE005
跳的节点对之间转移概率的转移矩阵,作为预测函数中对各
Figure 290672DEST_PATH_IMAGE005
跳邻居信息聚合的权重。
综上所述,实施例采用的节点
Figure 819874DEST_PATH_IMAGE001
的邻域信息增益计算公式可被细化为:
Figure 920685DEST_PATH_IMAGE002
通过S01方法计算每个节点的邻域增益信息都是局部的,计算复杂度低且可以分布式执行。
S02、对节点邻域信息增益进行局部归一化处理;
具体地,压缩操作被局部地进行,在每一块感受域选择一部分节点。但是由于代码属性图结构不像图片可以清晰划分感受域,图中的感受域可能是重叠的,因此实施例中S02在S01基础上提出在局部进行邻域信息增益归一化的操作,以避免由于存在一些主导性的节点引起的信息增益节点集中的情况。邻域信息增益归一化操作可以表示为:
Figure 103405DEST_PATH_IMAGE012
其中,N(
Figure 555246DEST_PATH_IMAGE001
)表示节点
Figure 481613DEST_PATH_IMAGE001
的单跳邻居集合,
Figure 702510DEST_PATH_IMAGE013
表示单跳节点对之间转移概率的转移矩阵,
Figure 321710DEST_PATH_IMAGE041
表示节点
Figure 995268DEST_PATH_IMAGE038
的邻域信息增益。
S03、将归一化处理后的节点邻域信息增益低的节点组成候选删除节点集合,判断候选删除节点集合中的候选删除节点是否满足:当删除候选删除节点及其相连的所有边后,图的连通分量增加,若是,则将候选删除节点作为割点从候选删除节点集合中移除,最终得到删除节点集合;
优选实现过程为:将归一化处理后的节点邻域信息增益按照升序排列;选出队列中前
Figure 725327DEST_PATH_IMAGE015
的节点作为候选删除节点,组成候选删除节点集合
Figure 535151DEST_PATH_IMAGE042
,其中
Figure 466198DEST_PATH_IMAGE043
表示原代码属性图的节点数目,
Figure 17265DEST_PATH_IMAGE044
表示压缩比例。
具体地,为保证压缩图仍是连通图,执行删除操作前,先检查候选删除节点中是否存在割点,即如果删除某个节点及其相连的所有边,图的连通分量增加,这个点即为割点。如果候选删除节点中存在割点,将割点从V candidate 中移除得到删除节点集合V’ candidate
S04、从代码属性图中去掉删除节点集合中的节点以及与节点相连的边,得到代码属性压缩图。
具体地,从代码属性图中删除V’ candidate 中的节点及与其相连的边。压缩图的特征矩阵
Figure 426381DEST_PATH_IMAGE045
可以直接根据剩余节点的索引获得,压缩图的邻接矩阵
Figure 356291DEST_PATH_IMAGE046
的元素可以被定义为:
Figure 989397DEST_PATH_IMAGE047
在执行压缩操作时,K
Figure 168706DEST_PATH_IMAGE044
的值可以根据压缩图的比例和图的性质设定,考虑到距离越近节点的影响越大,且过大的K值会降低重要节点的增益影响,优选实施例中可设置
Figure 393231DEST_PATH_IMAGE048
,压缩率
Figure 567861DEST_PATH_IMAGE049
可设置为
Figure 309552DEST_PATH_IMAGE050
。 在后续训练阶段,图压缩操作可以随着模型训练过程一起端到端训练,以产生最有利于后续节点分类操作的压缩图。
实施例2
参照图2来描述根据本公开实施例的与图1所示的方法对应的装置,一种用于源代码漏洞检测的代码属性图压缩装置,所述装置100包括:节点邻域信息增益获取模块101,用于根据代码属性图节点计算基于前K跳邻居的节点邻域信息增益;归一化处理模块102,用于对节点邻域信息增益进行局部归一化处理;删除节点集合获取模块103,用于将归一化处理后的节点邻域信息增益低的节点组成候选删除节点集合,判断候选删除节点集合中的候选删除节点是否满足:当删除候选删除节点及其相连的所有边后,图的连通分量增加,若是,则将候选删除节点作为割点从候选删除节点集合中移除,最终得到删除节点集合;代码属性压缩图获取模块104,用于从代码属性图中去掉删除节点集合中的节点以及与节点相连的边,得到代码属性压缩图。除了这4个模块以外,装置100还可以包括其他部件,然而,由于这些部件与本公开实施例的内容无关,因此在这里省略其图示和描述。
一种用于源代码漏洞检测的代码属性图压缩装置100的具体工作过程参照上述一种用于源代码漏洞检测的代码属性图压缩方法实施例1的描述,不再赘述。
实施例3
本发明实施例的装置也可以借助于图3所示的计算设备的架构来实现。图3示出了该计算设备的架构。如图3所示,计算机系统201、系统总线203、一个或多个CPU204、输入/输出202、存储器205等。存储器205可以存储计算机处理和/或通信使用的各种数据或文件以及CPU所执行的程序指令,程序指令包括执行实施例1所述的用于源代码漏洞检测的代码属性图压缩方法。图3所示的架构只是示例性的,在实现不同的设备时,根据实际需要调整图3中的一个或多个组件。
实施例4
本发明实施例也可以被实现为计算机可读存储介质。根据实施例的计算机可读存储介质上存储有计算机可读指令。当所述计算机可读指令由处理器运行时,可以执行参照以上附图描述的根据本发明实施例1的用于源代码漏洞检测的代码属性图压缩方法。
综合上述各实施例提供的用于源代码漏洞检测的代码属性图压缩方法、装置及计算机存储介质,代码属性图压缩方法通过计算代码属性图中各节点的重要性,并按比例选择重要的节点构建压缩图,将压缩后的代码属性图输入到GNN模型中学习向量表示以用于判断代码中是否存在漏洞。在尽可能保持原代码属性图的节点属性和结构特征的情况下降低其复杂度,从而提高后续模型训练的时空效率。最终得到的有益效果是:代码属性图压缩方法通过计算节点的前K跳邻居增益信息,选择增益信息低的节点进行删除同时保证压缩图的连通性,可以在尽可能保持原代码属性图的节点属性和结构特征的情况下降低其复杂度,从而提高后续模型训练的时空效率。
在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的步骤、方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种步骤、方法所固有的要素。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

Claims (7)

1.一种用于源代码漏洞检测的代码属性图压缩方法,其特征在于,所述方法包括如下步骤:
根据代码属性图节点计算基于前K跳邻居的节点邻域信息增益;
对节点邻域信息增益进行局部归一化处理;
选择归一化处理后的节点邻域信息增益低的节点组成候选删除节点集合,判断候选删除节点集合中的候选删除节点是否满足:当删除候选删除节点及其相连的所有边后,图的连通分量增加,若是,则将候选删除节点作为割点从候选删除节点集合中移除,最终得到删除节点集合;
从代码属性图中去掉删除节点集合中的节点以及与节点相连的边,得到代码属性压缩图;
其中,根据代码属性图节点计算基于前K跳邻居的节点邻域信息增益,具体包括:根据节点信息与周围邻居节点之间的曼哈顿距离定义节点邻域信息增益,具体表达式为:
Figure 262930DEST_PATH_IMAGE001
,其中
Figure 549555DEST_PATH_IMAGE002
Figure 876631DEST_PATH_IMAGE003
范数,
Figure 976961DEST_PATH_IMAGE004
表示待计算的节点
Figure 123908DEST_PATH_IMAGE005
的特征向量,
Figure 151907DEST_PATH_IMAGE006
是预测函数,表示节点
Figure 395807DEST_PATH_IMAGE005
的前K跳邻居节点的带权聚合信息。
2.根据权利要求1所述的代码属性图压缩方法,其特征在于,计算基于前K跳邻居的节点邻域信息增益,其中节点
Figure 851059DEST_PATH_IMAGE005
的邻域信息增益具体表达式为:
Figure 750882DEST_PATH_IMAGE007
其中,
Figure 130042DEST_PATH_IMAGE005
v j 表示节点,
Figure 166131DEST_PATH_IMAGE004
表示节点
Figure 854601DEST_PATH_IMAGE005
的特征向量,
Figure 976141DEST_PATH_IMAGE008
是节点
Figure 345942DEST_PATH_IMAGE005
Figure 315166DEST_PATH_IMAGE009
跳邻居集合,
Figure 112221DEST_PATH_IMAGE010
Figure 721057DEST_PATH_IMAGE011
表示转移矩阵,
Figure 691287DEST_PATH_IMAGE012
表示代码属性图度矩阵D移除对角线元素后的k次方,
Figure 701968DEST_PATH_IMAGE013
Figure 669924DEST_PATH_IMAGE014
移除对角线元素后的矩阵,
Figure 579106DEST_PATH_IMAGE014
表示代码属性图邻接矩阵Ak次方,
Figure 290710DEST_PATH_IMAGE014
中第
Figure 483794DEST_PATH_IMAGE015
j列的值
Figure 622651DEST_PATH_IMAGE016
表示在节点
Figure 940500DEST_PATH_IMAGE005
和节点v j 之间长度为k的路径数量。
3.根据权利要求2所述的代码属性图压缩方法,其特征在于,对节点邻域信息增益进行局部归一化处理,具体表达式为:
Figure 265914DEST_PATH_IMAGE017
其中,N(
Figure 251188DEST_PATH_IMAGE005
)表示节点
Figure 560947DEST_PATH_IMAGE005
的单跳邻居集合,
Figure 428408DEST_PATH_IMAGE018
表示单跳节点对之间转移概率的转移矩阵,
Figure 481815DEST_PATH_IMAGE019
表示节点v j 的邻域信息增益。
4.根据权利要求2所述的代码属性图压缩方法,其特征在于,将归一化处理后的节点邻域信息增益低的节点组成候选删除节点集合,具体步骤为:
将归一化处理后的节点邻域信息增益按照升序排列;
选出序列中前
Figure 321595DEST_PATH_IMAGE020
的节点作为候选删除节点,组成候选删除节点集合,其中
Figure 615304DEST_PATH_IMAGE021
表示源代码属性图的节点数目,
Figure 173325DEST_PATH_IMAGE022
表示压缩比例。
5.一种用于源代码漏洞检测的代码属性图压缩装置,其特征在于,所述装置包括:
节点邻域信息增益获取模块,用于根据代码属性图节点计算基于前K跳邻居的节点邻域信息增益;
归一化处理模块,用于对节点邻域信息增益进行局部归一化处理;
删除节点集合获取模块,用于将归一化处理后的节点邻域信息增益低的节点组成候选删除节点集合,判断候选删除节点集合中的候选删除节点是否满足:当删除候选删除节点及其相连的所有边后,图的连通分量增加,若是,则将候选删除节点作为割点从候选删除节点集合中移除,最终得到删除节点集合;
代码属性压缩图获取模块,用于从代码属性图中去掉删除节点集合中的节点以及与节点相连的边,得到代码属性压缩图;
其中,根据代码属性图节点计算基于前K跳邻居的节点邻域信息增益,具体包括:根据节点信息与周围邻居节点之间的曼哈顿距离定义节点邻域信息增益,具体表达式为:
Figure 827160DEST_PATH_IMAGE023
,其中
Figure 787026DEST_PATH_IMAGE024
Figure 438587DEST_PATH_IMAGE025
范数,
Figure 31373DEST_PATH_IMAGE026
表示待计算的节点
Figure 426583DEST_PATH_IMAGE027
的特征向量,
Figure 240955DEST_PATH_IMAGE028
是预测函数,表示节点
Figure 125734DEST_PATH_IMAGE027
的前K跳邻居节点的带权聚合信息。
6.一种用于源代码漏洞检测的代码属性图压缩装置,其特征在于,包括:处理器;以及存储器,其中,所述存储器中存储有计算机可执行程序,当由所述处理器执行所述计算机可执行程序时,执行权利要求1-4中任一项所述的用于源代码漏洞检测的代码属性图压缩方法。
7.一种计算机可读存储介质,其上存储有指令,其特征在于,所述指令在被处理器执行时,使得所述处理器执行如权利要求1-4中任一项所述的用于源代码漏洞检测的代码属性图压缩方法。
CN202111637333.1A 2021-12-30 2021-12-30 一种用于源代码漏洞检测的代码属性图压缩方法及装置 Active CN113987522B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111637333.1A CN113987522B (zh) 2021-12-30 2021-12-30 一种用于源代码漏洞检测的代码属性图压缩方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111637333.1A CN113987522B (zh) 2021-12-30 2021-12-30 一种用于源代码漏洞检测的代码属性图压缩方法及装置

Publications (2)

Publication Number Publication Date
CN113987522A CN113987522A (zh) 2022-01-28
CN113987522B true CN113987522B (zh) 2022-05-03

Family

ID=79734938

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111637333.1A Active CN113987522B (zh) 2021-12-30 2021-12-30 一种用于源代码漏洞检测的代码属性图压缩方法及装置

Country Status (1)

Country Link
CN (1) CN113987522B (zh)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113822315A (zh) * 2021-06-17 2021-12-21 深圳市腾讯计算机系统有限公司 属性图的处理方法、装置、电子设备及可读存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10803061B2 (en) * 2018-07-31 2020-10-13 Veracode, Inc. Software vulnerability graph database
US20210279338A1 (en) * 2020-03-04 2021-09-09 The George Washington University Graph-based source code vulnerability detection system
CN111783100B (zh) * 2020-06-22 2022-05-17 哈尔滨工业大学 基于图卷积网络对代码图表示学习的源代码漏洞检测方法
CN112699377B (zh) * 2020-12-30 2023-04-28 哈尔滨工业大学 基于切片属性图表示学习的函数级代码漏洞检测方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113822315A (zh) * 2021-06-17 2021-12-21 深圳市腾讯计算机系统有限公司 属性图的处理方法、装置、电子设备及可读存储介质

Also Published As

Publication number Publication date
CN113987522A (zh) 2022-01-28

Similar Documents

Publication Publication Date Title
RU2697955C2 (ru) Система и способ обучения модели обнаружения вредоносных контейнеров
RU2654146C1 (ru) Система и способ обнаружения вредоносных файлов с использованием элементов статического анализа
US9983984B2 (en) Automated modularization of graphical user interface test cases
US20130151536A1 (en) Vertex-Proximity Query Processing
CN111552969A (zh) 基于神经网络的嵌入式终端软件代码漏洞检测方法及装置
CN106682514B (zh) 基于子图挖掘的系统调用序列特征模式集生成方法
CN111767547B (zh) 一种基于复杂网络社团的软件漏洞检测方法
CN116579618B (zh) 基于风险管理的数据处理方法、装置、设备及存储介质
CN116305158A (zh) 一种基于切片代码依赖图语义学习的漏洞识别方法
JPWO2018092237A1 (ja) プログラムコード生成装置、プログラムコード生成方法及びプログラムコード生成プログラム
CN113228017A (zh) 攻击树生成装置、攻击树生成方法以及攻击树生成程序
EP4191470A1 (en) Feature selection method and device, network device and computer-readable storage medium
CN113987522B (zh) 一种用于源代码漏洞检测的代码属性图压缩方法及装置
CN109032946B (zh) 一种测试方法和装置、计算机可读存储介质
CN116229535A (zh) 人脸检测模型的训练方法、人脸检测方法及装置
CN112906824B (zh) 车辆聚类方法、系统、设备及存储介质
CN114281691A (zh) 测试用例排序方法、装置、计算设备及存储介质
CN113850395A (zh) 一种数据处理方法及系统
CN112750047A (zh) 行为关系信息提取方法及装置、存储介质、电子设备
US20230419145A1 (en) Processor and method for performing tensor network contraction in quantum simulator
JP2019160008A (ja) プログラム分析装置及びプログラム分析方法
US20230325664A1 (en) Method and apparatus for generating neural network
CN113378543B (zh) 数据分析方法、训练数据分析模型的方法及电子设备
CN117609870B (zh) 结构识别模型训练、模型结构识别方法、设备及介质
CN117114087B (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
GR01 Patent grant
GR01 Patent grant
CB03 Change of inventor or designer information

Inventor after: Gao Cuiyun

Inventor after: Xu Guoai

Inventor after: Chen Yupan

Inventor after: Wang Xuan

Inventor after: Liu Chuanyi

Inventor after: Liao Qing

Inventor after: Han Peiyi

Inventor after: Chen Yujia

Inventor before: Gao Cuiyun

Inventor before: Chen Yupan

Inventor before: Wang Xuan

Inventor before: Liu Chuanyi

Inventor before: Liao Qing

Inventor before: Han Peiyi

Inventor before: Chen Yujia

CB03 Change of inventor or designer information