CN106650450A - 基于代码指纹识别的恶意脚本启发式检测方法及系统 - Google Patents
基于代码指纹识别的恶意脚本启发式检测方法及系统 Download PDFInfo
- Publication number
- CN106650450A CN106650450A CN201611249315.5A CN201611249315A CN106650450A CN 106650450 A CN106650450 A CN 106650450A CN 201611249315 A CN201611249315 A CN 201611249315A CN 106650450 A CN106650450 A CN 106650450A
- Authority
- CN
- China
- Prior art keywords
- code fingerprint
- code
- script file
- detected
- fingerprint
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
- G06F21/563—Static detection by source code analysis
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Collating Specific Patterns (AREA)
Abstract
本发明提出一种基于代码指纹识别的恶意脚本启发式检测方法及系统,所述方法包括:提取待检测脚本文件中的代码指纹属性;将代码指纹属性生成代码指纹;将所述代码指纹与代码指纹库匹配,若匹配成功,则待检测脚本文件为恶意,并确定待检测脚本文件来源;否则对待检测脚本文件进行分析;分析待检测脚本文件,若所述待检测脚本分析结果为恶意,则将提取到的代码指纹及代码来源添加到代码指纹库;若所述待检测脚本分析结果为非恶意,则放行所述待检测脚本文件。通过发明的方法,不需要进行复杂的逻辑分析或虚拟环境执行脚本,即可有效的进行未知脚本的检测。
Description
技术领域
本发明涉及计算机网络安全领域,特别涉及一种基于代码指纹识别的恶意脚本启发式检测方法及系统。
背景技术
随着计算机的更新换代及互联网的普及,恶意代码也响应的发生着演变,无论是从数量上还是总类上都呈现出较高的增长趋势。其中,脚本类的恶意代码也在频频出现在我们的周围。
传统的启发式检测技术针对样本实体来进行分析,例如分析逻辑结构、虚拟环境中动态执行等等,从而进行启发式检测,但是现有的启发式检测方法不够快捷,一定程度上比较浪费资源。
发明内容
针对上述问题,本发明提出一种基于代码指纹识别的恶意脚本启发式检测方法及系统,解决了现有检测方法速度较慢的问题,有效的提高了检测速度及准确度。
首先本发明提出一种基于代码指纹识别的恶意脚本启发式检测方法,包括:
获取输入的待检测脚本文件;
提取待检测脚本文件中的代码指纹属性;
将代码指纹属性生成代码指纹;
将所述代码指纹与代码指纹库匹配,若匹配成功,则根据代码指纹库确定待检测脚本文件来源,及待检测脚本文件的恶意度;否则对待检测脚本文件进行分析;
分析待检测脚本文件,若所述待检测脚本分析结果为恶意,则将提取到的代码指纹及代码来源添加到代码指纹库;若所述待检测脚本分析结果为非恶意,则放行所述待检测脚本文件。
所述的方法中,所述代码指纹属性为根据已知恶意脚本文件确定的代码属性,包括词组缩写、单词拼写、关键词、函数命名及参数名。
所述的方法中,所述代码指纹库由已知恶意脚本文件确定的代码指纹属性、对应权值及恶意脚本文件来源组成。
所述的方法中,将代码指纹属性生成代码指纹具体为:待检测脚本文件中提取到的所有代码指纹属性组成的数组,即为待检测脚本文件的代码指纹。
所述的方法中,将所述代码指纹与代码指纹库匹配,具体为:将所述代码指纹与代码指纹库匹配,并计算匹配的代码指纹的权值和,若权值和大于预设值,则匹配成功。
本发明还提出一种基于代码指纹识别的恶意脚本启发式检测系统,包括:
获取模块,用于获取输入的待检测脚本文件;
指纹提取模块,用于提取待检测脚本文件中的代码指纹属性;
指纹生成模块,用于将代码指纹属性生成代码指纹;
匹配模块,用于将所述代码指纹与代码指纹库匹配,若匹配成功,则根据代码指纹库确定待检测脚本文件来源,及待检测脚本文件的恶意度;否则对待检测脚本文件进行分析;
脚本分析模块,用于分析待检测脚本文件,若所述待检测脚本分析结果为恶意,则将提取到的代码指纹及代码来源添加到代码指纹库;若所述待检测脚本分析结果为非恶意,则放行所述待检测脚本文件;
代码指纹库模块,用于存储代码指纹库。
所述的系统中,所述代码指纹属性为根据已知恶意脚本文件确定的代码属性,包括词组缩写、单词拼写、关键词、函数命名及参数名。
所述的系统中,所述代码指纹库由已知恶意脚本文件确定的代码指纹属性、对应权值及恶意脚本文件来源组成。
所述的系统中,将代码指纹属性生成代码指纹具体为:待检测脚本文件中提取到的所有代码指纹属性组成的数组,即为待检测脚本文件的代码指纹。
所述的系统中,将所述代码指纹与代码指纹库匹配,具体为:将所述代码指纹与代码指纹库匹配,并计算匹配的代码指纹的权值和,若权值和大于预设值,则匹配成功。
本发明的关键在于,通过提取脚本编写特有的语法习惯、编写特点等作为代码指纹属性,然后通过相关规则转换为代码指纹,再录入代码指纹库。当遇到未知脚本代码时,将提取到的代码指纹,与代码指纹库进行匹配,再根据匹配到的来源的可信性进行恶意度的判定。
本发明方法相比传统的启发式检测,不需要进行复杂的逻辑分析,也不需要虚拟环境来动态执行脚本,而是采用基于代码指纹,根据代码来源的恶意性来进行启发式检测,可以有效的提高检测的速度、准确度等。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图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,用于存储代码指纹库。
所述的系统中,所述代码指纹属性为根据已知恶意脚本文件确定的代码属性,包括词组缩写、单词拼写、关键词、函数命名及参数名。
所述的系统中,所述代码指纹库由已知恶意脚本文件确定的代码指纹属性、对应权值及恶意脚本文件来源组成。
所述的系统中,将代码指纹属性生成代码指纹具体为:待检测脚本文件中提取到的所有代码指纹属性组成的数组,即为待检测脚本文件的代码指纹。
所述的系统中,将所述代码指纹与代码指纹库匹配,具体为:将所述代码指纹与代码指纹库匹配,并计算匹配的代码指纹的权值和,若权值和大于预设值,则匹配成功。
本发明的关键在于,通过提取脚本编写特有的语法习惯、编写特点等作为代码指纹属性,然后通过相关规则转换为代码指纹,再录入代码指纹库。当遇到未知脚本代码时,将提取到的代码指纹,与代码指纹库进行匹配,再根据匹配到的来源的可信性进行恶意行的判定。
本发明方法相比传统的启发式检测,不需要进行复杂的逻辑分析,也不需要虚拟环境来动态执行脚本,而是采用基于代码指纹,根据代码来源的恶意性来进行启发式检测,可以有效的提高检测的速度、准确度等。
虽然通过实施例描绘了本发明,本领域普通技术人员知道,本发明有许多变形和变化而不脱离本发明的精神,希望所附的权利要求包括这些变形和变化而不脱离本发明的精神。
Claims (10)
1.一种基于代码指纹识别的恶意脚本启发式检测方法,其特征在于,包括:
获取输入的待检测脚本文件;
提取待检测脚本文件中的代码指纹属性;
将代码指纹属性生成代码指纹;
将所述代码指纹与代码指纹库匹配,若匹配成功,则根据代码指纹库确定待检测脚本文件来源,及待检测脚本文件的恶意度;否则对待检测脚本文件进行分析;
分析待检测脚本文件,若所述待检测脚本文件分析结果为恶意,则将提取到的代码指纹及代码来源添加到代码指纹库;若所述待检测脚本文件分析结果为非恶意,则放行所述待检测脚本文件。
2.如权利要求1所述的方法,其特征在于,所述代码指纹属性为根据已知恶意脚本文件确定的代码属性,包括词组缩写、单词拼写、关键词、函数命名及参数名。
3.如权利要求1所述的方法,其特征在于,所述代码指纹库由已知恶意脚本文件确定的代码指纹属性、对应权值及恶意脚本文件来源组成。
4.如权利要求3所述的方法,其特征在于,将代码指纹属性生成代码指纹具体为:待检测脚本文件中提取到的所有代码指纹属性组成的数组,即为待检测脚本文件的代码指纹。
5.如权利要求4所述的方法,其特征在于,将所述代码指纹与代码指纹库匹配,具体为:将所述代码指纹与代码指纹库匹配,并计算匹配的代码指纹的权值和,若权值和大于预设值,则匹配成功。
6.一种基于代码指纹识别的恶意脚本启发式检测系统,其特征在于,包括:
获取模块,用于获取输入的待检测脚本文件;
指纹提取模块,用于提取待检测脚本文件中的代码指纹属性;
指纹生成模块,用于将代码指纹属性生成代码指纹;
匹配模块,用于将所述代码指纹与代码指纹库匹配,若匹配成功,则根据代码指纹库确定待检测脚本文件来源,及待检测脚本文件的恶意度;否则对待检测脚本文件进行分析;
脚本分析模块,用于分析待检测脚本文件,若所述待检测脚本文件分析结果为恶意,则将提取到的代码指纹及代码来源添加到代码指纹库;若所述待检测脚本文件分析结果为非恶意,则放行所述待检测脚本文件;
代码指纹库模块,用于存储代码指纹库。
7.如权利要求6所述的系统,其特征在于,所述代码指纹属性为根据已知恶意脚本文件确定的代码属性,包括词组缩写、单词拼写、关键词、函数命名及参数名。
8.如权利要求6所述的系统,其特征在于,所述代码指纹库由已知恶意脚本文件确定的代码指纹属性、对应权值及恶意脚本文件来源组成。
9.如权利要求8所述的系统,其特征在于,将代码指纹属性生成代码指纹具体为:待检测脚本文件中提取到的所有代码指纹属性组成的数组,即为待检测脚本文件的代码指纹。
10.如权利要求9所述的系统,其特征在于,将所述代码指纹与代码指纹库匹配,具体为:将所述代码指纹与代码指纹库匹配,并计算匹配的代码指纹的权值和,若权值和大于预设值,则匹配成功。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611249315.5A CN106650450A (zh) | 2016-12-29 | 2016-12-29 | 基于代码指纹识别的恶意脚本启发式检测方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611249315.5A CN106650450A (zh) | 2016-12-29 | 2016-12-29 | 基于代码指纹识别的恶意脚本启发式检测方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106650450A true CN106650450A (zh) | 2017-05-10 |
Family
ID=58836090
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611249315.5A Pending CN106650450A (zh) | 2016-12-29 | 2016-12-29 | 基于代码指纹识别的恶意脚本启发式检测方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106650450A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108229168A (zh) * | 2017-12-29 | 2018-06-29 | 哈尔滨安天科技股份有限公司 | 一种嵌套类文件的启发式检测方法、系统及存储介质 |
CN110399729A (zh) * | 2019-04-11 | 2019-11-01 | 国家计算机网络与信息安全管理中心 | 一种基于组件特征权重的二进制软件分析方法 |
CN110765455A (zh) * | 2018-09-04 | 2020-02-07 | 哈尔滨安天科技集团股份有限公司 | 基于属性域异常调用的恶意文档检测方法、装置及系统 |
CN111783095A (zh) * | 2020-07-28 | 2020-10-16 | 支付宝(杭州)信息技术有限公司 | 小程序恶意代码的识别方法、装置和电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090300764A1 (en) * | 2008-05-28 | 2009-12-03 | International Business Machines Corporation | System and method for identification and blocking of malicious code for web browser script engines |
CN102542201A (zh) * | 2011-12-26 | 2012-07-04 | 北京奇虎科技有限公司 | 一种网页中恶意代码的检测方法及系统 |
CN104978525A (zh) * | 2014-11-18 | 2015-10-14 | 哈尔滨安天科技股份有限公司 | 一种基于结构化异常的启发式脚本检测方法及系统 |
-
2016
- 2016-12-29 CN CN201611249315.5A patent/CN106650450A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090300764A1 (en) * | 2008-05-28 | 2009-12-03 | International Business Machines Corporation | System and method for identification and blocking of malicious code for web browser script engines |
CN102542201A (zh) * | 2011-12-26 | 2012-07-04 | 北京奇虎科技有限公司 | 一种网页中恶意代码的检测方法及系统 |
CN104978525A (zh) * | 2014-11-18 | 2015-10-14 | 哈尔滨安天科技股份有限公司 | 一种基于结构化异常的启发式脚本检测方法及系统 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108229168A (zh) * | 2017-12-29 | 2018-06-29 | 哈尔滨安天科技股份有限公司 | 一种嵌套类文件的启发式检测方法、系统及存储介质 |
CN108229168B (zh) * | 2017-12-29 | 2021-07-20 | 哈尔滨安天科技集团股份有限公司 | 一种嵌套类文件的启发式检测方法、系统及存储介质 |
CN110765455A (zh) * | 2018-09-04 | 2020-02-07 | 哈尔滨安天科技集团股份有限公司 | 基于属性域异常调用的恶意文档检测方法、装置及系统 |
CN110399729A (zh) * | 2019-04-11 | 2019-11-01 | 国家计算机网络与信息安全管理中心 | 一种基于组件特征权重的二进制软件分析方法 |
CN110399729B (zh) * | 2019-04-11 | 2021-04-27 | 国家计算机网络与信息安全管理中心 | 一种基于组件特征权重的二进制软件分析方法 |
CN111783095A (zh) * | 2020-07-28 | 2020-10-16 | 支付宝(杭州)信息技术有限公司 | 小程序恶意代码的识别方法、装置和电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10664660B2 (en) | Method and device for extracting entity relation based on deep learning, and server | |
Zhang et al. | A novel neural source code representation based on abstract syntax tree | |
CN109766540B (zh) | 通用文本信息提取方法、装置、计算机设备和存储介质 | |
TWI553503B (zh) | 產生候選鈎點以偵測惡意程式之方法及其系統 | |
CN107659570A (zh) | 基于机器学习与动静态分析的Webshell检测方法及系统 | |
CN105787367B (zh) | 一种软件更新的补丁安全性检测方法及系统 | |
US20180181866A1 (en) | Crowdsourced learning engine for semantic analysis of webpages | |
CN108763931A (zh) | 基于Bi-LSTM和文本相似性的漏洞检测方法 | |
CN112307473A (zh) | 一种基于Bi-LSTM网络和注意力机制的恶意JavaScript代码检测模型 | |
CN106650450A (zh) | 基于代码指纹识别的恶意脚本启发式检测方法及系统 | |
CN116049831A (zh) | 一种基于静态分析和动态分析的软件漏洞检测方法 | |
CN104699611A (zh) | 一种基于开源软件缺陷代码修改模式的缺陷信息提取方法 | |
Frantzeskou et al. | Examining the significance of high-level programming features in source code author classification | |
CN113672931B (zh) | 一种基于预训练的软件漏洞自动检测方法及装置 | |
CN111475820A (zh) | 基于可执行程序的二进制漏洞检测方法、系统及存储介质 | |
CN103914657A (zh) | 一种基于函数特征的恶意程序检测方法 | |
Rau et al. | Transferring tests across web applications | |
CN113961768B (zh) | 敏感词检测方法、装置、计算机设备和存储介质 | |
CN107239694A (zh) | 一种基于用户评论的Android应用权限推理方法及装置 | |
CN114817924B (zh) | 基于ast和跨层分析的安卓恶意软件检测方法及系统 | |
Karnalim | An abstract method linearization for detecting source code plagiarism in object-oriented environment | |
CN114036531A (zh) | 一种基于多尺度代码度量的软件安全漏洞检测方法 | |
CN116340952A (zh) | 一种基于操作码程序依赖图的智能合约漏洞检测方法 | |
CN111209373A (zh) | 基于自然语义的敏感文本识别方法和装置 | |
Gruner et al. | Cross-domain evaluation of a deep learning-based type inference system |
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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 150028 Building 7, Innovation Plaza, Science and Technology Innovation City, Harbin Hi-tech Industrial Development Zone, Heilongjiang Province (838 Shikun Road) Applicant after: Harbin antiy Technology Group Limited by Share Ltd Address before: 150090 Room 506, No. 162 Hongqi Street, Nangang District, Harbin Development Zone, Heilongjiang Province Applicant before: Harbin Antiy Technology Co., Ltd. |
|
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20170510 |