1.基于增强深度学习的拟态的安卓恶意软件的动态检测方法,其特征在于,该方法中构建了基于增强深度学习的拟态的安卓恶意软件动态检测模型;
基于所述模型,所述方法包括:
对输入数据进行数据预处理,然后将预处理后的数据输入到异构冗余模型结构中;其中所述异构冗余模型结构包括三个功能等价的异构冗余体,分别为:增强的LSTM模型,增强的GRU模型及增强的胶囊网络模型;
经过预处理的输入数据通过所述动态检测模型随机分配,随机选择增强的LSTM模型、增强的GRU模型或增强的胶囊网络模型中进行训练,得到输出数据,完成对安卓恶意软件的动态检测;
所述增强的LSTM模型通过对输入xt做增强处理xt=xt+xt‑1,对细胞状态ct做增强处理ct=ct+ct‑1,使用增强的LSTM模型来捕捉输入xt和细胞状态ct中API调用序列信息的更多历史情况;
当时间步为t时,对增强的LSTM隐藏单元输入xt=xt+xt‑1,这使得在每个时间步t的输入都包括了上一时间步t‑1的输入xt‑1,增加了ct=ct+ct‑1;所述增强的LSTM隐藏单元还包括隐藏状态ht‑1、时间步t‑1的细胞状态ct‑1,增强的LSTM隐藏单元输出包括时间步t的隐藏状态ht和时间步t的细胞状态ct;
所述增强的LSTM模型的信息流动为:
1):更新时间步t时增强的LSTM隐藏单元的输入值xt=xt+xt‑1,即将时间步t时增强的LSTM隐藏单元的输入值xt和时间步t‑1时增强的LSTM隐藏单元的输入值xt‑1相加得到更新后的xt,将更新后的xt作为时间步t时增强的LSTM隐藏单元的输入数据;
xt=xt+xt‑1 (4)
2):计算时间步t时增强的LSTM隐藏单元的遗忘值ft;将时间步t时增强的LSTM隐藏单元的输入xt,时间步t‑1时增强的LSTM隐藏单元的隐藏状态ht‑1和时间步t‑1时增强的LSTM隐藏单元的细胞状态值ct‑1导入到sigmoid激活函数,得到时间步t时增强的LSTM隐藏单元的遗忘值ft;
sigmoid激活函数表达式是:
ft=sigmoid(xtWxf+ht‑1Whf+ct‑1Wcf+bf) (6)其中,Wxf,Whf,Wcf是在计算遗忘值ft时需要的权重矩阵,bf是偏置矩阵;
3):将时间步t时增强的LSTM隐藏单元中输入xt,时间步t‑1时增强的LSTM隐藏单元的隐藏状态ht‑1和将时间步t‑1时增强的LSTM隐藏单元的细胞状态值ct‑1导入到sigmoid激活函数,得到时间步t时增强的LSTM隐藏单元的输入值it;
it=sigmoid(xtWxi+ht‑1Whi+ct‑1Wci+bi) (7)Wxi,Whi,Wci分别是与xt,ht‑1,ct‑1所对应的权重矩阵,bi是偏置矩阵;
4):将时间步t时增强的LSTM隐藏单元的输入xt和时间步t‑1时增强的LSTM隐藏单元的隐藏状态ht‑1导入到tanh激活函数,然后得到时间步t时增强的LSTM隐藏单元的候选细胞状态值Wxc,Whc分别是与xt,ht‑1所对应的权重矩阵,bc是偏置矩阵;
5):将时间步t‑1时增强的LSTM隐藏单元的细胞状态值ct‑1和时间步t时增强的LSTM隐藏单元的遗忘值ft做哈达玛积,时间步t时增强的LSTM隐藏单元的候选细胞状态值 和时间步t时增强的LSTM隐藏单元的输入值it做哈达玛积,将得到的两个哈达玛积结果相加得到时间步t时增强的LSTM隐藏单元的细胞状态值ct;
ct=ct+ct‑1 (10)
6):时间步t时增强的LSTM隐藏单元的细胞状态值ct=ct+ct‑1,即时间步t时增强的LSTM隐藏单元的细胞状态值ct和时间步t‑1时增强的LSTM隐藏单元的细胞状态值ct‑1相加的得到更新后的ct;
7):将时间步t‑1时增强的LSTM隐藏单元的输入xt,时间步t‑1时增强的LSTM隐藏单元的隐藏状态ht‑1和时间步t时增强的LSTM隐藏单元的细胞状态值ct导入到sigmoid激活函数,然后得到时间步t时增强的LSTM隐藏单元的输出值ot,ot=sigmoid(xtWxo+ht‑1Who+ctWco+bo) (11)Wxo,Who,Wco分别是与xt,ht‑1,ct所对应的权重矩阵,bo是偏置矩阵;
8):将时间步t时增强的LSTM隐藏单元的细胞状态值ct导入到tanh激活函数,得到的结果与时间步t时增强的LSTM隐藏单元的输出值ot做哈达玛积,最后得到时间步t时增强的LSTM隐藏单元的隐藏状态值ht;
ht=ot*tanh(ct) (12);
所述增强的GRU模型,通过对输入xt做增强处理xt=xt+xt‑1,使得时间步t时的输入数据包括当前时间步的输入和上一时间步t‑1时的输入信息;
所述增强的GRU模型的信息流动如下所示:
1):更新时间步t时增强的GRU模型的输入值xt=xt+xt‑1,即将时间步t时增强的GRU模型的输入值xt和时间步t‑1时增强的GRU模型的输入值xt‑1相加的得到更新后的xt,将更新后的xt作为时间步t时增强的GRU模型的输入数据;
xt=xt+xt‑1 (13)
2):计算时间步t时增强的GRU模型的重置门rt;将时间步t时增强的GRU模型的输入xt和时间步t‑1时增强的GRU模型的隐藏状态ht‑1导入到sigmoid激活函数,得到时间步t时增强的GRU模型的重置值rt;
rt=sigmoid(Wr*[ht‑1,xt]) (14)
Wr是对应的权重矩阵;
3):计算时间步t时增强的GRU模型的更新门ut;将时间步t时增强的GRU模型的输入xt,时间步t‑1时增强的GRU模型的隐藏状态ht‑1导入到sigmoid激活函数,得到时间步t时增强的GRU模型的更新值ut;
ut=sigmoid(Wz*[ht‑1,xt]) (15)
4):将时间步t时增强的GRU模型的重置门rt和时间步t‑1时增强的GRU模型的隐藏状态ht‑1做哈达玛积;再将得到的结果和时间步t时增强的GRU模型的输入值xt导入到tanh激活函数,然后得到时间步t时增强的GRU模型的候选隐藏状态值tanh激活函数表达式是:
5):将1‑ut与 做哈达玛积,时间步t时增强的GRU模型的更新门ut和ht‑1做哈达玛积,将两个哈达玛积结果进行合并,得到时间步t时增强的GRU模型的隐藏状态ht;
xt表示时间步t时对输入xt增强处理的GRU细胞的输入值,ht‑1是时间步t‑1时的隐藏状态值,ht是时间步t时的隐藏状态值,σ代表相应的激活函数,rt为时间步t时的重置门,ut为时间步t时的更新门, 为时间步t时的候选隐藏状态值;
所述增强的胶囊网络模型用sj+sj‑1来更新当前胶囊单元的sj,能够充分学习API调用序列的动态变化情况;
所述增强的胶囊网路模型的信息流动如下所示:
所需输入包括指明路由迭代次数r,L层胶囊单元的预测向量
1):初始化向量bij,在第一次迭代过程中,bij的初始值为零,随着迭代次数r的变化,向量bij动态更新;
bij=0 (19)
2):对于所有L层胶囊单元i而言,对向量bij进行softmax操作,得到向量ci的值;
ci=softmax(bij) (20)
3):在得到了所有L层胶囊单元i的耦合系数cij之后,信息流将向上层即L+1层的胶囊单元流通,不同的胶囊单元的输入向量sj是所有可能传入该单元的加权和,即为耦合系数cij与所有可能的预测向量的乘积和;
4):在同一层的不同的神经元之间,后一个神经元的输入sj=sj+‑sj‑1,增强了前后胶囊单元之间的联系程度;
sj=sj+sj‑1 (22)
5):对所有进行了增强处理的向量sj进行Squash非线性函数的压缩操作;向量sj进行压缩操作后得到传给上层胶囊单元的向量vj;
vj=squash(sj) (23)
6):对权重bij进行动态更新操作,每一次胶囊网络中的数据完成一次单向流动过程后,均进行权重的更新操作;即利用L+1层的胶囊单元的输出向量vj与从L层胶囊单元的得到的预测向量 做点积,加上原权重更新得到新的权重,实现权重的动态更新;步骤6)结束之后,跳转到步骤3)重新开始这一流程,并重复r次;
2.根据权利要求1所述的基于增强深度学习的拟态的安卓恶意软件的动态检测方法,其特征在于,所述安卓恶意软件动态检测模型的防御性能表示如下:执行体A1为增强的LSTM模型,执行体A2为增强的GRU模型,执行体A3为增强的胶囊网络模型;
假设执行体中增强的LSTM模型被攻击者单独成功攻击的概率为PLSTM,增强的GRU模型被攻击者单独成功攻击的概率为PGRU,增强的胶囊网络模型被攻击者单独成功攻击的概率为PCapsule;则对基于拟态的安卓恶意软件动态检测模型成功攻击的概率有如下计算:P=PLSTM*Vi+PGRU*Vi+PCapsule*Vi (1)其中,Vi表示三个执行体A1,A2,A3的被随机选择作为训练学习模型的概率,Vi的值如下:三个执行体A1,A2,A3单独被成功攻击的概率分别是PLSTM,PGRU,PCapsule,并且PLSTM,PGRU,PCapsule,均属于[0,1]区间内,整个基于拟态架构的安卓恶意软件动态检测模型被成功攻击的概率P满足如下不等式:min{PLSTM,PGRU,PCapsule}≤P≤max{PLSTM,PGRU,PCapsule} (3)。