异常检测实验

fwood201fwood201 成员职位:13贡献我
2018年11月编辑 帮助

我正在进行我最后一年的项目,关于网络安全的机器学习,我是一个完全的RM初学者。我希望创建一个过程来演示机器学习技术在检测IDS中的签名和异常方面是多么有效,为此我使用了KD99 cup数据集,我已经为其标记和未标记集。我们的目标显然是创建一个分类器,它将从这些数据中进行训练,并能够发现异常。我已经下载了异常检测扩展,但我也不太确定如何使用它们。

此外,由于数据已经被标记,我想知道是否更好地将结果命名为发生的特定攻击(即smurf, SQLattack等)或简单地输出“恶意”或“良性”以及如何做到这一点。

弗雷泽

标记:
Thomas_Ott

最佳答案

  • yyhuangyyhuang 管理员,员工,RapidMiner认证分析师,RapidMiner认证专家,成员职位:362RM数据科学家
    解决方案接受

    @fwood201

    KDD99是一种广泛应用于异常检测的数据集。我建议使用二元标签作为良好的起点(攻击或正常),因为在几种攻击类别中可能没有足够的案例进行多项分类。注意不平衡的班级。

    我在谷歌上快速搜索了一下,一些研究人员总结了不同学习者的准确性

    他们提到在原始数据中,你可能需要小心重复的数据。

    您可以在rapidminer中构建SVM, Decision Tree, Random Forest, Naive Bayes, GBT等模型进行二项分类,并为您自己的模型评估性能(AUC,准确性,召回率,F-measurement,…)。如果对无监督学习算法感兴趣,您可以看看来自Marketplace的离群检测操作符和异常检测扩展。例如,LOF苏格兰哈里法克斯银行.也有一些尖端的欺诈检测算法可用与世隔绝的森林),结合任何R/Python库的功能。

    RapidMining快乐。

    YY

    Thomas_Ott

答案

  • BalazsBaranyBalazsBarany 管理员,版主,员工,RapidMiner认证分析师,RapidMiner认证专家职位:892独角兽

    我还建议为不同的攻击和其他攻击建立模型。

    由于攻击的属性可能非常不同,如果需要匹配太多的属性,有些算法将无法找到它们。例如,如果DDOS攻击具有大带宽,但用户枚举攻击没有,许多学习者不会发现这个属性对一般攻击有帮助,但他们会将其识别为DDOS。(我只是随便举几个例子。)

    问候,

    Balazs

  • fwood201fwood201 成员职位:13贡献我

    异常检测流程。根据我已经知道的,为了使异常系统工作,你需要一个数据源(KD99数据集),一个预处理阶段(用嵌入式标记化和转换案例处理数据中的文档,以创建TF-IDF词向量),然后是一个正常的配置文件学习阶段(所以规则构建等,但不确定哪些操作符会在这个数据集上工作),最后是检测异常的东西。



    我已经安装了异常检测扩展,据我所知,它已经包含了各种算法,但我不确定如何实现它的操作符,我只是不断得到错误,这真的很令人沮丧。

    对于指标,我希望看到误报率和实际检测到的攻击数量。数据被标记为正常或攻击,但我也有正常的未标记数据-每次我使用这个,但它总是要求我放入一个特殊的属性。

    任何帮助都将非常感激。


  • yyhuangyyhuang 管理员,员工,RapidMiner认证分析师,RapidMiner认证专家,成员职位:362RM数据科学家

    谢谢你的反馈@fwood201!异常检测扩展有一堆“无监督”学习算法,为输入的数字数据生成异常分数。

    如果你运行“监督”学习方法进行分类,你必须指定哪个属性是你的预测目标(在rapidminer中,我们称其为“标签”,表示基本事实)。

    在“设置角色”操作符中,可以定义特殊属性。属性包含有关示例的信息。有些类型的信息是特殊的,提供的信息不适合用作学习输入。例如,这可能是人类为这个特定的例子找到的真正的标签。你不希望使用真实的标签作为学习的输入变量,否则结果将非常简单:标签A的例子得到标签A。所以特殊属性不用于学习。
    类型现在定义了它们的角色:
    —Id属性用于标识示例
    —label属性用于存储真实标签
    -权重用来给一个例子一个权重,如果它是非常重要的。然后学习者会给这个例子更多的关注来预测这个例子的正确性。
    -集群属性存储本示例被分配到哪个集群的信息
    -预测属性将存储由模型应用程序或其他东西执行的预测。
    其他特殊的类型非常……特殊的,只在少数应用中使用。你现在可能会忽略它。

  • Thomas_OttThomas_Ott RapidMiner认证分析师,RapidMiner认证专家,成员职位:1761年独角兽

    你能分享一下你的过程吗?也许我们可以检查一下错误。

  • fwood201fwood201 成员职位:13贡献我

    在这里。我还尝试使用样本部分的“离群检测”模板,并将未标记的KD数据输入其中。这个过程目前持续了16个多小时。这是正常的还是不正常的?

    干杯

    F

  • Thomas_OttThomas_Ott RapidMiner认证分析师,RapidMiner认证专家,成员职位:1761年独角兽

    来自数据操作符的过程文档上有些东西看起来不对。做一些事情。在Process Doc操作符上打开修剪开关,并仔细检查您输入的字符串值是否采用RapidMiner文本数据格式。您可能需要一个标称到文本操作符来转换它。

登录注册置评。