【论文分享】基于网络流量的应用程序指纹识别技术(网络流量分析领域学术前沿系列之二)

admin 2022年11月2日20:34:13评论66 views字数 6402阅读21分20秒阅读模式
智能手机及平板电脑等移动设备为现代生活带来便利,很大程度上归功于丰富多彩的应用程序。不过,伴随用户数据的收集、传输、存储及共享,应用程序也引入了用户隐私问题。应用程序指纹(AF,App Fingerprinting)攻击是指,攻击者识别出与特定目标应用程序相关的用户行为,从而推断出与用户隐私相关的敏感信息。


今天分享的两篇论文主题便是“开放世界”中的网络应用程序指纹识别。“开放世界”是指不在模型训练数据集中的应用程序。这两个工作均由香港理工大学Jianfeng Li等人完成,两个工作的目的均为在开放世界中对应用进行指纹识别,进一步实现细粒度的用户操作识别。其中,FOAP系统面向TCP流,能够识别登录、转发等更细粒度的用户操作;PACKETPRINT系统面向802.11无线网络流量,可以实现包级别的检测。这两篇论文分别发表在网络安全领域顶级会议USENIX Security 2022和NDSS 2022。

全文共3900字,阅读时间约9分钟。


【论文分享】基于网络流量的应用程序指纹识别技术(网络流量分析领域学术前沿系列之二)


【论文分享】基于网络流量的应用程序指纹识别技术(网络流量分析领域学术前沿系列之二)


一、FOAP: Fine-Grained Open-World Android App Fingerprinting


01

【背景介绍】


应用程序指纹攻击本质上是侧信道攻击。攻击者在不依赖数据包内容的前提下,使用预先训练的机器学习模型识别应用程序或者用户活动,不受流量加密的影响。然而,现有的应用程序指纹攻击技术面临两大限制,即“封闭世界假设”和“识别颗粒度限制”[2,3,4]。


“封闭世界假设”是指绝大多数现有的应用识别技术都将应用识别问题表述为一个多分类问题。一个普遍的解决方案是上一篇论文分享Lumos系统中使用的一对多法(one-vs-rest),即为每个应用程序训练一个二分类器[5]。不过训练集无法涉及所有应用程序,在实际应用时假阳性和误报风险显著较高。此外,在识别颗粒度方面,现有技术往往侧重于应用程序的识别,获得信息较为粗糙而无法推断出用户隐私。

为解决上述问题,文章提出了FOAP,一种细粒度的面向开放世界的安卓应用指纹识别技术。文章核心思路为:不同应用程序之间几乎不太可能表现出完全相同的网络行为。为此,作者定义了“结构相似性”指标,用于描述一个流量段内的网络流与特定应用程序产生的网络流之间的相似程度。利用上述指标,FOAP可以有效地降低应用程序指纹识别技术的误报率。


02

【研究方法】


FOAP的工作流程如图表1所示。首先选定某个攻击者感兴趣的目标应用程序,并自动或手动运行程序,收集其产生的Android系统日志文件及pcap格式流量文件。随后对收集到的文件进行应用层面的标记,即标记一个网络流是否由目标应用产生,并为每个流提取一个特征向量,以构建训练数据集用于1)流量分割,2)流量过滤,以及3)流量识别。


其次,作者将一个流拆分成一系列的突发流量,为每一个突发流提取特征向量。这是由于一个流内可能包括多个用户操作,以构建训练数据集用于4)方法级用户动作识别。


【论文分享】基于网络流量的应用程序指纹识别技术(网络流量分析领域学术前沿系列之二)

图表1:FOAP工作流程,红线为训练过程/蓝色为识别


步骤1:流量分割
根据每条流的特征向量,文章计算其局部相似度(Local Similarity),即判断该条流由目标应用产生的可能性。特征包括平均、最大包长、时间间隔等123个维度特征向量。基于局部相似性可以将流量进行分割,分割成A可能处于活动状态的所有时间段。

步骤2:流量过滤
该模块定义了结构相似度(S-similarity),来描述一个时间段内的网络流与特定目标应用程序生成的网络流之间的相似程度。对于每个时间段,FOAP计算其与目标应用流量的结构相似度,并过滤不相关的流量段以减少误报。作者使用基于度量学习的映射函数,将目标应用的原始流量特征向量映射到低维空间,保证内部欧式距离最小,并进一步对其进行层次聚类,用于结构相似性的计算。
步骤3:流量识别
该模块构建双层分类器,低层分类器负责计算局部相似度、预测网络流是后台流的概率两个分类器;高层分类器为逻辑回归分类器,利用自身及上下文网络流的特征识别流量类型。双层分类器结果共同判断流量段是否由目标应用产生。
步骤4:细粒度用户操作行为识别
该模块为细化用户行为,首先提取突发流量,将一条流按某包时间间隔阈值切分更小的流量段;其次构建时空上下文模型来描述突发流量之间的相关性。时空上下文模型是指利用该突发流量前后位置的突发流量、或者与其同时产生的其他流的突发流量的特征进行计算。该模块可推断细化的用户行为,比如点赞、转发等。

03

【系统评估】


作者从谷歌商店下载1000个应用程序、利用自动测试工具Monkey[6]和RERAN[7]生成应用程序的网络流量。最终,共产生50,000个流量数据包文件,由2,701,931个网络流组成。


【论文分享】基于网络流量的应用程序指纹识别技术(网络流量分析领域学术前沿系列之二)

图表2:推断Twitter用户活动



作者验证了FOAP在开放世界环境下,对应用程序识别效果、用户操作识别效果,并分析了实验数据集大小和应用程序使用的第三方库造成的影响。最后,作者还分析了系统的时间开销。

FOAP的应用识别效果明显优于基线算法,将应用识别的F1得分(F1-score)从0.679提高到了0.911。FOAP在细粒度用户活动推理和用户隐私分析中也具有实用性,用户操作识别的平均F1-score达到了0.885。


----------------------------------------------------

二、Packet-Level Open-World App Fingerprinting on Wireless Traffic

04

【背景介绍】


现有的应用指纹识别攻击通常是通过捕捉无线接入点(AP)的TCP/IP流量来实现的。上述方法需要拿到较高的权限才能实现,因此在实用性方面存在较强限制。与之对比,WiFi嗅探器则可以被动地捕获移动设备和无线接入点之间的802.11无线流量。


【论文分享】基于网络流量的应用程序指纹识别技术(网络流量分析领域学术前沿系列之二)

图表3:一个使用WPA2的802.11无线帧的例子


因此,本文便是针对于无线网络流量进行应用程序指纹识别,提出了PACKETPRINT来解决无线网络下特有的几个挑战:无法得知IP地址及域名、流与流间没有明显边界、多个应用同时使用,此外也解决了上篇文章中提出的开放世界检测问题。


05

【研究方法】


PACKETPRINT的工作流程如图表4所示,包括1)流量预处理;2)流量分割;3)流量识别三个部分。图中包序列上的每个线段代表一个数据包,线段的高度代表包的大小、正负代表包的方向。同样假设A是其中一个感兴趣的应用程序。

【论文分享】基于网络流量的应用程序指纹识别技术(网络流量分析领域学术前沿系列之二)

图表4: PACKETPRINT工作流程


步骤1:流量预处理
无线流量的预处理包括:协议过滤、数据包大小标准化和数据包大小过滤。首先,由于应用层数据只封装在数据型帧中,管理型和控制型帧将被过滤;随后进行数据包大小标准化,去除帧头和加密开销,将802.11无线帧大小转化为TCP/IP数据包大小;最后针对每个特定的应用程序,构建一个包含方向的数据包大小序列,过滤不在包长范围的数据包,以减少计算开销及其他应用程序带来的干扰。

步骤2:流量分割
本模块定义了顺序相似性(S-similarity),根据某数据包的上下文数据包大小序列来判断其由目标应用程序产生的可能性。利用顺序相似性,PACKETPRINT可以自适应地定位数据包由目标应用程序产生的所有可能的时间段,对样本进行分段并提取出目标段。

顺序相似性的计算采用顺序XGBoost (S-XGBoost),通过递归的方法在一个递增的范围内寻找数据包的邻居数据包并提取特征,以描述目标应用程序产生的数据包顺序模式。顺序XGBoost由级联相加函数实现,每个函数都由决策树递归训练。本文将与目标程序具有高顺序相似性的数据包称为锚数据包,通过对锚点数据包的聚类分析来定位目标段。

步骤3:流量识别
顺序相似性捕捉到的是流量的短期模式,即关注单个数据包及其短期连续的上下文,这不足以完全描述应用程序的网络行为。在开放世界下,仅使用顺序相似性进行识别很容易造成假阳性,需要通过识别所有与目标应用程序相关的目标段来识别用户活动。为此,本模块定义了成分相似性(C-similarity),从结构特征的角度量化目标段内的数据包由目标应用产生的可能性。若一个目标段与目标应用的成分相似性大于预设的相似度阈值,便称之为目标应用的相关段。
计算成分相似性采用的是分层袋-词(H-BoW)模型,从不同时间尺度的数据包到达序列中提取结构特征。它由两个关键部分组成:(1)标签感知的特征映射。H-BoW从时间尺度逐渐扩大的数据包到达结构模式中提取特征,包括包级模式、突发级模式及行为级模式。H-BoW将较小时间尺度的结构模式分层映射到较大时间尺度的压缩表示,即 "词";(2)基于优化的特征表示。获得 "词 "之后,利用组合优化来有效地表示这些 "词 "的语义特征,然后训练一个具有概率输出的分类器来计算目标片段与目标应用的成分相似性。

【论文分享】基于网络流量的应用程序指纹识别技术(网络流量分析领域学术前沿系列之二)

图表5:分层滑动窗口和标签感知特征映射


PACKETPRINT还可以识别应用内的用户行为,但需要收集这些用户行为产生的无线流量,并为每个用户训练一个S-XGBoost模型和一个H-BoW模型。在识别阶段,PACKETPRINT首先识别和定位与该应用对应的加密无线流量段,随后从这些流量段中进一步独立识别每个应用内的用户行为。


06

【实验验证】


本文在实验阶段研究以下四个问题:
○ 能否从加密的无线通信中准确识别出感兴趣的应用程序
○ 实际网络情况(如嗅探丢包、拥塞丢包等)对识别精度的影响
○ 应用程序多路复用的影响
○ 能否识别出应用程序内的用户的具体操作

本文使用的数据集包括:
1. Monkey500数据集,从谷歌商店下载500个应用程序并利用自动测试工具Monkey和RERAN生成应用流量实例;
2. Human100数据集,由5个志愿者随机选择谷歌商店的100个应用程序,操作每个应用程序5分钟并采集流量;
3. 为了验证PACKETPRINT可以识别应用内的用户行为,本文还使用IUA数据集,包含Youtube、Netflix、微信和WhatsApp等13个流行的移动应用的应用内用户动作,由5个志愿者操作采集并记录下自己的用户行为。


【论文分享】基于网络流量的应用程序指纹识别技术(网络流量分析领域学术前沿系列之二)

图表6:实验评估结果


已有研究中,与本文最为相关两项工作为AppScanner[8]和NetScope[9]。作者使用上述两项工作的特征,选取1/10/100秒三组时间窗口并结合随机森林分类模型,作为PACKETPRINT的对比算法,对比指标包括准确率(Precision),召回率(Recall)及F1得分(F1-score),如图表6所示。


实验结果表明,PACKETPRINT可以解决无线网络下的无法得知IP地址及域名、流与流间没有明显边界、多个应用同时使用及开放世界检测四个问题。PACKETPRINT在开放世界的应用识别中F1-score达到了平均0.884,在应用内的用户行动识别中F1-score达到了平均0.959。当面临不同应用程序同时使用造成的噪声包时,当噪声包比率为0.823时,PACKETPRINT的F1-score仍然取得了0.826的高分。



07

【结论】


上述两篇论文实现了在不同场景下的应用程序指纹识别,识别使用的信息都是包长等容易获取的统计特征,分别设计针对于这些简单特征的多种模型,获取应用程序在包长结构等方面的相似度信息。最终两个工作都分别在各自的实验环境下取得了较好的结果。

08

【个人观点】


两篇文章的实验都非常细致,设计的算法能够计算出不同应用程序在包长结构方面的相似度信息,在仅有包长信息的情况下也能够进行应用识别。不过这两个工作核心思路都是基于“不同应用程序之间几乎不太可能表现出完全相同的网络行为”这一假设前提。但是现实生活中,不同互联网用户使用相同的应用程序,也有可能表现出不同的网络行为。上述问题对模型的实际影响或许还需要进一步评估。同时文章提出的两个系统能够识别的应用程序,似乎仍然需要较强的领域知识和专家经验,并且较少考虑检测中的耗时问题,或许距离实际应用还存在一定距离。


原文链接

https://www.usenix.org/conference/usenixsecurity22/presentation/li-jianfeng
https://www.ndss-symposium.org/ndss-paper/auto-draft-218/


参考文献

[1] Top Trending Mobile App Categories in 2017. https://www.mindinventory.com/blog/top-trending-mobile-app-categories-in-2017/

[2] Fu Y, Xiong H, Lu X, et al. Service usage classification with encrypted internet traffic in mobile messaging apps[J]. IEEE Transactions on Mobile Computing, 2016, 15(11): 2851-2864.

[3] J. Liu, Y. Fu, J. Ming, Y. Ren, L. Sun, and H. Xiong, “Effective and real-time in-app activity analysis in encrypted internet traffic streams,” in Proc. SIGKDD, 2017.

[4] B. Saltaformaggio, H. Choi, K. Johnson, Y. Kwon,

Q. Zhang, X. Zhang, D. Xu, and J. Qian, “Eavesdropping on fine-grained user activities within smartphone apps over encrypted network traffic,” in Proc. WOOT, 2016.

[5] Sharma R A, Soltanaghaei E, Rowe A, et al. Lumos: Identifying and Localizing Diverse Hidden IoT Devices in an Unfamiliar Environment[C]//31st USENIX Security Symposium (USENIX Security 22). 2022: 1095-1112.

[6] UI/Application Exerciser Monkey, https://developer.android.com/studio/test/monkey

[7] RERAN - Record and Replay for Android, https://www.androidreran.com/

[8] Taylor V F, Spolaor R, Conti M, et al. Appscanner: Automatic fingerprinting of smartphone apps from encrypted network traffic[C]//2016 IEEE European Symposium on Security and Privacy (EuroS&P). IEEE, 2016: 439-454.

[9] B. Saltaformaggio, H. Choi, K. Johnson, Y. Kwon, Q. Zhang, X. Zhang,

D. Xu, and J. Qian, “Eavesdropping on fine-grained user activities within smartphone apps over encrypted network traffic,” in 10th USENIX Workshop on Offensive Technologies (WOOT 16), 2016.


编辑&审校|刘保君、张一铭、张镇睿

原文始发于微信公众号(NISL实验室):【论文分享】基于网络流量的应用程序指纹识别技术(网络流量分析领域学术前沿系列之二)

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年11月2日20:34:13
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【论文分享】基于网络流量的应用程序指纹识别技术(网络流量分析领域学术前沿系列之二)http://cn-sec.com/archives/1386315.html

发表评论

匿名网友 填写信息