CN116595541A - 基于Transformer的源代码漏洞检测方法、装置、计算机设备及介质 - Google Patents

基于Transformer的源代码漏洞检测方法、装置、计算机设备及介质 Download PDF

Info

Publication number
CN116595541A
CN116595541A CN202310712146.8A CN202310712146A CN116595541A CN 116595541 A CN116595541 A CN 116595541A CN 202310712146 A CN202310712146 A CN 202310712146A CN 116595541 A CN116595541 A CN 116595541A
Authority
CN
China
Prior art keywords
source code
vulnerability detection
transformer
vulnerability
detected
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
CN202310712146.8A
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.)
Ping An Bank Co Ltd
Original Assignee
Ping An Bank 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 Ping An Bank Co Ltd filed Critical Ping An Bank Co Ltd
Priority to CN202310712146.8A priority Critical patent/CN116595541A/zh
Publication of CN116595541A publication Critical patent/CN116595541A/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
    • 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
    • Y04INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
    • Y04SSYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS
    • Y04S10/00Systems supporting electrical power generation, transmission or distribution
    • Y04S10/50Systems or methods supporting the power network operation or management, involving a certain degree of interaction with the load-side end user applications

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了基于Transformer的源代码漏洞检测方法、装置、计算机设备及介质,涉及金融科技技术领域,其中,所述方法包括:获取待检测的源代码数据;将待检测的所述源代码数据转化为自然语言的待检测文本;将所述待检测文本输入预设的Transformer漏洞检测模型进行检测分析,生成所述源代码数据的漏洞检测结果。通过本发明的方法可以提高银行机构在源代码漏洞检测时的准确性及效率。

Description

基于Transformer的源代码漏洞检测方法、装置、计算机设备 及介质
技术领域
本发明涉及金融科技技术领域,具体涉及一种基于Transformer的源代码漏洞检测方法、装置、计算机设备以及非易失性计算机可读存储介质。
背景技术
随着计算机技术的发展,越来越多的技术应用在金融领域,传统金融业正在逐步向金融科技(Fintech)转变,漏洞检测技术也不例外,但由于金融行业的安全性、实时性要求,也对漏洞检测技术提出了更高的要求。
目前,在当今信息化程度极高的环境下,银行机构中的各个软件都与其客户的信息/资金安全息息相关。而由于银行机构中的软件设计、实现以及使用中可能存在的错误,大部分软件都不可避免地存在漏洞,软件的漏洞一旦被不法分子利用,不仅直接会损害客户的利益,也会影响到银行机构的利益,因此,银行机构往往会投入极大的成本进行软件的代码检测以减少软件可能存在的漏洞,提高软件的安全性。
但是,现有技术中的源代码漏洞检测方法在检测准确性及效率上还是存在着一定的不足。因此,如何提供一种基于Transformer的源代码漏洞检测方法、装置、计算机设备以及非易失性计算机可读存储介质,以提高银行机构在源代码漏洞检测时的准确性及效率,是目前本领域技术人员亟待解决的问题。
发明内容
鉴于上述现有技术的不足之处,本发明的目的在于提供一种可用于金融科技或其他相关领域的基于Transformer的源代码漏洞检测方法、装置、计算机设备以及非易失性计算机可读存储介质,可以提高银行机构在源代码漏洞检测时的准确性及效率。
为了达到上述目的,本发明采取了以下技术方案:
一种基于Transformer的源代码漏洞检测方法,其中,包括:
获取待检测的源代码数据;
将待检测的所述源代码数据转化为自然语言的待检测文本;
将所述待检测文本输入预设的Transformer漏洞检测模型进行检测分析,生成所述源代码数据的漏洞检测结果。
在进一步的技术方案中,所述的基于Transformer的源代码漏洞检测方法,其中,所述将所述待检测文本输入预设的Transformer漏洞检测模型进行检测分析,生成所述源代码数据的漏洞检测结果,包括:
预先采集初始源代码漏洞检测样本,对所述初始源代码漏洞检测样本进行预处理后,生成目标源代码漏洞检测样本;
根据所述目标源代码漏洞检测样本对预先构建的初始Transformer漏洞检测模型进行训练,生成目标Transformer漏洞检测模型;
将所述待检测文本输入所述目标Transformer漏洞检测模型进行检测分析,生成所述源代码数据的漏洞检测结果。
在进一步的技术方案中,所述的基于Transformer的源代码漏洞检测方法,其中,所述预先采集初始源代码漏洞检测样本,对所述初始源代码漏洞检测样本进行预处理后,生成目标源代码漏洞检测样本,其中,所述预处理包括分词、去除停用词、建立词汇表。
在进一步的技术方案中,所述的基于Transformer的源代码漏洞检测方法,其中,所述根据所述目标源代码漏洞检测样本对预先构建的初始Transformer漏洞检测模型进行训练,生成目标Transformer漏洞检测模型,包括:
对所述目标源代码漏洞检测样本进行数据集划分,划分后生成训练集、验证集以及测试集;
预先基于Transformer神经网络构建初始Transformer漏洞检测模型,根据所述训练集对所述初始Transformer漏洞检测模型进行训练,并根据所述验证集对所述初始Transformer漏洞检测模型进行验证调整,并根据所述测试集对所述初始Transformer漏洞检测模型进行测试评估;
获取测试评估结果,当检测到所述测试评估结果满足预设的要求后,生成目标Transformer漏洞检测模型。
在进一步的技术方案中,所述的基于Transformer的源代码漏洞检测方法,其中,所述对所述目标源代码漏洞检测样本进行数据集划分,划分后生成训练集、验证集以及测试集,包括:
对所述目标源代码漏洞检测样本进行数据集划分,划分后生成60%训练集、20%验证集以及20%测试集。
在进一步的技术方案中,所述的基于Transformer的源代码漏洞检测方法,其中,所述将所述待检测文本输入所述目标Transformer漏洞检测模型进行检测分析,生成所述源代码数据的漏洞检测结果之后,包括:
基于所述漏洞检测结果,生成所述源代码数据的修复建议。
在进一步的技术方案中,所述的基于Transformer的源代码漏洞检测方法,其中,所述将所述待检测文本输入所述目标Transformer漏洞检测模型进行检测分析,生成所述源代码数据的漏洞检测结果之后,还包括:
基于所述漏洞检测结果,对所述目标Transformer漏洞检测模型进行模型迭代。
一种基于Transformer的源代码漏洞检测装置,其中,包括:
获取模块,用于获取待检测的源代码数据;
转化模块,用于将待检测的所述源代码数据转化为自然语言的待检测文本;
漏洞检测模块,用于将所述待检测文本输入预设的Transformer漏洞检测模型进行检测分析,生成所述源代码数据的漏洞检测结果。
一种计算机设备,其中,所述计算机设备包括至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器上存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行时,可实现如上述任一项所述的基于Transformer的源代码漏洞检测方法。
一种非易失性计算机可读存储介质,其中,所述非易失性计算机可读存储介质存储有计算机程序,所述计算机程序被至少一个处理器执行时,可实现如上述任一项所述的基于Transformer的源代码漏洞检测方法。
相较于现有技术,本发明提供了一种基于Transformer的源代码漏洞检测方法、装置、计算机设备以及非易失性计算机可读存储介质,其中,所述方法包括:获取待检测的源代码数据;将待检测的所述源代码数据转化为自然语言的待检测文本;将所述待检测文本输入预设的Transformer漏洞检测模型进行检测分析,生成所述源代码数据的漏洞检测结果。通过本发明的方法可以提高银行机构在源代码漏洞检测时的准确性及效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明实施例提供的一种基于Transformer的源代码漏洞检测方法的流程示意图。
图2为图1中所述步骤S300的流程示意图。
图3为图2中所述步骤S302的流程示意图。
图4为为图1中所述步骤S300的另一流程示意图。
图5为本发明实施例提供的一种基于Transformer的源代码漏洞检测装置的功能模块示意图。
图6为本发明实施例提供的所述计算机设备的硬件结构示意图。
具体实施方式
为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
在本发明的描述中,所使用的“包含”、“包括”、“具有”、“含有”等,均为开放性的用语,即意指包含但不限于。参考术语“一个实施例”、“一个具体实施例”、“一些实施例”、“例如”等的描述意指结合该实施例或示例描述的具体特征、结构或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。各实施例中涉及的步骤顺序用于示意性说明本申请的实施,其中的步骤顺序不作限定,可根据需要作适当调整。
下面结合附图,详细说明本发明的各种非限制性实施方式。
随着计算机技术的发展,越来越多的技术应用在金融领域,传统金融业正在逐步向金融科技(Fintech)转变,漏洞检测技术也不例外,但由于金融行业的安全性、实时性要求,也对漏洞检测技术提出了更高的要求。
目前,在当今信息化程度极高的环境下,银行机构中的各个软件都与其客户的信息/资金安全息息相关。而由于银行机构中的软件设计、实现以及使用中可能存在的错误,大部分软件都不可避免地存在漏洞,软件的漏洞一旦被不法分子利用,不仅直接会损害客户的利益,也会影响到银行机构的利益,因此,银行机构往往会投入极大的成本进行软件的代码检测以减少软件可能存在的漏洞,提高软件的安全性。
但是,现有技术中的源代码漏洞检测方法在检测准确性及效率上还是存在着一定的不足。因此,如何提供一种基于Transformer的源代码漏洞检测方法、装置、计算机设备以及非易失性计算机可读存储介质,以提高银行机构在源代码漏洞检测时的准确性及效率,是目前本领域技术人员亟待解决的问题。
因此,为了解决上述问题,请参阅图1,本发明实施例提供了一种基于Transformer的源代码漏洞检测方法,其中,所述方法包括步骤:
S100、获取待检测的源代码数据;
S200、将待检测的所述源代码数据转化为自然语言的待检测文本;
S300、将所述待检测文本输入预设的Transformer漏洞检测模型进行检测分析,生成所述源代码数据的漏洞检测结果。
进一步地,所述的基于Transformer的源代码漏洞检测方法,其中,所述步骤S100、获取待检测的源代码数据;
具体实施时,本实施例中,当银行机构需要对软件的源代码进行漏洞检测时,先获取待检测的源代码数据。
进一步地,所述的基于Transformer的源代码漏洞检测方法,其中,所述步骤S200、将待检测的所述源代码数据转化为自然语言的待检测文本;
具体实施时,本实施例中,在获取到获取待检测的源代码数据后,此时,将待检测的所述源代码数据转化为自然语言的待检测文本,并去除注释、空格和标点符号等无关信息。
进一步地,请参阅图2,所述的基于Transformer的源代码漏洞检测方法,其中,所述步骤S300、将所述待检测文本输入预设的Transformer漏洞检测模型进行检测分析,生成所述源代码数据的漏洞检测结果,包括步骤:
S301、预先采集初始源代码漏洞检测样本,对所述初始源代码漏洞检测样本进行预处理后,生成目标源代码漏洞检测样本;
S302、根据所述目标源代码漏洞检测样本对预先构建的初始Transformer漏洞检测模型进行训练,生成目标Transformer漏洞检测模型;
S303、将所述待检测文本输入所述目标Transformer漏洞检测模型进行检测分析,生成所述源代码数据的漏洞检测结果。
具体实施时,本实施例中,预先采集大量的初始源代码漏洞检测样本,并对所述初始源代码漏洞检测样本进行预处理后,以生成目标源代码漏洞检测样本;再根据所述目标源代码漏洞检测样本对预先构建的初始Transformer漏洞检测模型进行训练,生成目标Transformer漏洞检测模型;最后,在将待检测的所述源代码数据转化为自然语言的待检测文本后,将所述待检测文本输入所述目标Transformer漏洞检测模型进行检测分析,以生成所述源代码数据的漏洞检测结果。
进一步地,所述的基于Transformer的源代码漏洞检测方法,其中,所述步骤S301、预先采集初始源代码漏洞检测样本,对所述初始源代码漏洞检测样本进行预处理后,生成目标源代码漏洞检测样本,其中,所述预处理包括分词、去除停用词、建立词汇表。
具体实施时,本实施例中,在对预先采集的所述初始源代码漏洞检测样本进行预处理时,所述预处理包括分词、去除停用词、建立词汇表等,同时,还包括去除无用的字符、标点符号、特殊字符等,并将所述初始源代码漏洞检测样本转换为所述初始Transformer漏洞检测模型可以理解的格式;
其中,本实施例把预处理中分词的结果列表构建词汇表,选取出现频次较高的词纳入到词汇表中;假设本实施例在整个初始源代码漏洞检测样本(数据集)中统计了1000个不同的词语,那么词汇表的大小就为1000字符,这个大小可以根据数据集中出现的词语数量来调整。通常情况下,可以根据数据集中出现的词频构建一个大小为n个字符的词汇表,其中通常取值为1000到10000,当本实施例将数据集中的所有词语都列入词汇表时,这个词汇表可能会非常大,这会给模型的训练和推理带来困难,而且会增加计算量和内存开销。因此,为了解决这个问题,本实施例通常会根据词频或其他标准对词汇表进行截断,只将出现频率较高的词语加入到词汇表中;例如,在构建词汇表时,本实施例可以根据数据集中每个词语出现的次数来确定词汇表中包含有哪些词语,并可以根据出现次数对词汇表进行排序,选择出现频率最高的前n个词语,其中n是本实施例设置的词汇表大小,这样,可以减小词汇表的大小,同时仍然保留数据集中最常见的词语。
进一步地,请参阅图3,所述的基于Transformer的源代码漏洞检测方法,其中,所述步骤S302、根据所述目标源代码漏洞检测样本对预先构建的初始Transformer漏洞检测模型进行训练,生成目标Transformer漏洞检测模型,包括步骤:
S3021、对所述目标源代码漏洞检测样本进行数据集划分,划分后生成训练集、验证集以及测试集;
S3022、预先基于Transformer神经网络构建初始Transformer漏洞检测模型,根据所述训练集对所述初始Transformer漏洞检测模型进行训练,并根据所述验证集对所述初始Transformer漏洞检测模型进行验证调整,并根据所述测试集对所述初始Transformer漏洞检测模型进行测试评估;
S3023、获取测试评估结果,当检测到所述测试评估结果满足预设的要求后,生成目标Transformer漏洞检测模型。
进一步地,所述的基于Transformer的源代码漏洞检测方法,其中,所述步骤S3021、对所述目标源代码漏洞检测样本进行数据集划分,划分后生成训练集、验证集以及测试集,包括:
对所述目标源代码漏洞检测样本进行数据集划分,划分后生成60%训练集、20%验证集以及20%测试集。
具体实施时,本实施例中,在预先采集大量的初始源代码漏洞检测样本,并对所述初始源代码漏洞检测样本进行预处理,以生成目标源代码漏洞检测样本后,对所述目标源代码漏洞检测样本进行数据集划分,划分后生成训练集、验证集以及测试集;
同时,预先基于Transformer神经网络构建初始Transformer漏洞检测模型,并根据所述训练集对所述初始Transformer漏洞检测模型进行训练,再根据所述验证集对所述初始Transformer漏洞检测模型进行验证调整,再根据所述测试集对所述初始Transformer漏洞检测模型进行测试评估;
最后,获取测试评估结果,当检测到所述测试评估结果满足预设的要求后,生成目标Transformer漏洞检测模型;其中,
Transformer是一种基于seq2seq结构的序列生成神经网络,而所述初始Transformer漏洞检测模型是基于Transformer神经网络构建而成的自然语言模型;
训练集(Training Set)是用来训练所述初始Transformer漏洞检测模型的数据集,本实施例将所述训练集输入所述初始Transformer漏洞检测模型,所述初始Transformer漏洞检测模型会根据这些数据进行训练和优化;
验证集(Validation Set)是用来对训练后的所述初始Transformer漏洞检测模型进行验证和调整的数据集,在模型的训练过程中,不行的参数,通过验证集测试模型的性能来判断模型是否过拟合或者欠拟合,验证集可以帮助选择合适的模型和参数,以获得更好的性能;
测试集(Test Set)用于评估模型的最终性能,在模型训练和调整完成后,本实施例会使用所述测试集来评估模型的泛化能力,即模型是否能够对新的数据做出准确的预测;
优选地,本实施例在对所述目标源代码漏洞检测样本进行数据集划分,划分为训练集、验证集和测试集时,通常采用的比例是60%的训练集,20%的验证集,20%的测试集;这个比例可以根据具体情况进行调整,但是需要注意的是,每个数据只能出现在一个数据集中,以避免重复使用数据而导致评估结果不准确;其中,对于数据集的划分,本实施例可以通过随机划分的方法来实现,即将目标源代码漏洞检测样本随机分为训练集、验证集和测试集,在划分数据集时,本实施例需要保证三个数据集的样本分布是相似的,以保证模型的泛化能力和评估结果的可靠性。
进一步地,请参阅图4,所述的基于Transformer的源代码漏洞检测方法,其中,所述步骤S303、将所述待检测文本输入所述目标Transformer漏洞检测模型进行检测分析,生成所述源代码数据的漏洞检测结果之后,包括步骤:
S304、基于所述漏洞检测结果,生成所述源代码数据的修复建议。
具体实施时,本实施例中,在生成所述源代码数据的漏洞检测结果后,再基于所述漏洞检测结果,以生成对于所述源代码数据的修复建议,并可以同时将所述漏洞检测结果以及对应的所述修复建议发送给开发人员,以便于开发人员根据所述漏洞检测结果和所述修复建议对软件的所述源代码数据进行修改和调整。
进一步地,请参阅图4,所述的基于Transformer的源代码漏洞检测方法,其中,所述步骤S303、将所述待检测文本输入所述目标Transformer漏洞检测模型进行检测分析,生成所述源代码数据的漏洞检测结果之后,还包括步骤:
S305、基于所述漏洞检测结果,对所述目标Transformer漏洞检测模型进行模型迭代。
具体实施时,本实施例中,在生成所述源代码数据的漏洞检测结果后,可以基于所述漏洞检测结果,及时的对所述目标Transformer漏洞检测模型进行修正和更新,以进一步提高所述目标Transformer漏洞检测模型检测时的准确性和效率。
由以上方法实施例可知,本发明提供的基于Transformer的源代码漏洞检测方法,通过获取待检测的源代码数据;并将待检测的所述源代码数据转化为自然语言的待检测文本;同时,预先采集初始源代码漏洞检测样本,对所述初始源代码漏洞检测样本进行预处理后,生成目标源代码漏洞检测样本;再对所述目标源代码漏洞检测样本进行数据集划分,划分后生成训练集、验证集以及测试集;同时,预先基于Transformer神经网络构建初始Transformer漏洞检测模型,根据所述训练集对所述初始Transformer漏洞检测模型进行训练,并根据所述验证集对所述初始Transformer漏洞检测模型进行验证调整,并根据所述测试集对所述初始Transformer漏洞检测模型进行测试评估;再获取测试评估结果,当检测到所述测试评估结果满足预设的要求后,生成目标Transformer漏洞检测模型;最后,将所述待检测文本输入所述目标Transformer漏洞检测模型进行检测分析,生成所述源代码数据的漏洞检测结果;同时,基于所述漏洞检测结果,生成所述源代码数据的修复建议;基于所述漏洞检测结果,对所述目标Transformer漏洞检测模型进行模型迭代。这样,通过本发明的方法可以提高银行机构在源代码漏洞检测时的准确性及效率。
应该理解的是,虽然本申请提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤,这些操作步骤并不是必然按照实施例或流程图的顺序依次执行。实施例或流程图中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。需要说明的是,上述各步骤之间并不必然存在一定的先后顺序,本领域普通技术人员,根据本发明实施例的描述可以理解,不同实施例中,上述各步骤可以有不同的执行顺序,亦即,可以并行执行,亦可以交换执行等等。而且,实施例或流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流、交替或者同步地执行。
基于上述实施例,请参阅图5,本发明另一实施例还提供了一种基于Transformer的源代码漏洞检测装置,其中,所述装置包括:
获取模块11,用于获取待检测的源代码数据;
转化模块12,用于将待检测的所述源代码数据转化为自然语言的待检测文本;
漏洞检测模块13,用于将所述待检测文本输入预设的Transformer漏洞检测模型进行检测分析,生成所述源代码数据的漏洞检测结果。
具体实施方式见上述方法实施例,此处不再赘述。
基于上述实施例,请参阅图6,本发明另一实施例还提供了一种计算机设备,其中,所述计算机设备10包括:
存储器120以及一个或多个处理器110,图6中以一个处理器110为例进行介绍,处理器110和存储器120可以通过通信总线或者其他方式连接,图6中以通过通信总线连接为例。
处理器110用于完成计算机设备10的各种控制逻辑,其可以为通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、单片机、ARM(Acorn RISCMachine)或其它可编程逻辑器件、分立门或晶体管逻辑、分立的硬件组件或者这些部件的任何组合。还有,处理器110还可以是任何传统处理器、微处理器或状态机。处理器110也可以被实现为计算设备的组合,例如,DSP和微处理器的组合、多个微处理器、一个或多个微处理器结合DSP核、或任何其它这种配置。
存储器120作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本发明实施例中的基于Transformer的源代码漏洞检测方法对应的计算机程序。处理器110通过运行存储在存储器120中的非易失性软件程序、指令以及单元,从而执行计算机设备10的各种功能应用以及数据处理,即实现上述方法实施例中的基于Transformer的源代码漏洞检测方法。
存储器120可以包括存储程序区和存储数据区,其中,存储程序区可存储操作装置、至少一个功能所需要的应用程序;存储数据区可存储根据计算机设备10使用所创建的数据等。此外,存储器120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器120可选包括相对于处理器110远程设置的存储器,这些远程存储器可以通过网络连接至计算机设备10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
一个或者多个单元存储在存储器120中,当被一个或者多个处理器110执行时,可实现如上述任一项方法实施例中的基于Transformer的源代码漏洞检测方法,例如,可实现以上描述的图1中的方法步骤S100至步骤S300。
本领域技术人员可以理解,图6中示出的硬件结构示意图,仅仅是与本发明方案相关的部分结构的示意图,并不构成对本发明方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多的部件,或者组合某些部件,或者具有不同的部件布置。
基于上述实施例,本发明还提供了一种非易失性计算机可读存储介质,其中,所述非易失性计算机可读存储介质存储有计算机程序,所述计算机程序被至少一个处理器执行时,可实现如上述任一项方法实施例中的基于Transformer的源代码漏洞检测方法,例如,可实现以上描述的图1中的方法步骤S100至步骤S300。
作为示例,非易失性存储介质能够包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦ROM(EEPROM)或闪速存储器。易失性存储器能够包括作为外部高速缓存存储器的随机存取存储器(RAM)。通过说明并非限制,RAM可以以诸如同步RAM(SRAM)、动态RAM、(DRAM)、同步DRAM(SDRAM)、双数据速率SDRAM(DDR SDRAM)、增强型SDRAM(ESDRAM)、Synchl ink DRAM(SLDRAM)以及直接Rambus(兰巴斯)RAM(DRRAM)之类的许多形式得到。本文中所描述的操作环境的所公开的存储器组件或存储器旨在包括这些和/或任何其他适合类型的存储器中的一个或多个。
本发明的另一种实施例提供了一种计算机程序产品,所述计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被处理器执行时,可实现如上述任一项方法实施例中的基于Transformer的源代码漏洞检测方法,例如,可实现以上描述的图1中的方法步骤S100至步骤S300。
以上所描述的实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际需要选择其中的部分或者全部模块来实现本实施例方案的目的。
通过以上的实施例的描述,本领域的技术人员可以清楚地了解到各实施例可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件实现。基于这样的理解,上述技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存在于计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机装置(可以是个人计算机,服务器,或者网络装置等)执行各个实施例或者实施例的某些部分的方法。
除了其他之外,诸如“能够”、“能”、“可能”或“可以”之类的条件语言除非另外具体地陈述或者在如所使用的上下文内以其他方式理解,否则一般地旨在传达特定实施方式能包括(然而其他实施方式不包括)特定特征、元件和/或操作。因此,这样的条件语言一般地还旨在暗示特征、元件和/或操作对于一个或多个实施方式无论如何都是需要的或者一个或多个实施方式必须包括用于在有或没有输入或提示的情况下判定这些特征、元件和/或操作是否被包括或者将在任何特定实施方式中被执行的逻辑。
已经在本文中在本说明书和附图中描述的内容包括能够提供一种基于Transformer的源代码漏洞检测方法、装置、计算机设备以及非易失性计算机可读存储介质的示例。当然,不能够出于描述本公开的各种特征的目的来描述元件和/或方法的每个可以想象的组合,但是可以认识到,所公开的特征的许多另外的组合和置换是可能的。因此,显而易见的是,在不脱离本公开的范围或精神的情况下能够对本公开做出各种修改,但是,所有这些各种修改都应属于本发明所附权利要求的保护范围。此外,或在替代方案中,本公开的其他实施例从对本说明书和附图的考虑以及如本文中所呈现的本公开的实践中可能是显而易见的。意图是,本说明书和附图中所提出的示例在所有方面被认为是说明性的而非限制性的。尽管在本文中采用了特定术语,但是它们在通用和描述性意义上被使用并且不用于限制的目的。

Claims (10)

1.一种基于Transformer的源代码漏洞检测方法,其特征在于,包括:
获取待检测的源代码数据;
将待检测的所述源代码数据转化为自然语言的待检测文本;
将所述待检测文本输入预设的Transformer漏洞检测模型进行检测分析,生成所述源代码数据的漏洞检测结果。
2.根据权利要求1所述的基于Transformer的源代码漏洞检测方法,其特征在于,所述将所述待检测文本输入预设的Transformer漏洞检测模型进行检测分析,生成所述源代码数据的漏洞检测结果,包括:
预先采集初始源代码漏洞检测样本,对所述初始源代码漏洞检测样本进行预处理后,生成目标源代码漏洞检测样本;
根据所述目标源代码漏洞检测样本对预先构建的初始Transformer漏洞检测模型进行训练,生成目标Transformer漏洞检测模型;
将所述待检测文本输入所述目标Transformer漏洞检测模型进行检测分析,生成所述源代码数据的漏洞检测结果。
3.根据权利要求2所述的基于Transformer的源代码漏洞检测方法,其特征在于,所述预先采集初始源代码漏洞检测样本,对所述初始源代码漏洞检测样本进行预处理后,生成目标源代码漏洞检测样本,其中,所述预处理包括分词、去除停用词、建立词汇表。
4.根据权利要求3所述的基于Transformer的源代码漏洞检测方法,其特征在于,所述根据所述目标源代码漏洞检测样本对预先构建的初始Transformer漏洞检测模型进行训练,生成目标Transformer漏洞检测模型,包括:
对所述目标源代码漏洞检测样本进行数据集划分,划分后生成训练集、验证集以及测试集;
预先基于Transformer神经网络构建初始Transformer漏洞检测模型,根据所述训练集对所述初始Transformer漏洞检测模型进行训练,并根据所述验证集对所述初始Transformer漏洞检测模型进行验证调整,并根据所述测试集对所述初始Transformer漏洞检测模型进行测试评估;
获取测试评估结果,当检测到所述测试评估结果满足预设的要求后,生成目标Transformer漏洞检测模型。
5.根据权利要求4所述的基于Transformer的源代码漏洞检测方法,其特征在于,所述对所述目标源代码漏洞检测样本进行数据集划分,划分后生成训练集、验证集以及测试集,包括:
对所述目标源代码漏洞检测样本进行数据集划分,划分后生成60%训练集、20%验证集以及20%测试集。
6.根据权利要求5所述的基于Transformer的源代码漏洞检测方法,其特征在于,所述将所述待检测文本输入所述目标Transformer漏洞检测模型进行检测分析,生成所述源代码数据的漏洞检测结果之后,包括:
基于所述漏洞检测结果,生成所述源代码数据的修复建议。
7.根据权利要求6所述的基于Transformer的源代码漏洞检测方法,其特征在于,所述将所述待检测文本输入所述目标Transformer漏洞检测模型进行检测分析,生成所述源代码数据的漏洞检测结果之后,还包括:
基于所述漏洞检测结果,对所述目标Transformer漏洞检测模型进行模型迭代。
8.一种基于Transformer的源代码漏洞检测装置,其特征在于,包括:
获取模块,用于获取待检测的源代码数据;
转化模块,用于将待检测的所述源代码数据转化为自然语言的待检测文本;
漏洞检测模块,用于将所述待检测文本输入预设的Transformer漏洞检测模型进行检测分析,生成所述源代码数据的漏洞检测结果。
9.一种计算机设备,其特征在于,所述计算机设备包括至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器上存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行时,可实现如权利要求1-7任一项所述的基于Transformer的源代码漏洞检测方法。
10.一种非易失性计算机可读存储介质,其特征在于,所述非易失性计算机可读存储介质存储有计算机程序,所述计算机程序被至少一个处理器执行时,可实现如权利要求1-7任一项所述的基于Transformer的源代码漏洞检测方法。
CN202310712146.8A 2023-06-15 2023-06-15 基于Transformer的源代码漏洞检测方法、装置、计算机设备及介质 Pending CN116595541A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310712146.8A CN116595541A (zh) 2023-06-15 2023-06-15 基于Transformer的源代码漏洞检测方法、装置、计算机设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310712146.8A CN116595541A (zh) 2023-06-15 2023-06-15 基于Transformer的源代码漏洞检测方法、装置、计算机设备及介质

Publications (1)

Publication Number Publication Date
CN116595541A true CN116595541A (zh) 2023-08-15

Family

ID=87590054

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310712146.8A Pending CN116595541A (zh) 2023-06-15 2023-06-15 基于Transformer的源代码漏洞检测方法、装置、计算机设备及介质

Country Status (1)

Country Link
CN (1) CN116595541A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117235744A (zh) * 2023-11-14 2023-12-15 中关村科学城城市大脑股份有限公司 源文件上线方法、装置、电子设备和计算机可读介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117235744A (zh) * 2023-11-14 2023-12-15 中关村科学城城市大脑股份有限公司 源文件上线方法、装置、电子设备和计算机可读介质
CN117235744B (zh) * 2023-11-14 2024-02-02 中关村科学城城市大脑股份有限公司 源文件上线方法、装置、电子设备和计算机可读介质

Similar Documents

Publication Publication Date Title
US10452978B2 (en) Attention-based sequence transduction neural networks
US11468324B2 (en) Method and apparatus with model training and/or sequence recognition
US11709854B2 (en) Artificial intelligence based smart data engine
US20190130308A1 (en) Learning the structure of hierarchical extraction models
US20090217246A1 (en) Evaluating Software Programming Skills
Plepi et al. Context transformer with stacked pointer networks for conversational question answering over knowledge graphs
Kaeck et al. Stochastic Volatility Jump‐Diffusions for European Equity Index Dynamics
Wen et al. Robust least squares support vector machine based on recursive outlier elimination
CN116595541A (zh) 基于Transformer的源代码漏洞检测方法、装置、计算机设备及介质
JP2021039501A (ja) 翻訳装置、翻訳方法及びプログラム
CN113111908A (zh) 一种基于模板序列或词序列的bert异常检测方法及设备
Masdemont et al. Haar wavelets-based approach for quantifying credit portfolio losses
CN115526234A (zh) 基于迁移学习的跨域模型训练与日志异常检测方法及设备
Lataniotis Data-driven uncertainty quantification for high-dimensional engineering problems
US20220108680A1 (en) Text-to-speech using duration prediction
Nachman et al. Elsa: enhanced latent spaces for improved collider simulations
Sharma et al. Lerna: transformer architectures for configuring error correction tools for short-and long-read genome sequencing
Zhu et al. Pair‐switching rerandomization
CN113627159A (zh) 纠错模型的训练数据确定方法、装置、介质及产品
Özcan et al. Evaluating MFCC-based speaker identification systems with data envelopment analysis
Greselin et al. Practice oriented and Monte Carlo based estimation of the value-at-risk for operational risk measurement
Bartalotti et al. Bootstrap confidence intervals for sharp regression discontinuity designs
CN114913871A (zh) 目标对象分类方法、系统、电子设备及存储介质
CN114780721A (zh) 一种基于深度学习的交易对手识别方法、装置及电子设备
Li et al. A deep learning approach of financial distress recognition combining text

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