Skip to content

Instantly share code, notes, and snippets.

@klzgrad
Last active March 17, 2024 09:49
Show Gist options
  • Star 51 You must be signed in to star a gist
  • Fork 12 You must be signed in to fork a gist
  • Save klzgrad/73a6365c895e02d0e5d879cad1ffb691 to your computer and use it in GitHub Desktop.
Save klzgrad/73a6365c895e02d0e5d879cad1ffb691 to your computer and use it in GitHub Desktop.
流量分类调研

为什么流量可以进行分类

这里的“流量”一般定义为中间人观测到的一组由(时间,方向,包大小)元数据组成的序列 [Cai2014]。其源头是应用层的读写操作,经过传输层协议的变换(分片、协议状态机、加密等),流量序列产生一定变化。但是这种变化非常有限,因为流量的发生过程本质是确定性的,随机因素较小,因此对于特定环境中的特定应用(浏览器访问 google.com)各种流量特征体现出相当大的一致性和独特性,这就使“从流量特征识别应用”的监督学习问题成为可能。虽然有若干不利因素使得确定性下降,例如多层次上软件多版本的排列组合爆炸、有状态的缓存、流水线和连接复用、用户随机行为,但是因为版本的幂律分布、应用层读写操作间的依赖关系、流量特征和检测算法的改进等原因,分类依然具有相当的可行性。

分类的对象:流量应用分类与网站指纹攻击

根据分类的对象产生了两个相近但是不同的研究领域。从流量特征中分类应用类型的被称为流量分类(traffic classification),从流量特征中分类所访问网站或者网页的被称为网站指纹(website fingerprinting)。以机器学习的方法而论前者是比后者更弱但本质相同的一个问题。

这两类攻击的威胁类型不同。流量分类威胁的是可用性,如果GFW检出流量是隧道应用然后进行封锁,则破坏了可用性。而网站指纹威胁的是匿名性和隐私,如果从隐秘流量中检出是谁在访问哪个网站,则破坏了匿名性,丝绸之路就是这样被FBI破获的。

Tor因为特别关注匿名性,对网站指纹攻击做了大量防御工作,但基本不关心流量应用分类问题。翻墙任务的威胁模型不同,翻墙关心的是可用性,Tor的经验不直接适用。但由于Tor是解决一个本质相同但是更强的问题,也有很大的借鉴意义。下面会对这两个问题一并讨论不加区分。

流量特征的工程

把原始数据做一些加工,提取出各种花哨特征,然后代入各种分类器算法,加入各种花哨技巧,提高性能数字。这就是迄今为止流量分类领域的方法,基本上按照标准的机器学习流程走了一遍,现在已经走到了深度学习的尽头 [Rimmer2017]。

这些方法都是端到端的监督学习流水线,但流量特征是不是真的可以分类,是否具有可以分类的本质,还无法回答。不像其他机器感知学科对数据的发生过程有长期、本质的研究,流量分析对流量数据的起源、变换方式、不变性、概率模型等都还缺乏基本的理解。最近有一些对流量特征进行非监督学习的尝试,试图刻画特征空间的性质,不过进展都很有限。

网站指纹的基本率问题

机器学习的网站指纹攻击在学术领域取得了巨大成功,往往能获得99%的检测率和1%的误报率。但是Tor的开发者对其可行性提出强烈质疑 [Perry2013],主要理由是学术研究未能充分考虑基本比率谬误,1%的误报率看似很小,但是由于类别的先验概率极不平衡,在实践中1%的误报率是不可接受的巨大。另外一个理由是实验环境的分类器训练总是有限的数据,而实际情况是开放世界中无限的数据,训练出来的分类器是否能从实验室环境推广到开放世界?

这个问题目前学术界还没有人有确切答案,即使是最近的研究中观点也是矛盾的。[Wang2016] 认为通过方法的改进网站指纹攻击在开放世界环境中依然可行,而 [Panchenko2016] 认为所有现有网站指纹方法都无法可靠地推广到开放世界(不过依然可以提供一定识别信息)。不过 [Panchenko2017] 提出先进行流量分类、再检测网站指纹,通过流量分类将网站指纹的数据空间控制在有限范围,从而避免推广性问题。他们发现如果只处理流量分类,训练出的分类器具有相当强的推广性。我认为这也说明流量分类的确是比网站指纹更弱的一个分类问题。

性能问题

有观点认为统计方法流量分类的性能无法处理国家级流量。我们可以进行一些简单的数量级估计。[Tang2010] 在中科院的CSTNET进行了实验,4台主机即可对10G骨干网络80,000流/秒的流量进行实时处理。思科Stealthwatch的开发者 [McGrew2016] 开发的加密流量分类器可在Xeon E7-2870s十六核的主机上达到116,632流/秒的性能。还可以运用其他粗粒度的方法前置减少处理范围,例如利用图分析的主机行为分类,先在主机层面减小检测范围。

流量混淆的方法

怎样才能避免流量被检测?基本上都是以改变流量特征而误导分类器为思路,一般有这几类方式:填充,改变包的大小;变形,把包大小的分布拟合成另外一种应用;模仿,试图让分类器误认成错误的协议。

不过这些方法无一例外在理论上都已经被反制,一个更详细的综述可以看 [Dixon2016]。简单说,对于填充,这种方法无法消除足够多信息,反而产生新的特征,特别是进行随机填充的方法(ScrambleSuit,obf4,ShadowsocksR)会受到基于信息熵的攻击 [Wang2015]。而流量变形仅仅对包大小分布做了改变,但是包大小分布并不是进行分类的唯一信息 [Dyer2012]。而模仿其他应用层协议的(SkypeMorph,FTE)往往因为无法完美模仿而产生显著特征 [Houmansadr2013]。

不过这些对流量混淆方法的反制措施是否真的那么有效也存在跟前面基本率问题一样的争议。但是这些研究都是针对网站指纹的,对于翻墙关心的流量分类问题,因为问题相对弱很多进行流量混淆则更加困难。中科院计算所的研究认为混淆包长这类措施对于基本的流量分类影响很有限,因为仅仅是包的方向就已经带有相当多的信息 [Qu2012]。(另外要说明一点,前面引用的网站指纹研究都考虑了与流量混淆的对抗。)

另外我想特别一提根据协议语义对流量的直接识别。Tor从2012年开始发现主动嗅探的情况,原因是Tor的TLS协议参数十分独特,被直接检测出来 [Ensafi2015]。TLS虽然也是一种传输层协议,但是其协议状态机要比TCP复杂许多,因此协议指纹也就独特许多。具体有多独特,思科的研究者有直观的数据展示,见本文附件图1、2 [Anderson2016]、图3 [Anderson2017]。

流量混淆方法有效性的实证与衡量

有这么多种理论上的流量混淆方法,到底哪种有用,我们要实现哪种方法,这是一个问题。如果以实证研究的方式,要确定流量与IP封锁之间的因果关系,则需要重现特定流量的检测事件:首先在服务器记录流量元数据,然后当IP封锁事件发生后去重放流量,如果可以触发新的IP封锁则确定流量检测的存在,如果没有触发则无法确定。然而这种实证过程代价很高,每单次实验成功后都需要购买新的IP。如果是理论对抗的方式,自行构造特征,训练分类器,然后得到性能指标。这样的问题在于如果想要性能指标有普遍意义,又需要收集大量数据,同样花费很大。

由于根本无法证伪,所以现在的状况是,既不知道是否存在流量检测,也不知道流量检测算法有多有效,也不知道流量混淆方法有多有效,什么都不知道,能做的只有进行理论猜想。当然,一些基本的比较关系还是成立的,比如有混淆比没有混淆更难识别,以及我们已经看见成熟的流量分类商业产品(思科Stealthwatch)。

对此一种想法是对流量特征、流量变换的本质属性进行研究,从而能直接衡量流量混淆方法的强度。[Li2017] 提出一种信息论测度来刻画不同的流量混淆方法的理论信息泄漏程度。我觉得这是一个很好的方向。

参考

  • Anderson, Blake, Subharthi Paul, and David McGrew. "Deciphering Malware's use of TLS (without Decryption)." arXiv preprint arXiv:1607.01639 (2016).
  • Anderson, Blake, and David McGrew. "OS Fingerprinting: New Techniques and a Study of Information Gain and Obfuscation." arXiv preprint arXiv:1706.08003 (2017).
  • Cai, Xiang, et al. "A systematic approach to developing and evaluating website fingerprinting defenses." Proceedings of the 2014 ACM SIGSAC Conference on Computer and Communications Security. ACM, 2014.
  • Dixon, Lucas, Thomas Ristenpart, and Thomas Shrimpton. "Network Traffic Obfuscation and Automated Internet Censorship." IEEE Security & Privacy 14.6 (2016): 43-53.
  • Dyer, Kevin P., et al. "Peek-a-boo, i still see you: Why efficient traffic analysis countermeasures fail." Security and Privacy (SP), 2012 IEEE Symposium on. IEEE, 2012.
  • Ensafi, Roya, et al. "Examining how the Great Firewall discovers hidden circumvention servers." Proceedings of the 2015 ACM Conference on Internet Measurement Conference. ACM, 2015.
  • Houmansadr, Amir, Chad Brubaker, and Vitaly Shmatikov. "The parrot is dead: Observing unobservable network communications." Security and Privacy (SP), 2013 IEEE Symposium on. IEEE, 2013.
  • Li, Shuai, Huajun Guo, and Nicholas Hopper. "Measuring Information Leakage in Website Fingerprinting Attacks." arXiv preprint arXiv:1710.06080 (2017).
  • McGrew, David, and Blake Anderson. "Enhanced telemetry for encrypted threat analytics." Network Protocols (ICNP), 2016 IEEE 24th International Conference on. IEEE, 2016.
  • Panchenko, Andriy, et al. "Website Fingerprinting at Internet Scale." NDSS. 2016.
  • Panchenko, Andriy, et al. "Analysis of Fingerprinting Techniques for Tor Hidden Services." Proceedings of the 24th ACM Computer and Communications Security (ACM CCS) 16th Workshop on Privacy in the Electronic Society (ACM WPES 2017). 2017.
  • Perry, Mike. “A Critique of Website Traffic Fingerprinting Attacks.” Tor project Blog (2013).
  • Qu, Buyun, et al. "An empirical study of morphing on network traffic classification." Communications and Networking in China (CHINACOM), 2012 7th International ICST Conference on. IEEE, 2012.
  • Rimmer, Vera, et al. "Automated Feature Extraction for Website Fingerprinting through Deep Learning." arXiv preprint arXiv:1708.06376 (2017).
  • Tang, Haina, et al. "High performance & real-time traffic analysis in large scale networks." Educational and Information Technology (ICEIT), 2010 International Conference on. Vol. 3. IEEE, 2010.
  • Wang, Liang, et al. "Seeing through network-protocol obfuscation." Proceedings of the 22nd ACM SIGSAC Conference on Computer and Communications Security. ACM, 2015.
  • Wang, Tao, and Ian Goldberg. "On realistically attacking Tor with website fingerprinting." Proceedings on Privacy Enhancing Technologies 2016.4 (2016): 21-36.
@cissusnar
Copy link

大神你是谁, 哈哈

@mashoushan1989
Copy link

大神你是谁, 哈哈

大神应该是做科研的

@Loyalsoldier
Copy link

Recently I saw a PPT about this. It's a presentation on ISC 2019 by Xiong Gang.
《【ISC 2019】-网络攻防与响应论坛-加密数据流量测量与行为分析-信工所熊刚.pdf》

File can be downloaded here: https://b2f9b4.link.yunpan.360.cn/lk/surl_y3GHPDQPMmB

@EmailToXjk
Copy link

流量分类、网站指纹和网页指纹就是分类粒度上有所不同,

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment