代理ip地址识别方法、装置、电子设备及存储介质

文档序号:1478679 发布日期:2020-02-25 浏览:3次 >En<

阅读说明:本技术 代理ip地址识别方法、装置、电子设备及存储介质 (Proxy IP address identification method, device, electronic equipment and storage medium ) 是由 郑力枪 杨勇 张�杰 廖晨 李龙 黄楠驹 欧阳婷 夏雄风 李韬 于 2019-10-21 设计创作,主要内容包括:本申请涉及计算机技术领域,公开了一种代理IP地址识别方法、装置、电子设备及存储介质,所述方法包括:根据客户端在同一次请求过程中发送给业务服务器的一对SYN包和ACK包;根据SYN包到达业务服务器的时间和ACK包到达业务服务器的时间,确定客户端与业务服务器之间传输数据包的网络时延;若网络时延大于时延阈值,则确定客户端使用的IP地址为代理IP地址。本申请实施例提供的代理IP地址识别方法、装置、电子设备及存储介质,不需要主动发送检测数据包,实现了实时在线无感知检测,即便客户端使用的代理服务器具备鉴权、防火墙等反检测功能,也可以进行有效地识别,从而能够提高检测覆盖面。(The application relates to the technical field of computers, and discloses a proxy IP address identification method, a device, electronic equipment and a storage medium, wherein the method comprises the following steps: according to a pair of SYN packet and ACK packet sent to the service server by the client in the same request process; determining the network time delay of data packet transmission between the client and the service server according to the time of the SYN packet arriving at the service server and the time of the ACK packet arriving at the service server; and if the network delay is greater than the delay threshold, determining the IP address used by the client as the proxy IP address. The method, the device, the electronic equipment and the storage medium for identifying the proxy IP address do not need to actively send a detection data packet, realize real-time online non-perception detection, and can effectively identify even if a proxy server used by a client has anti-detection functions such as authentication, firewall and the like, so that the detection coverage can be improved.)

代理IP地址识别方法、装置、电子设备及存储介质

技术领域

本申请涉及计算机技术领域,尤其涉及一种代理IP地址识别方法、装置、电子设备及存储介质。

背景技术

随着互联网技术的广泛应用,对网络环境的安全性要求越来越高,而网络黑客利用VPN(Virtual Private Network,虚拟专用网络)等技术能够隐藏自己的真实IP地址,给网络安全检测以及打击网络犯罪带来了极大的困难,因此,亟需一种能够识别代理IP地址的方法,进而辅助识别恶意攻击、恶意用户,提高网络安全或业务安全。

目前常用的识别代理IP地址的方法主要是主动扫描的检测方式,由检测服务器主动向待检测的IP地址发送测试数据包,并通过分析该IP地址对应的回包,来确定该IP地址是否为通过VPN等代理服务器伪装的代理IP地址。

但是,现实互联网中活跃的IP地址高达4亿个,逐个扫描的检测成本较高,且代理服务器种类复杂、协议变化大、代理端口数量多,难以被覆盖全,此外,一些代理服务器设置有反检测手段,导致主动扫描的检测方式无法有效地进行。

发明内容

本申请实施例提供一种代理IP地址识别方法、装置、电子设备及存储介质,不需要主动发送检测数据包,实现了实时在线无感知检测,即便客户端使用的代理服务器具备鉴权、防火墙等反检测功能,也可以进行有效地识别,从而提高了检测覆盖面。

一方面,本申请一实施例提供了一种代理IP地址识别方法,包括:

获得客户端在同一次请求过程中发送给业务服务器的一对SYN包和ACK包;

根据所述SYN包到达所述业务服务器的时间和所述ACK包到达所述业务服务器的时间,确定所述客户端与所述业务服务器之间传输数据包的网络时延;

若所述网络时延大于时延阈值,则确定所述客户端使用的IP地址为代理IP地址,所述时延阈值是基于未使用代理IP地址的客户端与所述业务服务器之间传输数据包的网络时延确定的。

一方面,本申请一实施例提供了一种代理IP地址识别装置,包括:

获取模块,用于获得客户端在同一次请求过程中发送给业务服务器的一对SYN包和ACK包;

时延确定模块,用于根据所述SYN包到达所述业务服务器的时间和所述ACK包到达所述业务服务器的时间,确定所述客户端与所述业务服务器之间传输数据包的网络时延;

识别模块,用于若所述网络时延大于时延阈值,则确定所述客户端使用的IP地址为代理IP地址,所述时延阈值是基于未使用代理IP地址的客户端与所述业务服务器之间传输数据包的网络时延确定的。

可选地,所述统计模块具体用于:按该IP地址类包含的时间差从小到大的顺序,统计得到第N百分位所对应的时间差,将所述第N百分位所对应的时间差确定为该IP地址类对应的时延阈值;或计算该IP地址类包含的时间差的统计值,将所述统计值确定为该IP地址类对应的时延阈值,所述统计值为平均值、众数、标准差中的一种。

可选地,所述统计模块具体用于:

根据每个白样本对应的客户端的IP地址的前K位数据,确定每个白样本对应的IP地址类;

将每个白样本对应的时间差划分到对应的IP地址类中。

一方面,本申请一实施例提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行计算机程序时实现上述任一种方法的步骤。

一方面,本申请一实施例提供了一种计算机可读存储介质,其上存储有计算机程序指令,该计算机程序指令被处理器执行时实现上述任一种方法的步骤。

一方面,本申请一实施例提供了一种计算机程序产品,所述计算机程序产品包括存储在计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,所述程序指令被处理器执行时实现上述任一种方法的步骤。

本申请实施例提供的代理IP地址识别方法、装置、电子设备及存储介质,通过在业务服务器端采集客户端的流量特征,来分析其网络时延是否在合理的范围内,从而识别客户端是否用了代理IP地址,因此,不需要主动发送检测数据包,实现了实时在线无感知检测,即便客户端使用的代理服务器具备鉴权、防火墙等反检测功能,也可以进行有效地识别,检测范围覆盖所有企图从业务服务器获取业务服务的IP地址对应的所有代理端口,从而能够提高检测覆盖面。此外,上述代理IP地址识别方法,通过直接获取网络中客户端与业务服务器之间实际传输的数据包进行识别,不会增加网络的性能负载,不影响正常业务数据包的传输。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,显而易见地,下面所介绍的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例提供的代理IP地址识别方法的应用场景示意图;

图2为本申请一实施例提供的代理IP地址识别方法的流程示意图;

图3为使用代理服务器和不使用代理服务器时网络时延差异的示意图;

图4为通过TCP三次握手过程计算网络时延的原理图;

图5为本申请一实施例提供的基于TCP握手过程中的数据包确定网络时延的流程示意图;

图6为本申请一实施例提供的获取网络时延对照表的流程示意图;

图7为本申请一实施例提供的代理IP地址识别方法的流程示意图;

图8为本申请一实施例提供的代理IP地址识别装置的结构示意图;

图9为本申请一实施例提供的电子设备的结构示意图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。

为了方便理解,下面对本申请实施例中涉及的名词进行解释:

传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议。

TCP三次握手:三次握手协议指的是在发送数据的准备阶段,服务器端和客户端之间需要进行三次交互。第一次握手:客户端发送SYN包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;第二次握手:服务器收到SYN包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。连接建立后,客户端和服务器就可以开始进行数据传输了。

SYN(Synchronize Sequence Numbers,同步序列编号)包:是TCP/IP建立连接时发送的包含握手信号的数据包。在客户端和服务器之间建立正常的TCP网络连接时,客户机首先发出一个SYN包,服务器使用SYN+ACK应答表示接收到了这个SYN包,最后客户机再以ACK包响应,这样在客户端和服务器之间才能建立起可靠的TCP连接。

ACK(Acknowledge character,确认字符)包:即在接收方成功的接收到数据后回复的标识确认收到数据的数据包。

RTT(round-trip time):数据在客户端到服务器端之间传输时往返所花时间,即本申请中的网络时延。

VPN(Virtual Private Network,虚拟专用网络):VPN网关通过对数据包的加密和数据包目标地址的转换实现远程访问,VPN对目的服务器暴露的是VPN服务器的地址,从而会隐藏了真实源地址。

代理IP地址:在本申请中特指由代理服务器向用户提供的用于接入网络的一类IP地址,以隐藏用户的真实IP地址。例如,当代理服务器为VPN服务器时,用户可通过VPN服务器提供的VPN IP地址访问网络,从而隐藏该用户的真实IP地址。

代理服务器常用的代理端口例如:(1)HTTP协议代理服务器常用端口号:80/8080/3128/8081/9080;(2)SOCKS代理协议服务器常用端口号:1080;(3)FTP(文件传输)协议代理服务器常用端口号:21;(4)Telnet(远程登录)协议代理服务器常用端口:23。

客户端:可以安装在电子设备上的各类应用,电子设备能够将已安装的应用中提供的对象进行显示,该电子设备可以是移动的,也可以是固定的。例如,手机、平板电脑、各类可穿戴设备、车载设备、个人数字助理(personal digital assistant,PDA)、销售终端(point of sales,POS)或其它能够实现上述功能的电子设备等。

百分位数:如果将一组数据从小到大排序,并计算相应的累计百分位,则某一百分位所对应数据的值就称为这一百分位的百分位数。例如,一组p个观测值按数值大小排列,如,处于N%位置的值称第N百分位数。

附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。

在具体实践过程中,常用的识别代理IP地址的方法主要是主动扫描的检测方式:由检测服务器主动向待检测的IP地址常用的代理端口发送测试数据包,若接收到该代理端口返回的针对测试数据包的回包,则表示该代理端口为开放端口,若IP地址常用的代理端口中存在开放端口,则表示该待检测的IP地址为通过VPN等代理服务器伪装的代理IP地址。但是,现实互联网中活跃的IP地址高达4亿个,逐个扫描的检测成本较高,且代理服务器种类复杂、协议变化大、代理端口数量多,一般仅针对常用的代理端口进行扫描,一些不常用的代理端口就会被忽略掉,难以覆盖全部的代理端口。此外,一些代理服务器设置有反检测手段,例如,代理服务器在完成鉴权(例如身份验证)后才会进行发送相应的回包,检测服务器主动发送的测试数据包无法通过鉴权,代理服务器也就不会发送对应的回包,因此检测服务器无法识别代理端口是否开放,导致主动扫描的检测方式无法有效地进行。

为此,本申请的发明人考虑到,利用客户端与业务服务器之间传输数据包的网络时延,来判断客户端使用的IP地址为代理IP地址。具体地代理IP地址识别方式包括:获得客户端与业务服务器之间传输的数据包的网络时延,若网络时延大于时延阈值,则确定该客户端使用的IP地址为代理IP地址,其中,时延阈值是基于未使用代理IP地址的客户端与所述业务服务器之间传输数据包的网络时延确定的。上述代理IP地址识别方法,通过在业务服务器端采集客户端的流量特征,来分析其网络时延是否在合理的范围内,从而识别客户端是否用了代理IP地址,因此,不需要主动发送检测数据包,实现了实时在线无感知检测,即便客户端使用的代理服务器具备鉴权、防火墙等反检测功能,也可以进行有效地识别,检测范围覆盖所有企图从业务服务器获取业务服务的IP地址对应的所有代理端口,提高了检测覆盖面。此外,上述代理IP地址识别方法,通过直接获取网络中客户端与业务服务器之间实际传输的数据包进行识别,不会增加网络的性能负载,不影响正常业务数据包的传输。进一步地,可基于客户端与业务服务器之间的TCP握手过程中的数据包,来判断客户端使用的IP地址是否为代理IP地址,在客户端与业务服务器的握手过程中即可识别出企图隐藏真实IP地址、想绕开IP策略的恶意请求,进而在业务服务器提供具体业务服务之前即可执行相应的安全措施,实现了安全预警,保证网络安全或业务安全。

在介绍完本申请实施例的设计思想之后,下面对本申请实施例的技术方案能够适用的应用场景做一些简单介绍,需要说明的是,以下介绍的应用场景仅用于说明本申请实施例而非限定。在具体实施时,可以根据实际需要灵活地应用本申请实施例提供的技术方案。

参考图1,其为本申请实施例提供的代理IP地址识别方法的应用场景示意图。该应用场景包括多个客户端101(包括客户端101-1、客户端101-2、……客户端101-n-1、客户端101-n)、代理服务器102、业务服务器103和代理IP地址识别装置104。本申请实施例中的客户端101可安装在桌面计算机、移动电话、移动电脑、平板电脑、媒体播放器、智能可穿戴设备、智能电视等电子设备中,客户端101可通过电子设备与其它设备进行通信,例如,客户端101可通过电子设备直接与业务服务器103连接(例如客户端101-n-1、客户端101-n分别通过其所属的电子设备直接与业务服务器103连接),或者通过电子设备、代理服务器102与业务服务器103连接(例如客户端101-1、客户端101-2分别通过其所属的电子设备、代理服务器102与业务服务器103连接),以获取业务服务器103提供的业务服务,如网络直播服务、数据查询服务、云计算服务、网购服务、身份验证服务等。代理服务器102可以是任何一种能够为用户提供代理IP地址的服务器,例如VPN服务器。业务服务器103是指为任何一种能够为用户提供网络业务服务的服务器,业务服务器103可以是一台服务器、若干台服务器组成的服务器集群或云计算中心。上述应用场景中安装客户端101的电子设备、代理服务器102和业务服务器103之间均可通过无线或有线网络连接。

代理IP地址识别装置104可获取经过业务服务器103的网络出口处的数据包,即获取各客户端101与业务服务器103之间、或者客户端101通过代理服务器102和业务服务器103之间传输的数据包,根据获取的数据包获得客户端101与业务服务器103之间传输的数据包的网络时延,若网络时延大于时延阈值,则确定该客户端101使用的IP地址为代理IP地址,其中,时延阈值是基于未使用代理IP地址的客户端与业务服务器之间传输数据包的网络时延确定的。

具体实施时,代理IP地址识别装置104可包括设置在业务服务器103网络出口处的分光器和高速抓包网卡,通过分光器和高速抓包网卡来获取客户端101与业务服务器103之间传输的数据包,其中,分光器用于复制经过网络出口处的数据包,高速抓包网卡用于获取经分光器复制的数据包。实际应用中,可将高速抓包网卡设置为混杂模式,以获取所有经过高速抓包网卡的数据包,高速抓包网卡可采用基于DPDK(Data Plane Development Kit,数据平面开发套件)技术开发的高速抓包网卡。本申请实施例中,获取客户端101与业务服务器103之间传输的数据包的方式,不限于上述列举的方式。

实际应用中,代理IP地址识别装置104可以设置在业务服务器103内部,通过相应的硬件和软件配合实现代理IP地址识别方法。

当然,本申请实施例提供的方法并不限用于图1所示的应用场景中,还可以用于其它可能的应用场景,本申请实施例并不进行限制。对于图1所示的应用场景的各个设备所能实现的功能将在后续的方法实施例中一并进行描述,在此先不过多赘述。

为进一步说明本申请实施例提供的技术方案,下面结合附图以及具体实施方式对此进行详细的说明。虽然本申请实施例提供了如下述实施例或附图所示的方法操作步骤,但基于常规或者无需创造性的劳动在所述方法中可以包括更多或者更少的操作步骤。在逻辑上不存在必要因果关系的步骤中,这些步骤的执行顺序不限于本申请实施例提供的执行顺序。

下面结合图1所示的应用场景,对本申请实施例提供的技术方案进行说明。

参考图2,本申请实施例提供一种代理IP地址识别方法,包括以下步骤:

S201、获得客户端与业务服务器之间传输的数据包的网络时延。

具体实施时,可通过图1所示的代理IP地址识别装置104中的分光器和高速抓包网卡,实时抓取各个客户端和业务服务器之间传输的数据包,基于抓取的数据包,确定各个客户端与业务服务器之间传输的数据包的网络时延。

作为一种可能的实施方式,可根据客户端和业务服务器之间传输的一对数据包确定网络时延,其中,一对数据包中包括业务服务器发送的数据包和客户端针对该数据包发送给业务服务器的回包,服务器发送该数据包的时刻和接收到对应的回包的时刻之间的时间差,即可作为网络时延。

需要说明的是,客户端和业务服务器(例如微信客户端和微信后台业务服务器)之间的通信,是通过安装客户端的电子设备以及通信网络实现的。

S202、若网络时延大于时延阈值,则确定客户端使用的IP地址为代理IP地址,其中,时延阈值是基于未使用代理IP地址的客户端与业务服务器之间传输数据包的网络时延确定的。

具体实施时,若网络时延不大于时延阈值,则确定客户端使用的IP地址不是代理IP地址。

参考图3,当客户端通过代理服务器连接业务服务器时,客户端访问业务服务器的路径为:客户端->代理服务器->业务服务器->代理服务器->客户端,此时,客户端对应的网络时延为RTT1;当客户端不采用代理服务器时,客户端访问业务服务器的路径为:客户端->业务服务器->客户端,此时客户端对应的网络时延为RTT2。显然,使用代理服务器时的访问路径更为复杂,因此,针对同一客户端,使用代理服务器时的网络时延RTT1会比不使用代理服务器时的网络时延RTT2大很多。

具体实施时,可通过如下方式确定时延阈值:获取白样本集,每个白样本包括未使用代理IP地址的客户端在同一次请求过程中发送给业务服务器的一对SYN包和ACK包;确定每个白样本中的SYN包和ACK包到达业务服务器的时间差;根据所有白样本对应的时间差确定时延阈值。这样,可准确地获得不同地域、不同运营商的客户端接入业务服务器的网络时延的情况,从而确定出不同地域、不同运营商对应的时间阈值,有针对性的进行代理IP地址的识别,降低不同区域、不同运营商的网络波动引起的误判率。

作为一种可能的实施方式,可按所有白样本的时间差从小到大的顺序,统计得到第N百分位所对应的时间差,将第N百分位所对应的时间差确定为时延阈值。其中,N为大于0且小于100的数值,N的取值可由本领域技术人员结合测试情况以及经验确定,本申请实施例不作限定。例如,N的取值可以是25、50、75等整数,也可以是20.75、80.5等非整数。以N=75为例,假设第75百分位所对应的时间差为Tn,表示白样本集中75%白样本的时间差小于Tn,白样本集中25%白样本的时间差大于Tn,时间阈值为Tn。

作为另一种可能的实施方式,可计算所有白样本的时间差的平均值、众数或标准差等统计值,将得到的统计值确定为时延阈值。计算各类统计值的方法为现有技术,不再赘述。

本申请实施例提供的代理IP地址识别方法,通过在业务服务器端采集客户端的流量特征,来分析其网络时延是否在合理的范围内,从而识别客户端是否用了代理IP地址,因此,不需要主动发送检测数据包,实现了实时在线无感知检测,即便客户端使用的代理服务器具备鉴权、防火墙等反检测功能,也可以进行有效地识别,检测范围覆盖所有企图从业务服务器获取业务服务的IP地址对应的所有代理端口,从而能够提高检测覆盖面。此外,上述代理IP地址识别方法,通过直接获取网络中客户端与业务服务器之间实际传输的数据包进行识别,不会增加网络的性能负载,不影响正常业务数据包的传输。

在上述任一实施例的基础上,为保证获得的网络时延的准确性,可基于接收到数据包后立即进行回包的这类数据包,计算网络时延。例如,参考图4,在TCP握手过程中,业务服务器收到客户端发送的SYN包后,立即向客户端发送SYN+ACK包,客户端在收到SYN+ACK包后,立即向业务服务器发送ACK包,为此,具体实施时,可将业务服务器发送SYN+ACK包的时刻和接收到客户端返回的ACK包的时刻之间的时间差作为网络时延,或者也可以将业务服务器接收到SYN包和ACK包的时间差作为网络时延。

参考图5,本申请实施例提供了一种代理IP地址识别方法具体包括:

S501、获得客户端在同一次请求过程中发送给业务服务器的一对SYN包和ACK包。

具体实施时,可通过解析数据包的协议包头,获取协议包头中的TCP_flag字段,根据TCP_flag字段过滤出SYN包和ACK包。其中,TCP_flag字段中的字段SYN(同步)表示开始会话请求,TCP_flag字段中的字段ACK(应答)表示发来的数据已确认接收无误,当TCP_flag字段中的SYN=1,ACK=0时,表示该数据包为SYN包,当TCP_flag字段中的SYN=0,ACK=1时,表示该数据包为ACK包。然后,针对过滤出的SYN包和ACK包,可通过协议包头中的五元组、TCP_seq(发送序号)确定出匹配的SYN包和ACK包。具体地,当一个SYN包和一个ACK包的五元组相同,且ACK包的发送序号比SYN包的发送序号大1时,表示该SYN包和该ACK包为客户端在同一次TCP握手请求过程中发送给业务服务器的一对SYN包和ACK包。参考图4,客户端发送SYN包,并配置该SYN包的发送序号(seq)为x;业务服务器收到客户端发送的SYN包后,向客户端发送SYN+ACK包,并配置SYN+ACK包的发送序号(seq)为y,确认序号(ack)为x+1;客户端在收到SYN+ACK包后,向业务服务器发送ACK包,并配置该ACK包的发送序号(seq)为x+1,确认序号(ack)为y+1。

本申请实施例中的五元组包括源IP地址、源端口、目的IP地址、目的端口和传输层协议。通过数据包中的五元组和发送序号,即可确定出同一次请求过程中的一对SYN包和ACK包。

S502、根据SYN包到达业务服务器的时间和ACK包到达业务服务器的时间,确定客户端与业务服务器之间传输数据包的网络时延。

本申请中,由于业务服务器前端用于获取数据包的分光器和高速抓包网卡设置在业务服务器的网络出口处,因此,数据包(包括SYN包和ACK包)到达业务服务器的时间可近似为数据包到达业务服务器的网络出口处的时间。参考图4,其为通过TCP三次握手过程计算网络时延的原理图,可将一对SYN包和ACK包到达业务服务器的时间差作为网络时延。

S503、若网络时延大于时延阈值,则确定客户端使用的IP地址为代理IP地址,其中,时延阈值是基于未使用代理IP地址的客户端与业务服务器之间传输数据包的网络时延确定的。

步骤S503的具体实施方式可参考步骤S203,不再赘述。

参考图5所示的实施方式,可基于客户端与业务服务器之间的TCP握手过程中的SYN包和ACK包,来判断客户端使用的IP地址是否为代理IP地址,这样,在握手过程中即可识别出企图隐藏真实IP地址、想绕开IP策略的恶意请求,进而在业务服务器提供具体业务服务之前即可执行相应的安全措施,实现了安全预警,保证网络安全或业务安全。此外,识别过程中不需要主动发送检测数据包,实现了实时在线无感知检测,即便客户端使用的代理服务器具备鉴权、防火墙等反检测功能,也可以进行有效地识别,检测范围覆盖所有企图从业务服务器获取业务服务的IP地址对应的所有代理端口,从而能够提高检测覆盖面,且通过直接获取网络中客户端与业务服务器之间实际传输的数据包进行识别,不会增加网络的性能负载,不影响正常业务数据包的传输。

不同地域、不同运营商提供的网络的传输质量存在差异,为了应对不同地域、不同运营商之间的网络时延差异,可针对不同地域、不同运营商设置不同的时延阈值。

为此,参考图6,在上述任一实施例的基础上,可通过如下方式获取网络时延对照表:

S601、获取白样本集,每个白样本包括未使用代理IP地址的客户端在同一次请求过程中发送给业务服务器的一对SYN包和ACK包。

S602、确定每个白样本中的SYN包和ACK包到达业务服务器的时间差。

S603、根据每个白样本对应的客户端的IP地址,将每个白样本对应的时间差划分到网络时延对照表中的多个IP地址类中。

具体实施时,可根据每个白样本对应的客户端的IP地址的前K位数据,确定每个白样本对应的IP地址类,将每个白样本对应的时间差划分到对应的IP地址类中。即,将前K位数据相同的IP地址划分为一个IP地址类,基于所有属于该IP地址类的白样本的时间差,确定该IP地址类对应的时延阈值。

具体实施时,K的取值可根据白样本数量、对检测精度的要求、IP地址的总位数等因素确定,本申请实施例不作限定。

以IPV4中使用的IP地址为例,IP地址的总位数为32。例如,当K=32时,表示每个IP地址对应一个IP地址类。当K=24时,即将前24位数据相同的IP地址划分为一个IP地址类,此时,表示将相同地域内相同运营商的IP地址划分到同一IP地址类中。当K=16时,即将前16位数据相同的IP地址划分为一个IP地址类,这样在白样本数量较少时,可增加每一IP地址类中白样本的数量,使得对应的时延阈值能够反映真实的网络时延情况,降低网络传输质量的波动带来的误差。当然,本申请实施例的方法同样适用于IPV6。

S604、针对网络时延对照表中的每个IP地址类,对该IP地址类包含的时间差进行统计,确定该IP地址类对应的时延阈值。

本申请实施例中的网络时延对照表包括IP地址与时延阈值之间的对应关系。具体实施时,网络时延对照表中包含的IP地址类的数量,根据K的取值以及IP地址的总位数确定,网络时延对照表中的每个IP地址类对应一个时延阈值。

基于对大量白样本的统计,可准确地获得不同地域、不同运营商的客户端接入业务服务器的网络时延的情况,从而确定出不同地域、不同运营商对应的时间阈值,有针对性的进行代理IP地址的识别,降低不同区域、不同运营商的网络波动引起的误判率。

作为一种可能的实施方式,可通过如下方式对任一IP地址类包含的时间差进行统计,确定该IP地址类对应的时延阈:按该IP地址类包含的时间差从小到大的顺序,统计得到第N百分位所对应的时间差,将第N百分位所对应的时间差确定为该IP地址类对应的时延阈值。

其中,N为大于0且小于100的数,N的取值可由本领域技术人员结合测试情况以及经验确定,本申请实施例不作限定。例如,N的取值可以是25、50、75等整数,也可以是20.75、80.5等非整数。以N=75为例,假设第75百分位所对应的时间差为Tn,表示白样本集中75%白样本的时间差小于Tn,白样本集中25%白样本的时间差大于Tn,时间阈值为Tn。

作为另一种可能的实施方式,可通过如下方式对任一IP地址类包含的时间差进行统计,确定该IP地址类对应的时延阈:计算该IP地址类包含的时间差的统计值,将统计值确定为该IP地址类对应的时延阈值,其中,统计值可以为平均值、众数、标准差中的一种。计算各类统计值的方法为现有技术,不再赘述。

通过上述任一统计方式,可快速获得对大量白样本的统计结果,从而快速确定出每一IP地址类对应的时延阈值。

此外,基于上述任一统计方式,还可以基于最新获取的白样本,实时更新各IP地址类对应的时延阈值。具体实施时,可以在业务服务器运行过程中,通过代理IP地址识别装置实时获取客户端和业务服务器之间传输的数据包,从实时获取的数据包中过滤出白样本,通过过滤出的白样本重新确定网络时延对照表中的各个IP地址类对应的时延阈值,保证网络时延对照表中的时延阈值符合当前的网络情况。

在确定出网络时延对照表的基础上,参考图7,本申请实施例提供一种代理IP地址识别方法,包括以下步骤:

S701、获得客户端与业务服务器之间传输的数据包的网络时延。

步骤S701的具体实施方式可参考步骤S201,或者参考步骤S501和S502,不再赘述。

S702、从网络时延对照表中获取与客户端使用的IP地址对应的时延阈值。

具体实施时,可根据客户端使用的IP地址的前K位数据,确定该客户端使用的IP地址对应的IP地址类,进而从网络时延对照表中获取该IP地址类对应的时延阈值。本步骤中的K即为图6所示的确定网络时延对照表时使用的K。

S703、若通过步骤S702获取的网络时延大于时延阈值,则确定客户端使用的IP地址为代理IP地址。

步骤S703的具体实施方式可参考步骤S202,不再赘述。

本申请实施例的代理IP地址识别方法,通过分类统计不同地域、不同运营商的客户端接入业务服务器的网络时延,得到表示不同地域、不同运营商的网络时延情况的网络时延对照表,基于网络时延对照表进行代理IP地址的识别,降低不同区域不同运营商的网络波动引起的误判率。

本申请实施例的代理IP地址识别方法,可应用于网络安全、业务安全等领域,用来应对企图隐藏真实IP地址、想绕开IP策略的恶意请求。基于代理IP地址识别结果,标识出客户端发送的请求是否使用了代理IP地址,使用了代理IP地址客户端有可能是黑客,可结合其他的安全策略进行恶意识别,即本申请实施例的代理IP地址识别方法,可用于进行恶意攻击的辅助识别。

例如,本申请实施例的代理IP地址识别方法可应用于验证码验证等场景上,来辅助识别通过自动脚本获取服务的情况。具体地,代理IP地址识别装置获取客户端和业务服务器之间传输的数据包,确定客户端与业务服务器之间传输的数据包的网络时延,若网络时延大于时延阈值,则确定客户端使用的IP地址为代理IP地址,并标识出该客户端使用了代理IP地址,一般通过自动脚本获取服务的客户端会通过代理服务器隐藏真实IP地址,因此,针对这类客户端可结合其他的安全策略进行恶意识别。此外,本申请实施例的代理IP地址识别方法还可以辅助识别盗号、薅羊毛等非法业务场景,帮助识别出隐藏真实IP的手法行为,同时标识出非法IP地址,打击自动机请求流量,对网络安全、业务安全的技术升级具有很大的意义。

如图8所示,基于与上述代理IP地址识别方法相同的发明构思,本申请实施例还提供了一种代理IP地址识别装置80,包括获取模块801、时延确定模块802和识别模块803。

获取模块801,用于获得客户端在同一次请求过程中发送给业务服务器的一对SYN包和ACK包。

时延确定模块802,用于根据SYN包到达业务服务器的时间和ACK包到达业务服务器的时间,确定客户端与业务服务器之间传输数据包的网络时延。

识别模块803,用于若所述网络时延大于时延阈值,则确定所述客户端使用的IP地址为代理IP地址,所述时延阈值是基于未使用代理IP地址的客户端与所述业务服务器之间传输数据包的网络时延确定的。

可选地,识别模块803,还用于在确定所述客户端使用的IP地址为代理IP地址之前,从网络时延对照表中获取与所述客户端使用的IP地址对应的时延阈值,所述网络时延对照表包括IP地址与时延阈值之间的对应关系。

可选地,可通过统计模块获取所述网络时延对照表,统计模块具体用于:

获取白样本集,每个白样本包括未使用代理IP地址的客户端在同一次请求过程中发送给所述业务服务器的一对SYN包和ACK包;

确定每个白样本中的SYN包和ACK包到达所述业务服务器的时间差;

根据每个白样本对应的客户端的IP地址,将每个白样本对应的时间差划分到所述网络时延对照表中的多个IP地址类中;

针对所述网络时延对照表中的每个IP地址类,对该IP地址类包含的时间差进行统计,确定该IP地址类对应的时延阈值。

可选地,统计模块具体用于:按该IP地址类包含的时间差从小到大的顺序,统计得到第N百分位所对应的时间差,将所述第N百分位所对应的时间差确定为该IP地址类对应的时延阈值;或计算该IP地址类包含的时间差的统计值,将所述统计值确定为该IP地址类对应的时延阈值,所述统计值为平均值、众数、标准差中的一种。

可选地,统计模块具体用于:根据每个白样本对应的客户端的IP地址的前K位数据,确定每个白样本对应的IP地址类;将每个白样本对应的时间差划分到对应的IP地址类中。

可选地,代理IP地址识别装置80还包括上述统计模块,该统计模块还用于实时获取客户端和业务服务器之间传输的数据包,从实时获取的数据包中过滤出白样本,通过过滤出的白样本重新确定网络时延对照表中的各个IP地址类对应的时延阈值。这样,可以保证网络时延对照表中的时延阈值符合当前的网络情况。

本申请实施例提的代理IP地址识别装置与上述代理IP地址识别方法采用了相同的发明构思,能够取得相同的有益效果,在此不再赘述。

基于与上述代理IP地址识别方法相同的发明构思,本申请实施例还提供了一种电子设备,该电子设备具体可以为桌面计算机、便携式计算机、智能手机、平板电脑、个人数字助理(Personal Digital Assistant,PDA)、服务器等。如图9所示,该电子设备90可以包括处理器901和存储器902。

处理器901可以是通用处理器,例如中央处理器(CPU)、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。

存储器902作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(Random Access Memory,RAM)、静态随机访问存储器(Static Random Access Memory,SRAM)、可编程只读存储器(Programmable Read Only Memory,PROM)、只读存储器(Read Only Memory,ROM)、带电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性存储器、磁盘、光盘等等。存储器是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器902还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。

本申请实施例提供了一种计算机可读存储介质,用于储存为上述电子设备所用的计算机程序指令,其包含用于执行上述代理IP地址识别方法的程序。

上述计算机存储介质可以是计算机能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器(例如软盘、硬盘、磁带、磁光盘(MO)等)、光学存储器(例如CD、DVD、BD、HVD等)、以及半导体存储器(例如ROM、EPROM、EEPROM、非易失性存储器(NAND FLASH)、固态硬盘(SSD))等。

以上,以上实施例仅用以对本申请的技术方案进行了详细介绍,但以上实施例的说明只是用于帮助理解本申请实施例的方法,不应理解为对本申请实施例的限制。本技术领域的技术人员可轻易想到的变化或替换,都应涵盖在本申请实施例的保护范围之内。

19页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种基于配电自动化的文件传输方法及系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类