基于代码指纹识别的恶意脚本启发式检测方法及系统与流程

文档序号:11156198阅读:898来源:国知局
基于代码指纹识别的恶意脚本启发式检测方法及系统与制造工艺

本发明涉及计算机网络安全领域,特别涉及一种基于代码指纹识别的恶意脚本启发式检测方法及系统。



背景技术:

随着计算机的更新换代及互联网的普及,恶意代码也响应的发生着演变,无论是从数量上还是总类上都呈现出较高的增长趋势。其中,脚本类的恶意代码也在频频出现在我们的周围。

传统的启发式检测技术针对样本实体来进行分析,例如分析逻辑结构、虚拟环境中动态执行等等,从而进行启发式检测,但是现有的启发式检测方法不够快捷,一定程度上比较浪费资源。



技术实现要素:

针对上述问题,本发明提出一种基于代码指纹识别的恶意脚本启发式检测方法及系统,解决了现有检测方法速度较慢的问题,有效的提高了检测速度及准确度。

首先本发明提出一种基于代码指纹识别的恶意脚本启发式检测方法,包括:

获取输入的待检测脚本文件;

提取待检测脚本文件中的代码指纹属性;

将代码指纹属性生成代码指纹;

将所述代码指纹与代码指纹库匹配,若匹配成功,则根据代码指纹库确定待检测脚本文件来源,及待检测脚本文件的恶意度;否则对待检测脚本文件进行分析;

分析待检测脚本文件,若所述待检测脚本分析结果为恶意,则将提取到的代码指纹及代码来源添加到代码指纹库;若所述待检测脚本分析结果为非恶意,则放行所述待检测脚本文件。

所述的方法中,所述代码指纹属性为根据已知恶意脚本文件确定的代码属性,包括词组缩写、单词拼写、关键词、函数命名及参数名。

所述的方法中,所述代码指纹库由已知恶意脚本文件确定的代码指纹属性、对应权值及恶意脚本文件来源组成。

所述的方法中,将代码指纹属性生成代码指纹具体为:待检测脚本文件中提取到的所有代码指纹属性组成的数组,即为待检测脚本文件的代码指纹。

所述的方法中,将所述代码指纹与代码指纹库匹配,具体为:将所述代码指纹与代码指纹库匹配,并计算匹配的代码指纹的权值和,若权值和大于预设值,则匹配成功。

本发明还提出一种基于代码指纹识别的恶意脚本启发式检测系统,包括:

获取模块,用于获取输入的待检测脚本文件;

指纹提取模块,用于提取待检测脚本文件中的代码指纹属性;

指纹生成模块,用于将代码指纹属性生成代码指纹;

匹配模块,用于将所述代码指纹与代码指纹库匹配,若匹配成功,则根据代码指纹库确定待检测脚本文件来源,及待检测脚本文件的恶意度;否则对待检测脚本文件进行分析;

脚本分析模块,用于分析待检测脚本文件,若所述待检测脚本分析结果为恶意,则将提取到的代码指纹及代码来源添加到代码指纹库;若所述待检测脚本分析结果为非恶意,则放行所述待检测脚本文件;

代码指纹库模块,用于存储代码指纹库。

所述的系统中,所述代码指纹属性为根据已知恶意脚本文件确定的代码属性,包括词组缩写、单词拼写、关键词、函数命名及参数名。

所述的系统中,所述代码指纹库由已知恶意脚本文件确定的代码指纹属性、对应权值及恶意脚本文件来源组成。

所述的系统中,将代码指纹属性生成代码指纹具体为:待检测脚本文件中提取到的所有代码指纹属性组成的数组,即为待检测脚本文件的代码指纹。

所述的系统中,将所述代码指纹与代码指纹库匹配,具体为:将所述代码指纹与代码指纹库匹配,并计算匹配的代码指纹的权值和,若权值和大于预设值,则匹配成功。

本发明的关键在于,通过提取脚本编写特有的语法习惯、编写特点等作为代码指纹属性,然后通过相关规则转换为代码指纹,再录入代码指纹库。当遇到未知脚本代码时,将提取到的代码指纹,与代码指纹库进行匹配,再根据匹配到的来源的可信性进行恶意度的判定。

本发明方法相比传统的启发式检测,不需要进行复杂的逻辑分析,也不需要虚拟环境来动态执行脚本,而是采用基于代码指纹,根据代码来源的恶意性来进行启发式检测,可以有效的提高检测的速度、准确度等。

附图说明

为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明一种基于代码指纹识别的恶意脚本启发式检测方法实施例流程图;

图2为本发明一种基于代码指纹识别的恶意脚本启发式检测系统实施例结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明中技术方案作进一步详细的说明。

针对脚本类的恶意代码,传统的启发式检测需要分析逻辑结构等,不够快捷。因此在这里提出一种比较快捷的针对脚本类的启发式检测方法。

正如生物指纹可以唯一的标识一个人,每个代码编写者都会有自己的语法特点与编写习惯,称之为代码指纹。对于解释执行类脚本,即不需要经历编译环节的语言,可以最大限度的保留作者的代码指纹,例如python、lua、php等。这些特点与习惯都是一个代码编写者的惯有习惯,可以帮助我们进行来源追溯。例如:当一些恶意程序的作者的某一个变量名书写会产生特定的错误,并且会习惯的将该项错误延续下去,我们可以将该种错误记录为指纹的一个属性依据。那么,一旦我们准确收集到某恶意代码作者的代码指纹,当再次出现来源于该作者的脚本代码时,我们便可以与代码指纹库进行匹配,这样便可以快速的追踪到该代码作者,来进行启发式检测。

本发明提出一种基于代码指纹识别的恶意脚本启发式检测方法及系统,解决了现有检测方法速度较慢的问题,有效的提高了检测速度及准确度。

首先本发明提出一种基于代码指纹识别的恶意脚本启发式检测方法,如图1所示,包括:

S101:获取输入的待检测脚本文件;

S102:提取待检测脚本文件中的代码指纹属性;

S103:将代码指纹属性生成代码指纹;

S104:将所述代码指纹与代码指纹库匹配,若匹配成功,则根据代码指纹库确定待检测脚本文件来源,及待检测脚本文件的恶意度;否则执行S105;

S105:分析待检测脚本文件,若所述待检测脚本分析结果为恶意,则执行S106;若所述待检测脚本分析结果为非恶意,则放行所述待检测脚本文件;代码指纹库是一个不断丰富的过程。当我们遇到指纹库不匹配的脚本时,就要进行分析,从而得到该代码的恶意行判定,一旦判定为恶意,就要获取该代码的代码指纹,录入代码指纹库;

S106:将提取到的代码指纹及代码来源添加到代码指纹库。

所述的方法中,所述代码指纹属性为根据已知恶意脚本文件确定的代码属性,包括词组缩写、单词拼写、关键词、函数命名及参数名。这里的代码属性即为代码编写者的编写特点,包括但不限于语法习惯、词组缩写习惯、单词误写习惯等等。随着代码指纹属性的收集,代码指纹库将不断扩大,越来越完善。如:单词误写习惯:关键字中的result,被写成resault, 这是一个代码指纹属性;短语命名习惯:短语由单词全拼连接,比如analy_line_data, 这是一个代码指纹属性;函数命名习惯:函数命名func_get(),func字符串可以为一个代码指纹属性;代码注释习惯:每份代码里都会加一个仅属于自己的标记,比如 XXX 注释等等。

所述的方法中,所述代码指纹库由已知恶意脚本文件确定的代码指纹属性、对应权值及恶意脚本文件来源组成。即每个代码编写者在代码指纹库中都有自己的代码指纹属性列表及权值匹配额度。

所述的方法中,将代码指纹属性生成代码指纹具体为:待检测脚本文件中提取到的所有代码指纹属性组成的数组,即为待检测脚本文件的代码指纹。

所述的方法中,将所述代码指纹与代码指纹库匹配,具体为:将所述代码指纹与代码指纹库匹配,并计算匹配的代码指纹的权值和,若权值和大于预设值,则匹配成功。

举例来说,假设对于待检测脚本文件提取到代码指纹属性为A、B、C,则其代码指纹为{A、B、C},其对应权值分别为0.2、0.1、0.3,计算权值和为0.6,若预设值为0.5,由于权值和大于预设值,则匹配成功,根据代码指纹库中的代码来源,确定该脚本文件的恶意度。

本发明还提出一种基于代码指纹识别的恶意脚本启发式检测系统,如图2所示,包括:

获取模块201,用于获取输入的待检测脚本文件;

指纹提取模块202,用于提取待检测脚本文件中的代码指纹属性;

指纹生成模块203,用于将代码指纹属性生成代码指纹;

匹配模块204,用于将所述代码指纹与代码指纹库匹配,若匹配成功,则根据代码指纹库确定待检测脚本文件来源,及待检测脚本文件的恶意度;否则对待检测脚本文件进行分析;

脚本分析模块205,用于分析待检测脚本文件,若所述待检测脚本分析结果为恶意,则将提取到的代码指纹及代码来源添加到代码指纹库;若所述待检测脚本分析结果为非恶意,则放行所述待检测脚本文件;

代码指纹库模块206,用于存储代码指纹库。

所述的系统中,所述代码指纹属性为根据已知恶意脚本文件确定的代码属性,包括词组缩写、单词拼写、关键词、函数命名及参数名。

所述的系统中,所述代码指纹库由已知恶意脚本文件确定的代码指纹属性、对应权值及恶意脚本文件来源组成。

所述的系统中,将代码指纹属性生成代码指纹具体为:待检测脚本文件中提取到的所有代码指纹属性组成的数组,即为待检测脚本文件的代码指纹。

所述的系统中,将所述代码指纹与代码指纹库匹配,具体为:将所述代码指纹与代码指纹库匹配,并计算匹配的代码指纹的权值和,若权值和大于预设值,则匹配成功。

本发明的关键在于,通过提取脚本编写特有的语法习惯、编写特点等作为代码指纹属性,然后通过相关规则转换为代码指纹,再录入代码指纹库。当遇到未知脚本代码时,将提取到的代码指纹,与代码指纹库进行匹配,再根据匹配到的来源的可信性进行恶意行的判定。

本发明方法相比传统的启发式检测,不需要进行复杂的逻辑分析,也不需要虚拟环境来动态执行脚本,而是采用基于代码指纹,根据代码来源的恶意性来进行启发式检测,可以有效的提高检测的速度、准确度等。

虽然通过实施例描绘了本发明,本领域普通技术人员知道,本发明有许多变形和变化而不脱离本发明的精神,希望所附的权利要求包括这些变形和变化而不脱离本发明的精神。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1