一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

面向API序列恶意软件检测模型的黑盒攻击与防御方法

2022-10-13 01:32:19 来源:中国专利 TAG:

面向api序列恶意软件检测模型的黑盒攻击与防御方法
技术领域
1.本发明涉及机器学习与信息安全技术领域,具体涉及一种面向api序列恶意软件检测模型的黑盒攻击与防御方法。


背景技术:

2.恶意软件指任何用于损害计算机、服务器或计算机网络的软件。恶意软件包括病毒、蠕虫、木马、勒索软件等多种形式。恶意软件是威胁个人、企业、国家信息安全的一个严重问题。与传统的网络威胁相比,恶意软件具有变种多、更新快、隐蔽性高等特点。因此,如何有效地检测恶意软件,是信息安全领域的一个重要的研究主题。
3.恶意软件的静态检测已经十分成熟,静态检测的优势在于不需要实际运行软件,因此检测的代价较小。但已经出现了很多方法对静态检测进行绕过,例如软件打包、代码混淆等技术。而api调用是软件动态运行过程中最重要的行为,因此分析api调用序列是实现恶意软件动态检测的重要手段。
4.在黑盒攻击方面,已经有人提出了基于gan的恶意软件攻击算法。gan即生成式对抗网络,是一种利用博弈的思想进行对抗从而提升模型性能的方法。gan同时训练一个生成器和一个判别器,其中生成器通过学习将噪声的分布映射为逼近于真实样本的对抗样本的分布,而判别器需要从混有真实样本和对抗样本的数据中将对抗样本鉴别出来。整个生成对抗网络的训练过程就是生成器不断模仿真实样本学习如何生成对抗样本,同时判别器不断从样本中找出对抗样本,直到生成器找到了能够迷惑判别器的方法。基于gan的恶意软件攻击算法基于替代检测器拟合黑盒分类器以逼近其决策边界的思路,能够绕过基于机器学习的黑盒检测模型,生成对抗样本。
5.然而,上述方法存在许多不足:(1) 假设的黑盒模型只检测api是否被调用(调用标为0,未调用标为1),过于简单和理想化,不满足实际情况;(2) 未能考虑到对api调用特征向量修改后,软件是否还存在恶意功能。


技术实现要素:

6.本发明提出了一种面向api序列恶意软件检测模型的黑盒攻击与防御方法,通过生成式对抗方法,对恶意api序列进行加噪,使黑盒模型无法对其正确分类,再用生成的对抗样本训练黑盒模型,提高黑盒模型的对该攻击的防御能力。
7.一种面向api序列恶意软件检测模型的黑盒攻击与防御方法,具体方法如下:(1) 面向黑盒的代理模型构建:由于被攻击模型是黑盒的,无法得知其具体模型结构和参数,因此通过构建泛化能力强的模型来模拟被攻击黑盒模型;(2) 基于扰动的生成模型构建:通过训练生成模型,在恶意软件的api序列中添加噪声api来对其进行扰动;(3) 对抗训练:通过对抗训练,使得代理模型能够更好地模拟被攻击模型,使得生成模型生成的恶意软件api序列能够更不容易被代理模拟检测出来;
(4) 模型的防御性训练:通过加入生成模型生成的恶意样本来对检测模型进行再训练,使得其对对抗样本具有更强的鲁棒性。
8.一种面向api序列恶意软件检测模型的黑盒攻击与防御方法,包括以下步骤:1) api序列抽取;2)构建面向黑盒的代理模型:3)构建生成模型,具体包括:将长度为n的api序列进行分割,将长度为n的api序列进行分割生成n个api子序列,子序列经过seq2seq框架后得到n个噪声api序列,再将n个噪声api序列插入到步骤1)获得长度为n的api序列中,获得对抗样本api序列;4)从恶意软件集中获取对抗训练的恶意样本,从良性软件集中获取良性样本,将对抗训练的恶意样本输入到步骤3)中生成模型中,得到对抗样本api序列,将对抗样本api序列和良性样本混合,作为训练集,输入到黑盒模型中,得到训练标签,利用训练集和训练标签训练步骤2)中的面向黑盒的代理模型中,根据代理模型损失函数更新面向黑盒的代理模型中的参数,采用面向黑盒的代理模型更新后的参数以及根据生成模型的损失函数更新生成模型中的参数,迭代更新,得到最终的生成模型;由于无法获得黑盒模型中的参数,所以采用代理模型学习黑盒模型分类后数据的方式,而生成模型在对抗训练的过程中,不断精确噪声插入的位置和数量,最终使黑盒模型的分辨准确率有显著的下降。
9.5)模型的防御性训练:步骤4)最终的生成模型生成对抗样本,输入到黑盒模型中,将黑盒模型未能正确分类的样本作为防御性训练的恶意样本,输入到黑盒模型中进行防御性训练,将训练后的黑盒模型对基于api序列恶意软件检测模型的黑盒攻击进行防御。经防御性训练后的黑盒模型增强了对对抗样本的识别能力,能够对此类攻击有良好的防御效能。
10.步骤(1)中,api序列抽取具体包括:采用沙箱对软件样本进行模拟运行,抽取得到该软件样本的api序列。
11.步骤2)中,所述的面向黑盒的代理模型(即基于lstm的代理模型的网络结构)依次包括:输入层、嵌入层、循环层以及输出分类层,所述的输出分类层依次包括:表征向量输出层、全连接层和sigmoid层。全连接层将输出的表征向量映射到样本标记空间,sigmoid最终进行二分类,输出序列为恶意的概率。
12.步骤3)中,所述的生成模型采用seq2seq框架。
13.将长度为n的api序列进行分割,将长度为n的api序列进行分割生成n个api子序列,子序列经过seq2seq框架后得到n个噪声api序列,再将n个噪声api序列插入到步骤1)获得长度为n的api序列中,获得对抗样本api序列,具体包括:长度为n的api序列为s = [a1, a2,
ꢀ…ꢀak

, an],a1为api序列中的第1个api,a2为api序列中的第2个api,ak为api序列中的第k个api,an为api序列中的第n个api;将s进行分割,得到n个子序列ss = {[a1], [a1, a2], [a1, a2, a3],
ꢀ…
, [a1, a2,
ꢀ…
, a
n-1
], [a1, a2,
ꢀ…
, an]},ss中的每个子序列ssk经过seq2seq框架得到生成噪声api序列gs
k = [b
k1
, b
k2
,
ꢀ…
, b
kl
];n个噪声api序列为gs1, gs2,
ꢀ…
gsk,
ꢀ…
, gsn,其中,gs
k = [b
k1
, b
k2
,
ꢀ…
, b
kl
],
gs1为n个噪声api序列中第1个噪声api序列,gs2为n个噪声api序列中第2个噪声api序列,gsk为n个噪声api序列中第k个噪声api序列,gsn为n个噪声api序列中第n个噪声api序列,b
k1
为第k个噪声api序列中的第1个噪声api,b
k2
为第k个噪声api序列中的第2个噪声api,b
kl为
第k个噪声api序列中的第l个噪声api;将n个噪声api序列插入到长度为n的api序列中,将gsk插入到长度为n的api序列的ak后面,获得对抗样本api序列g = [a1, b
11
, b
12
,
ꢀ…
, b
1l
, a2, b
21
, b
22
,
ꢀ…
, b
2l
,
ꢀ…
, an, b
n1
, b
n2
,
ꢀ…
, b
nl
]。
[0014]
插入噪声api序列不能改变原始的api序列顺序,否则可能破坏原有的恶意软件功能。而无法明确知道插入的噪声api的位置和数量,因此将原始的api序列在每个位置上分割成n个子序列,将每个子序列输入生成模型,学习其特征,增强输出的噪声api序列的扰动效果。
[0015]
与现有技术相比,本发明具有如下优点:本发明通过模拟攻击者来生成对抗样本,并基于对抗样本来对恶意软件检测模型进行再训练,可大大提高恶意软件检测模型对恶意对抗攻击的防御能力。
附图说明
[0016]
图1为一种面向api序列恶意软件检测模型的黑盒攻击与防御方法流程图。
[0017]
图2为代理模型网络结构图。
[0018]
图3为生成模型网络结构图。
具体实施方式
[0019]
为了使本技术领域的人员更好地理解本技术方案,下面结合附图和具体实施方式。
[0020]
如图1所示,一种面向api序列恶意软件检测模型的黑盒攻击与防御方法,包括如下步骤: (1) api序列抽取,面向黑盒的代理模型构建:由于被攻击模型是黑盒的,无法得知其具体模型结构和参数,因此通过构建泛化能力强的模型来模拟被攻击黑盒模型。
[0021]
(2) 基于扰动的生成模型构建:通过训练生成模型,在恶意软件的api序列中添加噪声api来对其进行扰动。
[0022]
(3) 对抗训练:通过对抗训练,使得代理模型能够更好地模拟被攻击模型,使得生成模型生成的恶意软件api序列能够更不容易被代理模拟检测出来。
[0023]
(4) 模型的防御性训练:通过加入生成模型生成的恶意样本来对检测模型进行再训练,使得其对对抗样本具有更强的鲁棒性。
[0024]
步骤(1)中,api序列抽取,面向黑盒的代理模型构建的详细步骤如下:(1-1) api序列抽取:基于api序列的动态检测是当前恶意软件检测的主流方法。给定一个软件样本,采用沙箱(如cuckoo)对软件样本进行模拟运行,得到该软件样本的api序列。
[0025]
(1-2) 代理模型网络结构定义:由于被攻击的基于api序列的恶意软件检测模型是一个黑盒,因此采用泛化能力较强的lstm作为代理模型。基于lstm的代理模型的网络结构如图2所示,面向黑盒的代理模型(即基于lstm的代理模型的网络结构)依次包括:输入层、嵌入层、循环层以及输出分类层,所述的输出分类层依次包括:表征向量输出层、全连接
层和sigmoid层。具体描述如下:输入层:首先,给定一个软件样本s,获得s的完整api序列。然后,由于每个软件样本的api调用数量不一致,而模型要求输入样本具有相同的形状,因此通过在过短的api序列后面拼接空api、以及对过长的api序列进行末尾删除的方式,得到固定长度的api序列[a1, a2,
ꢀ…
, an]。其中,n为固定的api序列长度,ak为第k个api调用。
[0026]
嵌入层:首先,采用词嵌入技术(如word2vec、glove)对大量api序列进行学习,得到每个api的低维稠密表征向量。然后,将软件样本api序列转换为一个表征向量序列[e1, e2,
ꢀ…
, en]。其中,ak的表征向量为ek。
[0027]
循环层:将嵌入层的输出输入一个lstm,每个api表征向量ek输入一个lstm单元,则每个lstm单元根据公式(1)输出一个隐状态向量hk,最后得到一个隐状态向量序列[h1, h2,
ꢀ…
, hn]。
[0028]
输出分类层:取hn作为s的最终表征向量,并在hn上叠加一个全连接层和一个sigmoid层,得到最终是否为恶意软件的概率。
[0029]
步骤(2)中,基于扰动的生成模型构建的详细步骤如下:(2-1) 生成模型网络结构定义:采用seq2seq框架定义生成模型,输入为一段api序列,输出为添加了扰动的新的api序列。该生成模型的网络结构如图3所示,具体描述如下:输入层:模型的输入为一个api序列as = [a1, a2,
ꢀ…
, am]。这里的api序列的长度可以不固定。
[0030]
编码层:首先,采用一个嵌入层将as转换为api表征向量序列es= [e1, e2,
ꢀ…
, em]。然后,采用一个lstm处理es,输出为一个隐状态向量序列hs = [h1, h2,
ꢀ…
, hm];最后,采用注意力机制对hs进行加权平均,得到编码层的输出,记为c。
[0031]
解码层:采用一个lstm处理c,每个lstm单元根据公式(2)和(3)输出一个隐状态向量gk和一个结果状态向量yk(其中,g
0 = c)。结果状态向量除了对应每个api的表征向量之外,还包括一个结束状态向量,只要出现了结束状态向量,则立刻结束当前的生成过程,w、v、b、c为模型内参数。
[0032]
输出层:根据api表征向量查询表将解码层的输出[y1, y2,
ꢀ…
, y
l
]转换为对应的api序列[b1, b2,
ꢀ…
, b
l
](l可以不等于m)。
[0033]
(2-2) 基于扰动的api序列生成:对恶意软件的api序列进行扰动需要满足一个前提条件,就是该恶意软件的恶意功能不能失效。因此,添加扰动的主要思路为:不删除恶意软件原有的api,也不改变恶意软件原有api的相对位置,而是在恶意软件原有api序列中的每个api之后插入不定长度的其它api。给定一个恶意软件的api序列s = [a1, a2,
ꢀ…
, an],基于扰动的api序列生成的具体步骤如下:(2-2-1) 将s在每个位置上进行分割,得到n个子序列ss = {[a1], [a1, a2], [a1, a2, a3],
ꢀ…
, [a1, a2,
ꢀ…
, a
n-1
], [a1, a2,
ꢀ…
, an]};(2-2-2) 对ss中的每个子序列ssk,将ssk输入训练好的生成模型,得到生成子序列gs
k = [b
k1
, b
k2
,
ꢀ…
, b
kl
];(2-2-3) 将每个生成的子序列gsk拼接在输入子序列ssk在原始api序列s对应的位
置之后,得到最终的生成api序列g = [a1, b
11
, b
12
,
ꢀ…
, b
1l
, a2, b
21
, b
22
,
ꢀ…
, b
2l
,
ꢀ…
, an, b
n1
, b
n2
,
ꢀ…
, b
nl
]。
[0034]
步骤(3)中,对抗训练的详细步骤如下:(3-1) 采样:采样一个正常样本的mini-batch(记为b),采样一个恶意样本的mini-batch(记为m)。
[0035]
(3-2) 生成对抗样本:将m中的每个样本ms输入步骤(2)训练好的生成器,得到一个生成样本gs,所有生成样本构成生成样本集m
΄

[0036]
(3-3) 标注:将b和m
΄
作为训练集s,并输入被攻击的黑盒模型,得到s的训练标签。
[0037]
(3-4) 训练代理模型:利用训练标签、根据公式(4)所示的损失函数更新代理模型的参数。其中,v为样本s的训练标签(v = 0为正常样本,v = 1为恶意样本),d
θ
(s)为代理模型将s识别为恶意软件的概率。
[0038]
(3-5) 训练生成模型:利用训练标签、根据公式(5)所示的损失函数更新生成模型的参数。
[0039]
(3-6) 迭代:返回步骤(3-1),反复迭代,直到算法收敛,或达到指定训练轮数。
[0040]
步骤(4)中,模型的防御性训练的详细步骤如下:(4-1) 样本增强:收集由生成模型生成的能够绕过检测模型的样本,加入训练样本集。
[0041]
(4-2) 检测模型再训练:采用增强后的训练样本集对检测模型进行再次训练,增强其对对抗攻击的鲁棒性。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献