CN110765459A - 一种恶意脚本检测方法、装置和存储介质 - Google Patents
一种恶意脚本检测方法、装置和存储介质 Download PDFInfo
- Publication number
- CN110765459A CN110765459A CN201910991553.0A CN201910991553A CN110765459A CN 110765459 A CN110765459 A CN 110765459A CN 201910991553 A CN201910991553 A CN 201910991553A CN 110765459 A CN110765459 A CN 110765459A
- Authority
- CN
- China
- Prior art keywords
- malicious script
- detection
- malicious
- sample set
- script
- 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
Images
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Medical Informatics (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Health & Medical Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提出了一种恶意脚本检测方法、装置和存储介质,用以针对未知恶意脚本进行检测,提高恶意脚本检测方法的通用性。恶意脚本检测方法,包括:获取待检测样本;利用恶意脚本检测模型对待检测样本进行处理得到所述待检测样本对应的第一检测值,所述恶意脚本检测模型为利用预设机器学习算法对训练样本集进行学习得到的;判断所述第一检测值是否大于恶意脚本检测阈值,所述恶意脚本检测阈值为根据利用所述恶意脚本检测模型对测试样本集中包含的测试样本进行处理得到的;如果所述第一检测值大于所述恶意脚本检测阈值,则确定所述待检测样本是恶意脚本,如果所述第一检测值不大于所述恶意脚本检测阈值,则确定所述待检测样本不是恶意脚本。
Description
技术领域
本发明涉及计算机网络安全技术领域,尤其涉及一种恶意脚本检测方法、装置和存储介质。
背景技术
随着计算机技术和互联网技术的发展,依托网络传播的恶意脚本文件数量急剧增加。例如,藏匿于恶意网站和挂马网页上的恶意JavaScript脚本随着新增网络数量的增长而迅速增加。
现有的检测恶意脚本的方法主要有两种:
基于静态分析的恶意脚本检测:预先依靠安全研究人员构建一个包含恶意脚本特征的恶意特征库。通过技术手段从网页,网站后端或其他来源提取恶意脚本样本,依靠恶意特征库对文本进行分析匹配,若匹配成功则表明检测到恶意脚本。
基于动态行为的恶意脚本检测:通过构建恶意脚本能够运行的虚拟沙箱环境,监测和截获恶意脚本虚拟执行后的各种动态行为。再依靠安全研究人员的专家知识,采用启发式的检测方式,寻找与专家知识库相匹配的恶意行为或恶意行为集合,继而根据匹配程度检测出恶意脚本和判定恶意脚本的种类。
上述两种方法中,均需要提前构建恶意特征库和专家知识库,特征库和专家知识库的完备程度依赖安全研究人员的知识水平和人员规模。而对于未被恶意特征库和专利知识库收纳的未知风险样本则无法进行检测或检测效果不好。
发明内容
本发明实施例提供一种恶意脚本检测方法、装置和存储介质,用以针对未知恶意脚本进行检测,提高恶意脚本检测方法的通用性。
第一方面,提供一种恶意脚本检测方法,包括:
获取待检测样本;
利用恶意脚本检测模型对待检测样本进行处理得到所述待检测样本对应的第一检测值,所述恶意脚本检测模型为利用预设机器学习异常检测算法对训练样本集进行学习得到的;
判断所述第一检测值是否大于恶意脚本检测阈值,所述恶意脚本检测阈值为根据利用所述恶意脚本检测模型对测试样本集中包含的测试样本进行处理得到的;
如果所述第一检测值大于所述恶意脚本检测阈值,则确定所述待检测样本是恶意脚本,如果所述第一检测值不大于所述恶意脚本检测阈值,则确定所述待检测样本不是恶意脚本。
在一个实施方式中,所述训练样本集为按照以下流程获得的:
获取初始训练样本集,所述训练样本集包括以下至少一类:从网络上公开采集的脚本文件集、安全研究网站收集的、用户上传的脚本文件集和生产实际中收集的脚本文件集;
利用已有的恶意脚本黑名单库或者病毒查杀引擎对所述初始训练样本集中包含的脚本文件进行检测,确定所述初始训练样本集中的恶意脚本文件;
从所述初始训练样本集中删除确定出的恶意脚本文件,得到训练样本集。
在一种实施方式中,利用预设机器学习异常检测算法按照以下流程对训练样本集进行学习得到所述恶意脚本检测模型:
从所述训练样本集包含的每一训练样本中分别提取样本特征,所述样本特征包括以下至少一项:静态文本特征、字符串特征、抽象语法树节点特征和静态反混淆后获取的代码特征;
针对从每一训练样本中提取的每一样本特征,计算该样本特征对应的特征值;
基于从训练样本中提取的各样本特征所对应的特征值,利用预设机器学习异常检测算法进行学习得到所述恶意脚本检测模型。
在一种实施方式中,所述测试样本集中包含有已知恶意脚本文件,其中,已知恶意脚本文件在所述测试样本集中所占比例不超过预设比例阈值。
在一种实施方式中,所述恶意脚本检测阈值为按照以下流程确定出的:
利用所述恶意脚本检测模型分别对各已知恶意脚本文件进行检测,得到各已知恶意脚本文件对应的第二检测值;
确定所述第二检测值中的最小值为所述恶意脚本检测阈值。
在一种实施方式中,所述预设机器学习异常检测算法包括孤立森林异常检测算法。
第二方面,提供一种恶意脚本检测装置,包括:
获取单元,用于获取待检测样本;
检测单元,用于利用恶意脚本检测模型对待检测样本进行处理得到所述待检测样本对应的第一检测值,所述恶意脚本检测模型为利用预设机器学习异常检测算法对训练样本集进行学习得到的;
判断单元,用于判断所述第一检测值是否大于恶意脚本检测阈值,所述恶意脚本检测阈值为根据利用所述恶意脚本检测模型对测试样本集中包含的测试样本进行处理得到的;
第一确定单元,用于如果所述第一检测值大于所述恶意脚本检测阈值,则确定所述待检测样本是恶意脚本,如果所述第一检测值不大于所述恶意脚本检测阈值,则确定所述待检测样本不是恶意脚本。
在一种实施方式中,本发明实施例提供的恶意脚本检测装置,还包括:
预处理单元,用于获取初始训练样本集,所述训练样本集包括以下至少一类:从网络上公开采集的脚本文件集、安全研究网站收集的、用户上传的脚本文件集和生产实际中收集的脚本文件集;利用已有的恶意脚本黑名单库或者病毒查杀引擎对所述初始训练样本集中包含的脚本文件进行检测,确定所述初始训练样本集中的恶意脚本文件;从所述初始训练样本集中删除确定出的恶意脚本文件,得到训练样本集。
在一种实施方式中,本发明实施例提供的恶意脚本检测装置,还包括:
模型生成单元,用于从所述训练样本集包含的每一训练样本中分别提取样本特征,所述样本特征包括以下至少一项:静态文本特征、字符串特征、抽象语法树节点特征和静态反混淆后获取的代码特征;针对从每一训练样本中提取的每一样本特征,统计该样本特征对应的特征值;基于从训练样本中提取的各样本特征所对应的特征值,利用预设机器学习异常检测算法进行学习得到所述恶意脚本检测模型。
在一种实施例方式中,所述测试样本集中包含有已知恶意脚本文件,其中,已知恶意脚本文件在所述测试样本集中所占比例不超过预设比例阈值。
在一种实施方式中,本发明实施例提供的恶意脚本检测装置,还包括:
第二确定单元,用于利用所述恶意脚本检测模型分别对各已知恶意脚本文件进行检测,得到各已知恶意脚本文件对应的第二检测值;确定所述第二检测值中的最小值为所述恶意脚本检测阈值。
在一种实施方式中,所述预设机器学习异常检测算法包括孤立森林异常检测算法。
第三方面,提供一种计算装置,所述计算装置包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述任一恶意脚本检测方法所述的步骤。
第四方面,提供一种计算机存储介质,所述计算机存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一恶意脚本检测方法所述的步骤。
采用上述技术方案,本发明至少具有下列优点:
本发明实施例提供的恶意脚本检测方法、装置和存储介质,利用机器学习异常检测算法对训练样本集进行学习得到的恶意脚本检测模型,并基于测试样本集,利用学习得到的恶意脚本检测模型确定恶意脚本检测阈值,对于待检样本,利用恶意检测模型确定其对应的检测值,根据检测值与恶意脚本检测阈值之间的关系即可判断出待检测样本是否为恶意脚本,上述过程中,无需预先建立恶意脚本特征库或者专家知识库,对于未知恶意脚本同样可以进行检测,从而提高恶意脚本检测方法的通用性。
附图说明
图1为本发明实施例的训练样本生成流程示意图;
图2为本发明实施例的恶意脚本检测模型学习流程示意图;
图3为本发明实施例的恶意脚本检测方法流程图;
图4为本发明实施例的恶意脚本检测装置的结构示意图;
图5为本发明实施例的计算装置的结构示意图。
具体实施方式
为更进一步阐述本发明为达成预定目的所采取的技术手段及功效,以下结合附图及较佳实施例,对本发明进行详细说明如后。
需要说明的是,本发明实施例中的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。
在本文中提及的“多个或者若干个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
发明人发现,现有的恶意软件检测方法能够较好的依赖黑白名单、恶意特征库对已知的恶意脚本进行检测,这些已知恶意脚本一般是安全研究人员已截获到的,并对其进行充分逆向研究后确认的恶意样本。但是,在实际检测过程中,从线上海量样本中检测出已知并确认的恶意脚本数量只占总检测样本的一部分,而剩余未检出恶意的样本一般被判别为非恶意样本。实际应用中,这部分的非恶意样本一般由以下三部分组成:
1、真实非恶意样本,即白脚本文件;
2、现有或自有的黑名单、恶意特征库和检测手段缺陷造成未检出的已知恶意样本;
3、具有未知风险且尚未被安全研究人员关注的恶意样本。
由此可见,现有的恶意脚本检测方法无法检测出全部的恶意脚本,有鉴于此,本发明实施例中,提供了一种基于机器学习异常检测算法的恶意脚本检测方法,以增加恶意脚本检测方法的覆盖范围,提高恶意脚本检测方法的通用性。
需要说明的是,本发明实施例工的恶意脚本检测方法既适用于JavaScript脚本文件,也适用于VBS(Visual Basic Script Edition,可视化BASIC脚本版)和PHP(超文本预处理器)等脚本文件。
为了实现对未知恶意脚本文件的监测,本发明实施例中基于训练样本集,利用机器学习异常检测算法对训练样本集进行学习得到恶意脚本检测模型。
具体实施时,本发明实施例中,可以按照以下流程生成训练样本集,如图1所示,可以包括以下步骤:
S11、获取初始训练样本集。
具体实施时,训练样本集包括以下至少一类:从网络上公开采集的脚本文件集、安全研究网站收集的、用户上传的脚本文件集和生产实际中收集的脚本文件集。
需要说明的是,对于不同类型的恶意脚本检测模型需要分别收集相应类型的训练样本,例如,对于JavaScript恶意脚本检测模型,需要收集JavaScript脚本文件。
S12、利用已有的恶意脚本黑名单库或者病毒查杀引擎对初始训练样本集中包含的脚本文件进行检测,确定初始训练样本集中的恶意脚本文件。
本步骤中,对上述三类样本集合利用现有的恶意脚本黑名单库,以及自研或者商业开发的病毒查杀引擎进行检测,以判断是否存在已知恶意脚本。
S13、从初始训练样本集中删除确定出的恶意脚本文件,得到训练样本集。
本步骤中,如果在上述三类样本集合中检测出已知恶意脚本,则从初始训练样本集中删除该已知恶意脚本。
通过上述流程得到本发明实施例所需的训练样本集,基于得到的训练样本集,本发明实施例利用机器学习异常检测算法进行学习得到恶意脚本检测模型。在一个实施例中,机器学习异常检测算法可以采用孤立森林异常检测算法,孤立森林异常检测算法是一种非参数统计,无监督的机器学习异常检测方法,该方法效率高,能对海量数据进行处理。具体实施时,也可以采用其他机器学习异常检测算法,本发明实例对此不进行限定,以下以孤立森林异常检测算法为例对恶意检测模型的学习过程进行说明:
本发明实施例中,为了便于理解,将孤立森林异常检测算法原理简述如下:
输入:训练样本集合,孤立森林中孤立树的数量n,样本子集合大小m;
输出:每个样本的异常检测评分,范围为[0,1]。
具体实施时,基于上述得到的训练样本集,可以按照图2所示的流程进行学习得到的恶意脚本检测模型:
S21、从训练样本集包含的每一训练样本中分别提取样本特征。
其中,从各训练样本中提取的样本特征包括以下至少一项:静态文本特征、字符串特征、抽象语法树节点特征和静态反混淆后获取的代码特征。
S22、针对从每一训练样本中提取的每一样本特征,计算该样本特征对应的特征值。
本步骤中,针对每一训练样本,针对步骤S21中从该训练样本中提取的样本特征进行计算得到对应的特征值,例如,提取的样本特征及其对应的特征值可以为:
1)字符串,函数,运算符等对应的特征值,例如,可以包括:
自定义函数的总数;
自定义变量的总数;
加号运算符‘+’的总数;
长字符串总数;
字符串常量总数;
字符串变量总数;
最长字符串常量长度;
抽象语法树解析后token总数;
长字符串包含不可打印字符总数;
字符串直接给变量赋值的总数;
所有字符串的平均长度;
脚本代码每一行的平均长度;
16进制字符的数量;
2)特殊函数,关键词引用等特征对应的特征值,例如:
eval(),case,unescape(),charCodeAt(),miner(),encodeURIComponent(),
decodeURIComponent(),charAt(),document.location,document.write(),
setTimeout(),setTimeInterval(),document.createElement(),parseInt()
CreateObject(),ActiveXObject()
3)其他特征对应的特征值:
eval()输入参数长度;
unescape()输入参数长度;
document.write()输入参数长度;
字符串拼接的次数。
S23、基于从训练样本中提取的各样本特征所对应的特征值,利用预设机器学习异常检测算法进行学习得到所述恶意脚本检测模型。
具体地,步骤S23可以按照以下步骤实施:
步骤1、确定从训练样本集包含的每一训练样本中提取样本特征得到特征向量集合。
步骤2、从训练样本集中随机选取m个训练样本得到训练样本子集合,并将其作为孤立子树的根节点。
步骤3、针对训练样本子集合中包含的训练样本,随机选择一个样本特征,并随机选择该样本特征取值范围的中间值p。
步骤4、以p为分界点,将特征取值不小于p的训练样本和特征取值小于p的训练样本分别划分为孤立子树的左右分叉树。
本步骤中,根据选择出的样本特征对应的特征值,根据随机选取的、该特征值取值范围的中间某值p,将样本子集合中包含的训练样本划分为两部分,其中,特征值不小于p的一部分训练样本作为根节点的左叉树,特征值大于p的一部分训练样本作为根节点的右叉树。
具体实施时,可以按照以下方法选取p:根据样本子集合中包含的所有训练样本中,该选择出的样本特征对应的特征值的取值范围,确定其中间值为p,具体实施时,特征值的取值范围也可以随机选择,本发明实施例不进行限定。
步骤5、重复步骤3和步骤4,直至每个叶子节点只有一个样本或者达到预先给定的孤立子树的深度阈值d,执行步骤6.
本步骤中,针对步骤3和步骤4中得到的左叉树和右叉树,分别对其包含的训练样本采用步骤3和步骤4的方法进一步进行划分,得到左叉树和右叉树的左右分叉树,直至得到的左右分叉树中只包含一个样本为止,或者孤立子树的深度达到了预设的深度阈值,则执行步骤6。
步骤6、重复步骤2、步骤3、步骤4和步骤5,直至形成n个孤立子树。
具体实施时,由此n个孤立子树形成恶意脚本检测模型。
基于形成的恶意脚本检测模型,为了提高恶意脚本检测模型检测结果的准确性,本发明实施例中,还可以利用测试样本集进一步对恶意脚本检测模型进行验证,其中,测试样本集用于测试所生成的恶意脚本检测模型是否有效和确定恶意脚本检测阈值。
本发明实施例中,在测试样本集中,包含有已知恶意脚本文件,其中,已知恶意脚本文件在所述测试样本集中所占比例不超过预设比例阈值。其中,预设比例阈值可以根据实际需要进行设定,本发明实施例对此不进行限定,例如,可以设定为1/1000。
利用上述生成的恶意脚本检测模型遍历测试样本集中包含的测试样本,生成n个孤立子树,并得到每个待测试样本的最终椰子节点的平均深度,利用预设恶意脚本检测评分规则将其转换为[0,1]之间的最终得到作为检测值。
进一步地,本发明实施例中,根据各个已知恶意脚本文件,利用上述的恶意脚本检测模型分别对各已知恶意脚本文件进行检测,得到各已知恶意脚本文件对应的第二检测值,确定第二检测值中的最小值为恶意脚本检测阈值。
上述过程中,利用测试样本集验证上述生成的恶意脚本检测模型的有效性,即对于人工加入正常样本集中的少量恶意脚本样本,如果能检测出少量恶意脚本样本,则说明得到的恶意脚本检测模型检测结果可以满足要求,否则,说明得到的恶意脚本检测模型检测结果不满足要求,需要重新生成模型。
具体实施时,测试样本集中包含的已知恶意脚本文件,可以为不被训练样本集包含的新发现的恶意脚本文件,利用新颖的恶意脚本文件更新恶意脚本检测阈值,以动态满足恶意脚本检测需求。
如果利用测试样本集对生成的恶意脚本检测模型进行验证通过后,则可以利用恶意脚本检测模型对待检测样本进行检测,其中,待检测样本可以为生产实际中收集的脚本文件。
如图3所示,其为本发明实施例提供的恶意脚本检测方法的实施流程示意图,包括以下步骤:
S31、获取待检测样本。
S32、利用恶意脚本检测模型对待检测样本进行处理得到待检测样本对应的第一检测值。
S33、判断第一检测值是否大于恶意脚本检测阈值,如果是,则执行步骤S34,否则,执行步骤S35。
S34、确定待检测样本是恶意脚本,流程结束。
S35、确定待检测样本不是恶意脚本。
本发明实施例提供的恶意脚本检测方法中,利用机器学习异常检测算法对训练样本集进行学习得到的恶意脚本检测模型,并基于测试样本集,利用学习得到的恶意脚本检测模型确定恶意脚本检测阈值,对于待检样本,利用恶意检测模型确定其对应的检测值,根据检测值与恶意脚本检测阈值之间的关系即可判断出待检测样本是否为恶意脚本,上述过程中,无需预先建立恶意脚本特征库或者专家知识库,对于未知恶意脚本同样可以进行检测,从而提高了恶意脚本检测方法的通用性。
基于相同的技术构思,本发明实施例还提供了一种恶意脚本检测装置,如图4所示,包括:
获取单元41,用于获取待检测样本;
检测单元42,用于利用恶意脚本检测模型对待检测样本进行处理得到所述待检测样本对应的第一检测值,所述恶意脚本检测模型为利用预设机器学习异常检测算法对训练样本集进行学习得到的;
判断单元43,用于判断所述第一检测值是否大于恶意脚本检测阈值,所述恶意脚本检测阈值为根据利用所述恶意脚本检测模型对测试样本集中包含的测试样本进行处理得到的;
第一确定单元44,用于如果所述第一检测值大于所述恶意脚本检测阈值,则确定所述待检测样本是恶意脚本,如果所述第一检测值不大于所述恶意脚本检测阈值,则确定所述待检测样本不是恶意脚本。
在一种实施方式中,本发明实施例提供的恶意脚本检测装置,还包括:
预处理单元,用于获取初始训练样本集,所述训练样本集包括以下至少一类:从网络上公开采集的脚本文件集、安全研究网站收集的、用户上传的脚本文件集和生产实际中收集的脚本文件集;利用已有的恶意脚本黑名单库或者病毒查杀引擎对所述初始训练样本集中包含的脚本文件进行检测,确定所述初始训练样本集中的恶意脚本文件;从所述初始训练样本集中删除确定出的恶意脚本文件,得到训练样本集。
在一种实施方式中,本发明实施例提供的恶意脚本检测装置,还包括:
模型生成单元,用于从所述训练样本集包含的每一训练样本中分别提取样本特征,所述样本特征包括以下至少一项:静态文本特征、字符串特征、抽象语法树节点特征和静态反混淆后获取的代码特征;针对从每一训练样本中提取的每一样本特征,计算该样本特征对应的特征值;基于从训练样本中提取的各样本特征所对应的特征值,利用预设机器学习异常检测算法进行学习得到所述恶意脚本检测模型。
在一种实施例方式中,所述测试样本集中包含有已知恶意脚本文件,其中,已知恶意脚本文件在所述测试样本集中所占比例不超过预设比例阈值。
在一种实施方式中,本发明实施例提供的恶意脚本检测装置,还包括:
第二确定单元,用于利用所述恶意脚本检测模型分别对各已知恶意脚本文件进行检测,得到各已知恶意脚本文件对应的第二检测值;确定所述第二检测值中的最小值为所述恶意脚本检测阈值。
在一种实施方式中,所述预设机器学习异常检测算法包括孤立森林异常检测算法。
为了描述的方便,以上各部分按照功能划分为各模块(或单元)分别描述。当然,在实施本发明时可以把各模块(或单元)的功能在同一个或多个软件或硬件中实现。
在介绍了本发明示例性实施方式的恶意脚本检测方法和装置之后,接下来,介绍根据本发明的另一示例性实施方式的计算装置。
所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
在一些可能的实施方式中,根据本发明的计算装置可以至少包括至少一个处理器、以及至少一个存储器。其中,所述存储器存储有程序代码,当所述程序代码被所述处理器执行时,使得所述处理器执行本说明书上述描述的根据本发明各种示例性实施方式的恶意脚本检测方法中的步骤。例如,所述处理器可以执行如图3中所示的步骤S31、获取待检测样本,和步骤S32、利用恶意脚本检测模型对待检测样本进行处理得到所述待检测样本对应的第一检测值;以及步骤S33、判断第一检测值是否大于恶意脚本检测阈值,如果是,则执行步骤S34,否则,执行步骤S35;步骤S34、确定待检测样本是恶意脚本,流程结束;步骤S35、确定待检测样本不是恶意脚本。
下面参照图5来描述根据本发明的这种实施方式的计算装置50。图5显示的计算装置50仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图5所示,计算装置50以通用计算设备的形式表现。计算装置50的组件可以包括但不限于:上述至少一个处理器51、上述至少一个存储器52、连接不同系统组件(包括存储器52和处理器51)的总线53。
总线53表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器、外围总线、处理器或者使用多种总线结构中的任意总线结构的局域总线。
存储器52可以包括易失性存储器形式的可读介质,例如随机存取存储器(RAM)521和/或高速缓存存储器522,还可以进一步包括只读存储器(ROM)523。
存储器52还可以包括具有一组(至少一个)程序模块524的程序/实用工具525,这样的程序模块524包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
计算装置50也可以与一个或多个外部设备54(例如键盘、指向设备等)通信,还可与一个或者多个使得用户能与计算装置50交互的设备通信,和/或与使得该计算装置50能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口55进行。并且,计算装置50还可以通过网络适配器56与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器56通过总线53与用于计算装置50的其它模块通信。应当理解,尽管图中未示出,可以结合计算装置50使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
在一些可能的实施方式中,本发明提供的恶意脚本检测方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在计算机设备上运行时,所述程序代码用于使所述计算机设备执行本说明书上述描述的根据本发明各种示例性实施方式的恶意脚本检测方法中的步骤,例如,所述计算机设备可以执行如图3中所示的步骤S31、获取待检测样本,和步骤S32、利用恶意脚本检测模型对待检测样本进行处理得到所述待检测样本对应的第一检测值;以及步骤S33、判断第一检测值是否大于恶意脚本检测阈值,如果是,则执行步骤S34,否则,执行步骤S35;步骤S34、确定待检测样本是恶意脚本,流程结束;步骤S35、确定待检测样本不是恶意脚本。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
本发明的实施方式的用于恶意脚本检测的程序产品可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在计算设备上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
应当注意,尽管在上文详细描述中提及了装置的若干单元或子单元,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元的特征和功能可以在一个单元中具体化。反之,上文描述的一个单元的特征和功能可以进一步划分为由多个单元来具体化。
此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
通过具体实施方式的说明,应当可对本发明为达成预定目的所采取的技术手段及功效得以更加深入且具体的了解,然而所附图示仅是提供参考与说明之用,并非用来对本发明加以限制。
Claims (10)
1.一种恶意脚本检测方法,其特征在于,包括:
获取待检测样本;
利用恶意脚本检测模型对待检测样本进行处理得到所述待检测样本对应的第一检测值,所述恶意脚本检测模型为利用预设机器学习异常检测算法对训练样本集进行学习得到的;
判断所述第一检测值是否大于恶意脚本检测阈值,所述恶意脚本检测阈值为根据利用所述恶意脚本检测模型对测试样本集中包含的测试样本进行处理得到的;
如果所述第一检测值大于所述恶意脚本检测阈值,则确定所述待检测样本是恶意脚本,如果所述第一检测值不大于所述恶意脚本检测阈值,则确定所述待检测样本不是恶意脚本。
2.根据权利要求1所述的方法,其特征在于,所述训练样本集为按照以下流程获得的:
获取初始训练样本集,所述训练样本集包括以下至少一类:从网络上公开采集的脚本文件集、安全研究网站收集的、用户上传的脚本文件集和生产实际中收集的脚本文件集;
利用已有的恶意脚本黑名单库或者病毒查杀引擎对所述初始训练样本集中包含的脚本文件进行检测,确定所述初始训练样本集中的恶意脚本文件;
从所述初始训练样本集中删除确定出的恶意脚本文件,得到训练样本集。
3.根据权利要求2所述的方法,其特征在于,利用预设机器学习异常检测算法按照以下流程对训练样本集进行学习得到所述恶意脚本检测模型:
从所述训练样本集包含的每一训练样本中分别提取样本特征,所述样本特征包括以下至少一项:静态文本特征、字符串特征、抽象语法树节点特征和静态反混淆后获取的代码特征;
针对从每一训练样本中提取的每一样本特征,计算该样本特征对应的特征值;
基于从训练样本中提取的各样本特征所对应的特征值,利用预设机器学习异常检测算法进行学习得到所述恶意脚本检测模型。
4.根据权利要求1所述的方法,其特征在于,所述测试样本集中包含有已知恶意脚本文件,其中,已知恶意脚本文件在所述测试样本集中所占比例不超过预设比例阈值。
5.根据权利要求4所述的方法,其特征在于,所述恶意脚本检测阈值为按照以下流程确定出的:
利用所述恶意脚本检测模型分别对各已知恶意脚本文件进行检测,得到各已知恶意脚本文件对应的第二检测值;
确定所述第二检测值中的最小值为所述恶意脚本检测阈值。
6.根据权利要求1~5任一权利要求所述的方法,其特征在于,所述预设机器学习异常检测算法包括孤立森林异常检测算法。
7.一种恶意脚本检测装置,其特征在于,包括:
获取单元,用于获取待检测样本;
检测单元,用于利用恶意脚本检测模型对待检测样本进行处理得到所述待检测样本对应的第一检测值,所述恶意脚本检测模型为利用预设机器学习异常检测算法对训练样本集进行学习得到的;
判断单元,用于判断所述第一检测值是否大于恶意脚本检测阈值,所述恶意脚本检测阈值为根据利用所述恶意脚本检测模型对测试样本集中包含的测试样本进行处理得到的;
第一确定单元,用于如果所述第一检测值大于所述恶意脚本检测阈值,则确定所述待检测样本是恶意脚本,如果所述第一检测值不大于所述恶意脚本检测阈值,则确定所述待检测样本不是恶意脚本。
8.根据权利要求7所述的装置,其特征在于,还包括:
预处理单元,用于获取初始训练样本集,所述训练样本集包括以下至少一类:从网络上公开采集的脚本文件集、安全研究网站收集的、用户上传的脚本文件集和生产实际中收集的脚本文件集;利用已有的恶意脚本黑名单库或者病毒查杀引擎对所述初始训练样本集中包含的脚本文件进行检测,确定所述初始训练样本集中的恶意脚本文件;从所述初始训练样本集中删除确定出的恶意脚本文件,得到训练样本集。
9.一种计算装置,其特征在于,所述计算装置包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至6中任一项所述的方法的步骤。
10.一种计算机存储介质,所述计算机存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910991553.0A CN110765459A (zh) | 2019-10-18 | 2019-10-18 | 一种恶意脚本检测方法、装置和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910991553.0A CN110765459A (zh) | 2019-10-18 | 2019-10-18 | 一种恶意脚本检测方法、装置和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110765459A true CN110765459A (zh) | 2020-02-07 |
Family
ID=69332377
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910991553.0A Pending CN110765459A (zh) | 2019-10-18 | 2019-10-18 | 一种恶意脚本检测方法、装置和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110765459A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111475809A (zh) * | 2020-04-09 | 2020-07-31 | 杭州奇盾信息技术有限公司 | 脚本混淆检测方法、装置、计算机设备和存储介质 |
CN112347479A (zh) * | 2020-10-21 | 2021-02-09 | 北京天融信网络安全技术有限公司 | 恶意软件检测的误报纠正方法、装置、设备和存储介质 |
CN112926054A (zh) * | 2021-02-22 | 2021-06-08 | 亚信科技(成都)有限公司 | 一种恶意文件的检测方法、装置、设备及存储介质 |
CN113051565A (zh) * | 2021-03-16 | 2021-06-29 | 深信服科技股份有限公司 | 恶意脚本的检测方法及装置、设备、存储介质 |
CN113111350A (zh) * | 2021-04-28 | 2021-07-13 | 北京天融信网络安全技术有限公司 | 一种恶意pdf文件的检测方法、装置及电子设备 |
CN113190847A (zh) * | 2021-04-14 | 2021-07-30 | 深信服科技股份有限公司 | 一种脚本文件的混淆检测方法、装置、设备及存储介质 |
CN114091019A (zh) * | 2020-12-03 | 2022-02-25 | 奇安信科技集团股份有限公司 | 数据集构建、恶意软件识别、识别模型构建方法及装置 |
CN114553523A (zh) * | 2022-02-21 | 2022-05-27 | 平安普惠企业管理有限公司 | 基于攻击检测模型的攻击检测方法及装置、介质、设备 |
CN115952411A (zh) * | 2023-03-14 | 2023-04-11 | 北京有生博大软件股份有限公司 | 一种前端界面的动态语言反混淆特征提取方法及提取系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107180192A (zh) * | 2017-05-09 | 2017-09-19 | 北京理工大学 | 基于多特征融合的安卓恶意应用程序检测方法和系统 |
CN107346388A (zh) * | 2017-07-03 | 2017-11-14 | 四川无声信息技术有限公司 | Web攻击检测方法及装置 |
CN107908963A (zh) * | 2018-01-08 | 2018-04-13 | 北京工业大学 | 一种自动化检测恶意代码核心特征方法 |
CN108154029A (zh) * | 2017-10-25 | 2018-06-12 | 上海观安信息技术股份有限公司 | 入侵检测方法、电子设备和计算机存储介质 |
CN110162970A (zh) * | 2019-01-08 | 2019-08-23 | 腾讯科技(深圳)有限公司 | 一种程序处理方法、装置以及相关设备 |
-
2019
- 2019-10-18 CN CN201910991553.0A patent/CN110765459A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107180192A (zh) * | 2017-05-09 | 2017-09-19 | 北京理工大学 | 基于多特征融合的安卓恶意应用程序检测方法和系统 |
CN107346388A (zh) * | 2017-07-03 | 2017-11-14 | 四川无声信息技术有限公司 | Web攻击检测方法及装置 |
CN108154029A (zh) * | 2017-10-25 | 2018-06-12 | 上海观安信息技术股份有限公司 | 入侵检测方法、电子设备和计算机存储介质 |
CN107908963A (zh) * | 2018-01-08 | 2018-04-13 | 北京工业大学 | 一种自动化检测恶意代码核心特征方法 |
CN110162970A (zh) * | 2019-01-08 | 2019-08-23 | 腾讯科技(深圳)有限公司 | 一种程序处理方法、装置以及相关设备 |
Non-Patent Citations (5)
Title |
---|
TONY LIU AND KAI MING TING: "Isolation-based Anomaly Detection", 《ACM TRANSACTIONS ON KNOWLEDGE DISCOVERY FROM DATA, VOL. 6, NO. 1,》 * |
原锦明: "《网络安全技术研究》", 31 May 2017 * |
李洋等: "基于机器学习的网页恶意代码检测方法", 《北京电子科技学院学报》 * |
葛修婷,潘娅: "机器学习技术在软件测试领域的应用", 《西南科技大学学报》 * |
陈海虹: "《机器学习原理及应用》", 31 July 2017 * |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111475809A (zh) * | 2020-04-09 | 2020-07-31 | 杭州奇盾信息技术有限公司 | 脚本混淆检测方法、装置、计算机设备和存储介质 |
CN111475809B (zh) * | 2020-04-09 | 2023-10-20 | 杭州奇盾信息技术有限公司 | 脚本混淆检测方法、装置、计算机设备和存储介质 |
CN112347479A (zh) * | 2020-10-21 | 2021-02-09 | 北京天融信网络安全技术有限公司 | 恶意软件检测的误报纠正方法、装置、设备和存储介质 |
CN112347479B (zh) * | 2020-10-21 | 2021-08-24 | 北京天融信网络安全技术有限公司 | 恶意软件检测的误报纠正方法、装置、设备和存储介质 |
CN114091019A (zh) * | 2020-12-03 | 2022-02-25 | 奇安信科技集团股份有限公司 | 数据集构建、恶意软件识别、识别模型构建方法及装置 |
CN112926054A (zh) * | 2021-02-22 | 2021-06-08 | 亚信科技(成都)有限公司 | 一种恶意文件的检测方法、装置、设备及存储介质 |
CN112926054B (zh) * | 2021-02-22 | 2023-10-03 | 亚信科技(成都)有限公司 | 一种恶意文件的检测方法、装置、设备及存储介质 |
CN113051565A (zh) * | 2021-03-16 | 2021-06-29 | 深信服科技股份有限公司 | 恶意脚本的检测方法及装置、设备、存储介质 |
CN113051565B (zh) * | 2021-03-16 | 2024-05-28 | 深信服科技股份有限公司 | 恶意脚本的检测方法及装置、设备、存储介质 |
CN113190847A (zh) * | 2021-04-14 | 2021-07-30 | 深信服科技股份有限公司 | 一种脚本文件的混淆检测方法、装置、设备及存储介质 |
CN113111350A (zh) * | 2021-04-28 | 2021-07-13 | 北京天融信网络安全技术有限公司 | 一种恶意pdf文件的检测方法、装置及电子设备 |
CN114553523A (zh) * | 2022-02-21 | 2022-05-27 | 平安普惠企业管理有限公司 | 基于攻击检测模型的攻击检测方法及装置、介质、设备 |
CN115952411A (zh) * | 2023-03-14 | 2023-04-11 | 北京有生博大软件股份有限公司 | 一种前端界面的动态语言反混淆特征提取方法及提取系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110765459A (zh) | 一种恶意脚本检测方法、装置和存储介质 | |
CN107645503B (zh) | 一种基于规则的恶意域名所属dga家族的检测方法 | |
CN111400719B (zh) | 基于开源组件版本识别的固件脆弱性判别方法及系统 | |
US10339485B2 (en) | Efficiently generating test cases | |
CN112131882A (zh) | 一种多源异构网络安全知识图谱构建方法及装置 | |
US11601462B2 (en) | Systems and methods of intelligent and directed dynamic application security testing | |
CN108985061B (zh) | 一种基于模型融合的webshell检测方法 | |
Feng et al. | Efficient vulnerability detection based on abstract syntax tree and deep learning | |
CN109104421B (zh) | 一种网站内容篡改检测方法、装置、设备及可读存储介质 | |
CN112989348B (zh) | 攻击检测方法、模型训练方法、装置、服务器及存储介质 | |
CN108229170B (zh) | 利用大数据和神经网络的软件分析方法和装置 | |
CN111488590A (zh) | 一种基于用户行为可信分析的sql注入检测方法 | |
CN106022132A (zh) | 一种基于动态内容分析的网页木马实时检测方法 | |
CN109740347A (zh) | 一种针对智能设备固件的脆弱哈希函数的识别与破解方法 | |
CN104462985A (zh) | bat漏洞的检测方法以及装置 | |
CN108664791A (zh) | 一种超文本预处理器代码中的网页后门检测方法及装置 | |
KR20210084204A (ko) | 악성 코드 수집 방법 및 시스템 | |
CN114338195A (zh) | 基于改进孤立森林算法的web流量异常检测方法及装置 | |
CN112685738A (zh) | 一种基于多级投票机制的恶意混淆脚本静态检测方法 | |
CN113158197A (zh) | 一种基于主动iast的sql注入漏洞检测方法、系统 | |
CN112688966A (zh) | webshell检测方法、装置、介质和设备 | |
Li et al. | Large-scale third-party library detection in android markets | |
CN104134019A (zh) | 检测脚本病毒的方法和装置 | |
CN112817877B (zh) | 异常脚本检测方法、装置、计算机设备和存储介质 | |
CN113971284B (zh) | 基于JavaScript的恶意网页检测方法、设备及计算机可读存储介质 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200207 |
|
RJ01 | Rejection of invention patent application after publication |