Нейронная сеть, генетический алгоритм как система обнаружения вторжений - PullRequest
5 голосов
/ 30 мая 2011

Привет, мне нужна помощь, чтобы начать создавать мой первый алгоритм;Я хочу создать NN / генетический алгоритм для использования в качестве системы обнаружения вторжений.

Но я борюсь с некоторыми моментами (никогда ранее не писал алгоритм.)

  1. Я хочу развиваться на C #, возможно ли это как консольное приложение?Если это так, то в качестве предвестника насколько велика будет программа в ее наиболее упрощенной форме.Это вообще возможно в c #?
  2. Как подключить программу для считывания данных из сети?Также, как пакеты могут быть преобразованы в читаемые данные для алгоритма.
  3. Как заставить программу писать правила для snort или какой-либо другой формы брандмауэра и блокировать то, что программа считает потенциальной угрозой.(то есть он обнаруживает угрозу от № 2, затем записывает правило на страницу правил snort, блокирующее этот конкретный трафик)
  4. Как отслеживать данные.(что его заблокировало, что он наблюдал, как он пришел к такому выводу)
  5. Где разместить его в сети?(может ли программа подключиться к другим алгоритмам и обмениваться данными в той же сети, это было бы полезно)

Если кто-то может помочь мне начать в правильном направлении или объяснить, какие еще альтернативы существуют, как нечеткиелогика и т. д. и почему он считается черным ящиком?

Ответы [ 2 ]

3 голосов
/ 30 мая 2011

Да, консольное приложение и C # можно использовать для создания нейронной сети. Конечно, если вы хотите больше визуальных аспектов в пользовательском интерфейсе, вы захотите использовать WinForms / WPF / Silverlight и т. Д. Невозможно сказать, насколько большой будет программа, поскольку недостаточно информации о том, что вы хотите сделать. Кроме того, размер не должен быть проблемой, если он эффективен.

Полагаю, это какой-то проект последнего года? Какой тип нейронной сети вы используете? Вы должны прочитать некоторые научные статьи / технические документы по использованию NN с обнаружением вторжений, чтобы получить представление. Например, этот PDF содержит некоторую информацию, которая может помочь.

Ты должен делать это по одному шагу за раз. Создание нейронной сети отделено от создания нового правила в Snort. Работайте по одной теме за раз, иначе вы будете просто ошеломлены. Учитывая, что самой трудной частью, скорее всего, будет NN, вам следует сначала сосредоточиться на этом.

Маловероятно, чтобы кто-нибудь проходил с вами каждый шаг, поскольку это довольно большой проект. Покажите, что вы сделали, и объясните, где вам нужна помощь.

1 голос
/ 31 мая 2011

Когда я начал изучать нейронные сети, я понял, что они являются лишь приближениями функций. Я думаю, что это важно помнить. Используете ли вы генетические алгоритмы или нейронные сети (или комбинируете их, как упомянуто @Ben Voigt, даже при том, что нейронные сети обычно ассоциируются с другими методами обучения) - в итоге вы получаете функцию, в которую вы помещаете ряд реальные значения и получить единственное значение.

Имея это в виду, вы можете разработать свою программу и просто думать о сети как о чёрном ящике, обеспечивающем эти прогнозы в части тестирования. Во время обучения подумайте о другом черном ящике, в котором вы добавляете пары входных и выходных пар и предполагаете, что чем больше пар вы показываете, тем лучше.

Может быть, вы найдете это тривиальным, но со всей теорией и мистическим поведением, которые связаны с алгоритмами этого типа, я нашел обнадеживающим (хотя и немного разочаровывающим) сведение их к таким типам блоков.

...