ОБЗОР БАЗОВЫХ МОДЕЛЕЙ КИВС, ТРЕБОВАНИЯ К ИХ ОРГАНИЗАЦИИ, ПРОИЗВОДИТЕЛЬНОСТЬ И БЕЗОПАСНОСТЬ КИВС, ПРИМЕНИМОСТЬ МЕТОДОВ МАШИННОГО ОБУЧЕНИЯ ПРИ МОНИТОРИНГЕ И УПРАВЛЕНИИ КИВС

Аннотация: Любую КИВС можно промоделировать, как некоторую сеть, объединяющую пользователей и поставщиков услуг. В зависимости от рода занятий организации перед КИВС ставятся те или иные задачи и соответствующим образом накладываются определенные требования к производительности, безопасности, доступности и т.п. Наиболее популярным и простым видом атаки является DoS (Denial of Service). В статье рассмотрены существующие системы мониторинга, выделены их недостатки. При решении данной задачи на основе метода опорных векторов характеристиками могут быть KPI системы, статистические данных по запросам на ключевые узлы, статистика по сбоям и запросам на доступ.

Ключевые слова: библиотека инфраструктуры информационных технологий, Ключевые показатели эффективности, IP-трафик, ДоС – атака, SYN-флуд, PoD – атака, TFN – атака, Тринко – атака, Атака посредника, Грубая сила (программа перебора), Эхо-тестирование, Метод опорных векторов

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

Очевидно, что должна существовать некая административная система мониторинга и управления КИВС, которая возьмет на себя большинство из вышеперечисленных задач. Такая система будет лежать над уровнем сети и будет обладать правами супервизора по управлению не только доступом к сети, но и топологией, и алгоритмом маршрутизации информации, которой обмениваются пользователи сети. С возрастанием числа пользователей сети возрастает общий поток информации, объемы и важность потоков служебной информации в сети, требования к системе мониторинга становятся все сложнее и тверже.

В связи с этим в начале 1990-ых годов была создана "Библиотека инфраструктуры информационных технологий" или "ITIL" (The IT Infrastructure Library), которая описала основные модели и требования к организации IT-сервисов, введены основные понятия. Данная библиотека была разработана по поручению Британского правительства Центральным агентством по вычислительной технике и коммуникациям (CCTA). Ныне она состоит из семи глав и является одним из основных документов при организации сетей общего доступа. В бибилиотеке ITIL, в частности, выделены такие термины, как "Заказчик"(или пользователь), IT-услуга (или сервис), доступность, мощность, система управления мощностями (CMIS) и другие.

Таким образом, любую КИВС можно промоделировать, как некоторую сеть, объединяющую пользователей и поставщиков услуг, где поставщиками могут выступать, например, серверы.

Здесь же обязательно стоит упомянуть о таком понятии, как "Key Performance Indicators (KPI)", что переводится на русский язык как "Ключевые показатели эффективности". По сути это некоторые метрики, отражающие производительность, эффективность предоставляемых IT-услуг. Они позволяют контролировать деловую активность сотрудников организации, вести мониторинг состояния сети и сервисов и делать необходимые выводы.

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

Корпорация Cisco в своем исследовании "Visual Networking Index Forecast" приводит статистику по темпам годового роста глобального IP-трафика (англ. Compound Annual Growth Rate) и утверждает, что он превысит 21% от 2014 к 2018 годам, что в 64 раза больше показателей 2005 года .

В то же время количество распределенных сетевых атак выросло на 21% по сравнению с прошлым годом .

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

Наиболее популярным и простым видом атаки является DoS(Denial of Service). Несмотря на свою простоту эта атака способна причинить огромный ущерб сети. Ее суть заключается в сверхчастотных запросах, которые "топят" сервер и увеличивают время ответа сервера в десятки и сотни раз, а то и делают его вовсе недоступным. Существует множество подвидов DoS-атак: TCP SYN Flood, Ping of Death, Tribe Flood Network (TFN) и Tribe Flood Network 2000 (TFN2K), Trinco.

В отличие от других видов атак DoS не ставит перед собой цель получить доступ к данным. Его задача - сделать сервис недоступным для других пользователей.

Вторым по популярности видом атак является парольная атака, главная цель которой - подбор пароля для неправомерного доступа к конфиденциальным данным. Парольная атака может быть произведена различными средствами, например, с использованием специальных программ, так называемых Brute Force, которые с большой частотой перебирают все возможные варианты и находят подходящий пароль.

Также известны атаки типа Man-in-the-Middle, главной целью которых является перехват передаваемых пакетов. Зачастую перехватчиком пакетов является, например, сотрудник компании - провайдера или человек, причастный к организации сети.

Еще одной разновидностью атак является сетевая разведка. Сетевая разведка - это сбор информации о сети с помощью общедоступных данных и приложений. В ходе подготовки к атаке на какой-либо ресурс злоумышленник чаще всего проводит сбор информации о ресурсе используя для этого обычные DSN-запросы, которые достаточно сложно отличить от обычных. Помимо этого при сетевой разведке используется также сканирование портов и эхо-тестирование (ping sweep). Получив список хостов, хакеры могут в дальнейшем сканировать порты для того, чтобы составить полный список услуг, поддерживаемых этими хостами.

Поскольку каждый день через промежуточные узлы сети проходят десятки тысяч запросов, их ручная обработка невозможна. Необходимо использовать интеллектуальные алгоритмы для фильтрации запросов нарушителей.

Вопросы управления трафиком КИВС в контексте обеспечения надежного и эффективного функционирования рассмотрены в работах Вишневского В.М., Ивницкого В.А., Вербицкого С.Н., Рыкова В.B., Kelly F.P., Korilis Y.A., Altman E., Turner S.и др. [3-9]. Однако в данных исследованиях не уделяется должное внимание человеческому фактору, возможности воздействия на системы извне, что зачастую имеющие место в реальных системах. Также можно отметить, что обычно любой атаке или повышенной нагрузке обычно предшествует некоторое количество «симптомов» - ситуаций, которые обычному пользователю или администратору незаметны. Такие симптомы несут очень много полезной информации, которую можно анализировать и использовать при мониторинге КИВС. К примеру, любой атаке предшествует некоторое количество разведывательных операций, которые совершает злоумышленник с целью обнаружения слабых мест в системе. Для любой перегрузки системы или ее компонентов есть достаточное количество вызывающих ее факторов, которые также можно отследить еще до возникновения перегрузки.

Итак, рассмотрим основные принципы и подходы в машинном обучении и постараемся понять, применимы ли ее методы в решении вышеописанных задач.

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

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

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

Будем рассматривать методы машинного обучения с учителем для решения задачи классификации объектов на два класса. Рассматриваемыми объектами являются запросы на узлах КИВС, которые принадлежат одному из двух классов – классу запросов злоумышленников и классу запросов обычных пользователей.

Одним из алгоритмов машинного обучения с учителем для решения задачи классификации объектов на два класса является метод опорных векторов или, как его еще называют, метод классификации с наибольшим зазором. Задача этого алгоритма ставится следующим образом:

Пусть Q - пространство объектов любой природы. Каждый объект q из Q принадлежит одному из классов Cl1 или Cl2. Для некоторого множества W объектов пространства Q известно, каким классам (Cl1 или Cl2) принадлежит каждый из объектов. Требуется некоторым образом научиться классифицировать все остальные объекты из Q, которые не принадлежат W по искомым классам Cl1, Cl2.

Метод опорных векторов сводит решение описанной задачи к решению следующей задачи:

Пусть Q’ - некоторое множество точек из Rn. Q’ состоит из двух частей. Точки из первой принадлежат первому классу, точки из второй части - второму. Требуется найти разделяющую гиперплоскость таким образом, чтобы зазор между двумя параллельными гиперплоскостями, касающимися разных классов и лежащих параллельно найденной гиперплоскости, была максимальной. Это будет означать, что множество Q’ наилучшим образом разделено на два непересекающихся класса.

Однако получить два непересекающихся класса редко, когда удается. Обычно обучающая выборка (так обычно называют множество Q’) не настолько проста, чтобы ее можно было разделить одной гиперплоскостью. Такая выборка называется линейно неразделимой. Пример изображен на рис.2.

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

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

Описанный метод опорных векторов является линейным, т.к. предполагает нахождение гиперплоскости. Эта особенность метода зачастую не позволяла эффективно решать задачи классификации. В 1992 году Бернхардом Боссером, Изабелем Гийоном и Вапником была предложена нелинейная модификация метода путем подмены скалярных произведений на этапе нахождения гиперплоскости и классификации на произвольные функционалы, так называемые ядра.

Среди всевозможных функционалов наиболее распространены следующие: Полиномиальное неоднородное: K(x,x’)=((x,x’)+1)d, где (x,x’) – скалярное произведение, а K(x,x’) – ядро. Полиномиальное однородное: K(x,x’)=(x,x’)d, где (x,x’) – скалярное произведение, а K(x,x’) – ядро. Сигмоид: K(x,x’) = tanh((k*x,x’)+c), где (x,x’) – скалярное произведение, а K(x,x’) – ядро.

Достоинством метода опорных векторов является производительность при классификации, поскольку обученному классификатору необходимо располагать информацией лишь о нескольких точках, ближайших к разделительной гиперплоскости, чтобы относить новые объекты в один из классов. Это в значительной степени ускоряет работу программ, построенных на методе опорных векторов. Недостатком метода является высокая чувствительность к шуму и сложность, связанная с линейной неразделимостью выборки.