CN108334776B - 一种变形恶意代码的检测方法及装置 - Google Patents

一种变形恶意代码的检测方法及装置 Download PDF

Info

Publication number
CN108334776B
CN108334776B CN201710037726.6A CN201710037726A CN108334776B CN 108334776 B CN108334776 B CN 108334776B CN 201710037726 A CN201710037726 A CN 201710037726A CN 108334776 B CN108334776 B CN 108334776B
Authority
CN
China
Prior art keywords
code
characteristic
sampling
comparison result
similarity
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
CN201710037726.6A
Other languages
English (en)
Other versions
CN108334776A (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.)
China Mobile Communications Group Co Ltd
China Mobile Communications Ltd Research Institute
Original Assignee
China Mobile Communications Group Co Ltd
China Mobile Communications Ltd Research Institute
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 China Mobile Communications Group Co Ltd, China Mobile Communications Ltd Research Institute filed Critical China Mobile Communications Group Co Ltd
Priority to CN201710037726.6A priority Critical patent/CN108334776B/zh
Publication of CN108334776A publication Critical patent/CN108334776A/zh
Application granted granted Critical
Publication of CN108334776B publication Critical patent/CN108334776B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/563Static detection by source code analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Virology (AREA)
  • Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请公开了一种变形恶意代码的检测方法及装置,涉及网络安全领域。包括:对待检测代码进行全抽样和定位抽样,获取所述待检测代码的特征值;将所述待检测代码的特征值与预先存储的恶意代码库中的已知恶意代码的特征值进行相似度比较,获取相似度比较结果;将所述相似度比较结果与预先设置的相似度阈值进行比较,根据比较结果确定变形恶意代码;其中,特征值包括:代码长度、全抽样的特征向量、定位抽样的初始字符集、定位抽样获得的特征字符集的长度以及所述特征字符集的特征向量。根据本技术方案,解决了现有技术在检测变形恶意代码对编程语言的语法分析的依赖性。

Description

一种变形恶意代码的检测方法及装置
技术领域
本发明涉及网络安全领域,尤其涉及变形恶意代码的检测方法及装置。
背景技术
随着网络技术的快速发展,恶意代码的种类、数量和传播速度都在逐渐增长,对网络安全的危害也越来越大。为了规避恶意代码的检出,在已有恶意代码的基础上,通过增减空白字符、修改关键字、调整代码顺序、等效语法替换等方式,形成变形恶意代码。在现有技术中,变形恶意代码的检测主要通过对待检测代码的编程语言进行语法分析,将语法分析的结果与已知的恶意代码的语法进行相似度比较来实现的。
在实现本发明的过程中,发明人发现,采用现有技术检测变形恶意代码需要具备对代码语言的语法分析能力,检测方法比较复杂,不易实现。
发明内容
有鉴于此,为了解决上述技术问题,本发明实施例提出了一种变形恶意代码的检测方法及装置。
第一方面,本发明提供一种变形恶意代码的检测方法,包括:
对待检测代码进行全抽样和定位抽样,获取所述待检测代码的特征值;
将所述待检测代码的特征值与预先存储的恶意代码库中的已知恶意代码的特征值进行相似度比较,获取相似度比较结果;
将所述相似度比较结果与预先设置的相似度阈值进行比较,根据比较结果确定变形恶意代码;
其中,所述特征值包括:代码长度、全抽样的特征向量、定位抽样的初始字符集、定位抽样获得的特征字符集的长度以及所述特征字符集的特征向量。
进一步地,所述对待检测代码进行定位抽样包括:
获取初始字符集;
分别以所述初始字符集中每个字符为起点,根据预先设置的抽样间隔、抽样方向和抽样字符个数对所述待检测代码进行定位抽样。
进一步地,所述获取所述待检测代码的初始字符集包括:
从所述恶意代码库中的已知恶意代码的特征值中选取已知恶意代码的初始字符集为初始字符集;
其中,所述已知恶意代码的初始字符集根据如下步骤获得:
从所述已知恶意代码中选取两个以上特征字符;
获取所述两个以上特征字符在所述已知恶意代码中出现的次数;
将所述两个以上特征字符在所述已知恶意代码中出现的次数与所述已知恶意代码的字符总数进行比较,获取第一比较结果;
将所述第一比较结果与预先设置的特征字符出现比例阈值进行比较,根据比较结果获取所述已知恶意代码的初始字符集。
进一步地,所述将所述待检测代码的特征值与预先存储的恶意代码库中的已知恶意代码的特征值进行相似度比较,获取相似度比较结果包括:
将所述待检测代码的长度和全抽样的特征向量与所述已知恶意代码的长度和全抽样的特征向量进行相似度比较,获取全抽样相似度比较结果;
将所述待检测代码的定位抽样获得的特征字符集的长度以及所述特征字符集的特征向量,与所述已知恶意代码的定位抽样获得的特征字符集的长度以及所述特征字符集的特征向量进行相似度比较,获取定位抽样相似度比较结果;
根据所述全抽样相似度比较结果和定位抽样相似度比较结果,获取所述待检测代码与所述已知恶意代码的相似度比较结果。
进一步地,如果所述待检测代码的特征值和/或所述已知恶意代码的特征值中定位抽样的初始字符集、定位抽样获得的特征字符集的长度以及所述特征字符集的特征向量的数量为两个以上;
所述根据所述全抽样相似度比较结果和定位抽样相似度比较结果,获取所述待检测代码与所述已知恶意代码的相似度比较结果之后,还包括:
根据预先设置的选取策略,从所述相似度比较结果中选取目标相似度比较结果;
则所述将所述相似度比较结果与预先设置的相似度阈值进行比较,根据比较结果确定变形恶意代码替换为:
将所述目标相似度比较结果与预先设置的相似度阈值进行比较,根据比较结果确定变形恶意代码。
进一步地,所述对待检测代码进行全抽样和定位抽样,获取所述待检测代码的特征值之前,还包括:
对所述待检测代码进行预处理,删除所述待检测代码中字母以外的字符。
第二方面,本发明提供一种变形恶意代码的检测装置,包括:
第一获取模块,用于对待检测代码进行全抽样和定位抽样,获取所述待检测代码的特征值;
第一比较模块,用于将所述第一获取模块获取的待检测代码的特征值与预先存储的恶意代码库中的已知恶意代码的特征值进行相似度比较,获取相似度比较结果;
第二比较模块,用于将所述第一比较模块获取的相似度比较结果与预先设置的相似度阈值进行比较,根据比较结果确定变形恶意代码;
其中,所述特征值包括:代码长度、全抽样的特征向量、定位抽样的初始字符集、定位抽样获得的特征字符集的长度以及所述特征字符集的特征向量。
进一步地,所述第一获取模块包括:
初始字符集获取子模块,用于获取初始字符集;
定位抽样子模块,用于分别以所述初始字符集获取子模块获取的初始字符集中每个字符为起点,根据预先设置的抽样间隔、抽样方向和抽样字符个数对所述待检测代码进行定位抽样。
进一步地,所述初始字符集获取子模块,具体用于从所述恶意代码库中的已知恶意代码的特征值中选取已知恶意代码的初始字符集为初始字符集;
其中,所述已知恶意代码的初始字符集根据如下步骤获得:
从所述已知恶意代码中选取两个以上特征字符;
获取所述两个以上特征字符在所述已知恶意代码中出现的次数;
将所述两个以上特征字符在所述已知恶意代码中出现的次数与所述已知恶意代码的字符总数进行比较,获取第一比较结果;
将所述第一比较结果与预先设置的特征字符出现比例阈值进行比较,根据比较结果获取所述已知恶意代码的初始字符集。
进一步地,所述第一比较模块包括:
全抽样比较子模块,用于将所述待检测代码的长度和全抽样的特征向量与所述已知恶意代码的长度和全抽样的特征向量进行相似度比较,获取全抽样相似度比较结果;
定位抽样比较子模块,用于将所述待检测代码的定位抽样获得的特征字符集的长度以及所述特征字符集的特征向量,与所述已知恶意代码的定位抽样获得的特征字符集的长度以及所述特征字符集的特征向量进行相似度比较,获取定位抽样相似度比较结果;
相似度比较子模块,用于根据所述全抽样比较子模块获取的全抽样相似度比较结果和所述定位抽样比较子模块获取的定位抽样相似度比较结果,获取所述待检测代码与所述已知恶意代码的相似度比较结果。
进一步地,所述第一比较模块还包括:
目标选取子模块,用于如果所述待检测代码的特征值和/或所述已知恶意代码的特征值中定位抽样的初始字符集、定位抽样获得的特征字符集的长度以及所述特征字符集的特征向量的数量为两个以上,根据预先设置的选取策略,从所述相似度比较子模块获取的相似度比较结果中选取目标相似度比较结果;
则所述第二比较模块,还用于将所述目标相似度比较结果与预先设置的相似度阈值进行比较,根据比较结果确定变形恶意代码。
进一步地,所述变形恶意代码的检测装置,还包括:
预处理模块,用于对所述待检测代码进行预处理,删除所述待检测代码中字母以外的字符。
本发明实施例的有益效果如下:
本发明实施例提供的一种变形恶意代码的检测方法及装置,可以对待检测代码进行全抽样和定位抽样,获取其特征值,并将该特征值与已知的恶意代码的特征值进行比较,从而确定是否为变形恶意代码,由于本发明实施例提供的技术方案中特征值仅包括代码长度、全抽样的特征向量、定位抽样的初始字符集、定位抽样获得的特征字符集的长度以及所述特征字符集的特征向量等参数,获取以上参数的方法仅为全抽样和定位抽样,所以本发明实施例提供的技术方案在进行变形恶意代码检测时不依赖于编程语言的语法分析,检测方法简单,并且容易实现,另外,本发明实施例提供的技术方案可以利用已知恶意代码的特征值进行相似度比较,所以检测结果的可信度高。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1为本发明实施例提供的变形恶意代码的检测方法的流程图;
图2为图1所示的步骤101中对待检测代码进行定位抽样的流程图;
图3为图2所示的步骤201中已知恶意代码的初始字符集的获取方法的流程图;
图4为图1所示的步骤102的流程图;
图5为本发明实施例提供的变形恶意代码检测方法的流程图;
图6为本发明实施例提供的变形恶意代码的检测装置的结构示意图;
图7为图6所示的第一获取模块601的结构示意图;
图8为图6所示的第一比较模块602的结构示意图;
图9为本发明实施例提供的变形恶意代码的检测装置的结构示意图。
具体实施方式
下面将结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。另外还需要说明的是,为了便于描述,附图中仅示出了与发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
为了解决现有技术提供的技术方案需要具备对代码语言的语法分析能力,使得检测方法复杂,不易实现的问题,本发明实施例提供一种变形恶意代码的检测方法及装置。
如图1所示,本发明实施例提供一种变形恶意代码的检测方法,包括:
步骤101,对待检测代码进行全抽样和定位抽样,获取待检测代码的特征值。
在本实施例中,待检测代码的特征值包括:代码长度、全抽样的特征向量、定位抽样的初始字符集、定位抽样获得的特征字符集的长度以及特征字符集的特征向量。
步骤101具体可以分文两步:
首先,对待检测代码进行全抽样,获取代码长度和全抽样特征向量。
1、获取待检测代码的全部字符,生成全抽样字符集。例如:待检测代码包括1000个字符,则该待检测代码的全抽样获得的全抽样字符集为全部1000个字符。
2、根据全抽样字符集内包含的字符数获取代码长度。
3、通过计算全抽样字符集中每个字符的向量,获取全抽样的特征向量。具体地,每个字符的ASCII码为该字符的维度,每个字符在待检测代码中出现的次数为该字符的维数值,生成每个字符的向量,根据所有字符向量生成全抽样的特征向量。
然后,对待检测代码进行定位抽样,获取定位抽样的初始字符集、定位抽样获得的特征字符集的长度以及特征字符集的特征向量。
在本实施例中,如图2所示,对待检测代码进行定位抽样的步骤可以包括:
步骤201,获取初始字符集。
在本实施例中,步骤201具体为从恶意代码库中的已知恶意代码的特征值中选取已知恶意代码的初始字符集为初始字符集。
需要说明的是,为了使检测结果更准确,如图3所示,已知恶意代码的初始字符集根据如下步骤获得:
步骤301,从已知恶意代码中选取两个以上特征字符。
步骤302,获取两个以上特征字符在已知恶意代码中出现的次数。
步骤303,将两个以上特征字符在已知恶意代码中出现的次数与已知恶意代码的字符总数进行比较,获取第一比较结果。
步骤304,将第一比较结果与预先设置的特征字符出现比例阈值进行比较,根据比较结果获取已知恶意代码的初始字符集。
在本实施例,特征字符出现比例阈值可以是根据实际需要设定的,例如,可以设定为1/3,则此时,如果第一比较结果大于1/3则确定步骤301选取的特征字符组成的字符集合为初始字符集;否则,重新执行步骤301-304。
当然,以上仅为具体的举例,在实际的使用过程中,已知恶意代码的初始字符集也可以通过其他方法获取,例如:可以通过随机选取的方式获取已知恶意代码初始字符集,此处不对每种情况进行一一赘述。
步骤202,分别以初始字符集中每个字符为起点,根据预先设置的抽样间隔、抽样方向和抽样字符个数对待检测代码进行定位抽样。
本实施例并不对抽样间隔、抽样方向和抽样字符个数进行限定,在实际的使用过程中,抽样间隔和抽样字符个数均可以为n,其中n=1、2、3…,抽样方向可以为前向和后向。
为了使本领域技术人员能够更清楚地理解本发明实施例提供的技术方案,下面以具体的举例对如图2所示的技术方案进行说明:
假设待检测代码为:<?php echo’<p>Hello World</p>;?>
通过随机选取的方式获取的初始字符集为:phle
抽样间隔为:1
抽样方向为:向后
抽样字符个数为:1
则此时,采用图2所示的技术方案获得的定位抽样结果为:pech'HloW<'
需要说明的是,为了防止溢出,本发明实施例中,待检测代码的结构为首尾相连形式,即:待检测代码的最后一个字符的下一位字符为待检测代码的第一个字符。
在本实施例中,定位抽样获得的结果即为定位抽样获得的特征字符集,如pech'HloW<';定位抽样获得的特征字符集的长度为定位抽样字符集字母总数;特征字符集的特征向量的具体获取方法与全抽样的特征向量的获取方法相同,此处不再赘述。
步骤102,将待检测代码的特征值与预先存储的恶意代码库中的已知恶意代码的特征值进行相似度比较,获取相似度比较结果。
在本实施例中,已知恶意代码的特征值包括:代码长度、全抽样的特征向量、定位抽样的初始字符集、定位抽样获得的特征字符集的长度以及所述特征字符集的特征向量。已知恶意代码的特征值的具体获取方法与步骤101中待检测代码的特征值获取方法相同,此处不再赘述。
如图4所示,步骤102具体可以包括:
步骤401,将待检测代码的长度和全抽样的特征向量与已知恶意代码的长度和全抽样的特征向量进行相似度比较,获取全抽样相似度比较结果。
1、将待检测代码的长度和已知恶意代码的长度进行比较,获取代码长度比较结果。
例如:待检测代码的长度为n1,恶意代码的长度为n2,其中,n1>=n2,则代码长度比较结果w=n2/n1。
2、将待检测代码的全抽样的特征向量与已知恶意代码的全抽样的特征向量进行比较,获取特征向量比较结果。
例如:待检测代码的全抽样的特征向量为x1,已知恶意代码的全抽样的特征向量为x2,获取x1和x2的夹角θ,则特征向量比较结果v=cosθ。
3、根据代码长度比较结果和特征向量比较结果获取全抽样比较结果。
例如:代码长度比较结果w=n2/n1,特征向量比较结果v=cosθ,则全抽样比较结果为s=w*v。
步骤402,将待检测代码的定位抽样获得的特征字符集的长度以及特征字符集的特征向量,与已知恶意代码的定位抽样获得的特征字符集的长度以及特征字符集的特征向量进行相似度比较,获取定位抽样相似度比较结果。
在本实施例中,步骤402与步骤401的实现方法相同,此次不再赘述。
步骤403,根据全抽样相似度比较结果和定位抽样相似度比较结果,获取待检测代码与已知恶意代码的相似度比较结果。
例如:全抽样相似度比较结果为s,定位抽样相似度比较结果s’,则相似度比较结果为S=s*s’。
步骤103,将相似度比较结果与预先设置的相似度阈值进行比较,根据比较结果确定变形恶意代码。
本实施例不对相似度阈值的具体数值进行限定,在实际的使用过程中可以根据需要任意设定。当相似度比较结果>=相似度阈值时,待检测代码为变形恶意代码。
需要说明的是,本发明实施例并不对定位抽样的次数进行限定,在实际的使用过程中,可以对待检测代码和/或已知恶意代码进行多次定位抽样,如果待检测代码的特征值和/或已知恶意代码的特征值中定位抽样的初始字符集、定位抽样获得的特征字符集的长度以及所述特征字符集的特征向量的数量为两个以上,则步骤403之后还可以包括根据预先设置的选取策略,从相似度比较结果中选取目标相似度比较结果的步骤。
则此时,步骤103可以替换为将目标相似度比较结果与预先设置的相似度阈值进行比较,根据比较结果确定变形恶意代码。
本发明实施例不对选取策略进行限定,在实际的使用过程中选取策略可以为取相似度比较结果中的最小值、最大值、平均值或者乘积等等,此处不做一一赘述。
进一步地,为了使检测结果更准确,如图5所示,本发明实施例提供的变形恶意代码的检测方法在步骤101之前,还可以包括:
步骤100,对待检测代码进行预处理,删除待检测代码中字母以外的字符。
在本实施例中,待检测代码中字母以外的字符可以包括:白字符(空格、制表符、换行符等),括号,甚至所有标点符号等。
本发明实施例提供的一种变形恶意代码的检测方法,可以对待检测代码进行全抽样和定位抽样,获取器特征值,并将该特征值与已知的恶意代码的特征值进行比较,从而确定是否为变形恶意代码,由于本发明实施例提供的技术方案中特征值仅包括代码长度、全抽样的特征向量、定位抽样的初始字符集、定位抽样获得的特征字符集的长度以及所述特征字符集的特征向量等参数,获取以上参数的方法仅为全抽样和定位抽样,所以本发明实施例提供的技术方案在进行变形恶意代码检测时不依赖于编程语言的语法分析,检测方法简单,并且容易实现,另外,本发明实施例提供的技术方案可以利用已知恶意代码的特征值进行相似度比较,所以检测结果的可信度高。
如图6所示,本发明实施例还提供一种变形恶意代码的检测装置,包括;
第一获取模块601,用于对待检测代码进行全抽样和定位抽样,获取所述待检测代码的特征值;
第一比较模块602,用于将所述第一获取模块601获取的待检测代码的特征值与预先存储的恶意代码库中的已知恶意代码的特征值进行相似度比较,获取相似度比较结果;
第二比较模块603,用于将所述第一比较模块602获取的相似度比较结果与预先设置的相似度阈值进行比较,根据比较结果确定变形恶意代码;
其中,所述特征值包括:代码长度、全抽样的特征向量、定位抽样的初始字符集、定位抽样获得的特征字符集的长度以及所述特征字符集的特征向量。
进一步地,如图7所示,第一获取模块601可以包括:
初始字符集获取子模块701,用于获取初始字符集;
定位抽样子模块702,用于分别以所述初始字符集获取子模块701获取的初始字符集中每个字符为起点,根据预先设置的抽样间隔、抽样方向和抽样字符个数对所述待检测代码进行定位抽样。
进一步地,初始字符集获取子模块701,具体用于从所述恶意代码库中的已知恶意代码的特征值中选取已知恶意代码的初始字符集为初始字符集;
其中,所述已知恶意代码的初始字符集根据如下步骤获得:
从所述已知恶意代码中选取两个以上特征字符;
获取所述两个以上特征字符在所述已知恶意代码中出现的次数;
将所述两个以上特征字符在所述已知恶意代码中出现的次数与所述已知恶意代码的字符总数进行比较,获取第一比较结果;
将所述第一比较结果与预先设置的特征字符出现比例阈值进行比较,根据比较结果获取所述已知恶意代码的初始字符集。
进一步地,如图8所示,第一比较模块602可以包括:
全抽样比较子模块801,用于将所述待检测代码的长度和全抽样的特征向量与所述已知恶意代码的长度和全抽样的特征向量进行相似度比较,获取全抽样相似度比较结果;
定位抽样比较子模块802,用于将所述待检测代码的定位抽样获得的特征字符集的长度以及所述特征字符集的特征向量,与所述已知恶意代码的定位抽样获得的特征字符集的长度以及所述特征字符集的特征向量进行相似度比较,获取定位抽样相似度比较结果;
相似度比较子模块803,用于根据所述全抽样比较子模块801获取的全抽样相似度比较结果和所述定位抽样比较子模块802获取的定位抽样相似度比较结果,获取所述待检测代码与所述已知恶意代码的相似度比较结果。
进一步地,如图8所示,第一比较模块602还可以包括:
目标选取子模块804,用于如果所述待检测代码的特征值和/或所述已知恶意代码的特征值中定位抽样的初始字符集、定位抽样获得的特征字符集的长度以及所述特征字符集的特征向量的数量为两个以上,根据预先设置的选取策略,从所述相似度比较子模块获取的相似度比较结果中选取目标相似度比较结果;
则所述第二比较模块603,还用于将所述目标相似度比较结果与预先设置的相似度阈值进行比较,根据比较结果确定变形恶意代码。
进一步地,如图9所示,本发明实施例提供的变形恶意代码的检测方法,还可以包括:
预处理模块600,用于对所述待检测代码进行预处理,删除所述待检测代码中字母以外的字符。
本发明实施例提供的变形恶意代码的检测装置具体的实现方法可以参见本发明实施例提供的变形恶意代码的检测方法所述,此处不再赘述。
本发明实施例提供的一种变形恶意代码的检测装置,可以对待检测代码进行全抽样和定位抽样,获取器特征值,并将该特征值与已知的恶意代码的特征值进行比较,从而确定是否为变形恶意代码,由于本发明实施例提供的技术方案中特征值仅包括代码长度、全抽样的特征向量、定位抽样的初始字符集、定位抽样获得的特征字符集的长度以及所述特征字符集的特征向量等参数,获取以上参数的方法仅为全抽样和定位抽样,所以本发明实施例提供的技术方案在进行变形恶意代码检测时不依赖于编程语言的语法分析,检测方法简单,并且容易实现,另外,本发明实施例提供的技术方案可以利用已知恶意代码的特征值进行相似度比较,所以检测结果的可信度高。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

Claims (10)

1.一种变形恶意代码的检测方法,其特征在于,包括:
对待检测代码进行全抽样和定位抽样,获取所述待检测代码的特征值;
将所述待检测代码的特征值与预先存储的恶意代码库中的已知恶意代码的特征值进行相似度比较,获取相似度比较结果;
将所述相似度比较结果与预先设置的相似度阈值进行比较,根据比较结果确定变形恶意代码;
其中,所述特征值包括:代码长度、全抽样的特征向量、定位抽样的初始字符集、定位抽样获得的特征字符集的长度以及所述特征字符集的特征向量,其中,从所述恶意代码库中的已知恶意代码的特征值中选取已知恶意代码的定位抽样的初始字符集,包括:已知恶意代码的定位抽样的初始字符集根据如下步骤获得:从所述已知恶意代码中选取两个以上特征字符;获取所述两个以上特征字符在所述已知恶意代码中出现的次数;将所述两个以上特征字符在所述已知恶意代码中出现的次数与所述已知恶意代码的字符总数进行比较,获取第一比较结果;将所述第一比较结果与预先设置的特征字符出现比例阈值进行比较,根据比较结果获取所述已知恶意代码的初始字符集。
2.根据权利要求1所述的检测方法,其特征在于,所述对待检测代码进行定位抽样包括:
获取初始字符集;
分别以所述初始字符集中每个字符为起点,根据预先设置的抽样间隔、抽样方向和抽样字符个数对所述待检测代码进行定位抽样,得到待检测代码的特征字符集。
3.根据权利要求1所述的检测方法,其特征在于,所述将所述待检测代码的特征值与预先存储的恶意代码库中的已知恶意代码的特征值进行相似度比较,获取相似度比较结果包括:
将所述待检测代码的长度和全抽样的特征向量与所述已知恶意代码的长度和全抽样的特征向量进行相似度比较,获取全抽样相似度比较结果;
将所述待检测代码的定位抽样获得的特征字符集的长度以及所述特征字符集的特征向量,与所述已知恶意代码的定位抽样获得的特征字符集的长度以及所述特征字符集的特征向量进行相似度比较,获取定位抽样相似度比较结果;
根据所述全抽样相似度比较结果和定位抽样相似度比较结果,获取所述待检测代码与所述已知恶意代码的相似度比较结果。
4.根据权利要求3所述的检测方法,其特征在于,如果所述待检测代码的特征值和/或所述已知恶意代码的特征值中定位抽样的初始字符集、定位抽样获得的特征字符集的长度以及所述特征字符集的特征向量的数量为两个以上;
所述根据所述全抽样相似度比较结果和定位抽样相似度比较结果,获取所述待检测代码与所述已知恶意代码的相似度比较结果之后,还包括:
根据预先设置的选取策略,从所述相似度比较结果中选取目标相似度比较结果;
则所述将所述相似度比较结果与预先设置的相似度阈值进行比较,根据比较结果确定变形恶意代码替换为:
将所述目标相似度比较结果与预先设置的相似度阈值进行比较,根据比较结果确定变形恶意代码。
5.根据权利要求1-权利要求4中任意一项所述的检测方法,其特征在于,所述对待检测代码进行全抽样和定位抽样,获取所述待检测代码的特征值之前,还包括:
对所述待检测代码进行预处理,删除所述待检测代码中字母以外的字符。
6.一种变形恶意代码的检测装置,其特征在于,包括;
第一获取模块,用于对待检测代码进行全抽样和定位抽样,获取所述待检测代码的特征值;
第一比较模块,用于将所述第一获取模块获取的待检测代码的特征值与预先存储的恶意代码库中的已知恶意代码的特征值进行相似度比较,获取相似度比较结果;
第二比较模块,用于将所述第一比较模块获取的相似度比较结果与预先设置的相似度阈值进行比较,根据比较结果确定变形恶意代码;
其中,所述特征值包括:代码长度、全抽样的特征向量、定位抽样的初始字符集、定位抽样获得的特征字符集的长度以及所述特征字符集的特征向量,其中,从所述恶意代码库中的已知恶意代码的特征值中选取已知恶意代码的定位抽样的初始字符集,包括:已知恶意代码的定位抽样的初始字符集根据如下步骤获得:从所述已知恶意代码中选取两个以上特征字符;获取所述两个以上特征字符在所述已知恶意代码中出现的次数;将所述两个以上特征字符在所述已知恶意代码中出现的次数与所述已知恶意代码的字符总数进行比较,获取第一比较结果;将所述第一比较结果与预先设置的特征字符出现比例阈值进行比较,根据比较结果获取所述已知恶意代码的初始字符集。
7.根据权利要求6所述的装置,其特征在于,所述第一获取模块包括:
初始字符集获取子模块,用于获取初始字符集;
定位抽样子模块,用于分别以所述初始字符集获取子模块获取的初始字符集中每个字符为起点,根据预先设置的抽样间隔、抽样方向和抽样字符个数对所述待检测代码进行定位抽样。
8.根据权利要求6所述的装置,其特征在于,所述第一比较模块包括:
全抽样比较子模块,用于将所述待检测代码的长度和全抽样的特征向量与所述已知恶意代码的长度和全抽样的特征向量进行相似度比较,获取全抽样相似度比较结果;
定位抽样比较子模块,用于将所述待检测代码的定位抽样获得的特征字符集的长度以及所述特征字符集的特征向量,与所述已知恶意代码的定位抽样获得的特征字符集的长度以及所述特征字符集的特征向量进行相似度比较,获取定位抽样相似度比较结果;
相似度比较子模块,用于根据所述全抽样比较子模块获取的全抽样相似度比较结果和所述定位抽样比较子模块获取的定位抽样相似度比较结果,获取所述待检测代码与所述已知恶意代码的相似度比较结果。
9.根据权利要求8所述的装置,其特征在于,所述第一比较模块还包括:
目标选取子模块,用于如果所述待检测代码的特征值和/或所述已知恶意代码的特征值中定位抽样的初始字符集、定位抽样获得的特征字符集的长度以及所述特征字符集的特征向量的数量为两个以上,根据预先设置的选取策略,从所述相似度比较子模块获取的相似度比较结果中选取目标相似度比较结果;
则所述第二比较模块,还用于将所述目标相似度比较结果与预先设置的相似度阈值进行比较,根据比较结果确定变形恶意代码。
10.根据权利要求6-权利要求9中任意一项所述的装置,其特征在于,还包括:
预处理模块,用于对所述待检测代码进行预处理,删除所述待检测代码中字母以外的字符。
CN201710037726.6A 2017-01-19 2017-01-19 一种变形恶意代码的检测方法及装置 Active CN108334776B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710037726.6A CN108334776B (zh) 2017-01-19 2017-01-19 一种变形恶意代码的检测方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710037726.6A CN108334776B (zh) 2017-01-19 2017-01-19 一种变形恶意代码的检测方法及装置

Publications (2)

Publication Number Publication Date
CN108334776A CN108334776A (zh) 2018-07-27
CN108334776B true CN108334776B (zh) 2020-09-04

Family

ID=62922657

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710037726.6A Active CN108334776B (zh) 2017-01-19 2017-01-19 一种变形恶意代码的检测方法及装置

Country Status (1)

Country Link
CN (1) CN108334776B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111061469B (zh) * 2019-11-06 2023-09-15 贝壳技术有限公司 Web前端源代码生成方法、装置、存储介质及处理器
CN111339531B (zh) * 2020-02-24 2023-12-19 南开大学 恶意代码的检测方法、装置、存储介质及电子设备
KR102491451B1 (ko) * 2020-12-31 2023-01-27 주식회사 이스트시큐리티 심층 신경망 기반의 악성코드 탐지 분류체계의 유사도를 반영하는 시그니처 생성 장치, 이를 위한 방법 및 이 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체
CN113254928B (zh) * 2021-05-14 2023-03-17 重庆贝特计算机系统工程有限公司 基于工业互联网远程恶意代码识别方法
CN113507445B (zh) * 2021-06-10 2022-05-17 广州大学 一种物联网第三方规则安全性的检测方法和装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160100887A (ko) * 2016-08-12 2016-08-24 충남대학교산학협력단 코드 블록 비교를 통한 악성 코드 탐지 방법

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102811213A (zh) * 2011-11-23 2012-12-05 北京安天电子设备有限公司 基于模糊哈希算法的恶意代码检测系统及方法
CN102663286B (zh) * 2012-03-21 2015-05-06 北京奇虎科技有限公司 一种病毒apk的识别方法及装置
CN104424435B (zh) * 2013-08-22 2018-12-04 腾讯科技(深圳)有限公司 一种获取病毒特征码的方法及装置
CN103473506B (zh) * 2013-08-30 2016-12-28 北京奇虎科技有限公司 用于识别恶意apk文件的方法和装置
CN103886258A (zh) * 2014-03-10 2014-06-25 珠海市君天电子科技有限公司 一种病毒检测方法及装置
CN103902911B (zh) * 2014-04-16 2016-09-14 南京大学 一种基于程序结构特征的恶意程序检测方法
CN104700033B (zh) * 2015-03-30 2019-01-29 北京瑞星网安技术股份有限公司 病毒检测的方法及装置
CN104778407B (zh) * 2015-04-14 2017-08-08 电子科技大学 一种多维无特征码恶意程序检测方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160100887A (ko) * 2016-08-12 2016-08-24 충남대학교산학협력단 코드 블록 비교를 통한 악성 코드 탐지 방법

Also Published As

Publication number Publication date
CN108334776A (zh) 2018-07-27

Similar Documents

Publication Publication Date Title
CN108334776B (zh) 一种变形恶意代码的检测方法及装置
US10796244B2 (en) Method and apparatus for labeling training samples
CN108780048B (zh) 一种确定检测设备的方法、检测装置及可读存储介质
CN107273406B (zh) 任务对话系统中的对话处理方法及装置
US8886635B2 (en) Apparatus and method for recognizing content using audio signal
CN106658672B (zh) 一种无线保真Wi-Fi连接方法及移动终端
US20160147882A1 (en) Object Search Method and Apparatus
CN107168546B (zh) 输入提示方法及装置
KR20180064808A (ko) 입력 텍스트를 자동으로 확장하는 시스템 및 방법
CN105320645B (zh) 中文企业名称的识别方法
CN110263122B (zh) 一种关键词获取方法、装置及计算机可读存储介质
CN104572717B (zh) 信息搜索方法和装置
US20140150099A1 (en) Method and device for detecting malicious code on web pages
CN109766259B (zh) 一种基于复合蜕变关系的分类器测试方法及系统
CN109300474B (zh) 一种语音信号处理方法及装置
CN112037775B (zh) 语音识别方法、装置、设备及存储介质
CN107948721B (zh) 推送信息的方法和装置
CN106384587A (zh) 一种语音识别方法及系统
CN114419490B (zh) 一种基于注意力金字塔的sar船只目标检测方法
JP2016012302A (ja) 対象物検出装置
CN111666965B (zh) 改进图像识别的多级别深度特征和多匹配器融合
CN103823753B (zh) 一种面向网页内容无障碍检测的网页抽样方法
CN111640421A (zh) 语音对比方法、装置、设备及计算机可读存储介质
CN110929644A (zh) 基于启发式算法的多模型融合人脸识别方法、装置、计算机系统与可读介质
CN103778210A (zh) 一种待分析文件的文件具体类型的判断方法及装置

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