В современном мире защита информации является неотъемлемой частью работы любого предприятия. Одним из способов защиты информации является установка специальных программных или аппаратно-программных комплексов — межсетевых экранов.
Программное обеспечение для межсетевых экранов имеет большой функционал, функции мониторинга работоспособности, а именно управление службами, могут реализовываться с помощью стороннего программного обеспечения, что не всегда является правильным решением и нагружает систему лишним ПО. При настройки межсетевого экрана используются различные службы. Службы в межсетевом экране — это протоколы передачи информации.
Актуальность разработки: данный программный модуль позволит упростить доступ к информации и взаимодействие со службами системы.
Проведен анализ аналогичных решений для необходимости разработки данного программного модуля. Сведем результаты анализа в таблицу 1.
Таблица 1
Обзор аналогичных программных решений
Параметры сравнения |
Программные решения |
|||||
Cockpit Project [1] |
Plesk [2] |
ПМ УСК |
Spanel [3] |
Webmin [4] |
||
Запуск/остановка сервиса |
- |
+ |
+ |
- |
+ |
|
Включение/отключение при старте операционной системы сервиса |
- |
- |
+ |
- |
+ |
|
Перезапуск сервиса |
- |
- |
+ |
- |
+ |
|
Возможность поиска по названию и/или описанию |
+ |
- |
+ |
- |
+ |
|
Возможность просмотра расширенного состояния |
+\- |
+\- |
+ |
+ |
+ |
|
Просмотр расширенной информации и логов |
- |
+/- |
+ |
- |
+/- |
|
Из вышеперечисленных программных решений была выявлена необходимость в разработке программного модуля службами аппаратно-программного комплекса с целью повышения эффективности управления комплексом защиты информации.
Для разработки программного модуля требуется язык программирования, поддерживающий выполнение команд терминала через системные вызовы или с помощью библиотек и позволяющий с наименьшими затратами обращаться к операционной системе.
Также для удобства разработки желательна поддержка библиотеки для преобразования вывода команд терминала в JSON формат, которая поддерживает команду systemctl. Язык программирования должен иметь возможность взаимодействовать с C++.
Взаимодействие с C++ необходимо так как результаты функций данного модуля или другого модуля, в котором происходит взаимодействие с ОС, могут использоваться в коде С++.
Сравнительный анализ языков программирования приведен в таблице 2.
Таблица 2
Сравнение языков программирования
Критерий сравнения |
Язык программирования |
||||
Java [5] |
Rust [6] |
C [7] |
C# [8] |
Python [9] |
|
Поддержка выполнения команд терминала с помощью стандартной библиотеки |
+ |
+ |
+ |
+ |
+ |
Есть ли ограничения при работе с ОС |
Да |
Нет |
Нет |
Да |
Да |
Взаимодействие с С++ |
+\- |
+ |
+ |
+/- |
+ |
Требуются ли дополнительные инструменты |
да |
нет |
нет |
да |
да |
Основным языка программирования был выбран Python, так как он обладает большим набором библиотек, упрощающих взаимодействие с ОС, Python поддерживает библиотеку для Jc, которая лучше всего подходит для преобразования вывода команда терминала в JSON объекты. Также Python хорошо поддерживает вызов из C++ с помощью FFI, а именно CPython — интерпретатор Python, написанный на С.
В качестве среды разработки был выбран редактор кода Visual Studio Code, так как он поддерживает одновременную разработку на нескольких языках программирования, что является необходимым ввиду того, что программный модуль разрабатывается на Python, JavaScript.
Для разработки графического интерфейса выбран язык программирования JavaScript, также необходимо выбрать фреймворк, с помощью которого будет создаваться графический интерфейс.
Фреймворк должен соответствовать следующим важным критериям:
— поддержка реактивности;
— поддержка серверного рендеринга;
— возможность создания собственных событий;
— компонентность;
— поддержка виртуального DOM.
После проведения анализа существующих фреймворков для разработки графического интерфейса был выбран фреймворк Vue Js.
Тестирование разработанного программного модуля будет проводится с помощью модульного и интеграционного тестирования. Модульное тестирование предназначено для проверки работоспособности отдельных частей модуля. Также будет произведено функциональное тестирование. Целью данного тестирования будет проверка корректности работы функционала приложения.
Данный модуль внедрен в программное обеспечение для управления и настройки межсетевым экраном для обеспечения информационной безопасности.
Литература:
- GitHub.com [Электронный ресурс] Cockpit is a web-based graphical interface for servers. URL: https://github.com/cockpit-project/cockpit
- Habr.com Обзор [Электронный ресурс] Plesk — панели управления хостингом и сайтами URL: https://habr.com/ru/companies/ruvds/articles/470592/
- scalahosting.com [Электронный ресурсSPanel Control Panel URL: https://www.scalahosting.com/blog/spanel-control-panel/
- Redos.red-soft.ru [Электронный ресурс] Webmin — программный комплекс для удаленного администрирования URL: https://redos.red-soft.ru/base/redos-7_3/7_3-administation/7_3-remote-admin/7_3-webmin/?nocache=1731784336790
- godigital.rocks [Электронный ресурс] Язык программирования Java: что это такое, его особенности и в чем преимущества. URL: https://godigital.rocks/blog/what-is-java
- doc.rust-lang.ru [Электронный ресурс] Язык программирования Rust URL: https://doc.rust-lang.ru/book/
- gb.ru [Электронный ресурс] Язык программирования Си: история создания и актуальность сегодня URL: https://gb.ru/blog/yazyk-programmirovaniya-ci
- otus.ru [Электронный ресурс]Си Шарп: описание и особенности языка URL https://otus.ru/journal/si-sharp-opisanie-i-osobennosti-yazyka/
- ru.hexlet.io [Электронный ресурс] Язык программирования Python URL: https://ru.hexlet.io/blog/posts/programmirovanie-na-python-osobennosti-obucheniya-perspektivy-situatsiya-na-rynke-truda