特文特大学 | FLOWPRINT:加密流量中的半监督移动应用程序指纹识别
2024-12-7 22:56:0 Author: mp.weixin.qq.com(查看原文) 阅读量:2 收藏

原文标题:FLOWPRINT: Semi-Supervised Mobile-App Fingerprinting on Encrypted Network Traffic
原文作者:Thijs van Ede, Riccardo Bortolameotti, Andrea Continella, Jingjing Ren, Daniel J. Dubois, Martina Lindorfer, David Choffnes, Maarten van Steen and Andreas Peter
发表会议:NDSS
原文链接:https://par.nsf.gov/biblio/10192513
数据集与源码:https://github.com/Thijsvanede/FlowPrint
笔记作者:孙汉林@安全学术圈
主编:黄诚@安全学术圈

1、技术背景

当今绝大多数移动应用程序的流量采用TLS加密传输,这使得加密流量分析成为检测移动应用的重要方法。现有方法多依赖已知应用的先验知识(如Snort和Andromaly),但如今移动应用数量巨大,且应用的安装、更新和卸载越来越频繁。此外,不同设备的预装应用差异显著,限制了现有方法的实用性。也使得移动应用程序的识别面临诸多挑战。

移动应用程序网络流量具有以下特点:

  • 同质性:移动应用程序共享通用库和协议(如认证、广告等),且部分流量通过CDN或云服务,导致网络流量特征高度相似。
  • 动态性:用户行为对应用流量模式有显著影响,导致流量动态变化且难以预测。
  • 演化性:应用频繁更新和新增,同一应用程序的指纹可能持续变化。

这使得指纹提取变得复杂,为应对这些挑战,本文提出了一种半监督指纹生成方法。其核心思想是基于应用模块与静态目的地的交互模式,从加密的TCP/UDP流中发现目的地间的关联性,提取模式生成应用指纹。该方法无需先验知识即可生成指纹。

2、数据集与特征

作者使用了4种加密流量数据集,涵盖以下类型:

  • ReCon 和 ReCon Extended: 包含512个Android应用的流量和5个应用的多个版本跟踪流量,时间跨度为8年。
  • Cross Platform Dataset: 包含215个Android和196个iOS应用流量。数据为用户生成,涵盖不同操作系统和应用市场。
  • Andrubis Dataset: 包含超过100万Android应用的流量,其中包括恶意和正常应用。
  • Browser Dataset: 包含4种主要浏览器的模拟操作数据,用于覆盖浏览器流量,浏览器看作是一个应用程序。

作者使用调整互信息(AMI)对ReCon数据集中TLS加密流量的特征进行了分析与排名,并在评估中发现这些特征在其他数据集中也具备良好的泛化能力。

  • 时间特征(Temporal features):时间特征如流间时间(Inter-flow timing)和数据包到达时间间隔(Packet inter-arrival time)能够反映应用程序的活跃时间及通信模式。

  • 设备特征(Device features):源IP地址(IP address-source)能够指示生成流量的设备,从而间接反映设备上运行的应用程序组合。本研究没有直接将源IP地址作为特征,而是基于每个设备独立生成应用指纹,以减少设备动态行为对识别精度的影响。

  • 目标特征(Destination features):服务器IP地址(IP address-destination)和TLS证书特征(如有效期、扩展集等)揭示了应用程序与服务器之间的交互模式。应用程序通常通过与特定服务器的通信实现功能,这些特征有助于区分应用。

  • 规模特征(Size features):进出流量的数据包大小的标准差(std)表明应用程序数据传输的规模,部分特征具有较高的信息含量,能够用于区分不同应用。然而,大多数数据包大小特征的AMI值较低,在半监督场景中效果有限。因此,虽然本研究未将数据包大小特征作为核心指标,但在监督学习方法中仍可能有用。

3、方案设计

本研究聚焦于单一应用指纹,即在某一时刻设备上运行的流量只来源于一个独立的应用程序,假设安全监控方具备以下能力:

  • 流量追踪:能够通过NAT或IP地址变化追溯流量到特定设备。
  • 设备区分:能够区分移动设备与非移动设备的流量。
  • 网络范围:仅监控自身网络(如企业WiFi),无法访问其他网络的流量。

整体方案如下所示:

A. 提取特征(Feature Extraction):从每个移动设备的网络流量中提取TCP/UDP流,并抽取相关特征。
B. 目标聚类(Destination Clustering):基于流的目标地址对每个设备的流量进行聚类,以发现常见的通信模式。
C. 浏览器检测(Browser Detection):单独识别和隔离浏览器流量,因为浏览器的行为不同于普通应用。
D. 关联发现(Correlation Discovery):基于时间上接近的网络活动,发现目标地址之间的强关联。
E. 生成指纹(Fingerprint Creation):将强关联的流量分组,创建代表应用的指纹。
F. 匹配与更新(Fingerprint Matching and Updating):将新生成的指纹与已知指纹库匹配,并对指纹库进行更新。

4、实验评估

本文对FLOWPRINT方案做了全方面的评估实验,从5个方面出发,即已知应用识别、未知应用识别、浏览器识别、特征变化识别以及应用数量对识别效果的影响。

  • 已知应用识别
    为了证实半监督学习的FLOWPRINT的有效性,作者拿本文方案与监督学习的AppScanner进行比较,FLOWPRINT与的AppScanner 精确率相当,但FLOWPRINT召回率显著更高。

  • 未知应用识别
    除了对已经见过的APP进行识别,本文还针对未见过的APP识别做了评估。

  • 浏览器识别
    针对浏览器的情况,作者也单独做了评估。

  • 特征变化识别
    对于特征发生变化的情况(如APP更新),实验分为已知APP和未知APP的检测。

  • 应用数量对识别效果影响
    为了评估设备安装应用数量对FLOWPRINT性能的影响,研究通过在不同数量的应用上训练模型,并通过10折交叉验证测试其在已知应用识别和20%未知应用检测中的表现。

5、总结

FLOWPRINT是一种用于从加密的移动网络流量中实时生成应用指纹,无需依赖网络中活跃应用的先验知识的APP识别方案。在实验评估中,FLOWPRINT在已知应用识别中达到了89.2%的准确率,优于当前使用监督学习的方法,并在检测新应用时表现出93.5%的精确率。这些结果凸显了半监督学习方法在应对应用程序动态变化和同质化流量方面的有效性。

安全学术圈招募队友-ing 
有兴趣加入学术圈的请联系 secdr#qq.com

文章来源: https://mp.weixin.qq.com/s?__biz=MzU5MTM5MTQ2MA==&mid=2247491432&idx=1&sn=d48662be3067c67fc6487603ec4bae5a&chksm=fe2ee0e3c95969f5b35e46bdd29949679fa7c4259b5bfc6e5b578fa01121556559e80e7e4d96&scene=58&subscene=0#rd
如有侵权请联系:admin#unsafe.sh