CN117093997B - 基于平稳多臂老虎机的代码对抗样本生成方法 - Google Patents
基于平稳多臂老虎机的代码对抗样本生成方法 Download PDFInfo
- Publication number
- CN117093997B CN117093997B CN202311360685.6A CN202311360685A CN117093997B CN 117093997 B CN117093997 B CN 117093997B CN 202311360685 A CN202311360685 A CN 202311360685A CN 117093997 B CN117093997 B CN 117093997B
- Authority
- CN
- China
- Prior art keywords
- code
- action
- sample
- slot machine
- arm slot
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 36
- 230000009471 action Effects 0.000 claims abstract description 135
- 239000003795 chemical substances by application Substances 0.000 claims abstract description 65
- 238000002347 injection Methods 0.000 claims abstract description 58
- 239000007924 injection Substances 0.000 claims abstract description 58
- 238000001514 detection method Methods 0.000 claims abstract description 26
- 238000005070 sampling Methods 0.000 claims abstract description 14
- 238000012545 processing Methods 0.000 claims abstract description 7
- 238000009826 distribution Methods 0.000 claims description 33
- 230000000977 initiatory effect Effects 0.000 claims description 24
- 230000008569 process Effects 0.000 claims description 16
- 230000001965 increasing effect Effects 0.000 claims description 15
- 238000013145 classification model Methods 0.000 claims description 11
- 238000012549 training Methods 0.000 claims description 6
- 238000010801 machine learning Methods 0.000 claims description 4
- 239000000243 solution Substances 0.000 description 8
- 230000006872 improvement Effects 0.000 description 7
- 238000013135 deep learning Methods 0.000 description 3
- 238000013136 deep learning model Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
Classifications
-
- 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
- G06F21/563—Static detection by source code analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/25—Fusion techniques
- G06F18/259—Fusion by voting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/004—Artificial life, i.e. computing arrangements simulating life
- G06N3/006—Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Computer Security & Cryptography (AREA)
- Bioinformatics & Computational Biology (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Computer Hardware Design (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Virology (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于平稳多臂老虎机的代码对抗样本生成方法,包括:获取代码数据集,并创建多个代理对象;从代码数据集中获取一个第一代码样本;通过代码对抗样本生成模型中的攻击器,基于多个代理对象进行代理采样和代理投票处理,确定注入动作,并将注入动作注入第一代码样本,得到第二代码样本;对第二代码样本进行逃逸检测,并将逃逸成功的第二代码样本加入对抗样本集;在进行逃逸检测后,当第二代码样本不满足结束条件时,返回至获取第一代码样本的步骤获取新的第一代码样本,以进行迭代,直至获取到的新的第二代码样本满足结束条件时停止迭代,并获取停止迭代后的对抗样本集,本发明能够高效生成大量高质量的代码对抗样本。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种基于平稳多臂老虎机的代码对抗样本生成方法。
背景技术
在软件工程和软件安全领域,存在大量针对源代码、二进制代码和汇编代码等形式的代码进行分析和检测任务。使用深度学习模型来自动实现这些代码分析和检测任务能大大降低软件开发、测试和维护等方面的成本,因此基于深度学习模型的代码分析和检测技术得到了越来越多的研究和应用。但是深度学习模型很容易受到对抗样本的攻击,因此提高这类模型的鲁棒性已成为迫切需要解决的重要问题。对抗训练是提升基于深度学习的代码分类模型鲁棒性的重要手段,而高效生成其模型的代码对抗样本是其关键技术。现有技术中通常采用FastGradientSignMethod(FGSM):FGSM是一种基于梯度的对抗样本生成方法,它利用输入样本的梯度信息来生成对抗样本。该方法通过将输入数据的梯度方向与损失函数的符号相乘,生成一些小的扰动,从而使模型产生错误的预测结果。但在使用现有技术生成对抗样本时存在生成速度较慢、生成的样本质量较低的问题。
发明内容
为了解决上述技术问题,本发明实施例提出了一种基于平稳多臂老虎机的代码对抗样本生成方法,能够高效快速地生成大量代码对抗样本,且该代码对抗样本的质量高从而逃逸检测成功率高。
为了实现上述目的,本发明实施例提供了一种基于平稳多臂老虎机的代码对抗样本生成方法,包括:
获取代码数据集,并创建多个代理对象;其中,每一所述代理对象具有对应的初始动作集;
从所述代码数据集中获取一个第一代码样本;
通过代码对抗样本生成模型中的攻击器,基于多个所述代理对象进行代理采样和代理投票处理,确定注入动作,并将所述注入动作注入所述第一代码样本,得到第二代码样本;其中,所述攻击器是基于多臂老虎机算法配置得到的;
对所述第二代码样本进行逃逸检测,并将逃逸成功的第二代码样本加入对抗样本集;
在进行逃逸检测后,当所述第二代码样本不满足结束条件时,返回至获取所述第一代码样本的步骤获取新的第一代码样本,以进行迭代,直至获取到的新的第二代码样本满足所述结束条件时停止迭代,并获取停止迭代后的对抗样本集;
其中,所述代码对抗样本生成模型通过平稳性奖励更新策略进行更新,具体为:在每次迭代时,判断迭代次数是否满足延迟更新策略的条件,若满足,则基于所述逃逸检测的结果和多代理更新策略,对所述代码对抗样本生成模型的参数进行更新;
其中,所述停止迭代后的对抗样本集用于对代码分类模型进行训练,所述代码分类模型用于进行代码分类识别。
进一步的,所述多个代理对象通过如下步骤创建得到:
获取多个初始动作集;
将多个所述初始动作集分别与多台多臂老虎机一一对应;其中,所述初始动作集中的每个初始动作对应于一台单臂老虎机,每一所述单臂老虎机的概率分布被配置为一个对应的Beta分布,每一所述单臂老虎机配置有对应的成功次数和失败次数;
创建多个初始化代理对象,并将多个所述初始化代理对象分别与多台所述多臂老虎机一一对应,得到多个代理对象。
进一步的,所述基于多个所述代理对象进行代理采样和代理投票处理,确定注入动作,具体包括:
对每一所述代理对象进行代理采样得到初始动作;
分别对所有所述代理对象的初始动作进行代理投票,确定票数最高的初始动作以作为注入动作。
进一步的,所述延迟更新策略的条件包括:所述迭代次数是预设延迟更新回合数的倍数。
进一步的,所述多代理更新策略包括:
确定单代理更新策略;其中,所述单代理更新策略的奖励过程包括:若所述第二代码样本逃逸失败,则增加所述注入动作对应的单臂老虎机的失败次数;若所述第二代码样本逃逸成功,则增加所述注入动作对应的单臂老虎机的成功次数;
按照所述单代理更新策略,对多个所述代理对象中所有具有与所述注入动作相同的动作的代理对象进行奖励。
进一步的,所述单代理更新策略的奖励过程还包括:
若所述第二代码样本逃逸成功,则判断所述注入动作是否携带有内容:
当所述注入动作携带内容,且所述注入动作的原始内容为空、当前内容不为空时,创建一个新动作,将所述新动作加入与所述注入动作对应的代理对象;其中,所述新动作用于指示与所述注入动作相同的操作,所述新动作的内容为所述注入动作的当前内容,所述新动作对应于一台成功次数和失败次数均为1的单臂老虎机;
当所述注入动作携带内容,且所述注入动作的原始内容不为空时,增加与所述注入动作的父动作对应的单臂老虎机的成功次数;其中,所述父动作指示的操作与所述注入动作所指示的操作相同,且所述父动作的原始内容为空。
进一步的,所述在每次迭代时,判断迭代次数是否满足延迟更新策略的条件,若满足,则基于所述逃逸检测的结果和多代理更新策略,对所述代码对抗样本生成模型的参数进行更新,具体包括:
在每次迭代时:
获取历史奖励分布;
基于所述逃逸检测的结果以及多代理更新策略,获取与多个所述代理对象对应的本轮奖励分布;
根据所述本轮奖励分布更新所述历史奖励分布;
判断迭代次数是否满足延迟更新策略的条件,若满足,则:
基于本轮更新后的历史奖励分布,对所述代码对抗样本生成模型的参数进行更新。
进一步的,所述对所述第二代码样本进行逃逸检测,具体包括:
通过基于机器学习的代码检测器对所述第二代码样本进行逃逸检测。
综上,本发明具有以下有益效果:
采用本发明实施例,能有效提高代码对抗样本生成模型学习所有奖励分布的速度,提高代码对抗样本的生成效率,且提高生成的代码对抗样本能够顺利通过逃逸检测的概率,而采用大量基于代码对抗生成的对抗样本以作为训练数据集,来训练基于深度学习的代码分类模型,则能使得训练好的模型不容易被拥有微小扰动的对抗样本所欺骗,进一步还有助于提高代码分类模型的鲁棒性。
附图说明
图1是本发明提供的一种基于平稳多臂老虎机的代码对抗样本生成方法的一个实施例的流程示意图;
图2是本发明提供的一种基于平稳多臂老虎机的代码对抗样本生成方法的一个实施例的示意图;
图3是本发明提供的一种基于平稳多臂老虎机的代码对抗样本生成方法的另一个实施例的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本申请描述中,术语“第一”、“第二”、“第三”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”、“第三”等的特征可以明示或者隐含地包括一个或者更多个该特征。在本申请的描述中,除非另有说明,“多个”的含义是两个或两个以上。
在本申请的描述中,需要说明的是,除非另有定义,本发明所使用的所有的技术和科学术语与属于本的技术领域的技术人员通常理解的含义相同。本发明中说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明,对于本领域的普通技术人员而言,可以具体情况理解上述术语在本申请中的具体含义。
参见图1,是本发明提供的基于平稳多臂老虎机的代码对抗样本生成方法的一个实施例的流程示意图,该方法包括步骤S1至S5,具体如下:
S1,获取代码数据集,并创建多个代理对象;其中,每一所述代理对象具有对应的初始动作集;
S2,从所述代码数据集中获取一个第一代码样本;
S3,通过代码对抗样本生成模型中的攻击器,基于多个所述代理对象进行代理采样和代理投票处理,确定注入动作,并将所述注入动作注入所述第一代码样本,得到第二代码样本;其中,所述攻击器是基于多臂老虎机算法配置得到的;
S4,对所述第二代码样本进行逃逸检测,并将逃逸成功的第二代码样本加入对抗样本集;
S5,在进行逃逸检测后,当所述第二代码样本不满足结束条件时,返回至获取所述第一代码样本的步骤获取新的第一代码样本,以进行迭代,直至获取到的新的第二代码样本满足所述结束条件时停止迭代,并获取停止迭代后的对抗样本集;
其中,所述代码对抗样本生成模型通过平稳性奖励更新策略进行更新,具体为:在每次迭代时,判断迭代次数是否满足延迟更新策略的条件,若满足,则基于所述逃逸检测的结果和多代理更新策略,对所述代码对抗样本生成模型的参数进行更新;
其中,所述停止迭代后的对抗样本集用于对代码分类模型进行训练,所述代码分类模型用于进行代码分类识别。
需要说明的是,由于延迟更新策略和多代理更新策略均是具有平稳性质的更新策略,因此代码对抗样本生成模型是通过平稳性奖励更新策略进行更新的,再结合多臂老虎机算法,则称为平稳多臂老虎机(SMAB, Stationary Multi-Armed Bandit)算法。
可以理解的是,本实施例中,参见图2,以反馈的方式,通过平稳性奖励更新策略对代码对抗样本生成模型当中的攻击器进行更新,能使得代码对抗样本生成模型学习到能导致代码数据集中特定代码的错误分类的特定扰动序列,从而生成质量更高的对抗样本。
需要说明的是,代码分类识别是指对软件(例如二进制软件、恶意软件)进行代码的分类识别,当软件为恶意软件时,代码的分类识别结果用于指示恶意软件的组织分类识别结果。
示例性的,所述代码数据集中的代码为源代码或二进制代码。
示例性的,所述结束条件为所述代码数据集中的所有代码样本均逃逸成功或逃逸失败。
需要说明的是,所述初始动作集中的动作为预先定义的、且可修改代码的动作。
作为上述方案的改进,所述多个代理对象通过如下步骤创建得到:
获取多个初始动作集;
将多个所述初始动作集分别与多台多臂老虎机一一对应;其中,所述初始动作集中的每个初始动作对应于一台单臂老虎机,每一所述单臂老虎机的概率分布被配置为一个对应的Beta分布,每一所述单臂老虎机配置有对应的成功次数和失败次数;
创建多个初始化代理对象,并将多个所述初始化代理对象分别与多台所述多臂老虎机一一对应,得到多个代理对象。
具体的,在本发明实施例中,将每个单臂老虎机的概率分布建模为一个Beta分布,Beta分布的两个参数分别代表单臂老虎机中的臂的成功次数和失败次数,初始状态下二者均为1。本发明实施中的多臂老虎机使用二元组表示,M表示单臂老虎机集合,R表示奖励分布集合,每个奖励分布对应一台单臂老虎机。
作为上述方案的改进,所述基于多个所述代理对象进行代理采样和代理投票处理,确定注入动作,具体包括:
对每一所述代理对象进行代理采样得到初始动作;
分别对所有所述代理对象的初始动作进行代理投票,确定票数最高的初始动作以作为注入动作。
需要说明的是,若存在多个票数最高的初始动作,则将所述多个票数最高的初始动作中的第一个采样得到的初始动作作为注入动作。
示例性的,所述代理采样包括汤普森采样。
作为其中一种实施方式,所述代理投票具体为:
在所有代理各自动作集中选出候选动作:假设每个代理为各自的动作都维持了一个β分布,即一个β分布能反映一个代理中一个动作的成功次数和失败次数,每个代理都基于各自动作集的β分布使用汤普森采样(Thompson Sampling)算法进行采样,采样得到的动作即为当前代理的候选动作,记该动作得一票;
汇总所有候选动作后,统计票数,比较所有代理的候选动作,若不同代理的候选动作完全相同(包括动作执行的操作和注入的内容),则该候选动作的票数增加;
选出最终动作,投票结果中,若出现了某一候选动作的票数高于其他动作,则该候选动作作为本次投票过程的最终动作;若出现了多个候选动作票数相等,则选择第一个票数最高的候选动作作为最终投票出来的动作。
作为上述方案的改进,所述延迟更新策略的条件包括:所述迭代次数是预设延迟更新回合数的倍数。
作为上述方案的改进,所述多代理更新策略包括:
确定单代理更新策略;其中,所述单代理更新策略的奖励过程包括:若所述第二代码样本逃逸失败,则增加所述注入动作对应的单臂老虎机的失败次数;若所述第二代码样本逃逸成功,则增加所述注入动作对应的单臂老虎机的成功次数;
按照所述单代理更新策略,对多个所述代理对象中所有具有与所述注入动作相同的动作的代理对象进行奖励。
作为上述方案的改进,所述单代理更新策略的奖励过程还包括:
若所述第二代码样本逃逸成功,则判断所述注入动作是否携带有内容:
当所述注入动作携带内容,且所述注入动作的原始内容为空、当前内容不为空时,创建一个新动作,将所述新动作加入与所述注入动作对应的代理对象;其中,所述新动作用于指示与所述注入动作相同的操作,所述新动作的内容为所述注入动作的当前内容,所述新动作对应于一台成功次数和失败次数均为1的单臂老虎机;
当所述注入动作携带内容,且所述注入动作的原始内容不为空时,增加与所述注入动作的父动作对应的单臂老虎机的成功次数;其中,所述父动作指示的操作与所述注入动作所指示的操作相同,且所述父动作的原始内容为空。
在本发明实施例中,参见图3,多代理更新策略为;
A,初始化单代理对象,即在为单代理创建一个新的动作时,将动作对应单臂老虎机的两个参数(即“成功次数”和“失败次数”)均初始化为1;如上是一般的处理过程,而若存在具体输入的动作时,例如所述注入动作,则直接以所述注入动作对应的单臂老虎机的两个参数作为待处理的单代理对象对应的两个参数;
B,确定单代理更新策略的奖励过程,即在后续迭代过程中每次选择动作,若未能导致代码样本逃逸,则“失败次数”参数值增加;若能导致代码样本逃逸,则“成功次数”参数值增加;
其中,若能导致代码样本逃逸,则还要判断动作是否带有内容:
若动作带有内容且原始内容Corg为空、当前内容Cnow不为空,则为该单代理创建新动作,其中新动作的操作与原动作相同、内容为Cnow,新动作对应单臂老虎机的两个参数均初始化为1;
若动作带有内容且原始内容Corg不为空,则需要增加该动作的父动作对应单臂老虎机的“成功次数”参数值,其中该动作的父动作是指与该动作操作相同但Corg为空的动作。
该过程将增加动作对应单臂老虎机的“失败次数”参数值作为一个奖励过程,将增加动作对应单臂老虎机的“成功次数”参数值、创建新动作和奖励父动作作为另一个奖励过程,其中,奖励分布的公式如下:
其中,为当前单代理对象;
C,将单代理更新策略的奖励过程扩展为多代理更新策略的奖励过程;
即记录所有选择了某一动作的代理并对这些代理进行奖励,其中,奖励分布的公式如下:
其中A表示代理对象集合,ma表示当前代理选择的动作,M为某一动作。
作为上述方案的改进,所述在每次迭代时,判断迭代次数是否满足延迟更新策略的条件,若满足,则基于所述逃逸检测的结果和多代理更新策略,对所述代码对抗样本生成模型的参数进行更新,具体包括:
在每次迭代时:
获取历史奖励分布;
基于所述逃逸检测的结果以及多代理更新策略,获取与多个所述代理对象对应的本轮奖励分布;
根据所述本轮奖励分布更新所述历史奖励分布;
判断迭代次数是否满足延迟更新策略的条件,若满足,则:
基于本轮更新后的历史奖励分布,对所述代码对抗样本生成模型的参数进行更新。
需要说明的是,所述历史奖励分布是在本轮之前的每次迭代时获取到的所述本轮奖励分布所积累形成的,应理解,采用本实施例,可以使得每次的奖励均被记录下来,但又无需频繁对模型进行更新,从而兼顾模型更新的准确性与效率,进一步能解决多臂老虎机算法在更新参数时所存在的局限性。
作为上述方案的改进,所述对所述第二代码样本进行逃逸检测,具体包括:
通过基于机器学习的代码检测器对所述第二代码样本进行逃逸检测。
示例性的,所述基于机器学习的代码检测器包括EMBER(用于恶意软件分类的恶意软件和良性软件样本的代表性公共数据集)和MalConv 软件。
实施例一:
首先,定义符号或参数:X代表代码数据集,X a代表生成的对抗样本集,A代表代理集合,T代表延迟更新回合数,c代表当前攻击迭代次数;
然后,进行初始化工作,包括初始化代理集合A和每个代理的动作集合、初始化延迟更新回合数、初始化当前迭代攻击次数、X a置空等;
接着,从X中获取一个代码样本sample;
然后,针对sample,进行代理采样和代理投票过程,从所有代理选择的动作中选出最终的注入动作m*;
随后,攻击器把最终的注入动作m*应用到sample上之后,再判断sample是否成功逃逸,将成功逃逸的sample添加进X a,再结合多代理更新策略执行不同的奖励过程,此处的奖励并不会直接修改模型参数,而是积累对参数的修改以形成历史数据;
然后,当c能够整除T时,即满足执行延迟更新的条件,此时再依据历史数据更新模型参数;
最后,当所有样本均成功逃逸或失败逃逸时,结束迭代,获得X a。
综上,本发明具有以下有益效果:
采用本发明实施例,能有效提高代码对抗样本生成模型学习所有奖励分布的速度,提高代码对抗样本的生成效率,且提高生成的代码对抗样本能够顺利通过逃逸检测的概率,而采用大量基于代码对抗生成的对抗样本以作为训练数据集,来训练基于深度学习的代码分类模型,则能使得训练好的模型不容易被拥有微小扰动的对抗样本所欺骗,进一步还有助于提高代码分类模型的鲁棒性。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的硬件平台的方式来实现,当然也可以全部通过硬件来实施。基于这样的理解,本发明的技术方案对背景技术做出贡献的全部或者部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。
Claims (7)
1.一种基于平稳多臂老虎机的代码对抗样本生成方法,其特征在于,包括:
获取代码数据集,并创建多个代理对象;其中,每一所述代理对象具有对应的初始动作集;
从所述代码数据集中获取一个第一代码样本;
通过代码对抗样本生成模型中的攻击器,基于多个所述代理对象进行代理采样和代理投票处理,确定注入动作,并将所述注入动作注入所述第一代码样本,得到第二代码样本;其中,所述攻击器是基于多臂老虎机算法配置得到的;
对所述第二代码样本进行逃逸检测,并将逃逸成功的第二代码样本加入对抗样本集;
在进行逃逸检测后,当所述第二代码样本不满足结束条件时,返回至获取所述第一代码样本的步骤获取新的第一代码样本,以进行迭代,直至获取到的新的第二代码样本满足所述结束条件时停止迭代,并获取停止迭代后的对抗样本集;
其中,所述代码对抗样本生成模型通过平稳性奖励更新策略进行更新,具体为:在每次迭代时,判断迭代次数是否满足延迟更新策略的条件,若满足,则基于所述逃逸检测的结果和多代理更新策略,对所述代码对抗样本生成模型的参数进行更新;
其中,所述多代理更新策略包括:
确定单代理更新策略;其中,所述单代理更新策略的奖励过程包括:若所述第二代码样本逃逸失败,则增加所述注入动作对应的单臂老虎机的失败次数;若所述第二代码样本逃逸成功,则增加所述注入动作对应的单臂老虎机的成功次数;
按照所述单代理更新策略,对多个所述代理对象中所有具有与所述注入动作相同的动作的代理对象进行奖励;
其中,所述停止迭代后的对抗样本集用于对代码分类模型进行训练,所述代码分类模型用于进行代码分类识别。
2.如权利要求1所述的基于平稳多臂老虎机的代码对抗样本生成方法,其特征在于,所述多个代理对象通过如下步骤创建得到:
获取多个初始动作集;
将多个所述初始动作集分别与多台多臂老虎机一一对应;其中,所述初始动作集中的每个初始动作对应于一台单臂老虎机,每一所述单臂老虎机的概率分布被配置为一个对应的Beta分布,每一所述单臂老虎机配置有对应的成功次数和失败次数;
创建多个初始化代理对象,并将多个所述初始化代理对象分别与多台所述多臂老虎机一一对应,得到多个代理对象。
3.如权利要求1所述的基于平稳多臂老虎机的代码对抗样本生成方法,其特征在于,所述基于多个所述代理对象进行代理采样和代理投票处理,确定注入动作,具体包括:
对每一所述代理对象进行代理采样得到初始动作;
分别对所有所述代理对象的初始动作进行代理投票,确定票数最高的初始动作以作为注入动作。
4.如权利要求1所述的基于平稳多臂老虎机的代码对抗样本生成方法,其特征在于,所述延迟更新策略的条件包括:所述迭代次数是预设延迟更新回合数的倍数。
5.如权利要求1所述的基于平稳多臂老虎机的代码对抗样本生成方法,其特征在于,所述单代理更新策略的奖励过程还包括:
若所述第二代码样本逃逸成功,则判断所述注入动作是否携带有内容:
当所述注入动作携带内容,且所述注入动作的原始内容为空、当前内容不为空时,创建一个新动作,将所述新动作加入与所述注入动作对应的代理对象;其中,所述新动作用于指示与所述注入动作相同的操作,所述新动作的内容为所述注入动作的当前内容,所述新动作对应于一台成功次数和失败次数均为1的单臂老虎机;
当所述注入动作携带内容,且所述注入动作的原始内容不为空时,增加与所述注入动作的父动作对应的单臂老虎机的成功次数;其中,所述父动作指示的操作与所述注入动作所指示的操作相同,且所述父动作的原始内容为空。
6.如权利要求1所述的基于平稳多臂老虎机的代码对抗样本生成方法,其特征在于,所述在每次迭代时,判断迭代次数是否满足延迟更新策略的条件,若满足,则基于所述逃逸检测的结果和多代理更新策略,对所述代码对抗样本生成模型的参数进行更新,具体包括:
在每次迭代时:
获取历史奖励分布;
基于所述逃逸检测的结果以及多代理更新策略,获取与多个所述代理对象对应的本轮奖励分布;
根据所述本轮奖励分布更新所述历史奖励分布;
判断迭代次数是否满足延迟更新策略的条件,若满足,则:
基于本轮更新后的历史奖励分布,对所述代码对抗样本生成模型的参数进行更新。
7.如权利要求1所述的基于平稳多臂老虎机的代码对抗样本生成方法,其特征在于,所述对所述第二代码样本进行逃逸检测,具体包括:
通过基于机器学习的代码检测器对所述第二代码样本进行逃逸检测。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311360685.6A CN117093997B (zh) | 2023-10-20 | 2023-10-20 | 基于平稳多臂老虎机的代码对抗样本生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311360685.6A CN117093997B (zh) | 2023-10-20 | 2023-10-20 | 基于平稳多臂老虎机的代码对抗样本生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117093997A CN117093997A (zh) | 2023-11-21 |
CN117093997B true CN117093997B (zh) | 2024-02-20 |
Family
ID=88781587
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311360685.6A Active CN117093997B (zh) | 2023-10-20 | 2023-10-20 | 基于平稳多臂老虎机的代码对抗样本生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117093997B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112329930A (zh) * | 2021-01-04 | 2021-02-05 | 北京智源人工智能研究院 | 基于代理模型的对抗样本生成方法和装置 |
CN112989346A (zh) * | 2021-04-09 | 2021-06-18 | 鹏城实验室 | 对抗样本生成方法、装置、终端设备以及存储介质 |
CN113760358A (zh) * | 2021-08-30 | 2021-12-07 | 河北大学 | 一种面向源代码分类模型的对抗样本生成方法 |
CN115130098A (zh) * | 2022-06-27 | 2022-09-30 | 云南大学 | 一种针对恶意软件检测深度学习模型的动态后门攻击方法 |
US11593675B1 (en) * | 2019-11-29 | 2023-02-28 | Amazon Technologies, Inc. | Machine learning-based program analysis using synthetically generated labeled data |
CN116595528A (zh) * | 2023-07-18 | 2023-08-15 | 华中科技大学 | 对个性化推荐系统的投毒攻击方法及装置 |
-
2023
- 2023-10-20 CN CN202311360685.6A patent/CN117093997B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11593675B1 (en) * | 2019-11-29 | 2023-02-28 | Amazon Technologies, Inc. | Machine learning-based program analysis using synthetically generated labeled data |
CN112329930A (zh) * | 2021-01-04 | 2021-02-05 | 北京智源人工智能研究院 | 基于代理模型的对抗样本生成方法和装置 |
CN112989346A (zh) * | 2021-04-09 | 2021-06-18 | 鹏城实验室 | 对抗样本生成方法、装置、终端设备以及存储介质 |
CN113760358A (zh) * | 2021-08-30 | 2021-12-07 | 河北大学 | 一种面向源代码分类模型的对抗样本生成方法 |
CN115130098A (zh) * | 2022-06-27 | 2022-09-30 | 云南大学 | 一种针对恶意软件检测深度学习模型的动态后门攻击方法 |
CN116595528A (zh) * | 2023-07-18 | 2023-08-15 | 华中科技大学 | 对个性化推荐系统的投毒攻击方法及装置 |
Non-Patent Citations (3)
Title |
---|
Combining Generators of Adversarial Malware Examples to Increase Evasion Rate;Matousˇ Koza´ k;《arxiv:2304.07360v1》;第1-9页 * |
MAB-Malware: A Reinforcement Learning Framework for Blackbox Generation of Adversarial Malware;Wei Song.et;《ASIA CCS ’22,Session 8A: Machine Learning #2》;第990-1003页 * |
机器学习安全性问题及其防御技术研究综述;李盼;赵文涛;刘强;崔建京;殷建平;;计算机科学与探索(第02期);第171-184页 * |
Also Published As
Publication number | Publication date |
---|---|
CN117093997A (zh) | 2023-11-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Xiao et al. | Back‐propagation neural network on Markov chains from system call sequences: a new approach for detecting Android malware with system call sequences | |
US11645515B2 (en) | Automatically determining poisonous attacks on neural networks | |
CN109241740B (zh) | 恶意软件基准测试集生成方法及装置 | |
CN110263538B (zh) | 一种基于系统行为序列的恶意代码检测方法 | |
CN113961922A (zh) | 一种基于深度学习的恶意软件行为检测与分类系统 | |
Fan et al. | Machine learning for black-box fuzzing of network protocols | |
Du et al. | Digital Forensics as Advanced Ransomware Pre‐Attack Detection Algorithm for Endpoint Data Protection | |
US20190340614A1 (en) | Cognitive methodology for sequence of events patterns in fraud detection using petri-net models | |
CN114326655A (zh) | 工业机器人故障数据生成方法、系统、终端以及存储介质 | |
CN111753290A (zh) | 软件类型的检测方法及相关设备 | |
Geib et al. | Probabilistic Plan Recognition for Hostile Agents. | |
CN112766324A (zh) | 图像对抗样本检测方法、系统、存储介质、终端及应用 | |
CN115828264A (zh) | 智能合约漏洞检测方法、系统及电子设备 | |
Aghaei et al. | Automated CVE Analysis for Threat Prioritization and Impact Prediction | |
CN114285587B (zh) | 域名鉴别方法和装置、域名分类模型的获取方法和装置 | |
CN117093997B (zh) | 基于平稳多臂老虎机的代码对抗样本生成方法 | |
Gopali et al. | Vulnerability detection in smart contracts using deep learning | |
CN110581857A (zh) | 一种虚拟执行的恶意软件检测方法及系统 | |
Rozenberg et al. | A method for detecting unknown malicious executables | |
CN114021136A (zh) | 针对人工智能模型的后门攻击防御系统 | |
He et al. | Semi-supervised learning via DQN for log anomaly detection | |
Feng et al. | An Interpretable Model for Large-Scale Smart Contract Vulnerability Detection | |
Boussam et al. | Keep It Unsupervised: Horizontal Attacks Meet Simple Classifiers | |
CN113139187B (zh) | 一种预训练语言模型的生成、检测方法及装置 | |
CN113052314B (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 |