首页
/ CICFlowMeter 网络流量分析与特征提取工具使用指南

CICFlowMeter 网络流量分析与特征提取工具使用指南

2026-02-06 05:42:01作者:段琳惟

CICFlowMeter(原名 ISCXFlowMeter)是一个开源的网络流量分析工具,能够从pcap文件中生成双向流量流(Biflows)并提取丰富的流量特征。该工具广泛应用于网络安全研究和异常检测领域,特别是在多个知名的网络安全数据集中发挥着重要作用。

项目概述

CICFlowMeter 是一个功能强大的网络流量流生成器,能够生成双向流量流,其中第一个数据包确定前向(源到目的地)和后向(目的地到源)方向,从而可以分别计算前向和后向方向的统计时间相关特征。该工具还支持从现有特征列表中选择特征、添加新特征以及控制流超时持续时间。

环境准备与依赖安装

安装 jnetpcap 本地仓库

CICFlowMeter 依赖于 jnetpcap 库进行网络数据包捕获和分析。在运行项目前需要先安装 jnetpcap 本地仓库:

# Linux 系统安装步骤
cd jnetpcap/linux/jnetpcap-1.4.r1425
mvn install:install-file -Dfile=jnetpcap.jar -DgroupId=org.jnetpcap -DartifactId=jnetpcap -Dversion=1.4.1 -Dpackaging=jar

# Windows 系统安装步骤  
cd jnetpcap/win/jnetpcap-1.4.r1425
mvn install:install-file -Dfile=jnetpcap.jar -DgroupId=org.jnetpcap -DartifactId=jnetpcap -Dversion=1.4.1 -Dpackaging=jar

项目运行方式

使用 IntelliJ IDEA 运行

在 IntelliJ IDEA 中打开终端并执行以下命令:

# Linux 系统
sudo bash
./gradlew execute

# Windows 系统
gradlew execute

使用 Eclipse 运行

在 Eclipse 中运行项目需要进行以下配置:

  1. 右键点击 src/main/java/cic/cs/unb/ca/ifm/App.java
  2. 选择 Run As -> Run Configurations -> Arguments
  3. VM arguments 中添加:
    -Djava.library.path="jnetpcap/linux/jnetpcap-1.4.r1425"
    
  4. 点击 Run 运行

或者直接右键点击 App.java 选择 Run As -> Java Application

项目打包与分发

使用 Gradle 打包

# Linux 系统
./gradlew distZip

# Windows 系统
gradlew distZip

打包后的 ZIP 文件将生成在 build/distributions 目录下。

使用 Maven 打包

mvn package

使用 Maven 打包后,JAR 文件将生成在 target 目录中。

流量特征提取功能

CICFlowMeter 能够提取 80 多个网络流量特征,包括:

基本流量统计特征:

  • 流持续时间(Flow duration)
  • 前向/后向数据包总数
  • 前向/后向数据包总长度
  • 数据包长度统计(最小值、最大值、均值、标准差)

时间相关特征:

  • 流字节/秒(Flow Bytes/s)
  • 流数据包/秒(Flow Packets/s)
  • 流内到达时间统计(IAT Mean, Std, Max, Min)
  • 前向/后向 IAT 统计

协议标志特征:

  • TCP 标志计数(FIN、SYN、RST、PSH、ACK、URG、CWR、ECE)
  • 前向/后向 PSH 标志
  • 前向/后向 URG 标志

高级流量特征:

  • 下载/上传比率(down/Up Ratio)
  • 平均数据包大小
  • 子流统计
  • 活动/空闲时间统计
  • 初始窗口字节数

典型应用场景

网络安全研究

CICFlowMeter 广泛应用于多个网络安全数据集的分析,包括:

  • Android 广告软件和通用恶意软件数据集(CICAAGM2017)
  • 入侵检测系统数据集(CICIDS2017)
  • Android 恶意软件数据集(CICAndMal2017)
  • 分布式拒绝服务攻击数据集(CICDDoS2019)

异常检测

通过提取的丰富流量特征,研究人员可以:

  • 训练机器学习模型进行网络异常检测
  • 识别恶意流量模式
  • 分析加密和VPN流量特征
  • 进行TOR流量特征分析

技术特点

  1. 双向流生成:支持生成完整的双向流量流分析
  2. 特征可扩展:允许用户选择现有特征或添加新特征
  3. 超时控制:可自定义流超时持续时间
  4. 协议支持:全面支持TCP和UDP协议分析
  5. 跨平台:支持Linux和Windows操作系统

注意事项

  • TCP 流通常在连接拆除时终止(通过FIN数据包)
  • UDP 流通过流超时终止,超时值可以任意分配(例如TCP和UDP都为600秒)
  • 运行需要相应的系统权限,Linux系统建议使用sudo

CICFlowMeter 作为一个成熟的网络流量分析工具,为网络安全研究人员提供了强大的流量特征提取能力,是进行网络异常检测和流量分析的重要工具。

登录后查看全文
热门项目推荐
相关项目推荐