一种基于浏览器脚本行为的入侵检测方法及装置制造方法

文档序号:6629110阅读:158来源:国知局
一种基于浏览器脚本行为的入侵检测方法及装置制造方法
【专利摘要】本发明公开了一种基于浏览器脚本行为的入侵检测方法及装置。所述入侵检测方法包括静态检测字节码,以找到与污点数据库中的污点数据相匹配的污点信息;动态执行所述字节码,并在所述动态执行的过程中跟踪所述污点信息的传输路径,以得到第一传输数据。根据所述第一传输数据判断所述污点信息是否传送到非法目的地;如果所述污点信息是传送到非法目的地,则将所述污点信息标记为可疑信息;检测与所述浏览器互换所述可疑信息的传输点,以获取表示所述传输点的第二传输数据,所述第二传输数据包括所述传输点的目的地数据和依赖数据;比较所述第一传输数据和所述第二传输数据;以及根据所述比较的结果判断所述脚本代码是否是恶意脚本。
【专利说明】一种基于浏览器脚本行为的入侵检测方法及装置

【技术领域】
[0001]本发明涉及信息安全领域,具体涉及一种基于浏览器脚本行为的入侵检测方法及
>J-U ρ?α装直。

【背景技术】
[0002]随着Internet技术的广泛应用,越来越多的信息资源通过Web服务共享。例如,企业信息化过程中的各种应用都选择Web平台进行架设,此外,社交网络和微博等互联网产品得到快速应用,使得web浏览成为了互联网上使用率最高的网络服务,同时也成为了恶意代码利用的有效传播途径。
[0003]在这些恶意攻击中,XSS (Cross Site Scripting,跨站脚本攻击)和CSRF(Cross-site Request Forgery,跨站请求伪造)的危害很大。其中,XSS是指恶意攻击者往Web页面里插入恶意html代码。当用户浏览该页时,嵌入其中Web里面的html代码会被执行,从而达到恶意攻击用户的特殊目的。CSRF通过伪装来自受信任用户的请求来利用受信任的网站。例如,网站是通过cookie来识别用户的,当用户成功进行身份验证之后浏览器就会得到一个标识其身份的cookie,只要不关闭浏览器或者退出登录,以后访问这个网站会带上这个cookie。如果这期间浏览器被人控制着请求了这个网站的链接,可能就会执行一些用户不想做的功能(比如,修改个人资料),达到恶意攻击的目的。
[0004]然而,由于攻击方式的多样性,现有技术中的反病毒服务商无法有效的探测和遏制以XSS和CSRF为代表的网络攻击。


【发明内容】

[0005]本发明要解决的技术问题在于提供一种基于浏览器脚本行为的入侵检测方法及装置,以在保证有效检测以XSS和CSRF为代表的网络攻击,提高网络安全性。
[0006]为解决上述技术问题,本发明采用如下技术方案:
本发明提供了一种浏览器的入侵检测方法,其特征在于,所述入侵检测方法包括以下步骤:
读取所述浏览器的脚本代码;
对所述脚本代码进行语法分析,以得到表示所述脚本代码语法树的语法数据;
根据所述语法数据生成与所述语法树对应的字节码;
静态检测所述字节码,以找到与污点数据库中的污点数据相匹配的污点信息;
动态执行所述字节码,并在所述动态执行的过程中跟踪所述污点信息的传输路径,以得到第一传输数据,所述第一传输数据包括所述浏览器的传输目的地址和依赖数据;
根据所述第一传输数据判断所述污点信息是否传送到非法目的地;
如果所述污点信息是传送到非法目的地,则将所述污点信息标记为可疑信息;
检测与所述浏览器互换所述可疑信息的传输点,以获取表不所述传输点的第二传输数据,所述第二传输数据包括所述传输点的目的地数据和依赖数据; 比较所述第一传输数据和所述第二传输数据;以及根据所述比较的结果判断所述脚本代码是否是恶意脚本。
[0007]在一个实施例中,所述第一传输数据的依赖数据包括所述浏览器和所述传输点之间传输的多个分散数据片段,所述多个分散数据片段在到达目的地址以后组成数据信息。
[0008]在一个实施例中,所述比较所述第一传输数据和所述第二传输数据的步骤还包括:
比较所述第二传输数据中的依赖数据和所述可疑信息;
如果所述依赖数据包括与所述可疑信息相匹配的信息,则比较所述第一传输数据的目的地址和所述第二传输数据的目的地址;以及
如果所述比较结果表示所述传输点和所述浏览器同源,则判定所述脚本代码为恶意代码。
[0009]在一个实施例中,所述污点信息包括所述浏览器的用户身份信息、账号密码、地理位置和浏览记录。
[0010]在一个实施例中,所述动态执行所述代码的步骤还包括:
读取所述字节码的出口代码;以及
从所述字节码的出口代码向入口代码遍历执行所述字节码,以找到第一传输数据的目的地址和分散在所述字节码各码段的多个数据字段,其中,所述多个数据字段组成所述传输数据。
[0011]本发明还提供了一种浏览器的入侵检测装置,其特征在于,所述入侵检测装置包括:
第一读取模块,用于读取所述浏览器的脚本代码;
字节码生成模块,用于对所述脚本代码进行语法分析,以得到表示所述脚本代码语法树的语法数据,并根据所述语法数据生成与所述语法树对应的字节码;
静态检测模块,用于静态检测所述字节码,以找到与污点数据库中的污点数据相匹配的污点信息;
动态执行模块,用于动态执行所述字节码,并在所述动态执行的过程中跟踪所述污点信息的传输路径,以得到第一传输数据,所述第一传输数据包括所述浏览器的传输目的地址和依赖数据;
第一判断模块,用于根据所述第一传输数据判断所述污点信息是否传送到非法目的地,其中,如果所述污点信息是传送到非法目的地,则将所述污点信息标记为可疑信息;
传输点检测模块,检测与所述浏览器互换所述可疑信息的传输点,以获取表示所述传输点的第二传输数据,所述第二传输数据包括所述传输点的目的地数据和依赖数据;以及第一比较模块,用于比较所述第一传输数据和所述第二传输数据,并根据所述比较的结果判断所述脚本代码是否是恶意脚本。
[0012]在一个实施例中,所述第一传输数据的依赖数据包括所述浏览器和所述传输点之间传输的多个分散数据片段,所述多个分散数据片段在到达目的地址以后组成数据信息。
[0013]在一个实施例中,所述第一比较模块还包括:
第二比较模块,用于比较所述第二传输数据中的依赖数据和所述可疑信息;
第三比较模块,如果所述依赖数据包括与所述可疑信息相匹配的信息,则比较所述第一传输数据的目的地址和所述第二传输数据的目的地址;以及
第二判断模块,如果所述比较结果表示所述传输点和所述浏览器同源,所述判断模块判定所述脚本代码为恶意代码。
[0014]在一个实施例中,所述污点信息包括所述浏览器的用户身份信息、账号密码、地理位置和浏览记录。
[0015]在一个实施例中,所述动态执行模块还包括:
第二读取模块,用于读取所述字节码的出口代码;以及
传输数据检测模块,用于从所述字节码的出口代码向入口代码遍历执行所述字节码,以找到发往所述第一传输数据的目的地址和分散在所述字节码各码段的多个数据字段,其中,所述多个数据字段组成所述第一传输数据。
[0016]与现有技术相比,本发明的入侵检测方法及装置可以有效的检测出脚本代码中蕴含的恶意代码(例如,诸如CSRF这样的通过冒充用户权限将用户信息传送到网络中作越权操作的恶意攻击),由此,提高了网络安全性。

【专利附图】

【附图说明】
[0017]图1所示为根据本发明的实施例的基于浏览器脚本行为的入侵检测方法。
[0018]图2所示为根据本发明的实施例的动态执行字节码的方法。
[0019]图3所示为根据本发明的实施例的比较第一传输数据和第二传输数据的方法。
[0020]图4所示为根据本发明的实施例的基于浏览器脚本行为的入侵检测装置。
[0021]图5所示为根据本发明的实施例的动态执行模块的结构图。
[0022]图6所示为根据本发明的实施例的第一比较模块的结构图。

【具体实施方式】
[0023]以下将对本发明的实施例给出详细的说明。尽管本发明将结合一些【具体实施方式】进行阐述和说明,但需要注意的是本发明并不仅仅只局限于这些实施方式。相反,对本发明进行的修改或者等同替换,均应涵盖在本发明的权利要求范围当中。
[0024]另外,为了更好的说明本发明,在下文的【具体实施方式】中给出了众多的具体细节。本领域技术人员将理解,没有这些具体细节,本发明同样可以实施。在另外一些实例中,对于大家熟知的方法、流程、元件和电路未作详细描述,以便于凸显本发明的主旨。
[0025]图1所示为根据本发明的实施例的基于浏览器脚本行为的入侵检测方法100。XSS(Cross Site Scripting,跨站脚本)攻击和 CSRF (Cross-site Request Forgery,跨站请求伪造)攻击的特点在于在没有得到用户授权的情况下,利用浏览器脚本将用户的信息(例如:身份安全信息)传输到远程网站,做恶意操作。入侵检测方法100将根据这一攻击特点进行识别检测工作。
[0026]在步骤102中,读取当前浏览器的脚本代码。在步骤104中,对该脚本代码进行语法分析,以得到表示该脚本代码语法树的语法数据。在步骤106中,根据该语法数据生成与该语法树对应的字节码。也就是说,在步骤102至106中,入侵检测方法100将脚本代码转换为当前处理器可执行的机器码。
[0027]在步骤108中,静态检测该字节码,以找到与污点数据库中的污点数据相匹配的污点信息。在一个实施例中,污点数据库存储了用户或管理员自行设定的敏感信息。例如,由于用户的身份信息最容易被盗取,污点数据库存储了用户的信息。这些信息包括用户身份信息、账号密码、地理位置和浏览记录等。在其他的实施例中,污点信息也可以包括其他信息。在步骤108中,在检测到污点信息以后,可以在对应代码段做标记,也可存储对应污点信息于污点信息存储器。
[0028]在步骤110中,动态执行该字节码,并在动态执行的过程中跟踪污点信息的传输路径,以得到第一传输数据。第一传输数据包括当前浏览器的传输目的地址和依赖数据。在一个实施例中,第一传输数据的依赖数据包括当前浏览器和各传输点之间传输的多个分散数据片段,所述多个分散数据片段在到达目的地址以后组成数据信息。例如,当执行浏览器的脚本代码时,浏览器需要对传输点传送数据流。传送数据流的形式上可以是在一个代码段连续传送,也可以分散在不同的代码段作分时段的传送,每一个时段传送一个特定数据片段。当所有数据片段均到达目的地址时,该特定数据片段将联合起来形成需要的数据流。依赖数据是指在浏览器的脚本代码中存在的分散的数据片段。步骤110将在图2做进一步描述。
[0029]图2所示为根据本发明的实施例的动态执行字节码的方法110。图2是对步骤110的进一步描述。图2的实施例提供了一种倒序的动态执行方法。在步骤202中,读取该字节码的出口代码。在步骤204中,从字节码的出口代码向入口代码遍历执行该字节码,以找到第一传输数据的目的地址和分散在所述字节码各码段的多个数据字段,其中,多个数据字段组成传输数据。在一个实施例中,动态执行方法也可以从入口代码至出口代码作遍历执行,以获取第一传输数据。
[0030]回到图1,在步骤112中,根据第一传输数据判断所述污点信息是否传送到非法目的地。例如,如果第一传输数据的目的地址与非法目的数据库存储的地址相匹配,则认为该污点信息传送到非法目的地。
[0031]在步骤114中,如果污点信息是传送到非法目的地,则将该污点信息标记为可疑信息,此时,流程图100进入步骤116。否则,认为该污点信息正常,不再对该污点信息执行步骤116至120。
[0032]在步骤116中,检测与所述浏览器互换可疑信息的传输点,以获取表示传输点的第二传输数据,第二传输数据包括传输点的目的地数据和依赖数据。
[0033]在步骤118中,比较第一传输数据和第二传输数据。在步骤120中,根据比较的结果判断脚本代码是否是恶意脚本。步骤118和120将在图3中作进一步描述。
[0034]图3所示为根据本发明的实施例的比较第一传输数据和第二传输数据的方法118。图3是对步骤118和120的进一步描述。在步骤302中,比较第二传输数据中的依赖数据和可疑信息。在步骤304中,如果依赖数据包括与可疑信息相匹配的信息(说明污点数据会发送到该传输点),则进入步骤306,进一步比较第一传输数据的目的地址和第二传输数据的目的地址。在步骤304中,如果依赖数据没有包括与可疑信息相匹配的信息(说明污点数据不会发送到该传输点),则进入步骤311。
[0035]在步骤308中,如果步骤306中的比较结果表示传输点和所述浏览器不同源(例如,第一传输数据的目的地址与第二传输数据的目的地址不匹配),则说明浏览器的脚本行为会将可疑信息传输到非法目的地,此时,判定所述脚本代码为恶意代码。否则,流程图118进入步骤311。在步骤311中,判断是否所有的可疑信息都进行了验证。如果所有的可疑信息均验证,则进入步骤312,所述脚本代码为正常脚本。否则,流程图118进入302,继续验证下一可疑信息。
[0036]优点在于,入侵检测方法100可以有效的检测出脚本代码中蕴含的恶意代码(例如,诸如CSRF这样的通过冒充用户权限将用户信息传送到网络中作越权操作的恶意攻击),由此,提高了网络安全性。
[0037]图4所示为根据本发明的实施例的基于浏览器脚本行为的入侵检测装置400。入侵检测装置400包括第一读取模块402、字节码生成模块404、静态检测模块406、动态执行模块408、第一判断模块410、传输点检测模块412和第一比较模块414。
[0038]第一读取模块402读取浏览器的脚本代码。字节码生成模块404对脚本代码进行语法分析,以得到表示脚本代码语法树的语法数据,并根据语法数据生成与语法树对应的字节码。静态检测模块406对字节码进行静态检测,以找到与污点数据库中的污点数据相匹配的污点信息。在一个实施例中,污点信息包括浏览器的用户身份信息。动态执行模块408动态执行字节码,并在动态执行的过程中跟踪污点信息的传输路径,以得到第一传输数据,第一传输数据包括浏览器的传输目的地址和依赖数据。在一个实施例中,第一传输数据的依赖数据包括浏览器和传输点之间传输的多个分散数据片段,该多个分散数据片段在到达目的地址以后组成数据信息。
[0039]第一判断模块410根据第一传输数据判断污点信息是否传送到非法目的地,其中,如果污点信息是传送到非法目的地,则将污点信息标记为可疑信息。传输点检测模块406检测与浏览器互换可疑信息的传输点,以获取表不传输点的第二传输数据,第二传输数据包括传输点的目的地数据和依赖数据。第一比较模块414比较第一传输数据和第二传输数据,并根据比较的结果判断脚本代码是否是恶意脚本。
[0040]图5所示为根据本发明的实施例的动态执行模块408的结构图。在一个实施例中,动态执行模块408包括第二读取模块502和传输数据检测模块504。第二读取模块502读取字节码的出口代码。传输数据检测模块504从字节码的出口代码向入口代码遍历执行,以找到发往第一传输数据的目的地址和分散在字节码各码段的多个数据字段,其中,多个数据字段组成第一传输数据。
[0041]图6所示为根据本发明的实施例的第一比较模块414的结构图。在一个实施例中,第一比较模块414包括第二比较模块602、第三比较模块604和第二判断模块606。第二比较模块602比较第二传输数据中的依赖数据和可疑信息。如果依赖数据包括与可疑信息相匹配的信息,第三比较模块604比较第一传输数据的目的地址和第二传输数据的目的地址。如果传输点和浏览器不同源,第二判断模块606判定所述脚本代码为恶意代码。
[0042]优点在于,入侵检测装置400可以有效的检测出脚本代码中蕴含的恶意代码(例如,诸如CSRF这样的通过冒充用户权限将用户信息传送到网络中作越权操作的恶意攻击),由此,提高了网络安全性。
[0043]上文【具体实施方式】和附图仅为本发明之常用实施例。显然,在不脱离权利要求书所界定的本发明精神和发明范围的前提下可以有各种增补、修改和替换。本领域技术人员应该理解,本发明在实际应用中可根据具体的环境和工作要求在不背离发明准则的前提下在形式、结构、布局、比例、材料、元素、组件及其它方面有所变化。因此,在此披露之实施例仅用于说明而非限制,本发明之范围由后附权利要求及其合法等同物界定,而不限于此前之描述。
【权利要求】
1.一种浏览器的入侵检测方法,其特征在于,所述入侵检测方法包括以下步骤: 读取所述浏览器的脚本代码; 对所述脚本代码进行语法分析,以得到表示所述脚本代码语法树的语法数据; 根据所述语法数据生成与所述语法树对应的字节码; 静态检测所述字节码,以找到与污点数据库中的污点数据相匹配的污点信息; 动态执行所述字节码,并在所述动态执行的过程中跟踪所述污点信息的传输路径,以得到第一传输数据,所述第一传输数据包括所述浏览器的传输目的地址和依赖数据; 根据所述第一传输数据判断所述污点信息是否传送到非法目的地; 如果所述污点信息是传送到非法目的地,则将所述污点信息标记为可疑信息; 检测与所述浏览器互换所述可疑信息的传输点,以获取表不所述传输点的第二传输数据,所述第二传输数据包括所述传输点的目的地数据和依赖数据; 比较所述第一传输数据和所述第二传输数据;以及 根据所述比较的结果判断所述脚本代码是否是恶意脚本。
2.根据权利要求1所述的浏览器的入侵检测方法,其特征在于,所述第一传输数据的依赖数据包括所述浏览器和所述传输点之间传输的多个分散数据片段,所述多个分散数据片段在到达目的地址以后组成数据信息。
3.根据权利要求2所述的浏览器的入侵检测方法,其特征在于,所述比较所述第一传输数据和所述第二传输数据的步骤还包括: 比较所述第二传输数据中的依赖数据和所述可疑信息; 如果所述依赖数据包括与所述可疑信息相匹配的信息,则比较所述第一传输数据的目的地址和所述第二传输数据的目的地址;以及 如果所述比较结果表示所述传输点和所述浏览器不同源,则判定所述脚本代码为恶意代码。
4.根据权利要求1所述的浏览器的入侵检测方法,其特征在于,所述污点信息包括所述浏览器的用户身份信息、账号密码、地理位置和浏览记录。
5.根据权利要求1或2或3或4所述的浏览器的入侵检测方法,其特征在于,所述动态执行所述代码的步骤还包括: 读取所述字节码的出口代码;以及 从所述字节码的出口代码向入口代码遍历执行所述字节码,以找到第一传输数据的目的地址和分散在所述字节码各码段的多个数据字段,其中,所述多个数据字段组成所述传输数据。
6.一种浏览器的入侵检测装置,其特征在于,所述入侵检测装置包括: 第一读取模块,用于读取所述浏览器的脚本代码; 字节码生成模块,用于对所述脚本代码进行语法分析,以得到表示所述脚本代码语法树的语法数据,并根据所述语法数据生成与所述语法树对应的字节码; 静态检测模块,用于静态检测所述字节码,以找到与污点数据库中的污点数据相匹配的污点信息; 动态执行模块,用于动态执行所述字节码,并在所述动态执行的过程中跟踪所述污点信息的传输路径,以得到第一传输数据,所述第一传输数据包括所述浏览器的传输目的地址和依赖数据; 第一判断模块,用于根据所述第一传输数据判断所述污点信息是否传送到非法目的地,其中,如果所述污点信息是传送到非法目的地,则将所述污点信息标记为可疑信息; 传输点检测模块,检测与所述浏览器互换所述可疑信息的传输点,以获取表示所述传输点的第二传输数据,所述第二传输数据包括所述传输点的目的地数据和依赖数据;以及 第一比较模块,用于比较所述第一传输数据和所述第二传输数据,并根据所述比较的结果判断所述脚本代码是否是恶意脚本。
7.根据权利要求6所述的浏览器的入侵检测装置,其特征在于,所述第一传输数据的依赖数据包括所述浏览器和所述传输点之间传输的多个分散数据片段,所述多个分散数据片段在到达目的地址以后组成数据信息。
8.根据权利要求7所述的浏览器的入侵检测装置,其特征在于,所述第一比较模块还包括: 第二比较模块,用于比较所述第二传输数据中的依赖数据和所述可疑信息; 第三比较模块,如果所述依赖数据包括与所述可疑信息相匹配的信息,则比较所述第一传输数据的目的地址和所述第二传输数据的目的地址;以及 第二判断模块,如果所述比较结果表示所述传输点和所述浏览器不同源,所述判断模块判定所述脚本代码为恶意代码。
9.根据权利要求6所述的浏览器的入侵检测装置,其特征在于,所述污点信息包括所述浏览器的用户身份信息、账号密码、地理位置和浏览记录。
10.根据权利要求6或7或8或9所述的浏览器的入侵检测装置,其特征在于,所述动态执行模块还包括: 第二读取模块,用于读取所述字节码的出口代码;以及 传输数据检测模块,用于从所述字节码的出口代码向入口代码遍历执行所述字节码,以找到发往所述第一传输数据的目的地址和分散在所述字节码各码段的多个数据字段,其中,所述多个数据字段组成所述第一传输数据。
【文档编号】G06F21/56GK104268474SQ201410516038
【公开日】2015年1月7日 申请日期:2014年9月30日 优先权日:2014年9月30日
【发明者】张小松, 刘小垒, 牛伟纳, 陈瑞东, 王东, 孙恩博, 吴安彬, 许云清, 许珑于 申请人:电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1