基于JavaScript脚本的NAT检测方法、系统、介质和设备与流程

文档序号:16899745发布日期:2019-02-19 17:51阅读:406来源:国知局
基于JavaScript脚本的NAT检测方法、系统、介质和设备与流程

本发明涉及一种nat检测方法,尤其是一种基于javascript脚本的nat检测方法、系统、介质和设备,属于网络安全领域。



背景技术:

网络安全是指网络系统的硬件、软件及其系统中的数据受到保护,不因偶然的或者恶意的原因而遭受到破坏、更改、泄露,系统连续可靠正常地运行,网络服务不中断。具有保密性、完整性、可用性、可控性、可审查性的特性。

而在网络安全领域,对于nat(网中网)的检测尤为重要,目前主要基于两种方式对nat进行检测:方式1、在被检测的终端设备上安装监控客户端,监控程序通过分析终端设备本身的网络接口情况,判断是否存在双网口的情况;方式2、通过采集镜像流量的方式,基于流量中的网络数据包ttl、应用层系统类型信息,根据一个ip是否同时存在多个终端,来判断是否存在nat。对于这两种方式,方式1需要在被监测设备上安装程序,部署管理比较困难。方式2在nat设备的类型相同时,容易漏判。由此可见,上述两种方式都存在着各自的不足,需要寻求一种新的nat检测方法。



技术实现要素:

本发明的第一个目的是为了解决上述现有技术的缺陷,提供了一种基于javascript脚本的nat检测方法,该方法基于javascript脚本方式,不需要在被检测设备上安装客户端,而且不依赖终端类型信息,就能够判断具有相同终端类型的nat场景。

本发明的第二个目的在于提供一种基于javascript脚本的nat检测系统。

本发明的第三个目的在于提供一种存储介质。

本发明的第四个目的在于提供一种计算设备。

本发明的第一个目的可以通过采取如下技术方案达到:

基于javascript脚本的nat检测方法,所述方法包括:

访问包括执行javascript脚本链接地址的web应用系统;

用户浏览器根据已知的javascript脚本链接,下载并运行javascript脚本代码;

判断用户浏览器是否存在指定的cookie值,如果是,则发送给内网监测系统,并通过内网监测系统获取ip、useragent及cookie值;如果不是,则内网监测系统产生cookie值,发回给浏览器,作为此浏览器的唯一标识;

当内网监测系统判断同一个ip、浏览器内核存在多个cookie值,说明此ip后面存在多个终端,即是nat。

作为优选的技术方案,所述访问包括执行javascript脚本链接地址的web应用系统的步骤中,具体包括:

在web应用系统中添加一个javascript代码j,该代码的用于向web应用系统获取一个数值然后写入cookie以及读取cookie发回到服务器。

作为优选的技术方案,所述下载并运行javascript脚本代码的步骤中:

当有设备第一次访问web应用系统时,设备的浏览器会加载并执行代码j并使用script标签方式向服务器跨域请求一次,服务器会记录设备的ip以及浏览器类型并且根据当前服务器时间生成一个数字n1返回给设备,服务器记录下数字n1、ip、浏览器类型,代码j把数字n1写入cookie中。

作为优选的技术方案,还包括下述步骤:

如果设备清掉了浏览器的cookie重新访问web应用系统,设备的浏览器会加载web应用系统页面并执行代码j,再使用script标签方式向服务器跨域请求一次,服务器会根据当前服务器时间生成一个数字n2返回给设备,服务器同时记录下数字n2并覆盖n1。

作为优选的技术方案,判断同一个ip、浏览器内核存在多个cookie值的方法为:

如果设备访问web应用系统时cookie存在则j直接读取数字并且发回web应用系统,当web应用系统发现在同一个ip同一种浏览器的情况j发回的数字比记录的数字要小,则使用设备b的ip的设备至少有两台不同的物理设备,则可以证明设备b是一台nat设备。

作为优选的技术方案,所述则内网监测系统产生cookie值,发回给浏览器的步骤中,内网监测系统产生cookie值的具体步骤为:

监测系统取出当前其服务器时间戳作为结果回传给浏览器,javascript脚本将该结果存入cookie中形成可用于检测nat的cookie值

作为优选的技术方案,所述cookie值为一个64位的数字。

本发明的第二个目的可以通过采取如下技术方案达到:

基于javascript脚本的nat检测系统,所述系统包括:

访问模块,用于访问包括执行javascript脚本链接地址的web应用系统;

下载运行模块,用于用户浏览器根据已知的javascript脚本链接,下载并运行javascript脚本代码;

判断模块,判断用户浏览器是否存在指定的cookie值,如果是,则发送给内网监测系统,并通过内网监测系统获取ip、useragent及cookie值;如果不是,则内网监测系统产生cookie值,发回给浏览器,作为此浏览器的唯一标识;

执行模块,用于当内网监测系统判断同一个ip、浏览器内核存在多个cookie值,说明此ip后面存在多个终端,即是nat。

本发明的第三个目的可以通过采取如下技术方案达到:

存储介质,存储有程序,所述程序被处理器执行时,实现上述的基于javascript脚本的nat检测方法。

本发明的第四个目的可以通过采取如下技术方案达到:

计算设备,包括处理器以及用于存储处理器可执行程序的存储器,所述处理器执行存储器存储的程序时,实现上述的基于javascript脚本的nat检测方法。

本发明相对于现有技术具有如下的有益效果:

1、对于监控客户端、镜像流量方式不能检测的nat场景,需要采用新的检测手段,本发明采用javascript脚本方式,不需要在被检测设备上安装客户端,而且不依赖终端类型信息,能够判断具有相同终端类型的nat场景。

2、本发明通过判断用户浏览器是否存在指定的cookie值,继而判断对应的ip后面是否存在多个终端,该方法简单高效,可行性强,可以大规模的推广应用。

附图说明

图1为本发明实施例1的基于javascript脚本的nat检测方法的流程图。

图2为本发明实施例2的基于javascript脚本的nat检测系统的结构方框图。

具体实施方式

下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。

实施例1:

nat(networkaddresstranslation网络地址转换)是1994年提出的。当在专用网内部的一些主机本来已经分配到了本地ip地址(即仅在本专用网内使用的专用地址),但现在又想和因特网上的主机通信(并不需要加密)时,可使用nat方法。网络地址转换(nat,networkaddresstranslation)属接入广域网(wan)技术,是一种将私有(保留)地址转化为合法ip地址的转换技术,它被广泛应用于各种类型internet接入方式和各种类型的网络中。原因很简单,nat不仅完美地解决了ip地址不足的问题,而且还能够有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机。

cookie,有时也用其复数形式cookies,指某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密)。cookie是由服务器端生成,发送给user-agent(一般是浏览器),浏览器会将cookie的key/value保存到某个目录下的文本文件内,下次请求同一网站时就发送该cookie给服务器(前提是浏览器设置为启用cookie)。cookie名称和值可以由服务器端开发自己定义,对于jsp而言也可以直接写入jsessionid,这样服务器可以知道该用户是否合法用户以及是否需要重新登录等。

如图1所示,本实施例的基于javascript脚本的nat检测方法包括以下步骤:

s101、访问包括执行javascript脚本链接地址的web应用系统;

s102、用户浏览器根据已知的javascript脚本链接,下载并运行javascript脚本代码;

s103、判断用户浏览器是否存在指定的cookie值,如果是,则发送给内网监测系统,并通过内网监测系统获取ip、useragent及cookie值;如果不是,则内网监测系统产生cookie值,发回给浏览器,作为此浏览器的唯一标识;所述cookie值为一个64位的数字。

s104、当内网监测系统判断同一个ip、浏览器内核存在多个cookie值,说明此ip后面存在多个终端,即是nat。

利用本发明的上述步骤,运用到web应用系统a中,当外部设备访问时,具体步骤如下:

(1)首先在web应用系统a中添加一个js代码j,该代码的作用主要是向a获取一个数值然后写入cookie以及读取cookie发回到服务器c。

(2)当有设备b第一次访问a的时候,b的浏览器会加载并执行代码j并使用script标签方式向c跨域请求一次,c会记录b的ip以及浏览器类型并且根据当前服务器时间生成一个数字n1返回给b,c记录下数字n1、ip、浏览器类型,代码j把数字n1写入cookie。

(3)如果b清掉了浏览器的cookie重新访问a,b的浏览器会加载a页面并执行代码j并使用script标签方式向c跨域请求一次,c会根据当前服务器时间生成一个数字n2返回给b,c记录下数字n2并覆盖n1。这样如果某ip下只有一台设备,那该ip只有一台设备b,那同一种浏览器通过该ip发给c的数字永远只会大于或等于c所记录的时间数字。

(4)如果b访问a时cookie存在则j直接读取数字并且发回a。当a发现在同一个ip同一种浏览器的情况j发回的数字比记录的数字要小,则使用b的ip的设备至少有两台不同的物理设备,则可以证明b是一台nat设备。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,相应的程序可以存储于一计算机可读取存储介质中,所述的存储介质,如rom/ram、磁盘或光盘等。

实施例2:

如图2所示,本实施例提供了一种基于javascript脚本的nat检测系统,该系统包括访问模块1、下载运行模块2、判断模块3、执行模块4,各个模块的具体功能如下:

访问模块1,用于访问包括执行javascript脚本链接地址的web应用系统;

下载运行模块2,用于用户浏览器根据已知的javascript脚本链接,下载并运行javascript脚本代码;

判断模块3,判断用户浏览器是否存在指定的cookie值,如果是,则发送给内网监测系统,并通过内网监测系统获取ip、useragent及cookie值;如果不是,则内网监测系统产生cookie值,发回给浏览器,作为此浏览器的唯一标识;

执行模块4,用于当内网监测系统判断同一个ip、浏览器内核存在多个cookie值,说明此ip后面存在多个终端,即是nat。

在此需要说明的是,上述实施例提供的系统仅以上述各功能模块的划分进行举例说明,在实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。

实施例3:

本实施例提供了一种存储介质,该存储介质存储有一个或多个程序,所述程序被处理器执行时,实现上述实施例1的基于javascript脚本的nat检测方法,如下:

访问包括执行javascript脚本链接地址的web应用系统;

用户浏览器根据已知的javascript脚本链接,下载并运行javascript脚本代码;

判断用户浏览器是否存在指定的cookie值,如果是,则发送给内网监测系统,并通过内网监测系统获取ip、useragent及cookie值;如果不是,则内网监测系统产生cookie值,发回给浏览器,作为此浏览器的唯一标识;

当内网监测系统判断同一个ip、浏览器内核存在多个cookie值,说明此ip后面存在多个终端,即是nat。

本实施例中所述的存储介质可以是rom、ram、磁盘、光盘等介质。

实施例4:

本实施例提供了一种计算设备,该计算设备包括处理器和存储器,存储器存储有一个或多个程序,处理器执行存储器存储的程序时,实现上述实施例1的基于javascript脚本的nat检测方法,如下:

访问包括执行javascript脚本链接地址的web应用系统;

用户浏览器根据已知的javascript脚本链接,下载并运行javascript脚本代码;

判断用户浏览器是否存在指定的cookie值,如果是,则发送给内网监测系统,并通过内网监测系统获取ip、useragent及cookie值;如果不是,则内网监测系统产生cookie值,发回给浏览器,作为此浏览器的唯一标识;

当内网监测系统判断同一个ip、浏览器内核存在多个cookie值,说明此ip后面存在多个终端,即是nat。

综上所述,可应用于网络安全领域中的nat(网络地址转换,也称为网中网)检测,发现网络中破坏网络边界的网中网问题(网络之中存在不受控的私有网络)。

以上所述,仅为本发明专利较佳的实施例,但本发明专利的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明专利所公开的范围内,根据本发明专利的技术方案及其发明构思加以等同替换或改变,都属于本发明专利的保护范围。

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