CN113971284B - 基于JavaScript的恶意网页检测方法、设备及计算机可读存储介质 - Google Patents
基于JavaScript的恶意网页检测方法、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN113971284B CN113971284B CN202010723131.8A CN202010723131A CN113971284B CN 113971284 B CN113971284 B CN 113971284B CN 202010723131 A CN202010723131 A CN 202010723131A CN 113971284 B CN113971284 B CN 113971284B
- Authority
- CN
- China
- Prior art keywords
- javascript
- code
- javascript code
- static analysis
- 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
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 70
- 238000003860 storage Methods 0.000 title claims abstract description 16
- 238000004458 analytical method Methods 0.000 claims abstract description 55
- 230000003068 static effect Effects 0.000 claims abstract description 47
- 238000000034 method Methods 0.000 claims description 44
- 230000006870 function Effects 0.000 claims description 26
- 239000013598 vector Substances 0.000 claims description 19
- 230000008569 process Effects 0.000 claims description 15
- 238000000605 extraction Methods 0.000 claims description 11
- 230000009467 reduction Effects 0.000 claims description 11
- 230000011218 segmentation Effects 0.000 claims description 11
- 238000007781 pre-processing Methods 0.000 claims description 10
- 238000005259 measurement Methods 0.000 claims description 8
- 238000004422 calculation algorithm Methods 0.000 claims description 6
- 238000012545 processing Methods 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 5
- 230000009471 action Effects 0.000 claims description 4
- 238000010276 construction Methods 0.000 claims description 4
- 235000014510 cooky Nutrition 0.000 claims description 4
- 230000006399 behavior Effects 0.000 description 8
- 238000009826 distribution Methods 0.000 description 5
- 238000012549 training Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 244000035744 Hura crepitans Species 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000000513 principal component analysis Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000010420 art technique Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- ZXQYGBMAQZUVMI-GCMPRSNUSA-N gamma-cyhalothrin Chemical compound CC1(C)[C@@H](\C=C(/Cl)C(F)(F)F)[C@H]1C(=O)O[C@H](C#N)C1=CC=CC(OC=2C=CC=CC=2)=C1 ZXQYGBMAQZUVMI-GCMPRSNUSA-N 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000013138 pruning Methods 0.000 description 1
- 238000011002 quantification Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012706 support-vector machine Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
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/566—Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
- G06F18/2411—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on the proximity to a decision surface, e.g. support vector machines
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1433—Vulnerability analysis
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- 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)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Computing Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开涉及基于JavaScript的恶意网页检测方法、设备及计算机可读存储介质。根据本发明的基于JavaScript的恶意网页检测方法,包括:输入JavaScript代码;对JavaScript代码进行混淆判断;如果判断JavaScript代码是混淆JavaScript代码,则对JavaScript代码执行基于动态分析的恶意网页检测;以及如果判断JavaScript代码是非混淆JavaScript代码,则对JavaScript代码执行基于静态分析的恶意网页检测。
Description
技术领域
本发明公开通常涉及网络与信息安全领域,并且更具体而言,涉及用于基于JavaScript的恶意网页检测方法、设备及计算机可读存储介质。
背景技术
Javascript是一种解释执行的脚本语言,主要应用于Web领域的客户端的浏览器中。由于Javascript解释执行的特性,代码必须明文下载到客户端,并且可以很容易的进行调试,使得Javascript代码的保护非常困难。
当前主流站点中约有95%的站点在使用JavaScript进行Web前端开发,但其代码不进行预编译而直接被用户浏览器解释的特性,使攻击者可以利用恶意JavaScript执行作为攻击的入口。
基于已知特征及黑名单的检测都是基于静态分析的检测方法,前提在于维护大量已知攻击行为或者黑名单库。为了保证检测准确性需要及时升级特征库,这还存在库内是大量无效的黑名单的可能。
基于虚拟机(含沙箱)的检测是基于动态分析的检测方法,前提是需要配置完备的检测平台,并且检测效率较低,对硬件的要求较高。
因此,现有技术中存在对根据大量样本构建有效特征向量技术以改进现有恶意网页检测的需求。
发明内容
本专利提出了一种基于JavaScript动静结合的恶意网页检测方法、设备及计算机可读存储介质。根据本发明的技术方案可用于恶意网页的检测并且适用于资产安全管理相关安全产品的web资产安全检测功能。
为了实现上述目的,根据本发明的一个方面提供了一种基于JavaScript的恶意网页检测方法,包括:输入JavaScript代码;对JavaScript代码进行混淆判断;如果判断JavaScript代码是混淆JavaScript代码,则对JavaScript代码执行基于动态分析进行的恶意网页检测;以及如果判断JavaScript代码是非混淆JavaScript代码,则对JavaScript代码执行基于静态分析的恶意网页检测。
为了实现上述目的,根据本发明的再一个方面提供了一种计算设备,包括:处理器;和存储器,其耦合到所述处理器并且其上存储有计算机可读指令,当由所述处理器执行时,所述计算机可读指令使得所述处理器执行上述方法步骤。
为了实现上述目的,根据本发明的再一个方面提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序在被处理器执行时实现上述基于JavaScript的恶意网页检测方法步骤。
为了实现上述目的,根据本发明的再一个方面提供了一种基于JavaScript的恶意网页检测方法装置,包括实现上述方法步骤的部件。
附图说明
在下文中,将参照附图详细地描述本公开内容的优选实施例。注意,在本说明书和附图中,用相同的附图标记来表示具有基本上相同的功能和结构的结构元件,并且省略对这些结构元件的重复说明。
图1是示出了根据本公开的一些实施例的基于JavaScript动静结合的恶意网页检测处理的流程图;和
图2是示出了根据本公开的一些实施例的在JavaScript代码是混淆代码的情况下执行的动态分析处理的流程图。
图3是示出了根据本公开的一些实施例的在JavaScript代码是非混淆代码的情况下执行的静态分析处理的流程图。
图4是示出了根据本公开的一些实施例的基于JavaScript动静结合的恶意网页检测系统的框图。
图5示出了根据本公开的一些实施例的有限状态机的一个示例实现。
具体实施方式
以下对示例性实施例的详细描述参考附图。不同附图中的相同标号识别相同或相似的元件。此外,附图不一定按比例绘制。而且,以下详细描述不限制本发明。相反,本发明的范围由所附权利要求限定。
整个说明书中对“一个实施例”或“实施例”或“一些实施例”的引用意味着结合实施例描述的特定特征、结构或特点包括在所公开的主题的至少一个实施例中。因此,在整个说明书中各处出现的短语“在一个实施例中”或“在实施例中”或“在一些实施例中”不一定是指相同的(一个或多个)实施例。另外,特定特征、结构或特点可以在一个或多个实施例中以任何合适的方式组合。
本专利提出的方法:针对静态分析无法提取恶意代码的行为特征且难以应对混淆JavaScript代码检测及动态分析对特定配置环境的要求相对复杂,本发明人提出针对JavaScript代码,通过对其特征静态分析与对其行为动态分析相结合的方法,实现特征维度低,轻量级的恶意网页检测。
具体而言,本技术方案通过以下操作中的一个或多个来实现恶意网页检测。
(一)收集有效数据,基于Bigram及信息论测度值的JavaScript代码混淆判断。值得注意的是,本发明不限于使用Bigram,其仅作为示例在本文进行说明。例如,N-gram也能考虑(除了U-gram,存储空间要求太大)。选择Bigram是在考虑((字母,数字)、(字母,字母)、(字母、特殊字符)、(数字、数字)、(数字、特殊字符)、(特殊字符、特殊字符)的拼接方法,因为在混淆代码中会有较多数字和特殊字符,字母所占比率会下降,一定程度上,分词可以作为特征的输入。
(二)典型未混淆恶意JavaScript代码静态特征提取:1)对JavaScript代码进行保留原有代码信息熵的转换与词法解析;2)通过JavaScript代码基本特征维度(含字符串分割相关)、DOM操作维度(document)、BOM操作维度(window)、shellcode(滑板指令)及PE(.exe等)特征维度等多维度特征,进一步地,根据信息熵确定特征权值,筛选高相关性特征,该方法特征全面且维度低,并保证检测率。
静态分析只用正常行为数据,可以采用主成分分析(PCA)、单分类支持向量机(OneClass SVM)和最近邻(K-NN)算法检测混淆,以便更有效地识别异常点。值得注意的是选择什么算法来进行检测不是本公开的关注点。本领域技术人员可以根据需要采用任何现有的算法来进行检测。本发明公开着重于如何构建有效、高效的特征向量以改进现有恶意网页检测。
(三)典型混淆恶意JavaScript代码动态特征提取:1)对混淆JavaScript代码进行AST构建,跟踪匿名函数变量,定义存在iframe攻击风险、存在重定向攻击风险、存在偷取cookie风险、存在扫描浏览器漏洞风险、存在字符串拼接/变形风险、存在动态执行风险、存在下载行为风险为动态分析的恶意终值特征,实现暴露恶意JavaScript代码完成动态行为特征提取,该方法特征轻量无需引入重量级组件,并保证检测率。
抽象语法树(abstract syntax code,AST)是源代码的抽象语法结构的树状表示,树上的每个节点都表示源代码中的一种结构。抽象语法树并不依赖于源语言的语法。因此,很多编译器经常要独立地构造语法分析树,从而建立清晰的接口。本发明公开将AST用作为一个示例对本发明进行说明。
通过使用本发明,能够构建并输出有效、高效的特征向量集以供恶意网页检测使用。
根据本发明公开的一个方面,提供了一种基于JavaScript的恶意网页检测方法,包括:输入JavaScript代码;对JavaScript代码进行混淆判断;如果判断JavaScript代码是混淆JavaScript代码,则对JavaScript代码执行基于动态分析的恶意网页检测;以及如果判断JavaScript代码是非混淆JavaScript代码,则对JavaScript代码执行基于静态分析的恶意网页检测。
图1是示出了基于JavaScript动静结合的恶意网页检测处理100的流程图。
在步骤101处,基于JavaScript动静结合的恶意网页检测处理100开始。
在步骤102处,输入JavaScript代码。
在步骤103处,对JavaScript代码进行混淆判断。
混淆判断可以通过以下来实现:使用Bigram对JavaScript代码进行分词处理;为所获得的分词计算信息论测量度值;以及将计算的信息论测量度值作为单分类SVM算法的输入来进行混淆判断。
例如,代码混淆判断可以采用Bigram分词下考虑((字母,数字)、(字母,字母)、(字母、特殊字符)、(数字、数字)、(数字、特殊字符)、(特殊字符、特殊字符)的情况,由信息论测量度值作为One-class SVM输入。
然后,代码混淆判断可以确定概率分布定义不确定度量值(香农熵、碰撞熵及香农熵近似)
香农熵、碰撞熵及香农熵近似属于不确定度量值,理论上不能保证识别数据的异常频率,香农熵一样的两段代码不能保证是一样的检测结果,但其结果可能是:一个是混淆而另外一个是非混淆。
最后,代码混淆判断可以进行距离测量(良性分布、K-L散度、Bhattacharyya距离与欧式距离)。
将获取的不确定度量值和距离测量值作为One-class SVM分类器输入,调整One-class SVM分类器Nu参数(Nu是在训练过程中的可调参数),完成训练和异常检测,从而得到有效且高效的静态特征向量集。
在本文中,良性分布、K-L散度、Bhattacharyya距离与欧式距离是可以表述两段代码的异常观察现象,其与不确定度量值相辅相成来进行混淆判断。
作为示例,以下给出了所获得的值:
熵值:
①H(X)=-∑xp(x)log2p(x)——分词后的香农熵,随机变量X为分词对象;
②H2(X)=-log∑xp(x)2——碰撞熵,随机变量X为分词对象;
距离测量值:
p(x)=∑n(C/T)*freq(x)——良性分布;
其中:T为训练集合内所有未混淆样本的总文本长度,C为分词对象x的非混淆样本长度,freq为x发生频率,n为x发生样本总数。
③DKL(P||Q)=∑x p(x)log2p(x)/q(x)and
④DKL(Q||P)=∑xq(x)log2q(x)/p(x)
⑤DB(P,Q)=-ln(∑x sqrt p(x)*q(x))
⑥d(P,Q)=sqrt∑x(p(x)-q(x))2
通过正常代码参数来训练一个一类分类器,得到一个紧凑的分类边界,超出这个边界就认为是恶意代码。One-class SVM算法不是对已有标签的数据进行分类判别,而是通过是/否的方式去根据支持向量域描述,将样本数据训练二维或者超球面。作为示例,本公开将上述的6个特征数值为一个输入,得到修正的核函数。
如果在步骤103处判断JavaScript代码是混淆JavaScript代码,则处理100前进到步骤104。如果在步骤103处判断JavaScript代码不是混淆JavaScript代码,处理100前进到步骤105。
在步骤104处,对JavaScript代码执行基于动态分析的恶意网页检测。
如果判断JavaScript代码是混淆代码,进行动态分析特征提取。具体地,跟踪动态特征,暴露恶意代码的隐藏参数,获得其特征参数,包含提取文档对象和浏览器窗口对象相关属性和方法,构造有限向量机检测模型。
首先,获取代码AST抽象语法树,追踪函数定义过程、调用关系及类型,保留调用函数、方法及数组、字符串节点,获取变量终值。
其次,以存在iframe攻击风险函数、存在重定向攻击风险函数、存在偷取cookie风险函数、存在扫描浏览器漏洞风险函数、存在字符串拼接/变形风险函数、存在动态执行风险函数、存在下载行为风险函数为动态分析的恶意终值特征。
最后,构造变量初始值与终值有限状态机,形成动态特征检测模型。
在下面参考图2示出并描述了动态分析处理。
在步骤105处,对JavaScript代码执行基于静态分析的恶意网页检测。在下面参考图3对动态分析处理进行详细描述。
如果判断JavaScript代码不是混淆代码,进行静态分析特征提取。
首先,对JavaScript代码进行词法预处理。在保证代码原有逻辑的基础上,对代码进行简化和转换,并获取统计数据:
①关键字、运算符号保留;
②数值用num、变量数用id;
③对字符串按Length分割;等等。
其次,进行静态分析特征提取与降维。
优化现有的采用基本词分布比例作为测试特征的方法,从而引入特征值权值,构造高相关度及高质量特征向量:
①定义JavaScript代码基本特征维度(含字符串分割相关)、DOM操作维度(document)、BOM操作维度(window)、shellcode(滑板指令)及PE(.exe等)特征维度。
②根据预处理结果与定义的特征维度,获取JavaScript关键字,运算符及含代码字符串长度特征词等自定义参数及统计数据作为静态分析特征。
③基于信息熵计算确定特征权值,实现静态分析特征降维及保障静态分析特征的高相关性。
特征降维的原因是大量静态特征无序且有效性不一,因此需要降维。降维可以通过权值计算来去除小概率特征值。
最后,检测特征向量构造。
使用所构造的特征向量,对训练数据进行学习,建立检测模型,完成测试数据检测,输出结果。
在步骤106处,处理100结束。
图2是示出了在JavaScript代码是混淆代码的情况下执行的动态分析处理200的流程图。
在步骤201处,基于JavaScript代码获取AST抽象语法树。
在步骤202处,定义动态执行风险函数特征维度。
在步骤203处,构造初始值与终值有限向量机。
构造初始值与终值有限向量机可以通过以下来实现:获取代码AST抽象语法树,追踪函数定义过程、调用关系及类型,保留调用函数、方法及数组、字符串节点,获取变量终值;以存在iframe攻击风险函数、存在重定向攻击风险函数、存在偷取cookie风险函数、存在扫描浏览器漏洞风险函数、存在字符串拼接/变形风险函数、存在动态执行风险函数、存在下载行为风险函数为动态分析的恶意终值特征;以及构造变量初始值与终值有限状态机,形成动态特征检测模型。
一般而言,构造是将代码构建成为有向图。以下示出了其一个示例实现:
<?php
$func=$REQUEST[‘action’];
$arr=array(‘test’=>1,$_REQUEST[‘PASS’]=>2);
Uasort($arr,$func)
…
;?>
在使用普通特征来甄别时,该代码无危险/敏感函数,但是其中含有回调函数,因此需要动态特征检测与提取。
本发明分析代码AST构建的有向图,目的是获取:从用户可控端到危险函数参数的路径,一旦检测到路径存在(即从绿到红的路径),即可作为一项高权值特征纳入特征向量集合中。
为了动态分析恶意行为和便于动态特征的量化,引入有限状态机模型。可以将初态和终态看作是有效状态机的两个状态,整个状态机描述为:{S,T,O}。图5示出了有限状态机的一个示例实现。
图3是示出了在JavaScript代码是非混淆代码的情况下执行的静态分析处理300的流程图。
在步骤301处,对JavaScript代码进行词法预处理。
词法预处理相当于一定程度标准化,类似于剪枝,去除信息量小的数据,减少计算量。这个预处理可以根据需要使用任何现有技术来实现。
在步骤302处,基于词法预处理的结果执行静态分析特征提取。
通过以下来执行静态分析特征提取:定义JavaScript代码基本特征维度;以及基于词法预处理的结果以及定义的特征维度,获取JavaScript代码的自定义参数及统计数据作为静态分析特征。
在步骤303处,基于提取的静态分析特征执行静态分析特征降维。
通过以下来执行静态分析特征降维:基于信息熵计算确定特征权值以实现静态分析特征降维及保障静态分析特征的高相关性检测特征向量构造。
各种维度是为了构建全面的特征向量。特征可以是有效样本采用的大马、小马、后门等代码的特征提取。例如最简单的一句话木马:<?php eval($_POST[‘a’])?>,eval函数就可以作一个静态特征。
图4是示出了基于JavaScript动静结合的恶意网页检测系统400的框图。在各种实施例中,恶意网页检测系统400执行图1中描述的任何方法。在一些实施例中,恶意网页检测系统400向处理单元提供用于图1中描述的方法中的一个或多个方法的指令,使得处理单元基于由恶意网页检测系统400提供的指令来执行该方法或该方法的一部分。
恶意网页检测系统400包括存储器425、存储装置430、互连(例如,BUS)420、一个或多个CPU 405(在此也称为处理器405)、I/O设备接口410、I/O设备412和网络接口415。
每个CPU 405检索并执行存储在存储器425或存储装置430中的编程指令。互连420用于在CPU 405、I/O设备接口410、存储装置430、网络接口415和存储器425之间移动数据,诸如编程指令。互连420可以使用一个或多个总线来实现。在各种实施例中,CPU 405可以是单个CPU、多个CPU或具有多个处理内核的单个CPU。通常包括存储器425以表示随机存取存储器(例如,静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)或闪存)。存储装置430通常被包括以表示非易失性存储器,诸如硬盘驱动器、固态设备(SSD)、可移除存储卡、光学存储装置或闪存设备。
在一些实施例中,存储器425存储指令460,并且存储装置430存储数据库432和数据源436。然而,在各种实施方式中,指令460、数据库432和数据源436部分地存储在存储器425和部分地存储在存储装置430中,或者它们全部地存储在存储器425或全部地存储在存储装置430中,或者它们经由网络接口415通过网络450被访问。
数据源436可以包括从网络安全环境收集关键词的数据源和/或与网络安全环境相关的其他关键词数据。
指令460是处理器可执行指令,包括代码输入指令462、混淆判断指令464、动态分析指令466以及静态分析指令468。这些指令462-468可以被配置成执行先前在图1中讨论的方法。
在各种实施例中,I/O设备412包括能够呈现信息和接收输入的接口。例如,I/O设备412可以向与恶意网页检测系统400交互的用户呈现信息(例如,冗余和异常样本)并且从用户接收输入(例如,标记动作)。
恶意网页检测系统400经由网络接口415连接到网络450。
图4旨在表示根据本公开的实施例的示例恶意网页检测系统400的主要组件。然而,在一些实施例中,各个组件可以具有比图4所示的更大或更小的复杂度,并且可以存在不同于图4所示的组件或除了那些之外的组件。此外,在一些实施例中,图4中所示的各种组件可以具有比图4中所示的更多、更少或不同的功能。
本发明相对现有技术,具有如下优点和效果:
(一)本方法在静态检测时,在保证源代码逻辑结构、信息熵的前提下的进行预处理,在构造特征向量时,引入关键词、运算符号统计信息及自定义特征,并且通过信息熵确定权值,进一步降维且提取相关度高的特征构造优质特征向量,解决了普通静态分析面临的特征数量少或者增加特征数量特征矩阵即急剧增大的问题。
(二)本方法在动态检测时,不需要引入硬件设备如(虚拟机、沙箱等)辅助,采用AST在代码层面进行反混淆的检测,跟踪输入输出变量值的思路,判定代码的动态行为,进而获取动态特征,可高效实现恶意网页的检测。
(三)本方法将混淆特征与恶意特征区别提取,采用基于混淆判断结果的动静结合的恶意网页检测方法,保证了检测率,同时提升了检测效率。
如基于前述说明书将认识到的,本公开的上述实施例可以使用计算机编程或工程技术来实现,该计算机编程或工程技术包括计算机软件、固件、硬件或其任何组合或子集,其中技术效果是建立并操作基于文件系统的应用网络。具有计算机可读代码装置的任何这样得到的程序都可以在一个或多个计算机可读介质中实施或提供,从而根据本公开所讨论的实施例制作计算机程序产品(即,制品)。计算机可读介质可以是例如但不限于固定(硬)驱动器、软盘、光盘、磁带、诸如只读存储器(ROM)之类的半导体存储器,和/或任何传输/接收媒体(诸如互联网或其它通信网络或链接)。包含计算机代码的制品可以通过直接从一个介质执行代码、通过将代码从一个介质复制到另一个介质或者通过经网络发送代码来制造和/或使用。
这些计算机程序(也称为程序、软件、软件应用、“应用”或代码)包括用于可编程处理器的机器指令,并且可以用高级过程和/或面向对象的编程语言和/或者用汇编/机器语言来实现。如本文所使用的,术语“机器可读介质”、“计算机可读介质”是指用于向可编程处理器提供机器指令和/或数据的任何计算机程序产品、装置和/或设备(例如,磁盘、光盘、存储器、可编程逻辑设备(PLD)),包括将机器指令作为机器可读信号接收的机器可读介质。但是,“机器可读介质”和“计算机可读介质”不包括瞬态信号。术语“机器可读信号”是指用于向可编程处理器提供机器指令和/或数据的任何信号。
虽然已经结合具体示例性实施例描述了本公开,但是应该理解的是,在不脱离如所附权利要求中阐述的本公开的精神和范围的情况下,可以对所公开的实施例进行对本领域技术人员显而易见的各种改变、替换和更改。
Claims (8)
1.一种基于JavaScript的恶意网页检测方法,包括:
输入JavaScript代码;
对JavaScript代码进行混淆判断,包括:
使用Bigram对JavaScript代码进行分词处理,
为所获得的分词计算信息论测量度值,所述信息论测量度值包括不确定度量值和距离测量值,以及
将计算的信息论测量度值作为单分类SVM算法的输入来进行混淆判断;
如果判断JavaScript代码是混淆JavaScript代码,则对JavaScript代码执行基于动态分析的恶意网页检测;以及
如果判断JavaScript代码是非混淆JavaScript代码,则对JavaScript代码执行基于静态分析的恶意网页检测,包括:
对JavaScript代码进行词法预处理,
基于词法预处理的结果执行静态分析特征提取,以及
基于提取的静态分析特征执行静态分析特征降维。
2.如权利要求1所述的方法,其中基于词法预处理的结果执行静态分析特征提取包括:
定义JavaScript代码基本特征维度;以及
基于词法预处理的结果以及定义的特征维度,获取JavaScript代码的自定义参数及统计数据作为静态分析特征。
3.如权利要求1所述的方法,其中基于提取的静态分析特征执行静态分析特征降维包括:
基于信息熵计算确定特征权值以实现静态分析特征降维及保障静态分析特征的高相关性检测特征向量构造。
4.如权利要求1所述的方法,其中对JavaScript代码执行基于动态分析的恶意网页检测包括:
基于JavaScript代码获取AST抽象语法树;
定义动态执行风险函数特征维度;以及
构造初始值与终值有限向量机。
5.如权利要求4所述的方法,其中构造初始值与终值有限向量机包括:
获取代码AST抽象语法树,追踪函数定义过程、调用关系及类型,保留调用函数、方法及数组、字符串节点,获取变量终值;
以存在iframe攻击风险函数、存在重定向攻击风险函数、存在偷取cookie风险函数、存在扫描浏览器漏洞风险函数、存在字符串拼接/变形风险函数、存在动态执行风险函数、存在下载行为风险函数为动态分析的恶意终值特征;以及
构造变量初始值与终值有限状态机,形成动态特征检测模型。
6.一种计算设备,包括:
处理器;和
存储器,其耦合到所述处理器并且其上存储有计算机可读指令,当由所述处理器执行时,所述计算机可读指令使得所述处理器执行如权利要求1-5中任一项所述的方法步骤。
7.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序在被处理器执行时实现如权利要求1-5任一项所述的方法步骤。
8.一种基于JavaScript的恶意网页检测装置,包括实现如权利要求1-5任一项所述的方法步骤的部件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010723131.8A CN113971284B (zh) | 2020-07-24 | 2020-07-24 | 基于JavaScript的恶意网页检测方法、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010723131.8A CN113971284B (zh) | 2020-07-24 | 2020-07-24 | 基于JavaScript的恶意网页检测方法、设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113971284A CN113971284A (zh) | 2022-01-25 |
CN113971284B true CN113971284B (zh) | 2024-03-05 |
Family
ID=79585573
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010723131.8A Active CN113971284B (zh) | 2020-07-24 | 2020-07-24 | 基于JavaScript的恶意网页检测方法、设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113971284B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115905660B (zh) * | 2022-11-10 | 2023-10-24 | 广东三鼎智慧信息科技有限公司 | 一种网络安全数据获取方法、装置、设备及存储介质 |
CN115952411B (zh) * | 2023-03-14 | 2023-05-30 | 北京有生博大软件股份有限公司 | 一种前端界面的动态语言反混淆特征提取方法及提取系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013091709A1 (en) * | 2011-12-22 | 2013-06-27 | Fundació Privada Barcelona Digital Centre Tecnologic | Method and apparatus for real-time dynamic transformation of the code of a web document |
CN103559235A (zh) * | 2013-10-24 | 2014-02-05 | 中国科学院信息工程研究所 | 一种在线社交网络恶意网页检测识别方法 |
CN110502897A (zh) * | 2018-05-16 | 2019-11-26 | 南京大学 | 一种基于混合分析的网页恶意JavaScript代码识别和反混淆方法 |
-
2020
- 2020-07-24 CN CN202010723131.8A patent/CN113971284B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013091709A1 (en) * | 2011-12-22 | 2013-06-27 | Fundació Privada Barcelona Digital Centre Tecnologic | Method and apparatus for real-time dynamic transformation of the code of a web document |
CN103559235A (zh) * | 2013-10-24 | 2014-02-05 | 中国科学院信息工程研究所 | 一种在线社交网络恶意网页检测识别方法 |
CN110502897A (zh) * | 2018-05-16 | 2019-11-26 | 南京大学 | 一种基于混合分析的网页恶意JavaScript代码识别和反混淆方法 |
Non-Patent Citations (2)
Title |
---|
基于JavaScript的恶意网页异常检测方法研究;马洪亮;CNKI博士电子期刊;第11-97页 * |
面向drive-by-download攻击的检测方法;马洪亮 等;华中科技大学学报(自然科学版);第44卷(第03期);第6-11页 * |
Also Published As
Publication number | Publication date |
---|---|
CN113971284A (zh) | 2022-01-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Han et al. | MalDAE: Detecting and explaining malware based on correlation and fusion of static and dynamic characteristics | |
Khan et al. | Analysis of ResNet and GoogleNet models for malware detection | |
US11716348B2 (en) | Malicious script detection | |
Gibert | Convolutional neural networks for malware classification | |
US11941491B2 (en) | Methods and apparatus for identifying an impact of a portion of a file on machine learning classification of malicious content | |
US8838992B1 (en) | Identification of normal scripts in computer systems | |
CN111639337B (zh) | 一种面向海量Windows软件的未知恶意代码检测方法及系统 | |
KR101858620B1 (ko) | 기계 학습을 이용한 자바스크립트 분석 장치 및 방법 | |
Kasim | An ensemble classification-based approach to detect attack level of SQL injections | |
US20160219068A1 (en) | Method and apparatus for automatically identifying signature of malicious traffic using latent dirichlet allocation | |
CN113971284B (zh) | 基于JavaScript的恶意网页检测方法、设备及计算机可读存储介质 | |
CN114328208A (zh) | 代码检测方法及装置、电子设备、存储介质 | |
Kakisim et al. | Sequential opcode embedding-based malware detection method | |
CN111753302A (zh) | 检测代码漏洞的方法、装置、计算机可读介质及电子设备 | |
KR20210084204A (ko) | 악성 코드 수집 방법 및 시스템 | |
CN115146282A (zh) | 基于ast的源代码异常检测方法及其装置 | |
Miura et al. | Macros finder: Do you remember loveletter? | |
CN114357443A (zh) | 基于深度学习的恶意代码检测方法、设备与存储介质 | |
CN112817877B (zh) | 异常脚本检测方法、装置、计算机设备和存储介质 | |
JP6984761B2 (ja) | 情報処理装置及び情報処理プログラム | |
US11574053B1 (en) | System and method for detecting malicious scripts | |
KR102192196B1 (ko) | Ai 기반 머신러닝 교차 검증 기법을 활용한 악성코드 탐지 장치 및 방법 | |
Pei et al. | Combining multi-features with a neural joint model for Android malware detection | |
Fowdur et al. | A real-time machine learning application for browser extension security monitoring | |
CN114143074B (zh) | webshell攻击识别装置及方法 |
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 |