网页指纹的发展,挑战,最新研究

网页指纹的可行性分析,以及除了Tor以外场景的探讨。

网页指纹的发展,挑战,最新研究

主要参考 针对 Tor 的网页指纹识别研究综述

定义

定义:网页指纹攻击——指从加密被动流量中识别出正在访问的网页,不需要识别出流量负载的内容,比如识别出这是一条访问youtube的流量即可。

网页指纹攻击在实际部署中很难应用,因为其本质上就是加密流量识别,并且由于网页的子页面多种多样,更加大了识别的难度。

在学术研究中,大部分工作只关心能否识别出网页的主页面,也有部分工作声称自己可以识别访问子页面的流量,但是往往都是在封闭数据集。

攻击者的角度:互联网服务提供商、Tor 入口的控制者以及与用户处于同一AP接入点的恶意攻击者。

具体场景:Tor,DOH,TLS1.3+ESNI,Shadowsocks

相似问题:恶意流量识别,APP指纹识别,IoT用户行为

网页指纹直觉的可行性(我的理解)

直觉而言:尽管匿名网络加密了所有敏感信息,通过监听和
分析网络流量仍能判断用户是否访问某个网页.因为构成每个网页的 CSS(cascading style sheets)和 JavaScript 代码、图片、视频、广告等元素不完全相 同,访问过程中产生的网络流量就有区别,例如数据 包的大小、顺序和时间等非敏感信息可以形成网页指纹。

直觉限制:并非所有网站都可识别,比如两个盗版网站都用一键建站工具,那么从网页构成上来并无差别。流量是纷繁复杂的,除了访问网页的流量,还有很多别的类型流量,比如后台流量,下载流量等等,难以保证其中不会出现特征类似的流量,尤其是特征提取不完整的情况下。

是攻击而非工具:网页指纹倾向于对特定用户特定网页进行识别,比如攻击者和受害者在同一AP接入点,针对受害者可能常访问的数个常用网站进行识别。(场景:在同一Wi-Fi下,识别用户是否访问了YouTube)

为什么要加这么多限制?这样才可行呀~

发展

从匹配到分类

02~06:匹配问题,对捕获的 用户流量构造特征生成网页指纹,与已知网页指纹进 行匹配从而判断其归属。

TLS1.1 06年

TLS1.2 08年

TLS1.3 18年

09~现在:分类问题,攻击者首先使用提 前收集的若干目标网页(也称受监视页面)的访问流 量训练分类器,然后输入被捕获的用户访问流量,可 输出分类结果,即判断用户访问了某个受监视页面。

从机器学习到深度学习

典型的公开数据集KDD-Cup99(这个是攻击流量的数据集)

09-14年:数据包的统计信息(如数据包的大小和到达顺序等)

发展并非是直线的,1x年仍有从流量中提取特定字段的方式。

即便近两年也有一些工作是用深度学习提取特征+统计特征来进行识别

从单标签页到多标签页面

单标签事脱离实际的,16年开始的工作开始解决多标签的问题,现有解决思路是把多标签场景转换为多个单标签问题。

假设:在用户使用浏览器时,多个标签页面并非同时打开(即存在时间间隔),找到这个时间间隔并对流量进行分割,就能获得多个单标签访问的流量记录,然后可以对分割好的网页访问流量实施网页指纹识别。解决多标签问题时,多标签判定、流量分割和流量分类的 3 个步骤是作为一个系统性问题来考虑,每一个前置步骤中的误差都会对后续步骤的准确率产生影响。

从网站主页多网站所有页面

很多研究并未提及识别网站主页和子页面的问题,或是默认方法通用,或是默认仅能识别主站。

大部分工作从其数据收集方式可以看出并未针对子页面。

20年用DOH来识别网页的工作有特意提到其可以针对网站的子页面。

从封闭到open1再到open2

封闭:测试集中只包含训练集的流量数据。

open1:测试集中还包含访问训练集中不包含的网站流量。

在 open-world 中,网页指纹识别分为 2 个阶段.第 1 阶段被视作 2 分类问题,即判断一段网页访问流量是否属于普通页面类别.如果是,则判断结束;否则进入第 2 阶段, 对 N 个受监视页面进行多分类处理(相当于 closed-world 问题)

上述过程就是再将问题转换为封闭场景问题。

从16年开始,陆续有很多工作手动在测试集中添加噪声来进行测试,但噪声流量与目标流量的占比也是一个值得关注的问题。

open2是我加的,我认为很多声称自己是open-world的工作仅仅是在实验室模拟的环境,而非真正的开放世界,流量并非只有访问网页的流量。我猜想之所以只用访问其他网页的流量作为干扰,是为了便于描述,使结果可复现,因为干扰流量比如音乐,应用等的流量难以找到一个合适的添加方案。但是这样的开放,是否有考虑访问网页的流量在真实流量中的占比呢?

当下挑战

如何更接近真实世界

  1. 多标签问题
  2. 噪音流量问题
  3. 进一步open world的样本比例问题

可行性

  1. 深度学习的大数据量和网页频繁变动的矛盾
  2. 浏览器版本,操作系统不一样的效果大打折扣
  3. 攻击者距离不同带来的差异

为什么我们常常说网页指纹是实验室的游戏(网页指纹在真实世界的挑战)

  1. 没有厘清网页指纹的边界,它不是一个通用的工具,而是针对隐私的攻击,不能针对所有类型的网站。
  2. 攻击者与受害者的距离问题:同一AP下和骨干网出入口
  3. 网站的流量变化:多久更新一次,需要多少人力物力重建?
  4. 受害者的行为:并非像实验室机器一样只会同时访问一个网站,多网页标签问题,甚至后台流量问题
  5. 如果仅仅识别主站,是否符合攻击者的需求?
  6. 如果仅仅可以用SNI识别(虽然TLS1.3+ESNI可能会解决这一点),那就不需要网页指纹了呀,所以流量识别很多时候应用场景在于Tor,或者恶意流量识别。

总结:网页指纹是一个限制级大,需要大量资源(人力物力时间成本),且收获较小的事(针对隐私而言,还有其他方法)。

可不可行?我觉得,条件限制的情况下,可行。

最新研究

Mockingbird2021:Tor,对抗训练

FlowPrint2020:应用识别,半监督

DFD2020:Tor,攻击防御

TrafficSliver2020:Tor,攻击防御

Shen2021:应用识别,GNN

Sirinam2018:Tor,CNN

Cui2019:Tor,多标签,深度学习

li2018:Tor,测量,攻击防御

Sirinam2019:Tor,深度学习,few-shot

Zhuo2018:Shadowsocks,隐马尔可夫

Chen2021:数据增强,few-shot

Poster2019:Tor,攻击防御

Shen2020:多标签页

Shusterman2018:JS恶意代码,缓存

Bhat2018:Tor,CNN

Dahanayaka2020:CNN,RNN

MIMIQ2020:QUIC,攻击防御,系统

zhang2019:HTTP/2,深度森林,子网页

Shan2021:Tor,实时,防御

Cui2020:CNN,多标签,防御

Tik-Tok2019:Tor,时序特征

Jahani2020:Tor,防御模型

Dong2020:IoT设备识别,LSTM

Xu2018:多标签页,XGBoost

Wang2020:优化器,新评价指标

Siby2019:DOH,“关系”

Bushart2020:DOH,时序特征,子页面

总结

  1. 新协议
  2. 新方法
  3. 防御
  4. 更开放
  5. 子网页

我如果要做

拟解决四个关键问题:防御成本的测量与评估,深度学习方法以及流量模式变动的人力问题多标签问题,实时问题,open-world

真实场景

ISP的角度,通过流量识别网站