/
Автор: Полтавцева М.А. Лаврова Д.С.
Теги: система управления базами данных (субд) языки программирования трансляторы информационная безопасность учебное пособие
ISBN: 978-5-9729-1213-1
Год: 2023
Похожие
Текст
М. А. Полтавцева, Д. С. Лаврова
ВЫСОКОПРОИЗВОДИТЕЛЬНЫЕ
СИСТЕМЫ ОБНАРУЖЕНИЯ ВТОРЖЕНИЙ
2-е издание
Рекомендовано Северо-Западным региональным отделением ФУМО
по информационной безопасности в качестве учебного пособия
для студентов высших учебных заведений,
обучающихся по УГСН 1000 00 «Информационная безопасность»
по программам подготовки бакалавров, магистров, специалистов
Москва Вологда
«Инфра-Инженерия»
2023
УДК 004.65
БЬК 32.973.2
П52
Рецензенты.
ведущий научный сотрудник СПбФ АО «НПК "ТРИСТАН"»
д. т. н., профессор Лебеоев И. С.\
зев. кафедрой защищенных систем свяш СПбГУТ
к. т. н., доценз Красив А. В.
Полтавцева, М. А.
1152 Высокопроизводительные системы обнаружения вторжений : учебное пособие /
М. А. Полтавцева. Д. С Лаврова - 2-е изд. - Москва . Вологда : Инфра-Инженерия
2023. - 152 с. : ил., табл.
ISBN 978-5-9729-1213-1
Рассмотрено построение высокопроизводительных систем обнаружения втор-
жений в компьютерных сетях и киберфи зичсских системах. Приведены понятие и
принципы обработки больших данных, архитектура систем высокой нагрузки, методы
предобработки информации при обнаружении вторжений. Рассмотрены различные
методы обнаружения вторжений, включая новые подходы па основе технологий ис-
кусственного интеллекта.
Для студентов, обучающихся по направлению «Информационная безопас-
ность». и преподавателей, специализирующихся в области информационной безопас-
ности Может быть полезно широкому кругу специалистов, интересующихся вопро-
сами обнаружения вторжений в системах с большим обьемом циркулирующих дан-
ных.
УДК 004.65
ЬЬК 32.973.2
ISBN 978-5-9729-1213-1
С Полтавцева М. А., Лаврова Д. С., 2023
О Издательство «Инфра-Инженерия», 2023
^Оформление. Издательство «Инфра-Инженерия», 2023
ОГЛАВЛЕНИЕ
ВВЕДЕНИЕ......................................................... 5
1. ВЫСОКОПРОИЗВОДИТЕЛЬНАЯ ОБРАьОГКА ДАННЫХ В СИСТЕМАХ
обнаружения вторжений...............................................7
1 1 Большие данные и высоконаг руженные системы...................7
1 ЕЕ Эволюция данных и понятие Больших данных.....................7
1 Е2.1 финцииы и гребования к обрабог ке данных с высокой натру зкой.11
1.1.3. Сис1емы у правления данными высокой нагрузки ............ 16
Е Е4. Подходы к высокопроизводительной обработке данных..........18
Конгрольные вопросы и задания к разделу 1.1 .....................22
Список источников к разделу 1.1 . . ...............................22
1.2. Технологии высокопроизводительной обработки данных..........23
1.2.1. Пакетная обработка данных.................................23
1.2.2. Потоковая обработка данных............................... 35
1.2.3. Принципы организации параллельного выполнения задач..... 65
1.2.4. Совместное исполыование потоковой и пакетной обработки....68
Конгрольные вопросы и задания к разделу 1.2......................76
Список источников к разделу 1.2..................................76
1 3. Обработка данных в задачах обнаружения вторжений..........77
1.3.1. Типы данных и методы их обработки.........................77
Е3.2. Нормализация и агрегация данных из разнородных источников......82
1 3.3. Иерархическая агрегация данных............................S3
Конгрольные вопросы и задания к разделу 1.3.................... 92
Список источников к раздеггу 1.3.................................92
1.4. Параллельная организация вычислительного процесса...........93
1 4.1. Обработка сообщений ог устройств..........................93
1.4.2. Обработка сетевого графика................................98
1.4.3. Агрегация данных.........................................101
Конгрольные вопросы и задания к разделу 1.4.....................106
Список источников к разделу 1.4.................................106
3
2. МЕТОДЫ ОБНАРУЖЕНИЯ ВТОРЖЕНИЙ..................................107
2.1 Сигнатурные методы..................................... 108
2.1.1. Обнаружение вторжений на основе правил..................109
2.1.2. Обнаружение вторжений на основе шаблонов................110
Контрольные вопросы и задания к разделу 2.1....................111
Список источников к разделу 2.1................................112
2.2. Поведенческие методы............................. . . , 112
2.2.1. Статистические методы для обнаружения вторжений.........112
2.2.2. Энтропийный подход к обнаружению вторжений..............119
2.2.3. Спектральный анализ для обнаружения вторжений........ . . 123
2.2 4. Фрактальный анализ для обнаружения вторжений............124
Контрольные вопросы и задания к разделу 2.2................. 127
Список источников к разделу 2.2................................127
2.3. Методы искусственною интеллекта......................... 128
2.3.1. Обнаружение вторжений на основе классификации ......... 129
2.3.2. Обнаружение вторжений на основе кластеризации...........136
2.3.3. Обнаружение вторжений с использованием машины Цеглина...138
2.3.4. Обнаружение вторжений на основе протнозирования
с использованием нейронных сетей............................. 141
Контрольные вопросы и задания к разделу 2.3....................143
Список источников к разделу 2.3................................143
БИБЛИО!РАФИЧЕСКИЙ СПИСОК........................................ 146
ВВЕДЕНИЕ
В современном мире все больше происходит интеграция цифровых тех-
нологий в различные сферы человеческой деятельности. Кибернизация про-
мышленных систем, повсеместное использование умных устройств, развитие
беспроводных сетей и интеграция коммуникаций различного уровня, от взаи-
модействия оборудования до би шсс-процсссов, приводят к появлению боль-
ших интегрированных систем, внутри которых передаются и обрабатываются
шромныс объемы данных. В то же время, развитие технологий предоставляет
широкие возможности для злоумышленников. Современные атаки на компь-
ютерные системы и сети связаны не только с кражей конфиденциальных дан-
ных и финансовыми мошенничествами, но и с нарушениями работоспособно-
сти промышленных и государственных систем, сложностями в предоставле-
нии услуг. В этих условиях возникает необходимость разработки систем обна-
ружения вторжений, нс только позволяющих эффективно обнаруживать и
предотвращать атаки 'злоумышленников, но и способных работать в условиях
огромных потоков разнородных данных - высокой нагрузки.
Высокопроизводительные системы обнаружения вторжений представ-
ляют собой сплав технологий. С одной стороны - подходов к обработке боль-
ших и быстрых данных, с другой - высокочувствительных методов обнаруже-
ния аномалий и атак. Оба эти аспекта последовательно рассмотрены в двух
больших главах данного учебного пособия. При создании материала каждой
из глав были использованы как теоретические работы на соответствующе
темы, так и научные и практические работы авторов в рамках выполнения фе-
деральных целевых проектов по рассмотренной тематике.
Первая глава посвящена высокопроизводительной обработке данных.
Она последовательно построена начиная от понятия, видов и специфики со-
временных данных и высокой нагрузки. Даны общие принципы построения
высоконагружснных по данным систем, основной инструментарий разработ-
чика. В рамках технологических подходов рассмотрена пакетная и потоковая
обработка данных. Рассмотрены различные подходы к их интеграции, как с
точки зрения простого совмещения обработки и последующего хранения ин-
формации, гак и в рамках построения аналитических систем на базе современ-
ных лямбда и каппа архитектур. Замыкает раздел глава, непосредственно по-
священная методам обработки данных в высокопроизводительных системах
обнаружения вторжений, включающая описание моделей входных данных на
5
примере сетевого трафика и данных устройств интернета вещей, методы нор-
мализации и агрегации информации для последующего применения методов
анализа.
Вторая глава рассматривает различные методы обнаружения вторжений,
включая авторские разработки. Приводится их классификация. Методы также
приводятся последовательно, начиная от сигнатурных подходов, включающих
использование правил и шаблонов. Отдельно описаны поведенческие методы
различного характера: основанные на статистических данных, энтропии, спек-
тральном и фрактальном анализе данных. Замыкают главу современные ме-
тоды на базе технологий искусственного интеллекта и машинного обучения,
включая обнаружение вторжений на основе классификации и кластеризации
данных, прогнозирования и нейросетевых технологий.
Каждый раздел пособия снабжен списком основных источников и содер-
жит ряд контрольных вопросов и заданий, выполнение которых позволит
лучше усвоить приведенный материал. Контрольные вопросы и задания могут
быть использованы для самостоятельной подготовки или как основа для раз-
работки практических и лабораторных работ по рассмотренным темам.
Настоящие пособие предназначено для студентов направлений и специ-
альностей, связанных с информационной безопасностью, в частности «Инфор-
мационно-аналитические системы безопасности», «Компьютерная безопас-
ность», «Информационная безопасность автоматизированных систем» и ши-
рокого круга специалистов, интересующихся вопросами обнаружения вторже-
ний в условиях высокой нагрузки
1. ВЫСОКОПРОИЗВОДИТЕЛЬНАЯ ОБРАБОТКА ДАННЫХ
В СИСТЕМАХ ОБНАРУЖЕНИЯ ВТОРЖЕНИЙ
1.1. Большие данные и высо кона груженные системы
Современные информационные системы сталкиваются с новыми про-
блемами в связи с изменением характеристик обрабатываемых данных. В це-
лом это явление называется Большими данными. Большие данные - повсе-
местное явление в отрасли. В области информационной безопасности они фи-
гурируют в большинстве задач мониторинга и управления безопасностью,
обнаружения вторжений, поиска аномалий в данных и т. д. Обеспечение
быстрой обработки такого рода информации без потерь - задача современной
высокопроизводительной аналитики в области защиты компьютерных си-
стем.
Информационные системы, направленные на обработку современных
Больших данных, называются высоконагруженными поданным и значительно
отличаются между собой в зависимости от специфики входной информации и
области применения
1.1.1. Эволюция данных и понятие Больших данных
Формально закрепленного понятия Больших данных на сегодняшний
день нс существует. Сам же эффект необходимости новых подходов и реше-
ний в связи с изменением входного информационного потока наступает нс
первый раз. В качестве основных этапов эволюции данных можно выделить:
1. Превышение доступной оперативной памяти
Первые задачи Больших данных связаны с проблемой, когда обрабаты-
ваемая информация (массивы и другие структуры; перестали помещаться в до-
ступные приложению обьемы оперативной памяти (ОП) и дальнейшее верти-
кальное наращивание производительности, путем добавления объема ОН,
стало невозможным и/или нс рентабельным. Па этом этапе появились алго-
ритмы обработки данных с частичной вызрузкой на диск (например, блочный
алгоритм индексации больших текстовых коллекций).
7
2. Превышение доступной памяти для одного узла
Следующий этап роста данных- превышение возможностей одного узла
для хранения и обработки информации. Результатом этого явления стало по-
явление в 2000-х годах распределенных систем и распределенных СУБД, осу-
ществляющих хранение и обработку данных на нескольких физических узлах
разной степени связности. Распределенные СУБД легли в основ} многих со-
временных решений и до сих пор широко применяются для большого числа
промышленных систем.
3. Скорость поступления данных превысила возможности
одного узла
С одной стороны, эта характеристика сходна с предыдущей, возможно-
сти одного узла по обработке входного потока информации оказались исчер-
паны. С другой стороны, она значительно отличается. Если сначала речь шла
и возможностях по хранению данных и обработке запросов над ними, что, в
конечном итоге, упиралось в дисковые массивы, системы хранения и вычис-
лений; то несколько позднее появилась проблема большого потока входной
информации, которая терялась в силу сто интенсивности и скорости работы
принимающих данные узлов. Высокая скорость поступления информации за-
ставила пересмотреть подход к приему и предварительной обработке данных,
привела к появлению распределенных систем, ориентированных на высокую
интенсивность таких операций.
Исторически второй и трстизз этап эволюции произошли приблизи-
тельно в одно время и привели к появлению так называемых транзакционных
и аналитических систем, которые будут рассмотрены позднее.
4. Повысилась принципиальная разнородность данных
Задача интсфации данных из различных источников появилась еще
при появлении ннтефированных информационных систем в 90-х годах XX
века. Изначально проводилось слияние данных из различных структуриро-
ванных хранилищ, что представляло собой достаточно объемную, но техни-
чески понятную задачу. По мерс повышения разнообразия источников ин-
формации, появились данные слабой степени структуризации (XML - дан-
ные, текстовые документы разной степени упорядоченности) а также данные
различной природы, видео информация, изображения и т. д. Все эти сведения
нуждались в совместном анализе. Так появилась задача обработки слабо
структурированных и нс структурированных разнородных данных, включа-
ющая вопросы выделения значимых характеристик данных, их очистку, нор-
мализацию и т. д.
8
Важным фактом является го, чю на каждом из приведенных этапов по-
являлись новые виды данных е точки зрения подходов и методов к их обра-
ботке. для которых существовавшие на тот момент системы были нс предна-
значены
Сегодня нет четких цифр (Гигабайты, Терабайты, Петабайты и т. д.) го-
ворящих о том, относится задача к области Больших данных или нет. Вее эти
значения зависят от того, о каких данных идет речь насколько они структури-
рованы, насколько быстро поступают, какие операции над ними выполняются,
как часто происходит обновление уже существующих значений и т. д.
Наиболее корректным определением можно назвать следующее:
К Большим данным относятся такие коллекции данных, характери-
стики которых не позволяют хранить, обрабатывать и анализировать их
при помощи универсальных промышленных СУБД.
>то определение может варьироваться в зависимости от того какое ис-
пользуется ПО и какие размеры данных приняты в данной предметной области.
Выделяют несколько характеристик больших данных. Первая появилась
концепция 3V, определяющая большие данные как сочетание по крайне мере
двух, из трех факторов: большой объем, большое разнообразие, большая ско-
рость поступления (рисунок 1.1).
Большие данные
—* V - (Velocity) Скорость
—» V - (Volume) Объем
—» V - (Variety) Разпообра зис
Точность
* V - (Veracity) Достоверность
* V— (Value) Стоимость
V- (Visualization) Визуализация
V—( Viscosity) Связанность
V - (Vu-ality / Живучесть
Рисунок 1.1. Концепции Больших данных: 3V, 5V и 8V
9
В дальнейшем, развитие концепции ЗУ привело к ее расширению и уточ-
нению. Были выделены такие аспекты, как неточные или неполные данные и
ценность или монстизирусмосгь данных (рисунок 1). Особенно этот аспект за-
метен в системах маркетинга, сбора данных для третированной рекламы, пер-
сонализации предложений различных товаров. Сегодня речь идет уже о кон
цепции 8V (рисунок 1), охватывающей нс только характеристики самих дан-
ных, но и связанные проблемы, вытекающие из их природы, такие как задача
визуализации данных, оценки и свя шости данных. Все это говорит, с одной
стороны, о низкой степени формализации понятия Больших данных, а с дру-
гой- о широте проблем и областей, которые охватывают связанные с ними
задачи
Все задачи, связанные с обработкой Больших данных сегодня можно
разделит ь на два класса: задачи по обработке больших данных и задачи по об-
работке быстрых данных.
Понятие быстрых данных связано с технологией OLTP (Online
Transaction Processing - обработка транзакций данных в реальном времени),
которая характеризуется обеспечением высокой пропускной способности и
минимизацией задержки по времени. Для OLTP - решений важна способность
обрабатывать сотни тысяч операций в секунду за миллисекунды. Основные
задачи систем такого рода, с точки зрения обработки информации, это:
1. Предоставление данных потребителям в режиме реального времени
(близком к реальному времени).
2. Обеспечивать консистснтность (согласованность) данных
При проектировании высиконазруженных по данным систем и выборе
инструментов сегодня учитывают два отдельных аспекта скорости данных:
скорость поступления и скорость обновления. Скорость поступления обу-
славливает использование специализированных решений (включая СУБД)
хранящих данные в памяти и инструментов потоковой обработки на основе
массивно-параллельных алгоритмов. Скорость обновления подразумевает из-
менение уже хранящихся в системе данных и требует использования сов-
местно потоковых и исторических (хранимых) сведений, что приводит к необ-
ходимости поддержания данных в согласованном виде и решениям на базе А -
архитектуры.
Вторая групп» - большие данные, которые обрабатываются OLAP -
приложениями (Online Analytical Processing -оперативная аналитическая об-
работка данных). Дтя OLAP-приложений высокая пропускная способность нс
гак важна, поскольку они предназначены для анализа данных, не требующего
мгновенной реакции Решающее значение в этом случае имеет низкое значе-
10
ние задержки при oibctc на запрос, так как предоставление пользователям
ответа на основании большого объема хранимой информации должно зани-
мать приемлемое (в зависимости от задачи) время.
Па сегодняшний день возникают задачи, требующие сочетания этих ре-
шений - задачи оперативной аналитики на больших и быстрых данных. К та-
кого рода системам относятся и системы обнаружения вторжений. С одной
стороны, время реакции на события, происходящие в объекте защиты должно
быть сопоставимым с реальным (обычно меньше минуты, часто - счетное
число секунд), а с другой, должна сохраняться возможность расследования ин-
цидентов и оценки исторических данных за длительные периоды времени.
1.1.2. Принципы и требования к обработке данных
с высокой нагрузкой
Эволюция систем обработки данных
По мере изменения данных эволюционировали и системы их обработки.
Можно выделить следующие классы систем по мерс их появления:
1. Локальные системы управления данными.
2. Многопоточные (параллельные) системы управления данными.
3. Распределенные системы управления данными.
4. Системы потоковой обработки данных нА - архитектура.
Исторически первыми были локальные системы управления данными,
однако достаточно быстро их во зможностей перестало хватать для обработки
поступающей информации. Уже в 80-х годах XX в. в основных промышлен-
ных системах управления данными (СУБД) были внедрены технологии мно-
гопользовательской и параллельной обработки информации Основой под-
хода стал механизм управления транзакциями. Нельзя сказать, что на этом
развитие параллельной обработки закончилось: сегодня продолжают разра-
батываться алгоритмы и технологии паралелизации запросов внутри т ранзак -
ций, операций над данными в рамках одного запроса - уже в рамках совре-
менных систем.
Идея параллельной обработки данных, перечень основных возникаю-
щих проблем и базовые подходы к синхронизации (такие, как механизмы бло-
кировок, временных меток, условных ограничений и т. д.) были разработаны
именно в это время, в рамках решения задачи возрастающей нагрузки и требо-
ваний ко времени реакции при обработке данных. Характерной особенностью
многопоточных (параллельных) систем является широкое использование вер-
11
тикального масштабирования, ставшее де-факто стандартом промышленных
серверов обработки данных
Распределенные системы обработки данных стали ответом на достиже-
ние верхних значений эффективной (с точки зрения соотношения производи-
тельность стоимость) обработки данных в многопоточных системах. Переход
к горизонтальному масштабированию систем управления данными начался с
появления гетерогенных СУБД использующих шлюзы и продолжился разви-
тием кластерных масштабируемых СУБД, построенных на базе одной модели.
Особенности распределенной обработки по сравнению с многопоточной:
1. Отсутствие общей памяти (разделяемого ресурса).
2. Появление анпаратых отказов и сбои узлов - участников процесса.
Сегодня в наиболее высоконагруженпых системах используется не-
сколько подходов кластерные СУБД (зачастую более чем одна) для долговре-
менного хранения большого объема данных на диске и быстрого доступа к
распределенным данным в оперативной памяти и объединяющие их инстру-
менты и технологии потоковой обработки информации. Все вместе они обра-
зуют комплексы, называемые А - архитектурой. Это подход, сочетающий сов-
местный анализ исторических и поступающих оперативно потоковых данных.
Требования к высоконагруженным системам
Современным высоконагруженным по данным системам предъявляются
три основных вида требований:
• высокая масштабируемость,
• высокая производительность;
• высокая доступность данных.
Масштабируемость - свойство вычислительной системы, которое
обеспечивает предсказуемый рост системных характеристик при добавлении к
ней вычислительных ресурсов. В случае системы обработки данных можно
рассматривать два способа масштабирования - уже упоминавшиеся верти-
кальный и горизонтальный.
Вертикальная масштабируемость предполагает увеличение мощности
отдельно взятого сервера СУБД (например, числа процессоров в SMP - си-
стеме). При этом программное обеспечение сервера остается неизменным и
автоматически масштабирует выполняющиеся на не.м задачи
Горизонтальная масштабируемость предполагает увеличение числа фи-
зических серверов СУБД, взаимодействующих друг с другом для разделения
нагрузки. Этот процесс может происходить как в рамках одного решения, гак и
наращиванием различных инструментов, обеспечением их взаимодействия.
12
Высокая производительность включает в себя два аспекта. С одной
стороны, с точки зрения пользователя, что скорость реакции в ответе на за-
прос. Причем скорость реакции важна как на исторических, так и на потоко-
вых данных (несмотря на то, что в случае оперативной обработки поступаю-
щей информации несколько меняется сама модель запроса). С другой - что
скорость входного потока обработки данных. Данный аспект связан с быст-
рыми данными (как быстро поступающими, так и быстро обновляемыми).
Обязательным требованием является обеспечение скорости обработки нс
ниже, чем входной поток, с учетом очередей и механизмов сглаживания не-
равномерной нагрузки. В противном случае часть данных будет просто поте-
ряна.
Высокая доступность означает высокую степень откаюустойчивости
таких систем, выражающейся в концепции 24/7. Допустимое время простоя
таких решений исчисляется минутами (или меньше) за календарный год. Та-
кие характеристики достигаются комбинированием различных методов обес-
печения избыточности ресурсов и данных.
Для обеспечения приведенных требований сегодня используются два ос-
новных технологических подхода: потоковая обработка данных и технология
пакетной обработки Map-Reduce. Обе технологии основаны на разработках в
области параллельного программирования и баз данных и представляют собой
их развитие в концепции современных распределенных систем. Оба решения
используют как специализированные параллельные инструменты, так и раз-
личные СУБД и даже файловые системы (например, 1IDFS).
Принципы построения
высоконагруженных по данным систем
Вне зависимости от того, представляют ли собой высоконагружснные
системы потоковые решения в парадигме массивно-параллельной обработки
данных или пакетные технологии Map-Reduce, а также относятся ли они к со-
временным решениям или разработаны более десяти лет назад, вес решения в
области высокопроизводительной обработки данных базируются на обгцих
принципах, сформулированных в 80-гг XX века.
1. Перенос вычислений как можно ближе к данным
В распределенной системе обработки информации пересылка данных
как правило является узким местом. Во-первых, она, как и запросы к дисковой
подсистеме, занимает значительное время, по сравнению с обработкой данных
в оперативной памяти. Во-вторых, объемы пересылаемых данных в больших
хранилищах могут быть ггастолько велики, что займут внутреннюю сеть си-
13
стсмы на секунды, мину гы или даже большие интервалы времени, чю непри-
емлемо для высокопротводитсльного решения.
Поэтому данный принцип направлен на минимизацию пересылки дан-
ных по узлам вычислительной системы: вычисления над данными должны
производиться там, где эти данные располагаются. Если дтя систем с нагруз-
кой на вычисления данные пересылались на мощные вычислительные узлы
для обработки (о чем говорит, например, классическая грехзвенная архитек-
тура сервера приложений), то в том случае, если основная назрузка заключа-
ется в характеристиках данных - оптимальным решением является объедине-
ние данных и вычислений в местах хранения информации. Этот аспект хорошо
отражен в интеграции средств обработки данных в сервера СУБД, нс только с
целью выполнения указанного принципа, но и для максимального повышения
эффективности алгоритмов, учета особенностей физического хранения при ре-
ализации операций.
2. Отказ от совместно используемых ресурсов
Использование общих ресурсов при построении распределенных прило-
жений с одной стороны облегчает задачу разработчика, упрощает алгоритмы
синхронизации и работы с данными, а, с другой стороны, создает узкие места
в системе в целом. Использование архитектуры без совместно используемых
ресурсов (архитектура sharing nothing) декларирует отсутствие общих ресур-
сов между узлами вычислительной системы. Такой подход приводит к мень-
шему число синхронизационных конфликтов в процессе обработки информа-
ции, повышению скорости работы. Следствием этого решения является повы-
шение эффективности распараллеливания операций между компонентами си-
стемы.
3. Разделение данных по узлам с учетом операций
Следствием первых двух принципов становиться третий - эффективное
разделение данных по узлам вычислительной системы с возможностью их ре-
пликации в нескольких узлах. Такой подход необходим для параллельной об-
работки транзакций (распараллеливания транзакций и запросов) при обра-
бозке данных.
Прзз этом каждый класс систем управления данными требует своих до-
полнений к этим принципам Так, тран закционные СУБД, являющиеся пред-
шественниками современной потоковой обработкзз и зачастую выступающие
компонентамзз систем с быстрыми данными, используют управление базами
данных в основной памяти и высокую степень репликации данных для обес-
печения надежности.
14
Аналитические СУЬД, прообразы и компоненты современных систем
анализа больших объемов данных, широко используют хранение табличных
данных во внешней памяти по столбцам и дополнительную избыточность дан-
ных ради скорости выполнения запроса. Несмотря на то, что эти решения сни-
жают скорость записи новых данных, при обработке запросов на чтение и ана
лиз больших объемов информации они позволяют получить существенный
прирост производительности.
Важно помнить, что чем более развиты средства аналитики системы
управления данными, чем больше операций выполняется в рамках инстру-
мента хранения, тем больше возможности приближения их к данным (прин-
цип 1), иначе на сервер аналитики придется пересылать большие объемы ин-
формации.
Если рассматривать современные языки и решения в этом ключе, то со-
временные языки запросов к данным в масштабируемых хранилищах, как пра-
вило основанных на агрегатном подходе, модели данных ключ - значение и
вариантах ее интерпретации, нс обладают высокой выразительностью и сни-
жают нагрузку по пересылке данных только за счет реализации технологии
Map-Reduce. Зачастую качество такого решения зависит от разработчика за-
проса. Традиционный для промышленных серверов SQL - отвечает требова-
нию по обеспечению вариативности аналитических запросов, но не обеспечи-
вает (и нс предполагает изначально) механизма распараллеливания этих за-
просов.
Следствием такой ситуации стало развитие и исследование методов па-
раллелнзации SQL - запросов и переход в SQL - ориентированных решениях
от близкой к классической объектно-реляционной модели, отраженной в стан-
дарте SQL (SQL-3 и его развитие SQL:2008), к колоночным СУБД применяю-
щим SQL как входной язык, но более далеких от классических реляционных
принципов.
Вторым подходом, кроме применения специализированных СУБД, яв-
ляются параллельные про1рам.мы, выполняющие аналитические запросы, ко-
торые формируются аналитиком/администратором/программисгом «вруч-
ную». Способом разработки таких запросов является MPI (Message Passing
Interface) интерфейс передачи сообщений в параллельном программировании.
Распределение задач по кластеру в этом случае - обязанность разработчика и
качество решения напрямую зависит от его квалификации. Основной недоста-
ток этого подхода - сложность и высокие требования к разработчику про-
(раммного кода.
15
1.1.3. Системы управления данными
высокой нагрузки
В большинстве информационных систем управление данными возло-
жено на специализированные комплексы программ - СУБД. Современные
промышленные СУБД, такие как PostgreSQL, Microsoft SQL Server, Oracle
Database Server, обладают хорошими показателями производительности и вы-
сокой степенью универсальности. Тем нс менее, бля высокой нагрузки в ее
современном понимании - «Больших» данных, их возможностей недоста-
точно. Необходимо отмстить появление специализированных СУБД, предна-
значенных для решения таких задач. Повышение производительности при вы-
полнении определенных операций достигается в них за счет снижения универ-
сальности и усложнения (или замедления) решения других или же появлением
ресурсных ограничений.
Высоконагружснныс по данным СУБД (системы управления базами
данными) можно разделить несколько больших классов
1. Системы управления данными в оперативной памяти.
2. Системы управления большими объемами постоянных данных на
диске или системы высокопроизводительной аналитики.
3. Системы управления гетерогенными данными большого объема.
Первый приведенный класс - это системы, ориентированные на быст-
рую обработку информации за счет скорости доступа к оперативной памяти
(таблица 1.1). Построение системы хранения на флэш-памяти и тем более на
дисках даст возможность хранить данные большего объема, но является зна-
чительно более медленной.
Таблица 11
Скорость дос тупа для различных типов хранилищ
Тип Задержки Адресация
Дисковая подсистема t 'отпи мс Блочная
Флэш-память Десятки мс Блочная
Оперативная память .Мспсс одной мс Байтовая
Не смотря на существующие реализации кластерных решений в опера-
тивной памяти, объем места для хранения данных и неустойчивость к сбоям,
когда при «мягком» сбое и отключении питания все данные оказываются утс-
16
ряны, определяю! узкую нишу применимости таких систем, как инструментов
кэширования и только оперативного, «горячего» хранения.
Ко второму классу относятся системы, позиционируемые как системы
Больших данных, однако достаточно строгие в отношении структуры храни-
мой информации. Они сочетают в себе возможность хранения большого объ-
ема данных с высокой степенью их структуризации и относительно строгими
схемами, без которых невозможно построение высокопроизводительной
online- аналитики. Наиболее типичными здесь являются пост-реляционные ре-
шения с колоночным хранением данных, иногда называемые колоночными
СУБД. «Платой» за эффективную аналитик)' в таких системах является долгое
время на запись (загрузку) данных и их модификацию, обусловленные особен-
ностями физического хранения, так же как и заявленные преимущества.
Третью группу представляют системы для гетерогенных данных, в кото-
рых можно хранить информацию различной степени структуризации и форма-
тов. В одном таком хранилище мо1ут присутствовать бинарные файлы, тек-
стовые документы, видео, графика и др. Самым простым вариантом гетеро-
генных хранилищ /того класса являются распределенные файловые системы,
например, IIDFS. Также к этой категории относятся гетерогенные системы
управления базами данных, построенные на основе слабо структурированных
моделей данных, например - ключ значение.
Безусловно, внутри каждого класса можно выделить некоторое количе-
ство других видов, в зависимости от используемой модели данных и других
характеристик. Систематизация этих трех классов на основе их применения в
системах высокой нагрузки приведена в таблице 1.2.
Важно сказать, что существует множество СУБД, не относящихся
напрямую к одной их приведенных категорий и предназначенных для решения
различного рода специальных задач Например, выделяется целый класс доку-
ментов - ориентированных СУБД, ярким представителем которых является
MongDB. Несмотря на то, что эта СУБД близка к системам управления гете-
рогенными данными, се нельзя отнести к ним напрямую, так как тип хранимой
в ней информации ограничен размеченным текстом.
Особую нишу занимают графовые базы данных, которые можно разде-
лить на два типа. К первым относятся СУБД .для локальной обработки инфор-
мации, например - Nco4j. Ко вторым - СУБД, ориентированные на вычисли-
тельные кластеры, например FlockDB. Такое деление основано на особенно-
стях физического хранения данных в таких системах и отсутствии на сегодня
эффективной реализации обхода графа и работы с маршрутами при фрагмени-
гировании графовых данных на различные вычислительные узлы Графовые
17
СУБД, реализованные как «надстройка» над хранилищем «по строкам», или
просто реляционным хранилищем также занимают отдельную нишу, но отне-
сти их к системам высокой нагрузки достаточно сложно.
Таблица 1.2
СУБД для высокой нагрузки по данным
Тип Назначение Модели данных Примеры
Системы управления данными в оперативной памяти Высокоскоростная обработка быстро поступающих данных, организа- ция очередей и кэширования в оперативной памяти Как правило, ключ-значение и другие агрегатные подходы Trantool, Redis, Aerospikc и др.
Системы высоко- производительной аналитики Хранение больших объемов данных и реализация над ними недетермини- рованных аналити- ческих задач Пост-рсляционныс СУБД с храпением по столбцам, семей- ство столбцов Vcrtica, Cassandra и др.
Системы управления гетерогенными данными Храпение больших объемов гетероген- ных данных Ключ-значение и другие слабо структурированные агрегатные модели I IBase. Riak др.
1.1.4. Подходы к высокопрокзс бдительной
обработке данных
Типы систем обработки и хранения данных
Вес системы обработки данных, вне зависимости от их класса и степени
нагрузки, можно разделить на несколько категорий, обусловленных подходом
к обработке информации. Это:
1. Запрос-ответные системы
Системы этого класса определяются основной характеристикой - время
отклика. Время ответа на запрос в данном случае нс должно превышать допу-
стимого с точки зрения предметной области задачи и, в общем случае, быть
минимизировано.
18
2. Системы пакетной обработки
В системах этого класса ноль юватсль нс ждет быстрого ответа системы
и время отклика может быть больше, чем обычное время ожидания. В то же
время пакетные системы предназначены для оптимизации всего пула решае-
мых задач (поступивших на обработку запросов) с целью снижения суммар
ного времени их выполнения Основной характеристикой таких систем явля-
ется их пропускная способность,
3. Системы поточной обработки
Иногда системы поточной или потоковой обработки называют систе-
мами «почти реального времени». Их основной задачей является нс время от-
вета на запрос и не обработка некоторого пула входных запросов пользовате-
лей, а преобразование входных данных в выходные в соответствии с некото-
рыми предустановленными правилами Такие решения еще называют «систе-
мами с непрерывным запросом». Основной характеристикой решений этого
класса является время обработки входного фрагмента данных или, чаще ис-
пользуется, допустимая скорость входного потока информации
Компоненты систем управления
Большими данными
Высокона1ружснныс по данным приложения на сегодняшний день со-
здаются из отдельных компонентов, обеспечивающих отдельную функцио-
нальность и целиком или частично относятся к одному из приведенных клас-
сов В качестве общей разделяемой многими приложениями функционально-
сти можно привести:
• хранение данных на дисках или в оперативной памяти;
• поиск данных в хранилище или файловой системе;
• генерация и обработка сообщений для обеспечения асинхронной об-
работки;
• поддержке) очередей на обработку данных
и другие. Современные инструменты с одной стороны выступают как «строи-
тельные блоки» для построения системы в целом, с другой - сущсст вуст общая
тенденция в создании распределенных сред на скрытие особенностей распре-
деленной (многопоточной) обработки и переход на уровень алгоритмов.
Частичное сокрытие от пользователя, применяющего инструмент обра-
ботки данных, многопоточности достигается за счет использования распреде-
ленных алгоритмов управления транзакциями и согласованностью информа-
ции. Па рисунке 1.2 (А) представлена традиционная распределенная СУБД,
19
а лам же (Б) - современная система управления данными и высокопроизводи-
тельного анализа, сочетающая в себе гетерогенные компоненты.
А)
Программный комплекс управления данными
Распределенная СУБД
Б)
Распределенная система управления данными
Рисунок 1.2. Распределенные СУБД
и системы управления данными
Сегодня для решения задач управления данными в высокона1ружениых
системах существующих СУБД и их возможностей оказывается недостаточно.
Это связано с несколькими факторами.
1. Специализация СУБД
Современные системы управления базами данных можно разделить на
универсальные и специализированные. При этом первые, как правило, нс обес-
печивают достаточной производительности для современных высоконафу-
женных систем, а вторые - нс позволяют решать все поставленные задачи на
достаточном уровне качества, то есть, также не обеспечивают должных значе-
ний эксплуатационных характеристик.
2. Сложность разработки комплексного программного обеспечения
Так как высокопагружспныс по данным системы достаточно сложны и
включают в себя множество компонент, организовать их тффективпую работу
на всем множестве задач (или на большей его части) является сложной зада-
чей. Сегодня се решают так называемые «экосистемы» обработки больших
данных, состоящие из связанных наборов продуктов. Однако специфика про-
20
блсм настолько широка, что даже в рамках одной «экосистемы» можно по-
строить множество различных по архитектуре и характеристикам программ-
ных комплексов.
Поэтому на сегодняшний день высокопроизводительные системы обра-
ботки данных представлены в виде наборов программных компонентов, реша-
ющих как непосредственные задачи управления фрагментами данных (в лице
распределенных СУБД), так и вспомогательных вычислительных систем,
предназначенных для организации процесса обработки и управления данными
(например, вычислительные системы в парадигме Map-Reduce, системы обра-
ботки потоков данных, системы обработки сообщений и т. д.). Будем называть
такие комплексы системами управления данными (СУД).
Визуализация SAS Visual Analytics. R, SAP Lumira, iCharzs..
Развер i ывание Cloudera HUE. Myriad. Apache Ambari (Bigtop. Helix). Deploop...
Обработка данных Apache Flume (Kafka, Samza-J HiHO, Netflix Swo, Facebook Scribe, Morphline... Создание сервисов Apache Thrift (Zookzper, Avro. Curator), Twitter Elephant Bird... Планирование и тестирование Apache Oozie (Falcon), Shedoscope... Безопасность Apache Knox Gateway (Sentry, Ranger)... Фреймворки Jumbune, SpringXD, Cask Data App Platform Ведение мстаданных Metascope, Apache Tika Машинное обучение WEKA, Oryx, MADhb, H20, Deeptearningty. Sparking water, Apache SystemML...
Распределенное программирование Apache Ingnite (Flink Spark, Twill, Pig, Storm...), Kangaroo, Datasalt Pangool, Facebook Corona, Netflix PigPen, JAQL. TinkerPop... Сложные запросы (SQL Haloop) Apache Hive (HAWQ, Drill...), Kylin, Impala...
Хранилища Данных Wide Column Document Key-Value Graph New SQL Hbase, MongoDB, Redis, Giraph. Neo4J, TokuDB. Drizzle, Sky, Cassandra, CouchDB, Voldemort, TitanDB... SenseiDB, InfhixDB, Hypertable, DynamoDB, RocksDB, Stream VoltDB, Tarantool, Kudu... ArangoDB... OpenTSDB... Eventstore Vertica, SAP HANA...
Файловая система GridGam. XtreemFS. Lustre File System. Apache HDFS. Red Hat ClusterFS. Quantcast File System ..
Рисунок 1.3. Экосистема Hadoop
1! качестве примера можно привести современную экосистему Iladoop с
обилием разнообразных инструментов, которые можно интегрировать друг с
другом .для решения задач (рисунок 1.3) и пример дистрибутива системы
Arenadata Iladoop на основе технологий Apache, включающий такие компо-
ненты как:
• Блок хранения данных (IIDFS&Yam).
• Блок доступа к данным (llivc/T cz, Ilbasc, Phoenix, Kite API).
21
• Блок управления данными (NiFi. WcbllDFS, Flink, Лрех. Sqoop,
Flume, Kafka).
• Блок обработки и анализа данных (Spark. Map-Reduce, Pig, Mahout,
Giraph, Solr).
• Блок управления сервисами, задачами и мониторинга (Ambari,
Zookipcr, lluc/Zcppclin, Oozie).
• Блок управления безопасностью (Atlas, Knox, Ranger).
Эти примеры показывают вариативность, многокомпонснтность и гете-
рогенность современных инструментов высокопроизводительной обработки
данных.
Контрольные и опросы и задания к разделу 1.1
1. Когда данные в информационно-аналитической системе можно назвать Боль-
шими данными? Приведите примеры больших и быстрых данных.
2. Какие существуют требования к выеокона1руженным системам и как они связаны
с основными принципами их построения?
3. В чем особенности современных выеоконагруженных по данными систем по
сравнению с распределенными СУБД? В чем сложности работы с ними?
4. Составьте на основании от крытых источников перечень инструментов обработки
больших данных, указав область их применения, особенности и совместимость.
5. Определите тип и специфику данных и подберите стек инструментов для их об-
работки в условиях высокой нагрузки для заданной системы или одной из систем
данного списка:
а) сбор и анализ данных мобильных устройств;
Ь)сбор и анализ данных умных автомобилей для регулирования дорожной сети;
с) система обмена пользовательскими сообщениями;
d)система управления промышленным комплексом;
е) система финансовых торт ов.
Список источников к разделу 1.1
1. Ьородаенко В., Ермаков А. Универсальная платформа обработки больших дан-
ных И Открытые системы. СУБД. - 2017. -№ 3. - С 12-13.
2. Коталовский М. Р. Энциклопедия технологий Баз данных. - М. Финансы и ста-
тистика, 2002. - S00 с.
3. Кузнецов С. Д. Базы данных: Языки и модели - Москва, Бином, 2008. - 720 с.
4. Полтавцева М. А. Хабаров А. Р. Безопасность баз данных: проблемы и перспек-
тивы //Программные продукты и системы. -2016. -№ 3-1. - С. 36-41.
22
5. Садаладж Д., Фаулер М. NoSQL. Новая методология разработки нереляционных
баз данных. - М.: Вильямс. - 192 с.
6. Уайт Т. Hadoop. Подробное руководство. - 2-е издание. - СПб.: Нигер, 2013 -
672 с.
7. Kuznetsov S. D , Poskonin Л. V. NoSQL data management systems // Programming
and Computer Software. - M.: Spnnger-Verlag GmbH, 2014. - Volume 40, Issue 6 -
Pp 323-332. DOI: 10.1134/S0361768814060152
8. Poltavtseva M. 4. Evolution of Data Management Systems and Their Security' // 2019
International Conference on Engineering Technologies and Computer Science (EnT),
Moscow. Russia, 2019. pp 25-29. dot: 10.1109/EnT.2019.00010.
1.2. Технологии высокопроизьодительной
обработки данных
1.2.1. Пакетная обработка данных
Концепция Map-Reduce
Современная пакетная обработка данных в высокопроизводительных
системах строится на использовании технологии Map-Reduce. Map-Reduce -
это концепция построения сред обработки данных и выполнения запросов,
позволяющая обрабатывать большие наборы данных в распределенном храни-
лище (СУБД или файловой системе).
Для реализации этой задачи в Map-Reduce необходимо реализовать две
функции обратного вызова. Напомним, что функции обратного вызова - это
функции, передающие исполняемый код в качестве параметров.
Сам по себе вызов Map-Reduce принимает на вход некоторый набор
ключей записей (возможно, в форме запроса с условиями) и генерирует ре-
зультат, отвечающий ему, на основании хранимого распределенного массива
данных. 13 концепции Map-Reduce под записью понимается типизированная
единица входных данных, что позволяет формировать цепочки из последова-
тельных Map-Reduce вызовов при обработке больших массивов информации
Функции, входящие в состав набора Map-Reduce, это:
1. Функция сопоставления (Мар)
Функция сопоставления вызывается один раз для каждой входной за-
писи (входного ключа). Она извлекает ключ и значение (другие параметры)
записи в хранящихся распределенных данных. Для каждого входною набора
23
ключей на этом этапе может быть сгенерировано любое число пар ключ -
значение из распределенного хранимого набора, в том числе - пустое множе-
ство.
При выполнении функции Мар каждый входной ключ (запись) обраба-
тывается отдельно и независимо, без сохранения состояния.
2. Функция сжатия (Reduce)
Функция сжатия или функция Reduce принимает на вход все пары
ключ - значение, сгенерированные функцией сопоставления Мар. В первую
очередь, она объединяет все значения, соответствующие одному, общему
ключу в один набор Для каждого такого набора вызывается функция сжатия.
Общий порядок выполнения Map-Reduce вызова выглядит следующим
обращом:
1. Чтение входного набора данных и разделение его на «записи».
Например, при обработке словарного запроса каждый термин за-
проса будет отдельной записью, а при обработке лога данных - каж-
дая запись лога.
2. Вызов функции сопоставления для определения ключа и значений,
связанных с каждой входной записью.
3. Сортировка полученных пар ключ - значение по ключу.
4. Вызов функции сжатия.
Объединение пар с одним ключом происходит на этапе сортировки и по-
следующего сжатия Первый и третий этапы как правило выполняются ин-
струментами обработки, а второй и четвертый, собственно объединение и сжа-
тие, представляет собой пользовательский программный код, разработанный
при формировании запроса или сформированный СУБД, со встроенной Map-
Reduce обработкой, автоматически.
Концепция Map-Reduce включает в неявном виде поддержку распарал-
леливания вычислений над данными. Каждой функции на каждом ттапе Map-
Reduce цепочки не важно откуда поступили входные данные, и среда разра-
ботки обеспечивает их перемещение от отправителя, с выхода предшествую-
щего этапа обработки, к получателю на новый этап автоматически. Рису-
нок 1.4 иллюстрирует работу технологии Map-Reduce.
Когда функция Мар заканчивает чтение входного набора и сто сопостав-
ление, планировщик Map-Reduce уведомляет модуль сжатия о возможности
начать работу. Процесс секционирования по принадлежности к конкретной
функции сжатия, сортировки и копирования разделов данных с этапа сопо-
ставления на этап сжатия называется перетасовкой, хотя и не носит случай-
ного характера.
24
Рисунок 1.4. Работа Map-Reduce
При передаче данных от учла, реализующего сопоставление к узлу сжа-
тия, для определения целевого узла используется хэш- значение от соответ-
ствующего ключа записи. Это позволяет гарантировать попадание записей с
одним ключом на один и тот же узел сжатия одновременно с распределением
данных по узлам.
Промежуточная сортировка также занимает большое число времени, так
как объем данных в результате этапа сопоставления значителен. Основной по-
рядок сортировки выглядит следующим образом:
1. Каждая функция сопоставления разбивает свой результат .для сжатия
на наборы в соответствии со значениями хэш функции от ключей.
2. Каждая секция записывается в отсортированный файл (блок, набор)
на диске узла, осуществляющего сопоставление.
3. По завершению обработки входного файла и окончанию формирова
ния отсортированных наборов узлы сжатия оповещаются о возмож-
ности начала обработки.
4. Каждый узел, осуществляющий сжатие, выполняет загрузку своего
набора для выполнения операций.
При слиянии различных наборов на этапе сжатия порядок сортировки
сохраняется. При этом функция сжатия вызывается для конкретного ключа
25
и в общем случае может использовать любую логику и любые операции над
принимаемым входным набором, что позволяет достаточно гибко задавать
операции над данными при самостоятельном написании Map-Reduce кода.
Стоит отмстить следующие особенности технологии Map-Reduce:
• Входные данные копируются на узлы с информацией, что отвечает
принципу приближения кода к хранимым данным, приведенного в
первой части.
* Количество задач сопоставления определяется числом входных за-
писей (ключей, файловых блоков).
• Количество задач сжатия определяется числом выходных записей, то
есть - автором задачи и далеко нс всегда соответствует количеству
задач сопоставления.
В конкрст ных решениях концепция Map-Reduce может иметь различную
реализацию. Так, например, в экосистеме Ifadoop функции сопоставления и
сжатия представляют собой классы на языке Java с соответствующим интер-
фейсом. В концепции документно-ориентированных MongoDB и CouchDB это
функции JavaScript.
Map-Reduce потоки
Отдельный Map-Rcducc набор операций позволяет совершать только от-
носительно простые операции надданными, нс смотря на гибкость функции
Мар. Для более сложных аналитических задач используются так называемые
потоки Map-Reduce, когда выходные данные одной задачи служат входными
для другой, формируется конвейер операций. В ряде решений, например,
Uadoop Map Reduce, такие потоки формируются неявно, через цепочки входа
и выхода. Выходные данные пакетной задачи считаются корректными только
при се успешном завершении. 1 ак все задачи - участники потока остаются не-
зависимы друг от друга и связаны только по данным
Для учета зависимостей между операциями используются планиров-
щики. Они позволяют синхронизировать чтение очередного Мар-этапа с окон-
чанием предшествующего сжатия Примерами таких планировщиков служат
инструменты Oozic, Azkaban, Luigi, Airflow, Pinball.
Необходимо понимать, что потоки могут быть достаточно сложными и
включать большое число компонентов В ряде аналитических задач в такой кон-
вейер может входить до сотни задач Map Reduce. Па автоматическое управле-
ние несколькими сложными потоками ориентированы Pig. Hive, Cascading,
Crunch, FlumeJava.
26
Объединение и группировка данных
Отдельного внимания заслуживают алгоритмы объединения и зруппи-
ровки данных. Помимо выборки данных, аналитические задачи включают
множество вариантов сопоставления и 1руппировок. Это хорошо видно при
изучении планов относительно сложных реляционных запросов, мтраг иваю-
щих несколько отношений Эффективность таких операций во многом опре-
деляет эффективность (временные характеристики, требования к ресурсам)
выполнения запроса в целом. В реляционных схемах используется понятие
связи по внешнему ключу и СУБД ориентированы на оптимизацию соответ-
ствующего типа соединений. В документно-ориентированных решениях в
этом ключе выступает ссылка на документ, в графовых СУБД-ребра.
Основным инструментом, потволяющим повысить эффективность по-
иска и соединения в СУБД является индекс. Однако в парадигме Map-Reduce,
особенно вне се реализации внутри систем управления базами данных, поня-
тие индекса отсутствует, ш- крайней мере, в обычном понимании. Базовые
концепции Map-Reduce основаны на полном сканировании данных, что делает
операции группировки и соединения крайне затратными но времени и ресур-
сам. С одной стороны, отмечается что в концепции Map-Reduce производятся
аналитические запросы низкой селективности, более эффективные при пол-
ном сканировании, чем при индексной выборке. К тому же, определенного по-
вышения производительности можно достичь их легким распараллеливанием.
С другой, задача объединения нескольких наборов данных (например, по об-
щему признаку) остается актуальной.
В общем случае объединение данных из двух наборов может быть реа-
лизовано как на папе сжатия, гак и на этапе сопоставления Первый подход
является более интуитивным и очевидным, в силу возможности предваритель-
ной сортировки данных и ускорения соединения, однако второй обладает ря-
дом других преимуществ - например, меньшими вычислительными затратами
и более низкими требованиями к ресурсам.
Вторичная сортировка
Примером задачи объединения может стать анализ пользовательской ак-
тивности (рисунок 1.5). В данном случае типовой пример объединения - это
установление соответствия между транзакциями пользователя и данными его
профиля, хранящегося в другом наборе данных. Оба входных набора в данном
примере имеют разные ключи и, даже если отсортированы или кластеризо-
ваны в процессе записи, то по разным атрибутам.
Между этапами сопоставления и сжатия данных проводится их сорти-
ровка и разделение по ключам, чтобы все записи с одним идентификатором
27
пользователя попадали подряд на вход функции сжатия. Так как в сжазии
участвуют записи двух типов, также необходимо чтобы на вход функции
Reduce поступала сначала запись с идентификатором пользователя, а потом -
все свя занныс с этим пользователем события в историческом порядке, опреде-
ляемом меткой времени. Процесс формирования таких наборов называется
вторичная сортировка
Рисунок 1.5. Пример объединения данных разных наборов
Объединения на этапе сжатия
Объединение данных из разных наборов связывается именно с функцией
сжатия по нескольким причинам. Функция сжатия вызывается один раз для
каждого значения ключа, поэтому объединение по данному ключу логично со-
отнести с этим этапом. Как следствие, при таком подходе на зтапс сжатия все
записи одного ключа могут быть помешены в память и обработан в один про-
ход. Такой подход называется объединением с сортировкой слияния (рису-
нок 1.6). Если входные наборы данных разделены на несколько файлов, то
каждый из них может обрабатываться несколькими функциями сжатия парал-
лельно.
Четные идентификаторы устройств
Рисунок 1.6. Объединение с сорзировкой слияния на этапе сжатия
28
Описанный подход называется шаблоном «Размещение связанных дан-
ных в одном месте» и соответствует общим принципам разделения данных
между узлами распределенной системы Действительно, для того чтобы до-
стичь принципа приближения вычислений к данным, необходимо, чтобы опе-
рации, затрагивающие связанные данные, проводились на том узле, где дан-
ные хранятся (с минимальной пересылкой). Следовательно, предпочтительно
чтобы связанные данные были сгруппированы на одном узлс-обрабогчикс.
Использование хэш-адресации узлов-обработчиков на этапе сжатия поз-
волило отделить логику обработки данных приложения от сетевых коммуни-
каций и избежать прямого указания адреса узла-получателя при пересылке
данных в Map-Reduce. При этом от приложения также скрыты коммуникаци-
онные ошибки и отказы. Так как в парадигме пакетной обработки успешной
считается только полностью завершенная задача, прзз сбоях (включая комму-
никационные) выполнение задачи полностью повторяется.
Объединения на лпапе сопоставления
Существует несколько вариантов выполнения соединения на этапе со-
поставления, реализованных в различных продуктах.
I Широковещательное объединение по хэшу
Метод используется, когда большой набор данных объединяется со зна-
чительно меньшим. Критерием .для применения ттого метода является размер
меньшего набора. Он должен полностью помещаться в оперативной памяти
при выполнении соединения.
В этом случае функция сопоставления считывает малый набор данных в
памяти, формируя хэш - таблицу. Затем сканируется больший набор данных и
для каждого значения ключа в нем отыскиваются связанные данные в органи-
зованном хэше.
Число задач сопоставления соответствует числу входных файловых бло-
ков. Каждая функция сопоставления загружает зз использует свою копию дан-
ных малою набора в памяти. Из-за этого метод называется «широковещатель-
ным» сопоставлением.
Такое объединение поддерживается Pig, Hive (Mapjoin), Cascading,
Crunch, Impala.
Вариантом реализации широковещательного объединения служит ме-
тод, использующий вместо хэш-таблицы в памяти хранящийся на диске «read-
only» индекс. Часто используемые страницы этого индекса остаются в кэше
операционной системы В этом случае скорость доступа в среднем будет нс
сильно уступать доступу при помощи хэш-таблицы, однако снимается ограни-
чение на полное размещение данных в оперативной памяти.
29
2. Секционированное хэш-объединение
Метод применяется, когда исходные данные для соединения распреде-
лены одинаково или близко к этому В этом случае ни один из участвующих в
соединении наборов данных не может быть размещен в оперативной памяти
даже большей частью.
При соединении исходные данные разбиваются на разделы по задан-
ному признаку. Как правило, в качестве признака выступает часть ключевого
атрибута данных. Например, в первый раздел могут попасть идентификаторы
пользователя начинающиеся на 1. во второй на 2 и т. д. Вторым этапом над
загруженными данными выполняется поиск и слияние данных с одинаковым
ключом.
В результате, каждая функция сопоставления оперирует своим разделом
и обрабатывает меньшее число данных, чем исходный набор - что позволяет
использовать индекс (в том числе, в виде хэш-таблицы) в оперативной памяти.
Разделы обеспечивают попадание всех записей с одним ключом в один раздел,
что обеспечивает их корректное соединение.
Для этого метода требуется равномерное распределение входных дан-
ных по разделам. Характеристики исходного набора данных не всегда отве-
чают этому требованию, однако, если в качестве входного набора использу-
ется результат предыдущих операций Map-Reduce, данный критерий, как пра-
вило, выполняется.
Такое соединение реализовано, например, в (live.
J. Объединение слиянием на этапе сопоставления
Метод применяется в том случае, если входные наборы нс только рас-
пределены приблизительно одинаково, но и отсортированы по одному и тому
же ключу. Этого удастся досгичь, как правило, если объединение произво-
дится над результатами предыдущих этапов Map-Reduce потока.
11 этом случае нс важна возможность размещения полного набора дан-
ных в памяти, так как функция сопоставления может использовать тот же под-
ход с последовательным чтением записей и слиянием данных двух наборов,
который характерен для соединения на этапе сжатия.
Обработка асимметрии
Одной из проблем Map-Reduce систем являются несимметричные дан-
ные и задачи их обработки. Несимметричными (асимметричными) данными
называются наборы, в которых данных с одним ключом может быть очень
много - больше, чем может быть размещено и обработано на одном узле.
Примером несимметричных данных можно назвать данные социальных
ЗС
сетей, когда у одного пользователя, в среднем, несколько сотен друзей (под-
писчиков), а список контактов знаменитостей может достигать нескольких
миллионов.
Такого рода записи, обладающие намного большим числом значений,
связанных с ключом, чем в среднем по набору, называются ключевыми объ-
ектами или горячими ключами. Так как в концепции пакетной обработки
Map-Reduce все задачи могут назначат ь следующий этап только после полного
завершения предыдущего (обработки всех ключей, включая горячие), то время
выполнения всего пакета (обработки всех ключей) соответствует времени вы-
полнения самой медленной задачи или самого медленного сжатия. Тогда клю-
чевые объемы становятся узким местом системы замедляя обработку всех
данных.
Для того, чтобы компенсировать затраты времени на обработку горячих
ключей и повысить общую производительность обработки данных в различ-
ных реализациях технологии Map-Reduce используются алгоритмы компенса-
ции. При этом, как правило, обработка горячего ключа распределяется между
несколькими функциями сжатия и базируется на предварительной оценке
ключей.
Обработка асимметрии с использованием объединения на этапе
сжатия:
• Ассиметричное объединение (Pig)
Заключается в предварительной обработке образцов, чтобы опреде-
лить перечень горячих ключей. Па каждый горячий ключ генериру-
ется несколько функций сжатия Выбор функции обработки для кон-
кретного кортежа данных из этого списка определяется случайным
образом. Для прочих входных данных объединения с записями горя-
чего ключа тиражируются по веем узлам, где выполняются его функ-
ции сжатия.
• Сегментированное объединение (Crunch)
Сегментированное объединение требует явного указания горячих
ключей, без выборки образцов. В остальном алгоритм обработки
данных соответствует приведенному ассиметричному объединению.
Обработка асимметрии с использованием объединения на этапе со-
поставления:
• Асимметрия с объединением на этапе сопоставления (Hive)
Альтернативный подход к поддержке асимметрии Hive также тре-
бует, чтобы I орячис ключи явно указывались в метаданных таблиц
31
данных. Записи, ассоциированные с ключевыми объектами, в этом
случае хранятся в особых файлах, отдельно от остальной информа-
ции, а при объединении данных используется нс объединение на
этапе сжатия, а объединение на этапе сопоставления.
Группировка записей с горячими ключами сходна с объединением, од-
нако в отличии от сопоставления менее вариативна. Она, как правило, осно-
вана на иерархической конвейерной обработке и проводится в два этапа.
1. Записи отправляются на обработку случайной функции сжатия. В ре-
зультате каждая функция сжатия выполняет группировку по подмно-
жеству записей ключа, получая более компактное агрегированное
значение.
2. Результаты сжатия первого этапа отправляююя на вход ной опреде-
ленной функции сжатия для получения окончательного результата -
одного сгруппированного значения для каждого ключа.
Сравнение подходов к объединению и группировкам
Подходы к объединению и группировке на этапах сжатия и сопоставле-
ния имеют свои преимущества и недостатки, обусловленные временем (эта-
пом) выполнения соединения и, как следствие, его влиянием на производи-
тельность и обработку асимметрии данных. Особенности обоих решений све-
дены в таблице 1.3.
Таблица 1.3
Подходы к объединению и т руппировке в Map-Reduce
Харакзериезнка Объединение на этапе сопоставления Объединение на этапе сжатия
Предположения о входных данных (горячих ключах) Указываются в метаданных Не требую1ся (автоматизированы па ттапс сопое гавления)
Вычислительные затраты Низкие Высокие
Промежуточная запись на диск Не трсбусзся (требуется редко) Требуется, часто несколько раз
Секционирование и сортировка выходных данных Согласно большему набору данных Согласно ключу обьсдинепия
Как показано в таблице 1.3, выбор между этапом проведения соединения -
при сопоставлении или сжатии данных, - влияет на структуру выходных дан-
ных Map-Reduce. Это важно при составлении потока: использование нужным
32
образом отсортированных входных данных на следующем этапе потока может
существенно повлиять на скорость выполнения операций.
Для создания файлов базы данных в задачах Map-Reduce используются
хранилища на основе модели ключ - тначснис (Voldemort, Terrapin, IlBa.sc в
режиме пакетной загрузки) или распределенные файловый системы (напри
мер, 11DFS).
Сравнение Map-Reduce с другими технологиями
Технологии МРР и Map-Reduce
Сегодня системы высокой нагрузки в области управления данными ба-
зируются на двух противоречивых технологиях: пакетной обработке данных в
парадигме Map-Reduce и массово-параллельной обработке данных МРР
(Massive parallel processing). МРР технология имеет две интерпретации: пото-
ковые инструменты, речь о которых пойдет ниже, и решения в области мас-
сивно-параллельных баз данных. СУБД с массовым параллелизмом ориенти-
рованы на параллельное выполнение SQL-запросов на вычислительном кла-
стере. Сравнение технологий МРР и Map-Reduce применительно к хранимым
на диске данным приведено в таблице 1.4.
Таблица 1.4
Сравнение техиоло: ни МРР и Map-Reduce
Харак т срисика МРР (Massive par allci processing) Map Reduce
Структуризация данных Структурированные таблицы / колонки Произвольные наборы ключ-значение
Операции па уровне Структурных элементов Сырых данных
Вариативность видов данных Низкая (LTL-предобработ ка) Высокая
Гибкость семантики и выразительность запроса Высокая Низкая
Интерпретация данных в БД 11отрсбителсм
Стоимость повторного выполнения запроса Низкая 11олтгос повторение этапа Мар или Reduce
Промежуточный результат выполнения В памяти На диске (материализация состояния)
33
Техноло! ия Map-Reduce, в отличии or МРР-решений, рассчитана на бо-
лее крупные и долгие задачи, выполнение которых сопровождается частыми
прерываниями выполнения из-за необходимости освобождать ресурсы.
Па практике обработка данных зачастую используется как компонент
LTL (Extract Transfer Loading - извлечение, преобразование и загрузка) для
складирования сырых данных транзакций в массивно-параллельное SQL хра-
нилище. Это связано с О1раничсниями на виды обработки данных в Map-
Reduce и невысокой производительностью относительно отдельных запросов.
Примером реализации SQL поверх Map-Reduce можно назвать Hive.
Map-Reduce и текстовые конвейеры
Использование в Map-Reduce материализации промежуточного состоя-
ния в виде набора файлов обуславливает сравнение этой технологии с другими
схожими решениями, в частности - конвейерами Unix, также осуществляю-
щими промежуточную запись в файлы. Основным отличием между этими под-
ходами является то, что конвейеры передают поток выходных данных на вход
постепенно, применяя только небольшой буфер в памяти. Map-Reduce, в свою
очередь, использует полностью материализованное промежуточное состоя-
ние, фиксирующееся в момент завершения генерирующей его задачи на всех
узлах.
Особенностями подхода Map-Reduce, сравнивая эти технологии, можно
назвать следующие:
• Необходимость ожидать завершения всех операций в Map-Rcducc
приводит к замедлению всего потока.
• Функции сопоставления следующих этапов и функции сжатия
предыдущих часто могут быть функционально объединены - но это
нс предполагается технологией.
• Сохранение промежуточного состояния в распределенной файловой
системе означает репликацию этих файлов па нескольких узлах, что
часто бывает избыточным для таких временных данных.
Для устранения этих недостатков разработаны дополнительные инстру-
менты обработки данных над (помимо) Map-Reduce, основанные на обработке
потоков (например, Spark и Flink). Гибкое сочетание функций Мар и Reduce
при помощи общего понятия оператора реализовано в некоторых исследова-
тельских проектах (см. Dryad, Ncphelc). В то же время подход Map-Reduce с
полной материализацией является значительно боле отказоустойчивым, в том
числе, в случае нестабильных ресурсов и частого прерывания задач.
В целом системы пакетной обработки решают две проблемы распреде-
ленной! обработки данных:
34
1. Секционирование, включая перемещение вычислений к данным,
совместное размещение связанных данных.
2. Отказоустойчивость.
При этом они имеют заранее ограниченную модель программирования,
гак как функции обратного вызова в потоках обработки данных считаются нс
меняющими состояния и нс имеющими другого выхода, кроме генерируемых
выходных данных Это позволяет скрыть особенности распределенных систем
и сделать разработку приложений более простой и прозрачной. Важно пони-
мать, что входной набор данных Map-Reduce, ограничен (например, файл жур-
нала или набор записей), момент окончания обработки набора заранее изве-
стен. Работа с условно неозраниченными наборами или потоками данных осу-
ществляется в отдельном классе приложений - инструментах потоковой обра-
ботки.
1.2.2. Потоковая обработка данных
Основные области применения потоковых инструментов обработки дан-
ных — что ETL-конвейсры для поступающей информации (если ее запись и по-
следующий анализ с физического носителя по какой-либо причине нс рацио-
нален) и системы высокопроизводительной обработки, ориентированные на
постоянную оценку состояния и/или генерацию реакции на базе заранее задан-
ной модели запроса.
Системы реального времени
и потоковой обработки данных
В основе инструментов потоковой обработки данных положены техно-
логии систем реального времени В большинстве случаев применений си-
стемы потоковой обработки также предназначены для решения аналогичных
задач. Системы реального времени можно классифицировать в зависимости от
требований ко времени реакции (таблица 1.5).
Определение класса системы, времени реакции, допустимости задержки
является первым этапом проектирования систем потоковой обработки данных.
Жесткие системы реального времени, как правило, связаны с опасностью для
жизни и здоровья человека при нарушении временных характеристик функци-
онирования (время реакции, задержка). Мягкие системы характеризуются фи-
нансовыми потерями, тогда как выход за проектные границы системы «почти»
реального времени означает лишь временные или незначительные неудобства
35
Граница между мягкими системами и системами почти реального времени до-
статочно размыта.
Таблица 1 5
Классификация систем реального времени
Класс Время реакции Терпимость к запаздыванию Пример
Жесткая 10 -'-10 6 сек Поль Кардиостимулятор, ABS
Мя1 кая 1-1с сек 1 Цыкая Электронная биржа. VoIP
Почти реального времени l—60-l сек Высокая Домашняя автоматика, бронирование билетов
Системы потоковой обработки данных характеризуются тем, что их
трудно напрямую отнести к каждому из классов. Так, например, сетевые за-
держки нс позволяют им выдержать стандарты реального времени, а более
мягкие требования могут нарушаться если клиент нс готов принимать данные
(например, сообщение в социальной сети). Полому в общем случае комплекс-
ные системы потоковой обработки стоят скорее рядом с системами реального
времени, тогда как отдельные подсистемы, инструменты потоковой обработки
широко применяются при создании систем с жесткими требованиями - напри-
мер. систем обнаружения вторжений.
Общая архитектура потоковой системы приведена на рисунке 1.7 В ка-
честве звена сбора данных выступает некоторая служба, аккумулирующая ин-
формацию из заданного набора источников. В центре обработки данных новые
данные поступают в очередь на обработку (очередь сообщений). Сообщения
читаются из очереди для проведения над ними аналитических и других преоб-
разований, результат которых заносится в память для доступа службы по-
ставки данных потребителю (звено доступа к данным). Также данные могут
сохраняться в долговременной памяти на диске для последующего историче-
ского анализа и решения других задач
Безопасность данных в современных системах потоковой обработки
обеспечивается при помощи средств аутентификации и авторизации на стыке
различных инструментов (систем обработки) и при помощи шифрования дан-
ных при их передаче по открытым каналам связи (рисунок 1.8).
Э6
Возвращение к только что проаналитиропашшм данным
Рисунок 1.7. Общая архитектура потоковой обработки данных
Рисунок 1.8. Основные компоненты защиты данных потоковых систем
Сбор данных
Звено сбора данных может строиться различным образом, в зависимости
от типа системы потоковой обработки и выполняемых ею задач. Рассмотрим
основные паттерны взаимодействия.
1. Запрос - ответ
Системы этого типа используют одно подключение и для генерации за-
проса к данным, и для получения ответа. В этом случае источник данных сам
является источником запроса. Например, к таким системам относятся решения
интернст-поиска, SMS-уведомлений, online-покупок.
Так как синхронные запрос-ответныс системы зачастую приводят к не-
допустимому поведению клиентской части (ожиданию реакции в течении для
тельного времени) для систем такого рода используется стратегия увеличения
37
скорости реакции, включающая асинхронный подход к отправке запроса (без
явного ожидания ответа на него на клиенте). В >том случае .для запроса и от-
вета фактически создаются различные подключения с сохранением иллюзии
одного действия на клиенте. Ответы на запросы генерируются последова-
тельно в порядке поступления запросов или по мере их выполнения (рису-
нок 1.9).
Рисунок 1.9. Паттерн ассинхронного взаимодействия «запрос - олвет»
(асинхронность на стороне службы или полная)
В общем случае поддержка асинхронности в запрос-отвстных системах
возможна на стороне клиента, на стороне службы или на обоих сторонах (пол-
ная).
2. Запрос - подтверждение
Паттерн «запрос - подтверждение» отличается от занрос-огвстного тем,
что ответа на запрос в явном виде нс требуется - необходимо только подтвер-
ждение службы, что запрос получен. Примером такой системы может быть
сбор действий пользователя на сайте и контекстная марксгинювая реакция
при следующем посещении’от крыт пи следующей страницы.
3. Издатель - подписчик
Паттерн «издатель - подписчик» используется системами на основе со-
общений, например различными информационными каналами. Схема взаимо-
действия приведена на рисунке 1.10.
38
Рисунок 110 Взаимодействие «издатель - подписчик»
на основе сообщений
В этом случае вес сообщения г руппируются по некоторым признакам,
объединяясь в так называемые темы Затем сообщения рассылаются веем по-
требителям темы. Инициатором потока каждого сообщения может быть, как
издатель, так и подписчик. Данный паттерн позволяет дистанцировать произ-
водителя и потребителя данных с точки зрения архитектуры с целью масшта-
бирования системы.
4. Одностороннее взаимодействие
Паттерн одностороннего взаимодействия нс подразумевает ответа от по-
лучателя данных или службы .для источника Примером такого взаимодей-
ствия можно назвать сбор данных с датчиков промышленных систем. При та-
кой коммуникации отправитель нс заинтересован в дальнейшей судьбе сооб-
щения и нс требует на него очевидной реакции.
При эксплуатации этого подхода возможны решения, допускающие по-
терю данных (например, при передаче в сетях с нестабильным взаимодей-
ствием), взамен обеспечивая простоту, низкие затраты ресурсов на поддержа-
ние модели и быстродействие.
5. Ноток
Взаимодействие на основе потока подразумевает непрерывный ответ на
непрерывный поток входных данных. Сравнение этого подхода с запрос-от-
встными решениями приведено на рисунке 111. Особенностями паттерна «по-
ток» являются:
• Ответом на один запрос является непрерывный поток данных или
полное их отсутствие.
39
• Звено сбора данных нс получает сообщение от источника данных,
а подключается к нему, само получая информацию.
В рамках этого паттерна на вход принимается один поток данных и, в от-
вет, порождается другой - что отличает его от прочих коммуникационных
схем1
Запрос/ нс обязательный ответ
Потоковая передача
Подключение
Ответ непрерывным
потоком
Рисунок 1.11. Сравнение подходов запрос-ответ
и потоковая передача
Масштабирование сбора данных
Рассмотрим вопросы масштабирования звена сбора данных, разделив
все паттерны взаимодействия на «запросные» и «потоковые».
1. Масштабирование сбора данных «запросных» паттернов
Для запросных паттернов широко применяется горизонтальное масшта-
бирование. Оно достаточно удобно в реализации за счет специфики паттернов:
• отсу тствия сохранения состояния;
• явное разделение «клиентов» - источников данных.
В этом случае каждый клиент генерирует один экземпляр вычислений, в
дальнейшем экземпляры могут направляться на любое число узлов для обра-
ботки. Маршрутизация запросов клиентов выполняется балансировщиком
нагрузки. Экземпляры служб, отвечающих за выполнение запросов, запуска-
ются и останавливаются в зависимости от спроса. Схема такой работы приве-
дена на рисунке 1.12.
1 Сайт Meetup сот предлагает пример потока для анализа но ссылке http://streem.meetup.eom/2/rsvps.
Этот поток включает данные о мероприятиях (месте встречи, участниках, группах) в формате JSON.
40
Рисунок 1.12. Масштабирование сбора данных «запросных» паттернов
2. Масштабирование сбора данных «потоковых» паттернов
Скорость поступления данных на «потоковых» запросах также может
бьпь крайне велика. Например, скорость потока поисковых запросов Google
составляет более 40 тыс. событий в секунду, так же как и скорость потока тра-
фика в сетях передачи данных (более 100 Гбит/с). В этом случае для горизон-
тального масштабирования сбора данных можно применить два подхода:
1. Масштабирование узла, потреб.тяющето поток.
2. Включение слоя буферизации.
Гак как масштабирование узла, принимающего поток, возможно только
вертикально наращиванием ресурсов, и, следовательно, имеет верхнее ограни-
чение производительности, на практике оба решения используются совместно
(рисунок 1.13).
При таком решении сообщения потока должны попадать в слой буфери-
зации без изменений, а после слоя буферизации может быть размещен набор
узлов - обработчиков, коюрый уже можно масштабировать горизонтально.
Методы обеспечения отказоустойчивости
Горизонтальное масштабирование сбора данных, нс смотря на реализа-
цию избыточности и возможность замены отказавших узлов, нс обеспечивает
полностью отказоустойчивости системы потоковой обработки. Проблемы воз-
никают при выполнении двух условий
41
1. Сообщение от источника нс воепроизводимо/нс может быть по-
вторно запрошено.
2. Задача чувствительна к потере данных.
Потенциальные точки отказа показаны на рисунке 1.14.
Рисунок 1.13. Масштабирование сбора данных «потоковых» паттернов
Рисунок 1.14. Потенциальные точки потери данных
при сборе информации
Выделяются два основных подхода к обеспечению отказоустойчивости
с точки трения потери данных.
42
1. Использование контрольных точек
11с смотря на большое разнообразие протоколов, использующих кон-
трольные точки, они вес обладают двумя важными характеристиками. Это ис-
пользование глобальных снимков и возможность потери данных.
Глобальный снимок - что сохранение во внешней памяти «мгновенного»
состояния всей системы, нс только уровня сбора данных.
Возможность потери данных обуславливает возможность восстановле-
ния системы только в последнем сохраненном состоянии, при котором вес сге-
нерированные после создания снимка данные теряются
Примером такого механизма является создание резервных копий СУБД
или механизм сохранения googlc-документов. Однако, в системах больших
(в данном случае - быстрых) данных при обработке потока трудно получить
непротиворечивый глобальный снимок на определенный момент времени.
2. Протоколирование
Методы, основанные на протоколировании, не используют глобальных
снимков и позволяют реализовать восстановление всех обработанных данных,
вне зависимости от времени их поступления и стадии обработки (если этап
был физически завершен). Протоколирование обработки данных может бьпь
реализовано различными методами, в зависимости от расположения инстру-
мента протоколирования относительно узла сбора данных.
Протоколирование на стороне получателя
Метод протоколирования на стороне получателя еще называется R13ML
(Receiver-based message login). Каждое полученное сообщение синхронно за-
писывается в надежное хранилище до совершения с ним каких-либо действий.
Общий подход к реализации проюколирования на стороне получателя
приведен на рисунке 1.15. Порядок обработки сообщения имеет вид:
1. Производитель данных отправляет сообщение.
2. Регистратор получает сообщение и отправляет его в хранилище.
3. Сообщение записывается на устойчивую к сбоям память.
4. Сообщение обрабатывается.
5. Результат обработки в формате сообщения отправляется следую-
щему звену.
Этапы 2-3 являются синхронными и могут прсдставлят ь собой узкое ме-
сто с точки зрения нагрузки на систему. В случае сбоя поступление входящих
сообщений блокируется и этот узел выводится балансировщиком нагрузки из
ротации, пока не будут обработаны заново все сообщения из хранилища, ко-
торые еще нс поступили на выполнение. Затем узел возвращается в ротацию
нагрузки.
43
Рисунок 1.15. Протоколирование на стороне получателя
Данная схема в целом соответствует протоколу WAL (Wright Ahead
Log), принятому для журнализации транзакций в СУБД.
Протоколирование на стороне отправителя
Метод протоколирования на стороне отправителя еще называется SBML
(Sender based message login). В этом случае сообщение помещается в память,
устойчивую к сбоям перед его отправкой на следующий этан обработки. Тогда
как протоколирование на стороне получателя скорее является защитой от соб-
ственных отказов, протоколирование отправителем защищает в первую оче-
редь от сбоев следующего звена и проблем в сети передачи данных.
Рисунок 1.16. Протоколирование на стороне отправителя
Схема протоколирования на стороне отправителя приведена на ри-
сунке 1.16. Порядок обработки сообщения имеет вид:
44
1. Производитель данных от правляет сообщение.
2. Сообщение обрабатывается получателем.
3. Рстистратор получает сообщение и отправляет его в хранилище.
4. Сообщение записывается на устойчивую к сбоям память
5. Результат обработки в формате сообщения отправляется следую-
щему звену.
6. Узел получает подтверждение, что сообщение получено следующим
обработчиком.
7. Сообщение в хранилище помечается как обработанное или удаля-
ется.
Также, как и предыдущем методе, при восстановлении в случае сбоя
узел на время исключается из ротации Воспроизведению в сеть передачи дан-
ных подлежат все сообщения, ответ о получении которых не пришел.
Гибридный метод протоколирования
При использовании протоколирования на стороне отправителя и на сто-
роне получателя всесторонней защищенности от отказов и потери сообщения
можно добиться, только используя лти методы совместно. Однако, как упоми-
налось выше, такой подход имеет ряд недостатков:
1. Снижение общей производительности на время записи в хранилище.
2. Дублирование данных в хранилищах входных и выходных сообще-
ний.
Для их устранения предложен метод протоколирования на стороне по-
лучателя - 1IML (Hybrid message login). Подход на основе совместной реали
зации RBML и SBML в сравнении с IIML приведен на рисунке 1.17.
Регистратор RBM L
Источник данных
Обработка
сообщения
Узел звена сбора данных
RBML+SBML
Отказ оу сгойчи вое
(3) хранилище
Отказоусгойчи вое
(7) хранилище
Подтверждение получения (ОчсрСДЬ СОобщС1ГИЙ
Регистратор RBML k ИГ
Регистратор SBML
Источник данных
Обработка
сообщения
Узел звена сбора данных
Отказоусгойчи вое
(Т) хранилище
Рисунок 1.17. Сравнение совместной реализации RBML и SBML с HML
45
Основной i нбрндного подхода являются объединение двух экземпляров
хранилища и асинхронная запись данных в него. Существует несколько спо-
собов реализации 1IML. один из них приведен на рисунке 1.17. Порядок обра-
ботки сообщения имеет вид:
1. Производитель данных отправляет сообщение.
2. Регистратор получает сообщение и отправляет его в хранилище.
3. Сообщение записывается на устойчивую к сбоям память.
4. Сообщение обрабатывается получателем.
5. Регистратор получает сообщение и отправляет его в хранилище.
6 Результат обработки в формате сообщения отправляется еле,дую-
щему звену.
7. Узел получает подтверждение, что сообщение получено следующим
обработчиком.
S. Сообщение в хранилище помечается как обработанное или удаляется.
Очереди сообщений и транспортировка данных
Звено очереди сообщений служит для отделения сбора данных от ана-
лиза. Такой подход позволяет достичь нескольких преимуществ:
• Обеспечение технологической независимости этапов сбора и анали за
данных.
• Обеспечение возможности физического разделения узлов собора и
анализа данных.
• Повышение степени абстракции при разработке программного обес-
печения.
Также в совокупности эти преимущества позволяют сглаживать нерав-
номерное поступление данных и обеспечить в системе в целом обработку ин-
формации без потерь
Архитектура очереди
Как правило при построении потоковых приложений используется не-
сколько очередей сообщений для промежуточного хранения и управления по-
током данных. Управление этими очередями возложено на специальный ком-
понент - брокер (рисунок 1.18).
Особенности реализации очередей свяганы с нюансами взаимодействия
брокера с потребителем и производителем данных, а также различные сцена-
рии поведения самого брокера.
Основной проблемой, возникающей при работе с очередью, является ее
переполнение. В потоковых системах переполнение очереди могут вызывать
две причины
46
1 Скорость входного потока.
В случае большой скорости поступления сообщений в целом, или в опре-
деленные пики нагрузки, сообщения могут быть потеряны из-за переполнения.
2 . Скорость выходного потока.
Медленные или периодически отличающиеся потребители могут нс
успевать выбирать сообщения из очереди и также вызвать переполнение и по-
терю данных
Рисунок 1.18. Архитектура очереди сообщений с брокером
Переполнение очереди также может решаться как на уровне производи-
теля, гаки на уровне потребителя данных.
В ряде приложений возможны ситуации с медленными или периодиче-
ски отключающимися потребителями (например, если звено сбора данных в
одном городе, а анализа в другом - никто нс гарантирует целостность сети
между ними). В этом случае проблема решается с использованием долговеч-
ных сообщений. Долговечными называются сообщения, которые помещаются
в хранилище большого объема с использованием устойчивой к сбоям памяти
на стороне звена обработки. Долговечные сообщения остаются в хранилище
на длительный срок, тогда как недолговечные сообщения удаляются из оче-
реди после потребления звеном анализа. Данные долговечных сообщений мо-
гут быть затребованы при решении проблемы переполнения очереди или при
историческом анализе.
Семантика обмена сообщениями
Поведение брокера и очереди сообщений определяется, в первую оче-
редь, припяюй семантикой обмена. Рассмотрим основные виды семантик.
1 Семантика «не более одного раза».
Гарантирует что сообщение от производителя к потребителю будет до-
ставлено ноль или один раз, но нс более. Эта семантика важна если речь идет
о задачах, когда повторение операции нарушает логику работы (например, при
отправке сообщения в социальной сети).
47
2. Семантика «не менее одного раза».
Семантика «нс менее одного раза» гарантирует доставку сообщения, но
допускает повторения в случае сбоев. Она характерна для вычислительных за-
дач, где обработку сообщения можно повторить без нарушения общей модели
работы приложения
3. Семантика «ровно один раз».
Семантика ровно один раз наиболее сложна в рсатизации, однако гаран-
тирует что каждое сообщение от производителя к потребителю будет достав-
лено только один раз и не больше. Такой подход характерен, например, для
финансовых решений.
В случае доставки сообщений от производителя к потребителю воз-
можно большое число различных отказов на ра зных этапах коммуникации
(таблица 1.6).
Таблица 1.6
Отказы при грапспоргировке сообщений
Источник М Семантика Сообщение
Производите зь данных 1 1 Отказ производит спя после формиро- вания сообщения по до сю отправки Потеряно
1.2 Отказ производителя в ожидании подтверждения приема сообщения брокером Потеряно или отправлено повторно
Сеть производитель - брокер 2.1 Пропажа с<юбщспия при передаче Потеряно или отправлено повторно
2.2 Пропажа подтверждения приема сообщения брокером Потеряно или отправлено повторно
Брокер 3.1 < >гка з брокера до помещения сообщения в хранилище Потеряно
3.2 Ог ка з брокера после помещения сообщения в хранилище, но до отправки подтверждения Потеряно или отправлено повторно
3.3 Отказ брокера при отправке сообщения потребителю Потеряно или отправлено повторно
3.4 Огка з брокера в ожи дан ии подтверж- дения приема сообщения потребителем Потеряно или отправлено повторно
Очередь 4 Огказ при попытке записи сообщения в хранилище (па диск при его использовании) Потеряно
48
Окончание таблицы 1.6
Источник № Семантика Сообщение
Сеть брокер - потребитель 5.1 Пропажа сообщения при передаче Потеряно или отправлено повторно
5.2 Пропажа подтверждения приема сообщения потребителем Потеряно или отправлено повторно
Потребитель 6 Отказ до фиксации факта обработки сообщения (отправки подтверждения). Потеряно или отправлено повторно
Степень гарантии, обеспечиваемая системой потоковой обработки,
прямо пропорциональна сложности реализации и обратно пропорциональна
производительности системы. По этой причине большинство готовых реше-
ний по умолчанию («в коробке») нс поддерживает наиболее сложную и наиме-
нее производительную семантику «ровно один раз». Для се обеспечения необ-
ходимые проверки и операции должны быть добавлены вручную. Семантика
«ровно один раз» обеспечивается применением одного из двух подходов или
их совместной реализацией.
/. Отправка «только один раз».
Сообщения помечаются уникальными идентификаторами. При отправке
сообщения запоминается идентифнкаюр последнего успешно отправленного
и, таким образом, удастся избежать дублирования отправки.
2. Получение/чтение «только один раз».
При чтении (получении сообщения) запоминаются метаданные, напри-
мер - идентификатор последнего успешно полученного сообщения. Это поз-
воляет избежать повторной обработки сообщений.
Дополнительно применяются такие методы, как аудит сообщений,
включая аудит времени отправки для выявления узких мест системы, и методы
обнаружения дубликатов. При реализации семантики «только один раз» их
введение нс требует дополнительных накладных расходов, однако позволяет
достичь лучшей управляемости и информированности о состоянии и работе
системы в целом.
Обеспечение безопасности и отказоустойчивости
При реализации очереди важным является обеспечение безопасности
при передаче данных. Основные «точки» звена транспорт ировки сообщений,
требующие внимания специалиста по защите информации, показаны на ри-
сунке 1.19.
49
В большом числе случаев встроенные средства обеспечения защиты ин-
струментов потоковой обработки данных нс включают необходимых средств
безопасности и соответствующие решения разрабатываются вручную.
Далее рассмотрим ситуацию с возможными отказами в очереди сообще-
ний с (в общем случае) несколькими брокерами. В чем-то решения по обеспе-
чению отказоустойчивости базируются на решениях для обеспечения семан-
тики передачи сообщений и решениях по отказоустойчивости сбора данных,
рассмотренных выше.
В - Данные в зашифрованном виде
Рисунок 1.19 Обеспечение безопасности
при транспортировке сообщений
Общая архитск1ура очереди, включая очереди на стороне производителя
и на стороне потребителя данных, с несколькими брокерами показана на ри-
сунке 1.20. Число активных брокеров, в общем случае, может быть различным
и зависит от нагрузки.
Рассмотрим основные случаи отказов
1 Отказ одного из брокеров.
Если брокер использует долговечное хранилище его сообщения могут
быть восстановлены и пропадут только сообщения, находившиеся в памяти в
момент сбоя. Снижение итого риска достигается за счет:
• Снижение объема данных хранимых брокером в памяти (минимиза-
ция потерь).
5С
• Проюкола подтверждения записи па диск (см. обеспечение отказо-
устойчивости звена сбора данных и протокол WAL).
• Репликации сообщений между брокерами. Тогда риск остается
только при одновременном сбое двух (или более в зависимости от
кратности репликации) брокеров.
Рисунок 1.20. Обобщенная архитектура очереди передачи
сообщений с несколькими боокерами
2 . Разрыв одного из сетевых соединений внутри звена очереди сообщений.
Решение данной проблемы реализуется корректной схемой репликации
сообщений между несколькими брокерами. В этом случае важными с точки
зрения семантики становятся вопросы.
• алгоритм выбора нового брокера;
• алгоритм восстановления связности сети;
• возможность настройки и величина временной задержки, показыва-
ющей падение сети, в отличии от простой задержки сообщений,
• алгоритм восстановления при отсоединении брокера в момент от-
правки сообщения
3 Отказ диска.
Несмотря на то, что отказ жесткого диска читается жестким сбоем, су-
ществует несколько подходов по восстановлению данных в такой ситуации.
Основными методами являются:
• Репликация данных между брокерами, использующими разные фи-
зические хранилища.
• Резервное копирование и восстановление данных (а также другие ас-
пекты механизма восстановления после жестких сбоев, применяе-
мые в СУБД).
51
Также в этом случае оценивается семантика поведения, когда данные не
были еще записаны надиск в момебнт сбоя и восстановление брокера. Все эти
вопросы могут по-разному решаться различными инструментами потоковой
обработки и перед использованием инструмента их необходимо оценить и
привести в соответствие с требованиями задачи
Проектирование звена очереди сообщений
При проектировании системы потоковой обработки и, в частности, звена
очереди обработки сообщений оцениваются следующие моменты.
1. Влияние длительного отсутствия связи между звеном сбора и ана-
лиза (оценивается допустимое время отсутствия связи и критичность
его нарушения).
2. Период времени, за который данные могут быть потеряны без по-
следствий.
3. Необходимость исторических данных.
4. Семантика доставки сообщений.
Пример проектных вопросов и оценка их влияния на проектируемое ре-
шение по потоковой обработке данных для обнаружения мошенничества в об-
ласти обнаружения вторжений приведен в таблице 1.7.
Пример вопросов проектировании
для системы обнаружения вторжений
Таблица 1.7
Вопрос Примечания
Влияние длительного отсутствия связи Обнаружение мошенничеств нс происходит - вся система пе- рестает выполнять свои функции Критичность — высокая, допустимое время - 0
Период времени, за который данные могут быть потеряны без последствий Лпатогично - потеря тайных в данном случае означает полную неработоспособность системы в ука заппое время. Период времени - 0
Необходимость исторических данных Для детальных отчетов и проведения расследований инцидентов хранение долговременных данных необходимо
Семантика доставки сообщений Семантика «нс более одного раза» нс подходит, так как потеря сообщений в общем случае недопустима. Семантика «нс менее одного раза» вызовет дублирование сообщений, что также может быть неприемлемо. Таким образом, семантика «только один раз» является пред- почтительной в данном случае
52
В общем случае вопросы и примечания могут быть детализированы в за-
висимости от области обнаружения вторжений. Например, обнаружение втор-
жении в промышленных системах, базирующееся на обнаружении аномалий
в данных, допускает и даже подразумевает небольшие потери данных в про-
мышленных сетях - в данном случае необходимо оценивать размеры потерь.
Другие специальные задачи также могут вносить свою специфику в проекти-
рование систем потоковой обработки
Анализ потоковых данных
Вее данные в современных аналитических системах можно разделить на
две категории. Во-первых, так называемые «данные в покое». Это информация,
зафиксированная в каком-либо хранилище к которой формируются запросы.
Анализ данных в пакетных системах (в частности Map-Reduce) является анали-
зом «данных в покос». Во-вторых, «данные в, движении» (in-flight data). Это дан-
ные, обработка и анализ которых пром (водится без записи в хранилище на пути
от источника к получателю. Потоковые данные - тто «данные в движении».
К данным в движении применяется модель непрерывного запроса. В ней
запрос заранее фиксируется в системе и «под» него подаются данные. Сколько
запросов, столько общем случае потоков данных в системе. Непрерывный за-
прос выполняется в двух случаях:
1. Но факту поступления новых данных.
2. Но факту истечения заданного интервала времени (на накопленных
значениях).
Сравнение традиционного (пакетного) подхода к обработке запросов и
анализу данных и потокового подхода приведено в таблице 1.5.
Несмотря на то, что инструменты потоковой обработки и анализа дан-
ных во многом различаются, можно выделить общие элементы архитектуры,
используемые различными решениями (рисунок 1.21).
Рисунок 1.21. Общая архитектура потоковой обработки данных
53
Таблица 18
Сравнение пакетной и потоковой систем анализа
Критерий сравнения Пакетная система Потоковая система
Модель запроса Разовый запрос по схеме «запрос - ответ - очистка» Постоянно выполняющийся запрос на поступающих данных
Данные Модель предметной области с непротиворечивым состоянием Постоянный входной поток без храпения истории
Изменение данных Только в период работоспособности Изменение данных в предмет- ной области даже в момсгп сбоя
Состояние опроса при сбое Пот орнос выполнение («забывание» старого запроса и механизм транзакций) Регистрация непрерывного запроса и продолжение выполнения с момента прерывания
Жизненным циклом процессов управляет диспетчер потоков, передаю-
щий поступающую задачу одному или нескольким потоковым процессорам.
Этот же компонент отвечает за управление ресурсами системы. Непосред-
ственное выполнение каждой задачи производится потоковым процессо-
ром(ами). Результат обработки может быть направлен в другую систему или
задачу, как источник данных, или собран драйвером потокового приложения.
Ключевые функции систем потоковой обработки
При проектировании систем потоковой обработки и анализа данных, как
и проектировании звеньев сбора данных и очередей, необходимо читывать не-
сколько ключевых функциональных с особенностей.
1. Семантика обработки сообщений.
Этот вопрос более подробно рассмотрен выше, при разборе звена оче-
реди сообщений, но принципы обработки «нс более одного раза», «по крайней
мере один раз» и «точно один раз» применимы и к инструментам анализа.
2. Управление состоянием.
Системы анализа потоковых данных, как и многие другие решения, де-
лятся на системы с сохранением состояния или без него. Диапазон различных
реализаций управления состоянием варьируется от простых, но мснсс стойких
к отказам, решений с храпением состояния в памяти до сложных отказоустой-
чивых инструментов с реплицируемым хранилищем в долговременной памяти.
3. Отказоустойчивость.
Управление состоянием приводит к вопросу отказоустойчивости, или,
более точно, семантики возобновления работы после сбоя. В системе анализа
отказ может наступить в большом числе точек:
54
• Отказ входного потока данных, генерируемою очередью.
• Отказ сети при передаче данных на обработку из очереди.
• Отказ-сбой самою потокового процессора.
• Отказ сети при передаче результата.
• Отказ хранилища выходных данных / приемника данных.
• Отказ потокового диспетчера или драйвера приложения.
В целом все отказы группируются едва набора по действию на систему
обработки это отказы, связанные с потерей данных, и отказы, связанные с
утратой контроля над ресурсами. Общая семантика действий в случае отка-
зов с потерей данных сопоставима с обеспечением отказоустойчивости оче-
реди.
В случае утраты ресурсов все распространенные методы обработки оши-
бок сводятся к различным алгоритмам координации участников обработки и
репликации компонентов обработки данных. Механизмы потокового анализа
проектируются из расчета к возможных отказов и обычно позиционируются
как k-отказоустойчивыс системы. Подходами к репликации и координации яв-
ляются методы конечного автомата и восстановления путем отката
При использовании конечного автомата задача реплицируется потоко-
вым диспетчером на к узлах. При этом, если задача выполняется несколькими
процессорами, к раз реплицируется каждый из них. Это ресурсозатратный ме-
тод, но позволяющий быстро восстановить управление с минимальным про-
стоем.
Восстановление путем отката основано на механизме контрольных то-
чек, рассмотренном выше. Состояние, зафиксированное в контрольной точке
и журнальные записи процессов обработки, также реплицируются. Восстанов-
ление по этому методу сопровождается некоторым задержками и присут-
ствуют некоторые накладные расходы на сам процесс обработки, однако ре-
сурсные затраты значительно ниже (почти в к раз).
4. Ограничения.
Системы потоковой обработки имеют ряд ограничений, важных при ре-
шении различных аналитических задач. Это:
1. Однопоходностъ. Данные, в общем случае, нс архивируются и про-
ходят через систему только один раз. Это также подразумевает ис-
пользование алгоритмов, рассчитанных на один проход по данным.
2. Изменение модели. По мерс поступления новых данных могут ме-
няться их статистические свойства, что требует изменения прогноз-
ных моделей.
55
3. Ограниченность ресурсов Неравномерность поступления данных и
ники на! ручки могут привезти к потере части записей. Алгоритмы
анализа должны учитывать возможный сброс нагрузки
4. Ограничения предметной области. Ограничения предметной обла-
сти определяют объем и специфику обработки данных задачи
(например, число одновременно расположенных кортежей в па-
мяти), что может выражаться и как требование к ресурсам, и как тре-
бование к возможностям инструмента в целом.
Временные характеристики
Системы потоковой обработки оперируют несколькими понятиями вре-
мени Время события - это время, когда событие произошло (или были сфор-
мированы данные о нем). Время потока - это время, когда событие попало в
потоковую систему. Между временем события существует временной сдвиг,
величина которого может бьпь значительна.
Вычисления с учетом сдвига проводятся при помощи окон данных. По-
литика срабатывания потоковой системы определяет событие, связанное с
необходимост ью обработки окна. Политика вытеснения определяет правила,
согласно которым элемент нужно исключить из окна.
В основе политик срабатывания и политик вытеснения лежит время или
объем данных в окне. Рассмотрим основные оконные методы.
1. Скользящее окно.
Политики вытеснения и срабатывания основаны на времени.
Политику вытеснения определяет протяженность окна - это время, в
течении которого данные сохраняются и доступны для обработки По мере по-
ступления новых данных, данные, хранящиеся дольше чем протяженность
окна, отбрасываются.
Политику сраба!ывания определяет интерваз скольжения. Про проше-
ствии соот ветствующего периода времени вызывается код для обработки дан-
ных окна (или только интервала скольжения).
2. Прыгающее окно.
В этом случае политика вытеснения всегда основана на заполнении
окна, а политика срабатывания - на числе элементов в окне или на времени. В
первом случае нс важно, сколько времени потребуется для заполнения окна:
политика срабатывания определяет вызов кода при поступлении заданного
числа элементов данных. Аналогично в случае срабатывания по времени не
важно сколько элементов в окне, важно время с последнего срабатывания.
Поддержка различных типов окон в инструментах потоковой обработки пока-
зана в таблице 1.6.
56
Методы обобщения
В потоковых системах, так же как и в пакетных, применяются различные
методы обобщения данных. В ряде случаев они позволяют сгладить потери
информации, обеспечивая нс полную, но достаточную точность анализа.
Таблица 1.9
Поддержка различных типов окоп
Инструмент Поддержка икон Характеристика Поль зоват ельскне политики/наетройки
Spark streaming Скользящие Время потока Нс поддерживаются
Storm Сколь тящие Можно рсалитовать при помощи таймеров
Прыт атощис по счетчику по времени Требуют ручной настройки/рсализации
Flink Скользящие Потока, события 11оддсрживаются
Прыт атощис по счетчику по времени Встроенная поддержка
Samza Прыгающие По времени
1. Случайная выборка.
Заключается в выборке и анализе случайных значений из потока. При-
меняется в задачах, требующих оценки общего порядка или статистических
закономерностей данных, когда сами данные в полном объеме нс помещаются
в оперативную память.
Метод реализации случайной выборки на потоке называется резервуар-
ной выборкой. В потоковой системе организуется резервуар - временное хра-
нилище заданного объема. При поступлении нового элемента принимается
случайное решение о помещении его в резервуар. Вероятность включения в
резервуар каждого элемента потока одинакова и равна k/n, где к - размер ре-
зервуара. а п- номер обрабатываемого элемента. При помещении в резервуар
к 1-1 элемента один из элементов резервуара вытесняется случайным образом.
Вытесненный элемент становиться случайным примером и поступает в звено
анализа (рисунок 1.22).
2. Подсчет уникальных элементов.
Другой задачей является подсчет уникальных элементов на потоке за
длительный период времени. Хранить все данные за этот период в памяти по-
токовой системы также невозможно из-за сс объема. Для решения этой задачи
используется две группы алгоритмов.
57
Рисунок 1.22. Общая схема резервуарной выборки
Алгоритмы на основе битовых комбинаций
Основаны на рассмотрении комбинаций битов, встречающиеся в начале
двоичного значения элемента потока. Количество нулей в начале двоичного
представления хэша элемента потока определяет количество элементов. При-
меры таких алгоритмов- LogLog. HypcrLogLog, IIypcrLogLog++. Порядок об-
работки элемента в таком алгоритме приведен на рисунке 1.23. Рассмотрим
общий порядок вычислений.
В первую очередь в таких алгоритмах из поступившего идентификатора
(или других потоковых данных, на которых определяется уникальность) вы-
числяется хэш-значение.
Далее определяется в какой регистр (накопитель) попадает вычислен-
ный хэш код и как нужно обновить находящееся там значение. Для вычисле-
ния номера регистра используется младшие несколько битов хэш-значения
(точность).
Затем подсчитывается число пулей оставшейся хэш-строки и прибавля-
ется 1.
После этого для определения приближенного числа уникальных элемен-
тов вычисляется среднее гармоническое всех значений в регистрах. Использо-
вание среднего гармонического уменьшает влияние выбросов на всю стати-
стику данных.
Приведенный подход потребляет относительно немного памяти и допус-
кает распределенную реализацию, что делает его предпочтительным реше-
нием для распределенных потоковых систем.
58
Входной поток данных -------------:,
...........•>] Цденгификаюр i
Хэширование
Н(Идентификатор)
Обновление значения
Поиск
регистра
| 41344~78946~1
Перевод в двоичную
строку
Младшие биты -
индекс регистра
I 11110110011011110010010001’ 1000] о
Регистры (накопи шли)
Рисунок 1.23. Иллюстрация алгоритма HyperLogLog
ЕЕЕЕшЕШЕЕЕИЕ
Алгоритмы на основе порядковых статистик
Алгоритмы этой группы основаны на порядковых статистиках, напри-
мер, на наименьших значениях, встретившихся в потоке. Примеры таких ал-
горитмов - алгоритм MinCount. алгоритм Бар-Иосссфа.
3. Подсчет уникальных элементов.
Подсчет частот элементов одна из самых частых задач потоковой обра-
ботки и анализа данных. Алгоритмы определения частот предполагают не-
сколько разных видов результатов непрерывного запроса
• точечные запросы, направленные на получение сведений об одном
элементе потока;
• запросы по диапазону, определяющие частоты в заданном диапа-
зоне;
• запросы по внутреннему произведению, заключающиеся в соедине-
нии двух наборов данных (например, какие действия были совер-
шены после показа предупреждения).
Одним из популярных решений этой задачи является алгоритм Count-
Min Sketch. В нем используется набор числовых массивов, называемых счет-
чиками. Число таких массивов определяется следующими параметрами:
• w-шириной массива;
* m - длиной массива.
59
С каждым счетчиком ассоциируется своя функция хэширования, причем
эти функции должны быть попарно независимы (рисунок 1.24). Использова-
ние различных функций повышает точность обобщения и одновременно сни-
жает вероятность получения плохой оценки, поскольку уменьшается вероят-
ность коллизий.
При получении из потока данных идентификатора (элемента данных) к
нему применяется функция, хэширования, и в результате вычисляется индекс
ячейки в соответствующей строке. Счетчик в этой ячейке увеличивается на 1.
Частота оценивается следующим образом: идентификатор элемента, ча-
стота которого определяется, хэшируется для получения всех номеров ячеек,
представляющих собой приближенную оценку частоты. Важно понимать, что
в ряде случаев данный алгоритм может давать завышенную оценку, но нико-
гда - заниженную.
Рисунок 1.24. Обновление данноьх в алгоритме Count-Min Sketch
Оценка точность алгоритма, согласно авторским исследованиям, состав-
ляет порядка 1,5 % относительной ошибки и вероятность 99,6 % для ошибки
менее 1,5 % для двумерного массива шириной 8 и длинной 128.
4. Вопрос о вхождении.
Вопрос о вхождении заключается в определении, встречался ли уже эле-
мент в потоке ранее. С одной стороны, эта задача похожа на подсчет уникаль-
ных значений, однако решить ее приведенным методов нс получится. Однако,
сложность решения о вхождении заключается также в невозможности сохра-
нения потока,для такой оценки.
Для ответа на вопрос о вхождении применяются методы определения
вхождения во множество, в частности - на основе фильтра Блума
6С
Рассмотрим простой пример на основе фильтра Блума.
Дтя фильтра задается битовый массив длины гл, с которым ассоцииро-
ван набор независимых функций хэширвоапия.
Фильтр Блума также дает вероятностный ответ и допускает различное
конфигурирование. Специфическая особенность фильтра - в возможности
ложноположитсльного ответа, но невозможности ложноотрицатсльного. По-
ступающий идентификатор хэшируется независимыми функциями и в соот-
ветствующие элементы массива заносятся 1 (рисунок 1.25).
Ложноположитсльпые результаты обусловлены наличием коллизий при
хэшировании. В этом случае уже установленный в 1 бит остается таковым.
Если при проверке элемента хотя бы один бит из его набора хэшей остается О,
значит элемент ранее нс встречался.
Па практике фильтр Блума используется для сокращения числа дорого-
стоящих операций проверки вхождения над данными в долговременном хра-
нилище: они проводятся только в случае, если фильтр дал положительный ре-
зультат.
Входной попиж данных-------------------
...................Идентификатор 1
Рисунок 1.25. Применение филотра Блума
Получение доступа к данным
С точки зрения получения результатов анализа клиентским приложе-
нием также, как и при сборе данных, возможно использование различных пат
тернов взаимодействия
7. Синхронизированные Ванные.
В этом случае клиент потоковой системы фиксирует изменения проме-
жуточного хранилища, в которое производится запись результата обработки
(см. следующий раздел). Звено анализа может сигнализировать об изменении
данных клиенту одновременно с записью или данные могут синхронизиро-
ваться по истечении интервала времени. Данные могут направляться клиенту
или запрашиваться им при наступлении события.
61
Достоинства:
• простота;
• полнота информированности клиента.
Недостатки.
• большой объем данных, которые передаются клиенту (все данные
или все изменения);
• возможные конфликты версий данных.
Тем нс менее, это достаточно распространенный подход, который при
меняется от мобильных приложений до onlinc-игр.
2. Удаленный вызов (метода или процедуры).
При поступлении данных или возникновении события сервер вызывает
удаленный метод (RM1) или процедуру (RPC) на клиенте. Вызов может ис-
пользоваться для уведомления или изменения данных могут быть переданы
как аргумент.
Достоинства
• простота;
• асинхронность со стороны клиента (активизируется только при вы-
зове).
Недостатки;
• сложность обнаружения ошибок (недоступность клиента, недоступ-
ность сервера и г. д.);
• необходимость обнаружения ошибок на стороне клиента;
• большая частота обновлений может вызвать перегрузку клиента.
3. Обмен сообщениями.
Потоковый API используется для постоянно! о подключения клиен га, от-
правки клиентских запросов и перебдачи данных.
Достоинства.
• простота использования (но нс реализации) вызова и простота про-
токола:
• клиент получает только последние данные;
• нет сохранения состояния
Недостатки:
• избыточный диалог (запросы данных которые нс обновлялись);
• нет уведомлений о новых данных;
• большой объем новых данных при простос/отключснии клиента.
62
4. Издатель - подписчик.
Клиент подписывается на некоторый канал, а ЛР1 рассылает всем под-
писчикам канала сообщения в момент изменения данных. Канал предполагает
группировку данных в категории или темы. Канал, как объект, хранит список
подписчиков и состояние, при изменении которого уведомляются подпис-
чики.
Достоинства:
• асинхронность со стороны клиента (активизируется только при по-
ступлении новых данных);
• нет сохранения состояния на клиенте;
• автоматизация рассылки нескольким клиентам.
Недостатки:
• сложность протокола и реализации;
• хранение состояния и метаданных внутри API с обеспечением отка-
зоустойчивости.
В задачу данного пособия нс входит подробное рассмотрение протоко-
лов взаимодействия между клиентом и сервером. Однако, приведем общее
сравнение основных протоколов, которые могут использоваться для доставки
данных клиенту. Основными факторами, важными для органи зации этого
этапа со стороны протокола, становятся: частота сообщений, направление вза-
имодействия, задержка сообщений, эффективность и отказоустойчивость
(надежность). Приведем сводные данные в таблице 1.10
7 акже на этапе передачи данных от звена анализа к потребителю данных
во многих потоковых системах необходимо проведение фильтрации Фильтра-
ция - это ограничение потока сообщений (событий, данных и т. д.) теми, ко-
торые необходимы каждому конкретному клиенту. Фильтрация можег произ-
водиться в звене анализа, на уровне потокового API или на стороне клиента.
Выбор звена зависит от применяемых методов агрегации и группировки дан-
ных, фактических операций фильтра.
По типу выделяют статическую и динамическую фильтрацию. (тими-
ческая фильтрация предполагает заранее определенные правила того, что
должен содержать поток, направляемый соответствующему клиенту. В этом
случае клиент нс может влиять на содержимое потока. Динамическая филь-
трация определяется на этапе выполнения, потоковый клиент может изме-
нять се параметры. Динамическую фильтрацию можно реализовать при ис-
пользовании любого протокола API - разница только в степени гибкости.
63
Таблице 110
Протоколы отправки данных в потоковых системах
Протокол Час гота сообщений Направление взаимодействия Задержка сообщений Эффективность для потокового API Отказоустойчи- вость
Веб уведомления (webhook) Низкая От сервера к клиенту Средняя Хорошая Без сохранения состояния, возможность асинхронных Post-запросов Her
Длинный http-onpoc Средняя Двустороннее Сре зияя Низкая Возможно большое число открытых соединений Нет
События сервера (SSE-sei ver-sent events) Высокая От сервера к клиенту Низкая Максимальная для транспортировки на основе НИ Р Возможна частичная реализация
Веб-сокеты (WebSocket) Высокая Двустороннее Низкая Высокая (одно постоянное соединение между клиентом и сервером) Возможна полная реализация
1.2.3. Принципы организации параллельного
выполнения задач
В общем случае все задачи планирования потоков, включая обработку
данных, в вычислительной системе можно разделить на два класса:
1) планирование независимых задач (job scheduling);
2) планирование взаимодействующих задач (scheduling and mapping).
Их особенностью является необходимость (или ее отсутствие) учиты-
вать связи между задачами в системе. При планировании независимых задач
нс требуется статического или динамического анализа связей между задачами,
что позволяет построить быстрые и простые динамические планировщики. То-
гда как при планировании взаимодействующих задач необходимо учитывать
состояние задач и строить план выполнения исходя из их в заимосвязей. Таким
образом, выделяются два подхода к планированию задач:
• динамический, когда пул заданий формируется в процессе суще-
ствования системы;
• статический, когда очередь заданий известна и сформирована за-
ранее.
Современные интеллектуальные алгоритмы планирования используют
оба подхода для организации совместно}! работы заранее известного набора
задач. Задачу планирования потоков можно представить в виде следующих
этапов:
Г) разделение вычислений на независимые части,
2) выявление информационных зависимостей;
3) масштабирование набора подзадач;
4) распределение подзадач между процессорами.
При разбиении задачи па независимые части, которые мозут быть
оформлены в виде выделенных потоков, следует добиваться примерно рав-
ного вычислительного веса каждого потока (приблизительно равного объема
вычислений) и максимальной независимости потоков друг от друга. В этом
контексте выделяется параллелизм по данным, когда одни и те же вычисления
выполняются для разных наборов данных, и функционального параллелизма,
когда вычисления прои зводятея в виде набора нескольких функций над одним
и тем же набором данных.
Также необходимо учитывать уровень декомпозиции вычислений. Раз-
биение на максимальное количество параллельных потоков позволяет до-
биться наибольшей степени параллелизма, но существенно затрудняет парал-
лельные вычисления и накладные расходы на их планирование. В то же время
65
формирование ряда более крупных задач нагружает конкретный узел кластера
и требует больше времени на выполнение, но существенно упрощает и уде-
шевляет планирование. Общие подходы к организации такого процесса были
сформулированы Фостером.
При выделении зависимостей между выделенными подзадачами, опре-
деляется необходимость локальной (или глобальной) пересылки данных
между вычислительными потоками, характер взаимодействия (структурный
или произвольный), статические или динамические схемы передачи данных и
синхронность способа взаимодействия.
Масштабирование вычислений проводится в том случае, если количе-
ство потоков (подзадач) превышает количество процессоров в системе. В этом
случае проводится агрегация (укрупнение) подзадач по тем же правилам, что
и при первоначальном разбиении: соблюдение в целом равной вычислитель-
ной мощности и независимости подзадач. Таким образом, в первую очередь
укрупняются задачи с высокой степенью информационной зависимости. Ана-
логично может производиться декомпозиция задач, если количество процес-
соров существенно превышает количество выполняемых потоков. Таким об-
разом, результатом этапа масштабирования вычислений является набор алго-
ритмов композиции и декомпозиции задач в зависимости от соотношения
числа подзадач с общим числом процессоров в системе.
Последний этап - отображение вычислительных потоков на узлы кла-
стера, или распределение вычислительных задач между исполняющими про-
цессорами. Здесь основным показателем является >ффективность использова
ния процессоров, определяемая как относительная доля времени, в течение ко-
торого процессоры использовались дтя вычислений, связанных с решением
исходной задачи. Основой распределения служит граф задачи - сообщения,
описывающий профиль выполняемого приложения на основании которого
диспетчер и планировщик принимают решение о построении плана выполне-
ния и запуске конкретной задачи.
Для построения плана выполнения и согласования взаимосвязанных за-
дач параллельная программа может быть представлена в виде одной из не-
скольких моделей (PRAM. SMP. PGAS, MIMD и другие). Однако, все они
представляют скорее низкоуровневые средства манипулирования в параллель-
ной вычислительной среде. Структуру задач и программ в моделях паралле-
лизма задач описывают следующими видами графов
1. Граф зависимостей (task dependency graph). Вершинами графа явля-
ются вычислительные задачи (операции), ребрами - зависимости за-
дач.
66
2. Итерационный граф зависимостей. Конечное множество итераций
представлено в виде вершин графа, соединенных ребрами - зависи-
мостями по данным.
3. Граф потока (flow graph). Граф представляет итерации циклического
алгоритма. Узлами графа являются операции, ребрами - зависимости
поданным внутри итерации и между итерациями.
4. Граф задачи (DAG). Вершинами графа являются задачи, ребрами -
коммуникации между задачами. Как правило, вершины и ребра
графа задачи имеют веса со смыслом вычислительной сложности и
стоимости коммуникацизг соответственно.
5. Граф взаимодействий задачи (task interaction graph). Граф описывает
совокупность процессов и коммуникаций между ними.
6. 1 рафы потока управления (CFG, CDG). Графы используют при опи-
сании потока управления параллельной прог раммы с более слож-
ным, чем линейное, управлением потоком выполнения.
7. Иерархические графы зависимостей.
S. Параметризованные графы задачи (P1G). Модель параметризован
кого графа представляет из себя символическое представление графа
задачи, масштабируемое относительно размеров задач и графов.
Основной применяемой на сегодня моделью является граф задачи DAG.
Ориентированный ациклический граф (directed acyclic graph, DAG) - это ор-
граф. не содержащий направленных циклов. Поскольку DAG-графы являются
частным видом орграфов, вес задачи обработки DAG-графов сводятся к зада-
чам обработки орграфов. Па практике в задачах составления расписаний
обычно учитываются веса вершин пли ребер, которые моделируют время или
стоимость выполнения каждого этапа.
Таким образом, графом задания называется размеченный взвешенньш
ориентированный ациклический граф G (V, Е, init. Гш, 8, у) где V - множе-
ство вершин, соответствующих задачам, и Е - множест во дуг, соотвстствую-
ших потокам данных. Вее 8 (с) определяет объем данных, который необхо
димо передать по дуге е от задачи, ассоциированной с вершиной init(c), к за-
даче, ассоциированной с вершиной fm(c). Метка у (v) = (mv ,tv) определяет ко-
личество процессорных ядер пъ , на которых задача v имеет линейную мас-
штабируемость, и время tv выполнения задачи v на одном ядре.
Линейная масштабируемость предполагает, что вычислительная стои-
мость x(v,j) задачи v на j процессорных ядрах определяется следующей фор-
мулой:
67
x(v,f) =
(tv/
'j если 1 < j < mv
. Cl7mv если mv < J
(1 1)
Распределением задачи по кластерам называется однозначное отображе-
ние множества вершин V на мужество узлов кластера N (w: V -» N).
1.2.4. Совместное использование потоковой
и пакетной обработки
Для ряда задач необходимо совместное использование потоковой и па-
кетной обработки данных. Например, для сохранения результатов обработки
поступающей информации. В этом случае потоковые и пакетные технологии
используются совместно, а обшая архитектура систем носит название Л - ар-
хитектуры
Сохранение данных потоковой обработки
Для начала рассмотрим задачу сохранения результатов потоковой обра-
ботки в долговременном хранилище. В общем случае после завершения ана-
лиза возможны следующие действия с данными:
• отброси1ь данные;
• переправить в дру1ую потоковую систему;
• сохранить для использования в режиме реального времени;
• сохранить для пакетного доступа.
Как правило, отбрасыванию подлежат данные, нс удовлетворяющие не-
которому критерию и/ил и не представляющие ценности для дальнейшей об-
работки.
Переправка данных другой потоковой системе технологически соответ-
ствует рассмотренным выше механизмам организации очередей и сбору дан-
ных.
Рассмотрим два других решения более подробно.
7. Сохранение ванных для использования в режиме реального вре-
мени.
Для систем реального времени может быть актуально сохранение ре-
зультатов анализа потока (предобработки данных) в памяти. Сегодня .для этого
используются специальные инструменты, в том числе - СУБД для хранения
в памяти (in-memory).
68
Технолотя вычислений в оперативной памяти существует уже не-
сколько десятилетий. С 2010-х годов развитие технологий позволило широкое
применение этого подхода для решения различных задач. Это:
• снижение стоимости оперативной памяти (на мегабайт);
• расширение возможностей адресации оперативной памяти.
32-битныс процессоры прошлого имели существенное ограничение -
они могли адресовать только 4 гигабайта оперативной памяти. 64-разрядные-
процсссоры адресуют гораздо большие объемы.
Способность поместить в оперативную память достаточно данных для
хранилища существенного объема подтолкнула развитие технологий вычис-
лений в оперативной памяти (IMC).
Основные типы таких решений:
I Встраиваемые хранилища в памяти с оптимизацией Оля флэш-па-
мят и
Эго встраиваемые продукты, рассчитанные на один узел и размещающи-
еся там же, где находится соответствующий потоковый процессор, по одному
хранилищу на один процессор (узел). Не смотря на класс in-memory они нс
ориентированы па решение задач высокой нагрузки. Примеры таких инстру-
ментов: SQL Lite, RocksDB, LcvclDB и другие.
2. Системы кэширования
Зачастую такие системы называются протнводителями и пользовате-
лями по-разному: системы кэширования объектов, хранилища в памяти, хра-
нилища ключ - шаченис в памяти и т. д. Основными особенностями таких ре-
шений являются:
• Сквозное чтение — при отсутствии данных в кэше значение читается
из долговременной отказоустойчивой памяти и, таким образом, пер-
вое чтение всегда имеет накладные расходы.
• Опережающее обновление - кэш обновляет данные, к которым не-
давно осуществлялся доступ, до того, как они будут вытеснены из
кэша из-за истечения срока хранения. Настраивается с учетом ча-
стоты обновления данных. Обновление данных в кэше и долговрс
менном хранилище происходит одновременно (см. сквозную за-
пись).
• Сквозная запись - при обновлении данных они сразу записываются
в постоянное хранилище, без фонового процесса сброса обновлений
(опережающее обновление).
• Обходная запись - данные записываются в долговременное храни-
лище, а потом уже помешаются в кэш.
69
• Отложенная запись - данные записываются в долговременное хра-
нилище в фоновом режиме. В тот период, когда данные хранятся
только в оперативной памяти возможна их потеря
Гаки образом, либо данные хранятся только в памяти и есть риск их
утраты, или происходит задержка при помещении данных на долговременное
хранение. Примерами систем этого класса являются Memcached, EUCachc,
Rcdis.
3. Ьазы данных и решетки (Grid) данных в памяти
'Это решения в области технологий вычислений в оперативной памяти
(In-Memory Comparing) предназначенные для кластерной обработки данных с
приоритетом памяти перед диском.
Подобная архитектура способна обеспечить скорость вычислений и
транзакций на порядок больше, чем в дисковых системах, со временем от юшка
на уровне миллисекунд (таблица 1.11).
Важные требования для 1МС - решения.
1. Масштабируемость по объему и скорости данных.
2. Согласованность транзакций (ЛСГО).
3. Поддержка гибкого (SQL) языка запросов.
Архитектура, основанная на использовании дисков (Disk-centnc) архи-
тектура использует диск в качестве основного хранилища, а память только для
кэширования. В свою очередь memory-centric архитектура использует память
как основное хранилище, а диск для резервного копирования. Повышение про-
изводительности достигается за счет увеличения скорости доступа к данным,
так как скорость обращения к дискам значительно ниже, чем к оперативной
памяти
Для disk-centric архитектур RDBMS и NoSQL файловых систем, таких,
как I1DFS (Iladoop File System), доступ к байту данных выполняется по-
этапно.
Запрос начинается с вызова API, затем проходит через операционную
систему и контроллер ввода-вывода чтобы, наконец, обратиться к диску для
загрузки данных. Путь обработки внутри СУБД исключает несколько сред, но
также использует контроллер ввода - вывода и блочную адресацию диска.
Даже если требуется только один байт данных, необходимо загрузить
намного больше, поскольку диск - это хранилище с блочной, а нс байтовой
адресацией. За1ружастся весь блок независимо от того, какой размер блока за-
дан в ОС или СУБД (обычно размеры хранилища данных четыре или восемь
килобайт).
70
Кластерные IMC решения
Таблица 1.11
Тип Достоинства Недостатки Примеры
Функции In-Memory для классических бал данных Работа с существующей развитой БД бет переноса данных Ограниченная масштабируемость Oracle Database 12с, \4icrosoft SQL Server и др.
Базы данных в памяти SQL, общи приемы работы с остальными БД. Высокая пропускная способность и масштабируемость Один язык/способ обращения к тайным Требуется интегрвция с 1радицпонными СУБД VfcmSQL, VoltDB
Гриды данных в памяти Возможно распределение данных на нескольких серверах с различными механизмами доступа. Возможность сближения (колокации) вычислении с данными из-за вычисли- тельной гибкости Необходимость разработки или адапта- ции кода для интеграции би знес-логики с гридом данных. Ограничения модели хранения (Ключ значение) Hazelcast. GigaSpaces. Oracle Coherence. Apache Geode / Pivotal GemFire. Infinispan
ТМС-платформы (Грид -) Многоф} нкциона тьность, дополни тель- ные возможности (утилиты, потоковая аналитика) Необходимость разработки или атапта- ции кода для интеграции бизнес-логики с гридом данных Apache Ignite. GridGain, Terracotta
В memory-centric архитектуре для доступа к байту данных требуется
только ссылки на указатель, который отмечает местоположение этого байта
в памяти. Загрузка нс требуется. Сравнение подсистем хранения приведено
в таблице 1.12.
Таблица 1.12
Сравнение нодсиетем хранении
Тип Задержки Адресация
Дисковая подсистема Согни мс Блочная
Флэш-память Десятки мс Блочная
Оперативная память Менее одной мс Байтовая
Особенностью 1МС на кластере является сложность в реализации отка-
зоустойчивости и обеспечении надежности при обработке данных. Так как со-
держимое оперативной памяти уничтожается при мягком сбое сервера, совре-
менные ГМС - системы вынуждены включать различные механизмы обеспе-
чения надежности, такие как:
• автоматическое резервирование данных внутри кластера;
• резервирование при помощи дисковых хранилищ данных (собствен-
ных или внешних).
2. Сохранение данных для пакетного доступа.
При сохранении сообщений (фрагментов данных) в систему долговре-
менного хранения применяются два подхода:
1, Сохранение со скоростью потока. Каждое сообщение записывается в
хранилище отдельно в момент поступления.
2. Сохранение пакетом. Сообщения собираются в пакет и запись в си-
стему хранения происходит пакета в целом. Возможно две реализации пакет
ного сохранения.
а) с промежуточным хранением (сбором пакета) в гвене анализа;
Ь) с промежуточным хранением (сбором пакета) в дополнительной оче-
реди сообщений: использование пакетного загрузчика.
Методы сохранения со скоростью потока и сохранение пакетом со сбо-
ром пакета в звене анализа называются методами прямой записи, а использо-
вание дополнительного компонента (звена очереди сообщений или пакетного
загрузчика) - методом непрямой записи В качестве примеров инструментов
пакетной загрузки можно назвать Goblin, Secor и другие.
72
Архитектуры систем
смешанной обработки данных
Так как совмещение потоковой и пакетной обработки данных стало
необходимостью для решения целого ряда задач (в том числе, в области ин-
формационной безопасности и обнаружения вторжений) было предложено не-
сколько архитектур построения таких решений.
Лямбда (/.)-архитектури
^.-архитектура - что принципиальная архитектура систем для обработки
больших и быстрых данных, совмещающая исторический анализ и обработку
интенсивного потока сообщений. Она впервые предложена Патаном Марцом
(Nathan Marz) для построения систем, использующих, с одной стороны, ана-
литические запросы над хранилищем исторических данных, а с другой, требу-
ющих высокой степени их актуализации на основе постоянно поступающей
информации. В общем случае в Х-архитсктура использует два пути для данных
и три уровня (рисунок 1.26).
1. Пакетный уровень (холодный путь).
Этот уровень включает архив сырых исторических данных, подлежащих
пакетной обработке над поступающими запросами (часто в рамках технологии
Map-Reduce). Помимо технологии Iladoop и представления данных в модели
ключ - значение на >том уровне могут создаваться так называемые «озера дан-
ных» формате OLAP-хранилищ и реляционной (объектно-реляционной) или
близкой к ней столбцовой модели (например, Vertica или larantool).
73
Пакетный уровень представляет собой классическое аналитическое хра-
нилище данные в котором остаются неизменными. Происходит добавление
новой информации или удаление сведений с истекшим сроком хранения, но
не изменение хранимых элементов
2. Уровень ускорения (критический путь).
Этот уровень отвечает за обработку данных, поступающих в систему в
реальном времени. Он строится на потоковых технологиях обработки с ис-
пользованием инструментов потокового анализа и очередей данных. На этом
уровне компенсируется разница между данными из хранилища, обладающими
определенным уровнем запаздывания, и текущей ситуацией, когда к данным
хранилища добавляется информация с коротким жизненным циклом.
3. Сервисный уровень.
Сервисный уровень индексирует пакеты и обрабатывает результаты вы-
числений, происходящих на пакетном уровне. Это обслуживающий модуль
пакетного решения, оперирующий представлениями и витринами данных.
Данные, идущие по критическому пути (уровень ускорения) могут обла-
дать более низкой точностью (см. потоковую обработку и анализ данных) для
достижения нужных характеристик производительности. Данные холодного
пути более медленные, однако обладают большей точностью. При проектиро-
вании систем на основе этой архитектуры возникает ряд сложностей, связан-
ных с особенностями се реализации и существующими инструментами.
1 Сложность модификации запросов.
При согласовании данных в момент предоставления х пользователю
(обеспечении конечной непротворечивоеги данных) не позволяет отравлять
данные обратно на пакетный уровень. Это означает, что при изменении за-
проса все вычисления над пакетным хранилищем придется выполнять заново.
2. Согласование моделей данных
Па пакетном уровне и в хранилищах в памяти при потоковой обработке
данных широко используются простые модели данных (например, ключ - зна-
чение), нс поддерживающие многофакторных аналитических запросов, в то
время, как требования потребителей могут быть достаточно сложными. В этом
случае разработчику требуется или использовазь OLAP-технологии или про-
водить интеграцию различных инструментов строя иерархические хранилища
в поисках баланса между производительностью, простотой и гибкостью за-
проса.
3. Согласование инструментов.
Па сегодняшний день системы с Х-архнтсктурой составляются из крайне
разнородных наборов инструментов, в которых данные предаются из одного
74
в другой, в том числе, в пределах одного уровня. Такая система требует, с од-
ной стороны, сложного администрирования, и, с другой, подразумевает вре-
менные задержки при обработке данных.
Каппа ( к/-архитектура
Наличие в системах с Х-архигеюурой двух путей движения данных при-
водит к дублированию логики обработки данных (по крайней мере, в двух ме-
стах, на двух путях движения информации), сложности самой системы и
управления архитектурой. Для устранения этих недостатков Джеем Крспсом
(Jay Kreps) была предложена к-архитектура. Она имеет такие же основные
цели, что и лямбда-архитектура, но с одним важным отличием: все данные
проходят по одному пути 'Это достигается за счет использования модифика-
ций потоковой обработки данных (рисунок 1.27).
Рисунок 1.27. к-архигектура
Данные в подходе к-архитсктуры также, как и на пакетном уровне Х-ар-
хитеюуры, являются неизменяемыми. Данные собираются полностью, а нс
выборочного подмножества, и принимаются как поток событий в распреде-
ленном и отказоустойчивом журнале. События считаются упорядоченными и
текущее состояние каждого события изменяется только при поступлении но-
вого, изменяющего его состояние. Сходство с уровнем ускорения заключается
в обработке событий, которая полностью производится во входном потоке и
сохраняется как представление в режиме реального времени.
Для новых вычислений над всем набором данных в этом случае следует
полностью воспроизвести входной поток.
75
Контрольные вопросы и задания к разделу 1.2
1. Сколько кортежей обрабатывает функция отображения в парадигме Map-
Reduce? Функция сжатия?
2. Какой процесс называется «перетасовкой» в пакетной обработке Больших дан-
ных? Что он из себя представляет?
3. Как происходит объединение и 1рупнировка данных в Map-Reduce? На каких
этапах оно может быть организовано и в чем особенности каждою решения?
4 В чем заключается проблема асимметрии данных и каким образом она решается
в системах пакетной обработки?
5 В каких тадачах предпочтительнее Map-Reduce решения, а в каких - массивно-
параллельные СУБД или текстовые конвейеры?
6 Перечислит е основные этапы потоковой обработки данных. Какие паттерны мо-
гут использоваться на каждом этапе?
7. Какие методы обеспечения отказоустойчивости используются при потоковой
обработке данных и в чем специфика их применения?
8 В чем особенности очереди при потоковой обработке данных и как очереди свя-
заны с семантикой передачи и обработки сообщений?
9. Какие методы анализа применяются в потоковой обработке данных и в чем их
отличия от пакетных решений? Как происходит слияние и труппировка дан-
ных?
10. В чем сходства и отличия лямбда (X) и каппа (к) архитектур систем обработки
данных?
11. Разработайте и реализуйте на выбранных инструментах систему пакетной обра-
ботки данных. В качестве входной информации может использоваться текстовая
коллекция или открытый набор данных большою объема.
12. Разработайте и реализуйте алгоритм обработки параллельной данных. В каче-
стве входной информации может использоват ься дамп сетевого трафика или от-
крытый набор данных большого обьема. Составьте траф выполнения (зависимо-
сти) задач.
13. Разработайте и реализуйте на выбранных инструментах систему потоковой об-
работки данных. В качестве входной информации может использоваться поток
данных из интернета или входной сетевой график устройства обработки.
14. Разработайте и реализуйте на выбранных инструментах систему на основе
лямбда (X) или каппа (к) архитектуры. Сравните с пакетным и потоковым реше-
нием
Список источников к разделу 1.2
1. Герт ель В. II., С троит ин. Р. I. Основы парад тельных вычислений для многопро-
цессорных вычислительных систем. Учебное пособие. - Нижний Новгород: Изд-
во ННГ У им. Н. И. Лобачевского, 2003 - 184 с.
76
2. Клеппыан М Высокина1руженные приложения. Программирование, масппаби-
рование, поддержка. - СПб.: Пилер, 2018. - 640 с.
3. Пселсис Э. Дж. Потоковая обрабшка данных. Конвейер реально! о времени / пер.
с ашл. А. А. Силнкин. - М: ДМК Пресс, 2018. - 218 с.
4. Радченко Г. И., Соколинский Л. Б., Шамакина А. В Модели и методы профили-
рования и оценки времени выполнения потоков работ в суперкомпьютерных си-
стемах // Вычислительные методы и пршраммирование. 2013 -Т. 14.
5. Селиверстов Е. Ю. Обзор методов решения задачи планирования параллельных
алгоритмов // 2307-0545, Инженерный вестник. Декабрь, № 12, 2014
6. Уайт Т. Hadoop. Подробное руководство.-2-е издание.-Cl 16.: Питер. 2013.-672 с.
7. Foster, I. (1995). Designing and Building Parallel Program»: Concepts and Tools for
Software Engineering. Reading, MA: Addison-Wesley.
S Kessler C., Keller J. Models for parallel computing: Review and perspectives //
Mitteiluiigen-Gesellschaft fur Infonnatik eV, Parallel-Algonthmen und Rech-
nerstrukturen. - 2007.
9. Kuznetsov S. D. Poskomn A. V. NoSQL data management systems /7 Programming
and Computer Software. M.: Springer-Verlag GmbH, 2014, Volume 40, Issue 6,
pp 323-332. DOI: 10.1134 S0361768814060152.
10. Kwok Y.-K. Efficient Algorithms for Scheduling and Mapping of Parallel Programs
onto Parallel Architectures : Ph. D. thesis / Yu-Kwong Kwok ; The Hong Kong Uni-
versity of Science and T echnology. - 1994.
11. Poltavtseva M. A., Lavrova, D. S., Pechenkin, A. I. Planning of aggregation and nor-
malization of data from the Internet of 1 hings for processing on a multiprocessor clus-
ter// Automatic Control and Computer SciencesVolume 50, Issue 8,2016, P. 703-711.
12. Samarev R. S. Survey of streaming processing field. Trudy ISP RAN/Proc. ISP RAS,
vol. 29, issue 1, 2017, pp. 231-260.
1.3. Обработка данных в задачах
обнаружения вторжений
1.3.1. Типы данных и методы их обработки
Обработка сетевого трафика
С точки зрения процессов сбора и обработки данных, входной информа-
цией для систем обнаружения вторжений в компьютерных сетях является по-
ток сетевого графика. Для крупных сетей скорость поступления ттого потока
может достигать (и превышать) 100 I бит/с, что относит его к категории быст-
рых данных.
77
Рисунок 1-28. Принципиальная схема элемента входных данных
Рассмотрим принципиальную структуру поступающих на вход кластера
данных, приведенную на рисунке 1.28. Единицей данных, поступающих на
вход системы, можно считать информационный пакет, описываемый корте-
жем <~Titlc, Body*, где Title - структурированный заголовок пакета, структура
которого заранее известна (либо может быть однозначно определена по из-
вестным полям, например - поле признака протокола TCP - пакета), a Body -
нс интерпретируемое содержимое. Однако, вложенность пакетов, в соответ-
ствии с базовой эталонной моделью взаимодействия открытых систем, позво-
ляет представить «тело» пакета (Body) аналогичным образом и определить над
пакетом рекурсивную структуру кортежа заданной глубины вложенности с ти-
пизированными структурами заголовков, в соответствии с применяемыми
протоколами.
Структурированный заголовок пакета определим, как набор формали-
зованных параметров, зависимых от применяемого протокола. Зададим
Title = Putlc, где pePtilk - параметры, непосредственно извлекаемые из поля за-
головка.
Данная формализация позволяет определить задачу обработки пакета
как рекурсивную функцию над поступившим кортежем F(Package < Title
Body >) ->< PTttle,Body >, где Рга1е = (jfli F^Package < Title, Body >).
В данном случае Ft(Package < Title Body >) = F^Budy. Ft-i(Package <
Title, Body >)), где N - глубина рекурсии или глубина вложенности данных
пакета. Body — нс интерпретируемые функцией соответствующего уровня
внутренние данные пакета.
Датсс типизируем функции обработки пакетов, исходя и з формата обра-
батываемых данных (протоколов), введя для них уровни иерархии, в соответ-
ствии с вложенностью уровней модели взаимодействия открытых систем
(OSI). Тогда каждая функция обработки описывается типом If С Туре, где
78
Type - множество протоколов, и над набором функций вводится отношение
частичного порядка >, обладающее свойствами рефлективности, транзитив-
ности и антисимметричности. При максимальной глубине рекурсии (вложен-
ности протоколов N) поток обработки пакета может быть представлен
как последовательность функций обработки вида (j^Package <
Title, Body >)) ...)) где N > i. Таким образом, поток обработки каждого от-
дельного пакета может быть формализован как конвейер переменною со-
става из типизированных функций обработки заданных уровней.
Дополнительной особенностью сетевого трафика является разбиение
длинных пакетов протоколов более высокого уровня при передаче данных на
некоторое количество пакетов более низкого уровня Таким образом, может
быть сформирована схема входных данных, схема которой представлена на
рисунке 1.29.
С .рухтуриронаниин июлакж налета Не ишернрепфугмые latmue
]
Рисунок 1.29. Схема входных данных
Помимо рекурсивною извлечения параметров заголовков пакетов для
обработки таких данных необходим набор функций, выполняющих сборку
пакетов более высокою уровня Fs. Каждая функция Д G Fs принимает на
вход несколько результатов выполнения функций извлечения параметров,
описанных выше, и передаст результат на следующий уровень. Данные функ-
ции применяются не для каждого пакета, а только для пакетов, имеющих при-
знак фрагментирования. Функции сборки F, осуществляют сцепление и пере-
дачу фрагментов пакетов принимая на входе кортеж <Body, Flag> где Body -
сцепляемая нсинтсрпритирусмая последовательность байт, а флаг - признак
конца пакета, инициирующий его передачу на следующий уровень обра-
ботки.
79
Отношение частичного порядка на всем множестве функций F U Fs пер-
вого этапа (предобработки) обработки входных данных магистрального тра-
фика можно определить следующим образом (для числа максимальной вло-
женности протоколов - N): е = {/ &
Fs 01V/ = [1, Л/], при этом fs. > fi.
Рисунок 1.30. Общая схема вычислительно процесса
пои обработке магистрального тоафика с целью поиска аномалий
Так как, в ряде случаев протокол вложенного в поступивший пакета
нельзя определить однозначно исходя из очевидных параметров пакета
(например, для протоколов прикладного уровня), используются узлы (функ-
ции) - классификаторы, выполняющие задачу интеллектуальной классифика-
ции поступающих пакетов с функциями fk £ Fk. Исходя из заданною частич-
8С
ното порядка на множестве операций, они будут соответствовать уровням
функций сборки пакетов Fs. Функции классификации зависимы от уровня при-
менения в соответствии с моделью OS1 и типизируются по нему.
Заданное представление позволяет определить алгоритм построения
конвейера обработки входящего графика для любой [дубины вложенности па
кстов, с учетом фрагментированных пакетов и необходимости в ряде случаев
классификации пакетов по косвенным признакам.
Общая схема вычислительного процесса приведена на рисунке 1.30.
Обработка данных физических устройств
Каждое устройство может генерировать большое количество разнотип-
ных сообщений, которые могут отличаться как форматом представляемых
данных, так и форматом самого сообщения. Так, например, множество
устройств от погодной станции до промышленной печи или мультиварки ге-
нерируют данные о температуре. Помимо того, го каждое из этих устройств
обладает своим форматом и способом передачи сообщений в сеть интернет,
температура может быть представлена в виде градусов Цельсия или Фарен-
гейта. в формате числового или текстового поля различного типа.
Данные, поступающие от физических устройств имеют следующие осо-
бенности:
• Расширяемость форматов и устройств.
• Ориентированность на конкретное устройство.
• Разнообразный входной формат одного и того же физического пара
метра.
• Правила обработки входных данных в зависимости от устройства.
• Интенсивное поступление данных, но отсутствие изменений уже за-
фиксированных фактов.
В любом случае при анализе поступающих данных можно выделить их
общие характеристики, подлежащие фиксации, оценки и испольюванию в
дальнейшей интерпретации входящих сообщений в центр обработки. К таким
общим характеристикам относятся:
• Источник данных.
• Формат сообщения. Как уже указывалось, устройства разного типа
могут генерировать информации, одного и того же формата (напри-
мер, XML - сообщения одного вида), и, при этом, устройства одного
типа могут использовать разные форматы сообщений.
Вее остальные сведения в той или иной степени могут быть извлечены
из сообщения, если системе заранее известен его формат. Таким образом,
81
системе обработки данных необходимо хранить перечень форматов, ассоции-
рованных как с конкретными показателями, так и с конкретными устрой-
ствами вместе с функциями обработки.
1,3.2. Нормализация и агрегация данных
из разнородных источников
Нормализация данных
Понятие нормализации данных отличается в различных областях. Так,
в математике и машинном обучении под нормализацией понимают масштаби-
рование данных, приведение их к одному диапазону. В области баз данных,
нормализация - ото процесс устранения избыточности и аномалий обработки
данных, при построении интегрированных хранилищ - обработка аномалий
в поступающем потоке.
Под нормализацией в области обработки данных систем обнаружения
вторжений будем понимать приведение поступивших значений к нормализо-
ванному, стандартизированному виду для этого конкретного типа значения
(параметра). Например, «температура» представляется и обрабатывается в
виде градусов Цельсия в числовом виде, может принимать как положитель-
ные, так и отрицательные значения в диапазоне [tmm,tnw.], хранится два знака
после десятичной точки.
В общем случае над данными параметра возможны следующие типы
преобразований:
• Преобразование типа (например, из текстового значения в строковое
и наоборот).
• Арифметические преобразования (включая приведение точности).
• Логические преобразования (построенные по принципу правил ссли-
то-иначе).
В общем случае для реализации преобразований потребуется использо-
вание специального я зыкового средства преобразования параметров или раз-
работка простых ETL-фу нкций для каждой отдельной трансформации. Второй
подход позволит создат ь расширяемую библиотеку типизированных функций
без использования новых языковых средств.
82
Подходы к сокращению размерности
Сокращение размерности данных рассматривается в двух аспектах во-
первых, это сокращение возможных измерений данных, во-вторых - сокраще-
ние непосредственного размера хранимой информации, для получения воз-
можности се оперативной обработки и анализа без потери значимости Реше-
ние задачу сокращения размерности, в обоих приведенных смыслах, осу-
ществляется на разных этапах обработки данных.
1. Сокращение размерности за счет извлечения данных.
Заключается, как для сетевого трафика так и для данных устройств, в из-
влечении из «сырых» сетевых пакетов значимых для анализа параметров на
этапе предобработки и формирование кортежей значимых параметров типа
<Kcy,Valuc> где ключ (Key) - идентификатор протокола, потока или экзем-
пляра параметра, а значение (Value) - структурированные параметры сообще-
ний. Под экземпляром параметра понимается кортеж ^Устройство, парамстр>.
Использование такой комбинации необходимо так как, с одной стороны, раз-
личные устройства могут присылать данные одного параметра (например,
температуры), а с другой - одно устройство может присылать значение не-
скольких физических параметров (например, температура, давление и влаж-
ность).
В данном случае происходи одновременное достижение обоих целей.
С одной стороны, выделяются только значимые для анализа параметры, при-
меняющиеся в соответствующих методах, и происходит сокращение общей
размерности исходных данных. В другой, за счет отбрасывания нс значимой
с точки зрения анализа информации, происходит сокращение физического
размера обрабатываемых сведений.
При порождении, по предварительной оценке, нс более 50 значимых па-
раметров на один обработанный сетевой пакет (с учетом прои зводных пара-
метров от потоков и пакетов более высокого уровззя, чем сетевой), и прзз вы-
делении на хранение параметра 10 байт, размер данных, представляющих со-
бой хранимые значимые параметры составит 500 байт. Если учесть, что в сред-
нем размер сетевого пакета 1500 байт, экономия места составззт порядка 66 %.
2. Сокращение размерности за счет очистки данных.
Применение корреляционных оценок, расчет фрактальных и вейвлет -
оценок при анализе сетевого трафика позволяет значительно сократить число
оцениваемых измерений (параметров) и применять оценку только выбороч-
ных и прошедших предобработку измерений для принятия решения о наличии
аномалии или других значимых признаков в сетевом трафике.
83
Таким образом, при сборе и обработке данных для анализа тс параметры,
которые не востребованы аналитическим модулем, также мотут быть отбро-
шены. Конкретные методы анализа и необходимые для них данные приведены
далее в соответствующем разделе.
3. Сокращение размерности при по мощи агрегации.
Д1я вычисления аналитических показателей гребустся существенное
обобщение (агрегация) входных данных, даже представленных в параметри-
ческом виде, для достижения необходимой скорости реакции системы. Объем
порождаемых сетевым трафиком и киберфизичсскими устройствами данных
достаточно велик. Периоды, которые оцениваются аналитиком, могут состав-
лять недели и даже месяцы. При обрабатываемом потоке в 100 I биг/с, накоп-
ленные за сутки данные, с учетом сокращения размерности на первом этапе,
составят порядка 348 Тбайт, за месяц - в среднем, в 30 раз больше. Такой
объем информации нельзя обрабатывать с достаточной опсра1ивностью и вре-
менем реакции в пределах ЗОсскунд. Поэтому необходимо дополнительно ис-
пользовать агрегацию данных для сокращения размерности. Основным требо-
ванием к такой агрегации будет сохранение значимых для анализа данных.
Рассмотрим этот вопрос более подробно.
Агрегация - формально, это абстракция, представляющая отношение
между объектами как один обобщенный (агрегированный) объект. В общем
случае можно выделить следующие подходы к агрегатам.
Обобщение (Bucketing) - обобщающие набор данных по определен-
ному признаку (фильтры). Некоторые виды обобщений можно интерпрети-
ровать как филыры для дальнейшей вычислительной агрегации. Примеры
обобщения
• А1рсгация по наличию признака (тема документа, тип устройства
ит. д.) или огсутствию/неизвостности какого-либо признака (Null -
значение).
• Агрегация по условию (агрегация по фильтру) - объединение по
условию, накладываемому на признак.
• Агрегация по диапазонам значений признака или по времени поступ-
ления сообщения.
• Географическая агрегация - объединение объектов в определенной
географической области, например - помещении.
• Агрегация по расстоянию (географическому, в прыжках между объ-
ектами и т. д.).
Вычисление (Metric) - подход к агрегации на основании вычисления не-
которого значения по набору сведений. В общем случае функции аг ротации на
84
основе вычисления могут быть достаточно разнообразны. Примерами такой
агрегации на отфильтрованном наборе являются, минимум, максимум, сумма,
среднее, количество, процентное распределение, статистические показатели
разного рода, подсчет уникальных значений и другие.
Таким образом, все методы агрегации сводятся к отдельному или сов
местному использованию двух подходов: объединению объектов в один с со-
хранением (или без сохранения) их уникальных сведений (например, объект
«персонал» объединяет объекты «работник» с сохранением индивидуальных
характеристика каждого или содержит только усредненные значения) и вы-
числению характеристик набора объектов по заданным (в общем случае, лю-
бым) правилам.
Агрегация сообщений
Необходимо в общем случае организовать несколько этапов агрегации
данных ,тдя разной степени обобщения и выявления разных инцидентов без-
опасности. При этом, первым этапом должна быт ь аг per ация параметров сооб-
щения в памяти .для обобщения полученных сведений. Такой подход позво-
ляет более эффективно распределять задачи в вычислительном кластере, ис-
пользуя показатель агрегации как признак выбора узла - обработчика в пото-
ковой системе. В общем виде схема агрегации представлена на рисунке 1.31.
I. Агрегация сообщений по времени.
Агрегация сообщений по времени, без учета типа параметра и устрой-
ства отправителя как обобщающих факторов приведена на рисунке 1.32. Па
каждом этапе агрегации можно выделить временной интервал агрегации (tl,
tm) определенной длительности, агрегирующий поступившие в этот период
значения от заданного устройства.
Также с каждым этаном агрегации и набором агрегированных значений
связано их время жизни в системе. Это время, необходимое для проведения
аналитических операций на соответствующем уровне обобщения. По его ис-
течении данные каждого уровня абстракции должны быть удалены для осво-
бождения места для новой поступающей в систему информации. Такой подход
позволит обрабатывать поступающие сведения из множества источников ин-
тернета вещей избегая переполнения системы храпения.
Таким образом любой период агрегации Ра описывается следующим об-
разом:
Ра (At, tl) (1.2)
где At - временной период агрегации;
tl - время жизни аг ротированных данных в системе.
85
Mln
Mik
□пап
□---
□□—
Al
pi <|k-n] или Lg-hJ)
M2g
{
M2h
ГОППП
11]
Pl
1
s
«
1
&
l
3
t
I
Й
HI
sis
т S ю
«J с о
5
е s
М
Ге
С S
н
я р.
5“
= G
э I
5 а
&
a
s
a
е-
св
№
S
3 s
Б =
И
а
2
&
8
j
3
Си
t
&
Ig
- -
Рисунок 1.31. Обобщенная схема агрегации данных
в системах обнаружения вторжений
Значите параметра
в момент фсмспи tm
Знача же параметра
в момент времени 11
Значение параметра
в момент времени t2
Значите параметра
в момент времени
Значение параметра
в момент времени tn
Агре тированное
значение параметра за
период (tm-1, tn)
Агрегированное
значение параметра за
период (11, tm)
Агрегированное
значение параметра за
период (11, tn)
Этап агрегации в памяти
Продолжительность периода
агрегации (tl,tni), (tm-1, tn)
и т д - порядка 5 сскуп.л
Эта ma агрегации с промежуточным храпением Размер
периода агрегации зависит от задач анализа
Этапы агрегации с промежуточным храпатем могут итерационно
наращиваться с увеличением периода агрегации
Рисунок 32. Агрегация данных в памяти
86
В общем случае подход к агрегации данных включает в себя по крайней
мере один период агрегации данных «на лету» в памяти системы и п периодов
агрегации хранимых сведений для проведения задач анализа.
Первичная агрегация в памяти может производиться с разной интенсив-
ностью в зависимости от устройства. Также имеет значение возможная потеря
данных, так как до занесения агрегированного значения в хранилище обра-
ботка происходит в оперативной памяти и в случае сбоя поступившие сведе-
ния могут быть потеряны
Таким образом, для каждого устройства должно указываться At - время
первичной агрегации. Данные полученные за этот промежуток времени могут
бьпь безвозвратно потеряны в случае сбоя, а колебания данных могут быть
отброшены после агрегации по заданному закону. Агрегация одних и тех же
данных от одного и того же устройства может, в общем случае, происходить
по разным законам и порождать несколько агрегатов В общем случае время
первичной агрегации также можно определить, как At = min (U, ta), где tc -
«время допустимого сбоя», ta- «время агрегации».
Данные, собранные за промежуток времени tc, могут быть безвозвратно
потеряны в случае сбоя системы, если они еще не были агрегированы и пере-
несены в устойчивое хранилище. Данные, собранные за этот промежуток вре-
мени ta, могут быть агрегированы без потери качества работы системы и точ-
ности анализа.
В общем случае процесс первоначального агрегирования можно описать
следующим отображением:
VP,N{P}->Mm (1.3)
Таким образом на основании N сообщений содержащих входной пара-
метр Р создастся в общем случае Мд, агрегатов за промежуток времени At.
2. Агрегация сообщений по объектам
Помимо агрегации сообщений по времени также может проводиться аг
рсгация с обобщением, или агрегация сообщений по объектам. При чем этот
процесс также может происходить как «на лету», так и позднее, при пост-об-
рабогке данных.
Рассмотрим такую агрегацию на примере процесса логина одного
устройства к другому. В общем случае процесс состоит из следующих этапов:
• Устройство 1: отправлено сообщение «Подключиться».
• Устройство 2: отправлен ответ на запрос подключения
При этом каждый этап может содержать обмен более чем одним сооб-
щением Также по окончанию этого обмена можег быть сформировано по
87
крайней мерс два события: «Успешный логин Устройства 1 к Устройству 2» и
«11с успешный логин Устройства 1 к Устройству 2».
Агрегацию «на лету» затрудняет разные временные интервалы прихода
сообщений, возможные задержки на линии. С другой стороны, отсутствие
сформированного события за заданный интервал времени также может слу-
жить предупреждением безопасности.
Соответственно, для описания таких случаев должны использоваться со-
бытия, в обшем виде агрегирующие в себя некоторое количество сообщений.
У каждого такого собьпия должен быть таймаут I, по истечении которого со-
бытие признается нс сформированным и возникает соответствующее отдель-
ное событие в системе.
Так как в явном виде эти данные отсутствуют в сообщениях, необходим
справочник событий, указывающий, из какого количества каких сообщений
состоит каждое конкретное событие.
Также следует рассмотреть вопрос другой объектной агрегации сообще-
ний В этом случае, например, показатели нескольких устройств могуг быть
агрегированы в один показатель некого обобщающего устройства. Так, напри-
мер, показатели п датчиков, расположенных в помещении и фиксирующих
температурные данные, могут быть агрегированы в показатель суррогатного
датчика, отображающего температуру в помещении, когда:
Pc=f(P {pi|i=l..n}) (1.4)
где PL - значение признака комбинированного (агрегирующего) устройства:
Р - множество значений параметра агрегируемых устройств;
р, - параметр, поступивший от i-ro из агрегируемых устройств;
и - число агрегируемых устройств.
В гтом случае после агрегации сообщений по времени в памяти прово-
дится их агрегация по объектам используя полученные на предыдущем этапе
значения и, на основании полученных данных, формируется событие.
1.3.3. Иерархическая агрегация данных
Метод сокращения размерности данных, предлагаемый для построения
агрегированных (обобщенных) данных, предполагает построение набора
«окон» - структур данных с временными рядами обобщенных значений пара-
метров. Однако, различные методы исследования предполагают различную
88
величину окон агрегации - от нескольких секунд до месяцев. При этом важ-
ными являются следующие особенности:
1. Значение имеет порядок временного периода, а не его точное значе-
ние. То сеть, с точки зрения методик обнаружения, при оценке пери-
ода в 10 минут такая же гффективчость будет наблюдаться и на пе-
риоде 8, и на периоде в 12 минут.
2. Во всех случаях производится оценка числовых рядов, или вычисля-
емых на их основе скалярных значений. При этом число элементов
ряда должно достигать нескольких сотен - такое количество значе-
ний достаточно для обнаружения аномалий и ряды длиннее 1000 зна-
чении не требуются.
Эти особенности обуславливают эффективность применения в системах
обнаружения вторжений использование иерархически - зависимых окон агре-
гации.
Иерархическая агрегация оанных базируется на понятии «временного
окна агрегации». Под ним понимаются временные ряды агрегированных зна-
чений параметров за заданный (определенный) период времени. Каждому
«окну», в общем случае, может принадлежать множество временных рядов.
Для уменьшения размерности хранимых данных и увеличения эргоно-
мики их обработ ки в методе иерархической агрегации предлагается использо-
вать иерархические святи между временными рядами одних и тех же парамет-
ров разных временных окон, выраженные в иерархической организации окон
агрегации (рисунок 1 33).
Рисунок 1.33. Иерархическая организация временных окон агрегации
В этом случае, при формировании исходного значения за временной пе-
риод dti, соответствующий временному промежутку одного элемента окна
89
верхнего уровня, происходит сдвиг всех элементов этого окна на одно значе-
ние. Первым (входным) элементом оказывается новое значение, а последним
«выходным» - то, которое было предпоследним. «Отбрасываемые» последние
параметры накапливаются. При совершении полного сдвига любого окна
накопленные при сдвиге значения поступают как новый элемент для окон -
наследников следующего уровня и провоцируют их сдвиг на одно значение.
Для повышения гибкости системы могут использоваться целочисленные веса
ki...kK PCR (Parent-Child-Relation) - связям временных окон агрегации, служа-
щие множителем требуемого числа полных сдвигов окна родителя для еди-
ничного сдвига окна - потомка.
В общем случае временное окно агрегации представляет собой струк-
туру, состоящую из двух частей: во-первых, метаданные или характеристики
самого окна, во-вторых - непосредственно наборы входящих в него времен-
ных рядов параметров (рисунок 1.34). Па практике при реализации окон могут
использоваться массивы, списки и другие структуры данных, в зависимости
от инструментария разрабогчика.
Параметры учитываемые при анализе
Характеристики окна
Агрегируемые Параметры вида
параметры « временной ряд?'
Очереди
значений
Рисунок 1.34. Структура временных окон агрегации
Не смотря на структурную идентичность, временные ряды параметров
можно условно разделить на две группы.
1) явные временные ряды (параметры вида «временной ряд»), все ком-
поненты которых применяются при анализе;
2) неявные временные рябы (агрегируемые параметры), над которыми
определяется усредненное значение и используется при анализе.
Для расчета усредненного значения требуются все данные ряда, так как
при поступлении нового элемента в ряд из потока это значение должно быть
пересчитано с учетом нового и отбрасываемого (самого старого) значения в
ряду. Хранение полного ряда позволяет в свою очередь использовать в боль-
шинстве случаев простой пересчет агрегата исходы из старых и новых данных,
без полной оценки всех элементов.
9С
Окно при реализации может бьпь описано кортежем: Window—><ld, Dt,
\!, Parent, Fr, a, a cur, Par>, где Id - идентификатор окна, Dt - временной пе-
риод агрегации, то есть, промежуток времени на котором каждое значение каж-
дого ряда параметров представлено единым агрегированным (средним, мини-
мальным, максимальным или иным) значением, N-длинна числовых рядов па-
раметров, N сиг - число значений во временных рядах окна пришедших с его
последнего полного обновления. Parent- окно - родитель (для всех окон кроме
минимального), Fr - связанные методы расчета аналитических параметров,
применяемые к данным рассматриваемого окна, Par={Qpl..Орт' - времен-
ные ряды или очереди параметров. Параметр а - что коэффициент зависимости
между окнами, а сиг - число накопленных сдвигов вышележащего окна.
В рабочем режиме осуществляется модификация текущих и историче-
ских значений параметров, происходит анализ данных «на лету». Событие
прихода нового фрагмента данных инициирует проверку временных парамет-
ров минимального окна, являющегося корнем дерева обновления временных
окон. Проверяется условие tcur tiast > Dt достижения временного проме-
жутка, равного шагу минимального окна, где D: - шаг окна, tcur - текущее
значение таймера, tiast - предыдущее значение таймера, на котором произо-
шел сдвиг окна.
Перенос в копию - предшественника
а)
Рисунок 1.35. Сдвиг временных рядов
а - на одно значение (малый сдвиг):
б - на полный цикл (большой сдвиг)
Альтернативным вариантом является генерация соответствующего со-
бытия таймером, настроенным на промежуток Dt минимального окна агрега-
ции. При наступлении этого события происходит «малый» сдвиг параметров
91
временных рядов сначала минимального (корневого) окна. Малый» сдвиг -
сдвиг временных рядов параметров на оно значение, схема которого приве-
дена на рисунке 1.35 (а).
Если при этом произошло полное обновление окна агрегации, то иници-
ируется «большой» сдвиг (рисунок 1.35 (б)): сдвиг окон-потомков в силу пол-
ного обновления временных рядов родителя. При этом исходя из данных агре-
гатов параметров, хранимых в окне, определяются новые параметры для по-
следующего окна агрегации и при учете коэффициента а. происходит малый
сдвиг его значений. Дтя каждого из окон - потомков сдвинувшегося окна
также проверяется возможность большого сдвига.
Контрольные -.опросы и задания к разделу 1.3
1. Какую модель имегог данные сетевого графика, с точки зрения обработки их в
системе обнаружения вторжений? Как она влияет на процедуры обработки?
2. Какую модель имеют данные физических устройств, с точки зрения обработки их
в системе обнаружения вторжений? В чем их особенность?
3. В чем заключается задача нормализации данных, в частности, в системах обнару-
жения вторжений? Какие еще есть трактовки понятия нормализации?
4. Какие существуют методы сокращения размерности данных (в частности, в зада-
чах обнаружения вторжений)?
5. В чем заключается задача агрегации данных, в частности, в системах обнаруже-
ния вторжений? Что необходимо предусмотреть при агрегации данных, какие
есть ограничения?
6. Какие методы агрегации данных используюгся в системах обнаружения вторже-
ний? На каких этапах предобработки данных? Обоснуйте свои ответы.
7. В чем заключается метод иерархической агрегации данных? Для каких случаев
рационального его применение?
8. Реализуйте иерархическую агрегацию тайных на примере сетевого графика и ис-
пользованием инструмента по собственному выбору.
Список источников к разделу 1.3
1. Ко лчин М. А., Шилин И. А., Климов Н. В., 1 арайзуев Д. С., Муромцев Д. И., За-
колдаев Д. А. Метод атретации и нормализации данных гетерогенной сенсорной
сети // Известия высших учебных заведений. Приборостроение. - 2015. - Т. 58. -
№11.-С. 945-951.
2. Олифер В., Олифер Н. Компьютерные сети. Принципы, технологии, протоколы:
Учебник для вузов. - 5-е изд. - СПб.: Питер, 2016. - 992 с.
92
3. Попова О. А., Жмурова А. А., Мерко А. М. Атретация и техника быстрых вычис-
лений для данных больших объемов // Материалы X Всероссийской научно-тех-
нической конференции с международным участием. Сибирский федеральный
университет; Межинститутская базовая кафедра «Прикладная физика и космиче-
ские технологии». - М.: Литера-Принт. 2013. - С. 191-196.
4. Смит Д. М., Смит Д. К. Абстракции баз данных: атретация и обобщение// СУБД. -
1996,-№2.
5. Хабибуллина Е. Л., Сысоев А. С., Воронин Н В. Актирование разнородных дан-
ных для определения параметров транспортною потока // Транспорт Российской
Федерации. Журнал о науке, практике, экономике. 2019. - № 2 (81). - С. 22-25.
6. Poltavtseva М. A., Zegzhda Р. D., Pankov I. D.. The Hierarchial Data Aggregation
Method in Backbone Traffic Streaming Analyzing to Ensure Digital Systems Information
Security, 2018 Eleventh International Conference Management of large-scale system de-
velopment (MLSD), Moscow, 2018, pp 1-5 dor 10 1109 MLSD.2018.8551916.
1.4. Параллельная организация
вычислительного процесса
1.4.1. Обработка сообщений от устройств
Основные операции над сообщениями можно обобщить в виде следую
щего набора действий:
1. Разбор формата и извлечение параметров.
2. Агрегация параметров по времени «налету» (в памяти).
3. Нормализация параметров
4. Агрегация параметров по объектам «на лету» (в памяти).
Поступающая информация, в свою очередь, в общем случае претерпе-
вает следующие преобразования (см. ранее рисунок 1 31):
• Сообщение (Message), поступившие за период времени At, индиви-
дуальный для каждого устройства. Количество сообщений может от-
личаться от устройства к устройству (k. п для первого устройства на
рисунке. g..h для второго).
• Параметры, извлеченные из сообщений (рт). Из каждого сообщения
извлекается от 1 до Ь параметров, причем один и тот же параметр
может быть извлечен из нескольких сообщений.
• Параметры подвергшиеся агрегации по времени за период At.
93
• Параметры после нормализации.
• Параметры после агрегации внутрь искусственных объектов -
устройств.
• События (Events), сформированные на основании полученных.
Рассмотрим этапы обработки поступающих сообщений с точки трения
параллелизма Большая часть задач являются зависимыми по данным для од-
ного поступившего сообщения или устройства.
Задача разбора параметров является независимой для каждого посту-
пившего сообщения При этом на се входе нс используется данных других за-
дач, а результат применяется в последующих этапах. Этот этан до сброса па-
раметров в модуль агрегации или нормализации должен осуществляться мак-
симально быстро дтя каждого поступившего сообщения, чтобы избежать по-
тери данных. Признаком необходимости агрегации «на лету» является нс ну-
левое значение Al. приписанное соответствующему параметру.
Задача агрегации параметров «налету» является независимой для каж-
дого поступившего сообщения. Общий принцип работы модуля следующий:
в памяти накапливаются сообщения от соответствующих устройств и агреги-
руется по истечению интервала времени At. На этом этапе должен функциони-
ровать модуль-диспетчер, проводящий агрегацию по очереди по дост ижению
заданного параметра времени. При хранении очереди задач на агрегацию в
разделяемом ресурсе (области памяти или в качестве элемента in-memory базы
данных) диспетчер также может быть многопоточным.
Модуль нормализации получает данные напрямую после разбора сооб-
щения или агрегации данных от устройства, формирующие очередь заданий
для него. Нормализация каждого поступающего параметра является независи
мой от остальных парамшров и может активировался по готовности одной из
предыдущих задач,
После этапа нормализации полученный результат может быть сформи-
рован в событие и перенесен в хранилище событий дтя последующего off-line
анализа, или же направлен в блоки агрегации сообщений. Признаками необхо-
димости агрегации являются
1. Признак вхождения в составное сообщение дтя сборки сообщений
из набора в одно событие. Признак должен присутствовать в наборе
метаданных соответствующего типа сообщения.
2. Признак вхождения устройства в составное (агрегирующее) устрой-
ство. В этом случае признак проверяется путем анализа иерархии
устройств в метаданных экземпляров физических устройств При
этом выявляется факт наличия aiротирующего родителя физического
94
устройства. Сбор данных с датчиков агрегирующего устройства, или
сбор сообщений дтя генерации агрегатного значения производится с
набора устройств в течении времени At и принципиально аналошчсн
агрегированию «на лету» с применением соответствующего диспет-
чера.
Учитывая необходимость моделей диспетчеризации и промежуточных
хранилищ данных в памяти (в виде m-memory data base или иных), схема мо-
дулей (задач; в совокупности с хранилищами данных и информационными по-
токами между задачами примет вид, представленный на рисунке 1.36.
Рисунок 1.36. Взаимодействие подзадач при нормализации
и агрегации больших массивов данных
Опишем приведенные выше компоненты, на которые разделена исход-
ная задача.
DB0 - база метаданных (справочников) системы. В общем случае может
быть как in-memory хранилищем при небольшом числе типов устройств и со-
общений. так и хранилищем на жестком диске, интегрированном в хранилище
событий (или отдельным от него).
DB1-DB3 представляют собой хранилища в памяти и могут быть реали
зованы как на базе m-memory data base так и в виде отдельных объектов в опе-
ративной памяти
DB1 - хранилище значений, агрегируемых по памяти.
Модуль разбора сообщений (Т1) после парсинга входящего сообщения
определяет, необходима ли ему агрегация в памяти, анализируя At соответ-
95
ствующего параметра устройства. В случае если At>0, значение переносится в
DI31, а в очереди делается соответствующая запись. Необходимо отметить, что
ряд преобразований (например, перевод значения из строки в число) должен
производиться при разборе сообщения, чтобы сделать возможной процедуру
агрегации в памяти.
Очередь Q1 при этом состоит из элементов <1D Dev, ID Par, ID Mcs,
Tirnc> и отсортирована по значению параметра Time (по возрастанию). Пара-
метр Time определяется исходя из At и времени прихода сообщения
Now Time: Time = Now Time() 4- At. Таким образом, сообщение которому
осталось агрегироваться наименьшее время, то есть, расчетное время конца
агрегации меньше всего, находится в голове очереди.
Диспетчер агрегации по времени (Т2) опрашивает очередь Q1 до наступ-
ления времени Т1 в начале очереди. Опрос инициируется при поступлении в
очередь новою элемента. Если время агрегации первого элемента истекло, из
очереди изымаются все элементы с аналогичным сочетанием <ID Dev,
ID Раг> и аз ретируется в одно значение, которое, в свою очередь, отправля-
ется в модуль нормализации.
Нормализация (модуль ТЗ) проводится согласно правилам преобразова-
ния на основе метаданных и принятой процедуры После чего сообщение по-
ступает в диспетчер 2 (Т4).
Диспетчер Г4 определяет назначение входящего сообщения в зависимо-
сти от отправителя:
* ТЗ, модуль нормализации;
• Т5, модуль формирования составных сообщений;
• Тб. модуль формирования агрегатных (составных) устройств.
В общем случае, после получения сообщения от модуля нормализации
ТЗ диспетчер Т4 определяет, не является ли это сообщение составным, по со-
ответствующему признаку в его метаданных (этап Т4.1). При положительном
заключении данные направляются в DB2 и активируется модуль подзадачи Т5.
Иначе Проводится анализ, является ли устройство, с которого получено сооб
щснис, частью агрегирующего устройства (по факту наличия или отсутствия
родителя в справочнике устройств) (этап Т4.2). При положительном заключе-
нии данные направляются в хранилище DB3 и активируется модуль подзадачи
Тб. Иначе проводится формирование сообщения в соответствии с моделью со-
бытий (этап Т4.3). Сформированное на основании поступивших данных собы-
тие переносится в распределенное хранилище событий для дальнейшего осу-
ществления задач анализа в off-line режиме.
96
Рисунок 1 37. Переход к графовому представлению задачи
обработки сообщений устройств
Разделение этапов Т4 1-Т4.3 на отдельные модули является нерацио-
нальным за счет вычислительной простоты задачи и обобщенной логики дей
сгвий, в гависимости от источника входного сообщения. Особснносчью за-
дачи является ее активизация в момент поступления данных на обработку и
независимый процессинг входной информации исходя из отправителя и спра-
вочников метаданных. Окончание работы модуля связано с отправкой сооб-
щения в 15, Тб или формированием события и помещение его в хранилище
событий.
Последовательно переводя задачу агрегации и нормализации больших
данных в многопроцессорной системе в графовое представление, получим сс
вид, приведенный на рисунке 1.37.
В данном случае вершины графа Т1-Т5 соответствуют задачам, описан-
ным выше при разбиении процесса на параллельно выполняющиеся подза-
дачи. Указаны информационные связи между ними и с хранилищами данных.
Модули DB0-DB3 являются хранилищами данных m memory, фактически, они
нс являются управляемыми задачами программного комплекса, а внешними
программами или даже просто объектами памяти, управление которыми осу-
ществляет системное программное обеспечение вычислительного кластера.
Исходя из этого их можно исключить из рассмотрения алгоритма внутреннего
интеллектуального планирования задач.
Основной момент, который необходимо предусмотреть в этом вопросе,
это востребованность модуля DB0 на всех этапах обработки данных. Для того,
чтобы обращения к нему нс составляли узко место системы, копия модуля DB0
или необходимых его фрагментов должна находится на каждом узле кластера.
97
Таким образом, для его реализации должны быть применены технологии реп-
лицируемых баз данных в оперативной памяти (in memory data base).
Основными грсбованиями к расположению на кластере будет:
1. Близость расположения Т2 и DB1
2. Близость расположения Т5 и DB2.
3. Близость расположения Тб и DB3.
Таким образом inMemory хранилища DB0 реплицируются и доступны
на каждом узле кластера. Также может быть произведена фрагментация хра-
нилища DBO в соответствии с нижеприведенными правилами. Для повышения
скорости работы хранилищ DB1 DB3 и минимизации обмена данными между
узлами должны выполняться следующие правила:
1. Все сообщения с одного устройства направляются приходят на один
узел - обработчик.
2. Все сообщения связанных в иерархию устройств направтяются на
один узел - обработчик.
Перенос на один узел всех обработчиков составных сообщений является
не рациональным. В общем случае он потребует миграций полных данных
устройств, участвующих в составном обмене. В то же время, этап сборки со-
ставных событий из нескольких сообщений является наименее критическим
по временным оценкам и может занимать время, включающее обмен сообще-
ниями.
В остальном задачи могут свободно распределяться между кластерами в
зависимости от загруженности узлов. Загрузка узла кластера определяется по
перечню привязанных к нему устройств (сначала физических, потом ai роти-
рующих). При совершенствовании метода в эту оценку может быть введен
учет количества входящих сообщений о каждого привязанного устройства или
средняя, или пиковая загрузка узла согласно его статистическим данным.
1.4.2. Обработка сетевого трафика
Рассмотренная выше модель сетевого графика и конвейерный порядок
обработки, описанный ранее, позволяет сформировать граф обработки дан-
ных. Так как над функциями обработки задан частичный порядок, следова-
тельно, определено и их следование друг за другом - то есть, зависимость
между функциями от данных. Проведем формализацию и определим конкрет-
ные типы функций - обработчиков сетевого графика, на основании рекурсив-
ного порядка обработки сетевого пакета.
98
1. Выделяется узел для обработки входящего пакета-У зел-обрабогчик
первого (сетевою) уровня (тип F1.1).
2. Извлекаются данные из полей заголовка пакета. Не фрагментирован-
ные пакеты разбиваются на кортеж данных заголовка и содержи-
мое- пакет транспортного уровня. Заголовок направляется на выход
первого этапа, содержимое - на следующий узел конвейерной обра-
ботки.
3. Фратмонтированные пакеты после извлечения данных и формирова-
ния выходного кортежа направляются сначала на узлы сбора фраг-
ментированных пакетов также первого (сетевого) уровня (тип F1.2).
Узел типа 1'1.2 определяется по парс <1Р-адрсе отправитсля> - <1Р -
адрес получателя-», что позволяет распределить нагрузку и собирать
на одном узле фрагменты одного набора пакетов.
4. Далее содержимое сетевых пакетов разбирается на одном из узлов
второго (транспортного) уровня. У злы обработчики второго (транс-
портного) уровня (тип F2.1) извлекают данные из заголовков транс-
портного уровня и проводят первичную классификацию пакетов по
парс <Г1орт получателя^ - <Порт отправителя-’. Данные об установ-
ленных пакетах протоколов прикладного уровня отправляются на
выход первого этапа. Также эти данные, при необходимости, направ-
ляются на выделенные узлы для применения интеллектуальных ме-
тодов классификации трафика - узлы классификации вт орого (транс-
портного) уровня (тип F2.2).
5. Также данные пакетов отправляются на соответствующие узлы фор-
мирования потоков второго (транспортного) уровня (тип F2.3). Узел
формирования потоков определяется по кортежам < 1Р-адрсс, Порт>
отправителя - <1Р-адрсс, 11орт> получателя Данные сформирован-
ных потоков также направляются на выход этапа.
В данном случае задача формирования потоков, необходимая для дости-
жения целей анализа и обеспечения безопасности в магистральных сетях пе-
редачи данных, аналогична задаче сбора данных из фрагментированных паке-
тов и решается аналогичной функцией сбора соответствующего уровня. Ито-
говый конвейер обработки примет вид:
<fi i,{f2.i, 0},{f2.3,0)>- (1-5)
При этом fiieFl.l; fi reF2.1; Fl.l,F2.1eF - функции обработчики пакетов
уровня.
fi 2 6F1.2; 6.8GF2.3; Fl .2, F2.3eFs- функции сборки фрагментов;
f22£F2.2; F2.2eFk- функции классификации.
99
Функции, обладающие одним уровнем порядка, могут выполняться па-
раллельно или квазипараллельно на вычислительном кластере. Обшая схема
распределения графика на этапе предобработки с учетом ограничений пред-
метной области представлена на рисунке 1.3S.
••••► Извлеченные параметры (1>7“|г)
—> Голные данные пакета (Body;
Рисунок 1,38. Общая схема распределения графика
на этапе предобработки
В данном случае отображены все функции обработки, представленные
выше, п!, п2, пЗ, k 1, к2 - число типизированных узлов - обработчиков каждого
типа. Каждая задача выполняющаяся на соответствующем узле описывается
типом и набором параметров: DescriptIO(TPj\)} =< FTyper, FP > для v/j е
Fy, где FTypel - f/ty,... ftp], где |FTypci|=p - поддерживаемое число прото-
колов, алгоритмов классификации и алгоритмов соединения фрагментирован
ных данных. |FTypcy| = pnrpt+апЛ at+kp, где рп - число поддерживаемых про-
токолов сетевого уровня, pt - число поддерживаемых протоколов транспорт-
ного уровня, ап - число способов сборки фрат монтированных пакетов сетевого
уровня, at - число способов сборки потоков из пакетов транспортного уровня,
кр - число алгоритмов классификации пакетов транспортного уровня для
определения применяемого в них протокола прикладного уровня. FP =
= {fp} ...,fpi], - набор парамегров задачи, касающейся се требовательности
к вычислительным ресурсам для выполнения в интервал времени, нс превы-
шающий время поступления нового задания .для обработки данной вершиной.
100
Граф обработки данных, представляющий собой наборную структуру из задач
обработки, представлен на рисунке 1.39.
В приведенном графе обработки умы типизированы по описанным ти-
пам функций F1.1-F2.3. Ребра, отражающие потоки данных, принадлежат не-
скольким типам:
1. Ребра передающие информационную часть поступившего пакета
или результат выполнения функции над этой частью: Bodynct»Ork,
PackagCtraibport, Bodytranport-
2. Ребра передающие информационно значимые параметры пакетов
для последующего анализа или выполнения функций классифика
ции, сбора потоков и т. д.: РгЧ- Рт*4.
Входные данные представляют собой поток пакетов, формализованных
в виде кортежа <Titlc,Body>. Выходные данные представляют собой кортежи
типа кпюч- значение <Key,Value> где Key может принимать значение:
• протокола, которым закодированы соответствующие данные, полу-
ченного в результате прямого просмотра параметров;
• потока, идентифицируемого кортежем <Отправитсль(1Р-|-порт), По-
лучатель (1Р+порт)>
1.4.3. Агрегация данных
Представление данных в одной модели ключ - значение кортежами <
Key, Value > позволяет применить один подход к построению конвейера и
графа задач выполнения агрегации данных как для сетевого трафика, так и для
101
поступающих параметров физических устройств. Для этого применяется агре-
гация по наборам параметров, в заданных исследователем промежутках вре-
мени. Тогда задачи первой части - извлечения данных - расширяются на набор
задач агрегации и анализа, с целью:
1. Формирования очередей параметров для агрегации
2. Вычисления агрегированных значений на заданном исследователем
минимальном интервале времени
3. Проведение оперативного анализа с выработкой информационного
сигнала (при необходимости).
Таким образом возникают следующие функции обработки данных на
этом этале:
• функции pas бора данных и формирования очередей параметров или
функции декомпозиции Fa:
• функции расчета аналитических значений над наборами данных Fr.
Оба блока функций связаны между собой через очереди параметров,
формируемые Fa. Задачи формирования являются равнозначными и выбира-
ются исходя из значения ключа пары <Кеу, Valuc> хранимых значений. Функ-
ции Fa типизированы в соответствии с возможными значениями ключа. Каж-
дая функция Fd может быть описана как: Fd(<Kcy,Valuc>)=Params, где
Params={pi,...,рп) - список параметров извлекаемых из данных с таким значе-
нием ключа. Поля входного кортежа <Kcy,Valuc> применяются для иденти-
фикации алгоритма извлечения (Key) и собственно получения данных (Value).
Таким образом, возникает функция - диспетчер или сортировщик Fs, опреде-
ляющая алгоритм обработки. Такой подход позволяет расширять, при необхо-
димости, список анализируемых данных или модифицировать методы на учет
другого набора параметров без вмешательства в архитектуру системы.
Согласно иерархии окон анализа, рассмотренной в разделе об иерархи-
ческой агрегации данных, выделим набор функций Fw, отвечающих за их ве-
дение. Каждая такая функция в общем случае характеризуется кортежем
<Timcr, Window, FR> где Timer - значение таймера времени, Window - окно
анализа с которым работает функция, NcxtWindows - следующие в иерархии
окна, действия в которых инициируются по выполнении функции.
FR={Fri,...,Fnn} - фу нкции расчета аналитических значений, выполняемых над
данным окном. Они инициируются функцией F„ при изменении значений
(сдвиге) окна. Функции расчета значений для анализа определяются как
Fr(Par)=Rcs, где Рат- входные параметры функции. Для функции, выполняю
шей формирование минимального окна расчетов Рат- это данные из очередей
параметров, для прочих - данные окон анализа.
1С2
Частичный порядок над функциями в данном случае задастся цепочками
их активизации в соответствии с порядком обработки и определяется как
F,<Fj<Fw<Fr. Определим общий пул функций рассматриваемого этапа обра-
ботки: Г -F -jF, uF, \->F При этом функции Fd и Fr могут выполняться неза-
висимо и параллельно над разными наборами данных. В отношении группы
функций Fw определен внутренний частичный порядок в соответствии с иерар-
хией окон
FH <FW VFr| F^ .Window > FK .Window
Го есть, окнам, находящимся на верхних уровнях иерархии (обладаю-
щим меньшими временными промежутками агрегации) соответствуют функ-
ции более низкого порядка. Зависимость по данным между функциями фор-
мируется на основании порядка и дерева окон агрегации
comaciM) значению
Ключа
—► Патоки данных
’ •, Оперативное хранилище
- * Погони управления
данных
Рисунок 1,40 Общая схема распределения трафика
на этапе предобработки
Вычислительный конвейер рассматриваемого этапа над функциями за-
дастся цепочками их активизации в соответствии с порядком обработки. Об-
щая схема обработки на рисунке 1.40 демонстрирует порядок работы с эле-
ментами (кортежами) потока данных. Для выполнения этих задач выделяются
узлы вычислительного кластера четырех типов:
1. Узлы-сортировщики входного потока данных, выполняющие функ-
цию Fs (тип FS).
2. Узлы - обработчики потока данных извлекающие из кортежей дан-
ных параметры и выполняющие функцию Fd (тип FD).
103
3. Узлы - обработчики окон разных уровней агрегации данных (тип
FW).
4. Узлы расчета аналитических показателей (тип FR).
Входные кортежи данных пакетов и потоков направляются на узлы об-
работчики типа FS. Па них происходит определение типа кортежа данных и
передача соответствующему узлу ID для разбиения кортежа данных по пара-
метрам и занесения параметров в соответствующие разделяемые очереди. Раз-
деление функций сортировки позволяет повысить производительность опера-
ций за счет использования ютовых потоков типа FD при извлечении парамет-
ров. Активация готового потока в многопоточной системе происходит быст-
рее, чем генерация нового потока расчетов[72]. В случае достаточной прои зво-
дитсльноети функции Fs и Fa могут быть объединены в одном вычислительном
узле (модуле). Однако, такой подход ухудшит расширяемость системы за счет
введения новых обрабатываемых протоколов и, как следствие, расширение ти-
пов F<j функций.
По сигналу таймера и генерируется событие - окончание очередного пе-
риода и инициируется цепочка агрегации данных функциями Fw. При необхо-
димости, точнее, сели происходит сдвиг значений соответствующего окна, со-
ответствующая функция Fw инициирует привязанные к этому окну функции -
обработчики.
Вычислительный конвейер обработки элемента потока, или кортежа
вида <Кеу, Valuc> на данном этапе обработки данных состоит из двух незави-
симых частей:
1. Обработка входною потока и формирование очередей параметров.
<fs,fd>
При этом: QeFS - функции сортировки кортежей; faeFD - функции из-
влечения параметров
2. Обработка события - окончания минимального временного периода
агрегации.
<fw,{{Fw,0},Fr}>
При этом: fweFW; - функция ведения минимального окна;
F* I/. Window> WindowVi< j„к-^Windows') - функции ведения окон
агрегации (кроме минимального), где Windows - множество окон агрегации;
FreFR - множество функций расчета аналитических показателей, активируе-
мых при изменении данных соответствующего окна.
2 Танненбаум Современные ОС.
104
Порядок обработки, полученный на этапе формирования конвейера поз-
воляет сформировать граф обработки данных. Функции, обладающие одним
уровнем порядка, могут выполняться параллельно или квазинараллсльно на
вычислительном кластере. При этом перечень параметров для обоих этапов
остается статическим и в самом простом случае ограничивается множеством
tfpiam. fpcpuj, где fpram. - требования к оперативной памяти, fpcpu - требования к
CPU. Граф обработки данных, представляющий собой наборную структуру из
задач обработки, представлен на рисунке 1.41
Выход СН1ГМЫ
Данные переда кием через
промежуд очное хранилище
Аналитические
показатели
хранение
Рисунок 1.41 Граф обработки данных при подготовке к анализу
13 приведенном графе обработки узлы типизированы по описанным ти-
пам функций. Fs(Kc>>- сортировщик выбирающий дальнейшего обработчика в
зависимости от ключа; I d - обработчик, извлекающий параметры в очереди
параметров Qpar={qpi,..., qpcj, где к - число обрабатываемых параметров,
Fw min - функция обработки минимального окна агрегации; Fwi-Fwn - функ-
ции обработки последующих окон агрегации, где п - число окон; Fri-Frm -
функции расчета аналитических показателей, где m - число функций, в соот-
встст вии с числом показателей.
Ребра, отражающие потоки данных, принадлежат нескольким типам:
1. Ребра, безусловно передающие данные между задачами:
<Kcy,Valuc>- передающие кортеж ключ - значение, ZPar=[} - пере-
дающие множество параметров при сдвиге родительского окна с
меньшей степенью агрегации
2. Ребра использующие промежуточное хранение для накопления дан-
ных - Qpar={J. В данном случае происходит накопление очередей
параметров за заданный минимальный промежуток времени.
105
3. Ребра, активизирующиеся при необходимости: если в конфигурации
системы сопоставлено соответствующее окно и функция расчета
аналитических параметров.
Входные данные представляют собой поток кортежей, формализован-
ных в виде ключ - значение на предыдущем этапе. Выходные данные пред-
ставляют собой наборы аналитических параметров для принятия решения о
наличии аномалии трафика
Контрольные вопросы и задания к разделу 1.4
1. Опишите основные папы обработки сообщений и формализуйте выход ь модуль
анализа для рассмотренных типов входных данных в системах обнаружения втор-
жений
2. Рассмотрите дополнительно набор входных данных (геолокационные, данные по
натрузке устройства, события пользовательских действий юти команд, другие).
Представьте их в виде той же формализованной модели.
3. Опишите папы обработки этих данных, включая агрегацию и нормализацию.
4. Опишите взаимодействие подзадач обработки. Составьте траф подзадач.
5. Сформулируйте требования для распределения данных и подзадач на вычисли-
тельном кластере.
Спит ок источников к разделу 1.4
1. I ерт ель В. П., С трою ин, Р. Г. Основы параллельных вычислений для многопро-
цессорных вычислительных систем. Учебное пособие. - Нижний Новгород: Изд-
во НН1У им Н. И. Лобачевского, 2ОиЗ 184 с.
2. Радченко Г. И., Соколинский Л. Б., Шамакина А. В. Модели и методы профили-
рования и оценки времени выполнения потоков работ в суперкомпьютерных си-
стемах // Вычислительные методы и программирование 2013. Т. 14.
3. Foster, 1. (1995). Designing and Building Parallel Programs: Concepts and Tools for
Software Engineering. Reading, MA: Addison-Wesley.
4. Kwok Y.-K. Efficieni Algonihms for Scheduling and Mapping of Parallel Programs
onto Parallel Architectures ' Ph D. thesis / Yu-Kwong Kwok ; The Hong Kong Univer-
sity of Science and Technology. - 1994
5. Poltavtseva M. A., Lavrova, D. S., Pechenkin, A. I. Planning of aggregation and normal-
isation of data from the Internet of Things for processing on a multiprocessor cluster//
Automatic Control and Computer SciencesVolume 50, Issue 8,2016, P. 703-711.
6. Samarev R. S. Survey of streaming processing field. Trudy ISP RAN/Proc. ISP RAS,
vol. 29, issue 1,2017, pp. 231-260.
2. МЕТОДЫ ОБНАРУЖЕНИЯ ВТОРЖЕНИИ
Постоянная эволюция вредоносного про1раммного обеспечения и спо-
собов эксплуатации сетевых атак создает необходимость в разработке и совер-
шенствовании методов обнаружения вторжений. Па рисунке 2.1 представлена
классификация существующих методов обнаружения вторжений.
Рисунок 2.1. Классификация метолов обнаружения вторжений
Описание методов обнаружения вторжений представлено в габл. 2.1
107
Методы обнаружения вторжении в СОВ
Таблица 2.1
Группа методов Описание метода Характеристики метода
Сигнатур- ные методы Осуществляет поиск вредонос- ных символов, форм, строк и шаблонов в сетевом трафике на основе имеющихся сигна- тур сетевых атак в базе данных Прост в реализации. Для сравнения шаблонов можно использовать хэш-функции. Необходимо большое количество правил для определения множества возможных атак. Низкий процент ошибок первого рода. Высокая точность обнаружения вторжений
Поведенче- ские методы Осуществляет анализ сетевого трафика с помощью различных вычислительных алгоритмов обработки информации Необходим большой объем знаний в области математической статистики I (собходимы пре ^вычисления Простой, но неточный. С пособсн работать в режиме реального времени
Искусствен- ный интел- лект Используются методы машин- ного обучения и вычислитель- ного интеллекта для обнаруже- ния аномальной активности. Различают обнаружение втор- жений с помощью классифика- ции и кластсри танин Для алгоритмов классификации необходимы наборы данных для обучения Для алгоритмов кпас гери зации нс существует единой оценки качества обнаружения вторжений. Высокая точность обнаружения вторжений при отсутствии переобучения и правильном подборе параметров для кластеризации
2.1. Сигнатурные методы
Обнаружение вторжений, основанное на поисках сигнатур, исторически
является самым первым и самым простым для реализации методом обнаруже-
ния сетевых атак. Он заключается в выявлении некоторых характерных
свойств атак, их идентифицирующих, и последующем сравнении проверяе-
мого сетевого трафика с ними (см рисунок 2.2). Позволяет однозначно иден-
тифицировать тип сетевого вторжения
108
Рисунок 2.2. Архитемура системы обнаружения вторжений
на основе сигнатур
Преимуществами сигнатурных методов являются высокая производи-
тельность и малое число ошибок второго рода. Главным недостатком является
невозможность идентификации новых сетевых атак, сигнатуры которых от-
сутствуют в базе. Также к недостаткам относятся большой размер базы данных
сигнатур, которой необходимо хранить все возможные характеристики прове-
дения сетевых атак.
2.1.1. Обнаружение вторжений на основе правил
В качестве СОВ, использующей обнаружение атак на основе правил,
рассмотрим Snort. Snort - популярная СОВ с открытым исходным кодом. Snort
имеет большую базу данных правил, которая охватывает большую часть из-
вестных сетевых атак. По мерс обнаружения новых атак, Snort увеличивает
размер базы данных правил.
Одним из главных недостатков Snort и всех СОВ, основанных на сопо-
ставлении сетевою графика с прописанными в базе данных правилами, со-
стоит в том, что все правила в базу данных должны быть записаны вручную
специалистами.
Правило состоит из двух частей: заголовка и опций. Заюловок правила
включает в себя действие, которое должно выполнять в случае срабатывания
109
правила, протокол и другую информацию об отслеживаемом потоке трафика.
Заголовок принимает форму [Действие]. [Протокол] [1Р-адрсс источника] [но-
мер порта источника] —* [IP-адрес назначения] [номер порта назначения].
Опции содержат более 24 различных ключевых слов, например, преду-
преждающие сообщения, которые должны записываться в журнал в случае
совпадения. Также опции могут содержать содержит строку или сигнатуру
атаки, которые должны быть сопоставлены с полезной нагрузкой пакета.
Например, следующее правило Snort может быть прочитано следующим обра-
зом?
alert tep any any any 80 (msg:"WEB-MISC phf attempt";
\contenz:"/cgi-bin/phf"; priority:1C;)
Предупредить системного администратора, выпустив сообщение
"attempt WEB-MISC phf, если любой входящий TCP поток пакетов на любой
адрес с номером порта 80 содержит строку: "/cgi-bin/phf'. Также определяется
уровень риска атаки, который равен 10.
2.1.2. Обнаружение вторжений на основе шаблонов
Для поиска подозрительных сетевых пакетов большинство СОВ исполь-
зуют алгоритм сопоставления шаблонов Алгоритм проверяет наличие сиг на-
туры в последовательности входящих пакетов и выводит местоположение ис-
комых строк внутри пакета. Данный метод обнаружения вторжений должен
быть быстрым и масштабируемым, то есть сохранить работоспособность при
увеличении как числа сигнатур сетевых атак, так и скорости сетевого соеди-
нения.
Алгоритмы сопоставления строк можно разделить на две группы по ко-
личеству сравниваемых с сигнатурами шаблонов В первой группе один шаб-
лон сопоставляется со всем текстом за один раз. При сопоставлении несколь-
ких шаблонов со строкой сравнивается текстовая последовательность со всеми
сигнатурами одновременно. Второй метод является оптимальным выбором
для обнаружения вторжений из-за избегания многократного сканирования па-
кета. Однако он потребляет больше ресурсов памяти и требует предваритель-
ной обработки шаблонов.
110
Контрольные вопросы и задания к разделу 2.1
Предлагается составить правила (ятык Snort или псевдокод) для обнару-
жения следующих типов сетевых атак:
1. Slow Read. Злоумышленник посылает TCP-пакет на сервер с размером
окна, который оказывается меньше запрашиваемою ресурса. Таким обра-
зом у злоумышленника нет места для приема данных. Размер окна может
быть даже нулевым. Тогда сервер пытается послать запрашиваемый ре-
сурс, но у него получается передать только определенное злоумышленни-
ком количество байт. Нарушитель раз в пару минут считывает пару байт
из receive buffer, чтобы TCP-стек послал что-то отличное от нуля, тем са-
мым создав видимость живого соединения для межсетевых экранов и
СОВ. Если забить такими соединениями всю очередь, сервер, соответ-
ственно, начнет отказывать в обслуживании быстрым клиентам.
2. Slow Loris. Злоумышленник пытается открыть много соединений с целе-
вым сервером и держась их открытыми как можно дольше. Это достита-
ется путем открытия соединений с целевым веб-сервером и отправки ча-
стичного запроса. Периодически он отправляет последующие заголовки
HTTP, добавляя, но никогда не завершая запрос. Затронутые серверы бу-
дут открывать эти подключения, заполняя их максимальный параллель-
ный пул соединений, в конечном итоге отрицая дополнительные попытки
подключения от клиентов.
3. 1Р-спуфинг. Злоумышленник скрывает IP-адрес создавая пакеты, содер-
жащие ложные адреса чтобы скрыть данные при соединении, а также при
отправке информации. Если злоумышленнику удается поменять таблицы
маршрутизации и направить трафик на ложный )Р-адрес, то он получит
все пакеты и сможет отвечать на них так, как будто является санкциони-
рованным пользователем.
4. ARP-епуфипг. Злоумышленник, перехватив внутри данного сет мента сети
широковещательный ARP-запрос. может послать ложный ARP-ответ, в
котором объявить себя искомым узлом (например, маршрутизатором), и в
дальнейшем активно контролировать сетевой трафик дезинформирован-
ного узла. Данная атака возможна из-за уязвимости протокола ARP, кото-
рая заключается в следующем: он не проверяет под.тинности ARP-запро-
сов и ARP-ответов. Так как сетевые интерфейсы на компьютерах поддер-
живают самопроизвольный ARP (ARP-ответ присылается на интерфейс
устройства без необходимости), то как раз в таком случае возможна атака
ARP-spoofing.
111
Список источников к разделу 2.1
1 Ьраницкий А. А., Котенко И. В Анализ и классификация методов обнаружения
сетевых атак // Труды СПИИРАН. - 2016 - Т. 2. - №. 45. - С. 207-244.
2 Mudzingwa D., Agrawal R. A study of methodologies used in intrusion detection and
prevention systems (TOPS) //2012 Proceedings of IEEE Southeastcon - IEEE, 2012. -
C. 1-6.
3 Aldwairi M., Abu-Dalo A M., Jarrah M. Pattern matching of signature-based IDS using
Myers algorithm under MapReduce framework Z/ELRASIP Journal on Information Se-
curity. - 2017. - T. 2017. - №. 1. - C. 9.
2.2. Поведенческие методы
Поведенческие методы используют информацию о нормальном функци
онировании системы и сравнивают эти данные для сравнения с наблюдаемым
поведением системы в определенный промежуток времени. С помощью сопо-
ставления нормального и наблюдаемого поведений системы и обнаружения
отклонений с некоторыми пороговыми значениями, СОВ принимает решение
о наличии вторжения
2.2.1. Статистические методы
для обнаружения вторжений
СОВ, использующая статистические методы, основана на построении
модели нормального поведения пользователей в системе. При обнаружении
события, имеющего низкую вероятность появления, СОВ помечает данное со-
бытие как потенциальную атаку.
Дтя обнаружения вторжений используются следующие статистические
метрики:
• медиана;
• математическое ожидание (выборочное среднее);
• дисперсия (стандартное отклонение) и др.
Таким образом, вместо инспекции данных в сетевых пакетах, в статисти-
ческом методе обнаружения вторжений каждый пакет рассматривается как
«отпечаток» поюка сетевого трафика. Статистические СОВ обычно исполь-
112
зуюг одну из следующих моделей: одномерная, многомерная и модель на ос-
нове анализа временных рядов
Одномерные модели
Одномерная модель осущсствляс! поиск аномалий в сетевом 1рафикс на
основе анализа каждой метрики независимо от остальных. Таким образом, для
обнаружения вторжений создастся профиль нормального поведения для одной
статистической переменной.
Рассмотрим простейшие статистические метрики, используемые в одно-
мерных моделях.
Пусть есть случайная переменная х и н наблюдений: х1:.... хп. Необхо-
димо определить, является ли наблюдение хп+1 аномальным по сравнению с
предыдущими наблюдениями.
Выборочное среднее наблюдений считается по формуле (2.1):
X = (2.1)
Выборочное среднее квадратичное отклонение (2.2):
s = х^~+х* - х2 (2.2)
-у п+1
Повое наблюдение хп+1 будет считаться аномальным, если оно нс по-
падает в доверительный интервал: X — Са/2 * -j=< р. < X + Са/2 * оо сте-
пенью надежности 1-а. Коэффициент Са 2 рассчитывается с помощью таб-
лицы значений распределения Стьюдснта с заранее выбранным уровнем зна-
чимости а
Одномерная модель применима к счетчикам событий, таймерам интер-
валов и другим статистическим метрикам, которые характеризуются фиксиро-
ванным временным интервалом или измеряются между двумя событиями.
Незначительное изменение выборочного среднего и стандартного от-
клонения модели может быть использовано для расчета весов вычислений.
В данном случае большие веса присваиваются более редким значениям
Помимо выборочного среднего и стандартного отклонения в качестве
статистик в одномерных моделях могут быть использованы точечные и интер-
вальные оценки. Такие оценки дают возможность прогнозирования будущих
вторжений в сеть на основе прошлых оценок, полученных с помошью методов
статистического прогнозирования.
113
Многомерные модели
Многомерная модель похожа на одномерную, однако в многомерной мо-
дели проводится статистический анализ нс одной переменной, а двух и более.
Многомерная модель может применяться в случаях, когда экспсрименгальньгс
данные могут быть более точно распознаны с помощью анализа комбинаций
некоторых измерений, например: мощность ЦПУ и часть мощности ЦПУ
занята одной npoi раммой, частота попыток аутентификации, время работы се-
анса и г. д.
Для обнаружения вторжений в многомерной модели может быть исполь-
зована множественная регрессия Цель множественной регрессии - опреде-
лить связь между независимой зависимыми переменными. Этот метод позво-
ляет чтобы определить уровень значимости переменных по отношению друг к
ДРУГУ-
Общую форму линейного уравнения с двумя независимыми перемен-
ными можно записать как (2.3):
У = а + bjXj + b2x2 (2.3)
где у - предсказанное значение для зависимой переменной у, а - константа,
bj, b2 - коэффициенты (веса) регрессии, соответствующие независимым пере-
менным X] и х2.
Теоретически, уравнение множественной регрессии можно было бы
расширить, включив в него бесконечное число переменных, но на практике
(из-за вычислительных трудностей) было бы разумно ограничить анализ не-
сколькими переменными. Уравнение множественной регрессии предпола-
гает, что прогнозируемое значение у представляет собой линейную комбина
цию константы и независимых переменных, умноженных на соответствую-
щие им весовые коэффициенты Регрессионный анализ позволяет подобрать
наиболее подходящие значения коэффициентов с помощью метода наимень-
ших квадратов:
2,<Уг - УУ -> min (2.4)
Помимо регрессионного анализа в многомерных моделях систем обна-
ружения вторжений могут быть использованы цепи Маркова, позволяющие
описывать переходы из состояний с помощью матрицы переходных вероят-
ностей. Повое наблюдение будет определено как вторжение, если для него
переходная вероятность, определяемая предыдущим наблюдением, слишком
мала.
114
Модель на основе анализа временных рядов
Модель, функционирующая на основе анализа временных рядов, срав-
нивает наблюдения, собранные за длительный период времени, с текущими
наблюдениями для мониторинга необычных особенностей, а именно: тенден-
ций, сезонных эффектов, циклов и нерегулярности преобладающих данных.
Временной ряд - это последовательность упорядоченных во времени
наблюдений, характеризующих уровень состояния и изменения изучаемого
явления. Всякий временной ряд включает два обязательных элемента: времен
ную отметку и соответствующее ему конкретное значение исследуемого пока-
зателя, или уровень ряда.
Основной чертой, выделяющей анализ временных рядов среди других
видов статистического анализа, является существенноегь порядка, в котором
производятся наблюдения
Классификация временных рядов.
1)ло времени выделяют моментные и интервальные. Интервальный
ряд - последовательность, в которой уровень явления относят к ре-
зультату, накопленному или вновь произведенному за определенный
интервал времени. Если же уровень ряда характеризует изучаемое
явление в конкретный момент времени, то совокупность уровней об-
разует моментный ряд;
2) по форме представления уровней выделяют ряды абсолютных, от
носительных и средних величин. Примеры таких величин: абсолют-
ная — число отправленных пакетов, относительная - процент пакетов
с ошибками, средняя - среднее число пакетов, отправляемых с од-
ного устройства в день;
3) по расстоянию между датами или интервалами времени выде-
ляют полные и неполные временные ряды. Полные ряды имеют ме-
сто, когда даты регистрации или окончания периодов следуют друг
за другом с равными интервалами, неполные - когда принцип рав-
ных интервалов не соблюдается;
4) по содержанию покалателей выделяют ряды частных и агрегиро-
ванных показателей. Частные показатели характеризуют изучаемое
явление односторонне, изолированно. Агрегированные показатели
основаны на частных показателях и характеризуют изучаемый про-
цесс комплексно. В качестве примера частной характеристики
можно рассмотреть число уязвимостей в программе, в качестве аг-
регированной - оценка риска при использовании данной про-
граммы;
115
5) по числу исследуемых рядов в наборе - одномерные и mhoi омерныс
временные ряды. В большинстве случаев, термин «временной ряд»
подразумевает, использование одномерного (скалярного) ряда пока-
зателей. Однако, иногда бывает важно рассмотреть совместную ди-
намику целого набора временных рядов. Такой набор называют мно-
гомерным временным рядом или векторным временным рядом. При-
мер многомерного временного ряда: множество рядов, каждый из ко-
торых содержит показатели от одного из устройств, используемых в
сети;
6) по типу характеризуемого процесса - стохастические и детерми-
нированные ряды. Стохастический процесс - случайный процесс,
под которым понимается статистическое явление, развивающееся во
времени согласно законам теории вероятностей. Детерминирован-
ный процесс - процесс, который принимает заданное значение с ве-
роятностью единица. Например, его значения могут точно опреде-
ляться какой-либо математической функцией, зависящей от момента
времени t. Ряды, соответствующие стохастическим процесса, назы-
ваются стохастическими, соответствующие детерминированным -
детерминированными.
Характеристики временных рядов
В изучении временных рядов существенное внимание уделяется выяв-
лению и анализу закономерностей изменения ряда, его движению на протя-
жении длительного периода. Данная задача является сложной и трудоемкой
в силу наличия множества факторов, влияющих на любое исследуемое явле-
ние. Подобные факторы являются разнонаправленными, поэтому оценить
вклад каждого из них в изменение параметров временного ряда невероятно
сложно.
По характеру непосредственного воздействия эти факторы могут быть
разделены на две группы. К первой группе относятся факторы, опрсдсляюшис
основную тенденцию динамики (рост или снижение уровней). Тенденция со-
ответствует медленному изменению, проходящему в некотором определенном
направлении, которое сохраняется в течение значительного промежутка вре-
мени Тенденцию называют также трендом или долговременным движением.
Вторая группа факторов, вызывающая случайные колебания, отклоняет
уровни от тенденции то в одном, то в другом направлении.
Стоит отмстить, что при исследовании сложных процессов на больших
интервалах времени можно наблюдать иерархию тенденций и колебаний:
116
то, что для времени высокого порядка (например, столетия) выступает как ко-
лебания, на интервале времени низшего порядка (несколько лет) может высту-
пать как тенденция.
Существует множество типов динамик, кот орые можно отнести ко вто-
рой группе факторов:
Циклические колебания - это более быстрая, чем тенденция, квазипс-
риодичсская динамика, в которой есть фаза возрастания и фаза убывания.
Сезонные колебания соответствуют изменениям, которые происходят
регулярно в течение года, недели или суток. Они связаны с сезонами и рит-
мами человеческой активности.
Календарные эффекты - это отклонения, связанные с определенными
предсказуемыми календарными событиями, такими как праздничные дни, ко-
личество рабочих дней за месяц, високосность года и т. п.
Случайные флуктуации - беспорядочные движения относительно
большой частоты, порождаемые влиянием разнородных событий на изучае-
мую величину (несистематический или случайный гффскт).
Выбросы - это аномальные движения временного ряда, связанные с
редко происходящими событиями, которые резко, но лишь очень кратковре-
менно отклоняют ряд от общего закона, по которому он движется.
Структурные сдвиги — это аномальные движения временного ряда, свя-
занные с редко происходящими событиями, имеющие скачкообразный харак-
тер и меняющие тенденцию.
Типы и разновидности тренда
Важно отметить, что существуют несколько разновидностей тренда.
Первым и самим очевидным типом тренда представляется тренд среднего, ко-
гда временной ряд выглядит как колебания около медленно возрастающей или
убывающей величины. Второй тип трендов - это тренд дисперсии. В >том слу-
чае во времени меняется амплитуда колебаний переменной. Третий тип
тренда, визуально не всегда наблюдаемый, — изменение значимости одной из
компонент временного ряда (например, уменьшение величины сезонных ко-
лебаний), или, скажем, изменение величины корреляции между текущим и
предшествующим значениями ряда, т. с. тренд автоковариации и автокорреля-
ции [5].
Ниже приведены варианты аппроксимации тренда [4, 5]. Гренд в момент
времени t обозначен как Tt
Полиномиальный тренд:
тс = а0 + a1t+...+aptp (2.5)
117
Частными примерами полиномиального тренда можно считать прямоли-
нейный (р = 1) и параболический (р = 2) тренды. Параболы III порядка и
более высоких порядков редко применимы для выражения тенденции дина-
мики и слишком сложны для получения надежных оценок параметров при
ограниченной длине временного ряда.
Экспоненциальный тренд:
Tt = eaO+a_U+-+alltV (2,6)
Экспоненциальный тренд характерен для процессов, ратвивающихся в
среде, нс создающей никаких ограничений для роста уровня. Па практике та-
кой процесс может развиваться только на ограниченном промежутке времени,
поскольку любая среда накладывает какие-либо ограничения, поскольку лю-
бые ресурсы со временем исчерпываются.
Гармонический тренд:
rt = Л cos(o>l + <р) (2.7)
В данном случае Л задаст амплитуду колебаний, а ш - угловую частоту,
(р - сдвиг по фазе.
Использование гармонического тренда оправдано, когда в составе вре-
менною ряда отчетливо прослеживаются периодические колебания. При этом
если частота ш известна (или ее можно оценить), то функцию т£ несложно
представить в виде линейной комбинации синуса и косинуса:
Tt = a cositat) + psin(a>t) (2.8)
Гиперболический тренд'
t2
= 1 <2-9)
Подобный тренд характерен для процессов, нацеленных на снижение
объемов потребления какого-либо ресурса (например, энергии, времени). За-
траты ресурса не могут стремиться к нулю, значит, экспонента нс соответ-
ствует сушносги процесса; нужно применить гиперболическую формулу
гренда.
Частными случаями являются тренды, заданные гиперболами вида:
Tt = a + | (2.10)
Логарифмический тренд:
тс = а + ЫпС (2.11)
118
Логарифмы возрастаю! значительно медленнее, чем сами числа (номера
периодов), но рост логарифмов нс ограничен. Подбирая начало отсчета пери-
одов (моментов) времени, можно найти такую скорость снижения абсолютных
изменений, которая наилучшим образом отвечает фактическому временному
ряду.
Тренд, выражаемый логистической функцией:
к
= (2'2)
С ростом С график логистической функции стремится к асимптоте.
Вотом преимущество логистической функции перед полиномиальной или
экспоненциальной функциями, которые по мерс роста L стремятся в бесконеч-
ное! ь и, следовательно, не всегда годятся для прогнозирования.
Обнаружение вторжений на основе анализа вре менных рядов
В данной модели используется статистические меры, учитывающие по-
рядок и время наблюдений X, а также их значения. К таким мерам могут быть
отнесены: интервальный таймер, счетчик событий и др. Повое наблюдение мо-
жет быть отмечено как вторжение, если вероятность его появления в данный
промежуток времени мала.
Преимущество модели на основе анализа временных рядов состоит в
том. что она измеряет тенденции поведения во времени и обнаруживает посте-
пенные, но значительные сдвиги в поведении временного ряда.
Недостатком данной модели является то, что опа является более дорого-
стоящей по сравнению с другими существующими моделями. Кроме того, мо-
жет возникнуть ситуация, когда описывающие временной ряд параметры нс
меняются с течением времени. В подобном случае можно смоделировать вре-
менной ряд с помощью так называемой мультипликативной модели декомпо-
зиции, демонстрирующей тенденции, сезонные эффекты и другие особенно-
сти ряда.
2.2.2. Энтропийный подход
к обнаружению вторжений
Согласно концепции теории информации, часто встречающееся событие
легко предсказуемо и, следовательно, будет предоставлять меньше информа-
ции, когда оно произойдет. И наоборот, событие, которое является случайным
и менее вероятным, будет содержать больше информации В теории пнформа-
119
ции Шеннона вероятность возникновения иобытия наряду с его информацион-
ным наполнением дает средний объем информации, содержащейся в этом со-
бьп ии.
Энтропия - это средний объем информации, содержащейся в каждом со-
бытии. Она показывает неопределенность события и принимает значения тем
больше, чем больше случайность источника. Энтропия для случайного собы-
тия X вычисляется по следующей формуле:
«(X) = -Lp(xi)!ogoPW (2.13)
где p(Xj) - вероятность того, что событие Xпринимает значение хг
Энтропия обладает следующими свойствами:
• Неотрицательность: V р(х,) 6 [0,1] Н(Х) > U
• Симметричность: Ilfpix^) р(х2),...) = Н(р(х2),р(х1),...).
• Ограниченность: HIX') = HfpCXj),.., р(хп)) = нД, >-) logzn.
• Аддитивность: Н(Х * Г) = Н(Х) + Я(У)
13 качестве метода обнаружения вторжений на практике чаше всего при-
меняется энтропия Реньн, которая является параметризацией классической эн-
тропии Шеннона. Энтропия Реньи порядка а определяется как:
Н„(Х) = ^log^^pCx,)" (2.14)
где а > 0. а Ф 1;
X - дискретная случайная величина;
p(Xj) - функция распределения х,.
С помощью преобразований, описанных в работе [9], формула энтропии
Ренье преобразуется к следующему виду (формула Цаллиса):
НаЮ = гЬ- ° (2Л5)
Пример расчета энтропии:
Дана дискретная случайная величина X = ip addresses, в которой
содержатся 1Р-адрсса, наблюдаемые в сети в течение одной минуты.
Х = (192.168.0.1, "192.168.0.2", "192.168.0.3" "192.168.0.4", "192.168.0.5 }.
Частота появления IP-адресов содержится в векторе Freq = {96.1,1,1,1} для
всех пяти адресов соответственно. Рассчитаем вероятность появления каждого
IP-адреса в сети:
120
Таблица 2.2
Вероязззоезь появлении IP-адресов в сети
X 192 16S.0.1 192.168.0.2 192.168.0.3 192.16S.0.4 192 168.0.5
р(Х=х) 0,96 0,01 0.01 0,01 0,01
Рассмотрим наиболее и наименее часто встречающиеся события
р(А = 192.168.0.1) = 0 96 и р(.Х = 192.168.0.2) = 0.01. В качестве парамет-
ров энтропии Цаллиса используются значения а = 2 и а = —2.
Таблица 2.3
Значения энтропии Цаллиса для примера
а = 2 а = -2
p(xf) = 0 96 87.473 34,389
р(х,) = 0 01 0,999 3333
Как видно из проведенных вычислений, влияние более частых событий
(p(Xj) = 0,96) на энтропию больше, чем влияние редких событий (р(х,-) =
= 0,01), при использовании положительных a-значений, и наоборот, влияние
редких событий больше, чем частых событий, когда используются отрица-
тельные а-значсния.
Обнаружение вторжений на основе энтропийного метода предполагает
натичис двух этапов: обучение и обнаружение. Па этапе обучения строится
профиль поведения легитимного трафика в сети и подгозавпивастся модель
для классификации. 1 акже на данном этапе строится динамический профиль с
использованием минимальных и максимальных значений энтропии в скользя-
щем временном окне для каждой пары (параметр трафика, а). Таким обра-
зом позволяется отслеживазь изменения графика в течение наблюдаемого про-
межутка времени. Однако в го же самое время обеспечивается погрешность
для некоторых незначительных различий, например, небольшие задержки
между профилем лсз итззмного трафика и текущим трафиком. Способ ностро-
ензтя профиля на основе значений энтропии представлен на рисунке 2.3.
Па этапе обнаружения проводится сравнение текущего наблюдения с по-
строенной ранее моделью. Это происходит следующим образом: наблюдаемая
энтропия сравнззвастся с минимальными и максимальнымзз значениями, рас-
считанными в профиле, согласно следующему правзтлу:
гя(х,) =
Ha(xj)—k*min
к* (max-min)
к G [1,2]
(2.16)
121
размер окна
Рисунок 2.3. Построение профиля легитимного трафика
С помощью этого правила определяется порог, превышение которого
параметрами сетевого трафика будет отмечено как аномальное поведение.
Значения гя(Х;) < 0 или га(х^) > 1 указывают на аномальную концентрацию
или дисперсию, что характерно для аномалий. 11апримср. во время сканирова-
ния портов должна наблюдаться высокая дисперсия в номерах портов и высо-
кая концентрация в адресах.
Обнаружение вторжений основано на вычислении значения энтропии
относительно расстояния между min и max. Коэффициент к в формуле опре-
деляет границу между минимальным и максимальным значениями и может
быть использован для настройки. Высокое значение к. например, к = 2, огра-
ничивает количество ложных срабатываний (срабатываний, в которых не было
обнаружено аномалий), в то время как низкое значение (к = 1) увеличивает
точность обнаружения (процент правильно обнаруженных аномалий).
Были также приняты во внимание другие подходы к установлению по-
рот ового значения, основанного на срсднсквадрат ичсском отклонении,
• стандартное отклонение: выборочное среднее ± 2*среднес квадра-
тичное отклонение;
• медианное абсолютное отклонение: медиана ± 2 * медианное абсо-
лютное отклонение.
Однако экспериментальные результаты, представленные в [9]. показали,
что предлагаемое правило является наиболее оптимальным.
122
2.2.3. Спектральный анализ
для обнаружения вторжений
Спектральный анализ позволяет выделять наиболее значимые компо-
ненты сетевою трафика посредством изменения размерности исходною про-
странства признаков. По исходным данным строится ковариационная матрица
при помощи одной из следующих методов: метод главных компонент, гусе-
ницы или сингулярного спектрального анализа.
Н основе спектрального анализа лежит утверждение, что полученные
компоненты аномального трафика будут отличаться от компонент нормаль-
ного трафика В результате главные компоненты будут отобраны на основе
значений их дисперсий. Остальные компоненты могут быть рассмотрены как
составляющие шума.
Отдельно может быть выделено направление спектрального анализа гра-
фов, моделирующих сетевую инфраструктуру. Как известно, способы задания
графа подразделяются на графический и аналитический. Графический способ
является более наглядным, что позволяет быстро анализировать его структуру.
Однако такой метод является менее удобным и более громоздким при машин-
ном восприятии. В связи с этими недостатками были предложены аналитиче-
ские способы задания
Первый способ заключается в перечислении вершин и связанных с ними
подмножества других вершин графа.
Второй способ задания графа G с N вершинами и М ребрами заключа-
ется в использовании матрицы инцидентности, состоящей из N строк и М
столбцов. Значения элементов матрицы инцидентности показывают наличие
инцидентности между вершиной и ребром.
Третий способ подразумевает задание графа с помощью матрицы смеж-
ности. Матрица смежности Л графа G с N вершинами состоит из W строк и Л
столбцов. Элемент матрицы atJ равен числу ребер, идущих из вершины V, в
вершину Vj.
Граф может быть также задан с помощью матрицы Кирхгофа К, которая
представляет собой дискретный оператор Лапласа для графа. Матрицу
Кирхгофа можно представить как К = D — А, где D — матрица, на главной
диагонали которой степени вершин графа, а А - матрица смежности.
Свойства матриц смежности и Кирхгофа с помощью анализа собствен-
ных значений, векторов и характеристических полиномов исследуются в спек-
тральной теории графов (СТГ). СТГ исследует инвариант графа - спектр, ко-
123
горый представляет собой множество собственных значений матрицы смеж-
ное! и (также рассматривают с. з. матрицы Кирхгофа).
Следует отмстить, что из совпадения спектров графов нс следует их изо-
морфность, а неизоморфные графы с равным спектром называются коспек-
гральными.
Спектр графа тесно связан со структурными свойствами графа:
1. Второе из минимальных собственных значений матрицы Кирхгофа
1рафа является его алгебраической свя зностью.
2. Неравенство Нигера: < h(G) < y/Zk^k — Л2), где h(G) — число
Нигера (оценивает, если ли в графе «узкое горло»), а А2 — с. з. мат-
рицы Кирхгофа.
3. Кратность нуля с. з. (неориентированного графа) равна числу компо-
нент связности.
4. Кратность нуля с. з. (неориентированного графа) беззнаковой .мат-
рицы Кирх! офа равно числу компонент двудольности.
5. 1раф двудольный только и только тогда, когда с. з. матрицы
Кирхгофа равны с. з. беззнаковой матрицы Кирхгофа.
Таким образом, по спектру графа исследователь может делат ь выводы
о структуре графа, нс обращаясь к трудоемким алгоритмам. А мониторинг
структурных изменений графа, моделирующего крупномасштабную сеть,
позволит своевременно обнаружить ряд сетевых вторжений, проявляю-
щихся как удаление старых связей между вершинами, появление новых свя
зей, а также изменение значений метрик центральности отдельных вершин
графа.
2.2.4. Фрактальный анализ
для обнаружения вторжений
Опишем имеющийся временной ряд как множество пар {value, time),
= ( > (^2' ' )-•••> 'Д^п). Далее будем обозна-
чать значения полученного дискретною ряда следующим образом:
xti'ti(time1),xti’ti{time2), ...,х1‘11(С1теп).
Для ряда систем, выполняющих периодические процессы, параметры
которых инвариантны во времени, можно использовать подход, основанный
на предположении о том, что временные ряды самоподобны. В таком случае
124
выделенный временной ряд может быть рассмотрен как стационарный ряд,
чьи характеристики инварианты относительно временных сдвигов
-* M(time + Atnne), (2.17)
где Afime действительное и целочисленное.
Инвариантность характеристик позволяет предположить, что временной
ряд At. tj сохраняет свою структуру, то есть, обладает свойством фрактально-
сти или самоподобия.
Рассматриваемый метод позволяет выявлят ь аномалии на основе оценки
самоподобия. То есть, если ряд теряет свое свойст во самоподобия, это сигна-
лизирует о возможной аномалии, проявляющейся в параметрах временного
ряда Для реализации метода требуется выделить показатели, отражаю-
щие степень самоподобия процесса. Метод реализует:
• вычисление значения коэффициент а Херста //, являющегося индика-
тором степени самоподобия процесса;
• построение графика автокорреляционной функции, для чего требу
стся вычислить коэффициент корреляции между текущими и преды-
дущими значениями ряда (ось ординат) и определить величину вре-
менного сдвига (ось абсцисс);
• вычисление тангенса угла наклона логарифмированной автокорреля-
ционной функции р. связанного с коэффициентом Херста соотноше-
нием: Р = 2 - 2Н;
• построение графика главной компоненты после применения метода
главных компонент для единовременного учета нескольких показа-
телей исследуемою процесса.
Для вычисления значения коэффициента Херста, обозначаемого Н, мо-
жет быть использована статистика нормированного размаха или R/S стати-
стика. Для этого необходимо вычислить размах R ряда, представляющий со-
бой разность между максимальным и минимальным значением ряда, и стан-
дартное отклонение ряда 5
R = птах (ХГ=1(х. -ALp) - min (Е^Дх, -Хф) (2.18)
1<U<N н 1<U<N ‘
5 = ^Г=1(х£-Хф)2 (2.19)
где = у—представляет собой среднее арифметическое ряда
наблюдений за N периодов.
125
Тогда показатель Херста Н вычисляется следующим образом:
H = log-^- (2.20)
& log! aw) '
где а - заданная константа, а > 0.
Возможно самостоятельное получение эмпирических значений кон-
станты а, однако Херстом для сравнительно краткосрочных временных рядов
было получено значение а = Таким образом, для краткосрочных временных
рядов формула для вычисления значения коэффициента Херста принимает
вид:
Н = 10g<) (221)
И звесгно, что для того, чтобы процесс считался самоподобным, нсобхо
димо. чтобы показатель Херста Н принимал значения от 0,5 до 1. Для случая,
когда вычислять значение показателя Херста по формуле (13) неудобно или нс
обеспечивает достаточную точность в связи с эмпирическим значением кон-
станты а, .для получения значения также может быть использована автокорре-
ляционная функция г (Ji).
Тангенс угла наклона логарифмированной автокорреляционной функ-
ции р также может быть рассмотрен как показатель фрактальности, при этом
он связан с коэффициентов Херста соотношением р = 2Н — 2.
Помимо свойства самоподобия, график автокорреляционной функции
отразит характерные времена для исследуемого временною ряда, а также
нарушения периодичности, которые, являются одним из при знаков нарушения
безопасности.
Данный метод в первую очередь ориентирован на анализ парных отно
шений, однако он позволяет также отследить потенциальные аномалии в дан-
ных и при значительном числе факторов Для этого метод реализует сокраще-
ние размерности данных, переходя к анализу отношений между различными
показателями с использованием метода главных компонент. После примене-
ния метода главных компонент анализ многомерной случайной величины сво-
дится к анализу одномерной. О выявлении аномалий, которые могут харакзе-
ризова!ь потенциальные нарушения безопасности, можно судить по графику
зависимости значений главной компоненты от времени.
126
Контрольные вопросы и задания к разделу 2.2
1 Рассчитать значение энтропии Цаллиса для сетевого трафика, в котором заме-
чены следующие IP-адреса: {10 0 01,10.0.02,10.0 03,10 0.08,192.168 100.1}
с частотами появления {5,4.8 2,98} соответственно. Сделать вывод о наличии
атаки.
2. Чем отличается одномерная модель обнаружения вторжений от многомерной
модели?
3. Какие существуют типы трендов временных рядов?
4. Предположить, какие сетевые процессы могут быть самоподобны.
Список источников к разделу 2.2
1. Браницкий А. А., Котенко И. В. Анализ и классификация методов обнаружения
сетевых атак // Труды СПИИРАН. - 2016. - Т. 2. - № 45. - С. 207-244.
2. Denning D. Е. An intrusion-detection model И IEEE Transactions on software engi-
neering. - 1987. - № 2. - C. 222-232.
3. Goonatilake R., Herath S., Herath A. Probabilistic models for anomaly detection based
on usage of network traffic // Journal of Information Engineering and Applications. -
2013 - T. 3. - № 9. - C. 28-40.
4. Афанасьев В H., Юзбашев М. М. Анализ временных рядов и прогнозирова-
ние - М.: Финансы и статистика, 2001. - 228 с.
5 Васенкова Е. И., Абакумова Ю. Г. Эконометрика и npoi нозирование. Курс лек-
ций. Белорусский гос. ун-т, экономический факультет. URL: httpi'/bseu.by/
russian faculty5/stavdocs/4/ EconometricsBook3.pdf.
6. Суслов В. И., Ибрагимов Н. М., Талышева Л. П., Цыплаков А. А. Эконометрия:
Учебное пособие. - Новосибирск: Изд-во СО РАН, 2005. - 744 с.
7. Bruce L. Bowerman and Richard T. O'Connell, Forecasting and Time Series: An Ap-
plied Approach, Third Edition, Duxbury Thomson Learning, 1993.
8. Tom Carter, «An introduction to information theory and entropy». - Complex Systems
Summer School - Santa Fe, Aug 2014. - p. 139.
9. Berezinski P., Jasiul В , Szpyrka M. An entropy-based network anomaly detection
method // Entropy. - 2015. - T. 17. -№ 4. - C. 2367-240S.
10. Тренотин H. Г., Соколов Д. E. Фрактальные свойства сетевого трафика в клиент-
серверной информационной системе И Вести. НИИ Сибир. toe ун-та телекомму-
никаций и информатики.-Новосибирск: Изд-во СибГУТИ, 2003 - С. 163-172.
11. 1 ирик А. В. Обнаружение информационных угроз безопасности передачи дан-
ных в телекоммуникационных сетях // Тез. докл. XV Всерос. науч.-метод. конф.
«Телематика-2008», Санкт-Петербург, 23-26 июня 2008 г. - С. 178.
12. Локтев А. А., Запетдинов А. В. Использование фракталов в задачах обеспечения
информационной безопасности // Вестник Тамбовского университета. Серия
«Естественные и технические науки». 2010. Гом 2, вып. 2. С. 442-447.
127
13. Федорова М. Л., Леденева 1. М Об исследовании свойства самоподобия ipa-
фика мулыисервисной сели. URL: http://www.veslnik. vsu.ru/pdf/analiz/2010/
01/2010-0 l-09.pdf.
14. Лаврова Д. С., Зетжда Д. П., Зегжда II. Д., ПИьтркина А. А. Оценка киберустой-
чивости информационно-технологических систем на основе самоподобия .7 Ма-
териалы 25-й научно-технической конференции «Методы и технические сред-
ства обеспечения безопасности информации». - Сиб.: Изд-во Политехи. Ун-та,
2016.-С. 101-104.
15. Дейнеко Ж. В., Замула А А., Кириченко Л. О., Радивилова Т. А. Об одном ме-
тоде моделирования самоподобного стохастического процесса // BicH. Харк
нац. ун-ту ты. В. Н. Каразтна. Сер. «Математичке моделювання». Тнформащй
нттехнологп. Автомат юваш системиуправ нння. - 2010. № 890. вип. 13. -
С. 53-63.
16. Петров В В., Платов В В Исследование самоподобной структуры телетрафика
беспроводной сети // Радиотехнические тетради. 2004. № 30. С. 58-62.
17. Поздняк И. С., Буранова М. А. Исследование сетевого графика на степень само-
подобия. Методические указания «Исследование сетевого трафика на степень
самоподобия». - Самара: Изд-во Поволжскою государственного университета
телекоммуникаций и информатики, 2013. - 17 с.
18. Шибаева Е. С. Сравнение методов анализа показателя Херста для фрактального
сетевого трафика. - http://www.mce.su/archive/ doc97687/doc pdf.
2.3. Методы искусственного интеллекта
Искусственный интеллект (artificial intelligence) - ИИ (АТ) определяется
как способность автоматических систем имитировать человеческие интеллек-
туальные процесса. Например, выбор и принятие оптимальных решений на ос-
нове ранее полученного опыта и анализа внешних воздействий.
Выделяются два подхода к проблеме ИИ: конвенционный ИИ и вычис-
лительный ИИ. Конвенционный ИИ предполагает машинное самообучение на
основе статистического анализа и формализма. Вычислительный ИИ исполь-
зует итеративнувт разработку и обучение на эмпирических данных.
Методы конвенционного ИИ реализуются в следующих подходах и си-
стемах:
• Экспертные системы.
• Рассуждение по аналогии (Case-based reasoning).
128
• Байесовские сети доверия.
• Поведенческий подход.
Основные методы вычислительного ПИ:
• Нейронные сети
• Нечеткие системы.
• Эволюционные вычисления
2.3.1. Обнаружение вторжений
на основе классификации
Под классификацией в теории обнаружения вюржений понимается
1руппировка данных сетевого графика на основе их общих признаков Клас-
сификация представляет собой машинное обучение с учителем, что означает,
что алгоритм классификации перед обнаружением вторжений должен быть
обучен на тренировочных наборах данных.
Искусственные нейронные сети
Искусственные нейронные сети (ИНС) - эго совокупность методов ма-
шинного обучения, в основе которых лежит поведение нейронов цсн1ральной
нервной системы человека
ИНС используются в широком спектре классификационных задач во
многих прикладных областях, в том числе и в задаче обнаружения сетевых
вюржений. В последнее время ИНС привлекли значительное внимание среди
других методов машинного обучения из-за относительно лучшей производи-
тельности с большими наборами данных среди других методов классифика-
ции данных.
Нейроны в МПС распределены по слоям. Всего существует три типа
слоев. Первый тип слоя - это входной слой, в котором количество нейронов
равно количеству параметров, характеризующих исходный набор данных.
Второй тип слоев - выходной слой, который имеет количество нейронов, рав-
ное количеству выходов. В случае с обнаружением вторжений зто могут бьпь
два нейрона (бинарная классификация) или столько нейронов, сколько атак в
наборе данных (многоклассовая классификация). К этим слоям добавляется
третий тип уровней, который является скрытым для обеспечения гибкости то-
пологии ИНС. Количество скрытых слоев, а также количество нейронов в каж-
дом слое настраивается в соответствии с потребностями нейронной сети. Ар-
хитектура нейронной сети представлена на рисунке 2.4.
129
Рисунок 2.4. Архитектура нейронной сети
Эволюционные алгоритмы
Наиболее распространенным представителем эволюционных алгорит-
мов, использующимся в задачах обнаружения сетевых атак, является генети-
ческий алгоритм. Рассмотрим принцип работы эволюционных методов на при-
мере генетического алгоритма.
Генетический алгоритм является методом поиска решения, основанным
на механизмах естественного отбора и наследования. В основе генетического
алт оритма лежит принцип выживания наиболее приспособленных особей.
Выделяют следующие основные характеристики генетических алгорит-
мов'
• обработка закодированных параметров задачи;
• поиск решения осуществляется не из одной точки, а и з некоторого
множества исходных точек;
• дтя поиска решения достаточно наличия исходной популяции и це-
левой функции;
• применение вероятностных правил выбора.
В настоящее время генетический алгоритм широко используется в со-
временных СОВ для обнаружения сетевых атак.
Классический генетический алгоритм имеет схему (рисунок 2.5) и со-
стоит из следующих шагов
1. Инициализация (выбор исходной популяции хромосом): отбор необ-
ходимого количества особей.
2. Оценка приспособленности хромосом в популяции с помощью целе-
вой функции. Вид целевой функции определяется характером реша-
емой задачи, а значения целевой функции всегда положительны.
130
3. Проверка условия остановки алгоритма. Условие остановки алго-
ритма зависит от области и способа применения генетического алго-
ритма. Чаще всего используются либо достижение установленного
оптимального значения, либо отсутствие улучшения полученного
результата.
4. Селекция хромосом. Этот этап проводится на основе вычислен-
ных значений целевой функции по принципу выживания особей
с наибольшим значением целевой функции. 1! большинстве случаев
в качестве метода селекции выбирается метод рулетки, каждой хро-
мосоме сопоставляется сектор колеса рулетки, величина которого
пропорциональна значению целевой функции. Такое распределение
хромосом увеличивает вероятность выбора наиболее приспособлен-
ной особи. Соответственно, селекция происходит с помощью «пово-
рота» колеса рулетки, выбранная хромосома соответствует выпав-
шему сектору колеса.
Инициализация - выбор
исходной популяции
ХРОМОСОМ
Рисунок 2.5. Схема работы генетического алгоритма
131
5. Применение генетических операторов скрещивания и мутации.
Скрещивание позволяет формировать новую популяцию потомков с
помощью скрещивания пар родительских особей в соответствии с
конкретным алгоритмом скрещивания. После проведения селекции
и скрашивания возникает популяция потомков, по численности рав-
ная текущей [J]. Оператор мутации е некоторой вероятностью изме-
няет значение гена в хромосоме на противоположное. Такая вероят-
ность обычно очень мала.
6. Формирование новой популяции потомков. Особи, получавшиеся в
результате генетических операторов, включается в состав новой по-
пуляции. Далее повторяются все итерации генетического алгоритма
с новой популяцией особей.
7. Выбор наиболее приспособленной хромосомы. Если выполнено
условие остановки алгоритма, что выводится результат работы.
Наиболее приспособленной считается хромосома с найденным экс-
тремумом функции (максимальное или минимальное значения).
Деревья решений
Деревья решений - совокупность алгоритмов принятия решений для за-
дач классификации и регрессионного анализа. Дерево представляет собой
набор веток (атрибуты, от которых зависит целевая функция), листьев (значе-
ния целевой функции) и промежуточных узлов. Для классификации каждого
нового наблюдения необходимо спуститься по дереву от корня до листа и вы-
вести соответствующее решение.
Существуют несколько методов построения деревьев решений из исход-
ного набора данных.
Бзггинг строит несколько деревьев решений из исходного набора дан-
ных независимо друг от друга. Входные значения для каждого дерева могут
повторяться Для принятия решения используется усредненный ответ всех де-
ревьев в лесу. Ошибки каждого дерева не исправляются другими деревьями,
а компенсируются при голосовании.
Бустинг - процедура последовательного построения деревьев решений,
в которой ошибки каждого предыдущего дерева исправляет следующее по
очереди дерево. В результате получается композиция алгоритмов, минимизи-
рующая все возникающие ошибки Результатом классификации становится
вердикт последнего дерева в лесу, так как считается, что его ошибка мини-
мальна по сравнению с остальными деревьями.
Рассмотрим более подробно алгоритмы бэггинга и бустинга.
132
Алгоритмы бзггинга (Random Forest)
Алгоритм Random Forest является одним из наиболее универсальных и
эффективных алгоритмов машинного обучения, применяемым для задач
классификации. Суть метода заключается в построении ансамбля парал-
лельно обучаемых независимых деревьев решений. Классификация происхо-
дит с помощью голосования всех входящих в ансамбль деревьев решений
(рисунок 2.6).
Рисунок 2.6. Принятие решения алгоритмом Random Forest
Алгоритм Random Forest обладает следующими присущими деревьям
решений характеристиками:
• отсутствие необходимости предобработки входных данных;
• обработка вещественных и категориальных параметров;
• возможность работы с отсутствующими переменными.
Ллг оритм построения дерева решений строит разбиение пространства па-
раметров на нспсрссскающисся области. Каждому узлу дерева соответствуют
некоторая область пространства параметров и правило, по которому осуществ-
ляется ее разделение на две области, приписанные к дочерним вершинам. Со-
гласно работе Половинкина Л. II. «Алгоритмы классификации изображений с
большим числом категорий объектов», задача построения оптимального дерева,
минимизирующего ошибку на обучающей выборке при заданном ограничении
на его размеры, является NP-полной и для обучения данной модели использу-
133
елся жадная стратегия максимального уменьшения функции, описывающий не-
однородность данных
Обучение модели Random Forest состоит из независимого построения
решающих деревьев по следующему алгоритму:
1) создастся случайное подмножество из обучающей выборки (размер
данного подмножества обычно составляет 5О-"7О % от размера всей
обучающей выборки);
2) строится дерево решений по данному подмножеству (причем в каж-
дом новом узле дерева переменная для разбиения выбирается нс из
всех параметров, а из случайно выбранного их подмножества не-
большой мощности);
3)алгоритм повторяется до достижения необходимого количества де-
ревьев в ансамбле.
Так как алгоритм Random Forest предназначен для задач классификации
объектов, его можно применить для задачи обнаружения сетевых атак. В ра-
ботах [8, 9J рассматривается данный подход и демонстрируется высокая точ-
ность обнаружения сетевых атак.
Алгоритмы бустинга (Градиентный бустинг)
Градиентный бустинг - алгоритм машинного обучения, который строит
дерево предсказания в виде ансамбля слабых предсказывающих деревьев Рас-
смотрим более подробно процесс создания ансамбля предсказывающих дере-
вьев и минимизации возникающей в этом процессе ошибки
Пусть имеется модель, в которой в качестве ошибки используется сред-
неквадратичная ошибка:
MSE(a, X) = |ELi(aOi) “ У,)2 (2.22)
Дтя начала обучается первое неглубокое решающее дерево:
fei(x) = |Й=1(У;)г (2-23)
Второе решающее дерево должно бьпь обучено таким образом, чюбы
композиция первого и второго деревьев имела наименьшую из возможных
ошибку в строящейся композиции. Таким образом, достигается улучшение ка-
чества работы дерева btc помощью дерева Ь2
В градиентном бустингс строящаяся композиция является суммой, что
объясняется последовательным обучением алгоритмов с корректировкой оши-
бок предыдущих:
aw(x) = ELibn(x) (2.24)
134
Обучение деревьев происходит последовательно. Пусть обучены N — 1
деревьев Ьг{х),..., Ьн-^х"), то сеть имеет место композиция вида:
«w-iW = П=1 bnW-
(2.25)
К текущей композиции необходимо добавить еще одно дерево bw(x) и
обучить его таким образом, чтобы получившаяся на предыдущих шагах
ошибка была наименьшей из возможных:
+ й0д)) -» min-
D
(2.26)
Вектор s = Sj.S( - вектор сдвигов bN{x) = 5, таких, что что ошибка
минимальна или функция F(s) стремится к своему минимальному значе-
нию:
F(s) = £l[=1L(,yi.UN-i(Xi) + St) -» min.
s
(2.27)
Так как направление самого быстрого убывания функции задастся
направлением антиградиента, то в качестве вектора з можно взять антигради-
ент функции:
Компоненты вектора сдвигов з, являются теми значениями, которые на
объектах обучающей выборки должно принимать дерево hw(x), чтобы мини-
мизировать ошибку строящейся композиции.
Так как информация о функции потерь L(y,z) содержится в выражении
для вектора оптимального сдвига з, го для большинства задач при обучении
bN(x) можно использовав квадратичную функцию потерь
Алгоритм 2 работы градиентного бустинга.
1. Инициализация композиции при помощи построения первого дерева
решений а0(х) = /?0(х).
2. Пока не выполнен критерий остановки:
а. Пайти вектор сдвига з.
Ь. Построить дерево b„(x) = argminb-Й=1(Ь(х;) — 3;)z , подо-
брав оптимальные параметры для получения близких к з значе-
ний.
с. Добавить Ьп(х) в компошцию:
Заж(х) = Хт=1Ьж(х).
135
В качестве функции потерь для задачи классификации используется ло-
гистическая функция потерь’
5X1 logf1 + ехр(-у,а(х,))) (2.29)
где а(х) — оценка принадлежности к классу.
2.3.2. Обнаружение вторжений
на основе кластеризации
Рассмотрим задачу кластеризации (обучение без учителя), которая мо-
жет быть использована для обнаружения вторжений в случае отсутствия раз-
меченных наборов данных. Имеется обучающая выборка X = {xj ...,Х(]
и функция расстояния между объектами р(х,х'). Требуется разбить выборку
на неперсескающисся подмножества, называемые кластерами, так, чтобы каж-
дый кластер состоял из объектов, близких по метрике р, а объекты разных кла-
стеров существенно отличались. При атом каждому объекту х1 6 X приписы-
вается метка (номер) кластера у,.
Алгоритм кластеризации - это функция f: X -» Y, которая любому объ-
екту х ЕХ ставит в соответствие метку кластера у Е Г. Множество меток Г в
некоторых случаях известно заранее, однако чаще ставится задача определить
оптимальное число кластеров, с точки зрения того или иного критерия каче-
ства кластеризации.
Решение задачи кластеризации принципиально неоднозначно, и тому
сеть несколько причин. Во-первых, нс существует однозначно наилучшего
критерия качества кластеризации. Известен целый ряд достаточно разумных
критериев, а также ряд алгорит мов, нс имеющих четко выраженного критерия,
но осуществляющих достаточно разумную кластеризацию «по построению».
Вее они могут дават ь ра зныс результаты. Во-вторых, число кластеров, как пра-
вило, неизвестно заранее и устанавливается в соответствии с некоторым субъ-
ективным критерием. В-третьих, результат кластеризации существенно зави
сит от метрики р, выбор которой, как правило, также субъективен и определя-
ется экспертом.
Кластеризация (обучение без учителя) отличается от классификации
(обучения с учителем) тем, что метки исходных объектов _V; изначально нс за-
даны, и даже может быт ь неизвестно само множество I’. В этом смысле задача
кластеризации ещё в большей степени некорректно поставленная, чем задача
классификации.
136
Методы кластеризации могут быть разделены на два класса:
1. Иерархическая кластеризация
Характеризуется последовательным объединением маленьких и разде-
лением больших кластеров. Подразделяется на две группы методов: агломсра-
гивиые и методы раскола.
Агломсративпыс методы выполняют последовательное объединение ис-
ходных элементов и уменьшение количества кластеров. Сначала все исходные
элементы разделены в различные кластеры. На каждой итерации происходит
объединение наиболее схожих элементов в общий кластер. Выполнение алго-
ритма заканчивается при образовании одного кластера.
Методы раскола работают противоположным образом. В начале работы
алгоритма имеется один исходный кластер, который в дальнейшем разделя-
ется на несколько меньших по размеру кластеров.
2. Неиерархичеекая кластеризация
Характеризуется созданием некоторого количества кластеров, находя-
щихся на больших расстояниях друг от друга.
Самым распространенным алгоритмом нсисрархической кластеризации
является алгоритм k-срсдних (k-means).
Метод к-средних
Метод к-средних разделяет и наблюдений на к кластеров на основе
того, насколько близко каждое из и наблюдений находится к центру ближай-
шего кластера. В качестве функции расстояния используется Евклидово рас-
стояние:
р(х,у) = ||х -у|| = A.'Z'l/Xi -у,)2 (2.30)
Пусть имеется п наблюдений xv ... ,хп Разделим п наблюдений на
к групп (к < т). Обозначим полученные группы S = (З).... Sk). Формула ми-
нимизации суммарного квадратичного отклонения точек кластеров от центров
этих кластеров (центроидов):
-Д^Г], (2.31)
где pt - центроид для кластера 5).
Алгоритм к-средних.
1. Выбрать количество кластеров к, определить меру близости до цен-
троидов. Необходимо определить центроиды кластеров.
2. Построим первоначальное кластерное разбиение сходных данных:
51(... Sk с центроидами plt Па первом этапе выбор центрои-
дов происходит либо случайным образом, либо по заранее опрсдс-
137
ленному правилу (например, выбрать центроиды, максимизирующие
начальные расстояния между кластерами).
3. Сопоставить наблюдения с ближайшими кластерами на основе рас-
стояния от наблюдения до центроида кластеров Необходимо учесть,
что каждое наблюдение может при надлежать только одному кла
стеру.
4. Вычислить новые значения центроидов каждого г-го кластера
5. Повторять итерации алгоритма до тех пор, пока значения центроидов
не перестанут меняться.
Выбор числа кластеров основан на проведении некоторого количества
предварительных экспериментов или исследований. Неправильный выбор
первоначального числа кластеров может привести к некорректным результа-
там.
Достоинства данного метода: простота использования, высокая скорость
работы алгоритма.
Недостатки: небольшой объем обрабатываемых данных, чувствитель-
ность к выбросам, искажающим среднее, необходимость в предварительных
экспериментах для определения количества кластеров
2.3.3. Обнаружение вторжений
с использованием машины Цетлина
Машина Цетлина часто используется в медицине в задачах распознава-
ния образов, в святи с чем вотникла идея ее применения для решения задачи
обнаружения сетевых атак, которая также может быть сведена к задаче распо-
знавания образов. Машина Цетлина представляет собой новый метод машин-
ного обучения, сочетающий быструю сходимость с низкой вычислительной
сложностью, и этот метод рапсе не применялся для решения задач из области
информационной безопасности.
Автоматы Цетлина были использованы для моделирования биологиче-
ских систем и вызвали значительный интерес, поскольку они могут изучать
оптимальное действие при работе в неизвестных случайных средах. Кроме
того, они сочетают быструю и точную сходимость с низкой вычислительной
сложное гью.
138
Автомат Цеглина является одним из решений известной проблемы мно-
горукого бандита. Он выполняет действия последовательно в среде, и каждое
действие вызывает либо возназражденис, либо штраф. Действие ar, г Е {1,2},
во зназ раждастся вероятностью рг, в противном случае, оно наказывается
штрафом. Вероятности вознаграждения неизвестны автомату и могут изме-
няться с течением времени. В таких сложных условиях цель состоит в том,
чтобы определить действие с наибольшей вероятностью вознаграждения, ис-
пользуя как можно меньше попыток.
Как показано на рисунке 2.7, автомат Цеглина - это фиксированный ко-
нечный автомат со следующей интерпретацией:
• текущее состояние автомата определяет, какое действие выполнять.
Автомат на рисунке имеет 2N состояний. Действие 1 (aj) выполня-
ется в состояниях с индексом 1 до N, в то время как действие 2 (а2)
выполняется в состояниях с индексом N + 1 до 2N;
• переходы состояний автомата управляют обучением. Один набор
переходов состояний активируется на вознаграждение (сплошные
линии), а один набор переходов состояний активируется на штраф
(пунктирные линии). Как видно, возназраждения и наказания запус-
кают определенные переходы из одного состояния в другое, предна-
значенные для усиления успешных действий (тех, которые вызы-
вают вознаграждение).
Рисунок 2,7. Автомат Цеглина с двумя действиями
Формально автомат Цстлина с двумя действиями можно определить как
кортеж из пяти элементов: {Ф_,а,Р FQS), (/(•)}
Ф = Фгн) ~ множество внутренних состояний, а =
= {av a множество действий автомата./? = вознаграждение Рштраф) “ '1Т0
набор входных данных, которые могут быть даны автомату. Функция выход,
139
G(<pu), определяет следующее дейетвис, выполняемое автоматом, учитывая
текущее еостояние автомата <рш:
i снесли! < и < N
С1'<ри) ~ (а2,если/У + 1 < и < 2N
(2.32)
Наконец, функция перехода, F(.<pu,pv), определяет новое еоетояпие ав
томата из: текущего еоетояння автомата <ри и реакции, окружающей среды
надсйовис, выполняемое автоматом:
F(<pu.?v') =
( <ри + 1.если1 < и < Лии = Штраф
tpu _ J если N + l<u<2Nnv = Штраф
4>и _ 1; если 1 < и < N и v = Вознаграждение
<ри + 1,еслиЛ + 1<и<2Лии = Вознаграждение
< <ри в противном случае
(2-33)
С точки трения реализации автомат Цетлина поддерживает целое число
(индекс состояния), а обучение выполняется с помощью операций инкремента
и декремента в соответствии с переходами, указанными F(<pu,pv) (и изобра-
женными на рисунке 2.7). Автомат Цетлина. таким обратом, чрезвычайно
прост в вычислительном отношении и требует небольшого объема памяти.
Машина Цеглина состоит из т конъюнктивных предложений, С,1,/ =
= 1,..., т, соответствующих каждому выходу у,, i = 1,2,... .п. Число пред-
ложений т на выходе у,- является мста-иараметром, который определяется
числом подшаблонов, связанных с каждым у,-. Если последнее неизвестно, то
соответствующий т может быть найден с помощью выбора оптимальных па-
раметров (grid scaich), соответствующего выбору количества скрытых узлов в
слое нейронной сети.
После создания структуры предложения, назначается одна группа ав-
томатов Цетлина, 9 j = {'ГЛ^7|1 Sk < 2 о}, каждому предложению С' Как
показано на рисунке 2.8, архитектура состоит из m X п конъюнктивных
предложений, каждое из которых формируется независимой группой автома-
тов Цетлина. Каждая группа автоматов Цетлина, (/‘, таким образом, управ-
ляет выбором того, какие литералы включить в свое соответствующее пред-
ложение, Су .
Па рисунке 2.9 представлена расширенная архитектура машины Цет-
лина, вводящая полярность предложения, оператор суммирования, собираю-
щий «голоса», и пороговая функция, определяющая окончательный результат.
Предложения соответствуют скрытому слою нейронной сети, хотя вме-
сто нейронов с нелинейными функциями активации есть формулы в логике
высказываний, которые оцениваются как 0 или 1. То есть, одно предложение
140
соответствует одному нейрону, однако может быть представлено более ком-
пактно в битовой форме.
Рисунок Z.8. Базовая архитектура машины Целина
Рисунок 2 9. Расширенная архитектура машины Цеглина
2.3.4. Обнаружение вторжений на основе
прогнозирования с использованием нейронных сетей
В некоторых случаях гораздо удобнее рассматривать совместную
динамику набора временных рядов, т. с. исследовать многомерные времен-
ные ряды. Многомерный ряд есть совокупность X = (А'1-1-1 X т },
где каждое значение в момент времени t, представлено вектором: X —
= (х?,х®...х®)[15].
141
Выбор частоты дискретизации At для сбора параметров, генерируемых
устройствами, равен одной секунде. Для стандартизации значений каждая со-
ставляющая многомерного ряда была приведена к нулевому среднему и еди-
ничному среднеквадратичному отклонению:
гп
-=1| п (234)
' а.
При обнаружении аномалий в сетевом графике необходимо работать
с большими наборами данных, полученными от множества различных
устройств, данные, как правило, являются многомерными и имеют зависимо-
сти между собой.
Полученные нормализованные данные подвергаются предварительной
обработке: для каждой точки временного ряда определяется спрогнозированное
значение. Многомерный временной ряд разделяется на фрагменты, которые об-
рабатываются по отдельности, а для сохранения связи между фрагментами ис-
пользуются рекуррентные нейронные сети с сохранением состояния (stateful).
Выбор рекуррентных нейронных сетей обусловлен хорошими результа-
тами, полученными путем их применения в задаче прогнозирования времен-
ных рядов. Отличительной чертой рекуррентных сетей является то, что они
позволяют обрабатывать данные, порядок следования которых имеет суще-
ственную роль благодаря тому, что связи между элементами сети образуют
направленную последовательность. Па рисунке 2.10 представлена архитек-
тура LSTM-ссти, которая используется для прог нозирования значений времен-
ных рядов. С крытые состояния кодировщиков и декодера в момент времени t,
обозначаются /1,' и hj соответственно, w - длина блоков, на которое поде-
лены исходные временные ряды
GRLJ-нсйронные сети являются развитием идеи, заложенной в LSTM,
однако за счет совмещения гейтов и скрытых состояний имеют более простую
структуру. Па практике, это позволяет увеличить скорость обучения сети, ис-
пользовать для этого меньше данных, а также экономить память, так как пара-
метров у такой сети значительно меньше.
Аномалии в данных представляют собой отклонения от стандартных,
предсказанных шаблонов функционирования системы. Для выявления подоб-
ных отклонений строится вектор ошибки е'-1' = (ер е2'\), где е 11 есть
разность между текущими показателями х полученными от объектов си-
стемы, и предсказанными значениями 71 1
ef = |х«- 7т/°|. ) = !,.. ,п. (2.35)
142
1) ~(j+w4 2) i(j+2w)
•v u>
д-fj + l) Д.0+2)
(j+w)
Рисунок 2.10. Схема прогнозирования
с использованием LSTM-сегей
Анализ ошибки предсказания направлен на выявление аномалий: чем
больше значение имеет какая-либо компонента , тем выше вероятность
того, что имеет место атака или сбой в системе. Ранжирование компонентов
ошибки прогноза позволяет обнаружить, направлена атака на объект, на от-
дельный подпроцесс или на всю систему в целом
Контрольные г. просы и задания к разделу 2.3
1 Для чего нужны скрытые слои в искусственных нейронных сетях?
2. Когда возникает необходимость в алгоритмах классификации, а когда - в алго-
ритмах кластеризации?
3. Чем отличаются друг от друга алгоритма бэггинга и бустинга при построении
деревьев решений?
4. Что такое многомерный временной ряд и как он формируется из сетевого гра-
фика?
Список источников к разделу 2.3
1 Glindis L. D. et al. Network Intrusion Detection Using Machine Learning Tech-
niques // International Journal of Research -2018 . -T. 5. - №. 22. -C. 1122-1131.
2. Андреев А. А. Применение генетических алгоритмов при ошимизации нелиней-
ных функций // Вестник Тамбовского университета. Серия: Естественные и тех-
нические науки.-2009.-Т. 14 -№.5-2.
143
3. Ру гковская Д. «Нейронные сети, генетические алгоритмы и нечеткие системы/? -
М.: I орячая линия -1 елеком, 2006. - 452 с.
4. Breiniau L Random Forests // Machine Learning. 2001. V. 45. № 1. P. 5-32.
5. Breimati L. et al. Classification and Regression Trees. Wadsworth & Brooks, 1984. -
p. 36S
6. Гэри M., Джонсон Д. Вычисли тельные машины и груднорешаемые задачи. М.:
Мир. 1982.
7. Половинкин А Н. Алгоритмы классификации изображений с большим числом
категорий объектов И Вестник Нижегородского университета им. НИ Лобачев-
ского. - 2013. - № 4-1.
8. Anton S. D. D. et al. Anomaly-based Intrusion Detection in Industrial Data with SVM
and Random Forests // 2019 International Conference on Software, Telecommunica-
tions and Computer Networks (SoftCOM). - IEEE, 2019. - C. 1-6.
9. Htun P. T., Khaing К. T. Detection model for dauiel-of-senice attacks using random
forest and k nearest neighbors //International Journal of Advanced Research in Com-
puter Engineering & Technology (IJARCET). - 2013. - T. 2. - № 5. - C. 1855—
1860.
10. Градиентный бустинг. Конспект лекций. [Электронный ресурс]. URL:
ftp://ftp.vt.tpu.ru/study/bolotova/public/methods %20of %20computational %20
intelligence/lectures/konspect/4-1 Gradientnyi boostmg.pdf. - (Дата обращения.
06.12.2019).
11. Feature Importance and Feature Selection With XGBoost in Python. [Электронный
ресурс]. URL: hups://machineleamingmastery.com> feature-importance-and-feature-
selection-with-xgboost-in-python/. - (Дата обращения' 25.12.2019).
12. Воронцов К. В. Лекции по алгоритмам кластеризации и многомерного шкалиро-
вания - М.' МГУ, 2007.
13. Bhani К. К., Shukla S., Jain S. Intrusion detection using clustering H Proceeding of
the Association of Counseling Center Training Agencies (ACCTA). - 2010 - T. 1
14. Кластеризация: метод k-средних. [Электронный ресурс]. URL. http://statistica.ru/
theory/klastenzatsiya-metod-k-srednikh/. - (Дата обращения 14.02.2020).
15. Lavrova D., Zegzhda D., Yarmak A. Using GRU neural network for cyber-attack de-
tection in automated process control systems // 2019 IEEE International Black Sea
Conference on Communications and Networking (BlackSeaCom). - IEEE. 2019. -
C. 1-3.
16. Malhotra P. et al LSTM-based encoder-decoder for multi-sensor anomaly detection //
arXiv prepnnt arXiv: 1607.00148. - 2016.
17. Цетлин M. Л. Конечные автоматы и моделирование простейших форм пове-
дения [Электронный ресурс]. - Режим доступа, http://www.mathnet.ru/
links/clcal 13149b47d4bb64696f39f37e058/mi6373.pdf. - (Дата обращения:
21.08.2019).
144
IS. Libin P., Verstraeten T. Bayesian Best-Ann Identification for Selecting Influenza Mit-
igation Strategies [Электронный ресурс] - Режим доступа: https://arxiv.org/pdf7
1711.06299.pdf. - (Дата обращения: 18.11.2019).
19. Granmo Ole-Chnstotfer. The Tsetlm Machine- A Game Theoretic Bandit Driven Ap-
proach to Optimal Pattern Recognition with Propositional Logic [Электронный ре-
сурс]. - Режим доступа: https://arxiv.org'pdf ls04.01508.pdf. - (Дата обращения:
03.09.2019).
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
1. Андреев А. А. Применение генетических алгоритмов при оптимизации нелиней-
ных функций '/ Вестник I амбовскою университета. Серия: Естественные и тех-
нические науки. - 20о9 - Т. 14. - №. 5-2.
2. Афанасьев В. Н., Юзбашев М. М. Анализ временных рядов и прогнозирова-
ние. - М.: Финансы и статистика, 2001. - 228 с.
3. Ьородаенко В., Ермаков А. Универсальная платформа обработки больших дан-
ных И Открытые системы. СУБД. - 2017. - № 3. - С. 12-13 .
4. Браницкий А. А., Котенко И В. Анализ и классификация методов обнаружения
сетевых атак // Труды СПИИРАН. - 2016. - Т. 2. - № 45. - С. 207—244.
5. Васенкова Е. И., Абакумова Ю. Г. Эконометрика и прогнозирование. Курс лек-
ций. Белорусский юс. ун-т, экономический факультет. - hrtp://bseu.byzrussian/
faculty5/stat'docs/4/ EconometricsBouk3.pdf
6 Воронцов К. В. Лекции по алгоритмам кластеризации и многомерною шкалиро-
вания. - М.. МГУ, 2007.
7. I ергель В. IL, Строит ин Р. Г. Основы параллельных вычислений для много-
ттроцессорных вычислительных систем. Учебное пособие - Нижний Новгород:
Изд-во ННГУ им. Н.И. Лобачевского, 2003. - 184 с.
8. Гирик А. В Обнаружение информационных угроз безопасности передачи дан-
ных в телекоммуникационных сетях // Тез. докл. XV Всерос. науч.-метод. конф.
«Телематика-2008», Санкт-Петербург, 23-26 июня 2008 г. - С. 178.
9. Гэри М., Джонсон Д. Вычислительные машины и груднорешаемые задачи М.:
Мир. 1982.
10. Градиентный бустинг Конспект лекций. [Электронный ресурс]. URL: ftp://ftp.vt.
tpu.ru/btudy/bolotova/public/merhods %20of °o20coniputational %20 intelligence/
lectures4.onspecL 4-1 .Gradientnyi boosting.pdf. - (Дат а обращения- 06.12.2019).
11. Дейнеко Ж. В , Замула А. А., Кириченко Л. О., Т. А. Радивилова. Об одном мс-
годе моделирования самоподобною стохастического процесса // Втсн. Харк.
нац. ун-ту iM В Н. Каразтна. Сер. «Магематичне моделювання». 1нформащй
штехнолопт. Авгоматизоваш системиуправлшня. - 2010. №890, вип. 13. -
С. 53-63.
12. Кластеризация: метод k-средних. [Электронный ресурс]. URL: littp://statistica.ru/
theory/klaslerizatsiya-nietod-k-srednikhz. - (Дата обращения 14.02.2020).
13. Клеппман М. Высоконатруженные приложения. Программирование, масштаби-
рование, поддержка. - СПб.: Питер, 2018. - 640 с
14. Кот аловский М. Р. Энциклопедия технологий Баз данных. - М.: Финансы и ста-
тистика. 2002. - 800 с.
146
15. Колчин М. А., Шилин И. А., Климов Н. В., Гарайзуев Д. С., Муромцев Д. И.. За-
колдаев Д. А. Метод агрегации и нормализации данных г егерогенной сенсорной
сети// Известия высших учебньгх заведений. Приборостроение. -2015. -Т. 58. -
№11.-С. 945-951.
16. Кузнецов С. Д. Базы данных: Языки и модели. - Москва, Бином, 2008. - 720 с.
17. Лаврова Д. С., Зегжда Д. П., Зегжда П Д., II Пыркина А. А. Оценка киберустой-
чивости информационно-технологических систем на основе самоподобия // Ма-
териалы 25-й научно-технической конференции «Методы и технические сред-
ства обеспечения безопасности информации». - СПб.. Изд-во Политехи. Ун-та,
2016.-С. 101-104.
18. Локтев А. А., Залетдинов А. В. Использование фракталов в задачах обеспечения
информационной безопасности // Веезник Тамбовского университета. Серия
«Естественные и технические науки». - 2010. - Г. 2. - Вын. 2. - С. 442—447.
19. Олифер В . Олифер Н. Компьютерные сети. Принципы, технолот ии, протоколы:
Учебник для вузов. - 5-е изд. - СПб.: Питер, 2016. - 992 с.
20. Петров В В., Платов В. В. Исследование самоподобной структуры телетрафика
беспроводной сети /.' Радиотехнические тетради. 2004. № 30. С. 58-62.
21. Поздняк И. С., Буранова М. А. Исследование сетевого трафика на степень само-
подобия. Методические указания «Исследование сетевого трафика на степень
самоподобия». - Самара: Изд-во Поволжского государственного университета
телекоммуникаций и информатики, 2013. - 17 с.
22. Половинкин А. Н. Алгоритмы классификации изображений с большим числом
категорий обьектов // Вестник Нижегородского университета им. НИ Лобачев-
ского. - 2013. - № 4-1.
23. Полтавцева М. А. Хабаров А. Р. Безопасность баз данных: проблемы и перспек-
тивы // Программные продукты и системы. 2016. - № 3-1. - С. 36—41.
24. Попова О. А., Жмурова А. А., Мерко А М. Агрегация и техника быстрых вы-
числений для данных больших обьемов // Материалы X Всероссийской научно-
технической конференции с международным участием. Сибирский федераль-
ный у ниверситег; Межинститутская базовая кафедра «Прикладная физика и кос-
мические технологии». - М.: Литера-Принт, 2018. - С. 191-196.
25. Пселсис Э. Дж. Потоковая обработка данных. Конвейер реального времени /
пер. с англ. А. А. Силнкин - М: ДМК Пресс, 2018. - 218 с.
26. Радченко Г. И., Соколинский Л. Б., Шамакина А. В Модели и методы профили-
рования и оценки времени выполнения потоков работ в суперкомпьютерных си-
стемах // Вычислительные методы и программирование. - 2013. - Т. 14.
27. Рутковская Д. «Нейронные сети, генетические алгоритмы и нечеткие системы» -
М.: 1 орячая линия - Телеком - 2006. - 452 с.
28. Садаладж Д.. Фаулер М. NoSQL Новая методология разработки нереляционных
баз данных. - М. Вильямс. - 192 с.
147
29. Селиверстов Е. Ю Обзор методов решения задачи шинирования параллельных
алюритмов И 2307-0595, Инженерный вестник, Декабрь, № 12, 2014.
30. Смит Д. М., Смит Д. К. Абс1ракции баз данных: а1регация и обобщение //
СУБД.-1996.-Лё 2.
31. Суслов В. И., Ибрагимов Н. М., Талышева Л. И., Цыплаков А. А. Эконометрия:
Учебное пособие. - Новосибирск: Изд-во СО РАН, 2005. - 744 с.
32. Треногин Н. Г., Соколов Д. Е. Фрактальные свойства сетевою трафика в клиент-
серверной информационной системе // Вести. НИИ Сибир. гос. ун-са телеком-
муникаций и информатики. - Новосибирск: Изд-во СибГУ ГИ, 2003. - С. ЮЗ-
172.
33. Уайт Т. Hadoop. Подробное руководство. - 2-е издание. - СПб : Питер. 2013. -
672 с.
34. Федорова М. Л., Леденева I. М. Об исследовании свойства самоподобия ipa-
ф>ика мультисервисной сети.-URL: hnp://www.vestnik. vsu.ru,pdf7analiz.'2010.'01/
2G10-01-09.pdf
35. Хабибуллина Е. Л., Сысоев А. С., Воронин Н. В. Агрегирование разнородных
данных для определения параметров гранспоршог о потока // Транспорт Россий-
ской Федерации. Журнал о науке, практике, экономике. - 2019. - № 2 (81). -
С. 22-25.
36. Цетлин М. Л. Конечные автоматы и моделирование простейших форм поведе-
ния [Электронный ресурс]. - Режим доступа: hTtp:'/www matbnet.ru/links/
deal 13149b47d4bb64696f39t37eO58/rm6373.pdf. - (Дата обращения: 21.08.2019).
37. Шибаева Е.С. Сравнение методов анализа показателя Херста для фрактального
сетевою графика. - URL http://www.mce.su/archive/doc97687/doc.pdf.
38. Aldwairi М., Abu-Dalo А. М., Jarrah М. Pattern matching of signature-based IDS us-
ing Myers algorithm under MapReduce framework // ELiRASIP Journal on Infor-
mation Security. - 2017.-T. 201".-№ l.-C 9.
39. Anton S. D D et al. Anomaly-based Intrusion Detection tn Industrial Data with SVM
and Random Forests //2019 International Conference on Software, Telecommunica-
tions and Computer Networks (SoftCOM). - IEEE, 2019. - C. 1-6.
40. Berezinski P., Jasiul B., Szpyrka M. An entropy-based network anomaly detection
method ,7 Entropy. - 2015. -T. 17. -№4. - C. 2367—2408.
41. Bharti К. K., Shukla S., Jain S. Intrusion detection using clustering // Proceeding of
the Association of Counseling Center Training Agencies (ACCTA). - 2010. - T. 1.
42. Brennan L . Random Forests//Machine Learning -2001.-V.45.-№ l.-P 5-32.
43. Breiman L. et al. Classification and Regression Trees. Wadsworth & Brooks, 1984. -
p. 368.
44. Bruce L. Bowerman and Richard T O’Connell, Forecasting and Time Series: An Ap-
plied Approach, Third Edition. Duxbury Thomson Learning, 1993
45. Carter T. An introduction to information theory and entropy //Complex Systems Sum-
mer School. - Santa Fe, Aug 2014. - P 139.
148
46. Denning D. E. An intrusion-detection model // IEEE Transactions on software engi-
neering. - 1987. _ №. 2. - C. 222-232.
47. Glindis L. D et al. Network Intrusion Detection Using Machine Learning Tech-
niques // International Journal of Research - 2018. - T. 5. - № 22. - С. 1122—1131.
48. Goonatilakc R , Herath S., Herath A. Probabilistic models for anomaly detection based
on usage of network traffic // Journal of Information Engineering and Applications. -
2013. - T. 3. -№ 9. - C. 28-40.
49. Granmo O.-C. The Tsetlin Machine - A Game Theoretic Bandit Driven Approach to
Optimal Pattern Recognition with Propositional Logic [Элекгронный ресурс]. - Ре-
жим доступа: https:/'arxiv.org pdf'l 804.01508.pdf. - (Дата обращения: 03.09.2019).
50. Htun Р. Т., Khaing К. 1. Detection model for daniel-of-service attacks using random
forest and k-nearest neighbors // International Journal of Advanced Research in Com-
puter Engineering & Technology (IJARCET). - 2013. - T. 2. - № 5. - C. 1855-1860
51. Feature Importance and Feature Selection With XGBoost in Python. [Элекгронный
ресурс]. URL: hitps://machineleamingmastery.coni/feaiure-iniportance- and-feature-
selection-with-xgboost-in-python/. - (Дата обращения. 25.12.2019).
52. Foster I. (1995). Designing and Building Parallel Programs: Concepts and Tools for
Software Engineering. Reading, MA: Addison-Wesley.
53. Kessler C., Keller J. Models for parallel computing: Review and perspectives // Mittei-
lungen-Geaellschaft fur infomiatik eV, Parallel-Algorithmen und Rechnerstrukturen. -
2007.
54. Kuznetsov S. D. Poskonin A. V. NoSQL data management systems // Programming
and Computer Software. M.: Springer-Verlag GmbH, 2014, Volume 40. Issue 6, pp
323-332. DOI: 10 1134/S0361768814060152.
55. Kwok Y.-K. Efficient Algorithms for Scheduling and Mapping of Parallel Programs
onto Parallel Architectures : Ph. D. thesis / Yu-Kwong Kwok ; The Hong Kong Uni-
versity of Science and Technology - 1994
56. Lavrova D., Zegzhda D., T amiak A. Usmg GRU neural network for cyber-attack detec-
tion in automated process control systems //2019 IEEE International Black Sea Confer-
ence on Communications and Networking (BlackSeaCom). - IEEE, 2019. - C. 1-3.
57. Libin P., Verstraeten T. Bayesian Best-Ann Identification for Selecting Influenza Mit-
igation Strategies [Электронный ресурс]. - Режим доступа: https:7arxiv.org/pdf/
1711.06299.pdf. - (Дата обращения. 18.11.2019).
58. Malhotra Р. et al. LSTM-based encoder-decoder for multi-sensor anomaly detection //
arXiv preprint arXiv: 1607.00148. - 2016.
59. Mudzingwa D.. Agrawal R. A study of methodologies used in intrusion detection
and prevention systems (IDPS) // 2012 Proceedings of IEEE Southeastcon. - IEEE,
2012.-C. 1-6
60. Poltavtseva M. A. Evolution of Data Management Systems and Their Security // 2019
International Conference on Engineering Technologies and Computer Science (EnT),
Moscow, Russia. 2019, pp 25-29. doi: 10.1109/EnT.2019 00010.
149
61. Poltavtseva M. A., Lavrova D. S., Pechenkin A. I. Planning of aggregation and nor-
malization of data from the Internet of Things for processing on a multiprocessor
cluster // Automatic Control and Computer SciencesVolume 50, Issue 8, 2016,
P 703-711.
62. Poltavtseva M. A., Zegzhda P. D., Pankov I D. The Hierarehial Data Aggregation
Method in Backbone Traffic Streaming Analyzing to Ensure Digital Systems Infor-
mation Security, 2018 Eleventh International Conference Management of large-scale
system development (MLSD), Moscow, 2018, pp 1-5. doi: 10.1 lOO/MLSD^OlS.
8551916.
63. Samarev R. S. Survey of streaming processing field. Trudy ISP RAN/Proc. ISP RAS,
vol. 29, issue 1,2017. pp 231-260.
Книги почтой
Заказ можно сделать на сайте издательства
www.infra-e.ru
№ п/п Наименование khhi и
1 API в разработке приложений Autodesk Inventor. Практическое руководство
2 Алгоритмы Data Science и их практическая реализация на Python
3 Анализ и моделирование типовых систем массового обслуживания
4 Интернет вещей для начинающих. Визуальное программирование микрокон троллеров семейс! ва ESPX266
5 Информа1ика. Курс лекций
6 Микропроцессорные системы. Разрабо тка иро1раммного обеспечения для микрокон троллеров семейст ва AVR
7 Основы информационной безопасности
X Справочник ГГ-терминов
9 Теория информации. Лабораторный практикум в MATLAB
10 Техническое и нрофаммное обеспечение вычислительных машин и систем