1998年美国国防部高级规划署(DARPA)在MIT林肯实验室进行了一项入侵检测评估项目。林肯实验室建立了模拟美国空军局域网的一个网络环境,
收集了9周时间的 TCPdump(*) 网络连接和系统审计数据,仿真各种用户类型、各种不同的网络流量和攻击手段,使它就像一个真实的网络环境。
这些TCPdump采集的原始数据被分为两个部分:7周时间的训练数据 (**) 大概包含5,000,000多个网络连接记录,剩下的2周时间的测试数据大概包
含2,000,000个网络连接记录。
一个网络连接定义为在某个时间内从开始到结束的TCP数据包序列,并且在这段时间内,数据在预定义的协议下(如TCP、UDP)从源IP地址到目的
IP地址的传递。每个网络连接被标记为正常(normal)或异常(attack),异常类型被细分为4大类共39种攻击类型,其中22种攻击类型出现在训练
集中,另有17种未知攻击类型出现在测试集中。(***)
随后来自哥伦比亚大学的Sal Stolfo 教授和来自北卡罗莱纳州立大学的 Wenke Lee 教授采用数据挖掘等技术对以上的数据集进行特征分析和数据预处理,
形成了一个新的数据集。该数据集用于1999年举行的KDD CUP竞赛中,成为著名的KDD99数据集。虽然年代有些久远,但KDD99数据集仍然是网络入侵
检测领域的事实Benckmark,为基于计算智能的网络入侵检测研究奠定基础。
(*) tcpdump 是linux下的网络分析工具,它可以根据使用者的定义对网络上的数据包进行截获。同类工具有Wireshark和sniffer。
(**) 训练(train)与测试(test) 是机器学习中的概念,通常用在分类器设计中。训练数据包含输入与输出,输入的是特征集合(features),输出的是分
类结果(label);而测试数据集只包含输入(特征集合)。这个学习过程简单的讲就是经过训练数据训练过的模型,能够给测试数据标定分类结果。