加密流量分类-实践5: 利用CIC-FlowMeter工具提取流量特征
加密流量分类-实践5: 利用CIC-FlowMeter工具提取流量特征
1 前言
许多研究工作基于CIC-FlowMeter
工具提取的csv文件的基础上进行的,目前开源的CIC-FlowMeter
工具要么使用jdk编译,要么是给出一个exe可执行文件然后使用图形化界面一个一个处理pcap,在处理大量pacp文件很麻烦,如下图。
2 代码
这里基于给出的exe可执行文件,利用python脚本批量处理pcap转化为csv文件。
import os
def generate_batch_csv(pcap_dir,csv_dir,cic_path):
"""批量将pcap转csv"""
for label in os.listdir(pcap_dir):
label_path = os.path.join(pcap_dir, label)
csv_label_dir = os.path.join(csv_dir,label)
if not os.path.exists(csv_label_dir):
os.makedirs(csv_label_dir)
for pcap in os.listdir(label_path):
pcap_file = os.path.join(label_path,pcap)
print(f"Analyzing {pcap_file}...")
# 调用cfm.bat脚本对pcap文件进行分析
os.chdir(cic_path)
os.system(f'call cfm.bat "{pcap_file}" "{csv_label_dir}"')
print("Done.")
print("完成了{}的处理".format(label))
print("所有的都处理完成")
def main():
# 设置pcap和csv文件夹路径
pcap_dir = r"xxx"
csv_dir = r"xx"
cic_dir = r"xx"
generate_batch_csv(pcap_dir,csv_dir,cic_dir)
if __name__ == "__main__":
main()
3 参数解释与执行效果
3.1 参数解释
pcap_dir
:是原始pcap所在的目录,底下是各个标签的目录与对应的pcap,具体如下---pcap_dir -- label_0_dir: --- label_0_pcap_0 --- label_0_pcap_1 --- label_0_pcap_2 ... -- label_1_dir: --- label_1_pcap_0 --- label_1_pcap_1 --- label_1_pcap_2 ... ... --- lable_n-1_dir: --- label_n-1_pcap_0 --- label_n-1_pcap_1 --- label_n-1_pcap_2
csv_dir
:是将csv文件存储的文件夹cic_dir
:是cic工具的bin
目录的所在路径我这里的示例
pcap_dir
:csv_dir
:随意新建一个文件夹
cic_dir
:
3.2 执行效果
截图
成果
以iscx-vpn-novpn2016
数据集为例,6分钟搞定