解密数字足迹:突破性网络流量指纹识别技术揭秘
- Published on
目录
- Fine-Grained High-Utility Dynamic Fingerprinting Extraction for Network Traffic Analysis
- FLOWPRINT: Semi-Supervised Mobile-App Fingerprinting on Encrypted Network Traffic
- Locality Sensitive Hashing for Network Traffic Fingerprinting
- Fingerprinting Network Entities Based on Traffic Analysis in High-Speed Network Environment
- 附录
Fine-Grained High-Utility Dynamic Fingerprinting Extraction for Network Traffic Analysis
概要
- 使用细粒度高效用动态指纹提取(Huf)算法基于N-gram模型构建Huf-Tree。
- 结合网络流量段-IP地址转换(IAT)方法,实现动态应用程序指纹提取。
- 计算指纹的效用,以获得更有价值的指纹,实现细粒度和高效的流量特征提取。
- 通过自动化特征提取过程来解决对手动分析高度依赖的问题。
数据集
- 公开数据集:WRCCDC-PCAPS,来自瑞典网络安全公司Netresec发布的数据集。
- 实际环境采集的网络数据:Dataset1-Dataset8(不公开),在两部安装有常用软件的Android手机上采集的网络流量数据。
输出结果
输出的流量指纹包括以下特征:
- 分界点特征:不仅依赖时间,还结合IP地址、协议类型等,提取完整的细粒度应用指纹。
- 应用程序特征:提取每个应用程序独特的特征,如“三次握手”等常见网络通信结构。
- 动态特征:使用基于N-gram模型的树结构保存和提取应用指纹。
- 域名信息:通过分析应用类别的域名特征,为异常分析提供依据。
总结
该论文的细粒度指纹提取方法可以为网络流量分析提供更多有价值的指纹特征,特别是在细化应用特征方面,可以应用于复杂的网络环境中进行动态指纹的识别和分析。
FLOWPRINT: Semi-Supervised Mobile-App Fingerprinting on Encrypted Network Traffic
概要
- FLOWPRINT 是一种半监督方法,用于从加密网络流量中对移动应用程序进行指纹识别。
- 它利用目标相关特征之间的时间相关性来生成应用程序指纹。
- 虽然指纹生成过程不需要先验知识,但应用识别和未知应用检测需要一些已知标签。
数据集
- Cross Platform dataset: https://recon.meddle.mobi/cross-market.html
- ReCon dataset: https://recon.meddle.mobi/appversions/
- Andrubis dataset: https://drive.google.com/drive/folders/1IXa3IJS9zJS4vggpyU7yda8f7jZjz4gB
- Browser dataset: https://drive.google.com/open?id=1wOdrfazbrcMDrL0NfA4GLoWegtPqkPj3
特征值
由于主要处理加密流量,FLOWPRINT 使用了以下特征值:
- 时间特征:流量间的时间间隔、入向数据包的到达时间间隔。
- 设备特征:源IP地址。
- 目的地特征:目的IP地址、TLS证书信息(有效期、序列号、扩展集)。
- 大小特征:入向数据包大小标准差、出向数据包大小标准差。
源代码
https://github.com/Thijsvanede/FlowPrint/blob/master/README.md
总结
FLOWPRINT 为我们提供了一个强大的工具来分析加密流量。我们可以利用这种方法来:
- 开发更高效的移动应用识别系统,即使在加密流量环境中也能准确识别应用。
- 基于其开源代码,我们可以进一步优化和定制算法,以适应特定的网络环境或应用场景。
Locality Sensitive Hashing for Network Traffic Fingerprinting
概述
- 提出了一种使用局部敏感哈希(LSH)的网络流量指纹识别方法,特别是Nilsimsa LSH函数。
- 探索了Nilsimsa LSH函数的替代设计选择,包括窗口大小、n-gram大小、哈希函数、累加器大小和阈值计算。
- 开发了一个名为LSIF-R的设备识别系统,使用可调整的Nilsimsa函数。
特点
- LSIF-R不需要特征选择和提取,它只需要使用网络流量的哈希值作为特征。
- 这是一种有监督的设备识别方法,将设备产生的流量哈希值作为签名存储在数据库中。
数据集
作者只说数据集借鉴了论文IOT SENTINEL: Automated Device-Type Identification for Security Enforcement in IoT ,然后我查询了此论文发现也没细说数据集怎么来的
总结
基于LSH的网络流量指纹识别方法非常适合处理大规模网络数据,尤其在资源受限的环境中,通过快速生成指纹提高了分析效率。该方法可以应用于实时流量监控和大数据分析中,帮助识别和分类网络流量。该方法适合用于指纹的大分类,区别流量是来自哪台计算机网络设备。
Fingerprinting Network Entities Based on Traffic Analysis in High-Speed Network Environment
概要
- 使用 PFQ 内核模块进行数据包捕获,并使用 Storm 进行在线流量分析,为高速网络环境设计了一个分布式流量分析框架。
- 基于运行时环境分析,使用 961 个特征(如应用程序、操作系统和 HTTP User-Agent)。
- 基于行为指纹识别,使用 Web 访问记录、域名和 HTTP User-Agent 开发了一种用户识别方法,在 5 分钟内达到 79.51% 的准确率。
数据集
- 设备识别数据集:
- 从2016年6月1日到7月23日,共收集了118台用户设备的53天网络流量数据。
- 数据集包含50,305个有效的设备指纹。
- 跨设备用户识别数据集:
- 包括52,097个用户行为指纹。
这篇论文使用了两个数据集,一个是设备识别数据集,另一个是跨设备用户识别数据集。这些数据集都是作者从真实的网络流量中采集和提取得到的,所以不公开🥹。
特征值
961维的设备指纹特征向量包含以下内容:
- 应用程序类型和版本信息
- 浏览器类型、版本和操作系统类型等属性
- 单位时间内的网络流量特征,如某个应用程序的流量频率
论文中作者提到有 高达 961 种特征值之多,但是就是没有告诉读者分别是什么,给了一些笼统的特征,留着读者自己臆想😶。
总结
虽然该论文给我们提供特征值的获取方法,但是给我们提供了整个系统的架构和细节,给我们提供了方法。我们可以利用这种方法来开发适用于高速网络环境的实时网络监控系统,能够快速识别和分类网络实体。
附录
表1: 操作系统指纹识别
方法 | 协议 | 特征 | 算法 | 参考文献 |
---|---|---|---|---|
基于HTTP协议 | HTTP | - 网络元数据: 连接开始/结束时间, 端口, 源/目的IP地址, 接收端口 - HTTP特征: UA OS版本信息, 主机名 - TCP/IP特征: SYN大小, TCP SYN TTL, TCP窗口大小 | - 决策树 (深度 = 5, 15) - 人工神经网络 - K近邻 (K = 5, 40, 100) - 随机森林 (树数 = 10, 50, 120) - 朴素贝叶斯 | Operating System Fingerprinting Using Machine Learning |
基于HTTPS协议 | HTTPS | - TCP/IP特征: 平均每60分钟窗口12个唯一指纹 - HTTP特征: 平均每60分钟窗口3-4个唯一指纹 - TLS特征: 平均每60分钟窗口超过10个唯一指纹 - 综合特征: 615维特征向量 | - 单会话模型: 对每种指纹类型单独训练分类器, 使用MAP选择最可能的OS标签 - 多会话模型: 拼接不同会话特征, 使用随机森林分类 | OS Fingerprinting: New Techniques and a Study of Information Gain and Obfuscation |
HTTPS | - TLS Client Hello消息中的指纹特征 - 结合TCP/IP协议头特征 | - 建立未加密流量OS信息与加密流量特征的关联字典 | Passive operating system fingerprinting revisited: Evaluation and current challenges | |
HTTPS | - 初始SYN数据包大小(synSize) - TCP窗口大小(winSize) - 生存时间(TTL) | - 多类分类器 - 多数投票原则 - 微平均(micro-averaging)技术 | Passive OS Fingerprinting Methods in the Jungle of Wireless Networks | |
基于DNS协议 | DNS | - 操作系统特定的域名查询 - 操作系统特定应用程序的自动更新或同步功能产生的特定DNS查询 - 不同操作系统用户的上网偏好产生的特定DNS查询 - 查询模式(间隔时间,频率) - 查询时间间隔 | - 特征提取算法(如卡方检验) - 基于汉明距离的分类器 - 多类分类器 - NAT/网络共享检测算法 | Study on OS Fingerprinting and NAT/Tethering based on DNS Log Analysis |
- 独特的域名 (如android.clients.google.com, *.pool.ntp.org) - 查询模式 (查询间隔时间, 查询频率) - 查询时间间隔 (短时间内的频繁查询, 较长时间间隔的周期性查询) | - 基于特有域名查询特征的分析 - 查询模式分析 - 考虑查询周期性和不规则性的估算方程 | Passive OS Fingerprinting by DNS Traffic Analysis |
表2: 网站指纹识别
方法类别 | 具体方法 | 特征 | 算法 | 参考文献 |
---|---|---|---|---|
基于流量分析 | 有序特征序列 | - HTTP请求包大小序列 - HTTP响应包大小序列(除去MTU包) | - 编辑距离(Edit Distance)算法 | Website Fingerprinting and Identification Using Ordered Feature Sequences |
基于机器学习 | QUIC协议网站指纹 | 1. 数据包大小序列 2. 数据包总字节数 3. 某些大小数据包的出现情况 4. 数据包大小的累积和 5. 数据包数量 6. 数据包传输方向序列 7. 数据包间到达时间序列 8. 总传输时间 9. 某些大小数据包出现的次数 10. 带方向的数据包大小序列 11-31. (其他20个特征,详见原文) | - 自动机器学习(AutoML)框架 - Autogluon-Tabular模型 - 多种机器学习基础模型(超过50个) | QUIC website fingerprinting based on automated machine learning |
基于深度学习 | Tor网络网站指纹 | - 流量痕迹表示为Tor单元序列(1和-1) - 时间信息,方向和TCP数据包大小等元数据 | - 前馈神经网络 - 卷积神经网络(CNN) - 长短期记忆网络(LSTM) | Automated Website Fingerprinting through Deep Learning |
表3: 应用程序指纹识别
方法类别 | 具体方法 | 特征 | 算法 | 参考文献 |
---|---|---|---|---|
基于流量分析 | AppPrint | - URL参数, HTTP头部字段等token信息 - 流量分组信息 | - MAP算法(学习和完善指纹) - SCORE算法(流量识别) | AppPrint: Automatic Fingerprinting of Mobile Applications in Network Traffic |
基于统计规则 | 自动指纹提取 | - HTTP请求的HOST, GET/POST, PAYLOAD字段中的特征值 - 特征值在不同用户/采样中的出现概率 - 特征值的唯一性和长度 - APP特征值条件: 不同用户中出现概率>0.7, 只出现在该APP流量中, 长度8-64 - 用户指纹特征值条件: 同一用户不同采样中出现概率>0.7, 只出现在该用户流量中, 大部分用户(>0.7)流量中出现, 长度8-64 | - 三步提取方法: 1. 提取特征字段 2. 生成候选特征集 3. 应用统计规则 | Automatic Fingerprint Extraction of Mobile APP Users in Network Traffic |
基于机器学习 | 指纹识别系统 | - 从公开数据集(CIC-IDS 2017和KDD Cup 99)提取的相关特征 - 基于监控软件环境的特征 | - 随机森林 - 支持向量机(SVM) - K近邻(KNN) - 人工神经网络 - 草蜢优化算法(GOA)与深度学习算法GOIDS - 决策树 - 多层感知机 | Fingerprint Recognition System Using Machine Learning |
自动机学习和机器学习结合 | - 网络流的时间戳, 目的IP, 目的端口号和TLS证书 - 时间序列特征: ΔTi, ΔT'i - 符号特征: ΔΣi, SIMΣi | - 逻辑回归 - 支持向量机(SVM) - 距离函数 | Mobile App Fingerprinting through Automata Learning and Machine Learning | |
基于深度学习 | 大规模移动应用识别 | - 报文头部信息(IP/TCP标志位, 协议类型) - 报文负载数据(SSL/TLS握手) - 前6个数据包的前256字节数据 | - 卷积神经网络(CNN): 1D CNN和2D CNN - 长短期记忆(LSTM) - 堆叠自编码器(SAE) - 多层感知机(MLP) - 多任务学习框架 | Large-Scale Mobile App Identification Using Deep Learning |
基于图神经网络 | 基于流量关系的指纹识别 | - 原始数据包级别特征(如数据包大小序列) - 流级别关系信息(并发关系和触发关系) - 流关系图(FRG)学习得到的表示特征 - 全局表示向量v | - 图注意力网络(GAT) - 全局表示向量 - 密集层和softmax函数 - 交叉熵损失函数 | Accurate mobile-app fingerprinting using flow-level relationship with graph neural networks |