CN115758379A - 一种基于迁移学习的跨语言编译器漏洞挖掘方法和装置 - Google Patents

一种基于迁移学习的跨语言编译器漏洞挖掘方法和装置 Download PDF

Info

Publication number
CN115758379A
CN115758379A CN202211460458.6A CN202211460458A CN115758379A CN 115758379 A CN115758379 A CN 115758379A CN 202211460458 A CN202211460458 A CN 202211460458A CN 115758379 A CN115758379 A CN 115758379A
Authority
CN
China
Prior art keywords
sequence
model
program
training
language
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
CN202211460458.6A
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.)
Institute of Software of CAS
Original Assignee
Institute of Software of CAS
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 Institute of Software of CAS filed Critical Institute of Software of CAS
Priority to CN202211460458.6A priority Critical patent/CN115758379A/zh
Publication of CN115758379A publication Critical patent/CN115758379A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明涉及一种基于迁移学习的跨语言编译器漏洞挖掘方法和装置。该方法的步骤包括:1)计算源编程语言数据DS和目标编程语言数据DT的分布差值D及修正正则项L;2)根据修正正则项L以及源语言序列SS和目标语言序列ST之间的差异对预训练模型MS进行修正,从而得到修正后的模型MS ;3)对MS 利用目标语言序列ST进行微调训练,得到模型MT;4)根据模型MT生成目标语言程序作为样例,进行模糊测试以挖掘漏洞。本发明为了解决编译器模糊测试中测试样例生成的时效性和有效性问题,提出了预训练模型的优化、复用技术以及测试样例生成方法。本发明可以提高漏洞挖掘人员在生成目标语言作为测试样例时的速度和样本数量,进而提高针对编译器的漏洞挖掘能力。

Description

一种基于迁移学习的跨语言编译器漏洞挖掘方法和装置
技术领域
本发明涉及信息安全技术领域,具体涉及一种基于迁移学习的跨语言编译器漏洞挖掘方法和装置。
背景技术
随着计算机行业的发展,计算机软件愈发成为社会生活和行业生产重要的环节和资产。而软件的安全事件层出不穷,对社会安全稳定造成严重威胁,软件的安全性也因此愈发重要。编译器作为核心基础软件,支撑着其他绝大多数软件的稳定使用,其安全性也尤为重要。Nicholas等发现的“木马源”(Trojan Source)漏洞是编译器漏洞威胁全球软件代码的典型案例。该漏洞存在于Unicode中,能通过重排字符,影响大多数编译器的逻辑顺序,从而几乎影响所有计算机语言编写的软件(Boucher N,Anderson R.Trojan Source:Invisible Vulnerabilities[J].arXiv preprint arXiv:2111.00169,2021)。
目前,基于学习的模糊测试是挖掘编译器漏洞的常见方法之一。由于编译器的代码规模庞大,复杂性高。模糊测试在挖掘编译器漏洞时,拥有快速且有效的优势。目前,模糊测试通常采用了基于学习的测试样例生成方法,该技术通过训练神经网络来不断生成新的程序测例,作为编译器模糊测试的输入来观察该程序测例是否导致编译器异常。Godefroid等通过训练RNN用以生成格式良好的PDF文件,以此为测例来测试edge上的PDF解析器(Godefroid,P.;Peleg,H.;and Singh,R.2017.Learn&Fuzz:Machine learning for inputfuzzing.In ASE’17)。而Liu等利用训练SequenceToSequence模型,提出了模糊测试工具DEEPFUZZ,该工具能够自动并持续地生成格式良好的C程序,并且成功地测试出了GCC所存在的8个漏洞。
基于学习的测试样例生成方法虽然有效,但仍然存在如下两点问题:首先模型的训练效果受到训练集质量的影响。Godefroid的工作得到edge官方开发人员的支持,从而得到了大量官方人员提供的样例用以训练。Liu用以训练的C语言程序也是GCC测试套件中所收集的。然而并非所有编译器或虚拟机引擎的程序测例都有高质量的测试套件作为训练集,这无疑会使得生成效果大打折扣。其次,模型的训练时间开销很大,想得到更好的模型,需要几十个小时以上的训练时间,还要花费大量精力对模型的参数进行调优。在这种情况下,为了生成测例的时间开销远远高于测试和挖掘漏洞的花销。
迁移学习的特点正好可以弥补传统基于学习的模糊测试方法存在的问题,迁移学习在目标数据集数据质量不高的情况下,仍然能够取得良好的训练效果,并且利用预训练模型可以缩短训练的时长。利用迁移学习来快速训练生成模型,可以提高测例生成和漏洞挖掘的效率及有效性。
发明内容
本发明的目的在于针对现有问题,提供一种基于迁移学习的跨语言编译器漏洞挖掘方法和装置。
本发明采用技术方案:
一种基于迁移学习的跨语言编译器漏洞挖掘方法,其包括以下步骤:
1)选择基于学习生成模糊测试样例的模型作为预训练模型,称为MS,在此基础上选取源语言数据集和目标语言数据集,将其序列化为源语言序列SS和目标语言序列ST,并计算两个序列的距离差值D和模型的修正正则项L;
2)对于源语言的预训练模型MS,根据所得到的修正正则项L,以及序列SS和ST之间的差异对预训练模型MS进行修正,从而得到修正后的模型MS’;
3)对经过修正的MS’,利用目标语言序列ST进行微调训练,最终得到生成模型MT
4)利用模型MT生成代码,结合种子程序生成目标语言程序作为测试样例,利用该测试样例进行模糊测试以挖掘漏洞。
进一步地,上述步骤1)在开源平台上选择已公开的、基于学习生成模糊测试样例的模型作为预训练模型,在开源平台上选择的模型称为预训练模型MS,该模型所生成的源代码程序语言称为“源语言”。确定待检测的目标编译器,该编译器所编译的程序语言称为“目标语言”。从漏洞信息发布平台或官方测试套件中挑选一定数量的源语言程序作为源语言数据集DS,目标语言程序作为目标语言数据集DT。将DS和DT内的每个程序都视为一个token(词元)序列,将所有程序拼接称为一个大的序列SS和ST。并计算两个序列的距离差值D和修正正则项L。
进一步地,所述计算两个序列的距离差值D和修正正则项L,包括以下步骤:
a)用最大均值差异来描述两个序列的距离差值D:
Figure BDA0003955305420000021
其中最大均值差异(MMD)是用来度量两个不同但相关的随机变量分布的距离,即序列SS,ST中元素ss和st之间距离。公式中
Figure BDA0003955305420000022
函数即将样本ss和st映射到统一空间的投影函数,然后计算两个分布的样本在
Figure BDA0003955305420000033
函数上的均值之和,再求差。
b)利用其距离差值D来计算损失函数的修正正则项L:
L=Lc+0.25*MMD2(Ss,St)
其中LC是预训练模型自身的损失函数,代表了输出样本和真实样本之间的差异,而MMD代表了源域和目标域样本之间的差异。
进一步地,上述步骤2)将预训练模型进行一个修正,修正后的模型MS’具备一些程序语言的共性特点,能够更好地拟合目标语言。其中预训练模型Ms为序列对序列(SequenceToSequence)模型。此模型由两个循环神经网络(RNN)的变体长短期记忆人工神经网络(LSTM)组成,分别为编码器和解码器。其中编码器将一个输入序列处理为一个固定维度的向量c表示,该向量隐藏了此输入序列的记忆信息,解码器利用向量c来生成一个输出序列。每个LSTM是由隐藏状态h和可选输出y组成的神经网络,其运用在一个可变序列X=<x1,x2,x3,…,xT>上。本发明所提到的模型MS,MS’和MT均属于此种模型,模型的差异在于内部激活函数的不同。
进一步地,所述对预训练模型MS进行修正,包括以下步骤:
a)假设该LSTM在每个时序t,隐藏状态ht的更新函数为:ht=f(ht-1,xt),可选输出yt的更新函数为yt=Ф(ht)=g(ht-1,xt)。其中f,g是具体LSTM的非线性激活函数。其中xt表示在时序t上,LSTM模型得到的输入。
b)对于序列ST手工挑选含有不同代码语义的token,作为目标语言语义标准集set。其中不同语义的token是指程序语言中分属于宏定义,保留字,运算符,用户变量,注释等等具备不同语义的token。
c)将SS作为模型MS输入序列,对于输入序列X=<x1,x2,x3,…,xt>中的每一个xi,计算xi与目标语言语义标准集的距离d,修改ht的更新函数为
Figure BDA0003955305420000031
从而改变其权重。距离d的计算公式如下:
Figure BDA0003955305420000032
其中,N指语言语义标准集set内所有token集合,n代表集合内遍历选取的具体token。公式中
Figure BDA0003955305420000034
函数即将样本n和xi映射到统一空间的投影函数,然后计算两个分布的样本在
Figure BDA0003955305420000035
函数上的均值之和,再求差。
d)利用步骤1)中的得到的正则项L,修改yt的更新函数为yt=Ф(ht)=g(ht-1,xt)+L。
e)在利用源语言序列SS对预训练模型MS进行的训练中,应用上述修改,从而得到MS’。
进一步地,上述步骤3)是利用目标数据来训练最终的生成模型。训练过程中多组较短输入序列的训练效果优于单一输入序列的效果。因此将ST切分为多组长度相同的短序列。对生成模型进行训练包括以下步骤:
a)把目标语言序列ST划分为多个固定大小为p的训练序列作为模型的输入序列。通过序列划分,第i个训练序列为Xi=ST[i*p:(i+1)*p],其中S[i:j]是指S在索引i和j之间的子序列。
b)模型的输出序列为训练序列进行左移一位所得到的序列。即输出序列Oi=ST[i*p+1:(i+1)*p+1]。
c)将预训练模型MS’的最底层网络的参数固定不变,其余层数网络的参数作为训练的初始参数。
d)用训练序列Xi和输出序列Oi,对模型的激活函数f和g进行训练,得到模型MT,从而使得输入序列经过模型处理,能够减少和输出序列的交叉阈。实际学习目标是基于前缀序列得到下一个token的概率分布。
进一步地,上述步骤4)选取目标语言序列ST中的一个程序序列视为模糊测试的种子程序。并选择种子程序中的一个前缀序列,使用模型MT的编码器部分对该前缀进行处理,利用MT解码器和采样策略生成不断生成token序列,直到遇到终止情况,或者token序列长度超出上限。这些token最后组成一个新的程序代码片段,这个代码片段会基于替代策略,结合种子程序生成新的程序。以该程序作为输入,进行模糊测试。
进一步地,步骤4)中生成目标语言程序作为模糊测试样例包括以下步骤:
a)从测试集合DT中选取一个程序作为种子程序,随机选取整数bg作为起始行数,len作为前缀序列行数。将程序代码中[bg:bg+len]行作为前缀序列Sp,用于生成新的代码片段。将Sp作为模型MT的编码器的输入序列,并编码为一个隐藏该序列信息的向量c,模型MT的解码器利用c和初始y0=<bos>进行解码。其中<bos>代表目标语言程序的开始符号。
b)在解码过程中,每个LSTM在时序t都会根据c,h和yt输出一个概率分布p(yt+1|yt,…,y1,c)=g(ht,yt,c),其代表基于序列Sp和序列<yt,…,y1>而生成下一个token的概率分布。
c)对此概率分布进行top-3采样,即每次在分布概率中最高的三个token之中随机选取一个token作为yt+1,并且作为下一个时序t+1的LSTM输入。
d)直到按此方法生成<eos>,作为序列的结束符号,或者生成的token序列长度超过阈值,例如阈值可设置为3000。将生成的token序列作为代码片段,将生成代码片段的行数记为len2
e)将原始的种子程序的前缀序列后len2行代码删除,将新生成的代码片段插入到被删除的代码位置以替换原始的种子程序,得到新的测试程序。
f)将此新的测试程序作为目标编译器的输入,进行模糊测试。
一种基于迁移学习的跨语言编译器漏洞挖掘装置,其包括:
预处理模块,用于选择基于学习生成模糊测试样例的模型作为预训练模型MS,在此基础上选取源语言数据集和目标语言数据集,将其序列化为源语言序列SS和目标语言序列ST,并计算两个序列的距离差值D和模型的修正正则项L;
模型修正模块,用于对于源语言的预训练模型MS,根据所得到的修正正则项L,以及序列SS和ST之间的差异对预训练模型MS进行修正,从而得到修正后的模型MS’;
模型微调模块,用于对经过修正的MS’,利用基于目标数据集DT而生成的目标语言序列ST进行微调训练,最终得到生成模型MT
测试样例生成模块,用于根据生成模型MT生成目标语言程序作为测试样例,利用测试样例进行模糊测试以挖掘漏洞。
本发明的有益效果是:
本发明通过对已有的预训练生成模型进行调整,再利用目标语言进行训练得到目标语言的生成模型,从而生成程序测例并挖掘漏洞。可以有效地提高安全分析人员进行漏洞检测的效率和有效性。
本发明通过模型微调模块可以快速地训练针对目标语言程序的生成模型,并且此训练过程减少了对目标语言程序训练集质量的要求。因此可以有效地应用于不同编程语言的编译器的模糊测试测例生成,提高了语言无关的通用性,具备跨语言的特征。
附图说明
图1是基于迁移学习的跨语言编译器漏洞挖掘方法流程图;
图2是对预训练模型进行修正的流程图;
图3是利用预训练模型得到生成模型的流程图;
图4是利用生成模型来生成目标语言程序进行模糊测试的流程图。
具体实施方式
下面结合附图,通过实施例对本发明作进一步的说明,但不以任何方式限制本发明的范围。
本发明基于迁移学习和模糊测试的漏洞挖掘方法的总体流程如图1所示,以对一个C++编译器g++进行模糊测试,挖掘漏洞为例,具体包括:
1)选取源语言和目标语言数据集,将其序列化,并计算两个序列的距离差值D和修正正则项L。具体说明如下:
1a)在开源平台上选择已公开模型“DeepFuzz”作为预训练模型MS,C语言作为源语言,C++语言作为目标语言。在SARD测试库中分别收集C语言和C++语言的测试套件程序,并将测试程序分别拼接为大的序列SS和ST。转到1b)。
1b)用最大均值差异(MMD)来计算两个序列的距离差值D,公式如下:
Figure BDA0003955305420000061
并用损失函数来计算修正正则项L,公式如下:
L=Lc+0.25*MMD2(Ss,St)
2)对于源语言的预训练模型MS进行修正,从而得到MS。其流程图如图2所示,具体说明如下:
2a)对于序列ST手工挑选含有不同代码语义的token,作为目标语言语义标准集set。转到2b)。
2b)将SS作为模型MS输入序列,对于输入序列X=<x1,x2,x3,…,xt>中的每一个xi,计算xi与目标语言语义标准集的距离d,修改ht的更新函数为
Figure BDA0003955305420000062
从而改变其权重。转到2c)。其中距离d的计算公式如下:
Figure BDA0003955305420000063
其中,N指语言语义标准集set内所有token集合,n代表集合内遍历选取的具体token。公式中
Figure BDA0003955305420000064
函数即将样本n和xi映射到统一空间的投影函数,然后计算两个分布的样本在
Figure BDA0003955305420000065
函数上的均值之和,再求差。
2c)利用步骤1)中的得到的正则项L,修改yt的更新函数为yt=Ф(ht)=g(ht-1,xt)+L。转到2d)。
2d)在利用源语言序列SS对预训练模型MS进行的训练中,应用上述修改,从而得到MS’。
3)对修正后的预训练模型MS’,利用目标语言数据进行微调训练,得到模型MT。其流程如图3所示,具体说明如下:
3a)把目标语言序列ST划分为多个固定大小为p的训练序列作为模型的输入序列。第i个训练序列为Xi=ST[i*p:(i+1)*p]。转到3b)。
3b)把训练序列X的元素进行左移一位所得到的输出序列O,其中Oi=ST[i*p+1:(i+1)*p+1]。转到3c)。
3c)将预训练模型MS’的最低层网络的参数固定不变,其余层数网络的参数作为训练的初始参数。用训练序列Xi和输出序列Oi,对修正后的预训练模型MS’进行训练,得到模型MT
4)根据模型MT,生成的目标语言程序作为模糊测试样例,进行模糊测试以挖掘漏洞。其流程如图4所示,具体说明如下:
4a)从C++语言的测试套件中,选取一个程序作为种子程序。随机选取整数bg作为起始行数,len作为前缀序列行数。将程序代码中[bg:bg+len]行作为前缀序列SP。转到4b)。
4b)将前缀序列SP作为模型MT的编码器的输入序列并编码为一个向量c,模型MT的解码器进行利用向量c和初始y0=<bos>进行解码。转到4c)。
4c)在解码过程中,每个LSTM在时序t都会根据c,h和yt输出一个概率分布p(yt+1|yt,…,y1,c)=g(ht,yt,c)。对此概率分布进行top-3采样,即每次在出现概率最高的三个token之中随机选取一个token作为yt+1,并且作为下一个时序t+1的LSTM输入。转到4d)。
4d)重复4c)的解码过程,直到按此方法生成<eos>作为序列的结束符号,或者生成的token序列长度超过阈值3000。将生成的token序列作为代码片段,,记录代码片段的行数为len2。转到4e)。
4e)将原始的种子程序的前缀序列后len2行代码删除,将新生成的代码片段插入到被删除的代码位置以替换原始的种子程序,得到新的测试程序。转到4f)。
4f)将此新的测试程序作为该程序作为目标编译器g++的输入,进行模糊测试。并不断重复选取种子程序进行4a)的步骤,以进行反复的输入测试,直到手动停止模糊测试的过程。
本发明的另一实施例提供一种基于迁移学习的跨语言编译器漏洞挖掘装置,其包括:
预处理模块,用于选择基于学习生成模糊测试样例的模型作为预训练模型MS,在此基础上选取源语言数据集和目标语言数据集,将其序列化为源语言序列SS和目标语言序列ST,并计算两个序列的距离差值D和模型的修正正则项L;
模型修正模块,用于对于源语言的预训练模型MS,根据所得到的修正正则项L,以及序列SS和ST之间的差异对预训练模型MS进行修正,从而得到修正后的模型MS’;
模型微调模块,用于对经过修正的MS’,利用基于目标数据集DT而生成的目标语言序列ST进行微调训练,最终得到生成模型MT
测试样例生成模块,用于根据生成模型MT生成目标语言程序作为测试样例,利用测试样例进行模糊测试以挖掘漏洞。
其中各模块的具体实施过程参见前文对本发明方法的描述。
本发明的另一实施例提供一种计算机设备(计算机、服务器、智能手机等),其包括存储器和处理器,所述存储器存储计算机程序,所述计算机程序被配置为由所述处理器执行,所述计算机程序包括用于执行本发明方法中各步骤的指令。
本发明的另一实施例提供一种计算机可读存储介质(如ROM/RAM、磁盘、光盘),所述计算机可读存储介质存储计算机程序,所述计算机程序被计算机执行时,实现本发明方法的各个步骤。
以上公开的本发明的具体实施例,其目的在于帮助理解本发明的内容并据以实施,本领域的普通技术人员可以理解,在不脱离本发明的精神和范围内,各种替换、变化和修改都是可能的。本发明不应局限于本说明书的实施例所公开的内容,本发明的保护范围以权利要求书界定的范围为准。

Claims (10)

1.一种基于迁移学习的跨语言编译器漏洞挖掘方法,其步骤包括:
选择基于学习生成模糊测试样例的模型作为预训练模型MS,在此基础上选取源语言数据集和目标语言数据集,将其序列化为源语言序列SS和目标语言序列ST,并计算两个序列的距离差值D和模型的修正正则项L;
对于源语言的预训练模型MS,根据所得到的修正正则项L,以及序列SS和ST之间的差异对预训练模型MS进行修正,从而得到修正后的模型MS’;
对经过修正的MS’,利用基于目标数据集DT而生成的目标语言序列ST进行微调训练,最终得到生成模型MT
根据生成模型MT生成目标语言程序作为测试样例,利用测试样例进行模糊测试以挖掘漏洞。
2.如权利要求1所述的方法,其特征在于,所述源语言数据集和目标语言数据集的序列化方法是:将构成数据集的每个程序视为由token构成的序列,并将数据集里的多个程序直接拼接为一整个序列。
3.如权利要求1所述的方法,其特征在于,所述距离差值D用最大均值差异来计算,所述修正正则项L用损失函数来计算;其中D的计算公式如下:
Figure FDA0003955305410000011
其中最大均值差异MMD用来度量两个不同但相关的随机变量分布的距离,即序列SS,ST中元素ss和st之间距离;
Figure FDA0003955305410000013
函数是将样本ss和st映射到统一空间的投影函数;
L的计算公式如下:
L=Lc+0.25*MMD2(Ss,St)
其中L由预训练模型自身的损失函数Lc和MMD构成,自身的损失函数代表输出样本和真实样本之间的差异,MMD代表源域和目标域样本之间的差异。
4.如权利要求1所述的方法,其特征在于,所述对预训练模型MS进行修正,是通过序列之间的token差异和修正正则项L修改预训练模型中每个神经网络的激活函数,包括以下步骤:
计算输入序列中每个元素xi和目标语言语义标准集的距离d,并用该距离来修改隐藏状态ht的更新函数为:
Figure FDA0003955305410000012
利用修正正则项L,修改yt的更新函数为:
yt=Ф(ht)=g(ht-1,xt)+L。
5.如权利要求1所述的方法,其特征在于,所述对经过修正的MS’,利用基于目标数据集DT而生成的目标语言序列ST进行微调训练,包括:利用目标语言序列ST生成输入序列和输出序列进行训练,在训练过程中固定原模型最低层神经网络的参数,将其余层神经网络的参数作为初始化参数。
6.如权利要求1所述的方法,其特征在于,所述根据模型MT生成目标语言程序作为测试样例,包括:从目标语言的程序集合中随机选取种子程序及其中的前缀序列,利用前缀序列和生成模型MT得到代码片段,利用代码片段替换原种子程序中前缀序列的后续代码段。
7.如权利要求6所述的方法,其特征在于,所述根据模型MT生成目标语言程序作为测试样例,包括:
a)从测试集合DT中选取一个程序作为种子程序,随机选取整数bg作为起始行数,len作为前缀序列行数,将程序代码中[bg:bg+len]行作为前缀序列Sp,将Sp作为模型MT的编码器的输入序列,并编码为一个隐藏该序列信息的向量c,模型MT的解码器利用c和初始y0=<bos>进行解码;其中<bos>代表目标语言程序的开始符号;
b)在解码过程中,每个LSTM在时序t都根据c,h和yt输出一个概率分布p(yt+1|yt,…,y1,c)=g(ht,yt,c),其代表基于序列Sp和序列<yt,…,y1>而生成下一个token的概率分布;
c)对此概率分布进行top-3采样,即每次在分布概率中最高的三个token之中随机选取一个token作为yt+1,并且作为下一个时序t+1的LSTM输入;
d)直到按此方法生成<eos>作为序列的结束符号,或者生成的token序列长度超过阈值,将生成的token序列作为代码片段,将生成代码片段的行数记为len2
e)将原始的种子程序的前缀序列后len2行代码删除,将新生成的代码片段插入到被删除的代码位置以替换原始的种子程序,得到新的测试程序;
f)将此新的测试程序作为目标编译器的输入,进行模糊测试。
8.一种基于迁移学习的跨语言编译器漏洞挖掘装置,其特征在于,包括:
预处理模块,用于选择基于学习生成模糊测试样例的模型作为预训练模型MS,在此基础上选取源语言数据集和目标语言数据集,将其序列化为源语言序列SS和目标语言序列ST,并计算两个序列的距离差值D和模型的修正正则项L;
模型修正模块,用于对于源语言的预训练模型MS,根据所得到的修正正则项L,以及序列SS和ST之间的差异对预训练模型MS进行修正,从而得到修正后的模型MS’;
模型微调模块,用于对经过修正的MS’,利用基于目标数据集DT而生成的目标语言序列ST进行微调训练,最终得到生成模型MT
测试样例生成模块,用于根据生成模型MT生成目标语言程序作为测试样例,利用测试样例进行模糊测试以挖掘漏洞。
9.一种电子装置,其特征在于,包括存储器和处理器,所述存储器存储计算机程序,所述计算机程序被配置为由所述处理器执行,所述计算机程序包括用于执行权利要求1~7中任一项所述方法的指令。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储计算机程序,所述计算机程序被计算机执行时,实现权利要求1~7中任一项所述的方法。
CN202211460458.6A 2022-11-17 2022-11-17 一种基于迁移学习的跨语言编译器漏洞挖掘方法和装置 Pending CN115758379A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211460458.6A CN115758379A (zh) 2022-11-17 2022-11-17 一种基于迁移学习的跨语言编译器漏洞挖掘方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211460458.6A CN115758379A (zh) 2022-11-17 2022-11-17 一种基于迁移学习的跨语言编译器漏洞挖掘方法和装置

Publications (1)

Publication Number Publication Date
CN115758379A true CN115758379A (zh) 2023-03-07

Family

ID=85334248

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211460458.6A Pending CN115758379A (zh) 2022-11-17 2022-11-17 一种基于迁移学习的跨语言编译器漏洞挖掘方法和装置

Country Status (1)

Country Link
CN (1) CN115758379A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116991429A (zh) * 2023-09-28 2023-11-03 之江实验室 计算机程序的编译调优方法、装置和存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116991429A (zh) * 2023-09-28 2023-11-03 之江实验室 计算机程序的编译调优方法、装置和存储介质
CN116991429B (zh) * 2023-09-28 2024-01-16 之江实验室 计算机程序的编译调优方法、装置和存储介质

Similar Documents

Publication Publication Date Title
Lacomis et al. Dire: A neural approach to decompiled identifier naming
US11567759B1 (en) Generating source code from binary files
US11775414B2 (en) Automated bug fixing using deep learning
CN113190849B (zh) Webshell脚本检测方法、装置、电子设备及存储介质
CN109492355B (zh) 一种基于深度学习的软件抗分析方法和系统
CN112416806B (zh) 一种基于标准文档分析的js引擎模糊测试方法
EP3428828B1 (en) System and method for locating and correcting vulnerabilites in a target computer system
CN113158194B (zh) 一种基于多关系图网络的漏洞模型的构建方法及检测方法
CN115758379A (zh) 一种基于迁移学习的跨语言编译器漏洞挖掘方法和装置
Tian et al. Stealthy backdoors as compression artifacts
CN113822054A (zh) 基于数据增强的中文语法纠错方法及装置
US11349908B2 (en) Generating templates for deployment of system services
US20230409976A1 (en) Rewriting method and information processing apparatus
CN114285587A (zh) 域名鉴别方法和装置、域名分类模型的获取方法和装置
CN113282893B (zh) 源代码加固方法、装置、计算机设备和存储介质
WO2023101574A1 (en) Method and system for static analysis of binary executable code
Yu et al. Possibility of cost reduction by mutant clustering according to the clustering scope
CN112346126A (zh) 低级序断层的识别方法、装置、设备及可读存储介质
Li et al. Towards Tracing Code Provenance with Code Watermarking
Li et al. Speedneuzz: Speed up neural program approximation with neighbor edge knowledge
CN113569251B (zh) 一种基于汇编指令序列的二进制可执行文件脆弱性检测方法
CN117435511B (zh) 一种基于图神经网络的流量监测软件的测试方法、装置及存储介质
CN116527411B (zh) 数据安全智能防护模型构建方法、装置及协作平台
RU2705460C1 (ru) Способ определения потенциальных угроз безопасности информации на основе сведений об уязвимостях программного обеспечения
Abstreiter et al. Improving robustness for models of code via sparse graph neural networks

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