Научная статья на тему 'РАЗРАБОТКА МЕТОДИКИ ВНЕДРЕНИЯ МАШИННОГО ОБУЧЕНИЯ ДЛЯ ПОВЫШЕНИЯ ИНФОРМАЦИОННОЙ БЕЗОПАСНОСТИ WEB-ПРИЛОЖЕНИЯ'

РАЗРАБОТКА МЕТОДИКИ ВНЕДРЕНИЯ МАШИННОГО ОБУЧЕНИЯ ДЛЯ ПОВЫШЕНИЯ ИНФОРМАЦИОННОЙ БЕЗОПАСНОСТИ WEB-ПРИЛОЖЕНИЯ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
562
48
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
WEB-ПРИЛОЖЕНИЕ / СЕРВЕР / МАШИННОЕ ОБУЧЕНИЕ / АНОМАЛЬНО ПОВЕДЕНИЕ / УЧЕТНАЯ ЗАПИСЬ / ПОЛЬЗОВАТЕЛЬ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Ковцур Максим Михайлович, Кириллов Даниил Игоревич, Михайлова Анастасия Валерьевна, Потемкин Павел Андреевич

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

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Ковцур Максим Михайлович, Кириллов Даниил Игоревич, Михайлова Анастасия Валерьевна, Потемкин Павел Андреевич

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «РАЗРАБОТКА МЕТОДИКИ ВНЕДРЕНИЯ МАШИННОГО ОБУЧЕНИЯ ДЛЯ ПОВЫШЕНИЯ ИНФОРМАЦИОННОЙ БЕЗОПАСНОСТИ WEB-ПРИЛОЖЕНИЯ»

ИНФОРМАЦИОННАЯ БЕЗОПАСНОСТЬ

УДК 004.056

Разработка методики внедрения машинного обучения для повышения информационной безопасности web-приложения

Ковцур М.М., Кириллов Д.И., Михайлова А.В., Потемкин П.А.

Аннотация: В информационном мире двадцать первого века люди используют миллиарды web-приложений, обеспечивающих выполнение множества функций, начиная от простых математических операций и заканчивая системами интернет-банков, использующих в своей работе государственные базы данных, и электронный документооборот. Web-приложения ежедневно подвергаются различным атакам. Поэтому, использование Machine Learning, в перспективе, может решить сразу две задачи - автоматизацию процессов, которые ранее требовали участия человека, и быструю обработку больших объемов информации с последующим анализом. Работа посвящена анализу информационной безопасности web-приложений и внедрению такой технологии, как машинное обучение. Объектом исследования является информационная безопасность web-приложений. Предмет исследования - модуль безопасности web-приложения, основанный на технологии машинного обучения. Целью работы является разработка методики внедрения машинного обучения для повышения безопасности web-приложения и построение модуля безопасности web-приложения на основе предложенной методики. В работе представлены методические указания с применением технологии машинного обучения в web-приложении для повышения информационной безопасности, а также концепция и структура модуля, применяющего технологии машинного обучения. Проведен практический эксперимент с внедрением разработанного модуля безопасности, выполнена экспериментальная оценка таких показателей, как: время обучения, линейность, точность. В работе осуществлен выбор метода обучения, а также инструментария для разработки модели машинного обучения. Представленные результаты могут быть использованы при разработке и проектировании систем информационной безопасности web-приложений.

Ключевые слова: web-приложение; сервер; машинное обучение; аномально поведение; учетная запись; пользователь.

Введение

Для обеспечения информационной безопасности существуют различные механизмы и технологии. Классическое представление безопасного web-приложения состоит из следующих аспектов: разграничение прав доступа, использование механизмов защиты баз данных, постоянный мониторинг с целью устранения уязвимостей web-приложений, использование новых технологий обеспечения непрерывной работы сервера.

Вопросы применения машинного обучения в информационных системах являются актуальными и рассматриваются в таких работах, как «Анализ данных и машинное обучение на платформе Ms Sql Server» [1], «Машинный интеллект. Очерки по теории машинного обучения и искусственного интеллекта» [2], «Обучение с подкреплением» [3], однако, в существующих исследованиях не представлена методика внедрения машинного обучения (МО) в web.

В данной работе предлагается методика внедрения МО в web-приложение.

Разработка методики внедрения машинного обучения в wé-приложение

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

На первом этапе необходимо изучить принцип работы и структуру web-приложения, информационную безопасность которого требуется повысить. Определить особенности работы web-приложения и выделить наиболее важные аспекты и функции с точки зрения информационной безопасности (ИБ). Определение недопустимых действий пользователя для дальнейшего применения МО.

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

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

На четвертом этапе необходимо реализовать сбор статистических данных. Как правило, для сбора данных необходимо выявить наиболее значимые параметры и свойства информационной системы, относительно которых администратор сможет определить аномальные действия. Например, реализация сбора данных о пользователе может включать следующие параметры: учетная запись, TP-адрес, время работы в web-приложении, последовательная история посещения страниц и нарушения прав доступа.

На пятом этапе необходимо провести обработку и нормализацию для упрощения будущей классификации. Например, составить таблицу, выделить основные поля, обработать пропуски и пустые значения, привести всё к единому формату, произвести необходимые математические операции для дополнения данных необходимыми значениями.

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

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

На восьмом этапе выполняется разработка модели. Необходимо выбрать инструменты для разработки, такие как: язык программирования, среда разработки, методы работы с данными. Для этой задачи могут быть применены язык PHP, библиотеки php-ml и Rubix ML. Для использования расширений, в web-приложение необходимо установить все необходимые пакеты библиотек МО. В ходе разработки лучше всего использовать внутренний метод тестирования модели - метод спиральной модели.

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

Рассмотрим реализацию методики внедрения МО в web-приложение.

Постановка задачи машинного обучения

В данной работе поставлена задача автоматизировать процесс мониторинга действий пользователя на web-приложении, с целью выявления аномалий. Для выявления аномалий необходимо определить действия или свойства учетных записей пользователя [4], попадающие в эту категорию: проверка IP-адреса на соответствие адресов в локальной базе данных; использование различных программ для сокрытия местоположения, такие как VPN и Tor браузер; появление новых учетных записей в базе данных без создания их через web-

приложения и без записей о них в лог-файлах; осуществление действий (редактирование, удаление) учётных записей без данных привилегий и прав доступа; появления новых записей в базе данных без использования web-приложения или необходимых web-страниц.

В соответствии с приведенными аномалиями в поведении посетителей, web-приложения определяются следующие направления [5], которые будет отслеживать разработанная модель: отслеживание атак на web-приложение; скрытие данных о местоположении пользователей (IP-адреса, данные об используемом устройстве и информации об используемом программном обеспечении (ПО); несанкционированные действия учётных записей, обладающие ограниченными правами доступа.

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

Обзор инструментария

Одним из распространенных языков программирования для написания моделей машинного обучения является простой, высокоуровневый язык программирования Python [6]. Данный язык программирования лучше всего подходит для выполнения задач машинного обучения, поскольку программы, написанные на языке Python, будут наиболее интерпретируемы, по сравнению с подобными программами, написанными на других языках. Основными достоинствами данного языка программирования является высокая производительность при обработке информации, а также наличие множества подготовленных алгоритмов и обученных моделей на простых задачах для выполнения более сложных. У данного языка множества платформ, используя которые можно создать не только машинное обучение, но и методы глубокого обучения, такие как нейронные сети. К таким платформам относятся SciPy, Dask, Numba, Pycharm, (HPAT) и Cython.

Вторым инструментом для создания моделей машинного обучения является Matlab. Данная платформа позволяет использовать методы математического моделирования, на основе которых обеспечивается построение моделей на методах глубокого обучения таких, как Deep Q-Network (DQN), Advantage Actor Critic (A2C) и Deep Deterministic Policy Gradients (DDPG).

Для разработки и внедрения в web-приложения моделей машинного обучения для языка PHP было создано специальное расширение - библиотека php-ml (Machine Learning library for PHP). Данное решение представляет из себя активно-развивающуюся библиотеку для создания моделей классификации и кластеризации данных, прогнозирования ситуации и анализа статистических данных [7]. Библиотека позволяет использовать методы глубокого обучения, построение нейронной сети и интегрировать все построенные модели напрямую в web-приложения. Используется язык php, что позволяет существенно снизить нагрузку потребляемых ресурсов web-сервера.

Компания Microsoft предоставляет бесплатную платформу для построения моделей машинного обучения - «Azure Machine Learning Studio». Основным достоинством данной модели является то, что любой разработчик, независимо от навыков работы с алгоритмами и владения теоретическим материалом, может построить модель на основе подготовленной и загруженной обучающей выборки.

Платформа IBM Watson, созданная корпорацией IBM, содержит обширные возможности инструментария, предназначенного для разработчиков. Данная платформа обладает набором API с открытым кодом. Все пользователи платформы имеют доступ к реализованным алгоритмам, а также необходимый для старта набор инструментов. Одна из популярных возможностей данной программы - это создание чат-ботов [8].

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

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

Для разработки модели МО был выбран язык программирования php с использованием расширения php-ml.

Выбор методов обучения

Выбранное расширение php-ml имеет полный набор методов обучения, начиная от методов контролируемого обучения и заканчивая нейронными сетями. Изучив документацию php-ml и существующие модели, были выбраны следующие критерии отбора метода обучения: бесплатность; точность; время обучения; линейность; количество параметров; быстродействие.

На основе данных критериев был произведен сравнительный анализ методов обучения. Для наглядности сравнительного анализа была составлена табл. 1 сравнения методов обучения.

Таблица 1 — Сравнения алгоритмов обучения

Алгоритм Точность Время обучения (часы) Линейность Количество параметров Классификация Примечание

Метод наименьших квадратов >50% 335,83 + 5 Многоклассовая Низкие требования к памяти

Лес деревьев решений >50-60% 344,08 - 6 Многоклассовая Низкие требования к памяти и простота реализации

Джунгли деревьев решений >50-60% 388,92 - 6 Многоклассовая Низкие требования к памяти

Улучшенное дерево принятия решений >60-70% 384,03 - 6 Многоклассовая Высокие требования к памяти

Нейронная сеть >60-70% 294 - 9 Многоклассовая Возможна дополнительная настройка

Однослойный перцептрон >50% 399 + 4 Двухклассовая Высокие требования к памяти

Метод опорных векторов >40% 257,07 + 5 Двухклассовая Предназначена для больших наборов признаков

Локальные глубинные методы опорных векторов >50% 337,78 - 8 Двухклассовая Предназначена для больших наборов признаков

Байесовские методы >40% 347,99 + 3 Двухклассовая Предназначена для больших наборов признаков

Методы опорных векторов >50% 351,25 - 2 Многоклассовая Предназначена для больших наборов признаков

Метод ^ средних >50% 375,27 + 4 Многоклассовая Предназначена для больших наборов признаков

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

Сравнение моделей обучения

12

10

Л

и и

I 8

и

а. s ® б !Ц С.

с о.

о> 4 Н

Байесовская модель

Метод к-ближайших соседей Метод

Дерево приянтия

решений

/

наименьших квадратов

Ансамбли деревьев

SVM

SVM Кегве!

Сверточные и Нейронна^)еКурентные

сеть нейросети

Стек из deeplearning моделей

/

Г

4 6 8

Точность и гибкость модели

10

12

Рис. 1. График сравнения моделей машинного обучения

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

Разработка и внедрение алгоритма сбора данных

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

«$_SERVER» - зарезервированная переменная языка программирования PHP, которая обеспечивает информацию с Web-сервера. «$_SERVER ['HTTP_USER_AGENTr\» -использование данной переменной позволило получить информацию об используемом браузере и операционной системе посетителей web-приложения. Для того, чтобы узнать адрес страницы, с которой была произведена запись и использовалась переменная -«$_SERVER ['REQUEST_URI'\». Для записи учетной записи пользователей, которые посещали или производили различные операции в web-приложении была использована переменная - «$_SERVER [PHP_AUTH_USERr\». Для определения IP-адреса пользователя в сети была использована переменная - «$_SERVER ['REMOTE_ADDRr\». Использование данной переменной для сбора статистических данных позволило предотвратить несанкционированный доступ. Переменная «$_SERVER ['HTTP_REFERERr\» - показывает откуда пришел пользователь, о сайтах, поместивших web-приложение ссылку. Последней используемой переменной для анализа является $dtime = date ('r'), которая позволяет определить точную дату и время действия пользователя.

@?php

$agent = $_SERVER[1HTTPUSERAGENT']J//какой браузер и ОС пользуется юзер. $uri = $_server[ 'REQUEST URI'];//с какой страницы была произведена запись. $user = $_SERVER['PHPAUTHUSER'];//запишется имя пользователя. $ip = $_SERVER['REMOTE_ADOR"];//определяется ip пользователя

$ref = $_SERVER["HTTP_REFERER'];//показывает откуда пришел пользователь, о сайтах, поместивших на наш сайт ссылку. $dtime = date('r');

if($nef == ""){

$ref = "None"; }

if($user == ""){

$user = $_session["login"]; }

$bodytag = str^ireplaceC';", $agerit);

$agents = explode(") $bodytag); $os = explode(" (",$agents[0]); $braz = explode (" (",$agents[l]);

$data_class = "\n$dtime|$ip|$os[9]|$os[l]|$bnaz[0]|$braz[l]|$agents[2]|$uri|$ref|$user"; $fp = fopen("templates/module/ml/temps.csv", "a"); fputs($fp, ídataclass); fclose($fp);

Рис. 2. Исходный код записи в лог файл (log.php)

При сборе первичных данных необходимо было решить следующие типичные проблемы процесса нормализации, которые могли повлиять на качество данных и предиктивной оценке, выдаваемой построенной модели анализа. Неполнота - поля, содержащие пропуски. Присутствие ошибочных записей или выбросов. Наличие конфликтующих между собой записей или расхождения с построенной моделью сбора данных. Необходимое условие для реализации наиболее точной модели анализа - это наличие качественных данных. Нормализация данных была проведена для переменной -«$_SERVER ['HTTP_USER_AGENTr\». Исходя из всех вышеперечисленных особенностей работы анализа статистики, сбор тренировочного файла был реализован и внедрен в используемое web-приложение (рис. 3) в виде табличного файла формата csv, что позволило автоматизировать процесс сбора данных о действиях всех зарегистрированных пользователей web-приложения, а также отслеживать время и дату изменения данных.

Date ip-add serever os browser info agent3 uri re fe re г user

Fr , 29 Mai 88.201.151 Mozilla/5.i Windows AppleWeb К HTML, lik Chrome/8 /lots.php http://cmí DemoRul5Admin

Fr , 29 Ma1, 88.201.151 Mozilla/5.i Windows AppleWeb К HTML, lik Chrome/8 /lots.php http://cmí DemoRul5Admin

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Fr , 29 Mai 88.201.151 Mozilla/5.i Windows AppleWeb К HTML, lik Chrome/8 /racks.php http://cme DemoRul5Admin

Fr , 29 Mai 88.201.151 Mozilla/5.i Windows AppleWeb К HTML, lik Chrome/8 /racks.php http://cmí DemoRul5Admin

Fr , 29 Ma1, 88.201.151 Mozilla/5.i Windows AppleWeb К HTML, lik Chrome/8 /boxes.ph http://cmí DemoRul5Admin

Fr , 29 Mai 88.201.151 Mozilla/5.i Windows AppleWeb К HTML, lik Chrome/8 /boxes. ph| http://cmf DemoRul5Admin

Рис. 3. Пример записи в лог в файл temps.csv

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

Классификация данных

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

зарегистрированных пользователей, права доступа которых ограничены на выполнения различных действий [9]. Так, например, был построен анализ реализации прав доступа ~мвЬ-приложения, на основе которого все пользователи открывавшие страницы добавления, редактирования или удаления значений из различных таблиц базы данных, не имевшие на это привилегий автоматически оценивались от 1 до 5.

Вторым исследуемым параметром входных данных стала информация об используемом оборудовании посетителей и пользователей ^еЬ-приложения, а именно данные об операционной системе, язык, версия, название web-браузера и программное обеспечение с которого пользователь посетил данное ^еЬ-приложение. Данная классификация позволила точно определить новых пользователей и посетителей ^еЬ-приложения, для предотвращения, в будущем угрозы утечки данных, удаления или искажения значений в базе данных [10].

Для постоянного мониторинга авторизованных пользователей в сети главным указателем на принадлежность пользователей стала учетная запись. При анализе данного параметра выявить аномалии и четко определить учетную запись помогла классификация, полученная в диапазоне от 1 до 4. Использование данного параметра позволило обеспечить анализ учетных записей на предмет взлома или скомпрометированных данных авторизации, таких как логин и пароль [11].

Последним используемым параметром в системе стал /Р-адрес посетителей ^еЬ-приложения. Для определения оценки была построена классификация диапазона значений от 1 до 4.

Разработанная классификация представлена в матрице классификационной модели (табл. 2).

Таблица 2 — Матрица классификационной модели

Оценка\Параметр Web -адрес Используемое оборудование посетителей Учетная запись /Р-адрес

1 4 ошибки отсутствие информации не зарегистрирован не зарегистрирован

2 3 ошибки частичное совпадение (^еЬ-браузер, операционная система, устройство) присутствует до 250 раз присутствует до 250 раз

3 2 ошибки 2 или 3 совпадения об используемом оборудовании присутствует от 251 до 1000 раз присутствует от 251 до 1000 раз

4 1 ошибка Данное устройство зарегистрировано в системе более 1000 более 1000

5 Нет нарушений - - -

По всем входным параметрам была проведена общая классификация поведения пользователей на основе которой было составлено схематичное разделение направлений отслеживания модели (рис. 4).

Поведение пользователя

Рис. 4. Интерпретация классифицированных параметров

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

Для тренировки модели, все данные были нормализованы и преобразованы в файл формата csv (рис. 5).

А В с D E

Loacation Equipmen login ip-address prediction

5 3 1 1 5

4 3 1 1 4

X 5 4 1 1 4

4 3 1 1 4

4 3 1 1 4

Рис. 5. Тренировочные данные

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

Разработка модели машинного обучения

После этого были введены основные переменные, которые передавали интерпретируемые значения для использования машинного обучения:

Для отслеживания соблюдения политик безопасности, определенных раннее, была использована переменная - «$location = $perehod + $error_token + $error_input + $user_prava + $users_actions;». Данная переменная использует следующие «маркеры», показывающие нарушения - переменная «$perehod» позволяет отслеживать переходы между страницами и выявлять несоответствия при открытии различных страниц, «$error_token» -показывает ошибку введенного токена страницы. Переменная «$error_input» срабатывает тогда, когда были получены неверные пользовательские данные при авторизации. Переменные «$user_prava» и «$users_actions» отображают нарушения введенного разграничения прав доступа.

Использовании конструкции - «$os_and_browser = $language_user + $os_user + $browser_user + $pc_user;» позволяет сверить информацию об использованном пользователем устройстве, ПО и web-браузере.

И наконец для проверки частотности логин и IP-адреса были введены следующие переменные соответственно «$login_count» и «$ip_count».

С помощью команды - «$dataset = new CsvDataset ('train-data.csv', 4, true);» была подключена тренировочная выборка данных на основе которой и проводилось обучение будущей модели анализа. В данной команде мы подключаем файл «train.csv», считывая для тренировки классификатора 4 столбца, при этом ключевое слово true позволяет считывать файл со второй строки, пропуская заголовки. Вся обучающая выборка была записана в массив - «$dataset».

С помощью введения переменной «$samples» и использования метода -«getSamples()» было произведено обращение к массиву тренировочной выборки «$dataset» с помощью команды «$samples = $dataset->getSamples();». Данная методика использовалась для разделения тренировочной выборки с классификацией. Для предсказания модели была введена переменная «$targets = $dataset->getTargets(); » подобным методом, что и переменная «$samples».

После этого все используемые переменные были записаны в массив «$test_data» тестовых данных для определения оценки поведения пользователя при поступлении и обработке внешних данных.

«$regression = new LeastSquaresQ;» - данная команда означает, что в переменную «$regression» записывается информация об используемом методе анализа данных, а именно, методе наименьших квадратов (new LeastSquaresQ).

После этого с помощью введенной переменной «$regression» в модель обучения были записаны тренировочные данные с формированной классификацией используя метод «train()» с помощью команды «$regression->train($samples, $targets);».

Был введен новый массив «$predict», с помощью которого проводилась предиктивная оценка поступивших тестовых данных с помощью метода «predict([$test_data,])», используя следующую конструкцию «$predict = $regression-> predict([$test_data,]);».

Данная модель служит простым примером использования методов машинного обучения для решения задач, без использования сложных алгоритмов и тяжелых скриптов. Разработанный программный продукт (рис. 6) использует лишь одну внешнюю библиотеку и 2 внешних файла - это файл с тренировочными данными и файл сбора статистических данных для получения тестовых данных. При этом полученный алгоритм может быть применен для решения любой задачи, поскольку все анализируемые значения являются интерпретируемыми, то есть всем входным параметрам даётся числовая оценка, на основе которой уже и строится предсказание с использованием математических преобразований

[13]. _

■php

include "logs.php";

require "vendor/autoload.php";

use Phpml\Dataset\CsvDataset; use Phpml\Regression\LeastSquares;

$dataset = new CsvDataset('train-data.csv'} 4, true); ^samples = $dataset->getSamples(); $targets = $dataset->getTargets()j

$test_data = array( ^location, $os, $login, $ip

$regression = new LeastSquaresQ; Jregression^trainiisamples, $targets); $predict = $regression->predict([ $test_data,

])j

J_

Рис. 6. Алгоритм модели анализа данных

Внедрение модели машинного обучения в модуль безопасности

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

Структура разработанного модуля безопасности представлена на рис. 7:

Рис. 7. Структурная схема модуля безопасности

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

Экспериментальная оценка разработанного модуля безопасности

В ходе разработки модуля безопасности web-приложения был использован внутренний метод тестирования - метод спиральной модели [14]. При проведении внешних испытаний [15] работы модуля безопасности путем тестирования web-приложения были получены следующие результаты:

тестирование показало, что разработанный программный продукт способствует отслеживанию атак на web-приложение;

также при тестировании подтвердилось, что при помощи машинного обучения разработанный модуль обеспечивает отслеживание авторизованных пользователей в системе использующих новое устройство, программное обеспечение, web-браузер и 7?-адрес;

при создании подозрительной активности, а также нарушений определенных политик безопасности web-приложения, разработанный модуль позволил отследить все аномальные действия.

30 20 10 0

10 8 10 10 8 7

10 ""ИГ" 10 10 10 —ГО

Сиена ip-адреса

Появление Ошибки Ошибки Нарушения Появление нового авторизации ввода ограничения нового пользователя токена правдоступа оборудования

Количество выявленных нарушений —Число попыток

Рис. 8. График эффективности работы модуля безопасности

Разработанная модель машинного обучения имеет высокую точность, примерно равную 77 %, а вероятность ошибки данной модели составляет, примерно 23 %.

Разработанная модель анализа действий пользователя имеет следующие достоинства: простота реализации обеспечивается минимальным количеством входных параметров и линейностью выбранной классификацией данных;

бесплатность - данная модель была разработана при использовании открытых источников и бесплатных расширений, таких как php-ml и Rubix ML;

время обучения - для обучения данной модели достаточно месяца сбора данных о действиях пользователей;

точность оценки модели составляет примерно 77 %.

Но также разработанная модель имеет следующие недостатки: отсутствие отслеживания sql-инъекций; производительность и точность данной модели возможно повысить при использовании методов глубокого обучения.

Заключение

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

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

определены задачи машинного обучения и реализован отбор критериев выбора метода обучения. В результате выполнения данной задачи был проведен сравнительный анализ методов обучения с целью выявления наиболее эффективных для решения данной задачи;

реализован сбор статистических данных, с последующей обработкой информации и классификацией, в результате чего была получена тренировочная выборка;

разработана и внедрена в web-приложение регрессионная модель анализа поведения пользователей, с целью выявления аномалий;

в ходе использования разработанной модели сформирована методика внедрения машинного обучения в web-приложение;

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

Литература

1. Кондратов Ю.Н. Анализ данных и машинное обучение на платформе Ms Sql Server. КноРус, 2019. С. 170-172.

2. Шумский С.А. Машинный интеллект. Очерки по теории машинного обучения и искусственного интеллекта. Издательский Центр РИОР, 2019. С. 24-25.

3. Саттон Р.С., Барто Э.Дж. Обучение с подкреплением. М. Бином. Лаборатория знаний, 2017.

С. 113.

4. Ушаков И.А. Инновационная технология качественного формирования профессионального тезауруса личности / Ушаков И.А. // Глобальный научный потенциал. 2013. № 7 (28). С. 69-71.

5. Котенко И.В., Ушаков И.А. Технологии Больших данных для мониторинга компьютерной безопасности // Защита информации. Инсайд. 2017. № 3 (75). С. 23-33.

6. Барский А.Б. Искусственный интеллект и логические нейронные сети. Общество с ограниченной ответственностью "Издательский центр "Интермедия", 2019. С. 9-11.

7. Дмитриев А.С., Розалиев В.Л. Основы разработки web-приложений. Волгоград. ВолгГТУ. 2019.

82 с.

8. Герлинг Е.Ю., К.А. Ахрамеева. Обзор современного программного обеспечения, использующего методы стеганографии // Экономика и качество систем связи. 2019. № 3 (13). С. 51-58.

9. Красов А.В., Штеренберг С.И., Фахрутдинов Р.М., Рыжаков Д.В., Пестов И.Е. Анализ информационной безопасности предприятия на основе сбора данных пользователей с открытых ресурсов и мониторинга информационных ресурсов с использованием машинного обучения // T-Comm: Телекоммуникации и транспорт. 2018. Т. 12. № 10. С. 36-40.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

10. Бакаева Ж.Ю. Информационная безопасность. Чувашский государственный университет имени И.Н. Ульянова. 2019. 62 с.

11. Клименко И.С. Информационная безопасность и защита информации: модели и методы управления. Общество с ограниченной ответственностью «Научно-издательский центр ИНФРА-М, 2020. С. 34-35.

12. Черемисин А.Б. Современные технологии: проблемы инновационного развития. Петрозаводск: Международный центр научного партнерства «Новая Наука». 2019. С. 210-214.

13. Сахаров Д.В., Левин М.В., Фостач Е.С., Виткова Л.А. Исследование механизмов обеспечения защищенного доступа к данным, размещенным в облачной инфраструктуре // Наукоемкие технологии в космических исследованиях Земли. 2017. Т. 9. № 2. С. 40-46.

14. Игнатьев А.В. Тестирование и отладка программного обеспечения. Учебно-методическое пособие. Волгоград: ВГУ. 2018. С. 5-7.

15. Ломаев Ю.С., Толстых А.В., Звонарь В.Д. Модификация подходов проведения тестирования программного обеспечения при разработке бортового программного обеспечения. Сер. "Библиотека журнала «Военмех. Вестник БГТУ». 2018. №50. С. 109-113.

References

1. Kondrashov Yu.N. Data Analysis and Machine Learning on the Ms Sql Server Platform. KnoRus. 2019. Pp. 170-172 (in Russian).

2. Shumsky S.A. Machine intelligence. Essays on the theory of machine learning and artificial intelligence. RIOR Publishing Center. 2019. Pp. 24-25 (in Russian).

3. Sutton R.S., Barto E.J. Reinforced training. Binomial. Laboratory of Knowledge. 2017. P. 113 (in Russian).

4. Ushakov I.A. Innovative technology for the qualitative formation of a professional personality thesauru. Ushakov I.A. Global scientific potential. 2013. No. 7 (28). Pp. 69-71 (in Russian).

5. Kotenko I.V., Ushakov I. Big Data Technologies for Computer Security Monitoring. Data protection. Insider. 2017. No 3 (75). Pp. 23-33 (in Russian).

6. Barsky A.B. Artificial intelligence and logical neural networks. Limited liability company "Publishing center" Intermedia ". 2019. Pp. 9-11 (in Russian).

7. Dmitriev A.S., Rozaliev V.L. Basics of web application development. Volgograd State Technical University. Volgograd. 2019. P. 82 (in Russian).

8. Gerling E.Y. Review of modern software using steganography methods. E.Yu. Gerling, K.A. Akhrameeva. Economics and quality of communication systems. 2019. No 3 (13). Pp. 51-58 (in Russian).

9. Krasov A.V., Shterenberg S.I., Fakhrutdinov R.M., Ryzhakov D.V., Pestov I.E. Analysis of enterprise information security based on user data collection from open resources and monitoring information resources using machine learning. T-Comm: Telecommunications and transport. 2018.V. 12. No. 10. Pp. 36-40 (in Russian).

10. Bakaeva Zh.Y. Information Security. Chuvash State University named after I.N. Ulyanova. 2019. P. 62 (in Russian).

11. Klimenko I.S. Information security and information protection: models and management methods. Limited Liability Company "Scientific and Publishing Center INFRA-M. 2020. Pp. 34-35 (in Russian).

12. Cheremisin A.B. Modern technologies: problems of innovative development. International Center for Scientific Partnership "New Science", Petrozavodsk. 2019. Pp. 210-214 (in Russian).

13. Sakharov D.V., Levin M.V., Fostach E.S., Vitkova L.A. Investigation of the mechanisms for securing secure access to data hosted in the cloud infrastructure. High technology in space exploration of the Earth. 2017. Vol. 9. No. 2. Pp. 40-46 (in Russian).

14. Ignatiev A.V. Testing and debugging software. Teaching aid. Volgograd. 2018. Pp. 5-7 (in Russian).

15. Lomaev Yu.S., Tolstykh A.V., Ringer V.D. Modification of approaches for conducting software testing in the development of on-board software. Ser. "The library of the magazine" Voenmekh. Bulletin of BSTU "No. 50". 2018. Pp. 109-113 (in Russian).

Статья поступила 17 декабря 2020 г.

Информация об авторах

Ковцур Максим Михайлович - Кандидат технических наук, доцент, Санкт-Петербургский государственный университет телекоммуникаций имени профессора М.А. Бонч-Бруевича. E-mail: maxkovzur@mail.ru.

Кириллов Даниил Игоревич - Старший преподаватель, Санкт-Петербургский государственный университет телекоммуникаций имени профессора М.А. Бонч-Бруевича. E-mail: daniil.kirillov@gmail.com.

Михайлова Анастасия Валерьевна - Студент, Санкт-Петербургский государственный университет телекоммуникаций имени профессора М.А. Бонч-Бруевича. E-mail: ova.007@yandex.ru. Тел.: +7-911-262-85-02.

Потемкин Павел Андреевич - Студент, Санкт-Петербургский государственный университет телекоммуникаций имени профессора М.А. Бонч-Бруевича. E-mail: potiomkinpa98@gmail.com. Тел.: +7-981-127-92-85.

Development of a machine learning implementation methodology to increase the information security

of a web application

M.M. Kovtsur, D.I. Kirillov, A.V. Mikhailova, P.A. Potemkin

Annotation: In the information world of the twenty-first century, people use billions of web applications that provide a variety offunctions, ranging from simple mathematical operations to Internet banking systems that use government databases in their work, and electronic document management. Therefore, the use of Machine Learning, in the future, can solve two problems at once: automation of processes that previously required human participation, and fast processing of large amounts of information with subsequent analysis.The work is devoted to the analysis of information security of web applications and the introduction of technology such as machine learning. The object of research is the information security of web applications. The subject of the research is a web application security module based on machine learning technology. The aim of the work is to develop a methodology for introducing machine learning to increase the security of a web application and build a security module for a web application based on the proposed methodology. The paper presents a methodology for introducing machine learning into a web application to improve information security, presents the concept and structure of a web application module that uses machine learning technologies. A practical experiment was carried out with the implementation of the developed safety module, and an experimental assessment of such indicators as training time, speed, linearity, accuracy, and the number of parameters was performed. The paper presents an example of the choice of a learning method, and also provides an overview and selection of tools for developing a machine learning model. The presented results can be used in the development and design of information security systems for web applications.

Keywords: web application; server; machine learning; abnormal behavior; Account; user.

Information about authors

Maxim Mickhailovich Kovtsur - PhD, Docent, St. Petersburg State University of Telecommunications named after Professor M.A. Bonch-Bruevich. E-mail: maxkovzur@mail.ru.

Daniil Igorevich Kirillov - foreman, St. Petersburg State University of Telecommunications named after Professor M.A. Bonch-Bruevich. E-mail: daniil.kirillov@gmail.com.

Anastasia Valer'evna Mikhailova - Student, St. Petersburg State University of Telecommunications named after Professor M.A. Bonch-Bruevich. E-mail: ova.007@yandex.ru.

Pavel Andreevich Potemkin - Student, St. Petersburg State University of Telecommunications named after Professor M.A. Bonch-Bruevich. E-mail: potiomkinpa98@gmail.com.

Для цитирования: Ковцур М.М., Кириллов Д.И., Михайлова А.В., Потемкин П.А. Разработка методики внедрения машинного обучения для повышения информационной безопасности web-приложения // Техника средств связи. 2020. № 4 (152). С. 74-86.

For citation: Kovtsur M.M., Kirillov D.I., Mikhailova A.V., Potemkin P.A. Development of a machine learning implementation methodology to increase the information security of a web application. Means of communication equipment. 2020. No 4 (152). Pp. 74-86 (in Russian).

i Надоели баннеры? Вы всегда можете отключить рекламу.