神经网络、遗传算法作为入侵检测系统



嗨,我需要一些帮助来开始创建我的第一个算法;我想创建一个NN/遗传算法,用作入侵检测系统。

但我在一些问题上很吃力(以前从未写过算法。)

  1. 我想在C#中开发,作为控制台应用程序可能吗?如果是这样的话,作为一个前兆,在最简单的形式下,这个程序大致会有多大。在c#中,这可能吗
  2. 如何连接程序从网络读取数据?以及如何将数据包转换为算法的可读数据
  3. 如何让程序为snort或其他形式的防火墙编写规则,并阻止程序认为的潜在威胁。(即,它发现来自2号的威胁,然后在snort规则页面中写入一条规则来阻止特定流量)
  4. 如何跟踪数据。(是什么阻碍了它观察它是如何得出这个结论的)
  5. 在网络上的何处放置?(该程序能否连接到其他算法并在同一网络上共享数据,这是否有益)

如果有人能帮助我朝着正确的方向开始,或者解释还有什么其他选择,比如模糊逻辑等,为什么它被认为是一个黑匣子?

是的,控制台应用程序和C#可以用来创建神经网络。当然,如果你想让UI具有更多的视觉效果,你会想使用WinForms/WPF/Silverlight等。由于没有足够的信息来说明你想做什么,所以无法判断程序的大小。此外,只要它有效,大小就不应该是个问题。

我想这是某种最后一年的项目吧?你使用的是哪种类型的神经网络?你应该阅读一些关于将神经网络与入侵检测结合使用的学术论文/白皮书,以获得一些想法。例如,此PDF包含一些可能有所帮助的信息。

你应该一步一个脚印。创建神经网络与在Snort中创建新规则是分开的。一次只做一个主题,否则你会不知所措。考虑到最困难的部分很可能是NN,你应该首先关注它。

不太可能有人会和你一起经历每一步,因为这是一个相当大的项目。展示你所做的,并解释你需要帮助的地方。

当我开始学习神经网络时,我的核心意识是它们只是函数逼近器。我认为这是一件需要牢记的重要事情。无论你是使用遗传算法还是神经网络(或者像@Ben Voigt提到的那样将它们组合在一起,尽管神经网络通常与其他训练技术相关联),你最终得到的是一个函数,你输入了多个实数,得到了一个值。

记住这一点,你可以设计你的程序,只需在测试部分将网络视为提供这些预测的黑盒。在训练过程中,想象另一个黑匣子,你把输入和输出配对放在那里,并假设你向它展示的配对越多,它就会变得更好。

也许你觉得这很琐碎,但考虑到与这类算法相关的所有理论和神秘行为,我发现将它们简化为这些盒子是令人放心的(尽管有点失望;)。

最新更新