1. 引言
在过去的几十年里,万维网从一种学术资源转变为涵盖现代生活各个方面的交流工具。用户通过网络获取和传递信息,监控用户的网页访问情况可能会泄露诸如个人兴趣、工作、经济状况和政治倾向等敏感信息。网站指纹攻击利用统计方法来确定受害者正在访问哪个网站,侵犯用户隐私,给互联网的安全和隐私带来了巨大挑战[1] [2]。网站指纹攻击首先收集用户访问不同网站时产生的数据,然后使用机器学习的方法处理数据,识别用户正在访问的网站。
传统的网站指纹攻击主要采用网络数据包作为元数据,对应的攻击措施和防御措施都较为成熟。然而,最近的网站指纹攻击使用除网络流量外的其他数据源,比如功耗、缓存使用、中断情况以及频率变化等源于计算机侧信道的数据[3]-[6]。尽管这类网站指纹攻击能够取得很高的准确率,由于机器学习的不可解释性,攻击者无法解释这些数据的来源,尤其是数据所利用的侧信道,这给攻击者提升攻击准确性以及防御者对症下药造成了巨大的困难。
2. 网站指纹攻击概述
2.1. 概述
网站指纹攻击利用统计学方法,使用网页浏览过程中暴露的网站指纹特征对用户的浏览隐私进行推测与识别。网站指纹特征简称网站指纹。
网站指纹技术主要分为两大类型。传统型网站指纹攻击,主要是通过分析用户在浏览网页时所产生的数据包特征,这些网络流量特征包括数据包的时间戳、顺序、大小以及传输方向等基础信息。另一种新型网站指纹技术则基于对主机层面的监控或分析,更多地利用本地计算机系统中存在的其他非网络流量的信息,比如功耗、缓存使用、中断情况以及频率变化等源于计算机侧信道的数据[3]-[6]。这两类攻击的主要区别在于,基于网络流量的攻击方法的数据来源是确定的,而利用主机其他数据的攻击方法,尽管攻击成功率可能较高,但往往难以确定产生这些数据背后的具体原因。
如图1所示,一般而言,网站指纹识别包含两个阶段。在训练阶段,首先,识别者获取数据,并从中提取元数据特征,数据可以是用户与网络入口处的流量数据、也可以是其他来自侧信道的数据。其次,识别者利用这些特征数据训练数据模型,以确定必要的参数,完成模型构建;在攻击阶段,识别者在受害者进行网页浏览时再次收集数据,并应用已训练的模型来识别目标网页。
Figure 1. Website fingerprinting attack process
图1. 网站指纹攻击流程
2.2. 网站指纹特征
在网站指纹攻击中,指纹特征是攻击与防御的核心数据对象,通常以向量或数组的形式存在。攻击者通过这些特征训练模型,在攻击中识别用户访问的网页;而防御者则通过注入噪音或混淆指纹特征来干扰识别过程。这些关键特征统称为网站指纹,本文主要聚焦于新兴的基于主机侧信道的网站指纹。
2.2.1. 基于网络流量的网站指纹
基于网络流量的指纹识别技术最早可以追溯到1996年。当时,Wagner和Schneier发现数据包长度特征能够泄露流量信息,窃听者可以通过分析URL请求的长度和Web服务器返回的HTML数据的长度,推测出受害者访问的网页[7]。随后,研究者们进一步分析TCP连接,提取了资源长度特征,并通过统计方法取得了较高的识别率。然而,随着HTTP流水线、持久连接技术以及流量变形(Traffic Morphing) [8]等防御技术的引入,资源长度特征逐渐失效,研究者们开始转向更复杂的包元数据特征,例如数据包的时间分布、大小模式等,以提高指纹识别的效果[9]。
尽管加密协议如SSL/TLS或HTTPS能够加密通信内容,但它们依然面临网站指纹攻击的风险。基于网络流量的指纹攻击并不依赖于解密,而是利用加密流量中可观察的元数据特征,例如数据包大小、方向、时间戳和流量突发模式,来推断用户访问的网站。即使是像Tor这样提供匿名服务的系统,也难以完全隐藏这些特征信息,比如数据包的传输方向和数据包之间的时间间隔。
总而言之,随着隐私增强技术(Privacy Enhancing Technologies, PETs)的发展和更复杂的加密及中继机制的出现,网站指纹识别的难度加大。然而,研究者们通过挖掘更深层次的流量特征,并借助深度学习模型,使得基于网络流量的网站指纹攻击依然保持了较高的准确率。这些特征通过统计和学习算法的组合,成为识别加密通信流量中网站访问行为的有效手段。
2.2.2. 基于主机侧信道的网站指纹
侧信道攻击是一种通过利用计算机系统在运行过程中产生的微架构或物理信息来推测敏感信息的攻击方式。不同于直接读取数据,侧信道攻击通过分析系统泄露的微架构或物理信息,如处理器功耗、执行时间、电磁辐射、声波、缓存行为和中断频率等,间接获取机密数据。这些物理现象可以暴露系统的内部状态,使得攻击者能够推断出诸如加密密钥[10]、用户输入[11]或其他敏感信息[12]。
本文聚焦于新兴的基于主机侧信道的网站指纹攻击,这类攻击代表了网站指纹攻击领域中尚未被充分探索的一种新型攻击向量,为网站指纹攻击提供了除网络流量之外的全新数据源。在这类攻击中,攻击者可以通过在受害者的计算机设备上执行攻击程序并进行监测,收集由本地主机侧信道信息泄露而产生的数据作为特征。最早的此类攻击可追溯到2013年,Clark等人利用硬件形式的功耗侧信道在Mac、Windows和Linux三种操作平台上对Chrome浏览器成功实施了网站指纹攻击[13]。大多数此类攻击利用本地计算机系统中存在的其他非网络流量的信息,比如功耗、缓存使用、中断情况以及频率变化等源于计算机侧信道的数据特征。
(一) 基于缓存侧信道的网站指纹
Shusterman等人[14]提出了基于缓存侧信道的网站指纹攻击。该攻击基于以下观察:受害者访问内存时,其无意间驱逐的缓存行数量与其访问的不同地址数量成正比。作者通过多次测量访问大型地址区域的时间,捕捉不同网站导致的缓存占用情况,演示了一种能够识别Alexa Top 100网站的指纹攻击,准确率达到94.8 ± 0.5%。访问不同的网站会导致不同的内存访问情况,该攻击的指纹特征由每一段时间内访问大型地址区域的次数组成。
(二) 基于中断侧信道的网站指纹
Cook等[15]使用中断作为数据源。他们提出,Shusterman等[14]提出的攻击中的元数据测量了处理中断所花费的时间,而不是缓存活动。为了证明这一点,他们首先从测量程序中删除了内存访问操作,使攻击代码只测量自增循环迭代次数。然后,他们证明了用这种元数据构建的网站指纹攻击仍能达到很高的精度。访问不同的网站会触发不同种类和数量的中断,从而导致CPU花费不同的时间处理中断,影响攻击者进程的执行时间和次数,该攻击的指纹特征由每一段时间内自增循环迭代的次数组成。
Zhang等[16]利用最近Intel新引入的umwait指令来进行网站指纹攻击。umwait指令会使内核进入空闲状态以节省功耗,并等待对由monitor指令指定的被监控地址范围内写入。当对监控地址进行写入、umwait指令时间耗尽或发生系统中断时,内核才会被唤醒。作者利用这一行为,通过统计mwait指令的次数来测量十毫秒窗口内的中断次数,而从实施攻击。该攻击的指纹特征由每一段时间内执行mwait指令的次数组成。
(三) 基于功耗侧信道的网站指纹
运行平均功率限制(Running Average Power Limit, RAPL)接口允许普通用户直接读取多个系统域的功耗数据,包括整个处理器插槽(Package, PKG)、处理器内核(Processor Core, PP0)、集成图形处理器(Integrated Graphics, PP1)和系统内存(Dynamic Random-Access Memory, DRAM)的功耗[17] [18]。访问不同的网站会导致不同的功耗模式,Zhang等[5]通过每500微秒读取一次某个域(如核心域)的功耗值,并将每500微秒内的功耗变化量作为指纹特征。该研究使用k近邻(k-Nearest Neighbors, kNN)算法对37个网站进行分类,最终取得了91.0 ± 0.6%的识别准确率。
Cpufreq接口允许非特权访问,用户通过该接口可实时读取与系统利用率直接相关的CPU内核频率值,从而为攻击者创建了可靠的侧信道。Dipta等[4]通过cpufreq接口每十毫秒读取一次系统频率,使用CNN,SVM,KNN和RF这四种机器学习模型,针对100个网站,在Chrome 浏览器上实现了最高97.6%的识别准确率,在Tor浏览器上实现了73.7%的准确率。该攻击的指纹特征由每十毫秒的系统频率组成。
2.3. 威胁模型
威胁模型描绘了攻击者在进行网站指纹攻击时对攻击场景、涉及的网页、用户行为、自身所具备的先验知识的假设,同时还明确了攻击者的识别能力、意图识别的网页场景及数量,并且,攻击者或识别者的位置与数据来源也是该模型的关键组成部分。此外,建立由简单到复杂的假设有助于研究人员探索和利用关键特征。
(一) 攻击场景
网站指纹攻击常用的攻击场景为开放世界和封闭世界场景。在封闭世界中,攻击者选择一组受监督的网站。常用的网站列表为Alexa Top 100,Alexa网站由亚马逊提供支持,按照每日访问量对各个网站进行排名。攻击者假设受害者不会访问受监督网站以外的网站。当受害者访问网站时,攻击者就尝试去识别这个网站,并将其归类为某个受监督的网站。此时,网站指纹攻击为一个多分类的分类问题。封闭世界模型是一种难度较低的,处于相对理想情况下的假设,可以用于验证网站指纹攻击方法的可行性。
在开放世界的模型中,攻击者选择一组受监督的网站。当受害者访问一个被监督的网站时,攻击者就尝试去识别这个网站,并将其归类为某个受监督的网站。而当攻击者访问的网站不包括在这一组受监督的网站中时,攻击者就将其归类为不受监控的类别。开放世界模型允许攻击者在训练集中包括一些不受监控的具有代表性的网页,从而提高识别准确性。在这种情况下,攻击可以被视为一个二分类问题,或者更复杂的多分类问题,涉及如何在已知和未知之间进行有效区分。开放世界模型更接近于真实世界。
(二) 其他假设
常用的假设包括,观察者可以复刻用户的网络环境、浏览器配置等环境。对于基于主机侧信道数据源的攻击,观察者有时还需要具备复刻用户的硬件环境的能力;观察者能识别网页加载的开始和结束,且网页是按顺序加载的,加载完一个网站再进行下一个网站的加载,因此观察者可以提取每个网站访问的完整数据;假设用户访问的是网站主页;假设同一网站在不同时间可用同一模型识别;此外,还有两种关于用户行为的假设。单标签访问指用户一次只访问一个网页。多标签访问指用户按顺序打开多个网页,下一个网页在前一个网页加载一定时间后打开。
(三) 基于网络流量的典型威胁模型
Figure 2. The classical website fingerprinting threat model. The adversary monitors the traffic between the target user and the secure network
图2. 经典的网站指纹威胁模型,攻击者监视目标用户和安全网络之间的流量
经典的网站指纹威胁模型如图2所示。在这个模型中,目标用户使用网页浏览器访问一个敏感网站。为了保护隐私,用户通常不会直接连接到该网站,而是通过像Tor网络这样的安全网络进行连接。攻击者通常被建模为一个路径上的对手(on-path adversary),能够观察到所有进出Tor网络并指向目标用户的网络流量。具体来说,当用户通过浏览器访问网页时,数据包会通过互联网服务提供商(ISP)和网络基础设施进行传输。攻击者可能是用户的ISP、网络中的路由器、Wi-Fi热点提供者,或其他能够截获用户与服务器通信的实体,他们可以在通信链路中的任何位置观察到加密数据包的流动。
由于进入Tor网络的流量是加密的,攻击者无法理解其内容。同时,由于Tor的路由协议,攻击者也无法直接确定通信的最终目的地。经典的网站指纹攻击研究的一个重要方向是调查攻击者对加密流量进行统计流量分析的能力,然后对用户的通信进行概率推断[19]。
(三) 基于主机侧信道的典型威胁模型
基于主机侧信道的网站指纹威胁模型如图3所示,在这个模型中,目标计算机上有两个并发的进程。在受害者进程中,用户访问了一些敏感网站。由于存在架构边界,比如沙盒或进程隔离,恶意代码无法直接观察到受害者进程的内部状态,因此,即使受害者进程与远程服务器之间进行的是直接且未加密的连接,攻击者也无法直接确定敏感会话的通信目的地。然而,和受害者进程处于同一目标计算机的攻击者进程可以观察到处理器的侧信道信息,并利用这些信息来监视受害者对于敏感网站的访问[14]。
Figure 3. Website fingerprinting threat model based on host side channel, the attacker process and the victim’s browser process run on the same target machine
图3. 基于主机侧信道的网站指纹威胁模型,攻击者进程和受害者的浏览器进程在同一台目标机器上运行
此类攻击通常假设攻击者具有在受害者计算机设备上执行恶意程序的能力,但并不假设攻击者拥有任何特权。攻击者可以通过本地直接执行恶意程序,也可能通过网络钓鱼等方式诱导用户访问攻击者控制的网站,这类网站可能包含攻击者恶意植入的JavaScript代码。攻击者获得这些能力的途径可以包括网络钓鱼攻击、浏览器漏洞利用、软件供应链攻击、第三方插件或扩展程序的利用,或通过受感染的文件或应用程序传播恶意代码。这些具体的能力获取方式并不在本文讨论范围之内。
2.4. 分类方法
网站指纹攻击使用不同的分类器对特征指纹进行识别,以求在不同的场景、网页和用户行为假设和威胁模型中达到良好的分类准确率,其使用的分类方法从相似度判定逐渐过渡到以深度学习为代表的机器学习方法。
(一) 相似度判别法
相似度判别法计算测试指纹与各个监控网站指纹之间的相似度,并设定阈值对相似度进行比较,从而决定测试指纹的类别(所属网站)。此类方法包括雅卡尔系数[20]、特征匹配[21]、余弦相似度[22]、编辑距离[23]、互相关系数[24]、汉明距离[25]等,分析包括请求资源、TCP/IP数据包等对象,选取的特征包括网络对象大小、数量和数据包数量、大小,时间长度和大小等,这些方法仅针对特定特征有效、抗干扰能力弱、识别准确率较低。
(二) 机器学习方法
机器学习算法是一类能够从数据中自动学习并改进的算法,它通过挖掘数据中的模式与规律,使计算机系统能够在不进行明确编程的情况下做出预测或决策。这些算法广泛应用于图像识别、语音识别、推荐系统等多个领域,也大量用于网站指纹攻击。
攻击者们采用朴素贝叶斯[26],支持向量机[27],最近邻居算法[5],随机森林算法(Random Forest, RF) [28],隐马尔可夫模型(Hidden Markov Model, HMM) [29]等传统机器学习算法实施了网站指纹攻击,采用的特征包括数据包大小、数量、顺序、方向和负载、Burst相关数量、数据,和Tor浏览器中Cell的方向、数量、序列特征等,在封闭世界和开放世界均取得了很好的效果。
随着机器学习技术的发展,卷积神经网络(Convolutional Neural Networks, CNN) [30]-[33]和循环神经网络(Recurrent Neural Network, RNN)等深度学习网络(Deep Neural network, DNN) [34]也被广泛运用于网站识别中[21],其中,长短时记忆网络(Long Short-Term Memory Networks, LSTM) [14] [15]在网站指纹攻击,尤其是基于其他数据源的攻击中十分常用,取得了较高的准确性。此外,Transformer也被用于进行多标签分类[35]。
2.5. 评价指标
封闭世界和开放世界的场景具有不同的评价指标。在封闭世界场景中,通常使用准确率(Accuracy)作为主要评价指标,等同于召回率(Recall)或真阳率(True Positive Rate, TPR)。公式(1)中给出了其定义,其中,TP代表正确检测为正类的样本数,即实际为正类且被正确分类的样本数量;FN代表错误检测为负类的样本数,即实际为正类但被错误分类为负类的样本数量。
(1)
在开放世界场景中,评价指标更加多样化,通常包括精度(Precision)、贝叶斯检测率(Bayesian Detection Rate, BDR)、召回率、准确率和F1值等。在实际研究中,精度–召回率曲线(P-R曲线)常用于直观对比不同分类器的性能。理论上,精度与召回率同时达到1是理想情况,但在实际应用中,往往需要在两者之间做出权衡。F1值(F1-Score)则是精度与召回率的加权调和平均值,是信息检索领域常用的评价标准,常用于评估分类模型的性能。
无论是在封闭世界场景还是开放世界场景中,由于网站内容不断变化,网站指纹攻击的准确性会随着时间推移而下降。因此,使用过时数据训练的模型在对新采样的数据进行分类时的准确率同样是需要重点考量的指标之一。为评估网站指纹攻击应对时间漂移的能力,Shusterman等[14]进行了一项实验,在采样36天后,使用旧数据训练的模型对最新收集的网页进行分类,以此衡量攻击模型在面对时间漂移时的表现。
2.6. 防御研究
网站指纹攻击的防御目的是阻止攻击者正确判断收集到的指纹属于哪个网站。为了达到这个目的,基于网络流量的防御者通过发送虚拟数据包或延迟数据包来混淆流量模式,这会带来带宽开销和延迟开销。此外,针对基于网络流量的网站指纹攻击的防御需要网络通信中多参与方协同,包括用户(客户端)、防御代理节点(防御客户端与防御服务器)及网站服务器。上行数据包防御主要由客户端或防御客户端执行,下行则由服务器或防御服务器负责。单侧防御会导致数据包保护不全,影响整体效果,因此需双侧部署并协作。
基于主机侧信道的网站指纹攻击防御措施主要侧重于缓解特定侧信道的潜在信息泄露。具体来说,Shusterman等[14]提出了通过反复驱逐最后一级缓存(LLC)来缓解利用缓存侧信道进行的网站指纹攻击的对策。他们的方法是分配一个与缓存大小相当的内存区域,并不断循环访问每一个缓存行,从而使攻击者无法通过缓存侧信道获取有用的信息。该方法不仅可以应用于浏览器层面,还可以整合到操作系统中。另一种有效的措施是通过对不同的浏览器进程进行缓存分区或着色(Cache Partitioning and Coloring),进一步限制不同进程间的缓存干扰,以此增加攻击的难度。
此外,Cook等[15]提出了一种基于中断的防御策略。该策略通过在随机时间间隔内调度成千上万次活动突发和网络请求,产生大量的中断,从而干扰攻击者对中断侧信道的利用。他们将该方法实现为Chrome浏览器的一个扩展程序,在浏览器运行时主动增加噪声,使攻击者难以通过观测中断行为进行有效的推测。
除了这些具体的侧信道缓解方法,降低系统或浏览器中计时器的分辨率也是一种常见的防御手段。通过减少计时器的精度,能够模糊化攻击者可获取的时间信息,使其难以通过高精度的时间测量进行精确推断[14] [15]。这种技术可以直接限制侧信道泄漏的分辨率,从而进一步减少攻击的有效性。
针对基于主机侧信道的网站指纹攻击的防御面临两个问题,一是数据源的不确定性,如何找到某种指纹特征背后对应的根本原因,对症下药,问题二是如何挖掘其他可以被用于网站指纹攻击的数据源,避免攻击者绕开已经部署的防御措施。
3. 讨论
本节探讨了传统基于网络流量的网站指纹攻击和新兴基于主机侧信道的网站指纹攻击的异同。两者在攻击目标、分类方法和评价标准上大致相同,但在指纹特征、威胁模型和防御措施方面则有明显差异。
(一) 网站指纹特征
传统的网站指纹攻击主要依赖用户在浏览网页时生成的数据包信息,分析的网络流量特征包括数据包的时间戳、顺序、大小和传输方向等。相比之下,基于主机侧信道的攻击不依赖网络流量,而是利用计算机系统中的功耗、缓存使用率、中断频率以及频率切换等侧信道泄露的数据作为特征。
(二) 威胁模型
传统的网站指纹攻击和新型的侧信道攻击在攻击者的假设方面,尤其是攻击者的位置上有所不同。对于传统的基于网络流量的指纹攻击,攻击者通常被认为位于用户与服务器之间的通信路径上。当用户通过浏览器访问网页时,数据包会通过互联网服务提供商(ISP)和网络基础设施进行传输。攻击者可能是用户的ISP、网络中的路由器、Wi-Fi热点提供者,或其他能够截获用户与服务器通信的实体,他们可以在通信链路中的任何位置观察到加密数据包的流动。
相比之下,基于主机侧信道的指纹攻击则假设攻击者可以在受害者设备上运行恶意代码或并发进程,借此获取计算机上的侧信道信息。这些信息包括缓存使用情况、功耗变化等,而不是通过网络流量进行分析。
(三) 防御研究
针对传统网络流量指纹攻击的防御措施通常集中于干扰数据包的特征,比如通过发送虚拟数据包或延迟数据包来扰乱流量模式,同时需要多方协同以确保完整的防御。而对于基于主机侧信道的攻击,防御主要集中在减少或掩盖侧信道泄露的来源,涉及系统安全和底层硬件的保护。
(四) 总结
新式的基于主机侧信道的攻击不仅拓宽了网站指纹攻击的场景,还增加了可利用的指纹特征的多样性。许多网站采用内容管理系统(CMS),其页面布局较为固定,只有部分资源随时间变化,因此部分基于侧信道的攻击模型在面对网站内容变化时表现得更具适应性和长效性[14]。然而,这类攻击的场景假设通常过于简单且理想化,目前仍主要用于研究探索关键特征是否可以被利用的阶段,尚未广泛应用于现实攻击。
4. 未来研究方向
网站指纹攻击给网络空间安全带来了巨大威胁,随着深度学习等机器学习算法的发展,网站指纹攻击的识别精确度更高,此外,基于主机侧信道数据的新式网站指纹攻击给防御者带来了新的挑战。本文从网站指纹攻击的流程开始,介绍了攻击的威胁模型、指纹特征和分类方法、评价指标等。传统的基于网络流量的网站指纹攻击已经得到广泛研究,而基于主机侧信道的网站指纹攻击刚刚处于萌芽阶段,仍然存在较多的挑战和必须解决的问题,主要包括以下方面:
(一) 确定攻击机理
在过去的二十年里,通过共享计算资源泄露信息的侧信道攻击已成为计算机系统安全的一大威胁。这些攻击泄露了诸如加密密钥、地址空间布局信息、专有硬件设计、击键及其时序、网站浏览记录、猜测执行期间访问的数据,以及其他私密信息[36]-[41]。
虽然大多数此类攻击针对特定侧信道部件,如缓存、分支预测器、TLB、共享总线、执行单元或GPU等[39] [42],但仍有大量攻击从对系统性能的粗粒度测量中提取泄露信息,如基于主机侧信道的网站指纹。此类攻击可以在不完全控制或甚至不完全理解系统微架构的情况下进行。
这些新式的基于主机侧信道的网站指纹攻击取得了良好的网站识别效果。但其数据源通常都受到多种微架构侧信道的影响。虽然大多数的攻击都声称可以确定泄露的原因,但是这些说法并不总能得到很好的证明。迄今为止,如何确定侧信道泄漏源依然没有答案,这给攻击者进一步提升攻击效果以及防御者对症下药部署防御措施带来了巨大挑战。
已有研究尝试揭示这类攻击的深层原因。Gülmezoglu [43]的工作尝试将受害者行为与侧信道信息泄露联系起来,但它并未揭示侧信道泄露信息和攻击者收集到的信息之间的关系。相比之下,Ge等[44]和Cook等[15]的工作确实提供了侧信道泄露信息如何影响攻击的见解,但他们无法完全控制这些侧信道泄露。基于主机的网站指纹攻击的真正原因仍待发掘。
(二) 探索更具威胁性的攻击方式
针对基于主机侧信道攻击的网站指纹攻击研究尚不充分,依然有很多潜在的侧信道泄漏源尚待挖掘。此外,除了发掘新的功耗侧信道外,未来研究还将探讨将传统基于网络流量分析的网站指纹攻击与基于主机侧信道的攻击相结合的可能性。这种跨层次、多维度的攻击方式有望突破现有防御机制的局限性,提出更具威胁且难以检测和防御的攻击策略,从而为开发更加稳健的安全防护措施提供指导。
针对网站指纹攻击的未来发展方向,攻击者需要部署更符合现实世界攻击场景的效果更好的攻击。防御者不光需要研究现有的攻击,还需要挖掘潜在的攻击渠道,实现较为全面的防御。