CN109359439B - 软件检测方法、装置、设备及存储介质 - Google Patents

软件检测方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN109359439B
CN109359439B CN201811257390.5A CN201811257390A CN109359439B CN 109359439 B CN109359439 B CN 109359439B CN 201811257390 A CN201811257390 A CN 201811257390A CN 109359439 B CN109359439 B CN 109359439B
Authority
CN
China
Prior art keywords
software
numerical
machine learning
sample
feature
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201811257390.5A
Other languages
English (en)
Other versions
CN109359439A (zh
Inventor
庞瑞
张宏君
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Topsec Technology Co Ltd
Beijing Topsec Network Security Technology Co Ltd
Beijing Topsec Software Co Ltd
Original Assignee
Beijing Topsec Technology Co Ltd
Beijing Topsec Network Security Technology Co Ltd
Beijing Topsec Software Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Topsec Technology Co Ltd, Beijing Topsec Network Security Technology Co Ltd, Beijing Topsec Software Co Ltd filed Critical Beijing Topsec Technology Co Ltd
Priority to CN201811257390.5A priority Critical patent/CN109359439B/zh
Publication of CN109359439A publication Critical patent/CN109359439A/zh
Application granted granted Critical
Publication of CN109359439B publication Critical patent/CN109359439B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种软件检测方法、装置、设备及存储介质,所述方法包括:提取软件样本库中各样本所包含的数值型特征和非数值型特征;利用选定的N种非加密哈希算法对所述非数值型特征进行处理,并将处理结果转换为数值型特征;所述N为大于1的整数;根据各样本中包含的所述数值型特征和转化得到的所述数值型特征,构造特征矩阵;利用所述特征矩阵训练机器学习分类器;利用所述机器学习分类器,对目标软件进行检测。本发明可以将从恶意软件样本中提取出的复杂字符串特征转化为易于机器学习算法处理的哈希特征,从而降低了模型训练难度,显著提高了训练速度,降低了空间开销,提升了恶意软件判别精度。

Description

软件检测方法、装置、设备及存储介质
技术领域
本发明涉及检测技术领域,尤其涉及一种软件检测方法、装置、设备及存储介质。
背景技术
恶意软件主要包括破坏性电脑病毒,蠕虫病毒,木马后门,漏洞利用程序,广告钓鱼代码等,这些恶意软件可以与多种规避技术和安全漏洞相结合,突破现有传统防御***的监测,对用户利益产生极大破坏。恶意软件检测***的目的就是要及时发现混杂于正常文件中的恶意软件,并尽可能在其产生破坏性影响前自主采取措施,并且及时通知用户。
目前恶意软件检测方法包括静态文件分析检测和动态行为分析检测两种。现有的恶意软件静态检测技术,主要依靠人工生成的特征码库和规则库进行匹配,即使较先进的启发式查毒检测技术,也需要依靠人工维护的专家知识库来协助判断辨识。然而在当前互联网***式扩展的情况下,互联网中成千上万的主机和用户都面临各类变种,多态,加壳,加混淆等恶意软件的威胁。如何能迅速应对变种病毒和恶意软件攻击,对海量并且种类繁多的恶意软件进行自动化的处理分析,提高恶意软件的检出率,降低误报率,成为了当前恶意软件检测手段的主要难题。
基于机器学习的检测方法不依赖特征码库和专家知识库,利用经过训练的模型快速自动化的判别辨识恶意软件,并能依靠进一步训练的模型对恶意软件进行分类,具有较好的研究和应用前景。机器学习恶意软件检测方法主要依赖两大步骤,其一是选取合适足量的样本,并对其中的特征进行提取,提取后的数值和非数值特征需要进行筛选和清洗,剔除缺失,错误项,对数值特征做标准化和归一化处理,对非数值特征则进行特殊编码,一般进行单一热点(one-hot)编码,转化为计算机能识别处理的数值形式,再将所有提取的特征组合起来形成特征矩阵。其二是需要选择合适的机器学习建模方式,对于当前海量恶意软件带来的问题,传统的逻辑回归,朴素贝叶斯,支持向量机,决策树等方法均因为训练速度慢,消耗资源巨大,模型评估效果较差等因素不适用于恶意软件检测和辨识。
传统的恶意软件特征提取方法对于提取出来的字符串信息,或者采用one-hot编码,或者转化为AscII码的数值类型,这种处理方式存在如下的缺陷:
1,one-hot编码对于字符串集合中字符串个数,字符串名称都确定的情况下比较有效,而恶意软件中提取的字符串特征因为恶意软件总量是无限的,新的恶意软件层出不穷,因此依靠训练样本的字符串集合来估算总体样本的字符串集合会带来很大的偏差;
2,字符串转AscII码确实能将字符串类型特征转化为数值类型特征,但鉴于不同样本提取的字符串特征长度可能不一致,从而转化后的特征数量也不一致,如何对AscII码形式的字符串进行分词分节较为困难,仍然需要设计算法将输入机器学习模型的特征矩阵维数转化一致,从而复杂度依然较高;
3,难以应对病毒生成器产生的海量加混淆,字符串变种,人为加干扰,掺沙子等抵御查毒引擎检测的各种方式。
可见,现有的基于机器学习检测方法中的恶意软件特征提取方法并不能满足需求,所以,如何将从恶意软件样本中提取出的复杂字符串特征转化为易于机器学习算法处理的特征,从而降低模型训练难度,提高训练速度,成为本发明所要解决的技术问题。
发明内容
鉴于上述问题,提出了本发明实施例以便提供一种软件检测方法、装置、设备及存储介质。
依据本发明实施例的一个方面,提供一种软件检测方法,包括:
提取软件样本库中各样本所包含的数值型特征和非数值型特征;
利用选定的N种非加密哈希算法对所述非数值型特征进行处理,并将处理结果转换为数值型特征;所述N为大于1的整数;
根据各样本中包含的所述数值型特征和转化得到的所述数值型特征,构造特征矩阵;
利用所述特征矩阵训练机器学习分类器;
利用所述机器学习分类器,对目标软件进行检测。
依据本发明实施例的另一个方面,提供一种软件检测装置,包括:
特征提取模块,用于提取软件样本库中各样本所包含的数值型特征和非数值型特征;
特征处理模块,用于利用选定的N种非加密哈希算法对所述非数值型特征进行处理,并将处理结果转换为数值型特征;所述N为大于1的整数;
矩阵构造模块,用于根据各样本中包含的所述数值型特征和转化得到的所述数值型特征,构造特征矩阵;
学习训练模块,用于利用所述特征矩阵训练机器学习分类器;
检测模块,用于利用所述机器学习分类器,对目标软件进行检测。
依据本发明实施例的第三方面,提供一种计算设备,所述计算设备包括:存储器、处理器及通信总线;所述通信总线用于实现处理器和存储器之间的连接通信;
所述处理器用于执行存储器中存储的软件检测程序,以实现如下方法步骤:
提取软件样本库中各样本所包含的数值型特征和非数值型特征;
利用选定的N种非加密哈希算法对所述非数值型特征进行处理,并将处理结果转换为数值型特征;所述N为大于1的整数;
根据各样本中包含的所述数值型特征和转化得到的所述数值型特征,构造特征矩阵;
利用所述特征矩阵训练机器学习分类器;
利用所述机器学习分类器,对目标软件进行检测。
依据本发明实施例的第四方面,提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现如下方法步骤:
提取软件样本库中各样本所包含的数值型特征和非数值型特征;
利用选定的N种非加密哈希算法对所述非数值型特征进行处理,并将处理结果转换为数值型特征;所述N为大于1的整数;
根据各样本中包含的所述数值型特征和转化得到的所述数值型特征,构造特征矩阵;
利用所述特征矩阵训练机器学习分类器;
利用所述机器学习分类器,对目标软件进行检测。
与现有技术相比较,本发明具有如下有益效果:
本发明实施例提出的软件检测方案,采用了基于混合非加密哈希特征和机器学习模型的软件检测方法,可以将从恶意软件样本中提取出的复杂字符串特征转化为易于机器学习算法处理的哈希特征,从而降低了模型训练难度,显著提高了训练速度,降低了空间开销,提升了恶意软件判别精度。
该方案对于缺乏充分恶意软件专家知识库,缺乏完备的病毒特征码库等大多数应用场景,均有较好的检测效果。同时能够抵御恶意软件作者常用的变种和多态等逃避检测的手段,对人为添加干扰,加壳和加混淆有较强抵抗能力,使用该特征处理方法的机器学习分类器具有较好的抗干扰能力和鲁棒性。
上述说明仅是本发明实施例技术方案的概述,为了能够更清楚了解本发明实施例的技术手段,而可依照说明书的内容予以实施,并且为了让本发明实施例的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明实施例的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明实施例的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为本发明第一实施例提供的一种软件检测方法的流程图;
图2为本发明第二实施例提供的一种软件检测方法的流程图;
图3为本发明第三实施例提供的一种基于混合非加密哈希算法的特征处理方法的流程图;
图4为本发明第三实施例中混合拼接和重组方法的流程图;
图5为本发明第四实施例提供的一种软件检测装置的结构框图;
图6为本发明第五实施例提供的一种软件检测装置的结构框图;
图7为本发明第六实施例提供的一种计算设备的结构框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
在本发明第一实施例中,提供一种软件检测方法,目的是针对现有恶意软件检测方法的缺陷提出了一种基于混合非加密哈希特征的软件检测方法。具体的,如图1所示,本实施例所述方法包括如下步骤:
步骤S101,提取软件样本库中各样本所包含的数值型特征和非数值型特征;
本发明实施例中,在执行本步骤之前,还执行获取软件样本,构造软件样本库的过程。具体的,当获取到恶意软件样本时,标注该样本为黑样本,并确定恶意软件的类型;当获取到正常软件样本时,标注该样本为白样本。这样即可利用软件样本库中的软件进行后续的特征提取及机器学习过程。
本发明实施例中,示例性的,软件样本库中的样本程序主要为PE(PortableExecutive,可移植的可执行)文件,或者具有类似文件结构的DLL(Dynamic LinkLiberary,动态链接库)文件。这样即可在样本程序文件中提取数值型特征和非数值型特征。当然,本发明实施例中样本程序也可以为其他类型的文件,本发明并唯一不限定采用PE或者DLL文件类型。
在本发明的一个具体实施例中,所述数值型特征包括如下特征中的一个或多个:代码头字段信息、代码段信息、字符串统计信息、样本总体统计信息、引入地址表中函数列表、导出函数列表、字节统计信息、以及字节信息熵统计。
本发明实施例中,所述非数值型特征主要指字符串类型数据。在本发明的一个具体实施例中,所述非数值型特征包括如下特征中的一个或多个:软件头信息中可识别字符串序列、所有的路径字符串序列、所有的统一资源定位符字符串序列、所有的注册表项字符串序列、软件头信息的机器型号字符串、软件所有段名称字符串序列、入口段名称字符串、软件所有段中连续Q个以上可识别字符组成的字符串序列;其中,Q为正整数。在一个示例性实施例中,所述Q取5,但Q并不限于取该值。
需要说明的是,本领域技术人员可以根据需求在上述特征的基础上进行特征增加或减少,但都在本发明的保护思想范围之内。
步骤S102,利用选定的N种非加密哈希算法对所述非数值型特征进行处理,并将处理结果转换为数值型特征;所述N为大于1的整数;
本发明实施例中,选择非加密哈希算法的原则是各算法之间互补,避免单纯采用一种算法会造成哈希碰撞和特征丢失。
在本发明的一个示例性实施例中,选定三种非加密哈希算法,具体包括:MurMurHash3算法、SimHash算法和CRC32算法。当然,本领域技术人员可以在此基础上进行增加或减少。具体采用何种算法,不是本发明实施例的重点,本发明重点在于保护采用混合非加密哈希算法实现混合特征的提取的方案。
在本发明的一个具体实施例中,所述利用选定的N种非加密哈希算法对所述非数值型特征进行处理,并将处理结果转换为数值型特征,具体包括:
(1)将所述非数值型特征按照设定的分组方式进行分组;
(2)针对每组非数值型特征,利用所述N种非加密哈希算法分别进行哈希处理,得到N个哈希值,并将得到的N个哈希值转化为整型;
(3)将各组的整型特征进行拼接,得到转换后的数值型特征。
步骤S103,根据各样本中包含的所述数值型特征和转化得到的所述数值型特征,构造特征矩阵;
在本发明的一个具体实施例中,本步骤具体实现方式如下:
对各所述数值型特征进行标准化处理;
对标准化处理后的特征数据进行归一化处理;
利用归一化处理后的特征数据构造出特征特征矩阵。
在本发明的一个可选实施例中,在构造特征矩阵之后,还包括:按照设定的降维方法,对所述特征矩阵进行降维处理。以剔除明显相关性不强的特征列,再将结果输入机器学习分类器进行训练。
步骤S104,利用所述特征矩阵训练机器学习分类器;
在本发明的一个具体实施例中,利用所述特征矩阵训练机器学习分类器,具体包括:
利用标注有恶意软件和正常软件的软件样本而构造出的特征矩阵,训练第一机器学习分类器,以对软件为恶意软件或者正常软件进行分类;
利用标注有不同类型的恶意软件样本而构造出的特征矩阵,训练第二机器学习分类器,以对恶意软件的类型进行分类。
也就是说,第一机器学习分类器为二分类机器学习模型,第二机器学习分类器为多分类机器学习模型。
在本发明的一个可选实施例中,在训练完机器学习分类器后,还包括:
利用测试样本集对训练完的所述机器学习分类器进行测试,以调整所述机器学习分类器的模型参数。
步骤S105,利用所述机器学习分类器,对目标软件进行检测。
具体的,本发明实施例中,按照步骤S102的方式在目标软件中提取出特征,并将特征输入机器学习分类器进行检测。该过程为实时在线的测试过程。上述S101至S104可以为离线实施过程。
具体的,本发明实施例中,利用第一机器学习分类器实现恶意软件与正常软件的分类;利用第二机器学习分类器实现恶意软件类型的分类,从而实现对目标软件的检测。
在本发明的一个可选实施例中,当检测出目标软件为恶意软件时,还按照设定的警告方式发生警告。
综上所述,本发明实施例提出的软件检测方案,采用了基于混合非加密哈希特征和机器学习模型的软件检测方法,可以将从恶意软件样本中提取出的复杂字符串特征转化为易于机器学习算法处理的哈希特征,从而降低了模型训练难度,显著提高了训练速度,降低了空间开销,提升了恶意软件判别精度。
在本发明第二实施例中,提供一种软件检测方法,相比于第一实施例,本实施例将要结合具体的应用示例,对本发明的具体实施例过程进行更详尽的阐述,需要说明的是,本实施例中公开的大量技术细节用于解释本发明,并不用于唯一限定本发明。
具体的,如图2所示,本发明实施例提供了一种软件检测方法,更为具体的提供了一种基于混合非加密哈希算法的特征处理方法,以及基于此方法和机器学习算法的恶意软件检测手段。具体包括如下步骤:
步骤S100:搜集训练样本,构建软件样本库;
具体的,本实施例中,获取用于机器学习训练的恶意软件样本,标注为黑样本,记为整数1,同时搜集相对应数量的正常程序样本,标注为白样本,记为整数0。
对于如何确定所搜集的恶意软件黑白样本真实可靠,在本发明的一个示例性实施例中,利用virustotal网站上的公开查毒引擎库(总数约为60至70个,可用引擎数量根据所扫描文件类型有所不同)对所搜集的软件样本进行一一扫描,判别标准为50个以上查毒引擎检出的划分为恶意软件,未有一个查毒引擎检出的划分为正常文件。通过此步骤收集了50万个恶意软件样本,50万个正常软件样本,其中40万恶意软件和40万正常软件作为训练数据集,10万恶意软件和10万正常软件作为测试数据集。所搜集的程序样本主要为PE文件,或者具有类似文件结构的DLL文件。同时可以利用virustotal上的众多杀毒引擎对恶意软件进行分类,采取投票法选择最多查毒软件识别的种类当作训练数据中恶意软件的种类和家族。
步骤S200:针对所搜集的软件训练样本,提取各样本中的数据信息;
具体的,本发明实施例中,提取出的信息分为:数值型信息(包括布尔类型,即视为0和1)和非数值型信息(主要指字符串类型数据)。并检查所有数据信息,对可能存在的数据缺失,数据错位进行纠正,确保所获得数据信息完整无误。
本发明实施例中,所提取的数值型特征具体包括:代码头字段信息、代码段信息、字符串统计信息、样本总体统计信息、引入地址表中函数列表、导出函数列表、字节统计信息、以及字节信息熵统计。具体特征种类示例如表1所示:
表1提取的数值型特征
本实施例中:
恶意代码头字段信息,包括:文件virtual size,是否是debug模式,是否含签名,PE头时间戳,PE文件头其他数值信息,是否含线程本地存储表;
代码段信息,包括:是否含资源段,段区个数,零大小代码段个数,无命名代码段个数,含“MEM_WRITE”段个数;
字符串统计信息,包括:可识别字符串个数,字符串平均长度,可打印字符串个数统计,所有字符信息熵之和;
样本总体统计信息,包括:路径标识符“C:\\”数量,http(s)://出现总数,“HKEY”出现数量,“MZ”出现数量,是否含重定位表,符号表中符号个数;
引入地址表中函数列表,包括:引入地址表函数数量;
导出函数列表,包括:导出函数数量;
字节统计信息,包括:字节0x00至0xFF在全文件中个数,文件总字节数;
字节信息熵统计,包括:字节的信息熵分布。
本发明实施例中,所提取的非数值型特征包括:软件头信息中可识别字符串序列、所有的路径字符串序列、所有的统一资源定位符字符串序列、所有的注册表项字符串序列、软件头信息的机器型号字符串、软件所有段名称字符串序列、入口段名称字符串、软件所有段中连续Q个以上可识别字符组成的字符串序列;其中,Q为正整数。在一个示例性实施例中,所述Q取5,但Q并不限于取该值。具体特征种类示例如表2所示:
表2提取的非数值型特征
对于以上表1和表2所列的特征描述和特征提取方法,约定对于数值型特征如果该项为空,则以整型数值0代替,对于非数值型特征,如果该项为空,则以字符串“0”代替之。
步骤S300:对上述非数值型特征进行基于MurMurHash3、SimHash、CRC32三种非加密哈希算法的混合哈希特征处理,将上述较难处理的字符串型特征转化为固定长度的数值型特征矩阵。
哈希(Hash)算法又称散列算法,即将某一成员映射到一个特定的区间。一般分为加密哈希算法和非加密哈希算法两大类。常用的MD5算法即为一种加密哈希算法,其可以将任意长度的字符串通过散列算法映射为一个128位(16字节)的哈希值,具有应用范围广,碰撞率极低等优势。然而对于机器学习模型的特征处理来说,使用加密哈希算法并不适合。原因在于机器学习特征处理需要最大程度的保留原始特征的共性,以便在之后训练过程中能利用这些共性来进行类别区分。但MD5之类的加密哈希算法对于原始特征变动非常敏感,仅仅一比特的颠倒也会造成MD5哈希值的剧烈变化,破坏原有特征中所包含的信息,这对机器学习训练来说是十分不利的。因此,本发明实施例采用非加密型Hash算法来提取这些非数值型特征,最大程度保留原始特征的类别信息,即为一种很有效的特征处理方法。
步骤S400:利用步骤S300中获得的特征矩阵,对机器学习分类器进行训练,获取机器学习分类模型。
具体的,针对标注有恶意软件和正常文件的训练数据可以训练二分类机器学习模型,实现判别辨识恶意软件的功能;针对标注有不同类别的训练数据可以训练多分类机器学习模型,实现对已判别为恶意软件的文件进一步辨别其属于哪一家族和种类。在本发明实施例中将恶意软件分为广告软件(Adware),后门程序(Backdoor programs),特洛伊木马程序(Trojan),破坏性电脑病毒(virus),蠕虫病毒(worm),勒索病毒(Ransom),黑客工具(HackTool),流氓软件(Rogue),Rootkit,病毒工具(Virus Tool)等10大类。
本发明实施例采用的机器学习算法是LightGBM方法,即轻量梯度提升机算法。LightGBM算法是一种提升方法,可以较好的提升原有的传统梯度增强决策树算法,使其计算速度更快,适用范围更广,精度更高,硬件开销更小。LightGBM选择了基于histogram的决策树方法,极大的优化了内存消耗和计算代价。与传统的pre-sorted算法相比,基于histogram的算法内存消耗仅为1/8,在决策树寻找分割点上时间复杂度均为O(n),但在数据分割上与pre-sorted算法相比,所有特征共享同一个索引表,因此仅需要对这个索引表操作即可。同时lightGBM在利用计算机群组加速训练时可以大幅降低通信代价,节约并行计算机之间的通信时间,大大加速训练过程。但本发明实施例并不涉及到利用并行计算机集群进行训练。
步骤S500:利用测试样本集,对训练得到的机器学习分类器进行检验和性能评估,以评判训练得到的模型能否满足实际需求。
具体的,本发明实施例中,采用10万恶意软件和10万正常软件测试检测率和误报率,并对其中的10万恶意软件样本进行分类测试,检验机器学习分类器的准确率。
具体实现包括:利用测试样本集对训练完成后的模型进行性能度量,采取正确率(accuracy),召回率(recall rate),ROC曲线/AUC等性能指标。另外采用假设检验的方式,利用测试误差来预估泛化误差,从而得到模型的泛化性能情况。即根据假设检验结果可以推断出若在测试集上观察到模型A比B好,那么A的泛化性能在统计意义上优于B的概率有多少。基于以上评估方法判断所训练的模型能否满足实际使用的需要,如若满足需求,则可以进行下一步骤,如若不满足需求,则重新返回训练阶段,通过调整训练参数,增加迭代数量,选取不同的代价函数,正则项,学习率等方式提高模型性能。
步骤S600:对测试后的模型进行封装,以输出符合后续***处理的机器学习分类模型;
在本发明的一个可选实施例中,将机器学习分类模型封装为直观可读的json格式,包含模型生成日期,模型类型,特征名称,特征取值范围,学习率,子决策树数量和各子树基本信息,特征重要性排序等;
在本发明的另一可选实施例中,将机器学习分类模型封装为二进制格式,包含内容同上,但采用二进制封装,可大大加速模型读取速度,对于生成决策树数量庞大的模型能有效减少读取和解析时间。
步骤S700:利用已生成的机器学习分类器,接收外部输入的待测软件文件数据特征,判断是否为恶意软件,如为是,则利用家族分类模型判定其属于哪一种类恶意软件,并实时发出恶意软件警告;其中,警告方式可由用户选择,包括并不限日志,电子邮件,弹出窗口,短信等方式。
在本发明第三实施例中,提出一种基于混合非加密哈希算法的特征处理方法,是对第二实施例中步骤S300的实施过程进行详细说明。具体的,如图3所示,所述方法包括如下步骤:
步骤S301:按上述表2所示提取非数值型特征数据;
步骤S302:对这些非数值型特征进行去重去噪;
具体的,由于之前已对所有数值型和非数值特征进行了清洗,此步骤则着重在于对字符串序列检测是否有重复API,DLL字符串,去除可能的不完整API,DLL字符串,一般API函数以.exe结尾,dll字符串以.dll结尾。
步骤S303,对非数值型特征进行分组,对于每一组,均采用步骤S3041,S3042,S3043所述的哈希方法,得到哈希值。
在本发明的一个示例性实施例中,将表2中第2至8行关于PE头提取的非数值型特征分为一组,组成一个字符串序列;将表2中第9至15行关于代码段提取的非数值型特征分为一组,组成一个字符串序列;最后两个第16,17行关于引入地址表和导出函数表提取的非数值型特征分为一组,组成一个字符串序列。
步骤S3041:采用Murmurhash3算法对输入的非数值型特征进行哈希。
Murmurhash是一种非加密哈希算法,具有哈希速度快,低碰撞率等特点,哈希值可选的有32位,64位,128位值,据计算,如采用128位哈希值,可以保证在千万级数据量下哈希碰撞几率几乎为0。本发明实施例示例性的采用哈希值为128位的Murmurhash3算法。
具体的,Murmurhash3算法通过选取一个滑动窗口获取连续2个比特块为一组,利用大整数乘法,移位操作,异或操作,一阶线性变换,累积求和等最终获取128位哈希值。
步骤S3042:采用Simhash对输入的非数值型特征进行哈希。
Simhash是一种局部敏感哈希,能够很好的保留原始数据的特征信息,哈希值的可对比性很强,例如采用海明距离可以较好的比较不同hash值之间的相似度。Simhash一般用于海量文档的去重复,在本发明实施例中将其用于对提取的字符串做特征处理。
本发明实施例提出的利用Simhash进行特征处理方法如下:
(1)利用2-gram方法将原始字符串转化为2字节n维向量,向量中每一维为2个字节。
例如字符串“MSVCP60.dll”转化为“[MS,SV,VC,CP,P6,60,0.,.d,dl,ll]”;
(2)对上述n维向量每一维设计一个权重Wi(i=0,1...,n-1),如果各权重均等,则可设
(3)对于n维向量中的每一维进行哈希,哈希方法可以自由选择,不限加密或非加密哈希算法,主要由希望映射的哈希值位数决定。本发明实施例中使用MD5作为此步的哈希方法,产生128位哈希值;
(4)对每一维哈希后的哈希值逐位加以权重Wi,如果该位是1则记为Wi,如果该位是0,则记为-Wi,再将所有加权后n维哈希值逐位求和,得到一个每一维为浮点型数据的128维向量;
(5)在这个128维向量中,若其中一维数据大于阈值σ,则该维记为1,若小于σ则记为0,若等于σ,则仍然记为0,则可以将该128维浮点型向量转化为128维比特串,即为最终simhash结果。
其中,阈值σ的具体计算方法如下:
其中Bij为步骤2中向量第i维哈希后的第j位的比特值,为1或0,Wi如步骤(2)定义。
步骤S3043:采用CRC32对输入的非数值型特征进行哈希。
CRC32是一种循环冗余校验算法,一般用于数据帧传输过程中正确性校验,本发明中将其用于将字符串哈希到32比特长度上,并用其进行特征处理。本发明实施例利用CRC32进行特征处理的步骤为:
(1)选取如下生成多项式:
C(x)=1+x+x2+x4+x5+x7+x8+x10+x11+x12+x16+x22+x23+x26+x32,其16进制序列为0xEDB88320。
(2)对于原始字符串序列的二进制形式以上述生成多项式为除数,做mod2除法运算,所得到的32位余数即为CRC32哈希编码。
步骤S305:对采用以上三种哈希算法得到的结果进行混合拼接和重组,以便形成新的特征向量和矩阵。本实施例中,每一组哈希值为128+128+32位,实际存储格式为字节类型。
如图4所示,本发明提出的混合拼接和重组方法:
针对每一组哈希值,对于前128+128位以字节为单位进行分词,并将每一字节型转化为整型,对后32位整体转化为长整型,这样每一组形成33个整型特征,再将三个分组依序拼接,共形成99个特征向量。
步骤S306:提取如表1所述的数值型特征,共641个整型特征。其中布尔类型视为取值位0,1的整型。
步骤S307:对所提取的总数740(即:641+99)个特征做标准化处理,以消除不同特征之间的数值范围差距带来的影响。其公式表述为:
其中,E(x)为该特征的均值,σ为标准差。
对标准化后的特征数据进行归一化处理,将每一行的每个特征数据都映射到[0,1]区间内。
步骤S308:处理后的数据组成维度M×740的特征矩阵,输入机器学习分类器进行训练。其中,M为样本的个数。
可选地,本发明实施例中,处理后的数据组成维度M×740的特征矩阵,并采用皮尔森相关系数,卡方检验等降维方法对特征矩阵进行降维,剔除明显相关性不强的特征列,再将结果输入机器学习分类器进行训练。
与本发明第一实施例所述方法相对应的,本发明第四实施例提供一种软件检测装置,如图5所示,具体包括:
特征提取模块510,用于提取软件样本库中各样本所包含的数值型特征和非数值型特征;
特征处理模块520,用于利用选定的N种非加密哈希算法对所述非数值型特征进行处理,并将处理结果转换为数值型特征;所述N为大于1的整数;
矩阵构造模块530,用于根据各样本中包含的所述数值型特征和转化得到的所述数值型特征,构造特征矩阵;
学习训练模块540,用于利用所述特征矩阵训练机器学习分类器;
检测模块550,用于利用所述机器学习分类器,对目标软件进行检测。
可选地,本发明实施例中,学习训练模块540,还用于利用测试样本集对训练完的所述机器学习分类器进行测试,以调整所述机器学习分类器的模型参数。
可选地,本发明实施例中,学习训练模块540,具体用于利用标注有恶意软件和正常软件的软件样本而构造出的特征矩阵,训练第一机器学习分类器,以对软件为恶意软件或者正常软件进行分类;以及利用标注有不同类型的恶意软件样本而构造出的特征矩阵,训练第二机器学习分类器,以对恶意软件的类型进行分类。
可选地,本发明实施例中,所述数值型特征包括如下特征中的一个或多个:代码头字段信息、代码段信息、字符串统计信息、样本总体统计信息、引入地址表中函数列表、导出函数列表、字节统计信息、以及字节信息熵统计。
可选地,本发明实施例中,所述非数值型特征包括如下特征中的一个或多个:软件头信息中可识别字符串序列、所有的路径字符串序列、所有的统一资源定位符字符串序列、所有的注册表项字符串序列、软件头信息的机器型号字符串、软件所有段名称字符串序列、入口段名称字符串、软件所有段中连续Q个以上可识别字符组成的字符串序列;其中,Q为正整数。
可选地,本发明实施例中,特征处理模块520,具体用于将所述非数值型特征按照设定的分组方式进行分组;针对每组非数值型特征,利用所述N种非加密哈希算法分别进行哈希处理,得到N个哈希值,并将得到的N个哈希值转化为整型;将各组的整型特征进行拼接,得到转换后的数值型特征。
可选地,本发明实施例中,矩阵构造模块530,具体用于对各所述数值型特征进行标准化处理;对标准化处理后的特征数据进行归一化处理;利用归一化处理后的特征数据构造出特征特征矩阵。
可选地,本发明实施例中,矩阵构造模块530,还用于在构造特征矩阵之后,按照设定的降维方法,对所述特征矩阵进行降维处理。
可选地,本发明实施例中,所述的N种非加密哈希算法包括以下算法中的至少两种:MurMurHash3算法、SimHash算法和CRC32算法。
上述各模块的具体实施过程可参见第一、二实施例,本实施例不再赘述。
综上所述,本发明实施例提出的软件检测方案,采用了基于混合非加密哈希特征和机器学习模型的软件检测方案,可以将从恶意软件样本中提取出的复杂字符串特征转化为易于机器学习算法处理的哈希特征,从而降低了模型训练难度,显著提高了训练速度,降低了空间开销,提升了恶意软件判别精度。
在本发明的第五实施例中,提供一种软件检测装置,如图6所示,具体包括:
特征提取模块610,用于提取软件样本库中各样本所包含的数值型特征和非数值型特征;
特征处理模块620,用于利用选定的N种非加密哈希算法对所述非数值型特征进行处理,并将处理结果转换为数值型特征;所述N为大于1的整数;
矩阵构造模块630,用于根据各样本中包含的所述数值型特征和转化得到的所述数值型特征,构造特征矩阵;
学习训练模块640,用于利用所述特征矩阵训练机器学习分类器;可选的,本模块可以设置为离线模块,离线训练完毕后将模型封装好,并传输给检测模块670;
文件格式判别模块650,用于检测输入的目标软件是否为本装置支持的软件格式,若是,则触发特征提取模块610,通过特征提取模块610接收传输过来的目标软件的文件,提取软件中所包含的数值型特征和/或非数值型特征,输入到文件预扫描模块660;
文件预扫描模块660,用于根据已有的恶意软件特征码库和规则库,搜索匹配的特征码,筛查恶意软件。
可选的,本模块采用传统的特征码匹配技术,以及yara规则匹配技术。如果通过特征码和规则匹配检测到恶意软件,则直接发送警报至结果记录与在线报警模块680;否则,触发特征处理模块620,由特征处理模块620利用选定的N种非加密哈希算法对从目标软件中提取的非数值型特征进行处理,并将处理结果转换为数值型特征;以及利用矩阵构造模块630根据从目标软件中提取的所述数值型特征和转化得到的所述数值型特征,构造特征矩阵,并将特征矩阵输入到检测模块670;
检测模块670,用于利用所述机器学习分类器,对目标软件进行检测。具体的,本模块设置为在线模块,利用已生成的检测和分类模型,接受外部输入的待测文件数据特征,判断是否为恶意软件,如为‘是’,则利用家族分类模型判定其属于哪一种类恶意软件。
结果记录与在线报警模块680:用于在线实时监控恶意软件检测结果,并实时发出恶意软件警告,警告方式可由用户选择,包括并不限日志,电子邮件,弹出窗口,短信等方式。
综上所述,本发明实施例提出的软件检测方案,采用了基于混合非加密哈希特征和机器学习模型的软件检测方案,可以将从恶意软件样本中提取出的复杂字符串特征转化为易于机器学习算法处理的哈希特征,从而降低了模型训练难度,显著提高了训练速度,降低了空间开销,提升了恶意软件判别精度。同时,本发明实施例所述方案,还通过文件预扫描模块对软件进行预判断,只有判断不出时,才输入本发明所述的分类模型,进一步的提高了判别效率。另外,本实施例还设置了报警模块,通过该模块进一步的提高了用户的使用体验。
在本发明的第六实施例中,提供一种计算设备,如图7所示,所述计算设备包括:存储器710、处理器720及通信总线730;所述通信总线730用于实现处理器720和存储器710之间的连接通信;
具体的,本发明实施例中,处理器720可以是通用处理器,例如中央处理器(Central Processing Unit,CPU),还可以是数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(英文:Application Specific Integrated Circuit,ASIC),或者是被配置成实施本发明实施例的一个或多个集成电路。其中,存储器710用于存储所述处理器720的可执行指令;
存储器710,用于存储程序代码,并将该程序代码传输给处理器520。存储器710可以包括易失性存储器(Volatile Memory),例如随机存取存储器(Random Access Memory,RAM);存储器710也可以包括非易失性存储器(Non-Volatile Memory),例如只读存储器(Read-Only Memory,ROM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,HDD)或固态硬盘(Solid-State Drive,SSD);存储器710还可以包括上述种类的存储器的组合。
具体的,本发明实施例中,处理器720用于执行存储器710中存储的应用程序中的软件检测程序,以实现如下方法步骤:
步骤1,提取软件样本库中各样本所包含的数值型特征和非数值型特征;
步骤2,利用选定的N种非加密哈希算法对所述非数值型特征进行处理,并将处理结果转换为数值型特征;所述N为大于1的整数;
步骤3,根据各样本中包含的所述数值型特征和转化得到的所述数值型特征,构造特征矩阵;
步骤4,利用所述特征矩阵训练机器学习分类器;
步骤5,利用所述机器学习分类器,对目标软件进行检测。
本实施例中各步骤的实施过程可参见第一至第三实施例,本实施例不再赘述。
在本发明第七实施例中,提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现如下方法步骤:
步骤1,提取软件样本库中各样本所包含的数值型特征和非数值型特征;
步骤2,利用选定的N种非加密哈希算法对所述非数值型特征进行处理,并将处理结果转换为数值型特征;所述N为大于1的整数;
步骤3,根据各样本中包含的所述数值型特征和转化得到的所述数值型特征,构造特征矩阵;
步骤4,利用所述特征矩阵训练机器学习分类器;
步骤5,利用所述机器学习分类器,对目标软件进行检测。
本实施例中各步骤的实施过程可参见第一至第三实施例,本实施例不再赘述。
其中,计算机存储介质可以是RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、移动硬盘、CD-ROM或者本领域已知的任何其他形式的存储介质。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依据所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
总之,以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (20)

1.一种软件检测方法,其特征在于,包括:
提取软件样本库中各样本所包含的数值型特征和非数值型特征;
利用选定的N种非加密哈希算法对所述非数值型特征进行处理,并将处理结果转换为数值型特征;所述N为大于1的整数;
根据各样本中包含的所述数值型特征和转化得到的所述数值型特征,构造特征矩阵;
利用所述特征矩阵训练机器学习分类器;
利用所述机器学习分类器,对目标软件进行检测。
2.如权利要求1所述的方法,其特征在于,利用所述机器学习分类器,对目标软件进行检测之前,还包括:
利用测试样本集对训练完的所述机器学习分类器进行测试,以调整所述机器学习分类器的模型参数。
3.如权利要求1所述的方法,其特征在于,利用所述特征矩阵训练机器学习分类器,具体包括:
利用标注有恶意软件和正常软件的软件样本而构造出的特征矩阵,训练第一机器学习分类器,以对软件为恶意软件或者正常软件进行分类;
利用标注有不同类型的恶意软件样本而构造出的特征矩阵,训练第二机器学习分类器,以对恶意软件的类型进行分类。
4.如权利要求1所述的方法,其特征在于,所述数值型特征包括如下特征中的一个或多个:代码头字段信息、代码段信息、字符串统计信息、样本总体统计信息、引入地址表中函数列表、导出函数列表、字节统计信息、以及字节信息熵统计。
5.如权利要求1所述的方法,其特征在于,所述非数值型特征包括如下特征中的一个或多个:软件头信息中可识别字符串序列、所有的路径字符串序列、所有的统一资源定位符字符串序列、所有的注册表项字符串序列、软件头信息的机器型号字符串、软件所有段名称字符串序列、入口段名称字符串、软件所有段中连续Q个以上可识别字符组成的字符串序列;其中,Q为正整数。
6.如权利要求1所述的方法,其特征在于,所述利用选定的N种非加密哈希算法对所述非数值型特征进行处理,并将处理结果转换为数值型特征,具体包括:
将所述非数值型特征按照设定的分组方式进行分组;
针对每组非数值型特征,利用所述N种非加密哈希算法分别进行哈希处理,得到N个哈希值,并将得到的N个哈希值转化为整型;
将各组的整型特征进行拼接,得到转换后的数值型特征。
7.如权利要求1所述的方法,其特征在于,所述根据各样本中包含的所述数值型特征和转化得到的所述数值型特征,构造特征矩阵,具体包括:
对各所述数值型特征进行标准化处理;
对标准化处理后的特征数据进行归一化处理;
利用归一化处理后的特征数据构造出特征特征矩阵。
8.如权利要求1所述的方法,其特征在于,在构造特征矩阵之后,还包括:按照设定的降维方法,对所述特征矩阵进行降维处理。
9.如权利要求1至8中任意一项所述的方法,其特征在于,所述N种非加密哈希算法包括以下算法中的至少两种:MurMurHash3算法、SimHash算法和CRC32算法。
10.一种软件检测装置,其特征在于,包括:
特征提取模块,用于提取软件样本库中各样本所包含的数值型特征和非数值型特征;
特征处理模块,用于利用选定的N种非加密哈希算法对所述非数值型特征进行处理,并将处理结果转换为数值型特征;所述N为大于1的整数;
矩阵构造模块,用于根据各样本中包含的所述数值型特征和转化得到的所述数值型特征,构造特征矩阵;
学习训练模块,用于利用所述特征矩阵训练机器学习分类器;
检测模块,用于利用所述机器学习分类器,对目标软件进行检测。
11.如权利要求10所述的装置,其特征在于,所述学习训练模块,还用于利用测试样本集对训练完的所述机器学习分类器进行测试,以调整所述机器学习分类器的模型参数。
12.如权利要求10所述的装置,其特征在于,所述学习训练模块,具体用于利用标注有恶意软件和正常软件的软件样本而构造出的特征矩阵,训练第一机器学习分类器,以对软件为恶意软件或者正常软件进行分类;以及利用标注有不同类型的恶意软件样本而构造出的特征矩阵,训练第二机器学习分类器,以对恶意软件的类型进行分类。
13.如权利要求10所述的装置,其特征在于,所述数值型特征包括如下特征中的一个或多个:代码头字段信息、代码段信息、字符串统计信息、样本总体统计信息、引入地址表中函数列表、导出函数列表、字节统计信息、以及字节信息熵统计。
14.如权利要求10所述的装置,其特征在于,所述非数值型特征包括如下特征中的一个或多个:软件头信息中可识别字符串序列、所有的路径字符串序列、所有的统一资源定位符字符串序列、所有的注册表项字符串序列、软件头信息的机器型号字符串、软件所有段名称字符串序列、入口段名称字符串、软件所有段中连续Q个以上可识别字符组成的字符串序列;其中,Q为正整数。
15.如权利要求10所述的装置,其特征在于,所述特征处理模块,具体用于将所述非数值型特征按照设定的分组方式进行分组;针对每组非数值型特征,利用所述N种非加密哈希算法分别进行哈希处理,得到N个哈希值,并将得到的N个哈希值转化为整型;将各组的整型特征进行拼接,得到转换后的数值型特征。
16.如权利要求10所述的装置,其特征在于,所述矩阵构造模块,具体用于对各所述数值型特征进行标准化处理;对标准化处理后的特征数据进行归一化处理;利用归一化处理后的特征数据构造出特征特征矩阵。
17.如权利要求10所述的装置,其特征在于,所述矩阵构造模块,还用于在构造特征矩阵之后,按照设定的降维方法,对所述特征矩阵进行降维处理。
18.如权利要求10至17中任意一项所述的装置,其特征在于,所述N种非加密哈希算法包括以下算法中的至少两种:MurMurHash3算法、SimHash算法和CRC32算法。
19.一种计算设备,其特征在于,所述计算设备包括:存储器、处理器及通信总线;所述通信总线用于实现处理器和存储器之间的连接通信;
所述处理器用于执行存储器中存储的软件检测程序,以实现如权利要求1至9中任一项所述的软件检测方法的步骤。
20.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现如权利要求1至9中任一项所述的软件检测方法的步骤。
CN201811257390.5A 2018-10-26 2018-10-26 软件检测方法、装置、设备及存储介质 Active CN109359439B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811257390.5A CN109359439B (zh) 2018-10-26 2018-10-26 软件检测方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811257390.5A CN109359439B (zh) 2018-10-26 2018-10-26 软件检测方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN109359439A CN109359439A (zh) 2019-02-19
CN109359439B true CN109359439B (zh) 2019-12-13

Family

ID=65346949

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811257390.5A Active CN109359439B (zh) 2018-10-26 2018-10-26 软件检测方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN109359439B (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109992969B (zh) * 2019-03-25 2023-03-21 腾讯科技(深圳)有限公司 一种恶意文件检测方法、装置及检测平台
CN110210224B (zh) * 2019-05-21 2023-01-31 暨南大学 一种基于描述熵的大数据移动软件相似性智能检测方法
CN112100453B (zh) * 2019-06-18 2024-05-28 深信服科技股份有限公司 一种字符串分布统计方法、***、设备及计算机存储介质
CN111143670A (zh) * 2019-12-09 2020-05-12 中国平安财产保险股份有限公司 一种信息确定方法及相关产品
CN111144459B (zh) * 2019-12-16 2022-12-16 重庆邮电大学 一种类不平衡的网络流量分类方法、装置及计算机设备
CN111079164B (zh) * 2019-12-18 2021-09-07 深圳前海微众银行股份有限公司 特征相关性计算方法、装置、设备及计算机可读存储介质
CN111352834B (zh) * 2020-02-25 2023-06-09 江苏大学 一种基于局部敏感哈希的自适应随机测试方法
CN111581640A (zh) * 2020-04-02 2020-08-25 北京兰云科技有限公司 一种恶意软件检测方法、装置及设备、存储介质
CN111949401A (zh) * 2020-07-31 2020-11-17 中国建设银行股份有限公司 一种任务分配方法和装置
CN112380537A (zh) * 2020-11-30 2021-02-19 北京天融信网络安全技术有限公司 一种检测恶意软件的方法、装置、存储介质和电子设备
CN112883375A (zh) * 2021-02-03 2021-06-01 深信服科技股份有限公司 恶意文件识别方法、装置、设备及存储介质
CN113254935A (zh) * 2021-07-02 2021-08-13 北京微步在线科技有限公司 恶意文件识别方法、装置及存储介质
CN113569241A (zh) * 2021-07-28 2021-10-29 新华三技术有限公司 一种病毒检测方法及装置
CN114115730B (zh) * 2021-11-02 2023-06-13 北京银盾泰安网络科技有限公司 一种应用容器存储引擎平台
CN115221857B (zh) * 2022-09-21 2023-01-13 中国电子信息产业集团有限公司 一种含数值类型的数据相似性检测方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104376262A (zh) * 2014-12-08 2015-02-25 中国科学院深圳先进技术研究院 一种基于Dalvik指令和权限组合的安卓恶意软件检测方法
CN106778266A (zh) * 2016-11-24 2017-05-31 天津大学 一种基于机器学习的安卓恶意软件动态检测方法
CN108595955A (zh) * 2018-04-25 2018-09-28 东北大学 一种安卓手机恶意应用检测***及方法
CN108614970A (zh) * 2018-04-03 2018-10-02 腾讯科技(深圳)有限公司 病毒程序的检测方法、模型训练方法、装置及设备

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070240222A1 (en) * 2006-04-06 2007-10-11 George Tuvell System and Method for Managing Malware Protection on Mobile Devices
US8201244B2 (en) * 2006-09-19 2012-06-12 Microsoft Corporation Automated malware signature generation

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104376262A (zh) * 2014-12-08 2015-02-25 中国科学院深圳先进技术研究院 一种基于Dalvik指令和权限组合的安卓恶意软件检测方法
CN106778266A (zh) * 2016-11-24 2017-05-31 天津大学 一种基于机器学习的安卓恶意软件动态检测方法
CN108614970A (zh) * 2018-04-03 2018-10-02 腾讯科技(深圳)有限公司 病毒程序的检测方法、模型训练方法、装置及设备
CN108595955A (zh) * 2018-04-25 2018-09-28 东北大学 一种安卓手机恶意应用检测***及方法

Also Published As

Publication number Publication date
CN109359439A (zh) 2019-02-19

Similar Documents

Publication Publication Date Title
CN109359439B (zh) 软件检测方法、装置、设备及存储介质
US11924233B2 (en) Server-supported malware detection and protection
Fan et al. Malicious sequential pattern mining for automatic malware detection
CN111832019B (zh) 基于生成对抗网络的恶意代码检测方法
CN109784056B (zh) 一种基于深度学习的恶意软件检测方法
RU2708356C1 (ru) Система и способ двухэтапной классификации файлов
CN112241530B (zh) 恶意pdf文档的检测方法及电子设备
Naik et al. Fuzzy-import hashing: A static analysis technique for malware detection
CN112329012B (zh) 针对包含JavaScript的恶意PDF文档的检测方法及电子设备
CN110362995A (zh) 一种基于逆向与机器学习的恶意软件检测及分析***
Balram et al. Static malware analysis using machine learning algorithms on APT1 dataset with string and PE header features
Naik et al. Fuzzy-Import Hashing: A malware analysis approach
Kakisim et al. Sequential opcode embedding-based malware detection method
O’Shaughnessy Image-based malware classification: A space filling curve approach
US20160197730A1 (en) Membership query method
Nahhas et al. Android Malware Detection Using ResNet-50 Stacking.
Ye et al. Android malware detection technology based on lightweight convolutional neural networks
Oliver et al. Designing the elements of a fuzzy hashing scheme
Nguyen et al. Lightgbm-based ransomware detection using api call sequences
CN115545091A (zh) 基于集成学习器的恶意程序api调用序列检测方法
Uhlig et al. Combining AI and AM–Improving approximate matching through transformer networks
CN114398887A (zh) 一种文本分类方法、装置及电子设备
Al-Taharwa et al. Obfuscated malicious javascript detection by causal relations finding
Wai et al. Clustering based opcode graph generation for malware variant detection
Singh et al. Bytefreq: Malware clustering using byte frequency

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant