原文标题:Covertness Analysis of Snowflake Proxy Request
原文作者:Yibo Xie, Gaopeng Gou, Gang Xiong, Zhen Li, Mingxin Cui
原文链接:https://ieeexplore.ieee.org/document/10152736
发表会议:Computer Supported Cooperative Work in Design(CSCW-D)
笔记作者:宋坤书@安全学术圈
主编:黄诚@安全学术圈
在网络封锁中,IP黑名单是一种简单且有效的技术,利用了互联网中许多网站和应用程序使用固定IP地址的特性。例如,一些国家通过将Tor网络中三跳路径的IP地址列入黑名单,成功阻止了对Tor匿名通信网络的访问。
为了规避IP黑名单的限制,Snowflake代理系统应运而生。Snowflake代理通过动态IP地址和志愿者参与的短期代理服务(包括浏览器扩展、网页代理和独立桌面代理),生成大量短期的代理IP,使得完全封禁变得几乎不可能。目前,研究主要从代理本身入手,例如利用WebRTC协议中的证书模式或流量特征检测Snowflake代理。然而,这些方法易受代理位置和版本变化的影响,效果有限。
针对这一问题,本文提出了一种新方法,重点检测Snowflake代理的代理请求而非代理本身。由于Snowflake代理需要频繁从代理数据库获取最新的代理IP,其请求模式具有独特性。通过对代理请求的分析,发现其在数据包大小、方向、时间及网络速度等方面表现出与普通网络请求的差异。基于这些特征,本文采用机器学习模型对Snowflake代理请求进行精准检测。在跨版本实验中,该方法表现出高效性,并且对正常流量的误报率较低。这是首个通过检测代理请求来阻断Snowflake代理的研究。
现有的雪花代理阻断方法主要集中在直接阻止代理本身,但由于代理的IP地址短暂且流量模式不稳定,这些方法已经被成功规避。本文提出了一种不同的思路,即通过检测和阻断雪花代理的请求来阻止其使用。
雪花代理使用的是一个名为Broker的数据库来维护可用的代理信息。用户在使用雪花代理之前,必须先从Broker请求代理。通过观察,代理请求和代理使用之间存在强依赖关系。由于雪花代理的IP地址是短暂的,用户需要频繁地从Broker请求最新的代理,以应对IP的快速变化。
如果阻断代理请求,用户将无法在每次启动雪花软件时获取可用代理,也无法在使用过程中及时刷新代理。基于这一观察,本文提出通过检测代理请求而非代理本身来彻底阻断雪花代理的方法。该方法在Snowflake阻塞中的原理如下图所示:
Snowflake代理请求通过模仿CDN上的普通web请求,实现了一定程度的隐蔽性,但其伪装在以下几个方面存在明显漏洞:
为了确保方法的实用性,本文采集了真实世界的流量数据用于训练机器学习模型。
本文只捕获HTTPS流量(TCP端口443),并将其保存为pcap文件,每个文件对应一条流量记录。
从数据流量的数据包大小、方向、时间、网络速度四个方面提取统计特征:
采用决策树(Decision Tree)算法进行分类。模型为二分类,只输出正类(代理请求)或负类(正常请求)。
评估指标包括准确率(Accuracy)、召回率(Recall,或真阳性率)和误报率(FPR),均为流量分类领域的标准指标。
雪花代理请求通常涉及30到50个数据包的流量。为确保检测的及时性,需尽早完成检测,以避免用户在检测完成前已获取代理信息。实验测试了不同流长度(5, 10, 15, 20, 25, 30,35)的检测准确率,发现流长度超过30个数据包后准确率趋于稳定,达到99.58%。为平衡准确率与效率,后续实验采用30个数据包的流长度。
实验显示检测器性能卓越:平均准确率为99.73%,召回率(Recall)为98.96%,误报率(FPR)约为0.25%。且检测结果在多次实验中波动较小,说明所提取特征能够有效区分代理请求与正常请求。
从五个主要版本的Tor浏览器中分别采集了20条代理请求流量,测试结果显示在不同版本的雪花代理请求中表现出良好的泛化能力。最低召回率(Recall)为90%(Tor Browser版本11.5.7),其余版本均达100%。证明无需频繁针对新版本重新训练模型,方法具有实际可用性。
利用Stratosphere项目的15个数据集测试误报率(FPR),结果显示每个数据集的误报率(FPR)均小于20%,最高为12.91%,平均误报率为7.66%,其中两组数据集的误报率接近零。低误报率表明检测器对正常流量的干扰较少,具有较高的实际应用价值。Snowflake代理请求检测分类器在15个数据集中的误报率(FPR)如下图所示:
本文研究通过检测代理请求来阻断雪花代理系统,并在实验中验证了其可行性与高效性。主要贡献如下:
本文的代码与数据集:https://github.com/Xanole/SnowDT
安全学术圈招募队友-ing
有兴趣加入学术圈的请联系 secdr#qq.com