【论文阅读#3】FLOWPRINT : Semi-Supervised Mobile-App Fingerprinting on Encrypted Network Traffic

一、论文信息

本文是发表在NDSS 2020上的一篇文章,作者在本文中提出了一种从加密的网络流量中提取移动应用程序指纹的半监督方法。该方法可以有效识别Android和iOS上的应用程序且不需要先验知识,并且工作效率可控,实验结果远超目前最先进的解决方案。

1.1、摘要原文

Mobile-application fingerprinting of network traffic is valuable for many security solutions as it provides insights into the apps active on a network. Unfortunately, existing techniques require prior knowledge of apps to be able to recognize them. However, mobile environments are constantly evolving, i.e., apps are regularly installed, updated, and uninstalled. Therefore, it is infeasible for existing fingerprinting approaches to cover all apps that may appear on a network. Moreover, most mobile traffic is encrypted, shows similarities with other apps, e.g., due to common libraries or the use of content delivery networks, and depends on user input, further complicating the fingerprinting process.

As a solution, we propose FLOWPRINT , a semi-supervised approach for fingerprinting mobile apps from (encrypted) network traffic. We automatically find temporal correlations among destination-related features of network traffic and use these correlations to generate app fingerprints. Our approach is able to fingerprint previously unseen apps, something that existing techniques fail to achieve. We evaluate our approach for both Android and iOS in the setting of app recognition, where we achieve an accuracy of 89.2%, significantly outperforming state-of-the-art solutions. In addition, we show that our approach can detect previously unseen apps with a precision of 93.5%, detecting 72.3% of apps within the first five minutes of communication.

 

1.2摘要译文

移动应用程序的网络流量指纹对许多安全解决方案都很有价值,因为它提供了对网络上活动的应用程序的深入了解。不幸的是,现有的技术需要预先了解应用程序才能识别它们。然而,移动环境是不断发展的。在美国,应用程序经常被安装、更新和卸载。因此,现有的指纹识别方法无法覆盖所有可能出现在网络上的应用程序。此外,大多数移动通信都是加密的,与其他应用程序有相似之处,比如由于公共库或内容分发网络的使用,并且依赖于用户输入,这进一步增加了指纹识别过程的复杂性。

作为一种解决方案,我们提出了FLOWPRINT,一种用于从(加密的)网络流量中提取移动应用程序指纹的半监督方法。我们自动发现与目的地相关的网络流量特征之间的时间相关性,并利用这些相关性生成app指纹。我们的方法能够识别以前从未见过的应用程序,这是现有技术无法实现的。我们评估了Android和iOS在应用识别设置上的方法,我们实现了89.2%的准确率,显著优于最先进的解决方案。此外,我们证明我们的方法可以检测到之前未见过的应用程序,准确率为93.5%,在交流的前5分钟内检测到72.3%的应用程序。

 

1.3结论原文

In this work we proposed FLOWPRINT , a novel approach for creating real-time app fingerprints from the encrypted network traffic of mobile devices. Unlike existing approaches, our approach does not rely on any prior knowledge about apps that are active in a certain network. Therefore, the strength of FLOWPRINT lies in its ability to detect previously unseen apps in encrypted network traffic. This allows us to deal with evolving sets of apps, opening many security applications for which fingerprinting was previously unsuitable.

In our evaluation, FLOWPRINT achieved an accuracy of 89.2% for recognizing apps, outperforming the supervised state-of-the-art approach. Furthermore, we showed that our approach is able to detect previously unseen apps with a precision of 93.5%. These results demonstrate the capabilities of semi-supervised approaches when dealing with evolving systems, such as mobile apps, even in the presence of largely homogeneous traffic due to third-party libraries and services.

 

1.4结论译文

在这项工作中,我们提出了FLOWPRINT,一种从移动设备的加密网络流量创建实时应用指纹的新方法。与现有的方法不同,我们的方法不依赖于关于在特定网络中活动的应用程序的任何先验知识。因此,FLOWPRINT的强大之处在于它能够在加密的网络流量中检测到以前看不到的应用程序。这使我们能够处理不断发展的应用程序集,打开许多以前不适合指纹识别的安全应用程序。

扫描二维码关注公众号,回复: 11205462 查看本文章

在我们的评估中,FLOWPRINT识别应用程序的准确率达到了89.2%,超过了监督的最先进的方法。此外,我们还证明了我们的方法能够检测到以前没有发现过的应用程序,其精度为93.5%。这些结果证明了半监督方法在处理不断发展的系统(如移动应用程序)时的能力,即使由于第三方库和服务而存在大量的同质流量。

 

二、文章总结

2.1Background & Significance

 

 

 

 

2.2 Approach

Step 1:提取特征:我们分别查看每个移动设备的TCP和UDP流。对于每个设备,我们提取目标IP和端口号、时间戳(用于计算流之间的时间间隔)、流中所有包的大小和方向,如果适用,还提取该流的TLS证书。

Step 2:聚类:将一定时间段内产生的流量(分批)若满足以下任一条件:(1)流包含相同的元组(目标IP地址、目标端口);(2)流包含相同的TLS证书;则默认其网络目的地相同,将TCP/UDP流聚在一起。

Step 3:隔离浏览器流量:浏览器检测器使用以下特性:(1)活动集群中的相对变化;(2)上传字节数的相对变化;(3)下载字节数的相对变化;(4)上传/下载比例的相对变化。作者先用带标签的浏览器和非浏览器数据训练一个随机森林分类器,当分类器在时间t检测到来自浏览器的TCP/UDP流时,作者设置在[t 10,t + 10]秒的时间范围内隔离所有活动的连接。

Step 4:相关性聚类:仅使用目的地集群不足以实现指纹识别应用程序,因为网络目的地是在应用程序之间共享的,并且在不同的应用程序执行过程中可能会发生变化。作者定义相关性公式发现网络目的地之间的相关性,对流量进行重新聚类。

    

Step 5:生成App指纹:根据强相关性创建指纹,使用到(目标IP、目标端口)-元组和TLS -证书,它可以在不需要任何先验知识的情况下根据网络流量本身的特征进行计算。

Step 6:指纹比对:应用程序在不同的时间与不同的目的地通信,这要么是因为流量是基于用户交互的,这是动态的,要么是因为应用程序为不同的功能产生不同的流量。因此,同一款app的指纹可能会出现不同程度的差异。为了测试两个指纹是否相似,作者使用Jaccard相似性度量,因为我们的指纹是集合的,所以Jaccard相似性是一个自然的度量。如果这些指纹相似,甚至可以通过取指纹的并集进行合并。

 

三、总结

本文作者提出了一种新型的从加密的网络流量中提取应用程序指纹的方法,主要通过网络流量的目的相关性进行,可以不用先验知识识别出应用程序。该方法的优点是,因为目的地和其相关性的聚类,即使攻击者通过一些方法恶意重定向所有流量,该方法依旧可以很好的工作。该方法的基础是加密的网络流量,如果是一些使用流量较小的应用程序可能不能够很好的工作。

从我自己的角度来说,文章中多次提及一个应用程序可能包含不同的模块,这些模块的通信地址可能各不相同,因此作者在Step 6对应用指纹进行相关性判断,将相似度较高的指纹进行合并。如果从不合并的角度来说,相似性较高的两个指纹可能属于同一个应用程序的不同模块,这样是否可以进一步去识别应用程序的具体功能?而且文章中使用TLS证书是基于Android大部分应用程序都使用的情况下,如果改变协议是否依旧具有较高的效率仍然有待商榷。

 

参考文献:

[1] 陈良臣,高曙,刘宝旭,等. 网络加密流量识别研究进展及发展趋势[J]. 信息网络安全,2019,19(3):19-25.

原创文章 6 获赞 4 访问量 2526

猜你喜欢

转载自blog.csdn.net/Elivyxy/article/details/105289432