Введение
В настоящее время в работе бизнеса различных отраслей стали очень распространены веб-приложения [2, c. 39], которые во многом повторяют логику и устройство аналогичных продуктов компаний, разработанных для какой - либо конкретной операционной системы. Такая ситуация также наблюдается во многих сферах, особенно там, где требуется обеспечение доступа к разработанному программному обеспечению практически с любого устройства, имеющего выход в интернет. Однако из - за такого подхода по созданию полностью аналогичных приложений не учитываются многие особенности работы интернет-браузеров, которые в свою очередь создают множество потенциальных возможностей для воздействия на данные со стороны злоумышленников [1, c. 60], а также необходимость создания корректного контроля доступов, тем самым ограничивая область действий потенциального пользователя. Данная проблема является как никогда актуальной сейчас, поскольку теперь практически любое программное обеспечение имеет свой аналог в виде веб-приложения и многие из них подвержены воздействию злоумышленников.
Текущие проблемы при использовании и разработки веб-приложений
Из - за того, что при разработке веб-приложений зачастую не учитывают их ключевые особенности, а именно то, что в силу своего строения доступ к ним может быть получен буквально с любого устройства, имеющего интернет-браузер, и у компаний, которые решают проводить полномасштабную интеграцию таких решений в свою корпоративную сеть, может возникнуть множество неочевидных проблем.
Одной из таких проблем является некорректная настройка маршрутизации в итоговом продукте, позволяющая потенциальным пользователям, не имеющим необходимого уровня доступа с помощью прямых ссылок просматривать ресурсы, доступ к которым для них не предусмотрен. Такие ошибки в проектировании практически всегда достаточно дорого обходятся компании, если доступ к таким ресурсам был получен недобросовестным пользователем, который в свою очередь можем поделиться данной уязвимостью с третьими лицами и тем самым подвергнуть колоссальному риску расположенную там информацию.
Вместе с этим также стоит упомянуть, что немаловажную опасность представляет собой недостаточная фильтрация входящей информации в базу данных, расположенную на сервере. Это связано в первую очередь с тем, что потенциальный нарушитель способен ввести в форму какой - либо SQL-запрос и получить в ответ необходимую конфиденциальную информацию из базы. Такая атака называется инъекцией, и она может причинить большой ущерб практически любому продукту, в частности если соответствующая фильтрация или валидация данных вовсе отсутствует.
Также имеется риск некорректной проектировки архитектуры веб-приложения, как пример разрешение пользователям загружать файлы любого формата без какой - либо проверки со стороны клиента, тем самым повышается шанс эксплуатации такой уязвимости со стороны злоумышленников, способных развернуть на стороне сервера исполняемый файл с каким - либо вредоносным кодом.
Стоит также упомянуть, что в большинстве случаев во время разработки веб-приложений редко уделяется достаточное время построению безопасной конфигурации самого приложения и из этого как раз вытекает множество проблем, напрямую связанных с общим уровнем безопасности. В такой ситуации, когда текущие настройки веб-приложения или же сервера не отвечают должным требованиям безопасности, колоссальным образом возникает риск утечки данных или же вовсе компрометации связок логинов и паролей для доступа к административным панелям со стороны серверной части или чего - либо еще.
Использование уязвимых или же вовсе устаревших компонентов также может сильно повлиять на общий уровень веб-приложения. Такая проблема возникает, когда в разработке применяются непроверенные фреймворки или же сторонние решения, уже имеющие в своем исходном коде ошибки безопасности. Злоумышленники же могут воспользоваться достаточно распространенными инструментами, позволяющими производить поиск и успешно находить некорректно сконфигурированные веб-приложения, например поисковая система Shodan IoT.
Нельзя также не отметить, что ошибки идентификации и аутентификации являются в настоящее время одной из ведущих проблем в области разработки веб-приложений, поскольку многие команды разработки не придают должного значения выстраиванию корректного процесса авторизация и аутентификации пользователей приложения. Возможность установки "слабого пароля", как например "123456", и отсутствие ограничений на количество попыток входа может потенциально создать множество проблем для общего уровня защищенности веб-приложения, поскольку злоумышленнику не составит труда методом перебора подобрать корректный пароль и тем самым скомпрометировать чьи - либо конфиденциальные данные. Тем более такая ситуация может усугубляться, если реализованное приложение обращается с финансовыми операциями или же вовсе повторяет логику работы уже существующего продукта и имеет достаточно большого объема базу данных со сведениями о пользователях. Вместе с этим также стоит отметить, что далеко не всегда в веб-приложениях со стороны интерфейсы производится хеширование и обезличивание логинов, чтобы в случае компрометации базы данных не получилась такая ситуация, когда злоумышленники будут иметь доступ к множеству аккаунтов.
Ошибки логирования и мониторинга безопасности могут потенциально создать множество проблем для конечного продукта, размещенного в сети интернет, поскольку если система не производит корректной фиксации аномальных событий, напрямую касающихся безопасности, или же вовсе такие механизмы отсутствуют. Данная проблема является одной из наиболее критичных во многом из - за того, что если мониторинг безопасности работает некорректно или же отсутствует вовсе, то из - за этого атаки злоумышленников могут оказаться незамеченными. Это в свою очередь снизит вероятность оперативного реагирования на возникающие инциденты в реальном времени и обнаружение угроз в целом. Пример такой ситуации может послужить ситуация, когда при многократных попытках неудачной аутентификации не происходит логирования и каких - либо ограничений со стороны интерфейса для предотвращения подбора пароля, и тем самым у злоумышленника появляется множество возможностей для реализации атак.
Нельзя также не отметить, что всегда существует вероятность подделки запросов на стороне сервера (server-side request forgery, SSRF), то есть, когда злоумышленник заставляет сервер отправлять запросы к каким - либо внутренним ресурсам или же вовсе внешним сайтам. Такой подход достаточно часто применяется потенциальными злоумышленниками, для проведения атак на внутренние ресурсы, доступ к которым извне ограничен. Как пример, если серверная часть веб-приложения не имеется достаточной защиты от SSRF, злоумышленник потенциально может заведомо ввести зловредный URL-адрес, заставляющий сервер произвести отправку запроса к собственным внутренним ресурсам и в последствии получить оттуда конфиденциальные данные.
Подход к реализации веб-приложений, обеспечивающий защищенный обмен данными
Учитывая особенности и тенденции развития современных веб-приложений можно выработать следующий подход, включающий в себя следующие аспекты, которые в свою очередь должны быть обязательно проверены еще на этапе разработки программного обеспечения, чтобы обезопасить его и предотвратить множественные ошибки в последствии.
В первую очередь необходимо проводить регулярный мониторинг маршрутизации, а также проектировать контроль уровней доступа на основе принципа наименьших привилегий, чтобы пользователи имели только права, необходимые для выполнения их непосредственных задач. Также необходимо проводить корректную маршрутизацию внутри веб-приложения с целью недопущения доступа недобросовестных пользователей к конфиденциальным данным.
Для предотвращения эксплуатации уязвимостей, связанных с SQL-инъекциями [3, c. 66], необходимо применять на серверной части следующие подходы, а именно:
Использовать параметризированные запросы или же ORM (object-relational mapping) для проведения работы с базой данных;
Проводить валидацию и корректную фильтрацию входных данных;
Применение во всем продукте принципа наименьших привилегий, тем самым ограничивая права доступа к базе данных тем сотрудникам, которым эти права не являются необходимыми для выполнения должностных обязанностей.
Следующим по важности шагом для обеспечения должного уровня защищенности в приложении является корректная настройка полного перечня компонентов, используемых в веб-приложении, а также установка разграничения прав доступа внутри системы, чтобы избежать компрометации ценной информации или же ее конфиденциальности. В случае же недостаточно защищенного простого приложения может хватить и базовых мер, описанных в разделе о клиент-серверной архитектуре, однако если приложение потенциально будет взаимодействовать с конфиденциальной информацией и будет являться высоконагруженным, то таких мер не хватит для защиты в полной мере.
Вместе с этим также нельзя не отметить, что аутентификация [4, c. 147] пользователей является слабым звеном любых приложений, в том числе и реализованных с помощью веб-технологий. Именно поэтому при современном проектировании таких решений учитывается то, что за всю отображаемую логику и общее поведение пользователя будет отвечать исключительно серверная часть, а клиент будет служить лишь прослойкой между непосредственным пользователем и сервером. Данная особенность является несомненным преимуществом веб-решений, поскольку при авторизации пользователя в системе проверка пароля на корректность и общее соответствие прав будет происходить на удаленном сервере, а клиент в свою очередь лишь отобразит результат такой проверки и в случае, если все в порядке, то пропустит пользователя дальше. Лишь при таком условии реализации приложений получается добиться максимального уровня защищенности.
Также должен активно применяться и быть выстроен процесс безопасной разработки [6, c. 101] программного обеспечения с повсеместным использованием различных анализаторов кода, позволяющих проверить весь исходных код на наличие различного вида ошибок, потенциально способных привести к появлению уязвимостей.
Однако в случае, если архитектура [5, c. 233] уже была выстроена ранее, и компания не имеет возможности вносить изменения в уже написанный код, то наиболее эффективным решением будет являться применение WAF (Web Application Firewall). В случае его применения HTTP-трафик от потенциальных пользователей веб-приложения будет идти не напрямую к серверной части, а через WAF, где он будет подвергаться декодированию и множеству проверок на наличие атак. В пассивном же режиме будут доступны лишь функции мониторинга и создания оповещений об атаках.
Стоит также упомянуть о том, что WAF может содержать в себе различные модули, в том числе и модули, позволяющие проводить динамический анализ потенциальных уязвимостей защищаемого веб-приложения, тем самым обеспечивая еще более полноценную защиту для конфиденциальных данных и общего состояния системы.
Как итог, в современном защищенном веб-приложении должна применяться трехуровневая архитектура защиты данных и вышеперечисленные меры, в полной мере обеспечивающие решение большинства проблем, связанных с безопасностью и рисками утечки данных.
Рисунок №1. Трехуровневая архитектура защиты данных
Заключение
Таким образом, были рассмотрены основные проблемы при разработке веб-приложений в настоящее время, а также, с учетом тенденций развития и общего уровня защищенности большинства приложений в интернете, был предложен современный подход к реализации веб-приложений на основе клиент-серверной архитектуры, обеспечивающий защищенный обмен данными.
Описанный подход в свою очередь позволяет избежать большинства уязвимостей, которые могут возникнуть в процессе разработки продуктов, а также позволить обеспечить безопасность на всех этапах производства программного обеспечения, рассчитанного на работу в сети интернет в качестве веб-приложения.
Список источников:
ЯРЕМЧУК С. КАК ПОВЫСИТЬ БЕЗОПАСНОСТЬ ВЕБ-ПРИЛОЖЕНИЙ // СИСТЕМНЫЙ АДМИНИСТРАТОР. - 2006. - №39. - С. 60-64.
КИНТОНОВА А.Ж., БАЕНОВА Г.М., УРЫНБАСАРОВА А.Ж. ВОПРОСЫ БЕЗОПАСНОСТИ ВЕБ ПРИЛОЖЕНИЙ // COLLOQUIUM-JOURNAL. - 2020. - №65. - С. 38-39.
БЫКОВ М.Ю., ЗВЯГИНЦЕВА А.В. АНАЛИЗ АКТУАЛЬНЫХ УГРОЗ БЕЗОПАСНОСТИ ВЕБ-ПРИЛОЖЕНИЙ // СОВРЕМЕННЫЕ ТЕХНОЛОГИИ ОБЕСПЕЧЕНИЯ ГРАЖДАНСКОЙ ОБОРОНЫ И ЛИКВИДАЦИИ ПОСЛЕДСТВИЙ ЧРЕЗВЫЧАЙНЫХ СИТУАЦИЙ. - 2019. - №10. - С. 65-67.
БЛАГОРАЗУМОВ А.К., ЧЕРНИКОВ П.Е., ГЛУХОВ Г.Е., СЁМИН А.В. МЕТОДЫ ОБЕСПЕЧЕНИЯ БЕЗОПАСНОСТИ ВЕБ-ПРИЛОЖЕНИЙ // НАУЧНЫЙ ВЕСТНИК ГОСНИИ ГА. - 2022. - №41. - С. 144-152.
ПЕТРОВА А.Г., КИРИЛЛИН Д.В., БУСКАРОВ В.В. АРХИТЕКТУРА ВЕБ-ПРИЛОЖЕНИЙ // АКТУАЛЬНЫЕ НАУЧНЫЕ ИССЛЕДОВАНИЯ В СОВРЕМЕННОМ МИРЕ. - 2021. - №78. - С. 233-237.
ЮРОЧКИН А.Г., ЖУЛЯБИН Д.Ю. РАЗРАБОТКА СОВРЕМЕННОЙ АРХИТЕКТУРЫ ВЕБ-ПРИЛОЖЕНИЯ ДЛЯ РЕШЕНИЯ КОРПОРАТИВНЫХ ЗАДАЧ // ВЕСТНИК ВОРОНЕЖСКОГО ИНСТИТУТА ВЫСОКИХ ТЕХНОЛОГИЙ. - 2018. - №25. - С. 101-106.