用户通过虚拟专用网络访问互联网的检测方法及***
技术领域
本发明涉及网络检测技术领域,特别是涉及一种用户通过虚拟专用网络访问互联网的检测方法及***。
背景技术
互联网经营者经常为了一些目的,对访问者按照来源IP(Internet Protocol,网间协议) 进行区分或限制。例如,网络投票,可能会限制每个IP、或者某个地区的投票比例;又如,某项活动,可能只允许个别地区用户参与。然而,个别网络活动参与者,通过购买或自行搭建的虚拟专用网络,可以使用其他地区的IP地址绕过这些限制。基于此,区别用户是否使用了虚拟专用网络就很有必要了。
对于各种代理的方法,有不同的检测手段:
(1)对于普通的非匿名代理,由于设立了X-Forwarded-For(简称XFF头,代表客户端,用来识别通过HTTP代理或负载均衡方式连接到Web服务器的客户端最原始的IP地址的HTTP请求头字段)或类似的HTTP(Hyper Text Transfer Protocol,超文本传输协议) 头部,可以轻松识别。
(2)对于开放在著名端口的服务,如开放在1080端口的socks(Protocol forsessions traversal across firewall securely,防火墙安全会话转换协议)代理、或开放在3128端口的 SQUID(Squid cache,代理服务器,是一种用来缓存Internet数据的软件)服务,可以通过端口扫描的方法进行一定程度的控制。
现代TCP/IP网络是分层的。按照TCP/IP分层的习惯,自底向上分为物理层、链路层、网络层、传输层和应用层五层。通常情况下,物理层程序无法处理,链路层无法通过路由器,即难以直接获得用户侧的链路层数据,意义有限。
而VPN本身的原理,就是跨越原始的网络分层,将下层数据包(通常是IP层,网络层)封装在一个上层数据包(如UDP层,传输层)中进行传递。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
通过目前的技术,对是否通过VPN访问互联网的检测手段并不完善,缺乏有效方案确定互联网用户是否通过VPN访问互联网。
发明内容
本发明实施例提供一种互联网用户通过虚拟专用网络访问互联网的检测方法及***,可相对准确确定互联网用户是否通过虚拟专用网络访问互联网。
一方面,本发明实施例提供了一种互联网用户通过虚拟专用网络访问互联网的检测方法,包括:
根据互联网中运行不同网络业务时的各正常TCP数据包的最大报文长度MSS,确定预设的每个网段对应的区间MSS;
捕获并拦截互联网中运行待检测网络业务时的待检测数据包,并解析其中的MSS;
将所述待检测数据包的MSS与待检测数据包的所属网段对应的区间MSS进行比较,若所述待检测数据包的MSS小于所述所属网段对应的区间MSS,则确定该待检测数据包对应的互联网用户疑似通过虚拟专用网络访问互联网。
可选的,
当确定互联网用户疑似通过虚拟专用网络访问互联网时,将所述待检测数据包标记为异常,并允许所述待检测数据包继续传输;标记为异常的待检测数据包由所述待检测网络业务的上层网络业务处理。
可选的,所述根据互联网中运行不同网络业务时的各正常TCP数据包的MSS,确定预设的每个网段对应的区间MSS,包括:
捕获互联网中运行不同网络业务时的各正常TCP数据包,并解析每个正常TCP数据包的MSS;
根据每个正常TCP数据包的发送方IP地址,将各正常TCP数据包分别划分到预设的多个网段中,并根据每个网段内的所有正常数据包的MSS得到该网段对应的区间MSS。
可选的,
所述根据每个网段内的所有正常数据包的MSS得到该网段对应的区间MSS,包括:
将每个网段内最小的MSS作为该网段对应的区间MSS;或,
将每个网段内所有MSS的平均长度作为该网段对应的区间MSS。
可选的,
所述待检测数据包的所属网段根据待检测数据包的发送方IP地址确定;
在将所述待检测数据包的MSS与待检测数据包的所属网段对应的区间MSS进行比较之前,还包括:
将所述待检测数据包的MSS与预设的MSS阈值进行预比较,并确认所述待检测数据包的MSS小于所述MSS阈值。
另一方面,本发明实施例提供一种互联网用户通过虚拟专用网络访问互联网的检测***,包括:
区间MSS确定单元,用于根据互联网中运行不同网络业务时的各正常TCP数据包的最大报文长度MSS,确定预设的每个网段对应的区间MSS;
待检测数据包捕获单元,用于捕获并拦截互联网中运行待检测网络业务时的待检测数据包,并解析其中的MSS;
比较单元,用于将所述待检测数据包的MSS与待检测数据包的所属网段对应的区间 MSS进行比较,若所述待检测数据包的MSS小于所述所属网段对应的区间MSS,则确定该待检测数据包对应的互联网用户疑似通过虚拟专用网络访问互联网。
可选的,还包括:
结果处理单元,用于当确定互联网用户疑似通过虚拟专用网络访问互联网时,将所述待检测数据包标记为异常,并允许所述待检测数据包继续传输;标记为异常的待检测数据包由所述待检测网络业务的上层网络业务处理。
可选的,
所述区间MSS确定单元包括:
正常数据包捕获子单元,用于捕获互联网中运行不同网络业务时的各正常TCP数据包,并解析每个正常TCP数据包的MSS;
区间MSS计算子单元,用于根据每个正常TCP数据包的发送方IP地址,将各正常TCP数据包分别划分到预设的多个网段中,并根据每个网段内的所有正常数据包的MSS 得到该网段对应的区间MSS。
可选的,
所述区间MSS计算子单元包括:
第一计算模块,用于将每个网段内最小的MSS作为该网段对应的区间MSS;
第二计算模块,用于将每个网段内所有MSS的平均长度作为该网段对应的区间MSS。
可选的,
所述比较单元中待检测数据包的所属网段根据待检测数据包的发送方IP地址确定;
所述***还包括:
预比较单元,设于所述待检测数据包捕获单元和所述比较单元之间,用于将所述待检测数据包的MSS与预设的MSS阈值进行预比较,并确认所述待检测数据包的MSS小于所述MSS阈值后,触发所述比较单元。
上述技术方案具有如下有益效果:
本发明基于TCP协议建立的互联网,通过比较不同网络业务的各正常TCP数据包与待检测网络业务的待检测数据包,可确定互联网用户是否通过虚拟专用网络访问互联网以操作所述待检测网络业务;且本方案可以在用户完全无感知的情况下完成,可以很方便地部署在旁路设备中,不影响线上业务。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一种互联网用户通过虚拟专用网络访问互联网的检测方法的流程图;
图2是本发明实施例互联网用户通过虚拟专用网络访问互联网的检测***的结构框图;
图3是图2所述实施例一个可选的实施方式的结构框图;
图4是图2所述实施例中区间MSS确定单元201的一个可选的实施方式的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
VPN本身的原理,就是跨越原始的网络分层,将下层数据包(通常是IP层,网络层)封装在一个上层数据包(如UDP层,传输层)中进行传递。原本网络层通常是被封装在链路层上的,如果是以太网,这时候的典型MTU是1500;或者用PPPoE,这时候典型值是1492。如果要封装在其他IP协议中,则至少会小一个IP头的长度(20字节)。因此,如果发现小于等于1480的MTU,就可以怀疑这是一个VPN。
另一方面,在现实运行的网络上,确实有很多链路的MSS本身就小于这个数值。例如,在常见的蜂窝网(指4G、3G、2G)接入时,经常可以见到1300的MTU。这就需要一种预先采集正常网络状态的机制,预设一些来源IP的MTU。这对大型网站在技术上是可行的。另一方面,诚然,可能一些IP始终在使用VPN接入,但是在预先采集的、不敏感的业务过程中他们也是在正常使用的,可以认为这些用户并非恶意用户,即使他们确实使用了VPN。
此外,如果能够在VPN的服务端和客户端都进行特殊配置,理论上是可以绕过本方法检测的。但是,这会严重的影响网络性能,通常不会被使用。
基于此,本发明实施例提供一种互联网用户通过虚拟专用网络访问互联网的检测方法,如图1所示,该实施例包括:
步骤101,根据互联网中运行不同网络业务时的各正常TCP数据包的最大报文长度MSS,确定预设的每个网段对应的区间MSS;
在TCP连接建立时,会初始化MSS。在此过程中,可以通过抓包捕获MSS数据。
每一数据包均包括对应数据包发送方的IP地址、接收方的IP地址、最大报文长度MSS、两端端口及本地时间。
在一个优选的实施方式中,捕获互联网中运行不同网络业务时的各正常TCP数据包中,每次建立TCP连接时,第一次握手时的第一个SYN数据包;解析该SYN数据包的 MSS。
可选的,根据各正常TCP数据包发送方的IP地址,将该各正常TCP数据包划分至多个网段,且每一网段对应一个区间最大报文长度MSS。
其中,
所述待检测数据包的所属网段根据待检测数据包的发送方IP地址确定。
步骤102,捕获并拦截互联网中运行待检测网络业务时的待检测数据包,并解析其中的MSS;
步骤103,将所述待检测数据包的MSS与待检测数据包的所属网段对应的区间MSS进行比较;若所述待检测数据包的MSS小于所述所属网段对应的区间MSS,则确定该待检测数据包对应的互联网用户疑似通过虚拟专用网络访问互联网。
其中,每一待检测数据包均包括对应待检测数据包发送方的网间协议IP地址、接收方的IP地址、端口地址、MSS及本地时间。
且,可选的,还包括步骤104,当确定互联网用户疑似通过虚拟专用网络访问互联网时,将所述待检测数据包标记为异常,并允许所述待检测数据包继续传输;标记为异常的待检测数据包由所述待检测网络业务的上层网络业务处理。
在将所述待检测数据包标记为异常时,要记录与该待检测数据包相关的信息,并将其记录到附近的redis数据库或MC中。
可选的,还要记录根据所述待检测数据包的MSS与待检测数据包的所属网段对应的区间MSS之间的差值计算得到的异常值。可选的,可以将所述差值直接作为异常值;还可以根据所述差值得到一个异常等级,每个异常等级对应一个异常值。
上层业务调取到redis数据库或MC中的记录的该待检测数据包的信息时,直接对该待检测数据包进行处理。包括但不限于:直接禁止该待检测数据包对应的IP地址继续访问;或,根据所述异常值判断是否禁止该待检测数据包对应的IP地址继续访问;或,将对该待检测数据包的异常标记作为参考,结合该待检测数据包的其它数据进行处理;或,将待检测数据包的异常值作为参考,结合该待检测数据包的其它数据进行处理。
当不确定互联网用户通过虚拟专用网络访问互联网时,不进行异常记录,放行放行该待检测数据包。
本方案对于任何TCP连接都可以使用,也不需要向用户发送特殊的数据包;同时,即使发现异常,也并不直接处理,而是交由上层业务进行处理,以免误判,不会对正常用户有任何干扰。
综上,此方案特别隐蔽,用户甚至难以知晓此检测方案的存在。
可选的,根据互联网中运行不同网络业务时的各正常TCP数据包的MSS,确定预设的每个网段对应的区间MSS,包括:
捕获互联网中运行不同网络业务时的各正常TCP数据包,并解析每个正常TCP数据包的MSS;
根据每个正常TCP数据包的发送方IP地址,将各正常TCP数据包分别划分到预设的多个网段中,并根据每个网段内的所有正常数据包的MSS得到该网段对应的区间MSS。
可选的,
所述根据每个网段内的所有正常数据包的MSS得到该网段对应的区间MSS,包括:
将每个网段内最小的MSS作为该网段对应的区间MSS;或,
将每个网段内所有MSS的平均长度作为该网段对应的区间MSS。
可选的,
在将所述待检测数据包的MSS与待检测数据包的所属网段对应的区间MSS进行比较之前,还包括:
将所述待检测数据包的MSS与预设的MSS阈值进行预比较,并确认所述待检测数据包的MSS小于所述MSS阈值。
本发明互联网用户疑似通过虚拟专用网络访问互联网的检测方法通过预比较待检测数据包中的最大报文长度与预设的长度阈值的大小,以及进一步比较待检测数据包的最大报文长度与区间最大报文长度的大小,从而更准确确定互联网用户是否通过虚拟专用网络访问互联网以操作所述待检测网络业务,使所述待检测网络业务在互联网中运行。
需要说明的是,MSS和MTU,可以认为只差两个头部的长度(40字节),本发明实施例仅以MSS为例进行说明。如仅将MSS替换为MTU,也应当属于本申请保护的范围。
图2是本发明实施例一种互联网用户通过虚拟专用网络访问互联网的检测***的结构框图,如图示,包括:
区间MSS确定单元201,用于根据互联网中运行不同网络业务时的各正常TCP数据包的最大报文长度MSS,确定预设的每个网段对应的区间MSS;
待检测数据包捕获单元202,用于捕获并拦截互联网中运行待检测网络业务时的待检测数据包,并解析其中的MSS;
比较单元203,用于将所述待检测数据包的MSS与待检测数据包的所属网段对应的区间MSS进行比较,若所述待检测数据包的MSS小于所述所属网段对应的区间MSS,则确定该待检测数据包对应的互联网用户疑似通过虚拟专用网络访问互联网。
其中,
所述比较单元中待检测数据包的所属网段根据待检测数据包的发送方IP地址确定。
如图3所示,在一个可选的实施方式中,还包括:
结果处理单元204,用于当确定互联网用户疑似通过虚拟专用网络访问互联网时,将所述待检测数据包标记为异常,并允许所述待检测数据包继续传输;标记为异常的待检测数据包由所述待检测网络业务的上层网络业务处理。
在将所述待检测数据包标记为异常时,要记录与该待检测数据包相关的信息,并将其记录到附近的redis数据库或MC中。
可选的,还要记录根据所述待检测数据包的MSS与待检测数据包的所属网段对应的区间MSS之间的差值计算得到的异常值。可选的,可以将所述差值直接作为异常值;还可以根据所述差值得到一个异常等级,每个异常等级对应一个异常值。
上层业务调取到redis数据库或MC中的记录的该待检测数据包的信息时,直接对该待检测数据包进行处理。包括但不限于:直接禁止该待检测数据包对应的IP地址继续访问;或,根据所述异常值判断是否禁止该待检测数据包对应的IP地址继续访问;或,将对该待检测数据包的异常标记作为参考,结合该待检测数据包的其它数据进行处理;或,将待检测数据包的异常值作为参考,结合该待检测数据包的其它数据进行处理。
当不确定互联网用户通过虚拟专用网络访问互联网时,不进行异常记录,放行放行该待检测数据包。
本方案对于任何TCP连接都可以使用,也不需要向用户发送特殊的数据包;同时,即使发现异常,也并不直接处理,而是交由上层业务进行处理,以免误判,不会对正常用户有任何干扰。
综上,此方案特别隐蔽,用户甚至难以知晓此检测方案的存在。
可选的,
还包括预比较单元205,设于所述待检测数据包捕获单元202和所述比较单元203之间,用于将所述待检测数据包的MSS与预设的MSS阈值进行预比较,并确认所述待检测数据包的MSS小于所述MSS阈值后,触发所述比较单元203。
如图4所示,在另一个可选的实施方式中,
所述区间MSS确定单元201包括:
正常数据包捕获子单元2011,用于捕获互联网中运行不同网络业务时的各正常TCP 数据包,并解析每个正常TCP数据包的MSS;
区间MSS计算子单元2012,用于根据每个正常TCP数据包的发送方IP地址,将各正常TCP数据包分别划分到预设的多个网段中,并根据每个网段内的所有正常数据包的MSS得到该网段对应的区间MSS。
可选的,
所述区间MSS计算子单元2012包括:
第一计算模块,用于将每个网段内最小的MSS作为该网段对应的区间MSS;
第二计算模块,用于将每个网段内所有MSS的平均长度作为该网段对应的区间MSS。
上述技术方案具有如下有益效果:
本发明基于TCP协议建立的互联网,通过比较不同网络业务的各正常TCP数据包与待检测网络业务的待检测数据包,可确定互联网用户是否通过虚拟专用网络访问互联网以操作所述待检测网络业务;且本方案可以在用户完全无感知的情况下完成,可以很方便地部署在旁路设备中,不影响线上业务。
此外,本发明还提供一种互联网用户疑似通过虚拟专用网络访问互联网的检测***,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行以下操作:
预先捕获互联网中运行不同网络业务时的各正常TCP数据包,并解析其中的MSS;
捕获并拦截所述互联网中运行待检测网络业务时的待检测数据包,并解析其中的MSS;
将所述待检测数据包的MSS与相同网段所述各网络业务的各正常TCP数据包的MSS进行比较,若所述待检测数据包的MSS小于相同网段所述各网络业务的各正常TCP数据包的MSS,则确定该待检测数据包对应的互联网用户疑似通过虚拟专用网络访问互联网。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行以下操作:
预先捕获互联网中运行不同网络业务时的各正常TCP数据包,并解析其中的MSS;;
捕获并拦截所述互联网中运行待检测网络业务时的待检测数据包,并解析其中的MSS;
将所述待检测数据包的MSS与相同网段所述各网络业务的各正常TCP数据包的MSS进行比较,若所述待检测数据包的MSS小于相同网段所述各网络业务的各正常TCP数据包的MSS,则确定该待检测数据包对应的互联网用户疑似通过虚拟专用网络访问互联网。
相对于现有技术,本发明互联网用户疑似通过虚拟专用网络访问互联网的检测***、计算机可读存储介质与上述互联网用户疑似通过虚拟专用网络访问互联网的检测方法的有益效果相同,在此不再赘述。
应该明白,公开的过程中的步骤的特定顺序或层次是示例性方法的实例。基于设计偏好,应该理解,过程中的步骤的特定顺序或层次可以在不脱离本公开的保护范围的情况下得到重新安排。所附的方法权利要求以示例性的顺序给出了各种步骤的要素,并且不是要限于所述的特定顺序或层次。
在上述的详细描述中,各种特征一起组合在单个的实施方案中,以简化本公开。不应该将这种公开方法解释为反映了这样的意图,即,所要求保护的主题的实施方案需要比清楚地在每个权利要求中所陈述的特征更多的特征。相反,如所附的权利要求书所反映的那样,本发明处于比所公开的单个实施方案的全部特征少的状态。因此,所附的权利要求书特此清楚地被并入详细描述中,其中每项权利要求独自作为本发明单独的优选实施方案。
为使本领域内的任何技术人员能够实现或者使用本发明,上面对所公开实施例进行了描述。对于本领域技术人员来说;这些实施例的各种修改方式都是显而易见的,并且本文定义的一般原理也可以在不脱离本公开的精神和保护范围的基础上适用于其它实施例。因此,本公开并不限于本文给出的实施例,而是与本申请公开的原理和新颖性特征的最广范围相一致。
上文的描述包括一个或多个实施例的举例。当然,为了描述上述实施例而描述部件或方法的所有可能的结合是不可能的,但是本领域普通技术人员应该认识到,各个实施例可以做进一步的组合和排列。因此,本文中描述的实施例旨在涵盖落入所附权利要求书的保护范围内的所有这样的改变、修改和变型。此外,就说明书或权利要求书中使用的术语“包含”,该词的涵盖方式类似于术语“包括”,就如同“包括,”在权利要求中用作衔接词所解释的那样。此外,使用在权利要求书的说明书中的任何一个术语“或者”是要表示“非排它性的或者”。
本领域技术人员还可以了解到本发明实施例列出的各种说明性逻辑块(illustrative logical block),单元,和步骤可以通过电子硬件、电脑软件,或两者的结合进行实现。为清楚展示硬件和软件的可替换性(interchangeability),上述的各种说明性部件(illustrative components),单元和步骤已经通用地描述了它们的功能。这样的功能是通过硬件还是软件来实现取决于特定的应用和整个***的设计要求。本领域技术人员可以对于每种特定的应用,可以使用各种方法实现所述的功能,但这种实现不应被理解为超出本发明实施例保护的范围。
本发明实施例中所描述的各种说明性的逻辑块,或单元都可以通过通用处理器,数字信号处理器,专用集成电路(ASIC),现场可编程门阵列或其它可编程逻辑装置,离散门或晶体管逻辑,离散硬件部件,或上述任何组合的设计来实现或操作所描述的功能。通用处理器可以为微处理器,可选地,该通用处理器也可以为任何传统的处理器、控制器、微控制器或状态机。处理器也可以通过计算装置的组合来实现,例如数字信号处理器和微处理器,多个微处理器,一个或多个微处理器联合一个数字信号处理器核,或任何其它类似的配置来实现。
本发明实施例中所描述的方法或算法的步骤可以直接嵌入硬件、处理器执行的软件模块、或者这两者的结合。软件模块可以存储于RAM存储器、闪存、ROM存储器、EPROM 存储器、EEPROM存储器、寄存器、硬盘、可移动磁盘、CD-ROM或本领域中其它任意形式的存储媒介中。示例性地,存储媒介可以与处理器连接,以使得处理器可以从存储媒介中读取信息,并可以向存储媒介存写信息。可选地,存储媒介还可以集成到处理器中。处理器和存储媒介可以设置于ASIC中,ASIC可以设置于用户终端中。可选地,处理器和存储媒介也可以设置于用户终端中的不同的部件中。
在一个或多个示例性的设计中,本发明实施例所描述的上述功能可以在硬件、软件、固件或这三者的任意组合来实现。如果在软件中实现,这些功能可以存储与电脑可读的媒介上,或以一个或多个指令或代码形式传输于电脑可读的媒介上。电脑可读媒介包括电脑存储媒介和便于使得让电脑程序从一个地方转移到其它地方的通信媒介。存储媒介可以是任何通用或特殊电脑可以接入访问的可用媒体。例如,这样的电脑可读媒体可以包括但不限于RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁性存储装置,或其它任何可以用于承载或存储以指令或数据结构和其它可被通用或特殊电脑、或通用或特殊处理器读取形式的程序代码的媒介。此外,任何连接都可以被适当地定义为电脑可读媒介,例如,如果软件是从一个网站站点、服务器或其它远程资源通过一个同轴电缆、光纤电缆、双绞线、数字用户线(DSL)或以例如红外、无线和微波等无线方式传输的也被包含在所定义的电脑可读媒介中。所述的碟片(disk)和磁盘(disc)包括压缩磁盘、镭射盘、光盘、DVD、软盘和蓝光光盘,磁盘通常以磁性复制数据,而碟片通常以激光进行光学复制数据。上述的组合也可以包含在电脑可读媒介中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。