基于流量与网络连接的网络代理行为特征检测与识别算法
目录
前言
本文通过代理和网安的攻防技术等角度进行双边探讨。
相关技术介绍
根据参考资料
可以简单地自行了解相关技术
简单来说,就目前普通用户使用的一般情况下
以下内容属于“加密、保密”范围:
- Path 路径
- Content 网页内容
- Cookie和其他对话的数据内容
- User Agent 用户代理
- HTTP Methods 请求方法 【不是太确定,我记得是】
以下内容不属于“加密、保密”范围:
- 网页访问者者的IP、Port
- 网页提供者的的IP、Port
- 网页的Host域名(通过SNI,试图对抗这个的ESNI的骨灰都被扬了)
- 网页域名的DNS查询(除非使用加密DNS)
- 访问网页的时间
- 网页的证书(不含私有KEY)
- 数据传输量
- 数据传输带宽
同时网页的证书会暴露以下内容
- 签发者、CA机构
- 被签发的对象
- 签发日期、到期日期
- 证书支持的域名范围(尤其是多域名、泛域名共享证书)
- 证书公钥
流量与网络连接的网络代理行为特征
要想知道如何识别,那肯定要知己知彼,根据目前主流代理的模式,去除IPsec、OpenV*N、L2TP等过气产品外,常见的有S*s、S*R、V*y、V*s、T*n、X*y,这些懂得都懂啊,别问我这啥啊,我也不dao啊。
(以下的境内指的是中华人民共和国PRC所属的中国大陆内、内地地区,不含港澳台和某些领土争议地区,境外为地球上除了“境内的地区”,包含港澳台)
1-4链路示例是常规访问方法:
1,正常境内用户访问未受限的境内网站的链路
- 张三 --> 境内ISP --> 境内网站服务器
2,正常境内用户访问受限的境内网站的链路
- 张三 --> 境内ISP --> 安全网关(DNS劫持/污染、HTTP劫持/阻断、IPPort/TCP/UDP/IP阻断/重置、BGP劫持、中间人攻击)--> 爬
- 张三 --> 傻缺浏览器、傻缺系统 --> 爬
3,正常境内用户访问未受限的境外网站的链路
- 张三 --> 境内ISP --> 跨境和其他安全网关(放行) -->境外ISP --> 境外网站服务器
4,正常境内用户访问受限的境外网站的链路
- 张三 --> 境内ISP --> 跨境和其他安全网关(DNS劫持/污染、HTTP劫持/阻断、IPPort/TCP/UDP/IP阻断/重置、BGP劫持、中间人攻击)--> 爬
- 张三 --> 傻缺浏览器、傻缺系统 --> 爬
5-8链路示例是非常规访问受限的境外网站方法:
5,直接使用境外服务器作为代理访问受限网站的链路
- 张三 --> 境内ISP --> 跨境和其他安全网关(放行) -->境外ISP --> 境外代理服务器 -->境外ISP --> 境外网站服务器
6,使用境内服务器中转境外服务器作为代理访问受限网站的链路
- 张三 -->境内ISP --> 境内服务器 --> 境内ISP --> 跨境和其他安全网关(放行) -->境外ISP --> 境外代理服务器 -->境外ISP --> 境外网站服务器
7,使用跨境网络专线作为代理访问受限网站的链路
- 张三 -->境内ISP --> 境内中转服务器 --> 跨境专线段 --> 境外服务器 --> 境外ISP --> 境外网站服务器
8,使用VNC和其他远程桌面技术实现远程访问受限网站的链路
- 张三 -->境内ISP --> 境内中转服务器 --> 跨境和其他安全网关(放行) --> 境外远程桌面服务器 --> 境外ISP --> 境外网站服务器
当然,除了跨境和其他安全网关外,境内ISP本身也有部分审查、拦截的功能,比如DNS劫持
通过1-8链路示例,正常人应该都知道这链路是怎么走的了
通过再上文一点的部分,正常人应该都知道在HTTPS/TLS环境下的密和非密内容有哪些了
那么要做到检测与识别,就需要针对链路关键节点和绕过方法、配合非密内容进行针对性突破。
算法的提出思路和示例方法
流量模式
任何代理行为中,进行下载和在线观看大型媒体文件,都需要较长时间、较大大流量、较大带宽的下载
此时可有几个突破点
- 是否为常见/大量使用的域名(比如说是Bilibili的数字媒体海外节点、Steam国际节点下载域名)
- 是否为常见/大量使用的IP(比如说是CloudFlare CDN的IP、Akamai CDN的IP)
- 点对点时段平均带宽(比如1080P的流量为5-10M、4K的视频的流量为20-50M、IDM下载的全速拉满)
- 流量对称性(需要服务器或者其上级网管可监管)(比如代理服务器一般流量和带宽上下对等)
- 该域名+IP的访问者、用量、访问时间
- 通过主动探测检测该连接是否属于普通、正常、合规使用(比如检查网络相应内容、检查域名和其关联域名/IP/ASN是否被收录/有没有黑白名单记录/有没有关键字/有没有实名/注册商在哪里/域名后缀风险程度)
对照的实际应用手段包括但不限于
- 拦截奇怪的域名后缀(比如cf、ga、gq、tk、ml五大免费域名,比如xyz、de等廉价域名,比如me、cc、top等滥用黑历史较多的域名)
- 拦截奇怪的主域名关键字(比如说机场、v*n、FQ、v*y)
- 拦截奇怪的子域名关键字(比如说HK、TW、SG、US、Azure、AWS、Hinet、IPLC、IEPL、v*y、lv、yun、cu、cm、ct、ddns、az、cn2、gia、9929、dmit、do、vu、vir、rn、pr、cloud、emby、drive、cdn、gd)
- 阻断多时间段带宽均值十分接近的(比如说持续性5~50M、持续性跑满)
- 阻断有黑历史的IP、ASN(比如日常被滥用的CFCDN、AWS、Linode、DO、Vultr、Oracle)
- 有少量个体持续性访问奇怪的网站
- 网站内容比较蠢、流量表现异常(比如元素周期表、SpeedTest、宝塔初始页、Wordpress、Whmcs等不会进行持续性/大流量的网站)
同时,对于可被监控的机器(包括但不限于,受到中国监管的腾讯云境内外服务器、中国三大运营商境内外服务器)可通过部署网管、网安、防火墙设备进行流量识别,想检查出你是不是上下对等,不能说很难,只能说有手就行。
网络连接模式
首先根据链路示例,可首先对可能被使用的“境内中转服务器”开展检测
无论是什么专线、还是普通的机房,必然有网管/网安/防火墙设备,可通过该部分进行分析,比如说看这些傻子用户:
可能这就是肆无忌惮呢,有的直接用HTTP/WS把Path写出来了,还TM带关键字的,只能说这还真是高手过招,而用了HTTPS的那些,傻缺域名骗谁呢?
所以对于HTTP/WS来说,啥都不保密,只要你在中国大陆境内用这个,无论有没有跨境,都是明文、招摇过市的,当然,也不一定都寄就是,毕竟各路WS免流还在玩。
对于HTTPS/WSS来说,有的内容有密,但是依然有大量内容非密,比如说
- 证书(是不是垃圾、高风险证书,比如CF的、自签名的、测试的、LE/TA等免费证书的、过期的、域名对不上的、黑域名共享的)
- 域名和其内容(和上文域名攻击方向一致,从公网收录数据、黑白历史、负面记录、主动探测、主/子域名关键字、人工标记等方面进行分析)
- 服务器IP和ASN(和IP/ASN域名攻击方向一致,从IP/ASN的黑白历史、滥用情况、连坐情况、主动探测和扫端口等方面进行分析)
- 访问者IP(比如在该IP的近期的DNS查询、HTTP访问中,有没有访问敏感词、受限内容,比如Google、V*N、Youtube,该IP访问对象是否出现代理访问模型*的情况)
注:代理访问模型*,典型有
- 全局代理:境内基本无访问,持续性单一(或少量不同)访问境外某IP、域名,可能存在境内外网站的DNS明文查询
- 绕过大陆:境内正常访问,持续性单一(或少量不同)访问境外某IP、域名,可能存在境内外网站的DNS明文查询
- 绕过受限网站:境内外正常访问,偶尔单一(或少量不同)访问境外某IP、域名,可能存在境内外网站的DNS明文查询
对于未知(加密)流量来说,只能说在刀尖跳舞吧,仅次于明文HTTP的高风险、易识别。
算法的小结
可以参考Stripe Rader的风控乘算评分规则,根据自己实际情况分配权重
参考评分项目有
- 服务器的IP
- 服务器的ASN
- 服务器同IP的其他网站
- CDN供应商识别
- 域名的后缀
- 域名的搜索引擎收录情况
- 域名的实名情况
- 域名的备案情况
- 域名的注册商
- 域名的注册时间和有效期
- 域名的DNS解析供应商
- 域名的相关DNS解析集
- 域名的DNS解析的CNAME识别
- 主域名的关键字
- 子域名的关键字
- 多时段带宽分析
- 主动探测相应码
- 主动探测的相应内容的关键字识别
- 主动探测的相应内容的特征识别
- 证书的签发者
- 证书的签发时间和有效期
- 证书的被签发者
- 证书的共享域名
- 访问者的IP
- 访问者的DNS查询
- 访问者的历史行为
- 访问者的代理访问模型
- 异常大流量
同时流量对称性、相应内容识别、代理访问模型等内容还需要使用者进一步的研究
关于跨境专线的单点突破
由于很多人鼓吹这些多稳定啊、抗风险啊、无惧高峰期以及高墙期什么的,其实核心的问题,卖家比买家要清楚的多
正如某跨境专线卖家的公告所述:
近几日频繁收到用户关于IPLC断流,断联问题。统一说明。
**云IPLC专线(含转发),内网和公网是由专业交换和路由设备控制,内网稳定无攻击。IPLC入口到出口稳定运行。我们一再说明,用户本地到入口公网这段会有协议阻断(情况表现为无法连接入口),此情况下,更换本地地址如果恢复,90%本地运营商阻断你(包含本地和入口同一所在地)。也可以使用手机流量连接测试。此类情况,需要更换协议,和更换本地ip解决(本地到入口公网这段请加密,加密,加密,不要认为使用专线运营商不会阻断你,别忘记你本地到入口需要走公网。)
正好最近有个叫做 Nathosts 被扬了,具体怎么扬的不知道,总之结果就是他家提供的被拔线、不能用,这也是跨境专线的主要风险所在:直接端了专线。
因为单点对象比较明显,跨境专线必然有国内入口,而这个入口大概率是有实名的,虽然实名大概率是假的/买的/不保真的就是(不过也有销售经理、其他公司见钱就开专线用的,毕竟别玩太大的话,及时封你机器也问题不大),但是在国内就意味着大概率属于受控范围内,比如说机房检测、网警查封等,哪怕N层转发一样也得有个给用户连的国内入口,然后用户到流量入口处必然还有一段公网检测路径,比如说经典案例就是上图的HTTP明文请求的用户。
关于误封
风控系统一旦提高风控水平,必然存在误判,比如说条纹和其他国外商家常见的砍单、拒收、拒付等。
一般来说限制可以通过多种方法实现、阶梯性限制,这也是目前GFW主要的行为方式(除了敏感期)。
比如说从定向不定时阻断、DNS污染、IPPort阻断、域名阻断等做起,最终到封IP、封域名。
只要不是影响重大,干了就干了,目前来说,人家压根就没怕过,GitHub的RAW库、Cloudflare的cdn/page/worker、jsdelivr的主域名,有的干一阵子放出来了,有的就关里面,然后动不动加个DNS污染、域名拦截,然后再加上江苏、浙江、泉州的高频反诈,很显然就没把境外势力放在眼里(˵¯͒ བ¯͒˵)
Comments NOTHING