CN113139187A - 一种预训练语言模型的生成、检测方法及装置 - Google Patents
一种预训练语言模型的生成、检测方法及装置 Download PDFInfo
- Publication number
- CN113139187A CN113139187A CN202110436623.3A CN202110436623A CN113139187A CN 113139187 A CN113139187 A CN 113139187A CN 202110436623 A CN202110436623 A CN 202110436623A CN 113139187 A CN113139187 A CN 113139187A
- Authority
- CN
- China
- Prior art keywords
- api
- language model
- sequence
- api instruction
- instruction
- 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.)
- Granted
Links
- 238000012549 training Methods 0.000 title claims abstract description 104
- 238000000034 method Methods 0.000 title claims abstract description 70
- 239000013598 vector Substances 0.000 claims description 49
- 238000001514 detection method Methods 0.000 claims description 43
- 108091026890 Coding region Proteins 0.000 claims description 33
- 230000000873 masking effect Effects 0.000 claims description 23
- 238000013145 classification model Methods 0.000 claims description 19
- 238000004364 calculation method Methods 0.000 claims description 8
- SPBWHPXCWJLQRU-FITJORAGSA-N 4-amino-8-[(2r,3r,4s,5r)-3,4-dihydroxy-5-(hydroxymethyl)oxolan-2-yl]-5-oxopyrido[2,3-d]pyrimidine-6-carboxamide Chemical compound C12=NC=NC(N)=C2C(=O)C(C(=O)N)=CN1[C@@H]1O[C@H](CO)[C@@H](O)[C@H]1O SPBWHPXCWJLQRU-FITJORAGSA-N 0.000 claims description 5
- 239000008186 active pharmaceutical agent Substances 0.000 description 231
- 238000007781 pre-processing Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 244000035744 Hura crepitans Species 0.000 description 2
- 230000002155 anti-virotic effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Debugging And Monitoring (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Bioinformatics & Computational Biology (AREA)
- Health & Medical Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- Evolutionary Biology (AREA)
Abstract
本发明实施例公开了一种预训练语言模型的生成、检测方法及装置,包括:获取多个训练用的动态API指令序列;分别对所获取的每个API指令序列按照预定的编码规则进行编码,得到多个API指令编码序列;根据所述多个API指令编码序列对预设的语言模型进行训练,得到预训练语言模型。
Description
技术领域
本发明涉及网络安全领域,尤其涉及一种预训练语言模型的生成、检测方法及装置。
背景技术
近些年来,在大量不法资金的助力下,黑灰产业蓬勃发展,市值已高达千亿元规模。在此基础上,黑客根据现有反病毒软件存在的漏洞,研发出各种逃避反病毒软件的工具。而如果不能正确识别恶意软件,就可能会导致恶意软件大肆传播,就会给整个社会和国家带来非常巨大的危害。所以,检测恶意软件就显得至关重要。
在检测恶意软件的应用中,早期通过特征码和人工规则的方法对软件进行静态检测。随着技术的发展,动态检测方法也开始崭露头角,它的本质是把软件放置沙箱中模拟运行,得到运行后的API指令序列(文本信息),然后通过一定的方法对API指令序列进行分析和检测。一些技术中,通过传统机器学习的方法来进行动态检测,即需要人工进行提取特征,然后使用SVM分类器进行分类。该方法存在着几个弊端,如人工提取特征不仅费时费力,很难满足模型快速迭代的需求,而且手动的特征工程很难提取到有效的组合特征;另外,上述方法仅仅利用了高质量的标注数据,而未对海量的无标注数据进行挖掘。
发明内容
为了解决上述技术问题,本公开提供了一种预训练语言模型的生成及装置,可以通过对API指令序列进行编码,以用于预训练语言模型。
本公开提供了一种检测方法及装置,可以利用预训练语言模型对恶意软件进行检测,提高网络安全能力。
本公开提供了一种预训练语言模型的生成方法,包括:
获取多个训练用的动态API指令序列;
分别对所获取的每个API指令序列按照预定的编码规则进行编码,得到多个API指令编码序列;
根据所述多个API指令编码序列对预设的语言模型进行训练,得到预训练语言模型。
一种示例性的实施例中,所述分别对所获取的每个API指令序列按照预定的编码规则进行编码,包括:
将所获取的每个API指令序列进行分段;其中,每段API指令序列中所含的API指令序列为单个相同的API连续序列;
将每段API指令序列分别按照预定的编码规则编码。
一种示例性的实施例中,所述将每段API指令序列分别按照预定的编码规则编码,包括:
对于每段API指令序列分别按照如下规则编码:
当该段中API指令出现1次时,将该段API指令序列编码为API_0;
当该段中API指令连续出现2至i次时,将该段API指令序列编码为API_1;
当该段中API连续出现i至j次时,将该段API指令序列编码为API_2;
当该段中API连续出现大于等于j时,将该段API指令序列编码为API_3;其中,i和j为正整数,i<j。
一种示例性的实施例中,所述预设的语言模型为BERT模型;
所述根据所述多个API指令编码序列对预设的语言模型进行训练,包括:
分别对每个API指令编码序列中预定比例的API指令编码进行遮蔽后输入BERT模型,通过BERT模型对遮蔽的API指令编码进行预测,以训练BERT模型;其中,对一个API指令编码序列中预定比例的API指令编码进行遮蔽包括:
在该API指令编码序列中,随机选择API指令编码序列中预定比例的API指令编码;
对于所选择的API指令编码,按照n-gram模型进行随机动态遮蔽:
n=1时,对于所选择的API指令编码进行随机动态遮蔽;
n大于1时,对于所选择的API指令编码及其相邻的n-1个API指令编码进行随机动态遮蔽;
n为1到5中任一个正整数,包括1和5;
其中,随机动态遮蔽是指随机按照多种预定模式中的一种进行遮蔽。
本公开还一种检测方法,其特征在于,包括:
获取待检测软件的动态API指令序列;
对所获取的动态API指令序列编码,得到待检测的API指令编码序列;
根据待检测的API指令编码序列和如上述任一示例性实施例中所得到的预训练语言模型,得到检测结果。
一种示例性的实施例中,所述根据待检测的API指令编码序列和如上述任一示例性实施例中所得到的预训练语言模型,得到检测结果,包括:
将API指令编码序列输入到上述任一示例性实施例中所得到的预训练语言模型,得到API向量;
将所得到的API向量输入到分类模型,得到分类结果;
其中,所述分类模型是在按照如上述任一示例性实施例中得到的预训练语言模型中增加全连接层得到的;所述分类模型通过以下方式训练:
将多个对训练用的动态API指令序列编码得到的API指令编码序列输入如上述任一示例性实施例中得到的预训练语言模型,得到多个带标签的API向量;通过所述多个带标签的API向量对所述分类模型进行训练。
一种示例性的实施例中,所述根据待检测的API指令编码序列和如上述任一示例性实施例中所得到的预训练语言模型,得到检测结果,包括:
将多个对训练用的动态API指令序列编码得到的API指令编码序列输入如上述任一示例性实施例中到的预训练语言模型,得到多个带标签的API向量;
将待检测的API指令编码序列输入到如上述任一示例性实施例中所得到的预训练语言模型,得到检测用的API向量;
将所述检测用的API对应的向量与所述多个带标签的多个向量进行相似度计算;
根据相似度的计算结果,确定所述待检测软件的恶意家族类别。
一种示例性的实施例中,所述根据相似度的计算结果,确定所述待检测软件的恶意家族类别,包括:
将相似度从大到小排列,确定相似度排在前K个的带标签的API向量;
根据标签和恶意家族种类的对应关系,确定所述相似度排在前K个的带标签的API向量所对应的恶意家族种类;
在所确定的恶意家族种类中,将出现次数最多的恶意家族种类作为所述待检测软件的恶意家族种类;其中,标签和恶意家族种类一一对应。
本公开还提供一种预训练语言模型的生成装置,包括:存储器和处理器;其特征在于:
所述存储器,用于保存用于预训练语言模型的生成的程序;
所述处理器,用于读取执行所述用于预训练语言模型的生成的程序,执行上述任一示例性实施例中所述的预训练语言模型的生成方法。
本公开还提供一种检测装置,包括:存储器和处理器;其特征在于:
所述存储器,用于保存用于检测的程序;
所述处理器,用于读取执行所述用于检测的程序,执行上述任一示例性实施例中所述的检测方法。
本公开还提供一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令被处理器执行时进行任一示例性实施例中所述的预训练语言模型的生成方法或检测方法中的操作。
与现有技术相比,本公开实施例公开一种预训练语言模型的生成方法和装置,包括:获取多个训练用的动态API指令序列;对所获取的每个API指令序列分别按照预定的编码规则进行编码,得到多个API指令编码序列;根据所述多个API指令编码序列对预设的语言模型进行训练,得到预训练语言模型。通过本公开的方案,通过对API指令编码,利用API指令编码序列训练得到预训练语言模型。
与现有技术相比,本公开实施例公开一种检测方法,包括:获取待检测软件的动态API指令序列;对所获取的动态API指令序列编码,得到待检测的API指令编码序列;根据待检测的API指令编码序列和上述实施例中任一项所述的方法所得到的预训练语言模型,得到检测结果。利用预训练语言模型对恶意软件进行检测,提高网络安全能力。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
图1为本发明实施例的预训练语言模型的生成方法流程图;
图2为本发明实施例的检测方法流程图;
图3为本发明实施例的预训练语言模型的生成装置示意图;
图4为本发明实施例的检测装置示意图。
具体实施方式
为使本公开的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
一些技术中,使用深度学习方法可以进行自动提取特征,并且使用预训练语言模型能够充分利用大规模的无标注数据进行学习。但由于部分软件产生的API指令序列较长,统计发现最长序列长度超过千万,但预训练语言模型的最大长度一般不能超过512。因此,使用深度学习方法需要先对原始的API指令序列进行处理。传统的预处理方法为向前截断、向后截断、随机截断,无论哪种方法只能保留较少长度的序列,绝大多数序列的丢失会影响后续模型的效果。本申请根据API指令序列数据的特点,对其进行有效的预处理,然后再对其构建预训练语言模型,最终将训练好后的模型微调从而对恶意软件进行分类,或者使用相似度来判断软件是否属于某一个指定恶意家族。本申请不仅可以直接应用在检测设备上,也可以应用在威胁情报内部生产中,即通过预训练语言模型得到准确有效的文件情报。本申请对于提高网络安全能力,具有一定的积极意义。
图1为本公开的预训练语言模型的生成方法流程图,如图1所示,包括步骤100-102:
步骤100.获取多个训练用的动态API指令序列;
步骤101.分别对所获取的每个API指令序列按照预定的编码规则进行编码,得到多个API指令编码序列;
步骤102.根据所述多个API指令编码序列对预设的语言模型进行训练,得到预训练语言模型。
在步骤100中,将多个软件在沙箱中模拟运行,每个软件运行可以得到一个动态API指令序列,将得到的多个软件所对应的多个动态API指令序列用于预训练语音模型的训练应用。
在步骤101中,通过对海量数据进行统计分析,发现在API指令序列中存在着大量连续且相同的API,针对API指令序列的数据特点,对原有API指令序列进行重新编码,得到多个API指令编码序列。
一种示例性的实施例中,所述分别对所获取的每个API指令序列按照预定的编码规则进行编码,包括:
将所获取的每个API指令序列进行分段;其中,每段API指令序列中所含的API指令序列为单个相同的API连续序列;
将每段API指令序列分别按照预定的编码规则编码。
一种示例性的实施例中,所述将每段API指令序列分别按照预定的编码规则编码,包括:对于每段API指令序列分别按照如下规则编码:
当该段中API指令出现1次时,将该段API指令序列编码为API_0;
当该段中API指令连续出现2至i次时,将该段API指令序列编码为API_1;
当该段中API连续出现i至j次时,将该段API指令序列编码为API_2;
当该段中API连续出现大于等于j时,将该段API指令序列编码为API_3;其中,i和j为正整数,i<j。例如:假设API指令序列为“A A B C C C C D D D D D D”;i为4,j为6,由于A连续出现了两次,故将连续的“A A”转换为A_1;B只连续出现1次,将B转化为B_0;C连续出现4次,故将“C C C C”转化为C_2;D连续出现6次,将“D D D D D D”转化为D_3。最终API指令序列“A A B C C C C D D D D D”编码后转化为“A_1 B_0 C_2 D_3”。
在步骤102中,根据所述多个API指令编码序列对预设的语言模型进行训练,得到预训练语言模型。
一种示例性的实施例中,所述预设的语言模型为BERT模型;
所述根据所述多个API指令编码序列对预设的语言模型进行训练,包括:
分别对每个API指令编码序列中预定比例的API指令编码进行遮蔽后输入BERT模型,通过BERT模型对遮蔽的API指令编码进行预测,以训练BERT模型;其中,对一个API指令编码序列中预定比例的API指令编码进行遮蔽包括:
在该API指令编码序列中,随机选择API指令编码序列中预定比例的API指令编码;
对于所选择的API指令编码,按照n-gram模型进行随机动态遮蔽:
n=1时,对于所选择的API指令编码进行随机动态遮蔽;
n大于1时,对于所选择的API指令编码及其相邻的n-1个API指令编码进行随机动态遮蔽;
n为1到5中任一个正整数,包括1和5;
其中,随机动态遮蔽是指随机按照多种预定模式中的一种进行遮蔽。
本实施例中,通过对原有API序列进行预处理,大大减小了原有序列的长度。并通过Masked Language Model目标任务在海量数据上进行预训练,获得了可以预测更加准确的预训练模型。
本公开还提供了一种检测方法,如图2所示,包括步骤200-202:
步骤200.获取待检测软件的动态API指令序列;
步骤201.对所获取的动态API指令序列编码,得到待检测的API指令编码序列;
步骤202.根据待检测的API指令编码序列和如上述实施中所述的预训练语言模型的生成方法所得到的预训练语言模型,得到检测结果。
在步骤200中,获取待检测软件的动态API指令序列。
在步骤201中,对所获取的动态API指令序列编码,得到待检测的API指令编码序列。在本实施例中,将所获取的待检测软件的动态API指令序列进行分段;其中,每段API指令序列中所含的API指令序列为单个相同的API连续序列;将每段API指令序列分别按照预定的编码规则编码。其中,将每段API指令序列分别按照预定的编码规则编码,包括:对于每段API指令序列分别按照如下规则编码:当该段中API指令出现1次时,将该段API指令序列编码为API_0;当该段中API指令连续出现2至i次时,将该段API指令序列编码为API_1;当该段中API连续出现i至j次时,将该段API指令序列编码为API_2;当该段中API连续出现大于等于j时,将该段API指令序列编码为API_3;其中,i和j为正整数,i<j。
在步骤202中,根据待检测的API指令编码序列和上述实施例中所述的预训练语言模型的生成方法所得到的预训练语言模型,得到检测结果。其中,该检测结果包括分类和恶意家族类别。分类检测结束后,可以执行显示或者继续检测恶意家族类别的操作步骤。其中,显示可以采用显示软件的显示分类结果或者恶意软件家族种类。分类检测结束后,若该分类结果为恶意家族时,可以执行检测恶意家族类别的操作步骤;当分类结果为恶意家族时,结束操作步骤,输出分类结果。
一种示例性的实施例中,所述根据待检测的API指令编码序列和上述实施例中任一项所述的方法所得到的预训练语言模型,得到检测结果,包括:
将API指令编码序列输入到上述实施例中任一项所述的预训练语言方法所得到的预训练语言模型,得到API向量;将所得到的API向量输入到分类模型,得到分类结果;其中,所述分类模型是在按照上述实施例中任一项所述的预训练语言方法得到的预训练语言模型中增加全连接层得到的;所述分类模型通过以下方式训练:将多个对训练用的动态API指令序列编码得到的API指令编码序列输入上述实施例中任一项所述的预训练语言方法得到的预训练语言模型,得到多个带标签的API向量;通过所述多个带标签的API向量对所述分类模型进行训练。在本实施例中,得到分类结果以后,也可以继续执行确定所述待检测软件的恶意家族类别的相关步骤。分类结果可以包括恶意和非恶意;当确定分类结果为恶意时,执行确定所述待检测软件的恶意家族类别的相关步骤;当确定分类结果为非恶意时,操作结束。该待检测软件的恶意家族类别的相关步骤包括:将待检测的API指令编码序列输入到上述实施例中任一项所述的预训练语言方法所得到的预训练语言模型,得到检测用的API向量;将所述检测用的API对应的向量与所述多个带标签的多个向量进行相似度计算;根据相似度的计算结果,确定所述待检测软件的恶意家族类别。
一种示例性的实施例中,所述分类模型是在按照上述实施例中任一项所述的预训练语言方法得到的预训练语言模型中增加全连接层得到的;分类模块指的是已有分类标签的API序列的基础上,将预训练之后的模型进行fine-tune,将预训练得到的API的向量表示和对应的标签作为输入,并在预训练之后的模型基础上添加全连接层后进行微调,从而得到最终的分类模型。使用该模型就能预测恶意软件的分类结果。一种示例性的实施例中,所述根据待检测的API指令编码序列和上述实施例中任一项所述的预训练语言方法所得到的预训练语言模型,得到检测结果,包括:将多个对训练用的动态API指令序列编码得到的API指令编码序列输入上述实施例中任一项所述的预训练语言方法得到的预训练语言模型,得到多个带标签的API向量;将待检测的API指令编码序列输入到上述实施例中任一项所述的预训练语言方法所得到的预训练语言模型,得到检测用的API向量;将所述检测用的API对应的向量与所述多个带标签的多个向量进行相似度计算;根据相似度的计算结果,确定所述待检测软件的恶意家族类别。
一种示例性的实施例中,所述根据相似度的计算结果,确定所述待检测软件的恶意家族类别,包括:将相似度从大到小排列,确定相似度排在前K个的带标签的API向量;根据标签和恶意家族种类的对应关系,确定所述相似度排在前K个的带标签的API向量所对应的恶意家族种类;在所确定的恶意家族种类中,将出现次数最多的恶意家族种类作为所述待检测软件的恶意家族种类;其中,标签和恶意家族种类一一对应。本实施例中,在已有恶意家族种类样本和对应的API指令序列的数据基础上,将预训练得到的API指令系列的每个词向量相加后平均得到API指令序列的向量。通过计算待判定的待检测的API指令序列向量与带标签的API指令序列向量的余弦相似度,得到前Top K相似的恶意软件家族种类,并将Top K中出现次数最多的恶意家族种类作为待检测软件的恶意家族种类。检测结束后,可以采用显示软件的显示分类结果或者恶意软件家族种类。
本实施例中,根据API指令序列数据的特点,对其进行有效的预处理,然后再对其构建预训练语言模型,最终将训练好后的模型微调从而对恶意软件进行分类,或者使用相似度来判断软件是否属于某一个指定恶意家族。本发明不仅可以直接应用在检测设备上,也可以应用在威胁情报生产上等其他场景中。对于提高网络安全能力,具有一定的积极意义。
本公开还提供了一种预训练语言模型的生成装置,包括:存储器301和处理器302;所述存储器,用于保存用于预训练语言模型的生成的程序;所述处理器,用于读取执行用于预训练语言模型的生成的程序,执行上述实施例中任一项的预训练语言模型的生成方法。
本公开还提供了一种检测装置,包括:存储器401和处理器402;所述存储器401,用于保存用于检测的程序;所述处理器402,用于读取执行所述用于检测的程序,执行上述实施例中任一项所述的检测方法。
本公开还提供了一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令被处理器执行时进行上述实施例中任一项所述的预训练语言模型的生成方法或上述实施例中任一项所述的检测方法中的操作。
一个示例性实施例,用于说明预训练语言模型的生成方法的实现过程,包括下述步骤501-503:
步骤501.获取多个训练用的动态API指令序列;
步骤502.分别对所获取的每个API指令序列按照预定的编码规则进行编码,得到多个API指令编码序列;
该步骤502的具体实现步骤可以包括:
步骤5021.将所获取的每个API指令序列进行分段;其中,每段API指令序列中所含的API指令序列为单个相同的API连续序列;
步骤5022.将每段API指令序列分别按照预定的编码规则编码,包括:
对于每段API指令序列分别按照如下规则编码:
当该段中API指令出现1次时,将该段API指令序列编码为API_0;
当该段中API指令连续出现2至i次时,将该段API指令序列编码为API_1;
当该段中API连续出现i至j次时,将该段API指令序列编码为API_2;
当该段中API连续出现大于等于j时,将该段API指令序列编码为API_3;其中,i和j为正整数,i<j。
步骤503.根据所述多个API指令编码序列对预设的语言模型进行训练,得到预训练语言模型,包括:
步骤5031.在该API指令编码序列中,随机选择API指令编码序列中预定比例的API指令编码;
步骤5032.对于所选择的API指令编码,按照n-gram模型进行随机动态遮蔽:
n=1时,对于所选择的API指令编码进行随机动态遮蔽;
n大于1时,对于所选择的API指令编码及其相邻的n-1个API指令编码进行随机动态遮蔽;
n为1到5中任一个正整数,包括1和5;
其中,随机动态遮蔽是指随机按照多种预定模式中的一种进行遮蔽。
步骤5033.预设的语言模型为BERT模型时,分别对每个API指令编码序列中预定比例的API指令编码进行遮蔽后输入BERT模型,通过BERT模型对遮蔽的API指令编码进行预测,以训练BERT模型。
一个示例性实施例,用于说明一种分类的检测方法的实现过程,包括下述步骤600-604:
步骤600.在预训练语言模型中增加全连接层得到初始分类模型;通过反复训练得到最终的分类模型,训练方式包括:
步骤6001.将多个对训练用的动态API指令序列编码得到的API指令编码序列输入预训练语言模型,得到多个带标签的API向量;
步骤6002.通过所述多个带标签的API向量对所述分类模型进行训练。
步骤601.获取待检测软件的动态API指令序列;
步骤602.对所获取的动态API指令序列编码,得到待检测的API指令编码序列;
步骤603.将API指令编码序列输入到预训练语言模型,得到API向量;
步骤604.将所得到的API向量输入到分类模型,得到分类结果。该分类模型中的分类结果包括是和否、恶意和非恶意、黑和白等。
一个示例性实施例,用于说明一种恶意家族类别的检测方法的实现过程,包括下述步骤700-704:
步骤700.获取待检测软件的动态API指令序列;
步骤701.对所获取的动态API指令序列编码,得到待检测的API指令编码序列;
步骤702.将多个对训练用的动态API指令序列编码得到的API指令编码序列输入如上述实施例中预训练语言方法得到的预训练语言模型,得到多个带标签的API向量;
步骤703.将待检测的API指令编码序列输入到如上述实施例中预训练语言方法所得到的预训练语言模型,得到检测用的API向量;
步骤704.将所述检测用的API对应的向量与所述多个带标签的多个向量进行相似度计算;
步骤705.根据相似度的计算结果,确定所述待检测软件的恶意家族类别,包括:
步骤7051.将相似度从大到小排列,确定相似度排在前K个的带标签的API向量;
步骤7052.根据标签和恶意家族种类的对应关系,确定所述相似度排在前K个的带标签的API向量所对应的恶意家族种类;
步骤7053.在所确定的恶意家族种类中,将出现次数最多的恶意家族种类作为所述待检测软件的恶意家族种类;其中,标签和恶意家族种类一一对应。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
Claims (11)
1.一种预训练语言模型的生成方法,其特征在于,包括:
获取多个训练用的动态API指令序列;
分别对所获取的每个API指令序列按照预定的编码规则进行编码,得到多个API指令编码序列;
根据所述多个API指令编码序列对预设的语言模型进行训练,得到预训练语言模型。
2.根据权利要求1所述的预训练语言模型的生成方法,其特征在于,所述分别对所获取的每个API指令序列按照预定的编码规则进行编码,包括:
将所获取的每个API指令序列进行分段;其中,每段API指令序列中所含的API指令序列为单个相同的API连续序列;
分别将每段API指令序列按照预定的编码规则编码。
3.根据权利要求2所述的预训练语言模型的生成方法,其特征在于,所述分别将每段API指令序列按照预定的编码规则编码,包括:
对于每段API指令序列分别按照如下规则编码:
当该段中API指令出现1次时,将该段API指令序列编码为API_0;
当该段中API指令连续出现2至i次时,将该段API指令序列编码为API_1;
当该段中API连续出现i至j次时,将该段API指令序列编码为API_2;
当该段中API连续出现大于等于j时,将该段API指令序列编码为API_3;其中,i和j为正整数,i<j。
4.根据权利要求1所述的预训练语言模型的生成方法,其特征在于,所述预设的语言模型为BERT模型;
所述根据所述多个API指令编码序列对预设的语言模型进行训练,包括:
分别对每个API指令编码序列中预定比例的API指令编码进行遮蔽后输入BERT模型,通过BERT模型对遮蔽的API指令编码进行预测,以训练BERT模型;其中,对一个API指令编码序列中预定比例的API指令编码进行遮蔽包括:
在该API指令编码序列中,随机选择API指令编码序列中预定比例的API指令编码;
对于所选择的API指令编码,按照n-gram模型进行随机动态遮蔽:
n=1时,对于所选择的API指令编码进行随机动态遮蔽;
n大于1时,对于所选择的API指令编码及其相邻的n-1个API指令编码进行随机动态遮蔽;
n为1到5中任一个正整数,包括1和5;
其中,随机动态遮蔽是指随机按照多种预定模式中的一种进行遮蔽。
5.一种检测方法,其特征在于,包括:
获取待检测软件的动态API指令序列;
对所获取的动态API指令序列编码,得到待检测的API指令编码序列;
根据待检测的API指令编码序列和如权利要求1-4中任一项所述的方法所得到的预训练语言模型,得到检测结果。
6.根据权利要求5所述的检测方法,其特征在于,所述根据待检测的API指令编码序列和如权利要求1-4中任一项所述的方法所得到的预训练语言模型,得到检测结果,包括:
将API指令编码序列输入到权利要求1-4中任一项所述的方法所得到的预训练语言模型,得到API向量;
将所得到的API向量输入到分类模型,得到分类结果;
其中,所述分类模型是在按照如权利要求1-4任一项所述的方法得到的预训练语言模型中增加全连接层得到的;所述分类模型通过以下方式训练:
将多个对训练用的动态API指令序列编码得到的API指令编码序列输入如权利要求1-4任一项所述的方法得到的预训练语言模型,得到多个带标签的API向量;通过所述多个带标签的API向量对所述分类模型进行训练。
7.根据权利要求5所述的检测方法,其特征在于,所述根据待检测的API指令编码序列和如权利要求1-4中任一项所述的方法所得到的预训练语言模型,得到检测结果,包括:
将多个对训练用的动态API指令序列编码得到的API指令编码序列输入如权利要求1-4任一项所述的方法得到的预训练语言模型,得到多个带标签的API向量;
将待检测的API指令编码序列输入到如权利要求1-4中任一项所述的方法所得到的预训练语言模型,得到检测用的API向量;
将所述检测用的API对应的向量与所述多个带标签的多个向量进行相似度计算;
根据相似度的计算结果,确定所述待检测软件的恶意家族类别。
8.根据权利要求7所述的检测方法,其特征在于,所述根据相似度的计算结果,确定所述待检测软件的恶意家族类别,包括:
将相似度从大到小排列,确定相似度排在前K个的带标签的API向量;
根据标签和恶意家族种类的对应关系,确定所述相似度排在前K个的带标签的API向量所对应的恶意家族种类;
在所确定的恶意家族种类中,将出现次数最多的恶意家族种类作为所述待检测软件的恶意家族种类;其中,标签和恶意家族种类一一对应。
9.一种预训练语言模型的生成装置,包括:存储器和处理器;其特征在于:
所述存储器,用于保存用于预训练语言模型的生成的程序;
所述处理器,用于读取执行所述用于预训练语言模型的生成的程序,执行权利要求1-4任一项所述的方法。
10.一种检测装置,包括:存储器和处理器;其特征在于:
所述存储器,用于保存用于检测的程序;
所述处理器,用于读取执行所述用于检测的程序,执行权利要求5-8任一项所述的方法。
11.一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令被处理器执行时进行如权利要求1-8任一项所述的方法中的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110436623.3A CN113139187B (zh) | 2021-04-22 | 2021-04-22 | 一种预训练语言模型的生成、检测方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110436623.3A CN113139187B (zh) | 2021-04-22 | 2021-04-22 | 一种预训练语言模型的生成、检测方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113139187A true CN113139187A (zh) | 2021-07-20 |
CN113139187B CN113139187B (zh) | 2023-12-19 |
Family
ID=76813313
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110436623.3A Active CN113139187B (zh) | 2021-04-22 | 2021-04-22 | 一种预训练语言模型的生成、检测方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113139187B (zh) |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106096405A (zh) * | 2016-04-26 | 2016-11-09 | 浙江工业大学 | 一种基于Dalvik指令抽象的Android恶意代码检测方法 |
CN108959924A (zh) * | 2018-06-12 | 2018-12-07 | 浙江工业大学 | 一种基于词向量和深度神经网络的Android恶意代码检测方法 |
CN109165510A (zh) * | 2018-09-04 | 2019-01-08 | 中国民航大学 | 基于双通道卷积神经网络的Android恶意应用程序检测方法 |
CN110135160A (zh) * | 2019-04-29 | 2019-08-16 | 北京邮电大学 | 软件检测的方法、装置及系统 |
CN110348214A (zh) * | 2019-07-16 | 2019-10-18 | 电子科技大学 | 对恶意代码检测的方法及系统 |
CN110704840A (zh) * | 2019-09-10 | 2020-01-17 | 中国人民公安大学 | 一种基于卷积神经网络cnn的恶意软件检测方法 |
CN111523117A (zh) * | 2020-04-10 | 2020-08-11 | 西安电子科技大学 | 一种安卓恶意软件检测和恶意代码定位系统及方法 |
CN111656350A (zh) * | 2018-01-25 | 2020-09-11 | 微软技术许可有限责任公司 | 恶意软件序列检测 |
CN111753290A (zh) * | 2020-05-26 | 2020-10-09 | 郑州启明星辰信息安全技术有限公司 | 软件类型的检测方法及相关设备 |
CN111881289A (zh) * | 2020-06-10 | 2020-11-03 | 北京启明星辰信息安全技术有限公司 | 分类模型的训练方法、数据风险类别的检测方法及装置 |
CN111914254A (zh) * | 2020-06-24 | 2020-11-10 | 中国科学院信息工程研究所 | 一种基于弱耦合sgan的恶意软件家族分类器生成方法、装置及可读存储介质 |
CN112163222A (zh) * | 2020-10-10 | 2021-01-01 | 哈尔滨工业大学(深圳) | 一种恶意软件检测方法及装置 |
CN112163217A (zh) * | 2020-09-25 | 2021-01-01 | 北京天融信网络安全技术有限公司 | 恶意软件变种识别方法、装置、设备及计算机存储介质 |
CN112464233A (zh) * | 2020-11-21 | 2021-03-09 | 西北工业大学 | 一种云平台上基于rnn的恶意软件检测方法 |
US10956477B1 (en) * | 2018-03-30 | 2021-03-23 | Fireeye, Inc. | System and method for detecting malicious scripts through natural language processing modeling |
-
2021
- 2021-04-22 CN CN202110436623.3A patent/CN113139187B/zh active Active
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106096405A (zh) * | 2016-04-26 | 2016-11-09 | 浙江工业大学 | 一种基于Dalvik指令抽象的Android恶意代码检测方法 |
CN111656350A (zh) * | 2018-01-25 | 2020-09-11 | 微软技术许可有限责任公司 | 恶意软件序列检测 |
US10956477B1 (en) * | 2018-03-30 | 2021-03-23 | Fireeye, Inc. | System and method for detecting malicious scripts through natural language processing modeling |
CN108959924A (zh) * | 2018-06-12 | 2018-12-07 | 浙江工业大学 | 一种基于词向量和深度神经网络的Android恶意代码检测方法 |
CN109165510A (zh) * | 2018-09-04 | 2019-01-08 | 中国民航大学 | 基于双通道卷积神经网络的Android恶意应用程序检测方法 |
CN110135160A (zh) * | 2019-04-29 | 2019-08-16 | 北京邮电大学 | 软件检测的方法、装置及系统 |
CN110348214A (zh) * | 2019-07-16 | 2019-10-18 | 电子科技大学 | 对恶意代码检测的方法及系统 |
CN110704840A (zh) * | 2019-09-10 | 2020-01-17 | 中国人民公安大学 | 一种基于卷积神经网络cnn的恶意软件检测方法 |
CN111523117A (zh) * | 2020-04-10 | 2020-08-11 | 西安电子科技大学 | 一种安卓恶意软件检测和恶意代码定位系统及方法 |
CN111753290A (zh) * | 2020-05-26 | 2020-10-09 | 郑州启明星辰信息安全技术有限公司 | 软件类型的检测方法及相关设备 |
CN111881289A (zh) * | 2020-06-10 | 2020-11-03 | 北京启明星辰信息安全技术有限公司 | 分类模型的训练方法、数据风险类别的检测方法及装置 |
CN111914254A (zh) * | 2020-06-24 | 2020-11-10 | 中国科学院信息工程研究所 | 一种基于弱耦合sgan的恶意软件家族分类器生成方法、装置及可读存储介质 |
CN112163217A (zh) * | 2020-09-25 | 2021-01-01 | 北京天融信网络安全技术有限公司 | 恶意软件变种识别方法、装置、设备及计算机存储介质 |
CN112163222A (zh) * | 2020-10-10 | 2021-01-01 | 哈尔滨工业大学(深圳) | 一种恶意软件检测方法及装置 |
CN112464233A (zh) * | 2020-11-21 | 2021-03-09 | 西北工业大学 | 一种云平台上基于rnn的恶意软件检测方法 |
Non-Patent Citations (3)
Title |
---|
JINRONG BAI等: ""Malware detection method based on Dynamic Variable Length API Sequence "", 2019 12TH INTERNATIONAL SYMPOSIUM ON COMPUTATIONAL INTELLIGENCE AND DESIGN, pages 285 - 288 * |
冀甜甜: ""深度学习赋能的恶意代码攻防研究进展"", 计算机学报, vol. 44, no. 4, pages 669 - 695 * |
杨晨;宋晓宁;宋威;: "SentiBERT:结合情感信息的预训练语言模型", 计算机科学与探索, pages 1563 - 1570 * |
Also Published As
Publication number | Publication date |
---|---|
CN113139187B (zh) | 2023-12-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109117848B (zh) | 一种文本行字符识别方法、装置、介质和电子设备 | |
CN110222512B (zh) | 一种基于中间语言的软件漏洞智能检测与定位方法与系统 | |
CN112491796B (zh) | 一种基于卷积神经网络的入侵检测及语义决策树量化解释方法 | |
CN110598620B (zh) | 基于深度神经网络模型的推荐方法和装置 | |
CN107423278B (zh) | 评价要素的识别方法、装置及系统 | |
CN107844481B (zh) | 识别文本检错方法及装置 | |
CN111753290B (zh) | 软件类型的检测方法及相关设备 | |
CN110175851B (zh) | 一种作弊行为检测方法及装置 | |
CN110363220B (zh) | 行为类别检测方法、装置、电子设备和计算机可读介质 | |
CN112989358B (zh) | 提高基于深度学习的源代码漏洞检测健壮性的方法及装置 | |
CN112541476B (zh) | 一种基于语义特征提取的恶意网页识别方法 | |
CN111931179B (zh) | 基于深度学习的云端恶意程序检测系统及方法 | |
CN111866004B (zh) | 安全评估方法、装置、计算机系统和介质 | |
CN110968689A (zh) | 罪名及法条预测模型的训练方法以及罪名及法条预测方法 | |
CN112215236B (zh) | 文本识别方法、装置、电子设备及存储介质 | |
CN115100739B (zh) | 人机行为检测方法、系统、终端设备及存储介质 | |
CN111177731A (zh) | 一种基于人工神经网络的软件源代码漏洞检测方法 | |
CN112035345A (zh) | 一种基于代码片段分析的混合深度缺陷预测方法 | |
CN113177554B (zh) | 甲状腺结节识别与分割方法、系统、存储介质及设备 | |
CN111783812A (zh) | 违禁图像识别方法、装置和计算机可读存储介质 | |
CN111191238A (zh) | 一种webshell检测方法、终端设备及存储介质 | |
CN116595534A (zh) | 一种solidity智能合约的缺陷检测方法 | |
CN113139187B (zh) | 一种预训练语言模型的生成、检测方法及装置 | |
CN113836297B (zh) | 文本情感分析模型的训练方法及装置 | |
CN115080745A (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 |