CIC-IDS-2018数据集实战:从下载到特征解析

发布时间:2026/7/5 11:44:42

CIC-IDS-2018数据集实战:从下载到特征解析 1. CIC-IDS-2018数据集概述CIC-IDS-2018是加拿大网络安全研究所CIC与通信安全机构CSE合作开发的网络入侵检测基准数据集。这个数据集模拟了真实企业网络环境包含7种常见攻击场景和正常流量数据总数据量超过500GB。我在实际项目中多次使用该数据集进行异常流量检测模型训练发现其最大特点是特征维度丰富——每个网络流记录包含80多个由CICFlowMeter-V3提取的流量特征。数据集按日期组织包含2018年2月14日至3月2日共10天的网络流量记录。其中每天对应不同的攻击类型组合2月14日SSH暴力破解、FTP暴力破解2月15日GoldenEye和Slowloris拒绝服务攻击2月16日Hulk和SlowHTTPTest拒绝服务攻击2月20日LOIC发起的HTTP/UDP洪水攻击2月22-23日Web暴力破解、XSS和SQL注入攻击2月28日-3月1日内网渗透攻击3月2日僵尸网络活动2. 从AWS S3下载数据集2.1 环境准备首先确保已安装AWS CLI并配置好权限。如果只是下载公开数据集无需AWS账户即可直接访问。我在Ubuntu 20.04上的安装命令如下curl https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip -o awscliv2.zip unzip awscliv2.zip sudo ./aws/install2.2 查看数据集目录使用以下命令列出所有可用文件注意数据集存放在加拿大中部区域aws s3 ls --no-sign-request s3://cse-cic-ids2018 --recursive --human-readable --summarize输出会显示两个主要目录Original Network Traffic and Log data/原始PCAP包和日志文件约300GBProcessed Traffic Data for ML Algorithms/预处理好的CSV文件约50GB2.3 下载特定文件建议优先下载处理好的CSV文件例如下载2月16日的DoS攻击数据aws s3 cp --no-sign-request \ s3://cse-cic-ids2018/Processed Traffic Data for ML Algorithms/Friday-16-02-2018_TrafficForML_CICFlowMeter.csv \ ./dataset/注意单个CSV文件可能超过3GB建议使用--no-sign-request参数避免超时中断3. 数据集文件结构解析3.1 原始数据构成每个日期的原始数据包含pcap.zip原始网络流量包30-50GB/天logs.zip系统日志150-200MB/天3.2 预处理后的CSV文件处理后的CSV文件命名规则为[星期]-[日期]-[年份]_TrafficForML_CICFlowMeter.csv例如Thursday-15-02-2018_TrafficForML_CICFlowMeter.csvWednesday-28-02-2018_TrafficForML_CICFlowMeter.csv文件首行为特征名称末列为标签Benign或攻击类型。实测发现2月20日的文件异常大约3.8GB因其包含LOIC发起的DDoS攻击数据。4. CICFlowMeter特征详解4.1 基础流量特征这些特征反映网络流的基本属性Flow Duration流持续时间微秒Tot Fwd Pkts正向包数量源→目标Tot Bwd Pkts反向包数量目标→源TotLen Fwd Pkts正向总字节数TotLen Bwd Pkts反向总字节数4.2 统计特征反映流量分布的统计量Flow IAT Mean包到达间隔平均值Flow IAT Std包到达间隔标准差Fwd Pkt Len Max正向最大包长度Bwd Pkt Len Min反向最小包长度Pkt Size Avg平均包大小4.3 协议特征与TCP/IP协议相关的特征Protocol协议类型6TCP, 17UDPFwd PSH FlagsPSH标志出现次数Fwd URG FlagsURG标志出现次数FIN Flag CntFIN标志计数SYN Flag CntSYN标志计数4.4 时间行为特征反映流量时间模式的特征Active Mean活跃状态平均时长Idle Std空闲时间标准差Fwd Byts/b Avg正向字节/突发平均值Bwd Blk Rate Avg反向块速率平均值5. 特征工程实践建议5.1 特征选择技巧根据我的实战经验建议优先关注这些高价值特征流持续时间相关Flow Duration、Active Mean、Idle Max包大小分布Fwd Pkt Len Std、Bwd Pkt Len Mean协议标志SYN Flag Cnt、RST Flag Cnt速率特征Flow Pkts/s、Flow Byts/s5.2 数据清洗要点原始数据需要处理以下问题缺失值用-inf标记的缺失值需替换数值溢出部分超大值需要截断类别不平衡Benign样本占比通常超过80%5.3 可视化分析示例使用Python绘制关键特征分布import pandas as pd import matplotlib.pyplot as plt df pd.read_csv(Friday-16-02-2018_TrafficForML_CICFlowMeter.csv) plt.figure(figsize(12,6)) df[df[Label]Benign][Flow Duration].hist(alpha0.5, bins50, labelNormal) df[df[Label]!Benign][Flow Duration].hist(alpha0.5, bins50, labelAttack) plt.yscale(log) plt.legend() plt.title(Flow Duration Distribution)6. 典型攻击特征模式6.1 DoS攻击特征以Slowloris攻击为例其显著特征包括极高的Flow Duration长达数小时极低的TotLen Fwd Pkts单个包仅几百字节异常的Fwd Pkt Len Min/Max比值6.2 暴力破解特征SSH暴力破解的表现Tot Bwd Pkts远大于Tot Fwd Pkts高频的SYN Flag CntFlow IAT Std值波动剧烈6.3 DDoS攻击特征LOIC发起的UDP洪水攻击Flow Byts/s超过10^6TotLen Bwd Pkts接近0Bwd Pkt Len Mean稳定在特定值7. 机器学习建模建议7.1 数据预处理流程推荐的处理流程过滤无关特征如时间戳处理缺失值和异常值标准化/归一化数值特征对类别特征进行编码使用SMOTE处理样本不平衡7.2 模型选择根据我的测试结果随机森林对特征缩放不敏感适合快速验证XGBoost在AUC指标上表现最佳LSTM适合处理时间序列特征7.3 评估指标不要只看准确率建议关注精确率-召回率曲线各类别的F1分数MCCMatthews相关系数在实际部署中误报率False Positive Rate往往比检测率更重要。我曾遇到一个案例将FPR从5%降到1%使运维效率提升了3倍。

相关新闻