CSUR‘21综述:A Survey on Encrypted Network Traffic Analysis Applications, Techniques, and Countermeasur

论文题目:A Survey on Encrypted Network Traffic Analysis Applications, Techniques, and Countermeasures

中文题目:加密网络流量分析应用、技术和对策概览

发表会议:ACM Computing Surveys 2021

摘要

网络流量加密的应用正在持续增长。流行的应用程序使用加密协议来确保通信安全和保护用户隐私。此外,大量恶意软件通过网络流量传播,利用加密协议隐藏其存在和活动。进入互联网上完全加密通信的时代,我们必须迅速开始回顾网络流量分析和检测这一广泛领域的最新进展,以断定传统的流量处理系统是否能够无缝地适应即将全面采用的网络加密。在这份调查报告中,我们研究了通信信道加密后网络流量分析和检测的相关文献。我们注意到,研究界已经开始就如何在网络流量加密的情况下执行检测提出解决方案,我们对这些作品进行了演示和评述。此外,我们还介绍了这些工作所使用的技术和方法及其局限性。最后,我们研究了文献中提出的应对措施,以规避旨在损害用户隐私的流量分析技术。

1 介绍

图 1 显示了我们为本次调查所研究的作品提出的分类法。首先,我们根据用例和应用目标对作品进行了划分。更具体地说,我们将作品分为四个应用领域:(i) 网络分析领域,(ii) 网络安全领域,(iii) 用户隐私领域,以及 (iv) 中间件中的网络功能领域。然后,我们可以根据所使用的技术(即操纵流量元数据和特征、拦截加密流量和利用加密功能)及其主要目标(即功能性、可编程性和部署)来描述每项工作。

2 网络流量处理和检查

这一章介绍经典网络流量处理和检测技术,并明确加密带来的挑战。

异常检测是一种适用于各种领域(如网络入侵检测)的技术,旨在识别异常或可疑的活动和行为。基于异常检测的方法可估算出 “正常网络活动 ”的模型,并根据所学模型评估网络上未来活动的概率。通过这种方法,可以将典型的、潜在的恶意网络活动与良性网络活动区分开来。这种分类基于某些启发式方法或规则,旨在检测滥用或异常行为。具体来说,要让基于异常的入侵检测系统积极识别可疑流量,就必须教会系统识别正常的系统活动 。例如,有许多基于流量的检测技术。这些技术监控网络的流量负载,以识别引发显著流量变化的异常情况(如洪水攻击)。基于特征的异常检测旨在通过检查一系列网络流量特征来弥补基于流量的系统的不足。大多数异常检测系统的两个阶段包括训练阶段(构建正常行为的轮廓)和测试阶段(将当前流量与训练阶段创建的模型进行比较)。异常检测大多使用机器学习或深度学习技术。然而,异常检测通常存在以下问题:(i) 假阳性率高;(ii) 难以获得可靠的训练数据;(iii) 训练数据的持久性和系统的行为动态。

Shone 等人得出结论,现代网络的动态特性,如不断增长的流量速度、流量和多样性,在创建全面、广泛的异常检测解决方案时不可避免地存在不足。事实上,在当今的连接中,不同协议的数量和数据的多样性增加了试图区分正常和异常行为的难度和复杂程度,增加了建立准确规范的难度,扩大了潜在利用或零日攻击的范围。虽然基于异常的检测技术在网络安全领域非常有效,但基于签名的技术能够处理和检查更广泛的应用领域。

基于签名的网络检测是流量分类和特征描述的另一种技术,大多使用 DPI 技术进行。DPI 是许多网络系统的核心组件,如流量监控器、分类器、数据包过滤器、网络入侵检测和防御系统。网络组件在 OSI 模型的不同层中使用 DPI。与数据包检查早期不同的是,当时的 DPI 仅应用于数据包头部(如代理和防火墙),而如今,协议的复杂性和混淆性促使我们检查所有封装层的数据包内容。事实上,政府、互联网和通信服务提供商(ISP/CSP)以及其他组织都非常依赖 DPI 系统来进行准确的流量监控和特征描述。使用 DPI 可以识别不同风格的内容,并相应地对其进行分流,从而提高服务质量(QoS)。同样,通过检查传入数据包的内容,可以识别和检查可疑和恶意流量。在网络安全领域,当安全软件开发人员事先知道类似的攻击时,基于签名的网络检测技术就会非常有效。

如前所述,DPI 是网络安全、分析等领域典型应用的核心程序。对复杂流量检测的要求,以及网络速度的不断提高,促使大量工作不断提出新颖的 DPI 方法。过去几十年来,网络入侵检测系统已成为网络管理员和安全专家手中非常强大的工具,可协助检测和预防各种攻击。Snort和 Suricata等流行的网络入侵检测系统(NIDS)解决方案利用模式匹配和正则表达式来分析网络流量,而 Zeek/Bro则利用脚本更容易实现自动化。研究界还致力于利用商品硬件(如图形处理器 (GPU)和并行节点)或专用硬件(如三元内容可寻址存储器 (TCAM)、专用集成电路 (ASIC) 和现场可编程门阵列 (FPGA))提高 NIDS 的性能。不过,这些方法都只能处理未加密的网络流量,因为它们能从网络数据包有效载荷内容中提取有意义的信息。

流量分类和网络分析是中央网络流量入口点以及终端主机计算机的重要 QoS 组件。为了准确识别进入的流量,应进行细粒度分析,同时检查数据包头和有效载荷。大多数流量分类方法都是基于流量的技术,目的是根据创建流量的应用来描述流量而不是数据包。许多著作提出了许多方法来识别与流量相关的应用。一种简单的方法是检查 TCP 端口号,因为众所周知的应用程序都有特定的端口号(例如,HTTP 使用 80 端口,SSH 使用 22 端口)。然而,为了躲避防火墙和网络安全工具,许多应用程序和工具都使用动态端口协商;当然,这使得基于端口的流量分类变得薄弱。其他方法建议针对数据包有效载荷内容进行深度数据包检查。当然,这种技术需要未加密的数据包有效载荷;然而,假设数据包有效载荷未加密在当前并不现实。研究界已经研究了其他方法来提取有意义的侧信道信息(数据包级或网络级),并将其表达为签名。我们将在下文中讨论这些研究的方法。

3 网络加密后的分析

本节讨论加密通信的网络分析,表2总结了本节介绍的工作。

3.1 协议/应用程序识别

有大量工作研究了流量分类的可行性,即使通信是加密的。这些工作大多侧重于对流量的性质(如视频流、P2P 流量)进行分类,并将分类过程自动化。

BLINC是旨在对网络流量进行暗中分类的先驱论文之一,它无法访问数据包的有效载荷,也不知道端口号;只能根据流量收集器提供的信息,完全基于主机的行为模式。Bernaille 等人提出了一种方法,通过观察 SSL 连接的第一个数据包及其大小,即使在加密通信信道中也能检测出不同的应用程序。这使他们能够尽快识别应用程序,达到 85% 的准确率和早期分类。

Wang 等人利用移动应用会产生更多可识别流量模式这一事实,通过利用移动设备产生的网络流量中暴露的侧信道信息(如流量突发),进行数据包级分析,以确定单个用户正在使用哪些应用。为了进行移动应用分类,作者使用随机森林对 13 个选定的 iOS 应用进行了分类,使用选定特征时分类准确率超过 68.59%,使用完整特征时分类准确率超过 87.23%。

Alan 等人仅利用 TCP/IP 标头的内容研究了能否通过网络流量启动时间来识别 Android 应用程序。实验使用了四种不同安卓设备上的 1,595 个应用程序。作者利用监督学习方法来识别产生流量的应用程序。他们的方法基于在启动时间流量中观察到的数据包大小,因为这些数据包大小有望为应用程序识别提供良好的特征集。

AppScanner 甚至能在加密流量中自动对 Android 应用程序进行指纹识别。为了生成指纹,作者收集了移动设备上运行相应应用程序时的网络流量轨迹。应用分类是使用一种监督学习算法进行的,该算法通过收集网络痕迹导出特征。这种可扩展的框架实现能够识别出特征应用程序(Google Play 商店中最受欢迎的 110 个应用程序),准确率超过 99%。

Stringoid 是一款静态分析工具,可估算 Android 应用程序中使用字符串连接构建的 URL 字符串。这项工作的目的是分析源自 Android 移动应用程序的网络请求。作者使用了一个由 20 个随机选择的 Android 应用程序组成的数据集,并利用 Stringoid 工具从 30,000 个 Android 应用程序中提取了 URL。

Lopez-Martin 等人建议使用结合卷积神经网络(CNN)的循环神经网络(RNN)进行物联网流量分类。这项工作的优势在于,它在流量分类方面优于其他算法,同时在应用新模型时不需要任何特征工程。

Taylor 等人的后续研究表明,被动窃听者能够通过对移动应用程序发送的网络流量进行指纹识别来识别这些应用程序,尽管它们进行了加密。他们再次使用 AppScanner 和机器学习技术,利用了网络流量中的信息,如数据包大小和方向。此外,他们还研究了应用程序指纹如何随时间、设备多样性和版本等参数的变化而变化。

Aceto 等人提出了一个多分类系统,旨在提高移动应用的分类性能,该系统结合了专门为移动和加密流量分类设计的基础分类器的特定决策。作者用于测试的数据集是由一家移动解决方案提供商收集的。在随后的工作中,Aceto 等人使用深度学习技术在加密网络流中进行移动流量分类。

Shen 等人利用数据包长度、突发和时间序列的特征选择,对以太坊上的去中心化应用进行了加密流量分类。Aiolli 等人识别了移动设备中比特币钱包应用程序的用户活动,这些应用程序通常用于发送、接收和交易比特币。

Yao 等人使用一种依赖深度学习辅助胶囊网络进行高效分类的方法,为智慧城市进行了物联网交通分类。他们提出的工作省去了手动选择流量特征的过程。FLOWPRINT 通过分析网络流量来识别移动应用。它通过结合基于目的地的聚类、浏览器隔离和模式识别(半监督方式),引入了一种应用指纹识别方法。它能够为未知应用构建移动应用指纹。作者对 FLOWPRINT 进行了评估,发现其准确率高达 89.2%。即使在应用更新或遇到新的应用后,FLOWPRINT 的精确度也能达到 93.5%。作者使用公开可用的数据集作为地面实况。作为特征,作者提取了通信应用程序控制的所有报头值以及数据包的大小和到达时间。此外,对于大小和时间相关的特征,作者还计算了统计属性,如最大值、标准偏差和平均绝对偏差值。

3.2 应用程序用途识别

本节介绍的工作通常利用机器学习技术,对加密流量进行细粒度应用事件识别。

Coull 和 Dyer提出了一种对加密信息服务进行流量分析的方法。更具体地说,作者旨在证明窃听者能够通过通信信道获取细粒度信息,如特定的用户操作、交换信息的大小,甚至通信所使用的语言。他们的研究结果证明了通过观察数据包长度获取信息的可行性,但他们的分析仅限于苹果公司的 iMessage 应用程序,而且是离线研究。

Conti 等人提出了一种分析加密网络流量的系统,用于识别用户在安卓设备上的操作,如电子邮件交换、社交网络互动等。他们的框架使用 TCP/IP 数据包字段(如 IP 地址和端口)以及其他特征(如数据包大小、方向和时间)。他们分析了大量具有不同功能的 Android 应用程序,如 Gmail、Facebook、Twitter、Tumblr 和 Dropbox。利用机器学习,他们在每个测试的安卓应用程序中对不同用户操作(如邮件交换、在线发布照片或发布推文)的识别都达到了很高的准确度和精确度。

NetScope 是一项基于检查 IP 标头对安卓和 iOS 设备的用户活动进行稳健推断的工作。这项工作展示了被动窃听者如何能够识别由所使用的应用程序产生的网络内细粒度用户活动(即使是通过加密通信信道)。每个移动应用程序的实施都会在其流量行为(如传输速率和数据包交换)上留下指纹,基于这一直觉,NetScope 可以学习用户活动之间细微的流量行为差异,从而将它们区分开来。

Fu 等人提出了一种对移动信息应用中的使用情况进行分类的方法。他们的系统,即 CUMMA,通过考虑用户行为模式、网络流量特征和时间依赖性,对移动信息应用的使用情况进行分类。更具体地说,他们表明,通过观察数据包长度和时间延迟,可以对 WhatsApp 和微信流量进行分类,并识别相应的使用类型(如照片分享)。利用这一框架,作者对微信和 WhatsApp 的准确率分别达到了 96% 和 97%。

Liu 等人开发了一种分析器,用于将加密移动流量分类为应用程序使用活动。通过相似性测量,作者从流量数据包序列中选择了可区分的特征。对于他们的在线分析仪,作者用一系列时间窗口来表示流量。在实验中,他们分析了微信、WhatsApp 和 Facebook 应用程序。

OTTer 是一个可扩展的引擎,可在加密的网络流量连接中,识别 WhatsApp、Skype、Viber 和 Facebook Messenger 等流行 OTT 移动应用中的细粒度用户操作,如语音/视频通话或消息传递。该引擎可在平均 109 Gbps 的流量负载下运行。

Wang 等人通过分析加密网络流量,从流量数据中识别移动支付应用,对移动支付应用上的具体操作进行分类,最后检测操作中的详细步骤,从而在交易阶段识别金融交易。

Jiang 等人研究了远程桌面流量(即使已加密)是否能揭示使用信息。事实上,他们的研究结果表明,利用侧信道信息泄漏,这种方法是可行的。

网络电话对话和视频流解码。还有一些研究利用流量分析从加密 VoIP 对话中提取语音信息或识别加密视频流。例如,Wright 等人的研究表明,当传输的音频使用可变比特率编解码器编码时,VoIP 数据包的长度可用于识别标准语音语料库中的单词或短语。这意味着,即使在加密通话中,被动观察者也能识别短语,平均准确率为 50%。Schuster 等人解释了加密视频流中突发模式的根本原因,展示了如何利用这些模式进行视频识别,开发并评估了一种基于深度学习的抗噪识别方法,最后,他们演示了没有直接观察网络的攻击者如何识别流媒体视频。作者使用的特征是流属性,如每秒向下/向上/全部字节数、每秒向下/向上/全部数据包数和向下/向上/全部数据包平均长度。作者研究的应用包括 Netflix、Youtube、Amazon 和 Vimeo。

3.3 Quality of Service/Experience Investigation

在移动设备上串流视频内容是用户持续增长的趋势。这导致整个网络基础设施对更高带宽和更好配置的巨大需求。不过,端到端加密使得提供商在识别 QoE 问题时只能获得有限的指标。因此,本节介绍的工作旨在从电信服务提供商的角度来衡量 QoS 和 QoE,因为电信服务提供商只能看到经常加密的网络流量。

Dimopoulos 等人提出的模型能够检测由停滞、平均视频质量和质量变化引起的不同程度的 QoE 下降。作者开发的预测模型在一家大型移动运营商的生产网络上进行了评估,结果表明,他们的系统能够准确检测出体验质量(QoE)问题,准确率高达 92%。作者提取的重要特征包括与往返时间 (RTT) 相关的特征、传输字节数、数据包丢失百分比以及其他与网络相关的特征。

3.4 技术

本节讨论的大多数作品都采用了机器学习技术来研究流量分析和使用分类的可行性,即使通信是加密的。在本节中,我们将介绍在此类作品中较为流行的技术和算法。分类技术的详细概述见表 3。如表 3 所示,机器学习和深度学习技术在网络分析领域非常流行。更具体地说,监督或半监督算法似乎主要用于流量分类和网络分析。这些算法在有标记的大数据集上表现出色,但需要训练。例如,对于移动应用分类,作者选择了多项式 Naive Bayes 算法、支持向量机、和隐马尔可夫模型算法,以及其他分类器,如随机森林、决策树、高斯直觉贝叶斯和用于模式识别的 k 近邻算法。对于更详细的分类(即识别移动应用程序中的用户操作和事件),作者选择了分层聚类技术。

除了机器学习,最近研究人员似乎开始转向神经网络,因为神经网络比单一的机器学习算法性能更好。神经网络结合了不同的机器学习算法,利用神经元图对数据进行建模,同时能够做出准确的决策,并从自身错误中学习。这使得神经网络无需任何人工干预即可独立工作。

由于网络数据包有效载荷是加密的,因此无法提供重要信息。因此,本节讨论的大多数技术都是利用数据包头部的数据。这些技术大多使用网络数据包大小、方向和时间相关数据等信息,并将其作为训练相应机器学习模型的特征。更具体地说,许多作品使用数据包大小和数据包方向作为特征。Herrman 等人还使用了 IP 数据包长度分布。在单个网络流中选择数据包子集也很常见。例如,Lu 等人不考虑传入的 MTU 数据包,而 Bernaille 等人只保留第一个数据包。

在表 3 中,我们还列出了用于评估每种技术的指标。由于这些作品大多基于机器学习,因此它们大多测量其技术的(i)准确率、(ii)精确率、(iii)召回率、(iv)真阳性率和(v)假阳性率。不过,尽管本节讨论的大多数作品都使用了类似的评估指标,但由于它们使用不同的数据集来训练系统,因此我们无法正确比较它们的有效性。最后,我们注意到,只有少数作品提出了处理评估指标,如内存消耗、训练时间或吞吐量。

3.5 数据集

3.6 目标和局限性

网络分析类的大多数作品都侧重于其方法的功能性。更具体地说,作者们重点研究了网络流量加密时流量分析的可行性。事实上,他们证明了以细粒度方式检测流量性质的可能性。例如,Conti 等人即使在网络流量加密的情况下,也能准确识别移动应用(如 Twitter 和 Facebook)中的不同操作(如发布推文或发送消息)。不过,也有一些研究除了关注功能性外,还关注可编程性和部署性。OTTer 可以详细描述 Skype 和 WhatsApp 等不同桌面应用的使用情况(如视频通话、语音通话、聊天)。它还集成到一个 DPI 引擎中,该引擎部署在一个平均流量为 109 Gbps 的实时流量测试平台中。

所有使用机器学习算法对网络流量进行分类的工作都需要重新训练,以便在新的多样化数据中保持稳健。此外,大多数此类研究都选择了应用或协议的子集来检验分类的可行性。这使得此类解决方案大多只对用于训练的应用和协议有效,从而带来了潜在的可扩展性和适应性问题。即使这些系统在近距离环境下(即在特定的地面实况数据集下)具有较高的性能(如准确率、精确度和召回率等),但在对真实世界的流量跟踪数据集进行测试时,肯定会产生较高的误报率。此外,还有许多反制措施可以对抗流量分析技术(第 7 节将讨论此类反制措施),因此本节讨论的许多作品都无法绕过这些反制措施。

4 网络加密后的安全性

在本节中,我们将介绍用于网络安全的加密网络流量分析的最新进展。表 5 汇总了本节介绍的各项工作。

4.1 入侵检测

有些技术侧重于识别网络中的恶意行为,专门使用机器学习方法检查底层流量的特征。

Taleb 等人提出了一种通过网络数据包检查识别加密协议滥用的方法,该方法侧重于数据包头信息的处理。Amoli 等人提出了一种实时无监督 NIDS,能够检测加密和明文通信中的新型复杂攻击 。Anderson 和 McGrew 比较了六种不同的机器学习算法在加密恶意软件流量分类方面的特性。

Shone 等人提出了一种结合深度学习技术进行网络入侵检测的系统。作者使用 KDD Cup '99 和 NSL-KDD 数据集对其系统进行了评估,结果显示准确率很高(接近 90%)。Kitsune 是一款基于神经网络的 NIDS,设计用于检测网络流量中的异常模式。它监控近期网络流量的统计模式,并检测异常模式。

Papadogiannaki 等人通过从数据包元数据序列生成签名来进行网络入侵检测。他们使用 UNSW-NB15 数据集对其方法进行了评估,该数据集包含大量攻击的网络流量跟踪。

Tang 等人提出了一种深度学习方法,用于 SDN 环境中基于流量的异常检测。作者为入侵检测系统建立了一个深度神经网络(DNN)模型,并利用 NSL-KDD 数据集的六个基本特征对其进行训练。Niyaz 等人利用深度学习检测 SDN 环境中的 DDoS 攻击。该系统识别单个 DDoS 攻击的准确率接近 96%,并将流量分为良性流量和攻击流量,准确率高达 99.82%,误报率较低。

4.2 移动设备入侵和恶意软件检测

4.3 技术

在本节中,我们将介绍这类作品中较为流行的技术和算法。表 6 列出了即使在加密网络中也能进行入侵检测的作品。这些作品大多利用机器学习算法进行入侵检测和分类。

除了机器学习,研究人员还利用了神经网络和深度学习技术。针对入侵检测,Shone 等人提出了一种利用堆叠非对称深度自动编码器(NDAE)构建的深度学习分类模型。Tang 等人提出了一种深度学习方法,用于 SDN 环境中基于流量的异常检测。作者建立了一个用于入侵检测的 DNN 模型,并使用 NSL-KDD 数据集进行训练,同时使用了数据集中的基本特征。Niyaz 等人利用深度学习检测 SDN 环境中的 DDoS 攻击。Kitsune 是一种基于神经网络的 NIDS,设计用于检测网络流量中的异常模式。它监控最近网络流量的统计模式,并检测异常模式。同样,这些技术大多利用数据包标题中的数据,如网络数据包大小、方向和时间相关数据。更复杂的技术会利用更多更先进的功能,如 TLS 握手信息。在表 6 中,我们还列出了用于评估每种技术的指标。与第 3 节类似,最常见的评估指标是:(i) 准确率、(ii) 精确率、(iii) 召回率、(iv) 真阳性率和 (v) 假阳性率。

4.4 数据集

4.5 目标和局限性

由于大多数进行加密网络流量检测以进行入侵检测的工作都使用机器学习技术来检查攻击分类的可行性,因此其主要目标是功能性。在涉及加密通信时,它们离线训练模型,为在线入侵检测提供的支持很差。在第 6 节中,我们将讨论可用于在线流量检测的中间件。这些中间件的部分网络功能可用于入侵检测和防火墙应用。本节讨论的大部分作品都可以通过流量分析抵御技术绕过。Anderson 等人研究并提出了网络流量分析文献中的错误和局限性,如使用旧的、不可靠的地面实况数据集。

5 网络加密后的用户隐私

除了网络分析和安全之外,流量分析还被用于监控和剖析移动应用程序的特征。这类工具使用户能够:(i) 深入了解所使用的应用程序;(ii) 控制个人身份信息 (PII) 的处理。此外,在本节中,我们还将讨论即使在使用 TOR 等匿名工具隐藏活动性质、用户身份或用户位置的情况下,仍能对网站和应用程序进行指纹识别的工作。最后,我们将介绍即使在加密网络中也能识别操作系统和设备的作品。表 8 总结了本节介绍的作品。

5.1 端点设备工具和 PII 泄露检测

ProfileDroid [163] 是一个监控和剖析系统,可在静态层、用户层、操作系统层和网络层描述 Android 应用程序的行为特征。作者评估了多个安卓应用程序,这些应用程序都存在隐私和安全、操作和性能问题。作者使用免费和付费的 Android 应用程序对所提出的工具进行了评估,观察到 (i) 应用程序规范与应用程序执行之间的差异,(ii) 由于流量数量级的增加,免费版应用程序的成本较高,(iii) 大量未加密的网络流量,(iv) 与超出预期来源的过量通信,以及 (v) 大部分受检应用程序与谷歌的通信。TaintDroid [64] 通过动态信息流跟踪识别 Android 应用程序的隐私泄露。更具体地说,作者对流行的第三方安卓应用程序的行为进行了监控,发现了各应用程序中潜在的滥用用户私人信息的情况。TaintDroid 向用户提供有关第三方应用程序的信息。Haystack[121]是一款通过流行应用商店发布的移动应用,可将上下文信息(如应用标识符和无线电状态)与发送到远程服务的特定流量(加密与否)关联起来。为了处理加密流量,haystack 为 TLS 流量采用了透明的中间人(MITM)代理。PrivacyGuard [140] 是一个开源平台,可拦截移动应用程序(通过 VPN)产生的网络流量,以检测敏感信息泄漏。PrivacyGuard 能够有效检测大多数受检应用程序中的信息泄漏,其性能优于 TaintDroid。AntMonitor [90] 是一个从 Android 设备被动监控和收集数据包级测量数据的系统,可提供细粒度分析。AntMonitor 可让用户控制自己的个人数据,并支持客户端流量收集和分析。作者研究了与 PII 相关的特征,如 (i) 在移动网络中唯一标识设备的 IMEI 和与设备相关的识别码 Android 设备 ID,以及 (ii) 可与用户唯一关联的电话号码、电子邮件地址和位置。ReCon[122]是一个跨平台系统,可揭示个人身份信息泄露情况,并让用户控制泄露信息,而无需任何特殊权限或定制操作系统。ReCon 利用机器学习,通过检查网络流量来识别和揭示可能的 PII 泄露,同时它还提供了一个可视化工具,使用户能够通过阻止或替代来控制其信息的处理方式。Continella 等人[51]提出了一种检测 PII 泄露的系统,该系统对混淆方法和技术(如编码、格式化)、加密或在私人信息泄露前对其进行的任何其他类型的转换都有抵抗力。此外,Rosner 等人[125] 提出了一种黑盒方法,用于检测和量化 TLS 加密网络流量中的侧信道信息泄漏。

5.2 指纹

在本节中,我们将介绍网页和应用程序指纹识别领域的研究成果,甚至包括隐私增强技术。此外,我们还研究了从网络流量检测中进行设备/操作系统识别和位置估计的最新技术。表 8 还对本节介绍的工作进行了总结。

5.2.1 网站识别

流量分析已被用于识别细粒度信息,如网页和网站,甚至是通过 OpenVPN 或 TOR 等技术建立的加密隧道传输的信息。

Herrmann 等人提出的分类器可从数据包跟踪中识别出高达 97% 的网络请求。Lu 等人发现了通过 SSH 和 SSL 隧道传输的动态网站。Panchenko 等人展示了在基于洋葱路由的匿名网络(如 TOR)中,如何利用数据包大小、总传输字节数、传入数据包百分比等信息进行网站指纹识别。Cai 等人提出了一种网页指纹攻击,这种攻击能抵御最近的流量分析反制方法,如 HTTPOS 等应用级防御和 TOR 上的随机流水线。Kwon 等人针对隐藏服务及其用户实施了一种被动攻击,称为电路指纹攻击。利用这种攻击,攻击者可以高精度地识别网络中存在的隐藏服务活动。

Draper-Gil 等人研究了基于流量和与时间相关的特征,这些特征可用于分析检测 VPN 流量,并根据流量类型(如浏览或流媒体)对加密流量进行分类,同时使用两种机器学习技术来测试特征的准确性。他们的研究表明,如果处理得当,时间相关特征可以为加密流量特征描述提供足够的信息。Cruz 等人提出了一种深度学习方法,该方法利用了基于代理 BitTorrent 流量的 TCP 隧道统计行为的特征集。接下来的步骤是将该特征集转换为多个时间步序列,并训练一个递归神经网络。这项工作的结果表明,在 SSH 隧道中识别 BitTorrent 流量的存在是可能的。

Lotfollahi 等人提出了一种系统,通过深度学习分析加密流量,能够同时处理流量特征描述和应用识别。所提出的方案可以鉴定 VPN 和非 VPN 流量、协议(如 FTP 或 P2P)以及最终用户应用(如 Skype 或 BitTorrent)。

Shahbar 和 Zincir-Heywood 确定了多层加密匿名网络及其使用的混淆技术,只需少量特征和少量数据包。Montieri 等人对 TOR 等匿名工具进行了分层流量分类。

5.2.2 设备/操作系统识别

许多研究都侧重于提取 TCP 或 IP 数据包元数据,以研究特定数据包内容的行为是否与操作系统、设备类型和其他特征相关联。

Chen 等人通过检查 TCP/IP 包头中的多个特征,能够进行操作系统识别、NAT 和系绳检测。作者使用真实的网络流量跟踪来评估指纹识别的准确性,结果表明,能成功对台式机操作系统进行指纹识别的几种技术对移动设备的指纹识别效果并不相似。在操作系统指纹识别中,作者使用了以下数据包头值:IP TTL 值、IP ID 单调性、TCP 时间戳选项、TCP 窗口大小比例选项和时钟频率。TCP 时间戳单调性、时钟频率和启动时间等特征可用于系留检测。

Ruffing 等人的目标是即使在加密流量中也能识别移动设备的操作系统。作者提出了一种流量内容无关算法,对加密流量进行频谱分析,结果表明,即使输入 30 秒的网络流量也足以获得高精度结果。Sivanathan 等人利用网络流量特征对物联网设备进行分类。更具体地说,作者利用不同物联网设备(如摄像头、插头和运动传感器)组成的生态系统,检查流量特征,如端口号、信令模式和使用的密码套件。Lastovicka 等人研究了 TLS 协议的流量模式,并利用 TLS 握手的特征训练了一个机器学习模型,以识别设备的操作系统。他们的研究重点是无线网络中连接的移动设备。

5.2.3 位置估计

通过收集和监控包含定位服务的应用程序产生的网络流量,可以计算和估计移动设备的位置,即使通信信道是加密的。例如,Ateniese 等人的研究表明,对手可以通过分析用户移动设备与任何与设备通信的定位服务提供商之间交换的加密网络数据包的时间和大小来估计移动设备的位置。

5.3 技术

在本节中,我们将介绍在此类作品中较为流行的技术和算法。表 9 简要介绍了所使用的技术和评估指标。

网站或设备/操作系统指纹识别领域的大多数作品都使用了机器学习技术,而为网页建立指纹然后比较其相似性进行分类也很常见。检测 PII 泄露的工作要么是离线工作,要么是在线工作。离线工作使用的机器学习技术与前面讨论过的工作类似,而在线工具则在处理加密网络流量之前对其进行拦截。

例如,在检查隧道网络流量(如通过 VPN 或 SSH 协议)以进行网站分类和指纹识别的工作中,最流行的算法是多项式 Naive Bayes 、支持向量机和隐马尔可夫模型。此外,莱文斯坦距离和 Jaccard 分类器也在许多著作中被用来检查网站指纹之间的相似性,并将其正确分类。

此外,[55, 95]等较新的著作也使用了神经网络。Lotfollahi 等人提出了一种系统,通过深度学习分析加密流量、嵌入堆栈式自动编码器和 CNN 对网络流量进行分类,该系统能够同时处理流量特征描述和应用识别。Cruz 等人通过深度学习实现了对隧道式 BitTorrent 流量的识别。他们的方法研究了与代理 BitTorrent 流量的 TCP 隧道统计行为相关的特征。然后,作者将这些特征转化为多个时间序列,并训练一个递归神经网络。Profit 结合了网络跟踪对齐、相位检测、特征选择、特征概率分布估计和熵计算等技术,量化了通过网络流量泄露的信息量。Rosner 等人在 “Profit ”中提出了一种动态技术,用于检测支持加密并通过 TLS 通信的应用程序中的信息泄漏。

表 8 和表 9 还列出了研究移动应用泄漏 PII 的作品。在这一类别中,作品倾向于进行网络流量拦截,以便能够处理加密流量并跟踪移动应用程序所暴露的信息流。截获流量后,作者可以通过检查明文数据包内容来提取信息。

5.4 数据集

5.5 目标和局限性

在网站、位置和设备/操作系统识别类别中,主要目标是为准确的指纹识别提供有效的方法。因此,我们在这些类别中研究的所有作品都有一个主要目标:功能性。另一方面,PII 泄露检测领域的工作则侧重于可编程性和可部署性。因此,我们会遇到以性能为导向的解决方案。

在任何流量分析领域,高假阳性率都是主要的限制因素。遗憾的是,由于近年来互联网的方方面面都出现了巨大的多样性和异质性,因此似乎很难产生一种能够覆盖整个领域的通用解决方案。此外,正如 Juarez 等人在指纹识别方面所指出的,准确度会随着时间的推移而降低。

此外,在 PII 泄露检测类别中,使用代理服务器或 VPN 将流量重定向到受控环境以拦截和解密加密流量的做法很常见。即使我们不考虑增加的延迟,如果用户没有适当了解其流量和个人数据的处理和操作(如存储)程序,这种技术最终也会引发与隐私相关的问题。在第 6 节中,我们将讨论通过使用硬件辅助技术处理敏感信息以实现可信执行的中间件来解决这一问题。

6 网络加密后中间件中的网络功能

7 加密流量分析对策

8 经验教训和结论

在本节中,我们将总结和回顾前几节(第 3-6 节)中的研究成果。如前所述,网络流量分析和分类在许多领域都非常流行,如网络分析、安全、隐私和指纹识别。根据用于加密流量分析和检查的技术和方法,可将建议的解决方案分为三类:(i) 操作流量元数据和特征的作品,(ii) 截获加密流量的作品,以及 (iii) 利用加密功能的作品(见图 1)。

第一类系统(即流量元数据和特征操作)侧重于研究哪些网络相关特征揭示了网络流量的性质。在所有这些作品中,我们发现了不同算法之上的类似方法。因此,我们可以将由此产生的、即使在加密网络中也能实现流量分类的网络相关特征分为三类:(i) 数据包级特征;(ii) 连接级特征;(iii) 时间相关特征。当然,这些特征都不包括从数据包有效载荷内容中提取的信息,因为我们假定网络数据包是加密的。在表 13 中,我们列出了其中的一些特征(在文献中也被称为特征、侧信道数据或/和元数据),这些特征可以在数据包头中找到,也可以通过计算得到。这些特征是最先进的网络分析、安全、隐私和指纹识别技术中最广泛使用的特征。

第二类和第三类系统(即截获加密流量和利用加密功能)侧重于提出高端技术,为实时网络流量检测提供高效、自适应和可扩展的解决方案。大多数此类作品都能检测网络并报告检测结果,同时始终追求良好的计算性能,以应对当前的网络速度。

8.1 局限性和未来可能的发展方向

在第一类 “流量元数据和特征操作 ”中,我们遇到了大量研究加密网络流量类别(如网页、移动应用程序或某些恶意活动)识别可行性的工作。正如已经强调过的,所有这些工作都集中在机器学习技术上,而机器学习技术能识别出表明这一特定类别的网络相关特征。然后,为了验证和评估他们的方法,他们会计算准确率、召回率和精确度等指标,并将自己与相关作品进行比较。不过,所有这些研究都使用了一定的地面实况数据集,以便对模型进行训练,最终教会它们如何发现网络流量中的特定模式,从而定位特定事件(如访问某个网站)的发生。即使这些系统在近距离场景下(即在特定的地面实况数据集下)获得了较高的性能(准确度、精确度和召回率等指标),但在根据真实世界的流量轨迹数据集进行测试时,肯定会产生较高的误报率;当然,加密网络流量无法从 ISP/CSP 层面进行此类评估。在任何流量分析领域,高假阳性率都是主要的限制因素。遗憾的是,由于近年来互联网的方方面面都出现了巨大的多样性和异质性,因此似乎很难产生一种能够覆盖整个领域的通用解决方案。此外,正如 Juarez 等人[78]在指纹识别方面所指出的,准确度会随着时间的推移而降低。

在第二类 “拦截加密流量 ”中,我们会遇到利用行为模式或签名报告特定事件(如网络中的恶意活动)的解决方案。这些解决方案的重点是实施网络检测引擎,直接对加密流量进行处理,而这些流量实际上是在处理前被截获和解密的。这引发了对隐私保护和数据完整性的担忧。此外,解密和重新加密网络数据包也会增加大量端到端性能开销。为了提供隐私保证,许多著作提出了硬件辅助解决方案,如 TEE。在不受信任的基础设施和操作系统中使用 TEE,可以在加密的内存区域安全执行代码,从而提供强有力的隐私保护保证。当然,TEE 容易受到侧信道攻击[38, 161],而交换到飞地会增加性能开销,尤其是在网络处理等 I/O 密集型应用中。

最后,在第三类 “加密功能 ”中,我们探讨了使用可搜索加密等技术的作品,这些技术可以直接处理加密数据而无需解密。这些技术在保护隐私方面非常有效,但也为实时系统(如网络处理系统)增加了重要的性能开销。

显然,在网络加密时的实时流量处理方面存在文献空白。虽然有许多机器学习技术可以有效地对流量性质进行分类,但却没有在线流量处理的选项。此外,实现在线加密流量检测的工作会增加相当大的处理性能开销,损害 Gbps 网络实时处理的概念。因此,未来能显著提升先进水平的研究方向必须满足以下要求: (i) 在全加密网络中分类准确性方面的有效性,(ii) 减少误报,(iii) 良好的处理性能,以及 (iv) 在 Gbps 网络中进行实时处理并减少数据包丢失。

8.2 结论

网络加密的日益普及给典型的深度数据包检测系统带来了重大挑战。直到最近才被广泛用于网络分析和安全领域的传统深度数据包检测引擎无法以同样的方式处理网络数据包,因为数据包有效载荷现在已被加密。在本调查中,我们将研究网络流量处理系统如何适应当前的加密趋势,以及网络流量检测系统如何在加密的情况下处理流量。

事实上,经过对文献的深入研究,研究界似乎已经开始寻找如何绕过网络加密对传统深度数据包检测系统造成的限制的解决方案。许多研究工作侧重于利用机器学习或深度学习方法和算法来提高解决方案的功能,而另一些研究工作则开发了以在线方式直接处理加密流量的复杂技术。然而,我们发现仍有相当大的改进空间。我们介绍了在我们调查的作品中发现的局限性,使研究人员能够认识到加密流量分析和处理研究领域未来可能的发展方向。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值