[发明专利]一种面向海量Windows软件的未知恶意代码检测方法及系统有效
申请号: | 202010305550.X | 申请日: | 2020-04-17 |
公开(公告)号: | CN111639337B | 公开(公告)日: | 2023-04-07 |
发明(设计)人: | 贾晓启;李帅;陈阳;杜海超;白璐;解亚敏;唐静 | 申请(专利权)人: | 中国科学院信息工程研究所 |
主分类号: | G06F21/56 | 分类号: | G06F21/56;G06N3/08;G06N3/0464 |
代理公司: | 北京君尚知识产权代理有限公司 11200 | 代理人: | 陈艳 |
地址: | 100093 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 面向 海量 windows 软件 未知 恶意代码 检测 方法 系统 | ||
1.一种面向海量Windows软件的未知恶意代码检测方法,其特征在于,包括以下步骤:
对目标软件进行预处理:筛选出格式规范的Windows平台可执行文件,并初步判断是恶意还是良性,若为恶意则作为恶意样本;
对恶意样本进行静态辅助检测:结合敏感字符串与ImpHash值,自动生成针对恶意样本的规则,根据该规则和已有的规则构建恶意样本的特征库,判断恶意样本是否匹配该特征库的规则,若匹配则判定为恶意,否则为良性;其中,利用恶意软件模式匹配工具yara进行静态辅助检测,将yara规则库作为已有的规则库,其包括yara-rules官方库以及由ClamAV特征码转换后的yara规则库;敏感字符串的提取方法是,首先获取恶意样本的可打印字符串,然后删除提前收集的良性软件中存在的所有字符串,保留恶意软件字符串集合,最后筛选出敏感的字符串集合,该集合包含一定数量的URL、IP、Hash、File,系统敏感位置和注册表路径;
对恶意样本进行动态行为分类:动态运行上述判定为良性的恶意样本,获取动态运行时的API调用序列,输入到深度神经网络模型中进行分类,判断其是恶意还是良性;其中,基于虚拟化环境建立恶意程序分析系统Cuckoo Sandbox,使用该Cuckoo Sandbox动态运行恶意样本,记录API调用跟踪、文件、网络的系统操作,从结果日志Json文件中提取API序列;
若恶意样本被静态辅助检测和动态行为分类中的一个判定为恶意,则最终判定为恶意软件,否则判定为良性软件。
2.如权利要求1所述的方法,其特征在于,预处理方法为检查目标软件的格式,筛选出格式规范的Windows平台可执行文件,再借助在线检测工具VirusTotal进行初步判定是良性还是恶意。
3.如权利要求1所述的方法,其特征在于,结合ImpHash值生成针对恶意样本的规则,其方法为,基于导入地址表中库/API名称及其在可执行文件中的特定顺序创建散列,如果文件之间具有相同的ImpHash值,则判定这些文件具有相同的导入地址表,判定这些文件由相同的源代码采用相同的编码方式编译得到,从而识别出相关恶意软件。
4.如权利要求1所述的方法,其特征在于,深度神经网络模型为textCNN深度神经网络模型。
5.如权利要求4所述的方法,其特征在于,textCNN深度神经网络模型包括卷积层、池化层、拼接层、全连接层和分类层;其中,卷积层包括三类卷积核,每类的数量为128个,卷积核的高度分别为3、4、5,宽度与词向量的宽度相同,为一维卷积;池化层采用最大池化的方法,生成与卷积核总量相同数量的特征映射。
6.如权利要求4所述的方法,其特征在于,先为每个API扩充词向量,将API调用序列的一维文本转为二维矩阵,再输入到textCNN深度神经网络模型。
7.一种面向海量Windows软件的未知恶意代码检测系统,其特征在于,包括:
预处理模块:用于筛选出格式规范的Windows平台可执行文件,并初步判断是恶意还是良性,若为恶意则作为恶意样本;
静态辅助检测模块:用于结合敏感字符串与ImpHash值,自动生成针对恶意样本的规则,根据该规则和已有的规则构建恶意样本的特征库,判断恶意样本是否匹配该特征库的规则,若匹配则判定为恶意,否则为良性;其中,利用恶意软件模式匹配工具yara进行静态辅助检测,将yara规则库作为已有的规则库,其包括yara-rules官方库以及由ClamAV特征码转换后的yara规则库;敏感字符串的提取方法是,首先获取恶意样本的可打印字符串,然后删除提前收集的良性软件中存在的所有字符串,保留恶意软件字符串集合,最后筛选出敏感的字符串集合,该集合包含一定数量的URL、IP、Hash、File,系统敏感位置和注册表路径;
动态行为分类模块:用于动态运行上述判定为良性的恶意样本,获取动态运行时的API调用序列,输入到深度神经网络模型中进行分类,判断其是恶意还是良性;其中,基于虚拟化环境建立恶意程序分析系统Cuckoo Sandbox,使用该Cuckoo Sandbox动态运行恶意样本,记录API调用跟踪、文件、网络的系统操作,从结果日志Json文件中提取API序列;
研判模块:用于对恶意样本是恶意还是良性进行判断,若恶意样本被静态辅助检测和动态行为分类中的一个判定为恶意,则最终判定为恶意软件,否则判定为良性软件。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院信息工程研究所,未经中国科学院信息工程研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010305550.X/1.html,转载请声明来源钻瓜专利网。