基于跨域资源访问的浏览器用户追踪
宋宇波1,2, 吴天琦1,2, 胡爱群2,3, 高尚4    
1. 东南大学 网络空间安全学院, 江苏省计算机网络技术重点实验室, 南京 211189;
2. 网络通信与安全紫金山实验室, 南京 211189;
3. 东南大学 信息科学与工程学院, 移动通信国家重点实验室, 南京 211189;
4. 香港理工大学 电子计算学系, 香港 999077
摘要:近年来,点击欺诈给广告商造成了巨大的经济损失,迫使广告商支付高额费用。为了应对点击欺诈,广告商通常使用用户配置文件来识别用户身份。但是,攻击者可以轻松构建独特的虚拟操作环境,干扰身份的识别。该文提出了PingLoc机制,一种基于跨域资源访问的定位方案,可检测点击欺诈来源。该方案从ping响应延迟序列提取特征构建用户指纹。测试表明,PingLoc所收集的延迟特征是稳定的,用户定位指纹的准确性高达98%。
关键词点击欺诈    多点ping    用户身份识别    攻击者定位    
Browser user tracking based on cross-domain resource access
SONG Yubo1,2, WU Tianqi1,2, HU Aiqun2,3, GAO Shang4    
1. Jiangsu Key Laboratory of Computer Networking Technology, School of Cyber Science and Engineering, Southeast University, Nanjing 211189, China;
2. Purple Mountain Laboratories, Nanjing 211189, China;
3. National Mobile Communications Research Laboratory, School of Information Science and Engineering, Southeast University, Nanjing 211189, China;
4. Computing Department, Hong Kong Polytheistic University, Hong Kong 999077, China
Abstract: In recent years, click fraud has caused huge economic losses to advertisers. Many advertisers have then used "user profiles" to identify users to eliminate click fraud. However, attackers can easily construct unique virtual operating environments to confuse the identification algorithms. This paper introduces a localization scheme to detect click fraud sources based on cross-domain resource access. This scheme extracts features from a ping response delay series to fingerprint users. Tests show that the delay features collected by this method are stable with a fingerprint localization accuracy of up to 98%.
Key words: click fraud    multilocalization pings    user identification    attacker localization    

随着互联网的发展,越来越多的人们开始使用网络。时至今日,互联网络拥有空前的用户数量。为了抓住这一商机,人们开始使用网络进行广告推送。然而在线广告商却面临着点击欺诈攻击的威胁,点击欺诈指攻击者恶意的点击页面上的广告,迫使广告商为这些无价值的点击付费的行为。点击欺诈的常见方案是,攻击者通过劫持或者组织僵尸网络,并在网络上配置网络机器人注册假帐户进行点击欺诈[1]。针对点击欺诈的一种常见的防御模式是通过浏览器指纹构建用户画像[2]。这类方法试图通过提取用户特征建立用户画像,来检测出攻击者使用同一个用户执行批量的点击操作。但是攻击者可以通过一些方案绕过这种检测机制,伪装成完全不同的用户,使得现有防御机制无法检测出攻击者的欺诈行为。

使用浏览器指纹构建用户画像对虚假用户进行检测是当今的主流检测方案,例如基于canvas画布的指纹方案[3-4]和基于audio API的指纹方案[5-6]。Abouollo等[7]针对在线社交网络(online social network, OSN)上的虚假账户问题提出了一种检测方法,使用canvas指纹来检测用户。Alswiti等[8]从不同的角度提出了用户识别的方案,他们认为不同的用户之间有独特的行为方式,可以根据网站上用户的行为进行来构建用户画像,并进行用户识别。可是上述方案难以检测出攻击者的身份。为此,Li等[9]提出了一种指纹链的解决方案,通过将新的指纹链接到旧的指纹上提高浏览器指纹的稳定性。但是,他们的方案仍然只能针对攻击者频繁使用同一浏览器的情景,而相关研究表明70%的用户会安装并使用不同厂家的浏览器[10]

Chen等[11]提供了新的解决思路。Chen等回顾了跨域资源请求的问题和其解决方案的发展历史。由于跨域资源请求的特性,可以轻松的实现HTTP层上的ping功能,检测和追踪攻击者。Mirsky等[12]通过采样局域网中的ping响应,并将其类比为声学中的声音信号,通过数字信号处理的方法,将ping序列转变为频域信号,并通过机器学习检测中间人攻击。Abdou等[13]则利用三角定位法实现了基于ping的用户定位,而不使用易受伪造或定位不准确的GPS坐标和设备IP地址。

为了应对上述问题,本文的主要研究内容为:

1) 提出了一种基于跨域资源访问实现用户指纹的多点ping方案,根据用户的ping延时序列进行用户定位。ping延时序列往往与用户设备到目标网站的实际物理连接状态相关,难以被攻击者篡改。

2) 开发了PingLoc应用原型,用于提取用户的位置指纹,并构建分类模型用于虚假用户的识别和验证。

3) 采集了全球1 093台设备上的超过130万条多点ping时延,来验证PingLoc系统的准确性,并针对几种虚假用户方案进行了安全压力测试。

1 跨域资源访问原理 1.1 同源策略

同源策略,即Same Origin Policy,是目前所有的浏览器均遵循的安全策略之一。同源策略限制了网页脚本的部分功能,限制了他们向一个非同源网站发送请求,禁止他们以用户的名义获取该网站的网站资源。其目的在于避免恶意的脚本故意窃取用户的隐私信息,防止用户信息的泄露。其中,同源策略要求目标URL资源与当前页面拥有相同的协议、相同的域名和相同的端口。

当用户在访问正常网页的同时,访问了一个攻击者的网站,如果缺少同源策略的限制,攻击者就有可能利用嵌入在自己网站上精心设计的脚本窃取用户在正常网页上的cookie和cookie中的隐私信息,例如身份认证信息等。这样在cookie有效期内,攻击者可以肆无忌惮地冒充用户。因此施行同源策略可以有效保护用户的隐私信息。

然而,同源策略仅仅工作在用户的浏览器端,并没有阻止服务器根据请求发送响应,当用户浏览器检测到来自非同源网站的未经允许的资源响应时,就会屏蔽该响应,从而保护用户隐私信息的安全。

1.2 跨域资源共享

实际应用中,有许多完全正当合理的跨域资源访问的需求也受到了同源策略的限制,例如在页面上加载第三方网站的广告推送等。所以还需要一个安全的跨域资源访问的解决方案。

域资源共享,即Cross-Origin Resource Sharing,是由W3C制定的方案,用于实现非同源网站之间的跨域资源请求。虽然同源策略限制了攻击者利用用户对非同源资源的访问,然而完全拒绝非同源资源的请求也是不切实际的。有许多正当的跨域资源访问需求需要满足,例如:在网站上提供第三方网站的在线广告等。因此需要一种机制来实现这一需求,即跨域资源共享。如今各主流浏览器均支持跨域资源共享。

跨域资源共享通过在HTTP响应中的专属字段Access-Control-Allow-Origin和HTTP请求中的预检请求头OPTIONS,来实现浏览器对非同源网站资源的跨域获取。跨域资源共享允许浏览器向非同源网站进行资源的交互。

虽然跨域资源共享的功能十分强大,并且完全由浏览器自动完成,不需要用户参与,但是要求目标服务器允许将资源共享到受控服务器站点,对于自己搭建的网站,一般很难获取到大型网站的跨域资源共享权限。所以还需要寻求一些其他跨域资源请求的实现方法。

2 基于跨域资源共享的用户识别方案

ping命令是用于测试主机到目标网络设备的网络连接状态的经典命令。真正的ping命令通过发送报文给目的服务器,并根据收到的响应判断网络连接状态。类比到Web中,可以通过检测用户浏览器到给定Web站点的响应时间,来判断用户浏览器到该站点的网络连接状态。本文中采用图像ping进行用户定位。

ping延时序列可以反映设备的网络连通状态,并且对于处于同一位置设备,ping命令的反馈值具有稳定性,而对于不同位置的设备之间,ping值具有一定的区分度。为了验证图像ping的稳定性,本文进行了大量的测试。图 1为两台位于不同位置的设备到同一给定Web站点的图像ping延迟,横坐标为图像ping次数,纵坐标为图像ping的反馈值。发现在给定的一段时间内,同一设备到给定站点的图像ping的反馈值是比较稳定的。然而,不同设备之间却有较大差异,因此图像ping可以用来区别不同设备。

图 1 不同设备到同一Web站点的图像ping延时序列

图像ping不仅与用户设备到目标网站的物理连接状态有关,还与用户设备的软硬件性能有关。因为图像ping并不等价于ICMP的ping方法,只是在HTTP层上实现了一个类似功能,而这个过程中就牵扯到了对HTTP包的封包解包、浏览器执行代码的效率、用户平均运行进程数量等涉及用户设备软件性能的过程;还牵扯了用户底层例如CPU运算能力的硬件性能。而用户设备间的软硬件设备性能的差距可以进一步的增大设备间的区分度。

客户浏览器上执行的JavaScript脚本代码,通常是由网站服务器下发的,而客户浏览器仅仅负责执行。所以可以在网站网页上嵌入一段图像ping的代码,并下发给用户浏览器,这样用户设备就会从自己所在的位置,执行图像ping命令,计算浏览器到各个网站服务器之间的延时响应序列,并将得到的数据反馈给受控服务器站点。这样后端服务器就可以得到用户浏览器到一组预先给定的网站的ping延时序列,如图 2所示。

图 2 利用图像ping获取用户到给定Web站点的响应延时

3 PingLoc的实现 3.1 PingLoc的系统架构

PingLoc利用Web应用程序采样用户设备信息,并通过服务器传递给机器学习模型处理收集到的用户信息来进行用户定位和身份认证。

PingLoc在前端的用户浏览器上使用JavaScript脚本采集了用户的图像ping信息,并反馈给网站服务器引擎;网站服务器引擎负责执行数据预处理并提取统计特征;之后服务器将数据传递给机器学习模型进行训练,并将最后的训练结果用于实现用户的定位。

PingLoc可以被大致分为以下3个步骤:前端浏览器采样;服务器执行数据处理和特征提取;机器学习模型的训练。

3.2 数据采集

在采样阶段主要利用浏览器的跨域资源访问特性实现了图像ping来采集用户到第三方站点的连通状态,并反馈给服务器。

在PingLoc中利用JavaScript内置的Data( ).getTime( )方法作为目标网站的图片的相对路径。该方法返回的是一个毫秒数,所以每次执行代码时生成的路径均不相同,而目标网站上实际并不存在这样一个以毫秒数命名的路径,因此总会返回报错,通过捕捉该错误来进行计时。

3.3 数据预处理和特征提取

采集到的数据并不能直接用来进行学习训练,需要进行预处理并提取适当的特征之后才能用于训练。

在处理数据之前,首先需要清洗掉丢包数据。类比TCP协议中丢包的概念,为了保证采集数据的效率,不可能无止境地等待目标网站的回包,所以对于超过丢包延时的回包一律丢弃。本文所采取的丢包延时为800 ms,经计算本文所采集的数据中丢包数据占比约为3%,可以忽略不计。

为了提升数据的准确性,直接把采集到的图像ping作为训练数据是不合适的,因为极端值的存在可能会影响训练结果,使最终模型的分类效果变差。本文将数据从某个点的图像ping扩大到包含这个点的一段区间,这个区间即为一个窗口;之后,提取该窗口的统计特征作为训练集数据,这样可以保证参与训练的数据受极端值影响较小。

窗口的大小直接影响特征的提取与训练的效果。若选取的窗口过小,则难以体现数据的统计特征;若选取的窗口过大,则会产生太多相似的中性数据帧影响训练结果。为了验证选择多大的窗口比较合适,本文改变了窗口的大小进行实验,期望获得较大的分类准确度。

图 3所示,横坐标为单次实验的窗口大小,纵坐标为训练获得的模型的准确度,图中曲线根据实验结果采用多项式拟合绘制。可以发现,当选取的窗口过小或者过大时,都可能导致训练结果变差,合适的窗口大小应选取在20~30。本文所选取的窗口大小为25。

图 3 窗口大小与分类准确性的关系

为了给后续的机器学习算法构建训练集,需要提取合适的特征。本文选取了11个知名的Web站点,这些站点涉及搜索引擎、新闻站点、学术网站、社交娱乐等不同领域。可以从用户浏览器到每个Web站点的图像ping中,提取7个常用于机器学习的统计特征,如表 1所示。因此,对应每个用户的每一次采集点,创建了一个77维的特征向量用于后续的模型训练。

表 1 统计特征的选取及其含义
统计特征 含义
Max 窗口中的最大ping延时
Min 窗口中的最小ping延时
Mean 窗口中的平均ping延时
Var 窗口中的ping延时方差
RMS 均方根值,反映了噪声情况
Skew 偏度,反映数据偏离情况和程度
Kurt 峰度,反映了数据的尖锐程度

3.4 模型训练

为了尽可能提高模型训练的准确性,本文选用了几种常见的机器学习算法来训练分类模型,包括支持向量机、决策树、Bayes分类器、K最近邻和随机森林算法,并对他们的性能进行评估。

本文使用了上述算法分别构建分类模型并进行交叉验证,将在测试工作中从多个方面讨论他们的性能和表现。

4 测试与评估

本文从收集的1 093台设备中选取了不同硬件设备类型、不同操作系统、不同浏览器平台、以及不同地理位置的设备,提取了他们到11个主流Web站点的图像ping信息。在整个测试过程中,总共收集了超过130万条用户浏览器的图像ping记录。

4.1 分类性能测试

使用节3.4中提到的分类模型对训练集数据分别进行学习训练,并执行十折交叉验证,以更精确地估计每种算法的预测准确性,每种算法最终的准确率如表 2所示。其中K最近邻和随机森林算法的分类准确性最优,均超过90%。K最近邻的分类准确度高达98.5%,而随机森林的分类准确度达到了94.6%。

表 2 统计特征的选取及其含义
算法 分类准确性/%
支持向量机 87.7
决策树 78.5
Bayes分类器 63.5
K最近邻 98.5
随机森林 94.6

ROC曲线(receiver operating characteristic curve)是用来评价学习性能的重要指标,图 4绘制了节3.4中5种学习算法的ROC曲线。由图可知,越靠近左上角的曲线,真阳性率越高,假阳性率越低,误判越少,分类越准确。通常使用ROC曲线与y=x构成的面积,即AUC面积(area under roc curve)衡量分类准确性, AUC面积越大说明分类的效果越好。图中随机森林的分类效果和K最近邻的分类效果最优。

图 4 各分类算法的ROC曲线

4.2 安全性能测试

本节使用PingLoc系统,针对攻击者常用的修改系统参数伪装成其他用户并进行虚假点击的方案进行了测试,包括:使用虚拟机、切换浏览器平台、轮换ip池。

1) 切换浏览器平台。

在浏览器指纹的相关研究中,跨浏览器平台的用户身份认证一直是热点话题。常见的使用基于浏览器指纹技术来检测攻击者身份的方式,例如提取cookies或者canvas指纹,很难做到跨浏览器的身份认证。本文使用PingLoc系统,对攻击者在使用不同浏览器伪装成不同用户的攻击情景进行了测试。

在实验中,模仿攻击者使用了Chrome/FireFox/IE/Edge的浏览器平台,并且使用了不同的版本号和浏览器插件以增加区分度。在本文搜集的524条用户记录中,PingLoc在基于K最近邻的模型的预测准确度高达93.5%,而基于随机森林的模型预测准确度达到了86.1%。

2) 使用虚拟机。

使用虚拟机是另一种攻击者常用的躲避身份验证的攻击手段。在不同的操作系统下,浏览器使用的编码方式不同,硬件驱动加载的处理方式不同,都可能会导致现有的检测方案无法构建正确的用户画像。并且虚拟机可以自由地实现升降配,改变设备的硬件配置,或者在操作系统上安装不同的浏览器平台,增加伪装的用户间的区分度。

本文在VMware上使用了Windows7/Windows10/Ubuntu16.04/Debian7等操作系统,模仿攻击者通过虚拟机修改底层操作系统的方式对PingLoc进行测试,并且尝试了在不同的虚拟硬件配置环境下的检测准确率,例如:给虚拟机分配不同的内存大小和CPU核心数量。在虚拟机设备的众多配置中,本文所述方案最关心的是虚拟机设备的网络配置,由于PingLoc是通过用户设备到目标网站的延时响应来定位用户的,因此网络配置方法可能会对PingLoc系统有较大的影响。在本文中,虚拟机网络设置采用了NAT设置,即地址转换模式。在NAT模式下,VMware会为虚拟机提供一个局域网络,虚拟机系统就相当于使这个局域网络中的一台设备拥有独立的IP地址。

实验共收集了8 245条相关记录,并计算了各种分类模型的分类准确性。其中,PingLoc在基于K最近邻的模型的预测准确率高达80.6%,而基于随机森林的模型预测准确度达到了68.8%。

3) 轮换IP池。

攻击者还有可能通过轮换IP池的方法来增加虚假用户间的区别度,或者攻击者使用了某一个局域网中的数个设备作为攻击机,并从这些设备上登录并伪装成不同的用户设备。这里需要区别的是修改公网IP和私网IP这2种情况。

修改公网IP:修改公网IP会牵扯到目标服务器的回包问题,因为目标服务器是根据请求源地址来发送回包的。为了正确地接收到回包,攻击者设备与接受回包的IP地址上的服务器事先应该已经达成了某种协议,由该代理服务器充当中间人将收到的回包转发给攻击者设备。在这种情况下PingLoc系统是无法检测的,因为实际上与目标网站产生关联的是攻击者所设置的远程代理服务器,无法直接检测攻击者设备,但是这使攻击者的攻击行为变得更加困难并且需要付出更大的代价。

修改私网IP:修改私网IP相对而言更容易实现,攻击者可以在自己控制的局域网中自由分配设备的IP地址。这虽然客观上也改变了设备与目标网站的物理连接状态,但是影响较小。本节所进行的测试均是针对这种情况的,测试该场景下会对PingLoc系统产生多大的干扰。

本文通过DHCP协议不断轮换设备在局域网中的IP,模拟攻击者从局域网的不同位置登录并伪装成不同的用户。轮换使用了192.168.1.100-192.168.1.199的100个局域网地址,并收集了1 048条用户记录。PingLoc在基于KNN模型的预测准确度达到了67.6%,而使用随机森林的模型预测准确度达到了88.2%。

5 结论

本文提出了一种新颖的基于跨域资源访问的浏览器用户追踪方案,可以用于检测点击欺诈源,检测出那些尝试通过修改系统底层参数绕过现有的用户识别机制的攻击者。开发了PingLoc系统基于跨域资源访问在HTTP层上实现了多点图像ping效果,以获取用户浏览器到第三方网站的响应延迟序列,并提取统计特征以训练模型用来区分不同的用户设备。本文采集了全球1 093台用户设备的多点图像ping序列,并获得超过1 300 000个图像ping记录。根据测试结果,发现PingLoc的分类精度高达98%。此外,攻击压力测试表明,PingLoc在浏览器平台切换方面的准确度为93.5%,在虚拟机伪装方面的准确度为80.6%,在IP欺骗方面的准确度为88.2%。

参考文献
[1]
ZHANG X, LIU X J, GUO H. A click fraud detection scheme based on cost sensitive BPNN and ABC in mobile advertising [C]//2018 IEEE 4th International Conference on Computer and Communications (ICCC). Chengdu, China: IEEE, 2018.
[2]
GUO Y, SHI J Z, CAO Z G, et al. Machine learning based cloudbot detection using multi-layer traffic statistics [C]//2019 IEEE 21st International Conference on High Performance Computing and Communications; IEEE 17th International Conference on Smart City; IEEE 5th International Conference on Data Science and Systems (HPCC/SmartCity/DSS). Zhangjiajie, China: IEEE, 2019.
[3]
LAPERDRIX P, AVOINE G, BAUDRY B, et al. Morellian analysis for browsers: Making web authentication stronger with canvas fingerprinting [C]//Proceedings of the 16th International Conference on Detection of Intrusions and Malware, and Vulnerability Assessment. Gothenburg: Springer, 2019: 43-66.
[4]
ACAR G, EUBANK C, ENGLEHARDT S, et al. The web never forgets: Persistent tracking mechanisms in the wild [C]//Proceedings of the 2014 ACM SIGSAC Conference on Computer and Communications Security. Arizona, Scottsdale, USA: Association for Computing Machinery, 2014: 674-689.
[5]
QUEIROZ J S, FEITOSA E L. A web browser fingerprinting method based on the Web audio API[J]. The Computer Journal, 2019, 62(8): 1106-1120.
[6]
ENGLEHARDT S, NARAYANAN A. Online tracking: A 1-million-site measurement and analysis [C]//Proceedings of the 2016 ACM SIGSAC Conference on Computer and Communications Security. Vienna, Austria: Association for Computing Machinery, 2016: 1388-1401.
[7]
ABOUOLLO A, ALMUHAMMADI S. Detecting malicious user accounts using canvas fingerprint [C]//2017 8th International Conference on Information and Communication Systems. Irbid, Jordan: IEEE, 2017.
[8]
ALSWITI W, ALQATAWNA J, AL-SHBOUL B, et al. Users profiling using clickstream data analysis and classification [C]//2016 Cybersecurity and Cyberforensics Conference (CCC). Amman, Jordan: IEEE, 2016: 96-99.
[9]
LI X Y, CUI X, SHI L M, et al. Constructing browser fingerprint tracking chain based on LSTM model [C]//2018 IEEE Third International Conference on Data Science in Cyberspace (DSC). Guangzhou, China: IEEE, 2018: 213-218.
[10]
CAO Y Z, LI S, WIJMANS E. (Cross-)browser fingerprinting via OS and hardware level features [C]//Network and Distributed System Security Symposium. San Diego, USA, 2017.
[11]
CHEN J J, JIANG J, DUAN H X, et al. We still don't have secure cross-domain requests: An empirical study of CORS [C]//27th USENIX Security Symposium (USENIX Security 18). Baltimore, MD: USENIX Association, 2018: 1079-1093.
[12]
MIRSKY Y, KALBO N, ELOVICI Y, et al. Vesper: Using echo analysis to detect man-in-the-middle attacks in LANs[J]. IEEE Transactions on Information Forensics and Security, 2019, 14(6): 1638-1653.
[13]
ABDOU A M, MATRAWY A, VAN OORSCHOT P C. Location verification on the internet: Towards enforcing location-aware access policies over internet clients [C]//2014 IEEE Conference on Communications and Network Security. San Francisco, USA: IEEE, 2014: 175-183.