正在加载图片...
458 工程科学学报,第42卷,第4期 函数x之后,便会产生一个当前状态s,并将其送 特征提取网络的工作过程如算法1所示 给策略网络.策略网络根据当前的状态S,进行决 策从而选择一个动作a,反馈给特征提取网络.特 算法1:特征网络提取过程 征提取网络根据动作a,进行相应的更新操作.不 1:初始化co和ho:co=0,ho=0: 断重复上述过程,当整个序列X被处理完之后,特 2:=1; 征提取网络将最终得到的特征,提供给分类网 3:while i<=L 络,分类网络根据这个提取出来的序列特征进行 4: 输入API调用函数x: 分类预测.最后根据预测的结果计算一个延迟奖 5: 计算当前状态:s=c-1⊕h-①x: 励R,反馈给策略网络,以便策略网络更新网络 6: 将S,传递给策略网络; 参数 N 获取策略网络所选择的动作a: 2.2数据预处理 8: if a,=Delete then 在针对恶意软件行为序列处理分析过程中, 9: hh-:cFCi-1; 需要对收集的原始数据进行必要的预处理,以方 10: else if a,=Retain then 便后续模型的训练和测试.整个数据预处理的流 11: h,和c,根据LSTM网络功能进行 程分为三步 正常更新: (I)提取API调用序列:从Cuckoo沙箱生成 12: e计l; 的原始报告中提取API序列数据,并且将每一份 13:输出hL,将其提供给分类网络 报告(每一个样本)单独形成一个API调用序列 文件 2.3.2分类网络 (2)过滤API函数:计算各个API函数的信息 分类网络利用从特征提取网络那里得到的序 增益值,然后设定一个阈值,最后将所有信息增益 列特征hu,来预测当前样本的所属类别.这里的分 值小于阈值的API函数剔除.这样做的目的是,一 类网络设计为一个三层的神经网络(输入层、隐含 方面可以别除对分类帮助不大的API函数,另一 层和输出层),输入是序列特征h=hi,h2,…,hm: 方面也希望尽可能保留较多的原始信息 输出的P)是一个概率分布,用来描述当前序 (3)编码API序列:将每一个API函数编码成 列X所属的可能类别.因为本文目的是区分恶意 一个独热向量,再将整个API序列中的API函数 软件和良性软件,这是一个二分类问题,所以 替换成对应的独热向量即可. ye benign,malicious. 2.3模型设计 在实际训练过程中,分类网络所计算出来的 下面分别介绍图1中三个关键网络模块的设 概率分布,一方面用来估计当前样本所属的类别, 计过程. 另一方面需要利用这个概率分布来计算延迟奖励 2.3.1特征提取网络 R,计算方法如下: 特征提取网络主要基于LSTM网络的功能特 L RL=log2PcW)+y元+b (1) 点来提取时序数据的长距离时序特征.这里的状 态S,定义为:S=C-1⊕h-1⊕x,其中,①表示拼接 其中:P(cX)的值是从分类网络预测结果P(X)中 操作,c1是-l时刻记忆单元中的信息,1是用 获得:c表示样本X的实际所属类别.L是被删除 于存放时序数据累积特征的张量,x是当前输入 掉的API函数的个数(也就是执行Delete操作的 的API调用函数.S,表示当前的状态,一方面考虑 次数):L是原始的序列长度;y则是起到调节删除 了之前序列中所蕴涵的信息,另一方面还考虑了 力度功能的超参数.例如,在相同的情况下,如果 当前的输入,可全面地体现当前的具体状态.动 y的值越大,延迟奖励R第二项的值就会越大,那 作a,定义为:a,e{Retain,Delete.这是一个二元选 么策略网络所得到的奖励也随之变大,因此策略 择,每一个时刻所选择的动作只有两种可能:删除 网络就会更倾向于删除更多信息.此外,在延迟奖 (Delete)和保留(Retain).Retain操作是保留当前 励中增加一个偏置项b.这个偏置项的作用是用来 对应的API函数,而Delete操作则是去除对应的 调节奖励值的正负情况 API函数,被去除掉的API函数将不会对最终的分 2.3.3策略网络 类结果产生影响. 策略网络接收特征提取网络给出的状态S,然函数 xi 之后,便会产生一个当前状态 st,并将其送 给策略网络. 策略网络根据当前的状态 st,进行决 策从而选择一个动作 at,反馈给特征提取网络. 特 征提取网络根据动作 at,进行相应的更新操作. 不 断重复上述过程,当整个序列 X 被处理完之后,特 征提取网络将最终得到的特征 hL 提供给分类网 络,分类网络根据这个提取出来的序列特征进行 分类预测. 最后根据预测的结果计算一个延迟奖 励 RL 反馈给策略网络,以便策略网络更新网络 参数. 2.2    数据预处理 在针对恶意软件行为序列处理分析过程中, 需要对收集的原始数据进行必要的预处理,以方 便后续模型的训练和测试. 整个数据预处理的流 程分为三步. ( 1)提取 API 调用序列:从 Cuckoo 沙箱生成 的原始报告中提取 API 序列数据,并且将每一份 报告(每一个样本)单独形成一个 API 调用序列 文件. (2)过滤 API 函数:计算各个 API 函数的信息 增益值,然后设定一个阈值,最后将所有信息增益 值小于阈值的 API 函数剔除. 这样做的目的是,一 方面可以剔除对分类帮助不大的 API 函数,另一 方面也希望尽可能保留较多的原始信息. (3)编码 API 序列:将每一个 API 函数编码成 一个独热向量,再将整个 API 序列中的 API 函数 替换成对应的独热向量即可. 2.3    模型设计 下面分别介绍图 1 中三个关键网络模块的设 计过程. 2.3.1    特征提取网络 st = ct−1 ⊕ht−1 ⊕ xt at ∈ {Retain,Delete} 特征提取网络主要基于 LSTM 网络的功能特 点来提取时序数据的长距离时序特征. 这里的状 态 st 定义为: ,其中,⊕表示拼接 操作,ct-1 是 t-1 时刻记忆单元中的信息,ht-1 是用 于存放时序数据累积特征的张量,xt 是当前输入 的 API 调用函数. st 表示当前的状态,一方面考虑 了之前序列中所蕴涵的信息,另一方面还考虑了 当前的输入,可全面地体现当前的具体状态. 动 作 at 定义为: . 这是一个二元选 择,每一个时刻所选择的动作只有两种可能:删除 (Delete)和保留(Retain). Retain 操作是保留当前 对应的 API 函数,而 Delete 操作则是去除对应的 API 函数,被去除掉的 API 函数将不会对最终的分 类结果产生影响. 特征提取网络的工作过程如算法 1 所示. 算法 1:特征网络提取过程 1:初始化 c0 和 h0:c0=0,h0=0; 2:i=1; 3:while i<=L 4: 输入 API 调用函数 xi; 5: 计算当前状态:si=ci−1⊕hi−1⊕xi; 6: 将 si 传递给策略网络; 7: 获取策略网络所选择的动作 ai; 8: if ai=Delete then 9:   hi=hi−1;ci=ci−1; 10: else if ai=Retain then 11: hi 和 ci 根据 LSTM 网络功能进行 正常更新; 12: i=i+1; 13:输出 hL,将其提供给分类网络. 2.3.2    分类网络 hL = [h1,h2, ··· ,hm] 分类网络利用从特征提取网络那里得到的序 列特征 hL,来预测当前样本的所属类别. 这里的分 类网络设计为一个三层的神经网络(输入层、隐含 层和输出层),输入是序列特征 ; 输出的 P(y|X) 是一个概率分布,用来描述当前序 列 X 所属的可能类别. 因为本文目的是区分恶意 软件和良性软件 ,这是一个二分类问题 ,所 以 y∈{benign, malicious}. 在实际训练过程中,分类网络所计算出来的 概率分布,一方面用来估计当前样本所属的类别, 另一方面需要利用这个概率分布来计算延迟奖励 RL,计算方法如下: RL = log2 (P(c|X))+γ L ′ L +b (1) 其中:P(c|X)的值是从分类网络预测结果 P(y|X)中 获得;c 表示样本 X 的实际所属类别. L′是被删除 掉的 API 函数的个数(也就是执行 Delete 操作的 次数);L 是原始的序列长度;γ 则是起到调节删除 力度功能的超参数. 例如,在相同的情况下,如果 γ 的值越大,延迟奖励 RL 第二项的值就会越大,那 么策略网络所得到的奖励也随之变大,因此策略 网络就会更倾向于删除更多信息. 此外,在延迟奖 励中增加一个偏置项 b. 这个偏置项的作用是用来 调节奖励值的正负情况. 2.3.3    策略网络 策略网络接收特征提取网络给出的状态 st,然 · 458 · 工程科学学报,第 42 卷,第 4 期
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有