Комментарии 4
Я не дата-сатанист. Но есть интерес к теме, и желание использовать какие-то готовые инструменты.
Так вот, из личного опыта:
1) Elastic SIEM
Есть несколько сайтов. Они постоянно сканируются (атакуются), но взломов не было.
На защищаемую системы ставится несколько битов (auditbeat, metricbeat...), они шлют информацию (логи, метрики) на сервер, а там ML пытается увидеть признаки атак, и может слать алёрты.
По факту, в Dashboard были иногда не очень релевантные сообщения, ничего не обнаружено.
Если глубоко погрузиться, то может и можно оттюнить систему…
2) Synology Router RT2600ac
Этот роутер стоит дома. «Защищает» домашнюю сеть.
По факту: блокирует нормальные, валидные запросы. Постоянно приходят алёрты, что кто-то куда-то ходит, а когда разбираешься — то это нормальные запросы. То есть много фальш-позитивов.
Реально, что работает — это чёрные списки. Ну чтобы на планшетах, которые дал детям не пускать их на фэйсбуки и т.д… Но это, конечно не ML.
Самые лучшие инструменты защиты:
На Линуксе — это fail2ban (в основном для SSH logins, но и для всего остального)
На Винде — это github.com/DigitalRuby/IPBan (в основном для RDP, но и всего остального)
Они простые, без ML, но работают надёжно
Так вот, из личного опыта:
1) Elastic SIEM
Есть несколько сайтов. Они постоянно сканируются (атакуются), но взломов не было.
На защищаемую системы ставится несколько битов (auditbeat, metricbeat...), они шлют информацию (логи, метрики) на сервер, а там ML пытается увидеть признаки атак, и может слать алёрты.
По факту, в Dashboard были иногда не очень релевантные сообщения, ничего не обнаружено.
Если глубоко погрузиться, то может и можно оттюнить систему…
2) Synology Router RT2600ac
Этот роутер стоит дома. «Защищает» домашнюю сеть.
По факту: блокирует нормальные, валидные запросы. Постоянно приходят алёрты, что кто-то куда-то ходит, а когда разбираешься — то это нормальные запросы. То есть много фальш-позитивов.
Реально, что работает — это чёрные списки. Ну чтобы на планшетах, которые дал детям не пускать их на фэйсбуки и т.д… Но это, конечно не ML.
Самые лучшие инструменты защиты:
На Линуксе — это fail2ban (в основном для SSH logins, но и для всего остального)
На Винде — это github.com/DigitalRuby/IPBan (в основном для RDP, но и всего остального)
Они простые, без ML, но работают надёжно
0
Да, соглашаюсь.
По первому пункту (Elastic SIEM). Хорошие данные для обучения — секрет успеха. Совсем хорошо, когда эти данные собраны в реальной защищаемой сети. Банально, но убедился еще раз в эксперименте. Как в «боевой» системе собрать отдельно «чистый» и «грязный» трафик, чтобы хорошо обучить модель разделять их, — тот еще вопрос.
По второму пункту (Synology Router RT2600ac). Большое количество ложных срабатываний — известное слабое место эвристических систем обнаружения атак/вторжений. Но их сильная сторона — потенциальная возможность обнаруживать ранее неизвестные атаки. В теории выглядит так: рядом с сигнатурным анализатором (хорошо обнаруживает известное) ставим эвристический ML анализатор (хорошо обнаруживает неизвестное) и повышаем качество системы в целом.
По первому пункту (Elastic SIEM). Хорошие данные для обучения — секрет успеха. Совсем хорошо, когда эти данные собраны в реальной защищаемой сети. Банально, но убедился еще раз в эксперименте. Как в «боевой» системе собрать отдельно «чистый» и «грязный» трафик, чтобы хорошо обучить модель разделять их, — тот еще вопрос.
По второму пункту (Synology Router RT2600ac). Большое количество ложных срабатываний — известное слабое место эвристических систем обнаружения атак/вторжений. Но их сильная сторона — потенциальная возможность обнаруживать ранее неизвестные атаки. В теории выглядит так: рядом с сигнатурным анализатором (хорошо обнаруживает известное) ставим эвристический ML анализатор (хорошо обнаруживает неизвестное) и повышаем качество системы в целом.
+1
Очень хорошая статья, понравился стиль изложения и наполнение. Ожидал успех, удивился неудаче. Можете немного раскрыть поподробнее, почему модель не удалось применить?
0
Спасибо.
Грубый пример, почему модель показывает неудовлетворительное качество. Допустим, сеть, где модель предобучалась, низкоскоростная. Тогда модель «запомнит», что при атаке типа brute force межпакетная задержка составляет 1 секунду, а при типовом пользовательском трафике — 1 минуту. Пусть признак «межпакетная задержка» будет единственным значимым.
Представим, что теперь мы эту предобученную модель запускаем на реальном трафике в высокоскоростной сети. Где при атаке brute force реальная межпакетная задержка сильно меньше — условно 1 миллисекунда. А нормальный трафик поступает с межпакетной задержкой 1 секунда. Модель начнет сильно ошибаться, выдавая ложные срабатывания «атака» при наблюдении типового пользовательского трафика.
Что делать? На поверхности два варианта:
1) Применить масштабирующее преобразование к данным обучения с целью опосредованного приведения в соответствие характеристик исходной сети (в которой осуществлялся сбор набора данных обучения) и защищаемой сети. В этом случае из признакового пространства следует исключить признаки, которые имеют различные значения при одинаковых условиях сбора трафика, но потенциально не масштабируемые.
2) Дообучить модель на данных, собранных в защищаемой сети, с целью повышения обобщающей способности модели и качества классификации.
Грубый пример, почему модель показывает неудовлетворительное качество. Допустим, сеть, где модель предобучалась, низкоскоростная. Тогда модель «запомнит», что при атаке типа brute force межпакетная задержка составляет 1 секунду, а при типовом пользовательском трафике — 1 минуту. Пусть признак «межпакетная задержка» будет единственным значимым.
Представим, что теперь мы эту предобученную модель запускаем на реальном трафике в высокоскоростной сети. Где при атаке brute force реальная межпакетная задержка сильно меньше — условно 1 миллисекунда. А нормальный трафик поступает с межпакетной задержкой 1 секунда. Модель начнет сильно ошибаться, выдавая ложные срабатывания «атака» при наблюдении типового пользовательского трафика.
Что делать? На поверхности два варианта:
1) Применить масштабирующее преобразование к данным обучения с целью опосредованного приведения в соответствие характеристик исходной сети (в которой осуществлялся сбор набора данных обучения) и защищаемой сети. В этом случае из признакового пространства следует исключить признаки, которые имеют различные значения при одинаковых условиях сбора трафика, но потенциально не масштабируемые.
2) Дообучить модель на данных, собранных в защищаемой сети, с целью повышения обобщающей способности модели и качества классификации.
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Как самому разработать систему обнаружения компьютерных атак на основе машинного обучения