УДК 004
Перспективы применения искусственных нейронных сетей в процессе анализа функционирования систем обмена данными
Полков Андрей Андреевич – выпускник факультета Прикладной информатики Московской академии рынка труда и информационных технологий, начальник отдела Разработки программного обеспечения коммутационных комплексов Акционерного общества «Научно-исследовательский институт автоматической аппаратуры им. В.С. Семенихина»
Ромачев Алексей Алексеевич – магистр факультета Информационных систем и технологий МИРЭА – Российского технологического университета, инженер-программист 3 категории отдела Разработки программного обеспечения коммутационных комплексов Акционерного общества «Научно-исследовательский институт автоматической аппаратуры им. В.С. Семенихина»
Аннотация: Статья рассматривает варианты и перспективы использования нейронных сетей (ИНС) в процессе мониторинга и анализа функционирования систем обмена данными (СОД). Автор раскрывает особенности методов обучения и применения ИНС при создании систем мониторинга СОД.
Введение
Последние десятилетия стремительно развиваются телекоммуникационные сети. Следствием этого является постоянное повышение сложности в их эксплуатации и наладки. Проблема построения эффективной системы эксплуатации неразрывно связана с задачей нормирования и контроля параметров качества сети оператором.
Данная задача может быть решена как использованием ручных измерительных инструментов, так и за счет автоматизированного сбора информации с территориально распределенных устройств измерений параметров объектов телекоммуникаций (мониторинга).
Среди основных функций мониторинга можно выделить следующие:
- слежение – основная функция, включающая в себя периодический сбор показателей с узлов оборудования;
- хранение информации – осуществляется сбор информации по основным показателям каждого объекта мониторинга;
- обработка информации с использованием методов экспертного анализа;
- построение отчетов – осуществляется как на основе текущих данных мониторинга, так и по долговременно хранимой информации;
- визуализация – возможность получения отчетов в виде диаграмм или графиков, что помогает легкому восприятию информации;
- поиск «узких мест» – получение информации на основе аналитических данных мониторинга с наиболее низкими показателями производительности.
Обладание полной, актуальной и достоверной информацией о наблюдаемом объекте позволяет принять решение о каких-либо оперативных действиях в случае, если его состояние стремится перейти из нормального в аварийное.
Также наличие истории измерений параметров и статистических данных об объекте мониторинга позволяет скорректировать алгоритм его работы для более эффективного и надежного функционирования.
За счет использования систем мониторинга появляется положительный экономический эффект – многие операции, направленные на проверку технического состояния, поддержание работоспособности системы и локализации причин неисправности производятся удаленно автоматизировано или автоматически. Экономия заключается в снижении затрат на эксплуатационный персонал, а также в оптимизации его рабочего времени.
Кроме того, нынешняя внешнеполитическая обстановка, в условиях жестких санкций, накладывает значительные ограничения на использование зарубежного программного обеспечения (ПО), в следствии чего, службы поддержки во многом не могут гарантировать эффективное его обновление. Следовательно, применение наиболее востребованных зарубежных систем мониторинга становится невозможным, а это приводит к значительным проблемам при эксплуатации больших сетей.
Помимо этого, использование зарубежных систем мониторинга, работающих на собственных вычислительных средствах, становится также невозможным из-за отсутствия доступа к элементной базе.
Таким образом, настоящее время существует актуальная научно-техническая задача в части разработки отечественных систем мониторинга, повышающих надежность и качество эксплуатируемых систем обмена данными (СОД).
Важность применения систем мониторинга при эксплуатации СОД
Мониторинг сетей [1] является ключевым элементом в обеспечении надежности, безопасности и эффективности бизнес-процессов. Важность этого инструмента заключается в следующих аспектах:
- Обеспечение непрерывности бизнес-процессов: Современный бизнес больше не может функционировать без информационных технологий. Поэтому любые сбои или проблемы в работе сети могут привести к серьезным последствиям, включая потерю дохода, ущерб репутации и недовольство клиентов. Мониторинг сети позволяет заранее обнаруживать и устранять проблемы или даже потенциальные проблемы, минимизируя время простоя.
- Обеспечение безопасности [1]: Сетевые атаки и взломы могут привести к утечке конфиденциальной информации и другим последствиям, которые могут нанести серьезный ущерб бизнесу. Мониторинг сети помогает обнаруживать подозрительную активность и предотвращать такие инциденты.
- Улучшение производительности: Мониторинг сети также позволяет анализировать использование ресурсов и производительность сети, что может помочь в оптимизации и планировании расширения.
- Соответствие регулятивным требованиям: Во многих отраслях существуют строгие требования к управлению информационной безопасностью и защите данных. Мониторинг сети помогает доказать соответствие этим требованиям, избежать штрафов и других негативных последствий.
- Управление затратами: Мониторинг может помочь контролировать затраты на ИТ, выявляя неэффективное использование ресурсов, предотвращая ненужные расходы и позволяя более точно планировать бюджет.
- Улучшение качества услуг: Мониторинг сети позволяет быстро обнаруживать проблемы с качеством услуг, такие как медленная скорость интернета или проблемы с доступом к приложениям, и быстро решать эти проблемы, чтобы улучшить удовлетворенность клиентов.
Таким образом, мониторинг СОД может играть важную роль в поддержании эффективности, надежности и безопасности бизнеса.
В тоже время, компании должны учитывать, что работа такой системы требует значительных ресурсов, как вычислительных, так и финансовых, и может не подходить для всех бизнес-моделей. Поэтому, выбор метода мониторинга должен основываться на потребностях и возможностях компании.
Применение ИНС в системах мониторинга СОД
Приведем некоторые примеры использования ИНС в системах мониторинга СОД:
- Обнаружение ботнетов [7]: Ботнеты ‒ это сети компьютеров, которые были заражены вредоносным программным обеспечением и используются для атак на другие компьютеры. ИНС могут быть обучены на основе данных о типичной активности ботнета и использоваться для обнаружения новых ботнетов, которые отличаются от типичной активности. Это может помочь предотвратить кибератаки [8] и защитить компьютерные сети;
- Обнаружение вредоносных программ: По тому же принципу можно научить ИНС искать вирусное ПО;
- Обнаружение аномальной активности: ИНС могут быть использованы для обнаружения аномальной активности в компьютерных сетях. Они могут быть обучены на обнаружение необычных паттернов трафика или поведения пользователей;
- Обнаружение фишинговых атак [4]: ИНС могут быть использованы для обнаружения фишинговых атак, которые могут привести к утечке конфиденциальной информации и другим угрозам безопасности;
Не стоит забывать, что необходимо предоставлять много актуальной информации о состоянии этой сети. Большее представление информации о входных данных обеспечивает более точную работу ИНС.
Применение ИНС в системе мониторинга СОД позволит добиться ряда показателей:
- Автоматизацию процесса мониторинга: ИНС позволит автоматизировать процесс мониторинга СОД, что значительно уменьшит время, необходимое для обработки и анализа данных;
- Прогнозирование аномалий: ИНС позволит обрабатывать полученные данные и прогнозировать возможные аномалии и негативные ситуации в СОД. Это позволит оперативно реагировать на возникающие проблемы и предотвращать их развитие;
- Формирование рекомендаций по настройке и отладке: на основе анализа данных ИНС могут быть сформированы рекомендации по настройке и отладке СОД, что поможет улучшить ее работу и повысить эффективность;
- Повышение точности обнаружения: Благодаря использованию ИНС, точность обнаружения аномалий и негативных ситуаций в СОД увеличится, по сравнению с традиционными методами мониторинга;
- Сэкономить ресурсы: использование ИНС позволит сократить затраты на поддержание системы мониторинга, так как большинство процессов будет автоматизировано.
Таким образом, применение ИНС в системе мониторинга СОД позволит повысить эффективность и точность мониторинга, автоматизировать большинство процессов и сократить затраты на поддержание системы.
Для успешного использования ИНС в системах мониторинга СОД необходимо учитывать ряд факторов, таких как цели и задачи мониторинга [2], объем и качество данных, требования к вычислительным ресурсам и квалификация разработчиков. Также важно проводить тестирование моделей на реальных данных для оценки их эффективности.
При выборе оптимального уровня функционирования ИНС следует руководствоваться следующими рекомендациями:
- Определить цели [3] и задачи мониторинга. Это поможет выбрать необходимый подход для ее разработки. Ведь каждая ИНС уникальная и создается под определенные задачи;
- Оценить объем и качество доступных данных. Это поможет определить, какая модель ИНС может обеспечить наилучшую точность и эффективность в обнаружении угроз безопасности.
- Учитывать требования к вычислительным ресурсам. Некоторые модели ИНС требуют большого количества вычислительных ресурсов, поэтому необходимо учитывать возможности доступных компьютеров и серверов.
- Обращать внимание на опыт и квалификацию разработчиков [9]. ИНС ‒ сложная технология, поэтому важно выбирать разработчиков с соответствующим опытом и знаниями в этой области.
- Проверить эффективность модели на практике. Перед тем как выбрать конкретную модель ИНС, требуется провести тестирование на реальных данных, чтобы оценить ее эффективность и точность [7] в обнаружении угроз безопасности.
В будущем, можно ожидать дальнейшего развития ИНС в системах мониторинга СОД, а также появления новых моделей и алгоритмов, которые позволят более точно и эффективно обнаруживать угрозы безопасности [6].
На текущем этапе ИНС специализируются под определенную задачу. Для примера, можно ознакомиться с подходами некоторых разработчиков программ использования ИНС. Ниже представлена таблица, в которой перечислены авторы и аспекты использования ИНС.
Таблица 1.
Автор |
Подход к использованию ИНС |
Основные идеи |
Кудрявцев Д.А., Павлов В.С. «Использование нейронных сетей для обеспечения безопасности информационных систем» |
Предлагает использовать ИНС для обнаружения аномалий в данных. |
Утверждает, что ИНС могут обучаться на нормальном поведении системы и затем обнаруживать отклонения от этого поведения. |
Лебедева Н.С., Семенова О.В. «Методы машинного обучения в задачах мониторинга информационных систем». |
Рекомендует использование ИНС для прогнозирования поведения информационных сетей. |
Считает, что ИНС могут быть обучены на исторических данных для прогнозирования будущих событий в сети. |
Петров В.Ю., Кузнецов Е.А. «Применение нейронных сетей для обнаружения аномалий в информационных сетях». |
Предлагает комбинированный подход, используя ИНС вместе с другими методами анализа данных |
Утверждает, что ИНС могут быть эффективными, но они должны использоваться в сочетании с другими методами для достижения наилучших результатов. |
В перспективе возможно создание ИНС включающей все обозначенные выше аспекты защиты сетей.
Практическая реализация ИНС в системе мониторинга СОД
Как уже было сказано, ИНС должна обрабатывать данные о сети получаемые в ходе работы системы мониторинга СОД, чтобы на их основе выполнять поставленные задачи. Для получения данных используем эмулятор СОД, который по локальному IP-адресу и выделенному порту, будет передавать данные о состоянии сети по заданному алгоритму обмена сетевой информацией.
Ниже представлен исходный код на языке Phyton, который позволяет подключиться к отладочному серверу, получить сетевую информацию, обработать ее функцией SearchJSON() для приведения ее в удобный для дальнейшей работы вид – JSON-объект.
import json
import socket
import regex
from Parse import SearchJSON
TCP_IP = 'localhost'
TCP_PORT = 7777
BUFFER_SIZE = 1024
pattern = regex.compile(r'\{(?:[^{}]|(?R))*\}')
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((TCP_IP, TCP_PORT))
try:
print("file open")
while True:
dataNew = s.recv(BUFFER_SIZE)
with open('GO.json', 'r') as original:
data = original.read()
with open('GO.json', 'w') as modified:
if (len(SearchJSON(dataNew))):
modified.write(f"{json.dumps(SearchJSON(dataNew))}\n{str(data)}")
Ниже представлен скрипт, который с помощью определенного алгоритма преобразовывает каждую полученную с сервера строку в полноценный JSON-объект и сохраняет для дальнейшей работы.
print(json.dumps(SearchJSON(dataNew), indent=4))
except Exception as ex:
print(ex)
s.close()
import json
from json import JSONDecoder, JSONDecodeError
import regex
NOT_WHITESPACE = regex.compile(r'\S')
def decode_stacked(document, pos=0, decoder=JSONDecoder()):
while True:
match = NOT_WHITESPACE.search(document, pos)
if not match:
return
pos = match.start()
try:
obj, pos = decoder.raw_decode(document, pos)
except JSONDecodeError:
raise
yield obj
def SearchJSON(line):
pattern = regex.compile(r'\{(?:[^{}]|(?R))*\}')
line, dataJson, num = str(line), {}, 1
if len(line) != 20:
if pattern.findall(line):
# Создание объектов
dataJson[str("object ",num)] = {}
for obj in decode_stacked(pattern.findall(line)[0]):
for items in obj:
dataJson[str("object ",num)][f"{items}"] = obj[items]
num += 1
return(dataJson)
def main():
with open('GO.txt', 'r') as original:
lines = original.readlines()
for line in lines:
SearchJSON(line)
print(json.dumps(SearchJSON(line), indent=4))
Ниже представлен скрипт, для отображения полученных графиков. Координаты для построения графиков передаются из полученных с сервера данных.
import matplotlib.pyplot as plt
import numpy as np
# создаем 6 пустых списков для хранения данных x и y для каждого графика
data_x = [[], [], [], [], [], []]
data_y = [[], [], [], [], [], []]
# создаем 6 графиков
fig, axs = plt.subplots(3, 2)
# функция для обновления данных и отображения графиков
def update_graphs(new_data_x, new_data_y):
for i in range(6):
# добавляем новые данные в списки
data_x[i].append(new_data_x[i])
data_y[i].append(new_data_y[i])
# очищаем текущий график
axs[i//2, i%2].cla()
# рисуем новый график
axs[i//2, i%2].plot(data_x[i], data_y[i])
# обновляем график
plt.pause(0.01)
# в цикле получаем новые данные и обновляем графики
for _ in range(100):
new_data_x = np.random.rand(6) # замените на ваш способ получения данных
new_data_y = np.random.rand(6) # замените на ваш способ получения данных
update_graphs(new_data_x, new_data_y)
В итоге получаем 6 графиков, обновляющихся каждые 60 секунд (см. рисунок 1).
Рисунок 1. Графики работы сети.
Если программа отработала корректно, то графики обновляются с каждым новым пакетом данных и информация отображается в окне пользователя.
Далее, на основе этих данных, ИНС приступает к анализу кода и поиску аномалий. Это происходит путем обучения ИНС на большом количестве данных, которые включают в себя различные варианты кода, в том числе и те, которые содержат ошибки или аномалии. ИНС анализирует эти данные и обучается распознавать шаблоны, что позволяет ей выявлять необычные или подозрительные действия в новых данных.
Заключение
Применение ИНС в системах мониторинга, представляет собой мощный инструмент для обеспечения безопасности и эффективности работы СОД, т.к. они способны обрабатывать огромное количество информации и выявлять сложные шаблоны, которые могут быть незаметны для человеческого глаза или традиционных методов анализа.
Благодаря своей способности обучаться и адаптироваться, ИНС могут постоянно улучшать свою точность и эффективность в поиске аномалий, делая их незаменимым инструментом в современном мире информационных технологий. Именно поэтому использование ИНС в системах мониторинга СОД развивается с каждым днем все активнее.
Список литературы
- Кудрявцев Д.А., Павлов В.С. Использование нейронных сетей для обеспечения безопасности информационных систем. Самара: Самарский университет, 2019. – 300.
- Лебедева Н.С., Семенова О.В. Методы машинного обучения в задачах мониторинга информационных систем. Москва: Инфра-М, 2020. - 280 с.
- Мельников И.А., Лукьянова А.В. Нейронные сети в задачах мониторинга и управления информационными системами. Казань: Казанский университет, 2019. - 280 с.
- Петров В.Ю., Кузнецов Е.А. Применение нейронных сетей для обнаружения аномалий в информационных сетях. Санкт-Петербург: БХВ-Петербург, 2019. - 256 с.
- Смирнов А.В., Иванов Д.А. Нейронные сети в мониторинге и анализе информационных сетей: теория и практика. Москва: Издательство МГУ, 2018. - 320 с.
- Филиппов А.И., Григорьев Д.В. Нейросетевые модели в анализе и прогнозировании состояния информационных сетей. Воронеж: ВГУ, 2019. - 300 с.
- Чернышова О.Б., Попов Е.В. Использование нейронных сетей для определения уязвимостей в информационных сетях. Ростов-на-Дону: Феникс, 2020. - 250 с.
- Belyaev D., Grigoriev S. Artificial Intelligence Methods in Information Systems and Networks Monitoring. Los Angeles: SAGE Publications, 2021. - 350 p.
- Phillipov A., Grigoriev D. Neural Network Models in Analysis and Forecasting of Information Networks State. Boston: MIT Press, 2019. - 300 p.
- Smith J., Johnson D. Neural Networks in Monitoring and Analysis of Information Networks: Theory and Practice. New York: Oxford University Press, 2018. - 320 p.