[发明专利]一种容器内恶意软件静态检测系统及方法有效
申请号: | 201910275571.9 | 申请日: | 2019-04-08 |
公开(公告)号: | CN110008703B | 公开(公告)日: | 2020-01-24 |
发明(设计)人: | 陈兴蜀;金逸灵;王玉龙;王伟;蒋超;金鑫;王启旭 | 申请(专利权)人: | 四川大学 |
主分类号: | G06F21/56 | 分类号: | G06F21/56 |
代理公司: | 51284 成都禾创知家知识产权代理有限公司 | 代理人: | 裴娟 |
地址: | 610065 四川*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 学习检测 恶意软件检测 静态检测系统 恶意软件 网络提取 语义向量 层级 定长 网络 主机操作系统 长序列数据 待检测软件 数据安全性 可用性 租户 抽取数据 代码逻辑 分类结果 检测结果 局部特征 提取容器 序列输入 语义特征 向量化 云平台 多维 分层 构建 混淆 输出 攻击 代理 分类 | ||
1.一种容器内恶意软件静态检测方法,其特征在于,包括以下步骤:
步骤1:无代理提取容器内待检测软件;
所述步骤1的提取过程如下:
S11:根据输入的容器镜像或容器的唯一标识,在主机用户层获取待检测容器源数据,从中筛选出Lowerdir和Upperdir路径;
S12:将Lowerdir和Upperdir按照层次关系进行格式拼接得到拼接Lowerdir,并新建一个空的Upperdir;
S13:根据Docker系统信息获取存储驱动类型,得到相应的文件系统类型,将拼接的Lowerdir和空的Upperdir联合挂载到一个处于待测容器外部的临时容器视角目录;
S14:筛选临时容器视角目录下的可执行文件,将其绝对路径传给步骤2;
步骤2:提取步骤1得到待检测软件的API调用序列;
所述步骤2具体过程如下:
S21:划分基本块;
S22:获取基本块间调用关系有向有环图;
S23:合并同一函数内的基本块,对步骤S22中的有向有环图进行部分边的合并,得到每个函数内部的函数调用序列有向有环图;
S24:遍历函数调用序列有向有环图,得到程序整体API调用序列;
步骤3:构建深度学习检测模型,深度学习检测模型Word2vec网络、LSTM网络和CNN网络;Word2vec网络将API调用序列向量化,LSTM网络提取不定长序列数据的语义特征输出定长语义向量,CNN网络提取定长语义向量的多维局部特征并进行分类,得到分类结果;
Word2vec网络将每个API都映射为固定较低维度的特征向量,按序拼接这些特征向量形成LSTM的输入;LSTM网络采用读取整个不定长序列后产生单个特征输出的循环网络设计模式,提取序列数据的语义特征,将隐藏层输出的定长语义向量作为CNN的输入;CNN网络将定长语义向量通过卷积核沿序列进行卷积计算生成多个Feature Map,然后通过最大池化选取每个Feature Map中最重要的特征,将池化后的特征全连接后接入softmax回归层得到分类结果;
步骤4:训练步骤3得到的深度学习检测模型得到层级恶意软件检测模型;
步骤5:将步骤2得到的API调用序列输入步骤4训练得到的层级恶意软件检测模型,得到检测结果。
2.根据权利要求1所述的一种容器内恶意软件静态检测方法,其特征在于,所述步骤S23具体过程如下:
从ELF文件代码段的起始节点开始遍历基本块调用关系有向有环图,若块起始地址和块所属函数起始地址相同,则该块为所属函数的起始块,得到函数的起始块集合N;遍历起始块集合,以每个块为起始进行深度递归搜索,在递归过程中以遇到N中的块为终止条件;合并同一函数内的基本块,对块间调用关系图进行部分边的合并,得到每个函数内部的函数调用序列有向有环图。
3.根据权利要求1所述的一种容器内恶意软件静态检测方法,其特征在于,所述步骤S24从程序起始函数节点开始执行深度优先遍历函数调用序列有向有环图,在此过程中去除普通函数保留系统API,并设置路径长度阈值、API调用序列长度阈值和每个节点的访问阈值。
4.根据权利要求1所述的一种容器内恶意软件静态检测方法,其特征在于,所述步骤4训练过程中计算理论类别输出和模型输出的交叉熵,采用Adam优化算法不断更新网络权重,得到层级恶意软件检测模型。
5.如权利要求1所述的一种容器内恶意软件静态检测方法的系统,其特征在于,包括待测软件提取模块、特征提取模块、数据建模模块和恶意软件检测模块;
待测软件提取模块输入容器镜像或容器的唯一标识,根据主机存储驱动类型以无代理的方式分层处理输入的各层文件系统内容,提取出待测软件;
特征提取模块对输入的软件进行反汇编,得到基本块调用关系有向有环图,根据代码走向处理基本块之间的调用顺序,通过合并基本块得到每个函数内部的函数调用序列有向有环图,深度优先遍历该图获取程序整体API调用序列作为特征属性;
数据建模模块,构建Word2vec+LSTM+CNN层级网络,训练得到恶意软件检测模型;
恶意软件检测模块提取待测软件的API调用序列,输入构建得到的恶意软件检测模型,得到模型分类结果。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于四川大学,未经四川大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910275571.9/1.html,转载请声明来源钻瓜专利网。