【问题标题】:Features' value in KDD99 data set was wrong?KDD99 数据集中的特征值错误?
【发布时间】:2018-02-24 04:51:39
【问题描述】:

KDD99 data set中,大量的连接第32和第33特征的值大于100。

我不明白为什么使用 100 个连接的 connection window 可以获得大于 100 的值?我查阅了很多资料,但一无所获。

【问题讨论】:

    标签: machine-learning dataset classification intrusion-detection network-security


    【解决方案1】:

    数据集包含每个连接的41 features

    这些特性是通过预处理 TCP 转储文件获得的。

    为此,TCP 转储文件中的数据包信息被汇总到连接中。具体来说(http://kdd.ics.uci.edu/databases/kddcup99/task.html):

    一个连接是一个 TCP 数据包序列,开始和结束于某个位置 定义的时间,数据从源 IP 地址流向目标的时间 某些定义明确的协议下的 IP 地址。

    一些特征(所谓的基于时间的交通特征)是在 2 秒的时间窗口内计算出来的。

    其他功能(基于主机的流量功能)使用估计的连接数(在本例中为 100)的历史窗口。

    基于主机的功能对于跨越间隔超过 2 的攻击很有用 秒。

    2 秒和 100 次连接在某种程度上是任意值。

    这两类特征的值没有上限(例如 2 秒间隔内与同一主机的连接数可以大于 100)。

    同样的“应该”适用于:

    32. | dst host count | count of connections having the same destination host
    
    
    
    33. | dst host srv count | count of connections having the same
                               destination host and using the same service
    

    问题在于没有解释 KDD 特征提取细节的文档。主要参考是:

    A Framework for Constructing Features and Models for Intrusion Detection Systems - WENKE LEE / SALVATORE J. STOLFO

    从中可以看出bro-ids tools 被使用了:

    使用 Bro 作为数据包过滤和重组引擎。我们扩展了 Bro 以处理 ICMP 数据包,并对其数据包片段检查模块进行了更改,因为它在处理包含 Teardrop 或 Ping-of-Death 攻击的数据时崩溃了。我们使用 Bro“连接完成”事件处理程序来输出每个连接的汇总记录。

    在 Bro 事件处理程序中,我们添加了检查交互式 TCP 连接(例如,telnet、ftp、smtp 等)的数据交换的功能。这些函数为一组“内容”特征分配值,以指示数据内容是否暗示可疑行为。

    但这还不够。

    dst host countdst host srv count 都在 [0,255] 范围内。

    Github 上的 AI-IDS/kdd99_feature_extractor 项目可以从原始数据中提取第 32 和第 33 特征(查看 stats*.cpp 文件)但是:

    某些特征的计算方式可能与 KDD 中的计算方式不同

    有关 Stackoverflow 的相关问题是:

    【讨论】:

    • 非常感谢您的详细解答,但我还是有问题。在我看来,获取第 32 和第 33 个特征值的方法是检查当前连接之间的 100 个连接,如果有一个连接符合条件,则该特征的值将加 1。但是这样,我们不能得到一个大于 100 的值。
    • 我已经修改了我的答案。您可能可以从 AI-IDS/kdd99_feature_extractor 项目开始
    • 非常感谢您的回答,让我深受鼓舞
    猜你喜欢
    • 2023-02-09
    • 1970-01-01
    • 2012-12-14
    • 1970-01-01
    • 2019-01-30
    • 2018-08-04
    • 2021-04-11
    • 2014-02-05
    • 1970-01-01
    相关资源
    最近更新 更多