В статье представлен анализ актуальности использования сканеров уязвимости для предотвращения возможных угроз и выявления уязвимостей веб-приложений на ранних этапах. Представлены результаты проектирования сканера веб-уязвимостей “TechnoScan” с использованием нотаций диаграммы UML.
Ключевые слова : веб-уязвимости, сканеры веб-уязвимостей, сканирование веб-сайта, UML-моделирование, проектирование программного обеспечения.
В настоящее время уязвимости веб-приложений представляют серьезную опасность как для частных лиц, так и для организаций, что обусловлено возрастающим числом кибератак и инцидентов по утечке данных, что является серьезной угрозой для конфиденциальности и целостности информации, включая утечку конфиденциальных и персональных данных, атаки на сервера и многое другое.
Для обеспечения защиты веб-сайтов необходимо проводить тестирование, организацию и обеспечение всех необходимых механизмов защиты информации, которые обычно включают в себя:
— использование специализированных сканеров безопасности инструменты для анализа защищенности информационной системы;
— настройка и внедрение криптопротоколов передачи данных по сети компании;
— настройка и внедрение парольной политики;
— настройка механизмов разграничения доступа пользователей к ресурсам и приложениям [1].
Для предотвращения возможных угроз и выявления уязвимостей веб-приложений на ранних этапах, рекомендуется проводить предварительное сканирование собственного веб-сайта. Этот процесс позволяет выявить потенциальные уязвимости и принять меры по их устранению до возможного воздействия злоумышленников. Для осуществления данной операции применяются специализированные инструменты, такие как сканеры веб-уязвимостей.
В принципе работы сканеров существуют два механизма поиска и анализа уязвимостей:
- Зондирование. При таком способе анализ происходит в активной фазе, то есть инициализирует виртуальные атаки и проверяет, в каких участках системы возникают угрозы. Довольно эффективный, но медленный и рискованный метод, поскольку тестирование может вызвать реальный сбой. По окончании процесса предоставляется подробный отчет с найденными проблемами и рекомендациями по их деактивации [2, 3].
- Сканирование. Этот механизм работает с максимально возможной скоростью, но на поверхностном уровне, поэтому дает менее точные результаты. Однако очень маловероятно, что при таком режиме может случится сбой системы. Данный метод только предупреждает о найденных проблемах, но не более того [2, 3].
Существуют два основных подхода к сканированию уязвимостей:
— сканирование «белый ящик» (white Box), при котором специалист, проводящий тестирование, имеет полный доступ к исходному коду приложения или системы, что позволяет более глубоко анализировать код и обнаруживать скрытые уязвимости, но требует доступа к программному обеспечению [2].
— сканирование «черный ящик» (black box), при котором специалист, проводящий тестирование, не имеет предварительной информации о структуре исследуемой системы; такой подход моделирует действия настоящего злоумышленника, что позволяет выявлять уязвимости с точки зрения внешнего атакующего [2].
На рынке существует множество сканеров уязвимостей, как коммерческих, так и свободно распространяемых, например, Nessus, OpenVAS, Acunetix, Qualys, XSpider («Positive Technologies»); ScanOVAL, RedCheck («Алтэкс-Софт»).
Главной целью исследовательской работы являлась разработка приложения с простым и интуитивно понятным интерфейсом, которое позволит полностью автоматизировать процесс проведения сканирования веб-сайтов и сделает доступным выявление уязвимостей веб-приложений на ранних этапах даже для тех, кто не является экспертом в области информационной безопасности.
На первичном этапе проводилось проектирование сканера веб-уязвимостей “TechnoScan” с использованием нотаций диаграммы UML.
UML (от англ. Unified Modeling Language) переводится как «унифицированный язык моделирования». Это графический язык, в котором каждой фигуре, символу, стрелке или их сочетаниям присвоены конкретные значения, что позволяет визуализировать явление или процесс так, чтобы схема была понятна всем, кто знаком с UML. Именно поэтому IT-специалисты во время разработки ПО часто используют UML-моделирование и проектирование процессов [4].
Элементами диаграммы UML могут быть классы программного кода, страницы сайта, части механизма, зоны торгового зала и т. д., в зависимости от того, какой процесс или какую сущность описывает её создатель (рисунок 1) [4].
Рис. 1. Пример UML-диаграммы, описывающей последовательность действий для покупок в интернете [4]
Схема UML концептуальная, т. е. она оперирует концепциями и связями между ними. Сама диаграмма состоит из фигур, значков, надписей, линий и контуров.
Таким образом, с использованием указанных инструментов для разработки структурированной архитектуры кода данной программы и для обеспечения более четкой спецификации задачи, была создана UML-диаграмма работы данного приложения (рисунок 2) [5].
Как видно из диаграммы, для достижения поставленной цели, было решено объединить различные инструменты Nmap, SQLmap и XSStrike для проведения сканирования, чтобы приложение имело обширный охват уязвимостей различных типов. Для программирования использовался язык Python, возможности которого охватывают различные области и позволяют занимать лидирующие позиции в мире программирования.
Рис. 2. UML-диаграмма проектирования программного обеспечения сканера веб-уязвимостей “TechnoScan” [5]
Один из отрывков кода программы сканера уязвимости “TechnoScan”, написанного на языке программирования Python предоставлен на рисунке 3.
Рис. 3. Использование библиотек Python в коде программы сканера уязвимости “TechnoScan”
Использование нотаций диаграммы UML позволило разработать программу сканера уязвимости “TechnoScan”, написанного на языке программирования Python, которая позволяет быстро и эффективно сканировать веб-сайты на наличие возможных уязвимостей. Детализация процессов позволила избежать ошибок на этапе разработки. Пользователь может указать URL-адрес сайта и выбрать типы уязвимостей для сканирования. Результаты выводятся на экран в удобном формате, что позволяет пользователям быстро принимать меры по устранению обнаруженных проблем и повышению безопасности своих ресурсов в сети Интернет.
Литература:
- Уязвимости и угрозы веб-приложений в 2020–2021 гг. [Электронный ресурс]. — Режим доступа: https://www.ptsecurity.com/ru-ru/research/analytics/web-vulnerabilities-2020–2021/ — 19.07.2023.
- Сканер уязвимостей — что это и зачем он нужен. Макхост [Электронный ресурс]. — Режим доступа: https://mchost.ru/articles/chto-takoe-skaner-uyazvimostej/ — 25.07.2023.
- Сканер уязвимостей (Vulnerability scanner): что это, функции, принципы работы [Электронный ресурс]. — Режим доступа: https://itglobal.com/ru-ru/company/glossary/vulnerability-scanner/ — 25.07.2023.
- На каком языке рисуют схемы: что такое UML и почему его понимают во всём мире [Электронный ресурс]. — Режим доступа: https://practicum.yandex.ru/blog/uml-diagrammy/ — 31.07.2023.
- Пулко Т. А., Држевецкий Н. А., Ромейко М. Ю. Программа «TechnoScan». Заявка на оказание услуг по добровольной регистрации и депонированию объекта авторского права или смежных прав от 26 сентября 2023 г. № d20230102 в Национальный центр интеллектуальной собственности Республики Беларусь.