代理IP识别技术方案探讨

作者: 电子商务电子支付国家工程实验室研究员  刘红宝、胡奕、邱雪涛

    用户通常通过代理来突破限制,如局域网对上网用户的端口、目的网站、协议、游戏、即时通讯软件等的限制,网站对于IP的访问频率、访问次数的限制等;另一方面,通过代理也可以隐藏用户的真实身份。黑客的很多活动都是通过代理服务器,对局域网内机器进行渗透;不法分子也越来越多地使用代理隐藏身份,从而进行欺诈交易。随着线上交易的增加,这种方式的欺诈交易也逐日递增。本文将结合业务实际需求,探讨代理检测可行的技术方案。

一、 什么是代理

11.1 代理简介

代理,也称网络代理,是一种特殊的网络服务,允许一个网络终端(客户端)通过这个服务与另一个网络终端(服务器)进行非直接的连接。

代理可以分为HTTP代理、SOCKS代理、VPN代理以及其他类型的代理。本文针对HTTP代理进行讨论。

图1 代理原理图

图1来自《HTTP权威指南》,直观地表达了HTTP代理的基本原理:客户端向代理发送请求报文,代理服务器需要正确地处理请求和连接(例如正确处理 Connection: keep-alive),同时向服务器发送请求,并将收到的响应转发给客户端。

21.2 代理的级别

根据代理匿名程度的不同,可以划分为透明代理、普通匿名代理、欺骗匿名代理和高匿代理。

(1)     透明代理

在透明代理中,代理服务器将客户端的信息转发至目标访问对象,并没有完全隐藏客户端真实的身份。即服务器知道客户端使用了代理IP,并且知道客户端的真实IP地址。

(2)     普通匿名代理

在普通匿名代理中,代理服务器用自己的IP代替了客户端的真实IP,但是告诉了目标访问对象这是代理访问。

(3)     欺骗匿名代理

在欺骗匿名代理中,目标访问对象同样可以察觉客户端使用代理访问,但是代理服务器会用一个随机的IP代替客户端真实的IP。

(4)     高匿代理

在高匿代理中,代理服务器良好地伪装了客户端,不但用一个随机的IP代替了客户端的IP,也隐藏了代理信息,服务器不会察觉到客户端是通过代理实现访问的,即用户仿佛就是直接使用代理服务器作为自己的客户端。

通常,服务器通过获取HTTP Request的头部信息的相关字段来判断客户端是否使用了代理。该字段包括REMOTE_ADDR、HTTP_VIA 、HTTP_X_FORWARDED_FOR等。

表1 不同代理类型的HTTP头部字段

代理类型

REMOTE_ADDR

HTTP_VIA

HTTP_X_FORWARDED_FOR

未使用代理

客户端的IP

透明代理

代理的IP

代理的IP

客户端的IP

普通匿名代理

代理的IP

代理的IP

代理的IP

欺骗匿名代理

代理的IP

代理的IP

随机的IP

高匿名代理

代理的IP

二、代理IP识别方案

从表1中可以看出,对于透明代理、普通匿名代理、欺骗匿名代理,可以通过检测HTTP请求报文的头部字段进行检测。而对于高匿代理,由于其报文头部字段的特征同未使用代理的请求报文头特征类似。所以,通过报文头的识别方法无法对这种类型的代理进行识别。

我们提出一种通过组合模型集的识别方法来完成代理的识别。

12.1 组合模型集

组合模型集应用不同的代理IP识别模型,完成对待测试IP的代理可疑综合评分。这里的识别模型包括端口反向扫描模型、请求报文分析模型、模拟代理访问网站和基于可疑代理IP库识别模型等。对于不同的模型识别结果,计算待检测IP的可疑评分,最终计算出待检测IP的综合评分。

这种识别方式使得判断结果不仅是简单的“是”或者“否”的形式,而是根据可疑级别计算评分。不同识别模块的侧重点有所不同,可以结合实际场景,根据不同的识别目的,调整各模型的评分系数,从而将这种识别方法应用于不同的业务当中。

基于组合模型集的识别方案如图2所示。

图2 基于组合模型集的识别方案

        2.1.1 请求报文分析识别法

通过获取请求报文中的字段信息来判断客户端是否使用代理。该字段包括REMOTE_ADDR、HTTP_VIA 、HTTP_X_FORWARDED_FOR。

       2.1.2 端口扫描识别法

端口扫描识别法是通过对于指定的IP地址,扫描代理常用的端口,查看该端口的开放状况,计算其对应的可疑评分。

       2.1.3 模拟代理访问网站识别法

通过设置指定的IP为代理,以该IP来访问指定的网站,判断其是否访问成功,来计算其相应的可疑评分。

        2.1.4 反向DNS查询识别法          对待测IP所述的DNS服务器的IP地址进行反向解析,验证该IP是否注册域名,从而计算其相应的可疑评分。        2.1.5 代理IP库匹配识别

通过同已构建的代理IP库进行匹配,判断待测IP是否在代理IP库中,从而判断其相应的可疑评分。

22.2 测试结果

对于基于组合模型集的代理识别方案的代理IP检测系统,我们进行了初步的测试。

其中,原因码(OH:包含可疑报文头;OP:开启可疑端口;OR:模拟代理访问网站成功;OD:反向DNS查询成功,OL:代理IP库匹配成功)

代理评分:A、A-、B、B-、C, 其中A代表代理可疑度最高。

表2 代理IP检测系统测试结果

经过生产数据测试验证,对于未使用代理的情况,识别率为100%;对于有代理的情况,普通代理(即透明代理)的检测准确率达100%,高匿代理的检测准确率达90%。

三、 总结

客户端通过代理来隐藏自身真实身份,从而从事一些违反犯罪活动;一些业务通常也会限制特定IP的访问次数及频率,客户端通常也会采用代理来绕过这些限制。随着线上交易的增加,通过代理进行欺诈交易,将使得欺诈交易难以追踪。代理IP的识别也是风险防控中的关注点之一。上文对代理的识别进行了初步的探讨,由于水平和能力有限,不妥之处在所难免,期待与各位一起学习交流。